diff -Nru network-manager-applet-0.9.4.1/.pc/.version network-manager-applet-0.9.6.2+git201210311320.2620/.pc/.version --- network-manager-applet-0.9.4.1/.pc/.version 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/.version 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1 @@ +2 diff -Nru network-manager-applet-0.9.4.1/.pc/applet-wifi-menu-before-vpn.patch/src/applet.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/applet-wifi-menu-before-vpn.patch/src/applet.c --- network-manager-applet-0.9.4.1/.pc/applet-wifi-menu-before-vpn.patch/src/applet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/applet-wifi-menu-before-vpn.patch/src/applet.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,3706 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2012 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + * + * This applet used the GNOME Wireless Applet as a skeleton to build from. + * + * GNOME Wireless Applet Authors: + * Eskil Heyn Olsen + * Bastien Nocera (Gnome2 port) + * + * (C) Copyright 2001, 2002 Free Software Foundation + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "applet-device-wifi.h" +#include "applet-device-gsm.h" +#include "applet-device-cdma.h" +#include "applet-device-bt.h" +#include "applet-device-wimax.h" +#include "applet-dialogs.h" +#include "nm-wifi-dialog.h" +#include "applet-vpn-request.h" +#include "utils.h" +#include "shell-watcher.h" +#include "nm-ui-utils.h" + +#define NOTIFY_CAPS_ACTIONS_KEY "actions" + +extern gboolean shell_debug; + +G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) + +/********************************************************************/ +/* Temporary dbus interface stuff */ + +static gboolean +impl_dbus_connect_to_hidden_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_connect_to_hidden_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_create_wifi_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_can_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NOT_AUTHORIZED, + "Creation of Wi-Fi networks has been disabled by system policy."); + return FALSE; + } + + if (!applet_wifi_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_8021x_network (NMApplet *applet, + const char *device_path, + const char *ap_path, + GError **error) +{ + NMDevice *device; + NMAccessPoint *ap; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_WIFI (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + ap = nm_device_wifi_get_access_point_by_path (NM_DEVICE_WIFI (device), ap_path); + if (!ap) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point could not be found."); + return FALSE; + } + + /* FIXME: this doesn't account for Dynamic WEP */ + if ( !(nm_access_point_get_wpa_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + && !(nm_access_point_get_rsn_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point had no 802.1x capabilities"); + return FALSE; + } + + if (!applet_wifi_connect_to_8021x_network (applet, device, ap)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_3g_network (NMApplet *applet, + const char *device_path, + GError **error) +{ + NMDevice *device; + NMDeviceModemCapabilities caps; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_MODEM (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + applet_gsm_connect_network (applet, device); + } else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + applet_cdma_connect_network (applet, device); + } else { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device had no GSM or CDMA capabilities."); + return FALSE; + } + + return TRUE; +} + +#include "applet-dbus-bindings.h" + +/********************************************************************/ + +static inline NMADeviceClass * +get_device_class (NMDevice *device, NMApplet *applet) +{ + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + if (NM_IS_DEVICE_ETHERNET (device)) + return applet->ethernet_class; + else if (NM_IS_DEVICE_WIFI (device)) + return applet->wifi_class; + else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + return applet->gsm_class; + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + return applet->cdma_class; + else + g_message ("%s: unhandled modem capabilities 0x%X", __func__, caps); + } else if (NM_IS_DEVICE_BT (device)) + return applet->bt_class; + else if (NM_IS_DEVICE_WIMAX (device)) + return applet->wimax_class; + else + g_debug ("%s: Unknown device type '%s'", __func__, G_OBJECT_TYPE_NAME (device)); + return NULL; +} + +static inline NMADeviceClass * +get_device_class_from_connection (NMConnection *connection, NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *ctype; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + ctype = nm_setting_connection_get_connection_type (s_con); + g_return_val_if_fail (ctype != NULL, NULL); + + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME) || !strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return applet->ethernet_class; + else if (!strcmp (ctype, NM_SETTING_WIRELESS_SETTING_NAME)) + return applet->wifi_class; + else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME)) + return applet->gsm_class; + else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME)) + return applet->cdma_class; + else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) + return applet->bt_class; + else + g_warning ("%s: unhandled connection type '%s'", __func__, ctype); + return NULL; +} + +struct _OfflineNotificationContextInfo { + NMState state; + NMDeviceState device_state; + NMDeviceStateReason device_state_reason; + NMDeviceType device_type; + gchar* title; + const gchar* text; + const gchar* icon; + NotifyUrgency urgency; +}; + +typedef struct _OfflineNotificationContextInfo OfflineNotificationContextInfo; + +static NMActiveConnection * +applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *best = NULL; + NMDevice *best_dev = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const GPtrArray *devices; + NMDevice *candidate_dev; + + if (nm_active_connection_get_state (candidate) != NM_ACTIVE_CONNECTION_STATE_ACTIVATING) + continue; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (!best_dev) { + best_dev = candidate_dev; + best = candidate; + continue; + } + + if (NM_IS_DEVICE_WIFI (best_dev)) { + if (NM_IS_DEVICE_ETHERNET (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (NM_IS_DEVICE_MODEM (best_dev)) { + NMDeviceModemCapabilities best_caps; + NMDeviceModemCapabilities candidate_caps = NM_DEVICE_MODEM_CAPABILITY_NONE; + + best_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (best_dev)); + if (NM_IS_DEVICE_MODEM (candidate_dev)) + candidate_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (candidate_dev)); + + if (best_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (best_caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev) + || (candidate_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { + best_dev = candidate_dev; + best = candidate; + } + } + } + } + + *device = best_dev; + return best; +} + +static NMActiveConnection * +applet_get_default_active_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *default_ac = NULL; + NMDevice *non_default_device = NULL; + NMActiveConnection *non_default_ac = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + NMDevice *candidate_dev; + const GPtrArray *devices; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (nm_active_connection_get_default (candidate)) { + if (!default_ac) { + *device = candidate_dev; + default_ac = candidate; + } + } else { + if (!non_default_ac) { + non_default_device = candidate_dev; + non_default_ac = candidate; + } + } + } + + /* Prefer the default connection if one exists, otherwise return the first + * non-default connection. + */ + if (!default_ac && non_default_ac) { + default_ac = non_default_ac; + *device = non_default_device; + } + return default_ac; +} + +NMRemoteSettings * +applet_get_settings (NMApplet *applet) +{ + return applet->settings; +} + +GSList * +applet_get_all_connections (NMApplet *applet) +{ + GSList *connections, *iter, *next; + NMConnection *connection; + NMSettingConnection *s_con; + + connections = nm_remote_settings_list_connections (applet->settings); + + /* Ignore slave connections */ + for (iter = connections; iter; iter = next) { + connection = iter->data; + next = iter->next; + + s_con = nm_connection_get_setting_connection (connection); + if (s_con && nm_setting_connection_get_master (s_con)) + connections = g_slist_delete_link (connections, iter); + } + + return connections; +} + +static NMConnection * +applet_get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMActiveConnection * +applet_get_active_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + int i; + const char *cpath; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + const char *active_cpath = nm_active_connection_get_connection (active); + + if (active_cpath && !strcmp (active_cpath, cpath)) + return active; + } + return NULL; +} + +NMDevice * +applet_get_device_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + const char *cpath; + int i; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + + if (!g_strcmp0 (nm_active_connection_get_connection (active), cpath)) + return g_ptr_array_index (nm_active_connection_get_devices (active), 0); + } + return NULL; +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + char *specific_object; + NMConnection *connection; +} AppletItemActivateInfo; + +static void +applet_item_activate_info_destroy (AppletItemActivateInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + g_free (info->specific_object); + if (info->connection) + g_object_unref (info->connection); + memset (info, 0, sizeof (AppletItemActivateInfo)); + g_free (info); +} + +static void +add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add/activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +applet_menu_item_activate_helper_new_connection (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + AppletItemActivateInfo *info = user_data; + + if (canceled) { + applet_item_activate_info_destroy (info); + return; + } + + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + info->specific_object, + add_and_activate_cb, + info->applet); + + applet_item_activate_info_destroy (info); +} + +static void +disconnect_cb (NMDevice *device, GError *error, gpointer user_data) +{ + if (error) { + const char *text = _("Device disconnect failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s: %s", __func__, text, err_text); + utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } +} + +void +applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet) +{ + g_return_if_fail (NM_IS_DEVICE (device)); + + nm_device_disconnect (device, disconnect_cb, NULL); +} + +static void +activate_connection_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Connection activation failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +void +applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data) +{ + AppletItemActivateInfo *info; + NMADeviceClass *dclass; + + g_return_if_fail (NM_IS_DEVICE (device)); + + if (connection) { + /* If the menu item had an associated connection already, just tell + * NM to activate that connection. + */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + specific_object, + activate_connection_cb, + applet); + return; + } + + /* If no connection was given, ask the device class to create a new + * default connection for this device type. This could be a wizard, + * and thus take a while. + */ + + info = g_malloc0 (sizeof (AppletItemActivateInfo)); + info->applet = applet; + info->specific_object = g_strdup (specific_object); + info->device = g_object_ref (device); + + dclass = get_device_class (device, applet); + g_assert (dclass); + if (!dclass->new_auto_connection (device, dclass_data, + applet_menu_item_activate_helper_new_connection, + info)) { + g_warning ("Couldn't create default connection."); + applet_item_activate_info_destroy (info); + } +} + +void +applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos) +{ + GtkWidget *menu_item = gtk_image_menu_item_new (); +#if GTK_CHECK_VERSION(3,1,6) + GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); +#else + GtkWidget *box = gtk_hbox_new (FALSE, 0); +#endif + GtkWidget *xlabel = NULL; + + if (label) { + xlabel = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (xlabel), label); + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2); + } + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + + g_object_set (G_OBJECT (menu_item), + "child", box, + "sensitive", FALSE, + NULL); + if (pos < 0) + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + else + gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, pos); + return; +} + +GtkWidget * +applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active) +{ + GtkWidget *item; + NMSettingConnection *s_con; + char *markup; + GtkWidget *label; + + s_con = nm_connection_get_setting_connection (connection); + item = gtk_image_menu_item_new_with_label (""); + if (add_active && (active == connection)) { + /* Pure evil */ + label = gtk_bin_get_child (GTK_BIN (item)); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + markup = g_markup_printf_escaped ("%s", nm_setting_connection_get_id (s_con)); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + } else + gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); + + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + return item; +} + +#define TITLE_TEXT_R ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_G ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_B ((double) 0x5e / 255.0 ) + +static void +menu_item_draw_generic (GtkWidget *widget, cairo_t *cr) +{ + GtkWidget *label; + PangoFontDescription *desc; + PangoLayout *layout; + int width = 0, height = 0, owidth, oheight; + gdouble extraheight = 0, extrawidth = 0; + const char *text; + gdouble xpadding = 10.0; + gdouble ypadding = 5.0; + gdouble postpadding = 0.0; + + label = gtk_bin_get_child (GTK_BIN (widget)); + text = gtk_label_get_text (GTK_LABEL (label)); + + layout = pango_cairo_create_layout (cr); +#if GTK_CHECK_VERSION(2,20,0) && !GTK_CHECK_VERSION(2,91,6) + { + GtkStyle *style; + style = gtk_widget_get_style (widget); + desc = pango_font_description_copy (style->font_desc); + } +#else + { + GtkStyleContext *style; + style = gtk_widget_get_style_context (widget); + gtk_style_context_get (style, gtk_style_context_get_state (style), + "font", &desc, + NULL); + } +#endif + pango_font_description_set_variant (desc, PANGO_VARIANT_SMALL_CAPS); + pango_font_description_set_weight (desc, PANGO_WEIGHT_SEMIBOLD); + pango_layout_set_font_description (layout, desc); + pango_layout_set_text (layout, text, -1); + pango_cairo_update_layout (cr, layout); + pango_layout_get_size (layout, &owidth, &oheight); + width = owidth / PANGO_SCALE; + height += oheight / PANGO_SCALE; + + cairo_save (cr); + + cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); + cairo_rectangle (cr, 0, 0, + (double) (width + 2 * xpadding), + (double) (height + ypadding + postpadding)); + cairo_fill (cr); + + /* now the in-padding content */ + cairo_translate (cr, xpadding , ypadding); + cairo_set_source_rgb (cr, TITLE_TEXT_R, TITLE_TEXT_G, TITLE_TEXT_B); + cairo_move_to (cr, extrawidth, extraheight); + pango_cairo_show_layout (cr, layout); + + cairo_restore(cr); + + pango_font_description_free (desc); + g_object_unref (layout); + + gtk_widget_set_size_request (widget, width + 2 * xpadding, height + ypadding + postpadding); +} + +#if GTK_CHECK_VERSION(2,90,7) +static gboolean +menu_title_item_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) +{ + menu_item_draw_generic (widget, cr); + return TRUE; +} +#else +static gboolean +menu_title_item_expose (GtkWidget *widget, GdkEventExpose *event) +{ + GtkAllocation allocation; + cairo_t *cr; + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + /* The drawing area we get is the whole menu; clip the drawing to the + * event area, which should just be our menu item. + */ + cairo_rectangle (cr, + event->area.x, event->area.y, + event->area.width, event->area.height); + cairo_clip (cr); + + /* We also need to reposition the cairo context so that (0, 0) is the + * top-left of where we're supposed to start drawing. + */ + gtk_widget_get_allocation (widget, &allocation); + cairo_translate (cr, allocation.x, allocation.y); + + menu_item_draw_generic (widget, cr); + + cairo_destroy (cr); + return TRUE; +} +#endif + +GtkWidget * +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text) +{ + GtkWidget *item; + + item = gtk_menu_item_new_with_mnemonic (text); + gtk_widget_set_sensitive (item, FALSE); +#if GTK_CHECK_VERSION(2,90,7) + g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL); +#else + g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); +#endif + return item; +} + +static gboolean +applet_notify_server_has_actions (void) +{ + static gboolean has_actions = FALSE; + static gboolean initialized = FALSE; + GList *server_caps, *iter; + + if (initialized) + return has_actions; + initialized = TRUE; + + server_caps = notify_get_server_caps(); + for (iter = server_caps; iter; iter = g_list_next (iter)) { + if (!strcmp ((const char *) iter->data, NOTIFY_CAPS_ACTIONS_KEY)) { + has_actions = TRUE; + break; + } + } + g_list_foreach (server_caps, (GFunc) g_free, NULL); + g_list_free (server_caps); + + return has_actions; +} + +void +applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data) +{ + NotifyNotification *notify; + GError *error = NULL; + char *escaped; + + g_return_if_fail (applet != NULL); + g_return_if_fail (summary != NULL); + g_return_if_fail (message != NULL); + + if (!gtk_status_icon_is_embedded (applet->status_icon)) + return; + + /* if we're not registered, don't notify either */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + return; + + escaped = utils_escape_notify_message (message); + + if (applet->notification == NULL) { + notify = notify_notification_new (summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK +#if HAVE_LIBNOTIFY_07 + ); +#else + , NULL); +#endif + + applet->notification = notify; + } else { + notify = applet->notification; + notify_notification_update (notify, + summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK); + } + + g_free (escaped); + +#if HAVE_LIBNOTIFY_07 + notify_notification_set_hint (notify, "transient", g_variant_new_boolean (TRUE)); +#else + notify_notification_attach_to_status_icon (notify, applet->status_icon); +#endif + notify_notification_set_urgency (notify, urgency); + notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT); + + if (applet_notify_server_has_actions () && action1) { + notify_notification_add_action (notify, action1, action1_label, + action1_cb, action1_user_data, NULL); + } + + if (!notify_notification_show (notify, &error)) { + g_warning ("Failed to show notification: %s", + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + } +} + +static void +notify_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id) + return; + + if ( strcmp (id, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_VPN_NOTIFICATIONS)) + return; + + g_settings_set_boolean (applet->gsettings, id, TRUE); +} + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref) +{ + if (g_settings_get_boolean (applet->gsettings, pref)) + return; + + applet_do_notify (applet, NOTIFY_URGENCY_LOW, summary, message, icon, pref, + _("Don't show this message again"), + notify_dont_show_cb, + applet); +} + +static gboolean +animation_timeout (gpointer data) +{ + applet_schedule_update_icon (NM_APPLET (data)); + return TRUE; +} + +static void +start_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id == 0) { + applet->animation_step = 0; + applet->animation_id = g_timeout_add (100, animation_timeout, applet); + } +} + +static void +clear_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id) { + g_source_remove (applet->animation_id); + applet->animation_id = 0; + applet->animation_step = 0; + } +} + +static gboolean +applet_is_any_device_activating (NMApplet *applet) +{ + const GPtrArray *devices; + int i; + + /* Check for activating devices */ + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = NM_DEVICE (g_ptr_array_index (devices, i)); + NMDeviceState state; + + state = nm_device_get_state (candidate); + if (state > NM_DEVICE_STATE_DISCONNECTED && state < NM_DEVICE_STATE_ACTIVATED) + return TRUE; + } + return FALSE; +} + +static gboolean +applet_is_any_vpn_activating (NMApplet *applet) +{ + const GPtrArray *connections; + int i; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (connections, i)); + NMVPNConnectionState vpn_state; + + if (NM_IS_VPN_CONNECTION (candidate)) { + vpn_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + if ( vpn_state == NM_VPN_CONNECTION_STATE_PREPARE + || vpn_state == NM_VPN_CONNECTION_STATE_NEED_AUTH + || vpn_state == NM_VPN_CONNECTION_STATE_CONNECT + || vpn_state == NM_VPN_CONNECTION_STATE_IP_CONFIG_GET) { + return TRUE; + } + } + } + return FALSE; +} + +static char * +make_vpn_failure_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service stopped unexpectedly."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service returned invalid configuration."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the connection attempt timed out."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service did not start in time."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because there were no valid VPN secrets."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because of invalid VPN secrets."), + nm_setting_connection_get_id (s_con)); + + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' failed."), nm_setting_connection_get_id (s_con)); +} + +static char * +make_vpn_disconnection_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the VPN service stopped."), + nm_setting_connection_get_id (s_con)); + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected."), nm_setting_connection_get_id (s_con)); +} + +static void +vpn_connection_state_changed (NMVPNConnection *vpn, + NMVPNConnectionState state, + NMVPNConnectionStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const char *banner; + char *title = NULL, *msg; + gboolean device_activating, vpn_activating; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (state) { + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections might not have come through yet. + */ + vpn_activating = TRUE; + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + banner = nm_vpn_connection_get_banner (vpn); + if (banner && strlen (banner)) + msg = g_strdup_printf (_("VPN connection has been successfully established.\n\n%s\n"), banner); + else + msg = g_strdup (_("VPN connection has been successfully established.\n")); + + title = _("VPN Login Message"); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_FAILED: + title = _("VPN Connection Failed"); + msg = make_vpn_failure_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_DISCONNECTED: + if (reason != NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED) { + title = _("VPN Connection Failed"); + msg = make_vpn_disconnection_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + } + break; + default: + break; + } + + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); + + applet_schedule_update_icon (applet); +} + +static const char * +get_connection_id (NMConnection *connection) +{ + NMSettingConnection *s_con; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + return nm_setting_connection_get_id (s_con); +} + +typedef struct { + NMApplet *applet; + char *vpn_name; +} VPNActivateInfo; + +static void +activate_vpn_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + VPNActivateInfo *info = (VPNActivateInfo *) user_data; + char *title, *msg, *name; + + if (error) { + clear_animation_timeout (info->applet); + + title = _("VPN Connection Failed"); + + /* dbus-glib GError messages _always_ have two NULLs, the D-Bus error + * name comes after the first NULL. Find it. + */ + name = error->message + strlen (error->message) + 1; + if (strstr (name, "ServiceStartFailed")) { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start.\n\n%s"), + info->vpn_name, error->message); + } else { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed to start.\n\n%s"), + info->vpn_name, error->message); + } + + applet_do_notify_with_pref (info->applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + + g_warning ("VPN Connection activation failed: (%s) %s", name, error->message); + } + + applet_schedule_update_icon (info->applet); + g_free (info->vpn_name); + g_free (info); +} + +static void +nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + VPNActivateInfo *info; + NMConnection *connection; + NMSettingConnection *s_con; + NMActiveConnection *active; + NMDevice *device = NULL; + + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) { + g_warning ("%s: no active connection or device.", __func__); + return; + } + + connection = NM_CONNECTION (g_object_get_data (G_OBJECT (item), "connection")); + if (!connection) { + g_warning ("%s: no connection associated with menu item!", __func__); + return; + } + + if (applet_get_active_for_connection (applet, connection)) + /* Connection already active; do nothing */ + return; + + s_con = nm_connection_get_setting_connection (connection); + info = g_malloc0 (sizeof (VPNActivateInfo)); + info->applet = applet; + info->vpn_name = g_strdup (nm_setting_connection_get_id (s_con)); + + /* Connection inactive, activate */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + nm_object_get_path (NM_OBJECT (active)), + activate_vpn_cb, + info); + start_animation_timeout (applet); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + + +/* + * nma_menu_configure_vpn_item_activate + * + * Signal function called when user clicks "Configure VPN..." + * + */ +static void +nma_menu_configure_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + const char *argv[] = { BINDIR "/nm-connection-editor", "--show", "--type", NM_SETTING_VPN_SETTING_NAME, NULL}; + + g_spawn_async (NULL, (gchar **) argv, NULL, 0, NULL, NULL, NULL, NULL); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static NMActiveConnection * +applet_get_first_active_vpn_connection (NMApplet *applet, + NMVPNConnectionState *out_state) +{ + const GPtrArray *active_list; + int i; + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate; + NMConnection *connection; + NMSettingConnection *s_con; + + candidate = g_ptr_array_index (active_list, i); + + connection = applet_get_connection_for_active (applet, candidate); + if (!connection) + continue; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + if (out_state) + *out_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + return candidate; + } + } + + return NULL; +} + +/* + * nma_menu_disconnect_vpn_item_activate + * + * Signal function called when user clicks "Disconnect VPN" + * + */ +static void +nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMActiveConnection *active_vpn = NULL; + NMVPNConnectionState state = NM_VPN_CONNECTION_STATE_UNKNOWN; + + active_vpn = applet_get_first_active_vpn_connection (applet, &state); + if (active_vpn) + nm_client_deactivate_connection (applet->nm_client, active_vpn); + else + g_warning ("%s: deactivate clicked but no active VPN connection could be found.", __func__); +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +/* + * nma_menu_add_separator_item + * + */ +static void +nma_menu_add_separator_item (GtkWidget *menu) +{ + GtkWidget *menu_item; + + menu_item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + + +/* + * nma_menu_add_text_item + * + * Add a non-clickable text item to a menu + * + */ +static void nma_menu_add_text_item (GtkWidget *menu, char *text) +{ + GtkWidget *menu_item; + + g_return_if_fail (text != NULL); + g_return_if_fail (menu != NULL); + + menu_item = gtk_menu_item_new_with_label (text); + gtk_widget_set_sensitive (menu_item, FALSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + +static gint +sort_devices (gconstpointer a, gconstpointer b) +{ + NMDevice *aa = NM_DEVICE (a); + NMDevice *bb = NM_DEVICE (b); + GType aa_type = G_OBJECT_TYPE (G_OBJECT (aa)); + GType bb_type = G_OBJECT_TYPE (G_OBJECT (bb)); + + if (aa_type == bb_type) { + const char *aa_desc = NULL; + const char *bb_desc = NULL; + + aa_desc = nma_utils_get_device_description (aa); + bb_desc = nma_utils_get_device_description (bb); + + return g_strcmp0 (aa_desc, bb_desc); + } + + /* Ethernet always first */ + if (aa_type == NM_TYPE_DEVICE_ETHERNET) + return -1; + if (bb_type == NM_TYPE_DEVICE_ETHERNET) + return 1; + + /* Modems next */ + if (aa_type == NM_TYPE_DEVICE_MODEM) + return -1; + if (bb_type == NM_TYPE_DEVICE_MODEM) + return 1; + + /* Bluetooth next */ + if (aa_type == NM_TYPE_DEVICE_BT) + return -1; + if (bb_type == NM_TYPE_DEVICE_BT) + return 1; + + /* WiMAX next */ + if (aa_type == NM_TYPE_DEVICE_WIMAX) + return -1; + if (bb_type == NM_TYPE_DEVICE_WIMAX) + return 1; + + /* WiFi last because it has many menu items */ + return 1; +} + +static gboolean +nm_g_ptr_array_contains (const GPtrArray *haystack, gpointer needle) +{ + int i; + + for (i = 0; haystack && (i < haystack->len); i++) { + if (g_ptr_array_index (haystack, i) == needle) + return TRUE; + } + return FALSE; +} + +NMConnection * +applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active) +{ + const GPtrArray *active_connections; + NMConnection *connection = NULL; + int i; + + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + if (out_active) + g_return_val_if_fail (*out_active == NULL, NULL); + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMRemoteConnection *tmp; + NMActiveConnection *active; + const char *connection_path; + const GPtrArray *devices; + + active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_connections, i)); + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + tmp = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (tmp) { + connection = NM_CONNECTION (tmp); + if (out_active) + *out_active = active; + break; + } + } + + return connection; +} + +gboolean +nma_menu_device_check_unusable (NMDevice *device) +{ + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + case NM_DEVICE_STATE_UNMANAGED: + return TRUE; + default: + break; + } + return FALSE; +} + + +struct AppletDeviceMenuInfo { + NMDevice *device; + NMApplet *applet; +}; + +static void +applet_device_info_destroy (struct AppletDeviceMenuInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + memset (info, 0, sizeof (struct AppletDeviceMenuInfo)); + g_free (info); +} + +static void +applet_device_disconnect_db (GtkMenuItem *item, gpointer user_data) +{ + struct AppletDeviceMenuInfo *info = user_data; + + applet_menu_item_disconnect_helper (info->device, + info->applet); +} + +GtkWidget * +nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg) +{ + GtkWidget *item = NULL; + gboolean managed = TRUE; + + if (!unavailable_msg) { + if (nm_device_get_firmware_missing (device)) + unavailable_msg = _("device not ready (firmware missing)"); + else + unavailable_msg = _("device not ready"); + } + + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_DISCONNECTED: + unavailable_msg = _("disconnected"); + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_UNMANAGED: + managed = FALSE; + break; + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + case NM_DEVICE_STATE_ACTIVATED: + { + struct AppletDeviceMenuInfo *info = g_new0 (struct AppletDeviceMenuInfo, 1); + info->device = g_object_ref (device); + info->applet = applet; + item = gtk_menu_item_new_with_label (_("Disconnect")); + g_signal_connect_data (item, "activate", + G_CALLBACK (applet_device_disconnect_db), + info, + (GClosureNotify) applet_device_info_destroy, 0); + gtk_widget_set_sensitive (item, TRUE); + break; + } + default: + managed = nm_device_get_managed (device); + break; + } + + if (!managed) { + item = gtk_menu_item_new_with_label (_("device not managed")); + gtk_widget_set_sensitive (item, FALSE); + } + + return item; +} + +static guint32 +nma_menu_add_devices (GtkWidget *menu, NMApplet *applet) +{ + const GPtrArray *temp = NULL; + GSList *devices = NULL, *iter = NULL; + gint n_wifi_devices = 0; + gint n_usable_wifi_devices = 0; + gint n_ethernet_devices = 0; + gint n_mb_devices = 0; + gint n_bt_devices = 0; + int i; + + temp = nm_client_get_devices (applet->nm_client); + for (i = 0; temp && (i < temp->len); i++) + devices = g_slist_insert_sorted (devices, g_ptr_array_index (temp, i), sort_devices); + + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) { + n_wifi_devices++; + if ( nm_client_wireless_get_enabled (applet->nm_client) + && (nm_device_get_state (device) >= NM_DEVICE_STATE_DISCONNECTED)) + n_usable_wifi_devices++; + } else if (NM_IS_DEVICE_ETHERNET (device)) + n_ethernet_devices++; + else if (NM_IS_DEVICE_MODEM (device)) + n_mb_devices++; + else if (NM_IS_DEVICE_BT (device)) + n_bt_devices++; + } + + if (!n_ethernet_devices && !n_wifi_devices && !n_mb_devices && !n_bt_devices) { + nma_menu_add_text_item (menu, _("No network devices available")); + goto out; + } + + /* Add all devices in our device list to the menu */ + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + gint n_devices = 0; + NMADeviceClass *dclass; + NMConnection *active; + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) + n_devices = n_wifi_devices; + else if (NM_IS_DEVICE_ETHERNET (device)) + n_devices = n_ethernet_devices; + else if (NM_IS_DEVICE_MODEM (device)) + n_devices = n_mb_devices; + + active = applet_find_active_connection_for_device (device, applet, NULL); + + dclass = get_device_class (device, applet); + if (dclass) + dclass->add_menu_item (device, n_devices, active, menu, applet); + } + + out: + g_slist_free (devices); + + /* Return # of usable wifi devices here for correct enable/disable state + * of things like Enable Wi-Fi, "Connect to other..." and such. + */ + return n_usable_wifi_devices; +} + +static int +sort_vpn_connections (gconstpointer a, gconstpointer b) +{ + return strcmp (get_connection_id (NM_CONNECTION (a)), get_connection_id (NM_CONNECTION (b))); +} + +static GSList * +get_vpn_connections (NMApplet *applet) +{ + GSList *all_connections; + GSList *iter; + GSList *list = NULL; + + all_connections = applet_get_all_connections (applet); + + for (iter = all_connections; iter; iter = iter->next) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) + /* Not a VPN connection */ + continue; + + if (!nm_connection_get_setting_vpn (connection)) { + g_warning ("%s: VPN connection '%s' didn't have required vpn setting.", __func__, + nm_setting_connection_get_id (s_con)); + continue; + } + + list = g_slist_prepend (list, connection); + } + + g_slist_free (all_connections); + + return g_slist_sort (list, sort_vpn_connections); +} + +static void +nma_menu_add_vpn_submenu (GtkWidget *menu, NMApplet *applet) +{ + GtkMenu *vpn_menu; + GtkMenuItem *item; + GSList *list, *iter; + int num_vpn_active = 0; + + nma_menu_add_separator_item (menu); + + vpn_menu = GTK_MENU (gtk_menu_new ()); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_VPN Connections"))); + gtk_menu_item_set_submenu (item, GTK_WIDGET (vpn_menu)); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + + list = get_vpn_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (applet_get_active_for_connection (applet, connection)) + num_vpn_active++; + } + + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMActiveConnection *active; + const char *name; + GtkWidget *image; + NMState state; + + name = get_connection_id (connection); + + item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); + gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + + /* If no VPN connections are active, draw all menu items enabled. If + * >= 1 VPN connections are active, only the active VPN menu item is + * drawn enabled. + */ + active = applet_get_active_for_connection (applet, connection); + + state = nm_client_get_state (applet->nm_client); + if ( state != NM_STATE_CONNECTED_LOCAL + && state != NM_STATE_CONNECTED_SITE + && state != NM_STATE_CONNECTED_GLOBAL) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + else if ((num_vpn_active == 0) || active) + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + else + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + if (active) { + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + } + + g_object_set_data_full (G_OBJECT (item), "connection", + g_object_ref (connection), + (GDestroyNotify) g_object_unref); + + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_vpn_item_clicked), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } + + /* Draw a seperator, but only if we have VPN connections above it */ + if (list) + nma_menu_add_separator_item (GTK_WIDGET (vpn_menu)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Configure VPN..."))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_configure_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Disconnect VPN"))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_disconnect_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + if (num_vpn_active == 0) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + g_slist_free (list); +} + + +static void +nma_set_wifi_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wireless_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wwan_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wwan_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wimax_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wimax_set_enabled (applet->nm_client, state); +} + +static void +nma_set_networking_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_networking_set_enabled (applet->nm_client, state); +} + + +static void +nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_CONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_VPN_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + !state); +} + +/* + * nma_menu_show_cb + * + * Pop up the wifi networks menu + * + */ +static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet) +{ + guint32 n_wifi; + + g_return_if_fail (menu != NULL); + g_return_if_fail (applet != NULL); + + gtk_status_icon_set_tooltip_text (applet->status_icon, NULL); + + if (!nm_client_get_manager_running (applet->nm_client)) { + nma_menu_add_text_item (menu, _("NetworkManager is not running...")); + return; + } + + if (nm_client_get_state (applet->nm_client) == NM_STATE_ASLEEP) { + nma_menu_add_text_item (menu, _("Networking disabled")); + return; + } + + n_wifi = nma_menu_add_devices (menu, applet); + + nma_menu_add_vpn_submenu (menu, applet); + + if (n_wifi > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { + /* Add the "Hidden Wi-Fi network..." entry */ + nma_menu_add_separator_item (menu); + nma_menu_add_hidden_network_item (menu, applet); + nma_menu_add_create_network_item (menu, applet); + } + + gtk_widget_show_all (menu); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static gboolean +destroy_old_menu (gpointer user_data) +{ + g_object_unref (user_data); + return FALSE; +} + +static void +nma_menu_deactivate_cb (GtkWidget *widget, NMApplet *applet) +{ + /* Must punt the destroy to a low-priority idle to ensure that + * the menu items don't get destroyed before any 'activate' signal + * fires for an item. + */ + g_signal_handlers_disconnect_by_func (applet->menu, G_CALLBACK (nma_menu_deactivate_cb), applet); + g_idle_add_full (G_PRIORITY_LOW, destroy_old_menu, applet->menu, NULL); + applet->menu = NULL; + + /* Re-set the tooltip */ + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +} + +static gboolean +is_permission_yes (NMApplet *applet, NMClientPermission perm) +{ + if ( applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_YES + || applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_AUTH) + return TRUE; + return FALSE; +} + +/* + * nma_context_menu_update + * + */ +static void +nma_context_menu_update (NMApplet *applet) +{ + NMState state; + gboolean net_enabled = TRUE; + gboolean have_wifi = FALSE; + gboolean have_wwan = FALSE; + gboolean have_wimax = FALSE; + gboolean wifi_hw_enabled; + gboolean wwan_hw_enabled; + gboolean wimax_hw_enabled; + gboolean notifications_enabled = TRUE; + gboolean sensitive = FALSE; + + state = nm_client_get_state (applet->nm_client); + sensitive = ( state == NM_STATE_CONNECTED_LOCAL + || state == NM_STATE_CONNECTED_SITE + || state == NM_STATE_CONNECTED_GLOBAL); + gtk_widget_set_sensitive (applet->info_menu_item, sensitive); + + /* Update checkboxes, and block 'toggled' signal when updating so that the + * callback doesn't get triggered. + */ + + /* Enabled Networking */ + g_signal_handler_block (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + net_enabled = nm_client_networking_get_enabled (applet->nm_client); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->networking_enabled_item), + net_enabled && (state != NM_STATE_ASLEEP)); + g_signal_handler_unblock (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + gtk_widget_set_sensitive (applet->networking_enabled_item, + is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK)); + + /* Enabled Wi-Fi */ + g_signal_handler_block (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wifi_enabled_item), + nm_client_wireless_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wifi_enabled_item), + wifi_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI)); + + /* Enabled Mobile Broadband */ + g_signal_handler_block (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wwan_enabled_item), + nm_client_wwan_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + + wwan_hw_enabled = nm_client_wwan_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wwan_enabled_item), + wwan_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN)); + + /* Enable WiMAX */ + g_signal_handler_block (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wimax_enabled_item), + nm_client_wimax_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + + wimax_hw_enabled = nm_client_wimax_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), + wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); + + /* Enabled notifications */ + g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + if ( g_settings_get_boolean (applet->gsettings, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_VPN_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + notifications_enabled = FALSE; + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); + g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + + /* Don't show wifi-specific stuff if wifi is off */ + if (state != NM_STATE_ASLEEP) { + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = g_ptr_array_index (devices, i); + + if (NM_IS_DEVICE_WIFI (candidate)) + have_wifi = TRUE; + else if (NM_IS_DEVICE_MODEM (candidate)) + have_wwan = TRUE; + else if (NM_IS_DEVICE_WIMAX (candidate)) + have_wimax = TRUE; + } + } + + if (have_wifi) + gtk_widget_show_all (applet->wifi_enabled_item); + else + gtk_widget_hide (applet->wifi_enabled_item); + + if (have_wwan) + gtk_widget_show_all (applet->wwan_enabled_item); + else + gtk_widget_hide (applet->wwan_enabled_item); + + if (have_wimax) + gtk_widget_show_all (applet->wimax_enabled_item); + else + gtk_widget_hide (applet->wimax_enabled_item); +} + +static void +ce_child_setup (gpointer user_data G_GNUC_UNUSED) +{ + /* We are in the child process at this point */ + pid_t pid = getpid (); + setpgid (pid, pid); +} + +static void +nma_edit_connections_cb (GtkMenuItem *mi, NMApplet *applet) +{ + char *argv[2]; + GError *error = NULL; + gboolean success; + + argv[0] = BINDIR "/nm-connection-editor"; + argv[1] = NULL; + + success = g_spawn_async ("/", argv, NULL, 0, &ce_child_setup, NULL, NULL, &error); + if (!success) { + g_warning ("Error launching connection editor: %s", error->message); + g_error_free (error); + } +} + +static void +applet_connection_info_cb (NMApplet *applet) +{ + applet_info_dialog_show (applet); +} + +/* + * nma_context_menu_create + * + * Generate the contextual popup menu. + * + */ +static GtkWidget *nma_context_menu_create (NMApplet *applet) +{ + GtkMenuShell *menu; + GtkWidget *menu_item; + GtkWidget *image; + guint id; + + g_return_val_if_fail (applet != NULL, NULL); + + menu = GTK_MENU_SHELL (gtk_menu_new ()); + + /* 'Enable Networking' item */ + applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); + id = g_signal_connect (applet->networking_enabled_item, + "toggled", + G_CALLBACK (nma_set_networking_enabled_cb), + applet); + applet->networking_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->networking_enabled_item); + + /* 'Enable Wi-Fi' item */ + applet->wifi_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Wi-Fi")); + id = g_signal_connect (applet->wifi_enabled_item, + "toggled", + G_CALLBACK (nma_set_wifi_enabled_cb), + applet); + applet->wifi_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wifi_enabled_item); + + /* 'Enable Mobile Broadband' item */ + applet->wwan_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Mobile Broadband")); + id = g_signal_connect (applet->wwan_enabled_item, + "toggled", + G_CALLBACK (nma_set_wwan_enabled_cb), + applet); + applet->wwan_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wwan_enabled_item); + + /* 'Enable WiMAX Mobile Broadband' item */ + applet->wimax_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable WiMA_X Mobile Broadband")); + id = g_signal_connect (applet->wimax_enabled_item, + "toggled", + G_CALLBACK (nma_set_wimax_enabled_cb), + applet); + applet->wimax_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wimax_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* Toggle notifications item */ + applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); + id = g_signal_connect (applet->notifications_enabled_item, + "toggled", + G_CALLBACK (nma_set_notifications_enabled_cb), + applet); + applet->notifications_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->notifications_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* 'Connection Information' item */ + applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); + g_signal_connect_swapped (applet->info_menu_item, + "activate", + G_CALLBACK (applet_connection_info_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->info_menu_item), image); + gtk_menu_shell_append (menu, applet->info_menu_item); + + /* 'Edit Connections...' item */ + applet->connections_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Edit Connections...")); + g_signal_connect (applet->connections_menu_item, + "activate", + G_CALLBACK (nma_edit_connections_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); + gtk_menu_shell_append (menu, applet->connections_menu_item); + + /* Separator */ + nma_menu_add_separator_item (GTK_WIDGET (menu)); + +#if 0 /* FIXME: Implement the help callback, nma_help_cb()! */ + /* Help item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Help")); + g_signal_connect (menu_item, "activate", G_CALLBACK (nma_help_cb), applet); + image = gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); +#endif + + /* About item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_About")); + g_signal_connect_swapped (menu_item, "activate", G_CALLBACK (applet_about_dialog_show), applet); + image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + + gtk_widget_show_all (GTK_WIDGET (menu)); + + return GTK_WIDGET (menu); +} + + +/*****************************************************************************/ + +static void +foo_set_icon (NMApplet *applet, GdkPixbuf *pixbuf, guint32 layer) +{ + int i; + + if (layer > ICON_LAYER_MAX) { + g_warning ("Tried to icon to invalid layer %d", layer); + return; + } + + /* Ignore setting of the same icon as is already displayed */ + if (applet->icon_layers[layer] == pixbuf) + return; + + if (applet->icon_layers[layer]) { + g_object_unref (applet->icon_layers[layer]); + applet->icon_layers[layer] = NULL; + } + + if (pixbuf) + applet->icon_layers[layer] = g_object_ref (pixbuf); + + if (!applet->icon_layers[0]) { + nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + pixbuf = g_object_ref (applet->no_connection_icon); + } else { + pixbuf = gdk_pixbuf_copy (applet->icon_layers[0]); + + for (i = ICON_LAYER_LINK + 1; i <= ICON_LAYER_MAX; i++) { + GdkPixbuf *top = applet->icon_layers[i]; + + if (!top) + continue; + + gdk_pixbuf_composite (top, pixbuf, 0, 0, gdk_pixbuf_get_width (top), + gdk_pixbuf_get_height (top), + 0, 0, 1.0, 1.0, + GDK_INTERP_NEAREST, 255); + } + } + + gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); + g_object_unref (pixbuf); +} + + +NMRemoteConnection * +applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) +{ + const GPtrArray *active_connections; + int i; + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMActiveConnection *active; + NMRemoteConnection *connection; + const char *connection_path; + const GPtrArray *devices; + + active = g_ptr_array_index (active_connections, i); + if (!active) + continue; + + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + connection = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (connection) + return connection; + } + return NULL; +} + +static gboolean +select_merged_notification_text (OfflineNotificationContextInfo *info) +{ + info->urgency = NOTIFY_URGENCY_LOW; + /* only do something if this is about full offline state */ + if(info->state != NM_STATE_UNKNOWN || info->device_state != NM_DEVICE_STATE_UNKNOWN) { + info->urgency = NOTIFY_URGENCY_NORMAL; + if (!info->title) + info->title = g_strdup (_("Network")); + if (info->state == NM_STATE_DISCONNECTED || info->state == NM_STATE_ASLEEP) { + info->text = _("Disconnected - you are now offline"); + } else + info->text = _("Disconnected"); + + switch (info->device_type) { + case NM_DEVICE_TYPE_ETHERNET: + info->icon = "notification-network-ethernet-disconnected"; + break; + case NM_DEVICE_TYPE_WIFI: + info->icon = "notification-network-wireless-disconnected"; + break; + case NM_DEVICE_TYPE_MODEM: + info->icon = "notification-gsm-disconnected"; + break; + default: + info->icon = "notification-network-disconnected"; + break; + } + g_debug("going for offline with icon: %s", info->icon); + return TRUE; + } + return FALSE; +} + +static gboolean +foo_online_offline_deferred_notify (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if(select_merged_notification_text (info)) + if (!g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS)) + applet_do_notify (applet, info->urgency, info->title, + info->text, info->icon, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + _("Don't show this message again"), + notify_dont_show_cb, + applet); + else + g_debug("no notification because merged found that we have nothing to say (e.g. not offline)"); + if (info->title) + g_free (info->title); + info->title = NULL; + g_free (applet->notification_queue_data); + applet->notification_queue_data = NULL; + applet->deferred_id = 0; + return FALSE; +} + +static void +applet_common_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + gboolean device_activating = FALSE, vpn_activating = FALSE; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (new_state) { + case NM_DEVICE_STATE_FAILED: + case NM_DEVICE_STATE_DISCONNECTED: + case NM_DEVICE_STATE_UNMANAGED: + case NM_DEVICE_STATE_UNAVAILABLE: + { + if (old_state != NM_DEVICE_STATE_FAILED && + old_state != NM_DEVICE_STATE_UNKNOWN && + old_state != NM_DEVICE_STATE_DISCONNECTED && + old_state != NM_DEVICE_STATE_UNMANAGED && + old_state != NM_DEVICE_STATE_UNAVAILABLE) { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->device_state = new_state; + info->device_state_reason = reason; + if (info->title) { + g_free(info->title); + info->title = NULL; + } + if (NM_IS_DEVICE_WIFI (device)) { + info->device_type = NM_DEVICE_TYPE_WIFI; + info->title = g_strdup(g_object_get_data (G_OBJECT(device), "canonical-last-essid")); + if (!info->title) + info->title = g_strdup (_("Wireless network")); + } else if (NM_IS_DEVICE_ETHERNET (device)) { + info->device_type = NM_DEVICE_TYPE_ETHERNET; + info->title = g_strdup(_("Wired network")); + } else if (NM_IS_DEVICE_MODEM (device)) { + info->device_type = NM_DEVICE_TYPE_MODEM; + info->title = g_strdup (_("Modem network")); + } else { + info->device_type = NM_DEVICE_TYPE_UNKNOWN; + info->title = g_strdup (_("Network")); + } + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + clear_animation_timeout (applet); + } else { + g_debug ("old state indicates that this was not a disconnect %d", old_state); + } + break; + } + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections or devices might not have come through yet. + */ + device_activating = TRUE; + break; + case NM_DEVICE_STATE_ACTIVATED: + default: + break; + } + + /* If there's an activating device but we're not animating, start animation. + * If we're animating, but there's no activating device or VPN, stop animating. + */ + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); +} + +static void +foo_device_state_changed_cb (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + g_assert (dclass); + + dclass->device_state_changed (device, new_state, old_state, reason, applet); + applet_common_device_state_changed (device, new_state, old_state, reason, applet); + + applet_schedule_update_icon (applet); +} + +static void +foo_device_added_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + if (!dclass) + return; + + if (dclass->device_added) + dclass->device_added (device, applet); + + g_signal_connect (device, "state-changed", + G_CALLBACK (foo_device_state_changed_cb), + user_data); + + foo_device_state_changed_cb (device, + nm_device_get_state (device), + NM_DEVICE_STATE_UNKNOWN, + NM_DEVICE_STATE_REASON_NONE, + applet); +} + +static void +foo_client_state_changed_cb (NMClient *client, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + g_debug("foo_client_state_changed_cb"); + switch (nm_client_get_state (client)) { + case NM_STATE_DISCONNECTED: + case NM_STATE_ASLEEP: + { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->state = nm_client_get_state (client); + select_merged_notification_text (info); + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + /* Fall through */ + } + default: + break; + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_running_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (nm_client_get_manager_running (client)) { + g_message ("NM appeared"); + } else { + g_message ("NM disappeared"); + clear_animation_timeout (applet); + } + + applet_schedule_update_icon (applet); +} + +#define VPN_STATE_ID_TAG "vpn-state-id" + +static void +foo_active_connections_changed_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const GPtrArray *active_list; + int i; + + /* Track the state of new VPN connections */ + active_list = nm_client_get_active_connections (client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + guint id; + + if ( !NM_IS_VPN_CONNECTION (candidate) + || g_object_get_data (G_OBJECT (candidate), VPN_STATE_ID_TAG)) + continue; + + id = g_signal_connect (G_OBJECT (candidate), "vpn-state-changed", + G_CALLBACK (vpn_connection_state_changed), applet); + g_object_set_data (G_OBJECT (candidate), VPN_STATE_ID_TAG, GUINT_TO_POINTER (id)); + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_permission_changed (NMClient *client, + NMClientPermission permission, + NMClientPermissionResult result, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (permission <= NM_CLIENT_PERMISSION_LAST) + applet->permissions[permission] = result; +} + +static gboolean +foo_set_initial_state (gpointer data) +{ + NMApplet *applet = NM_APPLET (data); + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) + foo_device_added_cb (applet->nm_client, NM_DEVICE (g_ptr_array_index (devices, i)), applet); + + foo_active_connections_changed_cb (applet->nm_client, NULL, applet); + + applet_schedule_update_icon (applet); + + return FALSE; +} + +static void +foo_client_setup (NMApplet *applet) +{ + NMClientPermission perm; + + applet->nm_client = nm_client_new (); + if (!applet->nm_client) + return; + + g_signal_connect (applet->nm_client, "notify::state", + G_CALLBACK (foo_client_state_changed_cb), + applet); + g_signal_connect (applet->nm_client, "notify::active-connections", + G_CALLBACK (foo_active_connections_changed_cb), + applet); + g_signal_connect (applet->nm_client, "device-added", + G_CALLBACK (foo_device_added_cb), + applet); + g_signal_connect (applet->nm_client, "notify::manager-running", + G_CALLBACK (foo_manager_running_cb), + applet); + + g_signal_connect (applet->nm_client, "permission-changed", + G_CALLBACK (foo_manager_permission_changed), + applet); + + /* Initialize permissions - the initial 'permission-changed' signal is emitted from NMClient constructor, and thus not caught */ + for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { + applet->permissions[perm] = nm_client_get_permission_result (applet->nm_client, perm); + } + + if (nm_client_get_manager_running (applet->nm_client)) + g_idle_add (foo_set_initial_state, applet); + + applet_schedule_update_icon (applet); +} + +static GdkPixbuf * +applet_common_get_device_icon (NMDeviceState state, NMApplet *applet) +{ + GdkPixbuf *pixbuf = NULL; + int stage = -1; + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + stage = 0; + break; + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + stage = 1; + break; + case NM_DEVICE_STATE_IP_CONFIG: + stage = 2; + break; + default: + break; + } + + if (stage >= 0) { + int i, j; + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { + char *name; + + name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); + nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); + g_free (name); + } + } + + pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_CONNECTING_FRAMES) + applet->animation_step = 0; + } + + return pixbuf; +} + +static char * +get_tip_for_device_state (NMDevice *device, + NMDeviceState state, + NMConnection *connection) +{ + NMSettingConnection *s_con; + char *tip = NULL; + const char *id = NULL; + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + tip = g_strdup_printf (_("Preparing network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + tip = g_strdup_printf (_("Network connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static GdkPixbuf * +applet_get_device_icon_for_state (NMApplet *applet, char **tip) +{ + NMActiveConnection *active; + NMDevice *device = NULL; + GdkPixbuf *pixbuf = NULL; + NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; + NMADeviceClass *dclass; + + // FIXME: handle multiple device states here + + /* First show the best activating device's state */ + active = applet_get_best_activating_connection (applet, &device); + if (!active || !device) { + /* If there aren't any activating devices, then show the state of + * the default active connection instead. + */ + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) + goto out; + } + + state = nm_device_get_state (device); + + dclass = get_device_class (device, applet); + if (dclass) { + NMConnection *connection; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + /* device class returns a referenced pixbuf */ + pixbuf = dclass->get_icon (device, state, connection, tip, applet); + if (!*tip) + *tip = get_tip_for_device_state (device, state, connection); + } + +out: + if (!pixbuf) { + pixbuf = applet_common_get_device_icon (state, applet); + /* reference the pixbuf to match the device class' get_icon() function behavior */ + if (pixbuf) + g_object_ref (pixbuf); + } + return pixbuf; +} + +static char * +get_tip_for_vpn (NMActiveConnection *active, NMVPNConnectionState state, NMApplet *applet) +{ + char *tip = NULL; + const char *path, *id = NULL; + GSList *iter, *list; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + if (!strcmp (nm_connection_get_path (candidate), path)) { + s_con = nm_connection_get_setting_connection (candidate); + id = nm_setting_connection_get_id (s_con); + break; + } + } + g_slist_free (list); + + if (!id) + return NULL; + + switch (state) { + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_PREPARE: + tip = g_strdup_printf (_("Starting VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + tip = g_strdup_printf (_("Requesting a VPN address for '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + tip = g_strdup_printf (_("VPN connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static gboolean +applet_update_icon (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GdkPixbuf *pixbuf = NULL; + NMState state; + char *dev_tip = NULL, *vpn_tip = NULL; + NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; + gboolean nm_running; + NMActiveConnection *active_vpn = NULL; + + applet->update_icon_id = 0; + + nm_running = nm_client_get_manager_running (applet->nm_client); + + /* Handle device state first */ + + state = nm_client_get_state (applet->nm_client); + if (!nm_running) + state = NM_STATE_UNKNOWN; + + switch (state) { + case NM_STATE_UNKNOWN: + case NM_STATE_ASLEEP: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("Networking disabled")); + break; + case NM_STATE_DISCONNECTED: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("No network connection")); + break; + default: + pixbuf = applet_get_device_icon_for_state (applet, &dev_tip); + break; + } + + foo_set_icon (applet, pixbuf, ICON_LAYER_LINK); + if (pixbuf) + g_object_unref (pixbuf); + + /* VPN state next */ + pixbuf = NULL; + active_vpn = applet_get_first_active_vpn_connection (applet, &vpn_state); + if (active_vpn) { + int i; + + switch (vpn_state) { + case NM_VPN_CONNECTION_STATE_ACTIVATED: + pixbuf = nma_icon_check_and_load ("nm-vpn-active-lock", &applet->vpn_lock_icon, applet); + break; + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) { + char *name; + + name = g_strdup_printf ("nm-vpn-connecting%02d", i+1); + nma_icon_check_and_load (name, &applet->vpn_connecting_icons[i], applet); + g_free (name); + } + + pixbuf = applet->vpn_connecting_icons[applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) + applet->animation_step = 0; + break; + default: + break; + } + + vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); + } + foo_set_icon (applet, pixbuf, ICON_LAYER_VPN); + + g_free (applet->tip); + applet->tip = NULL; + + if (dev_tip || vpn_tip) { + GString *tip; + + tip = g_string_new (dev_tip); + + if (vpn_tip) + g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", vpn_tip); + + if (tip->len) + applet->tip = tip->str; + + g_free (vpn_tip); + g_free (dev_tip); + g_string_free (tip, FALSE); + } + + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); + + return FALSE; +} + +void +applet_schedule_update_icon (NMApplet *applet) +{ + if (!applet->update_icon_id) + applet->update_icon_id = g_idle_add (applet_update_icon, applet); +} + +/*****************************************************************************/ + +static SecretsRequest * +applet_secrets_request_new (size_t totsize, + NMConnection *connection, + gpointer request_id, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + NMApplet *applet) +{ + SecretsRequest *req; + + g_return_val_if_fail (totsize >= sizeof (SecretsRequest), NULL); + g_return_val_if_fail (connection != NULL, NULL); + + req = g_malloc0 (totsize); + req->totsize = totsize; + req->connection = g_object_ref (connection); + req->reqid = request_id; + req->setting_name = g_strdup (setting_name); + req->hints = g_strdupv ((char **) hints); + req->flags = flags; + req->callback = callback; + req->callback_data = callback_data; + req->applet = applet; + return req; +} + +void +applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func) +{ + req->free_func = free_func; +} + +void +applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error) +{ + req->callback (req->applet->agent, error ? NULL : settings, error, req->callback_data); +} + +void +applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error) +{ + NMSetting *setting; + GHashTable *settings = NULL, *secrets; + + if (setting_name && !error) { + setting = nm_connection_get_setting_by_name (req->connection, setting_name); + if (setting) { + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, g_strdup (setting_name), secrets); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, setting_name); + } + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled setting '%s'", + __FILE__, __LINE__, __func__, setting_name); + } + } + + req->callback (req->applet->agent, settings, error, req->callback_data); +} + +void +applet_secrets_request_free (SecretsRequest *req) +{ + g_return_if_fail (req != NULL); + + if (req->free_func) + req->free_func (req); + + req->applet->secrets_reqs = g_slist_remove (req->applet->secrets_reqs, req); + + g_object_unref (req->connection); + g_free (req->setting_name); + g_strfreev (req->hints); + memset (req, 0, req->totsize); + g_free (req); +} + +static void +get_existing_secrets_cb (NMSecretAgent *agent, + NMConnection *connection, + GHashTable *secrets, + GError *secrets_error, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMADeviceClass *dclass; + GError *error = NULL; + + /* Merge existing secrets into connection; ignore errors */ + nm_connection_update_secrets (connection, req->setting_name, secrets, NULL); + + dclass = get_device_class_from_connection (connection, req->applet); + g_assert (dclass); + + /* Let the device class handle secrets */ + if (!dclass->get_secrets (req, &error)) { + g_warning ("%s:%d - %s", __func__, __LINE__, error ? error->message : "(unknown)"); + applet_secrets_request_complete (req, NULL, error); + applet_secrets_request_free (req); + g_error_free (error); + } + /* Otherwise success; wait for the secrets callback */ +} + +static void +applet_agent_get_secrets_cb (AppletAgent *agent, + gpointer request_id, + NMConnection *connection, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMSettingConnection *s_con; + NMADeviceClass *dclass; + GError *error = NULL; + SecretsRequest *req = NULL; + + s_con = nm_connection_get_setting_connection (connection); + g_return_if_fail (s_con != NULL); + + /* VPN secrets get handled a bit differently */ + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + req = applet_secrets_request_new (applet_vpn_request_get_secrets_size (), + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + if (!applet_vpn_request_get_secrets (req, &error)) + goto error; + + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + return; + } + + dclass = get_device_class_from_connection (connection, applet); + if (!dclass) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): device type unknown", + __FILE__, __LINE__, __func__); + goto error; + } + + if (!dclass->get_secrets) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NO_SECRETS, + "%s.%d (%s): no secrets found", + __FILE__, __LINE__, __func__); + goto error; + } + + g_assert (dclass->secrets_request_size); + req = applet_secrets_request_new (dclass->secrets_request_size, + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + + /* Get existing secrets, if any */ + nm_secret_agent_get_secrets (NM_SECRET_AGENT (applet->agent), + connection, + setting_name, + hints, + NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE, + get_existing_secrets_cb, + req); + return; + +error: + g_warning ("%s", error->message); + callback (agent, NULL, error, callback_data); + g_error_free (error); + + if (req) + applet_secrets_request_free (req); +} + +static void +applet_agent_cancel_secrets_cb (AppletAgent *agent, + gpointer request_id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GSList *iter; + + for (iter = applet->secrets_reqs; iter; iter = g_slist_next (iter)) { + SecretsRequest *req = iter->data; + + if (req->reqid == request_id) { + /* cancel and free this password request */ + applet_secrets_request_free (req); + } + } +} + +static void +applet_agent_registered_cb (AppletAgent *agent, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + /* If the shell is running and the agent just got registered, unregister it */ + if ( (nm_shell_watcher_version_at_least (applet->shell_watcher, 3, 4)) + && nm_secret_agent_get_registered (NM_SECRET_AGENT (agent))) { + g_message ("Stopping registered applet secret agent because GNOME Shell is running"); + nm_secret_agent_unregister (NM_SECRET_AGENT (agent)); + } +} + +/*****************************************************************************/ + +static void +nma_clear_icon (GdkPixbuf **icon, NMApplet *applet) +{ + g_return_if_fail (icon != NULL); + g_return_if_fail (applet != NULL); + + if (*icon && (*icon != applet->fallback_icon)) { + g_object_unref (*icon); + *icon = NULL; + } +} + +static void nma_icons_free (NMApplet *applet) +{ + int i, j; + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); + + nma_clear_icon (&applet->no_connection_icon, applet); + nma_clear_icon (&applet->ethernet_icon, applet); + nma_clear_icon (&applet->adhoc_icon, applet); + nma_clear_icon (&applet->wwan_icon, applet); + nma_clear_icon (&applet->wwan_tower_icon, applet); + nma_clear_icon (&applet->vpn_lock_icon, applet); + nma_clear_icon (&applet->wifi_00_icon, applet); + nma_clear_icon (&applet->wifi_25_icon, applet); + nma_clear_icon (&applet->wifi_50_icon, applet); + nma_clear_icon (&applet->wifi_75_icon, applet); + nma_clear_icon (&applet->wifi_100_icon, applet); + nma_clear_icon (&applet->secure_lock_icon, applet); + + nma_clear_icon (&applet->mb_tech_1x_icon, applet); + nma_clear_icon (&applet->mb_tech_evdo_icon, applet); + nma_clear_icon (&applet->mb_tech_gprs_icon, applet); + nma_clear_icon (&applet->mb_tech_edge_icon, applet); + nma_clear_icon (&applet->mb_tech_umts_icon, applet); + nma_clear_icon (&applet->mb_tech_hspa_icon, applet); + nma_clear_icon (&applet->mb_tech_lte_icon, applet); + nma_clear_icon (&applet->mb_roaming_icon, applet); + nma_clear_icon (&applet->mb_tech_3g_icon, applet); + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) + nma_clear_icon (&applet->network_connecting_icons[i][j], applet); + } + + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) + nma_clear_icon (&applet->vpn_connecting_icons[i], applet); + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); +} + +GdkPixbuf * +nma_icon_check_and_load (const char *name, GdkPixbuf **icon, NMApplet *applet) +{ + GError *error = NULL; + + g_return_val_if_fail (name != NULL, NULL); + g_return_val_if_fail (icon != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + /* icon already loaded successfully */ + if (*icon && (*icon != applet->fallback_icon)) + return *icon; + + /* Try to load the icon; if the load fails, log the problem, and set + * the icon to the fallback icon if requested. + */ + *icon = gtk_icon_theme_load_icon (applet->icon_theme, name, applet->icon_size, 0, &error); + if (!*icon) { + g_warning ("Icon %s missing: (%d) %s", + name, + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + + *icon = applet->fallback_icon; + } + return *icon; +} + +#include "fallback-icon.h" + +static gboolean +nma_icons_reload (NMApplet *applet) +{ + GError *error = NULL; + GdkPixbufLoader *loader; + + g_return_val_if_fail (applet->icon_size > 0, FALSE); + + nma_icons_free (applet); + + loader = gdk_pixbuf_loader_new_with_type ("png", &error); + if (!loader) + goto error; + + if (!gdk_pixbuf_loader_write (loader, + fallback_icon_data, + sizeof (fallback_icon_data), + &error)) + goto error; + + if (!gdk_pixbuf_loader_close (loader, &error)) + goto error; + + applet->fallback_icon = gdk_pixbuf_loader_get_pixbuf (loader); + g_object_ref (applet->fallback_icon); + g_assert (applet->fallback_icon); + g_object_unref (loader); + + return TRUE; + +error: + g_warning ("Could not load fallback icon: (%d) %s", + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + /* Die if we can't get a fallback icon */ + g_assert (FALSE); + return FALSE; +} + +static void nma_icon_theme_changed (GtkIconTheme *icon_theme, NMApplet *applet) +{ + nma_icons_reload (applet); +} + +static void nma_icons_init (NMApplet *applet) +{ + GdkScreen *screen; + gboolean path_appended; + + if (applet->icon_theme) { + g_signal_handlers_disconnect_by_func (applet->icon_theme, + G_CALLBACK (nma_icon_theme_changed), + applet); + g_object_unref (G_OBJECT (applet->icon_theme)); + } + + screen = gtk_status_icon_get_screen (applet->status_icon); + g_assert (screen); + applet->icon_theme = gtk_icon_theme_get_for_screen (screen); + + /* If not done yet, append our search path */ + path_appended = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended")); + if (path_appended == FALSE) { + gtk_icon_theme_append_search_path (applet->icon_theme, ICONDIR); + g_object_set_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended", + GINT_TO_POINTER (TRUE)); + } + + g_signal_connect (applet->icon_theme, "changed", G_CALLBACK (nma_icon_theme_changed), applet); +} + +static void +status_icon_screen_changed_cb (GtkStatusIcon *icon, + GParamSpec *pspec, + NMApplet *applet) +{ + nma_icons_init (applet); + nma_icon_theme_changed (NULL, applet); +} + +static gboolean +status_icon_size_changed_cb (GtkStatusIcon *icon, + gint size, + NMApplet *applet) +{ + if (getenv ("NMA_SIZE_DEBUG")) { + g_message ("%s(): status icon size now %d", __func__, size); + } + + /* icon_size may be 0 if for example the panel hasn't given us any space + * yet. We'll get resized later, but for now just load the 16x16 icons. + */ + applet->icon_size = MAX (16, size); + + nma_icons_reload (applet); + + applet_schedule_update_icon (applet); + + return TRUE; +} + +static void +status_icon_activate_cb (GtkStatusIcon *icon, NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + + /* Kill any old menu */ + if (applet->menu) + g_object_unref (applet->menu); + + /* And make a fresh new one */ + applet->menu = gtk_menu_new (); + /* Sink the ref so we can explicitly destroy the menu later */ + g_object_ref_sink (G_OBJECT (applet->menu)); + + gtk_container_set_border_width (GTK_CONTAINER (applet->menu), 0); + g_signal_connect (applet->menu, "show", G_CALLBACK (nma_menu_show_cb), applet); + g_signal_connect (applet->menu, "deactivate", G_CALLBACK (nma_menu_deactivate_cb), applet); + + /* Display the new menu */ + gtk_menu_popup (GTK_MENU (applet->menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + 1, gtk_get_current_event_time ()); +} + +static void +status_icon_popup_menu_cb (GtkStatusIcon *icon, + guint button, + guint32 activate_time, + NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + + nma_context_menu_update (applet); + gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + button, activate_time); +} + +static gboolean +setup_widgets (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->status_icon = gtk_status_icon_new (); + if (!applet->status_icon) + return FALSE; + if (shell_debug) + gtk_status_icon_set_name (applet->status_icon, "adsfasdfasdfadfasdf"); + + g_signal_connect (applet->status_icon, "notify::screen", + G_CALLBACK (status_icon_screen_changed_cb), applet); + g_signal_connect (applet->status_icon, "size-changed", + G_CALLBACK (status_icon_size_changed_cb), applet); + g_signal_connect (applet->status_icon, "activate", + G_CALLBACK (status_icon_activate_cb), applet); + g_signal_connect (applet->status_icon, "popup-menu", + G_CALLBACK (status_icon_popup_menu_cb), applet); + + applet->context_menu = nma_context_menu_create (applet); + if (!applet->context_menu) + return FALSE; + + return TRUE; +} + +static void +applet_embedded_cb (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + gboolean embedded = gtk_status_icon_is_embedded (GTK_STATUS_ICON (object)); + + g_message ("applet now %s the notification area", + embedded ? "embedded in" : "removed from"); +} + +#if GLIB_CHECK_VERSION(2,26,0) +static gboolean +delayed_start_agent (gpointer user_data) +{ + NMApplet *applet = user_data; + + applet->agent_start_id = 0; + + g_assert (applet->agent); + + /* If the agent is already running, there's nothing to do. */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent)) == TRUE) + return FALSE; + + if (nm_secret_agent_register (NM_SECRET_AGENT (applet->agent))) + g_message ("Starting applet secret agent because GNOME Shell disappeared"); + else + g_warning ("Failed to start applet secret agent!"); + return FALSE; +} + +static void +shell_version_changed_cb (NMShellWatcher *watcher, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = user_data; + + if (applet->agent_start_id) { + g_source_remove (applet->agent_start_id); + applet->agent_start_id = 0; + } + + if (!applet->agent) + return; + + if (nm_shell_watcher_version_at_least (watcher, 3, 4)) { + /* GNOME Shell handles all secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) { + g_message ("Stopping applet secret agent because GNOME Shell appeared"); + nm_secret_agent_unregister (NM_SECRET_AGENT (applet->agent)); + } + } else if (nm_shell_watcher_version_at_least (watcher, 3, 2)) { + /* GNOME Shell handles everything except VPN secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + g_message ("Applet secret agent handling only VPN secrets because GNOME Shell appeared"); + applet_agent_handle_vpn_only (applet->agent, TRUE); + } else { + /* If the shell quit and our agent wasn't already registered, do it + * now on a delay (just in case the shell is restarting). + */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + applet->agent_start_id = g_timeout_add_seconds (4, delayed_start_agent, applet); + applet_agent_handle_vpn_only (applet->agent, FALSE); + } +} +#endif + +static gboolean +dbus_setup (NMApplet *applet, GError **error) +{ + DBusConnection *connection; + DBusGProxy *proxy; + guint result; + gboolean success; + + applet->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, error); + if (!applet->bus) + return FALSE; + + connection = dbus_g_connection_get_connection (applet->bus); + dbus_connection_set_exit_on_disconnect (connection, FALSE); + + applet->session_bus = dbus_g_bus_get (DBUS_BUS_SESSION, error); + if (!applet->session_bus) + return FALSE; + + dbus_g_connection_register_g_object (applet->session_bus, + "/org/gnome/network_manager_applet", + G_OBJECT (applet)); + + proxy = dbus_g_proxy_new_for_name (applet->session_bus, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + success = dbus_g_proxy_call (proxy, "RequestName", error, + G_TYPE_STRING, "org.gnome.network_manager_applet", + G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE, + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID); + g_object_unref (proxy); + + return success; +} + +static GObject * +constructor (GType type, + guint n_props, + GObjectConstructParam *construct_props) +{ + NMApplet *applet; + GError* error = NULL; + + applet = NM_APPLET (G_OBJECT_CLASS (nma_parent_class)->constructor (type, n_props, construct_props)); + + g_set_application_name (_("NetworkManager Applet")); + gtk_window_set_default_icon_name (GTK_STOCK_NETWORK); + + applet->info_dialog_ui = gtk_builder_new (); + + if (!gtk_builder_add_from_file (applet->info_dialog_ui, UIDIR "/info.ui", &error)) { + g_warning ("Couldn't load info dialog ui file: %s", error->message); + g_error_free (error); + goto error; + } + + applet->gsettings = g_settings_new (APPLET_PREFS_SCHEMA); + + /* Load pixmaps and create applet widgets */ + if (!setup_widgets (applet)) + goto error; + nma_icons_init (applet); + + if (!notify_is_initted ()) + notify_init ("NetworkManager"); + + if (!dbus_setup (applet, &error)) { + g_warning ("Failed to initialize D-Bus: %s", error->message); + g_error_free (error); + goto error; + } + applet->settings = nm_remote_settings_new (applet->bus); + +#ifdef BUILD_MIGRATION_TOOL + { + char *argv[2] = { LIBEXECDIR "/nm-applet-migration-tool", NULL }; + int status; + + /* Move user connections to the system */ + if (!g_spawn_sync (NULL, argv, NULL, 0, NULL, NULL, + NULL, NULL, &status, &error)) { + g_warning ("Could not run nm-applet-migration-tool: %s", + error->message); + g_error_free (error); + } else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { + g_warning ("nm-applet-migration-tool exited with error"); + } + } +#endif + + applet->agent = applet_agent_new (); + g_assert (applet->agent); + g_signal_connect (applet->agent, APPLET_AGENT_GET_SECRETS, + G_CALLBACK (applet_agent_get_secrets_cb), applet); + g_signal_connect (applet->agent, APPLET_AGENT_CANCEL_SECRETS, + G_CALLBACK (applet_agent_cancel_secrets_cb), applet); + g_signal_connect (applet->agent, "notify::" NM_SECRET_AGENT_REGISTERED, + G_CALLBACK (applet_agent_registered_cb), applet); + + /* Initialize device classes */ + applet->ethernet_class = applet_device_ethernet_get_class (applet); + g_assert (applet->ethernet_class); + + applet->wifi_class = applet_device_wifi_get_class (applet); + g_assert (applet->wifi_class); + + applet->gsm_class = applet_device_gsm_get_class (applet); + g_assert (applet->gsm_class); + + applet->cdma_class = applet_device_cdma_get_class (applet); + g_assert (applet->cdma_class); + + applet->bt_class = applet_device_bt_get_class (applet); + g_assert (applet->bt_class); + + applet->wimax_class = applet_device_wimax_get_class (applet); + g_assert (applet->wimax_class); + + foo_client_setup (applet); + + /* Track embedding to help debug issues where user has removed the + * notification area applet from the panel, and thus nm-applet too. + */ + g_signal_connect (applet->status_icon, "notify::embedded", + G_CALLBACK (applet_embedded_cb), NULL); + applet_embedded_cb (G_OBJECT (applet->status_icon), NULL, NULL); + +#if GLIB_CHECK_VERSION(2,26,0) + /* Watch GNOME Shell so we can unregister our applet agent if it appears */ + applet->shell_watcher = nm_shell_watcher_new (); + g_signal_connect (applet->shell_watcher, + "notify::shell-version", + G_CALLBACK (shell_version_changed_cb), + applet); +#endif + + return G_OBJECT (applet); + +error: + g_object_unref (applet); + return NULL; +} + +static void finalize (GObject *object) +{ + NMApplet *applet = NM_APPLET (object); + + g_slice_free (NMADeviceClass, applet->ethernet_class); + g_slice_free (NMADeviceClass, applet->wifi_class); + g_slice_free (NMADeviceClass, applet->gsm_class); + g_slice_free (NMADeviceClass, applet->cdma_class); + g_slice_free (NMADeviceClass, applet->bt_class); + g_slice_free (NMADeviceClass, applet->wimax_class); + + if (applet->update_icon_id) + g_source_remove (applet->update_icon_id); + + if (applet->menu) + g_object_unref (applet->menu); + nma_icons_free (applet); + + g_free (applet->tip); + + while (g_slist_length (applet->secrets_reqs)) + applet_secrets_request_free ((SecretsRequest *) applet->secrets_reqs->data); + + if (applet->notification) { + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + } + + if (applet->info_dialog_ui) + g_object_unref (applet->info_dialog_ui); + + if (applet->gsettings) + g_object_unref (applet->gsettings); + + if (applet->status_icon) + g_object_unref (applet->status_icon); + + if (applet->nm_client) + g_object_unref (applet->nm_client); + + if (applet->fallback_icon) + g_object_unref (applet->fallback_icon); + + if (applet->agent) + g_object_unref (applet->agent); + + if (applet->settings) + g_object_unref (applet->settings); + + if (applet->bus) + dbus_g_connection_unref (applet->bus); + + if (applet->session_bus) + dbus_g_connection_unref (applet->session_bus); + +#if GLIB_CHECK_VERSION(2,26,0) + if (applet->shell_watcher) + g_object_unref (applet->shell_watcher); +#endif + if (applet->agent_start_id) + g_source_remove (applet->agent_start_id); + + G_OBJECT_CLASS (nma_parent_class)->finalize (object); +} + +static void nma_init (NMApplet *applet) +{ + applet->animation_id = 0; + applet->animation_step = 0; + applet->icon_theme = NULL; + applet->notification = NULL; + applet->icon_size = 16; +} + +enum { + PROP_0, + PROP_LOOP, + LAST_PROP +}; + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMApplet *applet = NM_APPLET (object); + + switch (prop_id) { + case PROP_LOOP: + applet->loop = g_value_get_pointer (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void nma_class_init (NMAppletClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GParamSpec *pspec; + + oclass->set_property = set_property; + oclass->constructor = constructor; + oclass->finalize = finalize; + + pspec = g_param_spec_pointer ("loop", "Loop", "Applet mainloop", G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); + g_object_class_install_property (oclass, PROP_LOOP, pspec); + + dbus_g_object_type_install_info (NM_TYPE_APPLET, &dbus_glib_nma_object_info); +} + +NMApplet * +nm_applet_new (GMainLoop *loop) +{ + return g_object_new (NM_TYPE_APPLET, "loop", loop, NULL); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/applet-dialogs.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/applet-dialogs.c --- network-manager-applet-0.9.4.1/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/applet-dialogs.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/applet-dialogs.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1472 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2011 Red Hat, Inc. + */ + +#include "config.h" + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "applet-dialogs.h" + + +static void +info_dialog_show_error (const char *err) +{ + GtkWidget *dialog; + + dialog = gtk_message_dialog_new_with_markup (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, + "%s\n\n%s", _("Error displaying connection information:"), err); + gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_window_present (GTK_WINDOW (dialog)); + g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); +} + +static char * +ip4_address_as_string (guint32 ip) +{ + char *ip_string; + struct in_addr tmp_addr; + + tmp_addr.s_addr = ip; + ip_string = g_malloc0 (INET_ADDRSTRLEN + 1); + if (!inet_ntop (AF_INET, &tmp_addr, ip_string, INET_ADDRSTRLEN)) + strcpy (ip_string, "(none)"); + return ip_string; +} + +static gchar * +ip6_address_as_string (const struct in6_addr *ip) +{ + char buf[INET6_ADDRSTRLEN]; + + memset (&buf, '\0', sizeof (buf)); + + if (inet_ntop (AF_INET6, ip, buf, INET6_ADDRSTRLEN)) { + return g_strdup (buf); + } else { + int j; + GString *ip6_str = g_string_new (NULL); + g_string_append_printf (ip6_str, "%02X", ip->s6_addr[0]); + for (j = 1; j < 16; j++) + g_string_append_printf (ip6_str, " %02X", ip->s6_addr[j]); + g_warning ("%s: error converting IP6 address %s", __func__, ip6_str->str); + g_string_free (ip6_str, TRUE); + return NULL; + } +} + +static char * +get_eap_label (NMSettingWirelessSecurity *sec, + NMSetting8021x *s_8021x) +{ + GString *str = NULL; + char *phase2_str = NULL; + + if (sec) { + const char *key_mgmt = nm_setting_wireless_security_get_key_mgmt (sec); + const char *auth_alg = nm_setting_wireless_security_get_auth_alg (sec); + + if (!strcmp (key_mgmt, "ieee8021x")) { + if (auth_alg && !strcmp (auth_alg, "leap")) + str = g_string_new (_("LEAP")); + else + str = g_string_new (_("Dynamic WEP")); + } else if (!strcmp (key_mgmt, "wpa-eap")) + str = g_string_new (_("WPA/WPA2")); + else + return NULL; + } else if (s_8021x) + str = g_string_new ("802.1x"); + + if (!s_8021x) + goto out; + + if (nm_setting_802_1x_get_num_eap_methods (s_8021x)) { + char *eap_str = g_ascii_strup (nm_setting_802_1x_get_eap_method (s_8021x, 0), -1); + g_string_append_printf (str, ", EAP-%s", eap_str); + g_free (eap_str); + } + + if (nm_setting_802_1x_get_phase2_auth (s_8021x)) + phase2_str = g_ascii_strup (nm_setting_802_1x_get_phase2_auth (s_8021x), -1); + else if (nm_setting_802_1x_get_phase2_autheap (s_8021x)) + phase2_str = g_ascii_strup (nm_setting_802_1x_get_phase2_autheap (s_8021x), -1); + + if (phase2_str) { + g_string_append (str, ", "); + g_string_append (str, phase2_str); + g_free (phase2_str); + } + +out: + return g_string_free (str, FALSE); +} + +static NMConnection * +get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMConnection * +get_connection_for_active_path (NMApplet *applet, const char *active_path) +{ + NMActiveConnection *active = NULL; + const GPtrArray *connections; + int i; + + if (active_path == NULL) + return NULL; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const char *ac_path = nm_object_get_path (NM_OBJECT (candidate)); + + if (g_strcmp0 (ac_path, active_path) == 0) { + active = candidate; + break; + } + } + + return active ? get_connection_for_active (applet, active) : NULL; +} + +static GtkWidget * +create_info_label (const char *text, gboolean selectable) +{ + GtkWidget *label; + + label = gtk_label_new (text ? text : ""); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0); + gtk_label_set_selectable (GTK_LABEL (label), selectable); + return label; +} + +static GtkWidget * +create_info_group_label (const char *text, gboolean selectable) +{ + GtkWidget *label; + char *markup; + + label = create_info_label (NULL, selectable); + markup = g_markup_printf_escaped ("%s", text); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + + return label; +} + +static GtkWidget * +create_info_label_security (NMConnection *connection) +{ + NMSettingConnection *s_con; + char *label = NULL; + GtkWidget *w = NULL; + const char *connection_type; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + connection_type = nm_setting_connection_get_connection_type (s_con); + if (!strcmp (connection_type, NM_SETTING_WIRELESS_SETTING_NAME)) { + NMSettingWireless *s_wireless; + NMSettingWirelessSecurity *s_wireless_sec; + NMSetting8021x *s_8021x; + const char *security; + + s_wireless = nm_connection_get_setting_wireless (connection); + s_wireless_sec = nm_connection_get_setting_wireless_security (connection); + s_8021x = nm_connection_get_setting_802_1x (connection); + security = s_wireless ? nm_setting_wireless_get_security (s_wireless) : NULL; + + if (security && !strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME) && s_wireless_sec) { + const char *key_mgmt = nm_setting_wireless_security_get_key_mgmt (s_wireless_sec); + + if (!strcmp (key_mgmt, "none")) + label = g_strdup (_("WEP")); + else if (!strcmp (key_mgmt, "wpa-none")) + label = g_strdup (_("WPA/WPA2")); + else if (!strcmp (key_mgmt, "wpa-psk")) + label = g_strdup (_("WPA/WPA2")); + else + label = get_eap_label (s_wireless_sec, s_8021x); + } else { + label = g_strdup (C_("Wifi/wired security", "None")); + } + } else if (!strcmp (connection_type, NM_SETTING_WIRED_SETTING_NAME)) { + NMSetting8021x *s_8021x; + + s_8021x = nm_connection_get_setting_802_1x (connection); + if (s_8021x) + label = get_eap_label (NULL, s_8021x); + else + label = g_strdup (C_("Wifi/wired security", "None")); + } + + if (label) + w = create_info_label (label, TRUE); + g_free (label); + + return w; +} + +static GtkWidget * +create_info_notebook_label (NMConnection *connection, gboolean is_default) +{ + GtkWidget *label; + char *str; + + if (is_default) { + str = g_strdup_printf (_("%s (default)"), nm_connection_get_id (connection)); + label = gtk_label_new (str); + g_free (str); + } else + label = gtk_label_new (nm_connection_get_id (connection)); + + return label; +} + +typedef struct { + NMDevice *device; + GtkWidget *label; + guint32 id; +} LabelInfo; + +static void +device_destroyed (gpointer data, GObject *device_ptr) +{ + LabelInfo *info = data; + + /* Device is destroyed, notify handler won't fire + * anymore anyway. Let the label destroy handler + * know it doesn't have to disconnect the callback. + */ + info->device = NULL; + info->id = 0; +} + +static void +label_destroyed (gpointer data, GObject *label_ptr) +{ + LabelInfo *info = data; + + /* Remove the notify handler from the device */ + if (info->device) { + if (info->id) + g_signal_handler_disconnect (info->device, info->id); + /* destroy our info data */ + g_object_weak_unref (G_OBJECT (info->device), device_destroyed, info); + memset (info, 0, sizeof (LabelInfo)); + g_free (info); + } +} + +static void +label_info_new (NMDevice *device, + GtkWidget *label, + const char *notify_prop, + GCallback callback) +{ + LabelInfo *info; + + info = g_malloc0 (sizeof (LabelInfo)); + info->device = device; + info->label = label; + info->id = g_signal_connect (device, notify_prop, callback, label); + g_object_weak_ref (G_OBJECT (label), label_destroyed, info); + g_object_weak_ref (G_OBJECT (device), device_destroyed, info); +} + +static void +bitrate_changed_cb (GObject *device, GParamSpec *pspec, gpointer user_data) +{ + GtkWidget *speed_label = GTK_WIDGET (user_data); + guint32 bitrate = 0; + char *str = NULL; + + bitrate = nm_device_wifi_get_bitrate (NM_DEVICE_WIFI (device)) / 1000; + if (bitrate) + str = g_strdup_printf (_("%u Mb/s"), bitrate); + + gtk_label_set_text (GTK_LABEL (speed_label), str ? str : C_("Speed", "Unknown")); + g_free (str); +} + +static void +wimax_cinr_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data) +{ + GtkWidget *label = GTK_WIDGET (user_data); + gint cinr; + char *str = NULL; + + cinr = nm_device_wimax_get_cinr (NM_DEVICE_WIMAX (device)); + if (cinr) + str = g_strdup_printf (_("%d dB"), cinr); + + gtk_label_set_text (GTK_LABEL (label), str ? str : C_("WiMAX CINR", "unknown")); + g_free (str); +} + +static void +wimax_bsid_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data) +{ + GtkWidget *label = GTK_WIDGET (user_data); + const char *str = NULL; + + str = nm_device_wimax_get_bsid (NM_DEVICE_WIMAX (device)); + if (!str) + str = C_("WiMAX Base Station ID", "unknown"); + gtk_label_set_text (GTK_LABEL (label), str); +} + +static void +info_dialog_add_page (GtkNotebook *notebook, + NMConnection *connection, + gboolean is_default, + NMDevice *device) +{ + GtkTable *table; + guint32 speed = 0; + char *str; + const char *iface, *method = NULL; + NMIP4Config *ip4_config; + NMIP6Config *ip6_config; + const GArray *dns; + const GSList *dns6; + NMIP4Address *def_addr = NULL; + NMIP6Address *def6_addr = NULL; + NMSettingIP6Config *s_ip6; + guint32 hostmask, network, bcast, netmask; + int i, row = 0; + GtkWidget* speed_label, *sec_label = NULL; + const GSList *addresses; + gboolean show_security = FALSE; + + table = GTK_TABLE (gtk_table_new (12, 2, FALSE)); + gtk_table_set_col_spacings (table, 12); + gtk_table_set_row_spacings (table, 6); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); + + /* Interface */ + iface = nm_device_get_iface (device); + if (NM_IS_DEVICE_ETHERNET (device)) { + str = g_strdup_printf (_("Ethernet (%s)"), iface); + show_security = TRUE; + } else if (NM_IS_DEVICE_WIFI (device)) { + str = g_strdup_printf (_("802.11 WiFi (%s)"), iface); + show_security = TRUE; + } else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + str = g_strdup_printf (_("GSM (%s)"), iface); + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + str = g_strdup_printf (_("CDMA (%s)"), iface); + else + str = g_strdup_printf (_("Mobile Broadband (%s)"), iface); + } else if (NM_IS_DEVICE_WIMAX (device)) + str = g_strdup_printf (_("WiMAX (%s)"), iface); + else + str = g_strdup (iface); + + + /*--- General ---*/ + gtk_table_attach (table, create_info_group_label (_("General"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + gtk_table_attach (table, create_info_label (_("Interface:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Hardware address */ + str = NULL; + if (NM_IS_DEVICE_ETHERNET (device)) + str = g_strdup (nm_device_ethernet_get_hw_address (NM_DEVICE_ETHERNET (device))); + else if (NM_IS_DEVICE_WIFI (device)) + str = g_strdup (nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (device))); + else if (NM_IS_DEVICE_WIMAX (device)) + str = g_strdup (nm_device_wimax_get_hw_address (NM_DEVICE_WIMAX (device))); + + gtk_table_attach (table, create_info_label (_("Hardware Address:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Driver */ + gtk_table_attach (table, create_info_label (_("Driver:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (nm_device_get_driver (device), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + speed_label = create_info_label ("", TRUE); + + /* Speed */ + str = NULL; + if (NM_IS_DEVICE_ETHERNET (device)) { + /* Ethernet speed in Mb/s */ + speed = nm_device_ethernet_get_speed (NM_DEVICE_ETHERNET (device)); + } else if (NM_IS_DEVICE_WIFI (device)) { + /* Wi-Fi speed in Kb/s */ + speed = nm_device_wifi_get_bitrate (NM_DEVICE_WIFI (device)) / 1000; + + label_info_new (device, + speed_label, + "notify::" NM_DEVICE_WIFI_BITRATE, + G_CALLBACK (bitrate_changed_cb)); + } + + if (speed) + str = g_strdup_printf (_("%u Mb/s"), speed); + + gtk_label_set_text (GTK_LABEL(speed_label), str ? str : C_("Speed", "Unknown")); + g_free (str); + + gtk_table_attach (table, create_info_label (_("Speed:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, speed_label, + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + /* Security */ + if (show_security) { + sec_label = create_info_label_security (connection); + if (sec_label) { + gtk_table_attach (table, create_info_label (_("Security:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, sec_label, + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + } + } + + if (NM_IS_DEVICE_WIMAX (device)) { + GtkWidget *bsid_label, *cinr_label; + + /* CINR */ + cinr_label = create_info_label ("", TRUE); + gtk_table_attach (table, create_info_label (_("CINR:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, cinr_label, + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + label_info_new (device, + cinr_label, + "notify::" NM_DEVICE_WIMAX_CINR, + G_CALLBACK (wimax_cinr_changed_cb)); + wimax_cinr_changed_cb (device, NULL, cinr_label); + row++; + + /* Base Station ID */ + bsid_label = create_info_label ("", TRUE); + gtk_table_attach (table, create_info_label (_("BSID:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, bsid_label, + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + label_info_new (device, + bsid_label, + "notify::" NM_DEVICE_WIMAX_BSID, + G_CALLBACK (wimax_bsid_changed_cb)); + wimax_bsid_changed_cb (device, NULL, bsid_label); + row++; + } + + /* Empty line */ + gtk_table_attach (table, gtk_label_new (""), 0, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + /*--- IPv4 ---*/ + gtk_table_attach (table, create_info_group_label (_("IPv4"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + + row++; + + ip4_config = nm_device_get_ip4_config (device); + addresses = nm_ip4_config_get_addresses (ip4_config); + if (g_slist_length ((GSList *) addresses)) + def_addr = addresses->data; + + /* Address */ + gtk_table_attach (table, create_info_label (_("IP Address:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = def_addr ? ip4_address_as_string (nm_ip4_address_get_address (def_addr)) : g_strdup (C_("Address", "Unknown")); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Broadcast */ + if (def_addr) { + netmask = nm_utils_ip4_prefix_to_netmask (nm_ip4_address_get_prefix (def_addr)); + network = ntohl (nm_ip4_address_get_address (def_addr)) & ntohl (netmask); + hostmask = ~ntohl (netmask); + bcast = htonl (network | hostmask); + } + + gtk_table_attach (table, create_info_label (_("Broadcast Address:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = def_addr ? ip4_address_as_string (bcast) : g_strdup (C_("Address", "Unknown")); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Prefix */ + gtk_table_attach (table, create_info_label (_("Subnet Mask:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = def_addr ? ip4_address_as_string (netmask) : g_strdup (C_("Subnet Mask", "Unknown")); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Gateway */ + if (def_addr && nm_ip4_address_get_gateway (def_addr)) { + gtk_table_attach (table, create_info_label (_("Default Route:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip4_address_as_string (nm_ip4_address_get_gateway (def_addr)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + /* DNS */ + dns = def_addr ? nm_ip4_config_get_nameservers (ip4_config) : NULL; + if (dns && dns->len) { + gtk_table_attach (table, create_info_label (_("Primary DNS:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip4_address_as_string (g_array_index (dns, guint32, 0)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + if (dns->len > 1) { + gtk_table_attach (table, create_info_label (_("Secondary DNS:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip4_address_as_string (g_array_index (dns, guint32, 1)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + if (dns->len > 2) { + gtk_table_attach (table, create_info_label (_("Ternary DNS:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip4_address_as_string (g_array_index (dns, guint32, 2)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + } + + /* Empty line */ + gtk_table_attach (table, gtk_label_new (""), 0, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + /*--- IPv6 ---*/ + gtk_table_attach (table, create_info_group_label (_("IPv6"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + s_ip6 = nm_connection_get_setting_ip6_config (connection); + if (s_ip6) + method = nm_setting_ip6_config_get_method (s_ip6); + + if (method && !strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE)) { + gtk_table_attach (table, create_info_label (_("Ignored"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + } + + ip6_config = nm_device_get_ip6_config (device); + if (ip6_config) { + addresses = nm_ip6_config_get_addresses (ip6_config); + if (g_slist_length ((GSList *) addresses)) + def6_addr = addresses->data; + } + + /* Address */ + if (def6_addr) { + char *tmp_addr; + guint32 prefix; + + gtk_table_attach (table, create_info_label (_("IP Address:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + tmp_addr = ip6_address_as_string (nm_ip6_address_get_address (def6_addr)); + prefix = nm_ip6_address_get_prefix (def6_addr); + str = g_strdup_printf ("%s/%d", tmp_addr, prefix); + g_free (tmp_addr); + + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + /* Gateway */ + if (def6_addr && nm_ip6_address_get_gateway (def6_addr)) { + gtk_table_attach (table, create_info_label (_("Default Route:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip6_address_as_string (nm_ip6_address_get_gateway (def6_addr)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + /* DNS */ + dns6 = def6_addr ? nm_ip6_config_get_nameservers (ip6_config) : NULL; + + for (i = 0; dns6 && i < 3 ; dns6 = g_slist_next (dns6), i++) { + char *label[] = { "Primary DNS:", "Secondary DNS:", "Ternary DNS:" }; + + gtk_table_attach (table, create_info_label (_(label[i]), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip6_address_as_string (dns6->data); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + gtk_notebook_append_page (notebook, GTK_WIDGET (table), + create_info_notebook_label (connection, is_default)); + + gtk_widget_show_all (GTK_WIDGET (table)); +} + +static char * +get_vpn_connection_type (NMConnection *connection) +{ + const char *type, *p; + + /* The service type is in format of "org.freedesktop.NetworkManager.vpnc". + * Extract end part after last dot, e.g. "vpnc" */ + type = nm_setting_vpn_get_service_type (nm_connection_get_setting_vpn (connection)); + p = strrchr (type, '.'); + return g_strdup (p ? p + 1 : type); +} + +/* VPN parameters can be found at: + * http://git.gnome.org/browse/network-manager-openvpn/tree/src/nm-openvpn-service.h + * http://git.gnome.org/browse/network-manager-vpnc/tree/src/nm-vpnc-service.h + * http://git.gnome.org/browse/network-manager-pptp/tree/src/nm-pptp-service.h + * http://git.gnome.org/browse/network-manager-openconnect/tree/src/nm-openconnect-service.h + * http://git.gnome.org/browse/network-manager-openswan/tree/src/nm-openswan-service.h + * See also 'properties' directory in these plugins. + */ +static const gchar * +find_vpn_gateway_key (const char *vpn_type) +{ + if (g_strcmp0 (vpn_type, "openvpn") == 0) return "remote"; + if (g_strcmp0 (vpn_type, "vpnc") == 0) return "IPSec gateway"; + if (g_strcmp0 (vpn_type, "pptp") == 0) return "gateway"; + if (g_strcmp0 (vpn_type, "openconnect") == 0) return "gateway"; + if (g_strcmp0 (vpn_type, "openswan") == 0) return "right"; + return ""; +} + +static const gchar * +find_vpn_username_key (const char *vpn_type) +{ + if (g_strcmp0 (vpn_type, "openvpn") == 0) return "username"; + if (g_strcmp0 (vpn_type, "vpnc") == 0) return "Xauth username"; + if (g_strcmp0 (vpn_type, "pptp") == 0) return "user"; + if (g_strcmp0 (vpn_type, "openconnect") == 0) return "username"; + if (g_strcmp0 (vpn_type, "openswan") == 0) return "leftxauthusername"; + return ""; +} + +enum VpnDataItem { + VPN_DATA_ITEM_GATEWAY, + VPN_DATA_ITEM_USERNAME +}; + +static const gchar * +get_vpn_data_item (NMConnection *connection, enum VpnDataItem vpn_data_item) +{ + const char *key; + char *type = get_vpn_connection_type (connection); + + switch (vpn_data_item) { + case VPN_DATA_ITEM_GATEWAY: + key = find_vpn_gateway_key (type); + break; + case VPN_DATA_ITEM_USERNAME: + key = find_vpn_username_key (type); + break; + default: + key = ""; + break; + } + g_free (type); + + return nm_setting_vpn_get_data_item (nm_connection_get_setting_vpn (connection), key); +} + +static void +info_dialog_add_page_for_vpn (GtkNotebook *notebook, + NMConnection *connection, + NMActiveConnection *active, + NMConnection *parent_con) +{ + GtkTable *table; + char *str; + int row = 0; + gboolean is_default = nm_active_connection_get_default (active); + + table = GTK_TABLE (gtk_table_new (12, 2, FALSE)); + gtk_table_set_col_spacings (table, 12); + gtk_table_set_row_spacings (table, 6); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); + + /*--- General ---*/ + gtk_table_attach (table, create_info_group_label (_("General"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + str = get_vpn_connection_type (connection); + gtk_table_attach (table, create_info_label (_("VPN Type:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + gtk_table_attach (table, create_info_label (_("VPN Gateway:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (get_vpn_data_item (connection, VPN_DATA_ITEM_GATEWAY), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + gtk_table_attach (table, create_info_label (_("VPN Username:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (get_vpn_data_item (connection, VPN_DATA_ITEM_USERNAME), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + gtk_table_attach (table, create_info_label (_("VPN Banner:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (nm_vpn_connection_get_banner (NM_VPN_CONNECTION (active)), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + gtk_table_attach (table, create_info_label (_("Base Connection:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (parent_con ? nm_connection_get_id (parent_con) : _("Unknown"), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + + gtk_notebook_append_page (notebook, GTK_WIDGET (table), + create_info_notebook_label (connection, is_default)); + + gtk_widget_show_all (GTK_WIDGET (table)); +} + +static GtkWidget * +info_dialog_update (NMApplet *applet) +{ + GtkNotebook *notebook; + const GPtrArray *connections; + int i; + int pages = 0; + + notebook = GTK_NOTEBOOK (GTK_WIDGET (gtk_builder_get_object (applet->info_dialog_ui, "info_notebook"))); + + /* Remove old pages */ + for (i = gtk_notebook_get_n_pages (notebook); i > 0; i--) + gtk_notebook_remove_page (notebook, -1); + + /* Add new pages */ + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *active_connection = g_ptr_array_index (connections, i); + NMConnection *connection; + const GPtrArray *devices; + + if (nm_active_connection_get_state (active_connection) != NM_ACTIVE_CONNECTION_STATE_ACTIVATED) + continue; + + connection = get_connection_for_active (applet, active_connection); + if (!connection) { + g_warning ("%s: couldn't find the default active connection's NMConnection!", __func__); + continue; + } + + devices = nm_active_connection_get_devices (active_connection); + if (devices && devices->len > 0) + info_dialog_add_page (notebook, + connection, + nm_active_connection_get_default (active_connection), + g_ptr_array_index (devices, 0)); + else { + if (NM_IS_VPN_CONNECTION (active_connection)) { + const char *spec_object = nm_active_connection_get_specific_object (active_connection); + NMConnection *parent_con = get_connection_for_active_path (applet, spec_object); + + info_dialog_add_page_for_vpn (notebook, connection, active_connection, parent_con); + } else { + g_warning ("Active connection %s had no devices and was not a VPN!", + nm_object_get_path (NM_OBJECT (active_connection))); + continue; + } + } + + pages++; + } + + if (pages == 0) { + /* Shouldn't really happen but ... */ + info_dialog_show_error (_("No valid active connections found!")); + return NULL; + } + + return GTK_WIDGET (gtk_builder_get_object (applet->info_dialog_ui, "info_dialog")); +} + +void +applet_info_dialog_show (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = info_dialog_update (applet); + if (!dialog) + return; + + g_signal_connect (dialog, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), dialog); + g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_hide), dialog); + gtk_widget_realize (dialog); + gtk_window_set_position (GTK_WINDOW(dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_window_present_with_time (GTK_WINDOW (dialog), + gdk_x11_get_server_time (gtk_widget_get_window (dialog))); +} + +#if !GTK_CHECK_VERSION(2,23,0) +static void +about_dialog_handle_url_cb (GtkAboutDialog *about, const gchar *url, gpointer data) +{ + gboolean ret; + char *cmdline; + GdkScreen *screen; + + screen = gtk_window_get_screen (GTK_WINDOW (about)); + + cmdline = g_strconcat ("gnome-open ", url, NULL); + ret = gdk_spawn_command_line_on_screen (screen, cmdline, NULL); + g_free (cmdline); + + if (ret == FALSE) { + cmdline = g_strconcat ("xdg-open ", url, NULL); + ret = gdk_spawn_command_line_on_screen (screen, cmdline, NULL); + g_free (cmdline); + } +} +#endif + +void +applet_about_dialog_show (NMApplet *applet) +{ +#if !GTK_CHECK_VERSION(2,23,0) + gtk_about_dialog_set_url_hook (about_dialog_handle_url_cb, NULL, NULL); +#endif + gtk_show_about_dialog (NULL, + "version", VERSION, + "copyright", _("Copyright \xc2\xa9 2004-2011 Red Hat, Inc.\n" + "Copyright \xc2\xa9 2005-2008 Novell, Inc.\n" + "and many other community contributors and translators"), + "comments", _("Notification area applet for managing your network devices and connections."), + "website", "http://www.gnome.org/projects/NetworkManager/", + "website-label", _("NetworkManager Website"), + "logo-icon-name", GTK_STOCK_NETWORK, + NULL); +} + +GtkWidget * +applet_warning_dialog_show (const char *message) +{ + GtkWidget *dialog; + + dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, message, NULL); + + /* Bash focus-stealing prevention in the face */ + gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_window_set_default_icon_name (GTK_STOCK_DIALOG_ERROR); + gtk_window_set_title (GTK_WINDOW (dialog), _("Missing resources")); + gtk_widget_realize (dialog); + gtk_widget_show (dialog); + gtk_window_present_with_time (GTK_WINDOW (dialog), + gdk_x11_get_server_time (gtk_widget_get_window (dialog))); + + g_signal_connect_swapped (dialog, "response", + G_CALLBACK (gtk_widget_destroy), + dialog); + return dialog; +} + +GtkWidget * +applet_mobile_password_dialog_new (NMConnection *connection, + GtkEntry **out_secret_entry) +{ + GtkDialog *dialog; + GtkWidget *w; + GtkBox *box = NULL, *vbox = NULL; + NMSettingConnection *s_con; + char *tmp; + const char *id; + + dialog = GTK_DIALOG (gtk_dialog_new ()); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_window_set_title (GTK_WINDOW (dialog), _("Mobile broadband network password")); + + w = gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); + w = gtk_dialog_add_button (dialog, GTK_STOCK_OK, GTK_RESPONSE_OK); + gtk_window_set_default (GTK_WINDOW (dialog), w); + + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + g_assert (id); + tmp = g_strdup_printf (_("A password is required to connect to '%s'."), id); + w = gtk_label_new (tmp); + g_free (tmp); + + vbox = GTK_BOX (gtk_dialog_get_content_area (dialog)); + + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + + w = gtk_alignment_new (0.5, 0.5, 0, 1.0); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + +#if GTK_CHECK_VERSION(3,1,6) + box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6)); +#else + box = GTK_BOX (gtk_hbox_new (FALSE, 6)); +#endif + gtk_container_set_border_width (GTK_CONTAINER (box), 6); + gtk_container_add (GTK_CONTAINER (w), GTK_WIDGET (box)); + + gtk_box_pack_start (box, gtk_label_new (_("Password:")), FALSE, FALSE, 0); + + w = gtk_entry_new (); + *out_secret_entry = GTK_ENTRY (w); + gtk_entry_set_activates_default (GTK_ENTRY (w), TRUE); + gtk_box_pack_start (box, w, FALSE, FALSE, 0); + + gtk_widget_show_all (GTK_WIDGET (vbox)); + return GTK_WIDGET (dialog); +} + +/**********************************************************************/ + +static void +mpd_entry_changed (GtkWidget *widget, gpointer user_data) +{ + GtkWidget *dialog = GTK_WIDGET (user_data); + GtkBuilder *builder = g_object_get_data (G_OBJECT (dialog), "builder"); + GtkWidget *entry; + guint32 minlen; + gboolean valid = FALSE; + const char *text, *text2 = NULL, *text3 = NULL; + gboolean match23; + + g_return_if_fail (builder != NULL); + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry")); + if (g_object_get_data (G_OBJECT (entry), "active")) { + minlen = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "minlen")); + text = gtk_entry_get_text (GTK_ENTRY (entry)); + if (text && (strlen (text) < minlen)) + goto done; + } + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + if (g_object_get_data (G_OBJECT (entry), "active")) { + minlen = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "minlen")); + text2 = gtk_entry_get_text (GTK_ENTRY (entry)); + if (text2 && (strlen (text2) < minlen)) + goto done; + } + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + if (g_object_get_data (G_OBJECT (entry), "active")) { + minlen = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "minlen")); + text3 = gtk_entry_get_text (GTK_ENTRY (entry)); + if (text3 && (strlen (text3) < minlen)) + goto done; + } + + /* Validate 2 & 3 if they are supposed to be the same */ + match23 = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (dialog), "match23")); + if (match23) { + if (!text2 || !text3 || strcmp (text2, text3)) + goto done; + } + + valid = TRUE; + +done: + /* Clear any error text in the progress label now that the user has changed something */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_label")); + gtk_label_set_text (GTK_LABEL (widget), ""); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_button")); + g_warn_if_fail (widget != NULL); + gtk_widget_set_sensitive (widget, valid); + if (valid) + gtk_widget_grab_default (widget); +} + +void +applet_mobile_pin_dialog_destroy (GtkWidget *widget) +{ + gtk_widget_hide (widget); + gtk_widget_destroy (widget); +} + +static void +mpd_cancel_dialog (GtkDialog *dialog) +{ + gtk_dialog_response (dialog, GTK_RESPONSE_CANCEL); +} + +static void +show_toggled_cb (GtkWidget *button, gpointer user_data) +{ + GtkWidget *dialog = GTK_WIDGET (user_data); + gboolean show; + GtkWidget *widget; + GtkBuilder *builder; + + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + show = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry")); + gtk_entry_set_visibility (GTK_ENTRY (widget), show); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + gtk_entry_set_visibility (GTK_ENTRY (widget), show); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + gtk_entry_set_visibility (GTK_ENTRY (widget), show); +} + +GtkWidget * +applet_mobile_pin_dialog_new (const char *title, + const char *header, + const char *desc, + const char *show_password_label, + gboolean show_auto_unlock_checkbox) +{ + char *str; + GtkWidget *dialog; + GtkWidget *widget; + GError *error = NULL; + GtkBuilder *builder; + + g_return_val_if_fail (title != NULL, NULL); + g_return_val_if_fail (header != NULL, NULL); + g_return_val_if_fail (desc != NULL, NULL); + g_return_val_if_fail (show_password_label != NULL, NULL); + + builder = gtk_builder_new (); + + if (!gtk_builder_add_from_file (builder, UIDIR "/gsm-unlock.ui", &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); + g_object_unref (builder); + return NULL; + } + + dialog = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_dialog")); + if (!dialog) { + g_object_unref (builder); + g_return_val_if_fail (dialog != NULL, NULL); + } + + g_object_set_data_full (G_OBJECT (dialog), "builder", builder, (GDestroyNotify) g_object_unref); + + gtk_window_set_position (GTK_WINDOW(dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_window_set_title (GTK_WINDOW (dialog), title); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "header_label")); + str = g_strdup_printf ("%s", header); + gtk_label_set_use_markup (GTK_LABEL (widget), TRUE); + gtk_label_set_markup (GTK_LABEL (widget), str); + g_free (str); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "desc_label")); + gtk_label_set_text (GTK_LABEL (widget), desc); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_password_checkbutton")); + gtk_button_set_label (GTK_BUTTON (widget), show_password_label); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); + g_signal_connect (widget, "toggled", G_CALLBACK (show_toggled_cb), dialog); + show_toggled_cb (widget, dialog); + + g_signal_connect (dialog, "delete-event", G_CALLBACK (mpd_cancel_dialog), NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "save_checkbutton")); + if (show_auto_unlock_checkbox) + g_object_set_data (G_OBJECT (widget), "active", GUINT_TO_POINTER (TRUE)); + + mpd_entry_changed (NULL, dialog); + + return dialog; +} + +void +applet_mobile_pin_dialog_present (GtkWidget *dialog, gboolean now) +{ + GtkBuilder *builder; + GtkWidget *widget; + + g_return_if_fail (dialog != NULL); + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + gtk_widget_show_all (dialog); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_hbox")); + gtk_widget_hide (widget); + + /* Hide inactive entries */ + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + if (!g_object_get_data (G_OBJECT (widget), "active")) { + gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_label")); + gtk_widget_hide (widget); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + if (!g_object_get_data (G_OBJECT (widget), "active")) { + gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_label")); + gtk_widget_hide (widget); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "save_checkbutton")); + if (!g_object_get_data (G_OBJECT (widget), "active")) + gtk_widget_hide (widget); + + /* Need to resize the dialog after hiding widgets */ + gtk_window_resize (GTK_WINDOW (dialog), 400, 100); + + /* Show the dialog */ + gtk_widget_realize (dialog); + if (now) + gtk_window_present_with_time (GTK_WINDOW (dialog), + gdk_x11_get_server_time (gtk_widget_get_window (dialog))); + else + gtk_window_present (GTK_WINDOW (dialog)); +} + +static void +mpd_entry_filter (GtkEntry *entry, + const char *text, + gint length, + gint *position, + gpointer user_data) +{ + GtkEditable *editable = GTK_EDITABLE (entry); + int i, count = 0; + gchar *result = g_malloc0 (length); + + /* Digits only */ + for (i = 0; i < length; i++) { + if (isdigit (text[i])) + result[count++] = text[i]; + } + + if (count > 0) { + g_signal_handlers_block_by_func (G_OBJECT (editable), + G_CALLBACK (mpd_entry_filter), + user_data); + gtk_editable_insert_text (editable, result, count, position); + g_signal_handlers_unblock_by_func (G_OBJECT (editable), + G_CALLBACK (mpd_entry_filter), + user_data); + } + g_signal_stop_emission_by_name (G_OBJECT (editable), "insert-text"); + g_free (result); +} + +static void +mpd_set_entry (GtkWidget *dialog, + const char *entry_name, + const char *label_name, + const char *label, + guint32 minlen, + guint32 maxlen) +{ + GtkBuilder *builder; + GtkWidget *widget; + gboolean entry2_active = FALSE; + gboolean entry3_active = FALSE; + + g_return_if_fail (dialog != NULL); + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, label_name)); + gtk_label_set_text (GTK_LABEL (widget), label); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, entry_name)); + g_signal_connect (widget, "changed", G_CALLBACK (mpd_entry_changed), dialog); + g_signal_connect (widget, "insert-text", G_CALLBACK (mpd_entry_filter), NULL); + + if (maxlen) + gtk_entry_set_max_length (GTK_ENTRY (widget), maxlen); + g_object_set_data (G_OBJECT (widget), "minlen", GUINT_TO_POINTER (minlen)); + + /* Tag it so we know it's active */ + g_object_set_data (G_OBJECT (widget), "active", GUINT_TO_POINTER (1)); + + /* Make a single-entry dialog look better */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + entry2_active = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (widget), "active")); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + entry3_active = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (widget), "active")); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "table14")); + if (entry2_active || entry3_active) + gtk_table_set_row_spacings (GTK_TABLE (widget), 6); + else + gtk_table_set_row_spacings (GTK_TABLE (widget), 0); + + mpd_entry_changed (NULL, dialog); +} + +void +applet_mobile_pin_dialog_set_entry1 (GtkWidget *dialog, + const char *label, + guint32 minlen, + guint32 maxlen) +{ + mpd_set_entry (dialog, "code1_entry", "code1_label", label, minlen, maxlen); +} + +void +applet_mobile_pin_dialog_set_entry2 (GtkWidget *dialog, + const char *label, + guint32 minlen, + guint32 maxlen) +{ + mpd_set_entry (dialog, "code2_entry", "code2_label", label, minlen, maxlen); +} + +void +applet_mobile_pin_dialog_set_entry3 (GtkWidget *dialog, + const char *label, + guint32 minlen, + guint32 maxlen) +{ + mpd_set_entry (dialog, "code3_entry", "code3_label", label, minlen, maxlen); +} + +void applet_mobile_pin_dialog_match_23 (GtkWidget *dialog, gboolean match) +{ + g_return_if_fail (dialog != NULL); + + g_object_set_data (G_OBJECT (dialog), "match23", GUINT_TO_POINTER (match)); +} + +static const char * +mpd_get_entry (GtkWidget *dialog, const char *entry_name) +{ + GtkBuilder *builder; + GtkWidget *widget; + + g_return_val_if_fail (dialog != NULL, NULL); + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_val_if_fail (builder != NULL, NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, entry_name)); + return gtk_entry_get_text (GTK_ENTRY (widget)); +} + +const char * +applet_mobile_pin_dialog_get_entry1 (GtkWidget *dialog) +{ + return mpd_get_entry (dialog, "code1_entry"); +} + +const char * +applet_mobile_pin_dialog_get_entry2 (GtkWidget *dialog) +{ + return mpd_get_entry (dialog, "code2_entry"); +} + +const char * +applet_mobile_pin_dialog_get_entry3 (GtkWidget *dialog) +{ + return mpd_get_entry (dialog, "code3_entry"); +} + +gboolean +applet_mobile_pin_dialog_get_auto_unlock (GtkWidget *dialog) +{ + GtkBuilder *builder; + GtkWidget *widget; + + g_return_val_if_fail (dialog != NULL, FALSE); + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_val_if_fail (builder != NULL, FALSE); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "save_checkbutton")); + return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); +} + +void +applet_mobile_pin_dialog_start_spinner (GtkWidget *dialog, const char *text) +{ + GtkBuilder *builder; + GtkWidget *spinner, *widget, *hbox, *align; + + g_return_if_fail (dialog != NULL); + g_return_if_fail (text != NULL); + + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + spinner = gtk_spinner_new (); + g_return_if_fail (spinner != NULL); + g_object_set_data (G_OBJECT (dialog), "spinner", spinner); + + align = GTK_WIDGET (gtk_builder_get_object (builder, "spinner_alignment")); + gtk_container_add (GTK_CONTAINER (align), spinner); + gtk_spinner_start (GTK_SPINNER (spinner)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_label")); + gtk_label_set_text (GTK_LABEL (widget), text); + gtk_widget_show (widget); + + hbox = GTK_WIDGET (gtk_builder_get_object (builder, "progress_hbox")); + gtk_widget_show_all (hbox); + + /* Desensitize everything while spinning */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry")); + gtk_widget_set_sensitive (widget, FALSE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + gtk_widget_set_sensitive (widget, FALSE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + gtk_widget_set_sensitive (widget, FALSE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_button")); + gtk_widget_set_sensitive (widget, FALSE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_cancel_button")); + gtk_widget_set_sensitive (widget, FALSE); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_password_checkbutton")); + gtk_widget_set_sensitive (widget, FALSE); +} + +void +applet_mobile_pin_dialog_stop_spinner (GtkWidget *dialog, const char *text) +{ + GtkBuilder *builder; + GtkWidget *spinner, *widget, *align; + + g_return_if_fail (dialog != NULL); + + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + spinner = g_object_get_data (G_OBJECT (dialog), "spinner"); + g_return_if_fail (spinner != NULL); + gtk_spinner_stop (GTK_SPINNER (spinner)); + g_object_set_data (G_OBJECT (dialog), "spinner", NULL); + + /* Remove it from the alignment */ + align = GTK_WIDGET (gtk_builder_get_object (builder, "spinner_alignment")); + gtk_container_remove (GTK_CONTAINER (align), spinner); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_label")); + if (text) { + gtk_label_set_text (GTK_LABEL (widget), text); + gtk_widget_show (widget); + } else + gtk_widget_hide (widget); + + /* Resensitize stuff */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry")); + gtk_widget_set_sensitive (widget, TRUE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + gtk_widget_set_sensitive (widget, TRUE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + gtk_widget_set_sensitive (widget, TRUE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_button")); + gtk_widget_set_sensitive (widget, TRUE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_cancel_button")); + gtk_widget_set_sensitive (widget, TRUE); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_password_checkbutton")); + gtk_widget_set_sensitive (widget, TRUE); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/connection-editor/page-wifi-security.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/connection-editor/page-wifi-security.c --- network-manager-applet-0.9.4.1/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/connection-editor/page-wifi-security.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/connection-editor/page-wifi-security.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,547 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2011 Red Hat, Inc. + */ + +#include "config.h" + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "wireless-security.h" +#include "page-wifi.h" +#include "page-wifi-security.h" +#include "nm-connection-editor.h" + + +G_DEFINE_TYPE (CEPageWifiSecurity, ce_page_wifi_security, CE_TYPE_PAGE) + + +#define S_NAME_COLUMN 0 +#define S_SEC_COLUMN 1 +#define S_ADHOC_VALID_COLUMN 2 + +static gboolean +find_proto (NMSettingWirelessSecurity *sec, const char *item) +{ + guint32 i; + + for (i = 0; i < nm_setting_wireless_security_get_num_protos (sec); i++) { + if (!strcmp (item, nm_setting_wireless_security_get_proto (sec, i))) + return TRUE; + } + return FALSE; +} + +static NMUtilsSecurityType +get_default_type_for_security (NMSettingWirelessSecurity *sec) +{ + const char *key_mgmt, *auth_alg; + + g_return_val_if_fail (sec != NULL, NMU_SEC_NONE); + + key_mgmt = nm_setting_wireless_security_get_key_mgmt (sec); + auth_alg = nm_setting_wireless_security_get_auth_alg (sec); + + /* No IEEE 802.1x */ + if (!strcmp (key_mgmt, "none")) + return NMU_SEC_STATIC_WEP; + + if (!strcmp (key_mgmt, "ieee8021x")) { + if (auth_alg && !strcmp (auth_alg, "leap")) + return NMU_SEC_LEAP; + return NMU_SEC_DYNAMIC_WEP; + } + + if ( !strcmp (key_mgmt, "wpa-none") + || !strcmp (key_mgmt, "wpa-psk")) { + if (find_proto (sec, "rsn")) + return NMU_SEC_WPA2_PSK; + else if (find_proto (sec, "wpa")) + return NMU_SEC_WPA_PSK; + else + return NMU_SEC_WPA_PSK; + } + + if (!strcmp (key_mgmt, "wpa-eap")) { + if (find_proto (sec, "rsn")) + return NMU_SEC_WPA2_ENTERPRISE; + else if (find_proto (sec, "wpa")) + return NMU_SEC_WPA_ENTERPRISE; + else + return NMU_SEC_WPA_ENTERPRISE; + } + + return NMU_SEC_INVALID; +} + +static void +stuff_changed_cb (WirelessSecurity *sec, gpointer user_data) +{ + ce_page_changed (CE_PAGE (user_data)); +} + +static void +wsec_size_group_clear (GtkSizeGroup *group) +{ + GSList *children; + GSList *iter; + + g_return_if_fail (group != NULL); + + children = gtk_size_group_get_widgets (group); + for (iter = children; iter; iter = g_slist_next (iter)) + gtk_size_group_remove_widget (group, GTK_WIDGET (iter->data)); +} + +static WirelessSecurity * +wireless_security_combo_get_active (CEPageWifiSecurity *self) +{ + GtkTreeIter iter; + GtkTreeModel *model; + WirelessSecurity *sec = NULL; + + model = gtk_combo_box_get_model (self->security_combo); + gtk_combo_box_get_active_iter (self->security_combo, &iter); + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + + return sec; +} + +static void +wireless_security_combo_changed (GtkComboBox *combo, + gpointer user_data) +{ + CEPageWifiSecurity *self = CE_PAGE_WIFI_SECURITY (user_data); + GtkWidget *vbox; + GList *elt, *children; + WirelessSecurity *sec; + + vbox = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "wifi_security_vbox")); + g_assert (vbox); + + wsec_size_group_clear (self->group); + + /* Remove any previous wifi security widgets */ + children = gtk_container_get_children (GTK_CONTAINER (vbox)); + for (elt = children; elt; elt = g_list_next (elt)) + gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); + + sec = wireless_security_combo_get_active (self); + if (sec) { + GtkWidget *sec_widget; + GtkWidget *widget, *parent; + + sec_widget = wireless_security_get_widget (sec); + g_assert (sec_widget); + parent = gtk_widget_get_parent (sec_widget); + if (parent) + gtk_container_remove (GTK_CONTAINER (parent), sec_widget); + + widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "wifi_security_combo_label")); + gtk_size_group_add_widget (self->group, widget); + wireless_security_add_to_size_group (sec, self->group); + + gtk_container_add (GTK_CONTAINER (vbox), sec_widget); + wireless_security_unref (sec); + } + + ce_page_changed (CE_PAGE (self)); +} + +static void +add_security_item (CEPageWifiSecurity *self, + WirelessSecurity *sec, + GtkListStore *model, + GtkTreeIter *iter, + const char *text, + gboolean adhoc_valid) +{ + wireless_security_set_changed_notify (sec, stuff_changed_cb, self); + gtk_list_store_append (model, iter); + gtk_list_store_set (model, iter, + S_NAME_COLUMN, text, + S_SEC_COLUMN, sec, + S_ADHOC_VALID_COLUMN, adhoc_valid, + -1); + wireless_security_unref (sec); +} + +static void +set_sensitive (GtkCellLayout *cell_layout, + GtkCellRenderer *cell, + GtkTreeModel *tree_model, + GtkTreeIter *iter, + gpointer data) +{ + gboolean *adhoc = data; + gboolean sensitive = TRUE, adhoc_valid = TRUE; + + gtk_tree_model_get (tree_model, iter, S_ADHOC_VALID_COLUMN, &adhoc_valid, -1); + if (*adhoc && !adhoc_valid) + sensitive = FALSE; + + g_object_set (cell, "sensitive", sensitive, NULL); +} + +static void +finish_setup (CEPageWifiSecurity *self, gpointer unused, GError *error, gpointer user_data) +{ + CEPage *parent = CE_PAGE (self); + NMSettingWireless *s_wireless; + NMSettingWirelessSecurity *s_wireless_sec; + NMConnection *connection = parent->connection; + gboolean is_adhoc = FALSE; + GtkListStore *sec_model; + GtkTreeIter iter; + const char *mode; + const char *security; + guint32 dev_caps = 0; + NMUtilsSecurityType default_type = NMU_SEC_NONE; + int active = -1; + int item = 0; + GtkComboBox *combo; + GtkCellRenderer *renderer; + + if (error) + return; + + s_wireless = nm_connection_get_setting_wireless (connection); + g_assert (s_wireless); + + combo = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_security_combo"))); + + dev_caps = NM_WIFI_DEVICE_CAP_CIPHER_WEP40 + | NM_WIFI_DEVICE_CAP_CIPHER_WEP104 + | NM_WIFI_DEVICE_CAP_CIPHER_TKIP + | NM_WIFI_DEVICE_CAP_CIPHER_CCMP + | NM_WIFI_DEVICE_CAP_WPA + | NM_WIFI_DEVICE_CAP_RSN; + + mode = nm_setting_wireless_get_mode (s_wireless); + if (mode && !strcmp (mode, "adhoc")) + is_adhoc = TRUE; + self->adhoc = is_adhoc; + + s_wireless_sec = nm_connection_get_setting_wireless_security (connection); + + security = nm_setting_wireless_get_security (s_wireless); + if (!security || strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)) + s_wireless_sec = NULL; + if (s_wireless_sec) + default_type = get_default_type_for_security (s_wireless_sec); + + sec_model = gtk_list_store_new (3, G_TYPE_STRING, wireless_security_get_g_type (), G_TYPE_BOOLEAN); + + if (nm_utils_security_valid (NMU_SEC_NONE, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { + gtk_list_store_append (sec_model, &iter); + gtk_list_store_set (sec_model, &iter, + S_NAME_COLUMN, C_("Wi-Fi/Ethernet security", "None"), + S_ADHOC_VALID_COLUMN, TRUE, + -1); + if (default_type == NMU_SEC_NONE) + active = item; + item++; + } + + if (nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { + WirelessSecurityWEPKey *ws_wep; + NMWepKeyType wep_type = NM_WEP_KEY_TYPE_KEY; + + if (default_type == NMU_SEC_STATIC_WEP) { + NMSettingWirelessSecurity *s_wsec; + + s_wsec = nm_connection_get_setting_wireless_security (connection); + if (s_wsec) + wep_type = nm_setting_wireless_security_get_wep_key_type (s_wsec); + if (wep_type == NM_WEP_KEY_TYPE_UNKNOWN) + wep_type = NM_WEP_KEY_TYPE_KEY; + } + + ws_wep = ws_wep_key_new (connection, NM_WEP_KEY_TYPE_KEY, FALSE, FALSE); + if (ws_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, + &iter, _("WEP 40/128-bit Key (Hex or ASCII)"), + TRUE); + if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_KEY)) + active = item; + item++; + } + + ws_wep = ws_wep_key_new (connection, NM_WEP_KEY_TYPE_PASSPHRASE, FALSE, FALSE); + if (ws_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, + &iter, _("WEP 128-bit Passphrase"), TRUE); + if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_PASSPHRASE)) + active = item; + item++; + } + } + + if (nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { + WirelessSecurityLEAP *ws_leap; + + ws_leap = ws_leap_new (connection, FALSE); + if (ws_leap) { + add_security_item (self, WIRELESS_SECURITY (ws_leap), sec_model, + &iter, _("LEAP"), FALSE); + if ((active < 0) && (default_type == NMU_SEC_LEAP)) + active = item; + item++; + } + } + + if (nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { + WirelessSecurityDynamicWEP *ws_dynamic_wep; + + ws_dynamic_wep = ws_dynamic_wep_new (connection, TRUE, FALSE); + if (ws_dynamic_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_dynamic_wep), sec_model, + &iter, _("Dynamic WEP (802.1x)"), FALSE); + if ((active < 0) && (default_type == NMU_SEC_DYNAMIC_WEP)) + active = item; + item++; + } + } + + if ( nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, FALSE, is_adhoc, 0, 0, 0) + || nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { + WirelessSecurityWPAPSK *ws_wpa_psk; + + ws_wpa_psk = ws_wpa_psk_new (connection, FALSE); + if (ws_wpa_psk) { + add_security_item (self, WIRELESS_SECURITY (ws_wpa_psk), sec_model, + &iter, _("WPA & WPA2 Personal"), FALSE); + if ((active < 0) && ((default_type == NMU_SEC_WPA_PSK) || (default_type == NMU_SEC_WPA2_PSK))) + active = item; + item++; + } + } + + if ( nm_utils_security_valid (NMU_SEC_WPA_ENTERPRISE, dev_caps, FALSE, is_adhoc, 0, 0, 0) + || nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { + WirelessSecurityWPAEAP *ws_wpa_eap; + + ws_wpa_eap = ws_wpa_eap_new (connection, TRUE, FALSE); + if (ws_wpa_eap) { + add_security_item (self, WIRELESS_SECURITY (ws_wpa_eap), sec_model, + &iter, _("WPA & WPA2 Enterprise"), FALSE); + if ((active < 0) && ((default_type == NMU_SEC_WPA_ENTERPRISE) || (default_type == NMU_SEC_WPA2_ENTERPRISE))) + active = item; + item++; + } + } + + gtk_combo_box_set_model (combo, GTK_TREE_MODEL (sec_model)); + gtk_cell_layout_clear (GTK_CELL_LAYOUT (combo)); + + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", S_NAME_COLUMN, NULL); + gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, set_sensitive, &self->adhoc, NULL); + + gtk_combo_box_set_active (combo, active < 0 ? 0 : (guint32) active); + g_object_unref (G_OBJECT (sec_model)); + + self->security_combo = combo; + + wireless_security_combo_changed (combo, self); + g_signal_connect (combo, "changed", + G_CALLBACK (wireless_security_combo_changed), + self); +} + +CEPage * +ce_page_wifi_security_new (NMConnection *connection, + GtkWindow *parent_window, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error) +{ + CEPageWifiSecurity *self; + NMSettingWireless *s_wireless; + NMSettingWirelessSecurity *s_wsec = NULL; + NMUtilsSecurityType default_type = NMU_SEC_NONE; + const char *security; + + s_wireless = nm_connection_get_setting_wireless (connection); + if (!s_wireless) { + g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load Wi-Fi security user interface; missing Wi-Fi setting.")); + return NULL; + } + + self = CE_PAGE_WIFI_SECURITY (ce_page_new (CE_TYPE_PAGE_WIFI_SECURITY, + connection, + parent_window, + client, + settings, + UIDIR "/ce-page-wifi-security.ui", + "WifiSecurityPage", + _("Wi-Fi Security"))); + if (!self) { + g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load Wi-Fi security user interface.")); + return NULL; + } + + self->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + + s_wsec = nm_connection_get_setting_wireless_security (connection); + + security = nm_setting_wireless_get_security (s_wireless); + if (!security || strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)) + s_wsec = NULL; + if (s_wsec) + default_type = get_default_type_for_security (s_wsec); + + /* Get secrets if the connection is not 802.1x enabled */ + if ( default_type == NMU_SEC_STATIC_WEP + || default_type == NMU_SEC_LEAP + || default_type == NMU_SEC_WPA_PSK + || default_type == NMU_SEC_WPA2_PSK) { + *out_secrets_setting_name = NM_SETTING_WIRELESS_SECURITY_SETTING_NAME; + } + + /* Or if it is 802.1x enabled */ + if ( default_type == NMU_SEC_DYNAMIC_WEP + || default_type == NMU_SEC_WPA_ENTERPRISE + || default_type == NMU_SEC_WPA2_ENTERPRISE) { + *out_secrets_setting_name = NM_SETTING_802_1X_SETTING_NAME; + } + + g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); + + return CE_PAGE (self); +} + +static void +ce_page_wifi_security_init (CEPageWifiSecurity *self) +{ + self->disposed = FALSE; +} + +static void +dispose (GObject *object) +{ + CEPageWifiSecurity *self = CE_PAGE_WIFI_SECURITY (object); + + if (self->disposed) + return; + + self->disposed = TRUE; + + if (self->group) + g_object_unref (self->group); + + G_OBJECT_CLASS (ce_page_wifi_security_parent_class)->dispose (object); +} + +static gboolean +validate (CEPage *page, NMConnection *connection, GError **error) +{ + CEPageWifiSecurity *self = CE_PAGE_WIFI_SECURITY (page); + NMSettingWireless *s_wireless; + WirelessSecurity *sec; + gboolean valid = FALSE; + const char *mode; + + s_wireless = nm_connection_get_setting_wireless (connection); + g_assert (s_wireless); + + /* Kernel Ad-Hoc WPA support is busted; it creates open networks. Disable + * WPA when Ad-Hoc is selected. set_sensitive() will pick up self->adhoc + * and do the right thing. + */ + mode = nm_setting_wireless_get_mode (s_wireless); + if (g_strcmp0 (mode, NM_SETTING_WIRELESS_MODE_ADHOC) == 0) + self->adhoc = TRUE; + else + self->adhoc = FALSE; + + sec = wireless_security_combo_get_active (self); + if (sec) { + const GByteArray *ssid = nm_setting_wireless_get_ssid (s_wireless); + + if (ssid) { + /* FIXME: get failed property and error out of wifi security objects */ + valid = wireless_security_validate (sec, ssid); + if (valid) + wireless_security_fill_connection (sec, connection); + else + g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Invalid Wi-Fi security"); + } else { + g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Missing SSID"); + valid = FALSE; + } + + if (self->adhoc) { + if (!wireless_security_adhoc_compatible (sec)) { + g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Security not compatible with Ad-Hoc mode"); + valid = FALSE; + } + } + + wireless_security_unref (sec); + } else { + /* No security, unencrypted */ + g_object_set (s_wireless, NM_SETTING_WIRELESS_SEC, NULL, NULL); + nm_connection_remove_setting (connection, NM_TYPE_SETTING_WIRELESS_SECURITY); + nm_connection_remove_setting (connection, NM_TYPE_SETTING_802_1X); + valid = TRUE; + } + + return valid; +} + +static GtkWidget * +nag_user (CEPage *page) +{ + WirelessSecurity *sec; + GtkWidget *nag = NULL; + + sec = wireless_security_combo_get_active (CE_PAGE_WIFI_SECURITY (page)); + if (sec) { + nag = wireless_security_nag_user (sec); + wireless_security_unref (sec); + } + return nag; +} + +static void +ce_page_wifi_security_class_init (CEPageWifiSecurityClass *wireless_security_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (wireless_security_class); + CEPageClass *parent_class = CE_PAGE_CLASS (wireless_security_class); + + /* virtual methods */ + object_class->dispose = dispose; + + parent_class->validate = validate; + parent_class->nag_user = nag_user; +} diff -Nru network-manager-applet-0.9.4.1/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/libnm-gtk/nm-wifi-dialog.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/libnm-gtk/nm-wifi-dialog.c --- network-manager-applet-0.9.4.1/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/libnm-gtk/nm-wifi-dialog.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/libnm-gtk/nm-wifi-dialog.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1448 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2007 - 2012 Red Hat, Inc. + */ + +#include + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "nm-wifi-dialog.h" +#include "wireless-security.h" +#include "nm-ui-utils.h" + +G_DEFINE_TYPE (NMAWifiDialog, nma_wifi_dialog, GTK_TYPE_DIALOG) + +#define NMA_WIFI_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ + NMA_TYPE_WIFI_DIALOG, \ + NMAWifiDialogPrivate)) + +typedef struct { + NMAWifiDialog *self; + NMConnection *connection; + gboolean canceled; +} GetSecretsInfo; + +typedef struct { + NMClient *client; + NMRemoteSettings *settings; + + GtkBuilder *builder; + + NMConnection *connection; + NMDevice *device; + NMAccessPoint *ap; + gboolean adhoc_create; + + GtkTreeModel *device_model; + GtkTreeModel *connection_model; + GtkSizeGroup *group; + GtkWidget *sec_combo; + + gboolean nag_ignored; + gboolean network_name_focus; + + gboolean secrets_only; + + guint revalidate_id; + + GetSecretsInfo *secrets_info; + + gboolean disposed; +} NMAWifiDialogPrivate; + +#define D_NAME_COLUMN 0 +#define D_DEV_COLUMN 1 + +#define S_NAME_COLUMN 0 +#define S_SEC_COLUMN 1 + +#define C_NAME_COLUMN 0 +#define C_CON_COLUMN 1 +#define C_SEP_COLUMN 2 +#define C_NEW_COLUMN 3 + +static gboolean security_combo_init (NMAWifiDialog *self, gboolean secrets_only); +static void ssid_entry_changed (GtkWidget *entry, gpointer user_data); + +void +nma_wifi_dialog_set_nag_ignored (NMAWifiDialog *self, gboolean ignored) +{ + g_return_if_fail (self != NULL); + + NMA_WIFI_DIALOG_GET_PRIVATE (self)->nag_ignored = ignored; +} + +gboolean +nma_wifi_dialog_get_nag_ignored (NMAWifiDialog *self) +{ + g_return_val_if_fail (self != NULL, FALSE); + + return NMA_WIFI_DIALOG_GET_PRIVATE (self)->nag_ignored; +} + +static void +size_group_clear (GtkSizeGroup *group) +{ + GSList *iter; + + g_return_if_fail (group != NULL); + + iter = gtk_size_group_get_widgets (group); + while (iter) { + gtk_size_group_remove_widget (group, GTK_WIDGET (iter->data)); + iter = gtk_size_group_get_widgets (group); + } +} + +static void +size_group_add_permanent (GtkSizeGroup *group, + GtkBuilder *builder) +{ + GtkWidget *widget; + + g_return_if_fail (group != NULL); + g_return_if_fail (builder != NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "network_name_label")); + gtk_size_group_add_widget (group, widget); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "security_combo_label")); + gtk_size_group_add_widget (group, widget); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "device_label")); + gtk_size_group_add_widget (group, widget); +} + +static void +security_combo_changed (GtkWidget *combo, + gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkWidget *vbox, *sec_widget, *def_widget; + GList *elt, *children; + GtkTreeIter iter; + GtkTreeModel *model; + WirelessSecurity *sec = NULL; + + vbox = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_vbox")); + g_assert (vbox); + + size_group_clear (priv->group); + + /* Remove any previous wireless security widgets */ + children = gtk_container_get_children (GTK_CONTAINER (vbox)); + for (elt = children; elt; elt = g_list_next (elt)) + gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); + g_list_free (children); + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + g_warning ("%s: no active security combo box item.", __func__); + return; + } + + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + if (!sec) { + /* Revalidate dialog if the user picked "None" so the OK button + * gets enabled if there's already a valid SSID. + */ + ssid_entry_changed (NULL, self); + return; + } + + sec_widget = wireless_security_get_widget (sec); + g_assert (sec_widget); + gtk_widget_unparent (sec_widget); + + size_group_add_permanent (priv->group, priv->builder); + wireless_security_add_to_size_group (sec, priv->group); + + gtk_container_add (GTK_CONTAINER (vbox), sec_widget); + + /* Re-validate */ + wireless_security_changed_cb (NULL, sec); + + /* Set focus to the security method's default widget, but only if the + * network name entry should not be focused. + */ + if (!priv->network_name_focus && sec->default_field) { + def_widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, sec->default_field)); + if (def_widget) + gtk_widget_grab_focus (def_widget); + } + + wireless_security_unref (sec); +} + +static void +security_combo_changed_manually (GtkWidget *combo, + gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + /* Flag that the combo was changed manually to allow focus to move + * to the security method's default widget instead of the network name. + */ + priv->network_name_focus = FALSE; + security_combo_changed (combo, user_data); +} + +static GByteArray * +validate_dialog_ssid (NMAWifiDialog *self) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkWidget *widget; + const char *ssid; + guint32 ssid_len; + GByteArray *ssid_ba; + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + + ssid = gtk_entry_get_text (GTK_ENTRY (widget)); + + if (!ssid || strlen (ssid) == 0 || strlen (ssid) > 32) + return NULL; + + ssid_len = strlen (ssid); + ssid_ba = g_byte_array_sized_new (ssid_len); + g_byte_array_append (ssid_ba, (unsigned char *) ssid, ssid_len); + return ssid_ba; +} + +static void +stuff_changed_cb (WirelessSecurity *sec, gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GByteArray *ssid = NULL; + gboolean free_ssid = TRUE; + gboolean valid = FALSE; + + if (priv->connection) { + NMSettingWireless *s_wireless; + s_wireless = nm_connection_get_setting_wireless (priv->connection); + g_assert (s_wireless); + ssid = (GByteArray *) nm_setting_wireless_get_ssid (s_wireless); + free_ssid = FALSE; + } else { + ssid = validate_dialog_ssid (self); + } + + if (ssid) { + valid = wireless_security_validate (sec, ssid); + if (free_ssid) + g_byte_array_free (ssid, TRUE); + } + + /* But if there's an in-progress secrets call (which might require authorization) + * then we don't want to enable the OK button because we don't have all the + * connection details yet. + */ + if (priv->secrets_info) + valid = FALSE; + + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, valid); +} + +static void +ssid_entry_changed (GtkWidget *entry, gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkTreeIter iter; + WirelessSecurity *sec = NULL; + GtkTreeModel *model; + gboolean valid = FALSE; + GByteArray *ssid; + + /* If the network name entry was touched at all, allow focus to go to + * the default widget of the security method now. + */ + priv->network_name_focus = FALSE; + + ssid = validate_dialog_ssid (self); + if (!ssid) + goto out; + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->sec_combo)); + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->sec_combo), &iter)) + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + + if (sec) { + valid = wireless_security_validate (sec, ssid); + wireless_security_unref (sec); + } else { + valid = TRUE; + } + +out: + /* But if there's an in-progress secrets call (which might require authorization) + * then we don't want to enable the OK button because we don't have all the + * connection details yet. + */ + if (priv->secrets_info) + valid = FALSE; + + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, valid); +} + +static void +connection_combo_changed (GtkWidget *combo, + gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkTreeIter iter; + GtkTreeModel *model; + gboolean is_new = FALSE; + NMSettingWireless *s_wireless; + char *utf8_ssid; + GtkWidget *widget; + + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + g_warning ("%s: no active connection combo box item.", __func__); + return; + } + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + + if (priv->connection) + g_object_unref (priv->connection); + + gtk_tree_model_get (model, &iter, + C_CON_COLUMN, &priv->connection, + C_NEW_COLUMN, &is_new, -1); + + if (!security_combo_init (self, priv->secrets_only)) { + g_warning ("Couldn't change Wi-Fi security combo box."); + return; + } + security_combo_changed (priv->sec_combo, self); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + if (priv->connection) { + const GByteArray *ssid; + + s_wireless = nm_connection_get_setting_wireless (priv->connection); + ssid = nm_setting_wireless_get_ssid (s_wireless); + utf8_ssid = nm_utils_ssid_to_utf8 (ssid); + gtk_entry_set_text (GTK_ENTRY (widget), utf8_ssid); + g_free (utf8_ssid); + } else { + gtk_entry_set_text (GTK_ENTRY (widget), ""); + } + + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")), is_new); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_label")), is_new); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")), is_new); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo_label")), is_new); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_vbox")), is_new); +} + +static gboolean +connection_combo_separator_cb (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) +{ + gboolean is_separator = FALSE; + + gtk_tree_model_get (model, iter, C_SEP_COLUMN, &is_separator, -1); + return is_separator; +} + +static gint +alphabetize_connections (NMConnection *a, NMConnection *b) +{ + NMSettingConnection *asc, *bsc; + + asc = nm_connection_get_setting_connection (a); + bsc = nm_connection_get_setting_connection (b); + + return strcmp (nm_setting_connection_get_id (asc), + nm_setting_connection_get_id (bsc)); +} + +static gboolean +connection_combo_init (NMAWifiDialog *self, NMConnection *connection) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkListStore *store; + int num_added = 0; + GtkTreeIter tree_iter; + GtkWidget *widget; + NMSettingConnection *s_con; + GtkCellRenderer *renderer; + const char *id; + + g_return_val_if_fail (priv->connection == NULL, FALSE); + + /* Clear any old model */ + if (priv->connection_model) + g_object_unref (priv->connection_model); + + /* New model */ + store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_OBJECT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); + priv->connection_model = GTK_TREE_MODEL (store); + + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + id = nm_setting_connection_get_id (s_con); + if (id == NULL) { + /* New connections which will be completed by NM won't have an ID + * yet, but that doesn't matter because we don't show the connection + * combo anyway when there's a predefined connection. + */ + id = "blahblah"; + } + + gtk_list_store_append (store, &tree_iter); + gtk_list_store_set (store, &tree_iter, + C_NAME_COLUMN, id, + C_CON_COLUMN, connection, -1); + } else { + GSList *connections, *iter, *to_add = NULL; + + gtk_list_store_append (store, &tree_iter); + gtk_list_store_set (store, &tree_iter, + C_NAME_COLUMN, _("New..."), + C_NEW_COLUMN, TRUE, -1); + + gtk_list_store_append (store, &tree_iter); + gtk_list_store_set (store, &tree_iter, C_SEP_COLUMN, TRUE, -1); + + connections = nm_remote_settings_list_connections (priv->settings); + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingWireless *s_wireless; + const char *connection_type; + const char *mode; + const GByteArray *setting_mac; + + s_con = nm_connection_get_setting_connection (candidate); + connection_type = s_con ? nm_setting_connection_get_connection_type (s_con) : NULL; + if (!connection_type) + continue; + + if (strcmp (connection_type, NM_SETTING_WIRELESS_SETTING_NAME)) + continue; + + s_wireless = nm_connection_get_setting_wireless (candidate); + if (!s_wireless) + continue; + + /* If creating a new Ad-Hoc network, only show shared network connections */ + if (priv->adhoc_create) { + NMSettingIP4Config *s_ip4; + const char *method = NULL; + + s_ip4 = nm_connection_get_setting_ip4_config (candidate); + if (s_ip4) + method = nm_setting_ip4_config_get_method (s_ip4); + + if (!s_ip4 || strcmp (method, "shared")) + continue; + + /* Ignore non-Ad-Hoc connections too */ + mode = nm_setting_wireless_get_mode (s_wireless); + if (!mode || strcmp (mode, "adhoc")) + continue; + } + + /* Ignore connections that don't apply to the selected device */ + setting_mac = nm_setting_wireless_get_mac_address (s_wireless); + if (setting_mac) { + const char *hw_addr; + + hw_addr = nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (priv->device)); + if (hw_addr) { + struct ether_addr *ether; + + ether = ether_aton (hw_addr); + if (ether && memcmp (setting_mac->data, ether->ether_addr_octet, ETH_ALEN)) + continue; + } + } + + to_add = g_slist_append (to_add, candidate); + } + g_slist_free (connections); + + /* Alphabetize the list then add the connections */ + to_add = g_slist_sort (to_add, (GCompareFunc) alphabetize_connections); + for (iter = to_add; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + s_con = nm_connection_get_setting_connection (candidate); + gtk_list_store_append (store, &tree_iter); + gtk_list_store_set (store, &tree_iter, + C_NAME_COLUMN, nm_setting_connection_get_id (s_con), + C_CON_COLUMN, candidate, -1); + num_added++; + } + g_slist_free (to_add); + } + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "connection_combo")); + + gtk_cell_layout_clear (GTK_CELL_LAYOUT (widget)); + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (widget), renderer, TRUE); + gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (widget), renderer, + "text", C_NAME_COLUMN); + gtk_combo_box_set_wrap_width (GTK_COMBO_BOX (widget), 1); + + gtk_combo_box_set_model (GTK_COMBO_BOX (widget), priv->connection_model); + + gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (widget), + connection_combo_separator_cb, + NULL, + NULL); + + gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); + g_signal_connect (G_OBJECT (widget), "changed", + G_CALLBACK (connection_combo_changed), self); + if (connection || !num_added) { + gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (priv->builder, "connection_label"))); + gtk_widget_hide (widget); + } + gtk_tree_model_get_iter_first (priv->connection_model, &tree_iter); + gtk_tree_model_get (priv->connection_model, &tree_iter, C_CON_COLUMN, &priv->connection, -1); + + return TRUE; +} + +static void +device_combo_changed (GtkWidget *combo, + gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkTreeIter iter; + GtkTreeModel *model; + + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + g_warning ("%s: no active device combo box item.", __func__); + return; + } + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + + g_object_unref (priv->device); + gtk_tree_model_get (model, &iter, D_DEV_COLUMN, &priv->device, -1); + + if (!connection_combo_init (self, NULL)) { + g_warning ("Couldn't change connection combo box."); + return; + } + + if (!security_combo_init (self, priv->secrets_only)) { + g_warning ("Couldn't change Wi-Fi security combo box."); + return; + } + + security_combo_changed (priv->sec_combo, self); +} + +static void +add_device_to_model (GtkListStore *model, NMDevice *device) +{ + GtkTreeIter iter; + const char *desc; + + desc = nma_utils_get_device_description (device); + gtk_list_store_append (model, &iter); + gtk_list_store_set (model, &iter, D_NAME_COLUMN, desc, D_DEV_COLUMN, device, -1); +} + +static gboolean +can_use_device (NMDevice *device) +{ + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + return FALSE; + + if (!NM_IS_DEVICE_WIFI (device)) + return FALSE; + + if (nm_device_get_state (device) < NM_DEVICE_STATE_DISCONNECTED) + return FALSE; + + return TRUE; +} + +static gboolean +device_combo_init (NMAWifiDialog *self, NMDevice *device) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + const GPtrArray *devices; + GtkListStore *store; + int i, num_added = 0; + + g_return_val_if_fail (priv->device == NULL, FALSE); + + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_OBJECT); + priv->device_model = GTK_TREE_MODEL (store); + + if (device) { + if (!can_use_device (device)) + return FALSE; + add_device_to_model (store, device); + num_added++; + } else { + devices = nm_client_get_devices (priv->client); + if (!devices) + return FALSE; + + for (i = 0; devices && (i < devices->len); i++) { + device = NM_DEVICE (g_ptr_array_index (devices, i)); + if (can_use_device (device)) { + add_device_to_model (store, device); + num_added++; + } + } + } + + if (num_added > 0) { + GtkWidget *widget; + GtkTreeIter iter; + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_combo")); + gtk_combo_box_set_model (GTK_COMBO_BOX (widget), priv->device_model); + gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); + g_signal_connect (G_OBJECT (widget), "changed", + G_CALLBACK (device_combo_changed), self); + if (num_added == 1) { + gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_label"))); + gtk_widget_hide (widget); + } + gtk_tree_model_get_iter_first (priv->device_model, &iter); + gtk_tree_model_get (priv->device_model, &iter, D_DEV_COLUMN, &priv->device, -1); + } + + return num_added > 0 ? TRUE : FALSE; +} + +static gboolean +find_proto (NMSettingWirelessSecurity *sec, const char *item) +{ + guint32 i; + + for (i = 0; i < nm_setting_wireless_security_get_num_protos (sec); i++) { + if (!strcmp (item, nm_setting_wireless_security_get_proto (sec, i))) + return TRUE; + } + return FALSE; +} + +static NMUtilsSecurityType +get_default_type_for_security (NMSettingWirelessSecurity *sec, + gboolean have_ap, + guint32 ap_flags, + guint32 dev_caps) +{ + const char *key_mgmt, *auth_alg; + + g_return_val_if_fail (sec != NULL, NMU_SEC_NONE); + + key_mgmt = nm_setting_wireless_security_get_key_mgmt (sec); + auth_alg = nm_setting_wireless_security_get_auth_alg (sec); + + /* No IEEE 802.1x */ + if (!strcmp (key_mgmt, "none")) + return NMU_SEC_STATIC_WEP; + + if ( !strcmp (key_mgmt, "ieee8021x") + && (!have_ap || (ap_flags & NM_802_11_AP_FLAGS_PRIVACY))) { + if (auth_alg && !strcmp (auth_alg, "leap")) + return NMU_SEC_LEAP; + return NMU_SEC_DYNAMIC_WEP; + } + + if ( !strcmp (key_mgmt, "wpa-none") + || !strcmp (key_mgmt, "wpa-psk")) { + if (!have_ap || (ap_flags & NM_802_11_AP_FLAGS_PRIVACY)) { + if (find_proto (sec, "rsn")) + return NMU_SEC_WPA2_PSK; + else if (find_proto (sec, "wpa")) + return NMU_SEC_WPA_PSK; + else + return NMU_SEC_WPA_PSK; + } + } + + if ( !strcmp (key_mgmt, "wpa-eap") + && (!have_ap || (ap_flags & NM_802_11_AP_FLAGS_PRIVACY))) { + if (find_proto (sec, "rsn")) + return NMU_SEC_WPA2_ENTERPRISE; + else if (find_proto (sec, "wpa")) + return NMU_SEC_WPA_ENTERPRISE; + else + return NMU_SEC_WPA_ENTERPRISE; + } + + return NMU_SEC_INVALID; +} + +static void +add_security_item (NMAWifiDialog *self, + WirelessSecurity *sec, + GtkListStore *model, + GtkTreeIter *iter, + const char *text) +{ + wireless_security_set_changed_notify (sec, stuff_changed_cb, self); + gtk_list_store_append (model, iter); + gtk_list_store_set (model, iter, S_NAME_COLUMN, text, S_SEC_COLUMN, sec, -1); + wireless_security_unref (sec); +} + +static void +get_secrets_cb (NMRemoteConnection *connection, + GHashTable *secrets, + GError *error, + gpointer user_data) +{ + GetSecretsInfo *info = user_data; + NMAWifiDialogPrivate *priv; + GHashTableIter hash_iter; + gpointer key, value; + GtkTreeModel *model; + GtkTreeIter iter; + + if (info->canceled) + goto out; + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (info->self); + if (priv->secrets_info == info) { + priv->secrets_info = NULL; + + /* Buttons should only be re-enabled if this secrets response is the + * in-progress one. + */ + gtk_dialog_set_response_sensitive (GTK_DIALOG (info->self), GTK_RESPONSE_CANCEL, TRUE); + gtk_dialog_set_response_sensitive (GTK_DIALOG (info->self), GTK_RESPONSE_OK, TRUE); + } + + if (error) { + g_warning ("%s: error getting connection secrets: (%d) %s", + __func__, + error ? error->code : -1, + error && error->message ? error->message : "(unknown)"); + goto out; + } + + /* User might have changed the connection while the secrets call was in + * progress, so don't try to update the wrong connection with the secrets + * we just received. + */ + if ( (priv->connection != info->connection) + || !secrets + || !g_hash_table_size (secrets)) + goto out; + + /* Try to update the connection's secrets; log errors but we don't care */ + g_hash_table_iter_init (&hash_iter, secrets); + while (g_hash_table_iter_next (&hash_iter, &key, &value)) { + GError *update_error = NULL; + const char *setting_name = key; + GHashTable *setting_hash = value; + + if (!nm_connection_update_secrets (priv->connection, + setting_name, + setting_hash, + &update_error)) { + g_warning ("%s: error updating connection secrets: (%d) %s", + __func__, + update_error ? update_error->code : -1, + update_error && update_error->message ? update_error->message : "(unknown)"); + g_clear_error (&update_error); + } + } + + /* Update each security method's UI elements with the new secrets */ + model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->sec_combo)); + if (gtk_tree_model_get_iter_first (model, &iter)) { + do { + WirelessSecurity *sec = NULL; + + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + if (sec) { + wireless_security_update_secrets (sec, priv->connection); + wireless_security_unref (sec); + } + } while (gtk_tree_model_iter_next (model, &iter)); + } + +out: + g_object_unref (info->connection); + g_free (info); +} + +static gboolean +security_combo_init (NMAWifiDialog *self, gboolean secrets_only) +{ + NMAWifiDialogPrivate *priv; + GtkListStore *sec_model; + GtkTreeIter iter; + guint32 ap_flags = 0; + guint32 ap_wpa = 0; + guint32 ap_rsn = 0; + guint32 dev_caps; + NMSettingWirelessSecurity *wsec = NULL; + NMUtilsSecurityType default_type = NMU_SEC_NONE; + NMWepKeyType wep_type = NM_WEP_KEY_TYPE_KEY; + int active = -1; + int item = 0; + NMSettingWireless *s_wireless = NULL; + gboolean is_adhoc; + const char *setting_name; + + g_return_val_if_fail (self != NULL, FALSE); + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + g_return_val_if_fail (priv->device != NULL, FALSE); + g_return_val_if_fail (priv->sec_combo != NULL, FALSE); + + is_adhoc = priv->adhoc_create; + + /* The security options displayed are filtered based on device + * capabilities, and if provided, additionally by access point capabilities. + * If a connection is given, that connection's options should be selected + * by default. + */ + dev_caps = nm_device_wifi_get_capabilities (NM_DEVICE_WIFI (priv->device)); + if (priv->ap != NULL) { + ap_flags = nm_access_point_get_flags (priv->ap); + ap_wpa = nm_access_point_get_wpa_flags (priv->ap); + ap_rsn = nm_access_point_get_rsn_flags (priv->ap); + } + + if (priv->connection) { + const char *mode; + const char *security; + + s_wireless = nm_connection_get_setting_wireless (priv->connection); + + mode = nm_setting_wireless_get_mode (s_wireless); + if (mode && !strcmp (mode, "adhoc")) + is_adhoc = TRUE; + + wsec = nm_connection_get_setting_wireless_security (priv->connection); + + security = nm_setting_wireless_get_security (s_wireless); + if (!security || strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)) + wsec = NULL; + if (wsec) { + default_type = get_default_type_for_security (wsec, !!priv->ap, ap_flags, dev_caps); + if (default_type == NMU_SEC_STATIC_WEP) + wep_type = nm_setting_wireless_security_get_wep_key_type (wsec); + if (wep_type == NM_WEP_KEY_TYPE_UNKNOWN) + wep_type = NM_WEP_KEY_TYPE_KEY; + } + } else if (is_adhoc) { + default_type = NMU_SEC_STATIC_WEP; + wep_type = NM_WEP_KEY_TYPE_PASSPHRASE; + } + + sec_model = gtk_list_store_new (2, G_TYPE_STRING, wireless_security_get_g_type ()); + + if (nm_utils_security_valid (NMU_SEC_NONE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + gtk_list_store_append (sec_model, &iter); + gtk_list_store_set (sec_model, &iter, + S_NAME_COLUMN, C_("Wifi/wired security", "None"), + -1); + if (default_type == NMU_SEC_NONE) + active = item; + item++; + } + + /* Don't show Static WEP if both the AP and the device are capable of WPA, + * even though technically it's possible to have this configuration. + */ + if ( nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && ((!ap_wpa && !ap_rsn) || !(dev_caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN)))) { + WirelessSecurityWEPKey *ws_wep; + + ws_wep = ws_wep_key_new (priv->connection, NM_WEP_KEY_TYPE_KEY, priv->adhoc_create, secrets_only); + if (ws_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, + &iter, _("WEP 40/128-bit Key (Hex or ASCII)")); + if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_KEY)) + active = item; + item++; + } + + ws_wep = ws_wep_key_new (priv->connection, NM_WEP_KEY_TYPE_PASSPHRASE, priv->adhoc_create, secrets_only); + if (ws_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, + &iter, _("WEP 128-bit Passphrase")); + if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_PASSPHRASE)) + active = item; + item++; + } + } + + /* Don't show LEAP if both the AP and the device are capable of WPA, + * even though technically it's possible to have this configuration. + */ + if ( nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && ((!ap_wpa && !ap_rsn) || !(dev_caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN)))) { + WirelessSecurityLEAP *ws_leap; + + ws_leap = ws_leap_new (priv->connection, secrets_only); + if (ws_leap) { + add_security_item (self, WIRELESS_SECURITY (ws_leap), sec_model, + &iter, _("LEAP")); + if ((active < 0) && (default_type == NMU_SEC_LEAP)) + active = item; + item++; + } + } + + if (nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + WirelessSecurityDynamicWEP *ws_dynamic_wep; + + ws_dynamic_wep = ws_dynamic_wep_new (priv->connection, FALSE, secrets_only); + if (ws_dynamic_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_dynamic_wep), sec_model, + &iter, _("Dynamic WEP (802.1x)")); + if ((active < 0) && (default_type == NMU_SEC_DYNAMIC_WEP)) + active = item; + item++; + } + } + + if ( nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) + || nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + WirelessSecurityWPAPSK *ws_wpa_psk; + + ws_wpa_psk = ws_wpa_psk_new (priv->connection, secrets_only); + if (ws_wpa_psk) { + add_security_item (self, WIRELESS_SECURITY (ws_wpa_psk), sec_model, + &iter, _("WPA & WPA2 Personal")); + if ((active < 0) && ((default_type == NMU_SEC_WPA_PSK) || (default_type == NMU_SEC_WPA2_PSK))) + active = item; + item++; + } + } + + if ( nm_utils_security_valid (NMU_SEC_WPA_ENTERPRISE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) + || nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + WirelessSecurityWPAEAP *ws_wpa_eap; + + ws_wpa_eap = ws_wpa_eap_new (priv->connection, FALSE, secrets_only); + if (ws_wpa_eap) { + add_security_item (self, WIRELESS_SECURITY (ws_wpa_eap), sec_model, + &iter, _("WPA & WPA2 Enterprise")); + if ((active < 0) && ((default_type == NMU_SEC_WPA_ENTERPRISE) || (default_type == NMU_SEC_WPA2_ENTERPRISE))) + active = item; + item++; + } + } + + gtk_combo_box_set_model (GTK_COMBO_BOX (priv->sec_combo), GTK_TREE_MODEL (sec_model)); + gtk_combo_box_set_active (GTK_COMBO_BOX (priv->sec_combo), active < 0 ? 0 : (guint32) active); + g_object_unref (G_OBJECT (sec_model)); + + /* If the dialog was given a connection when it was created, that connection + * will already be populated with secrets. If no connection was given, + * then we need to get any existing secrets to populate the dialog with. + */ + setting_name = priv->connection ? nm_connection_need_secrets (priv->connection, NULL) : NULL; + if (setting_name && NM_IS_REMOTE_CONNECTION (priv->connection)) { + GetSecretsInfo *info; + + /* Desensitize the dialog's buttons while we wait for the secrets + * operation to complete. + */ + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, FALSE); + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_CANCEL, FALSE); + + info = g_malloc0 (sizeof (GetSecretsInfo)); + info->self = self; + info->connection = g_object_ref (priv->connection); + priv->secrets_info = info; + + nm_remote_connection_get_secrets (NM_REMOTE_CONNECTION (priv->connection), + setting_name, + get_secrets_cb, + info); + } + + return TRUE; +} + +static gboolean +revalidate (gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + priv->revalidate_id = 0; + security_combo_changed (priv->sec_combo, self); + return FALSE; +} + +static gboolean +internal_init (NMAWifiDialog *self, + NMConnection *specific_connection, + NMDevice *specific_device, + gboolean secrets_only, + gboolean create) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkWidget *widget; + char *label, *icon_name = "network-wireless"; + gboolean security_combo_focus = FALSE; + + gtk_window_set_position (GTK_WINDOW (self), GTK_WIN_POS_CENTER_ALWAYS); + gtk_container_set_border_width (GTK_CONTAINER (self), 6); + gtk_window_set_default_size (GTK_WINDOW (self), 488, -1); + gtk_window_set_resizable (GTK_WINDOW (self), FALSE); + + priv->secrets_only = secrets_only; + if (secrets_only) + icon_name = "dialog-password"; + else + icon_name = "network-wireless"; + + gtk_window_set_icon_name (GTK_WINDOW (self), icon_name); + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "image1")); + gtk_image_set_from_icon_name (GTK_IMAGE (widget), icon_name, GTK_ICON_SIZE_DIALOG); + + gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), 2); + + widget = gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); + gtk_box_set_child_packing (GTK_BOX (gtk_dialog_get_action_area (GTK_DIALOG (self))), widget, + FALSE, TRUE, 0, GTK_PACK_END); + + /* Connect/Create button */ + if (create) { + GtkWidget *image; + + widget = gtk_button_new_with_mnemonic (_("C_reate")); + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_BUTTON); + gtk_button_set_image (GTK_BUTTON (widget), image); + + gtk_widget_show (widget); + gtk_dialog_add_action_widget (GTK_DIALOG (self), widget, GTK_RESPONSE_OK); + } else + widget = gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CONNECT, GTK_RESPONSE_OK); + + gtk_box_set_child_packing (GTK_BOX (gtk_dialog_get_action_area (GTK_DIALOG (self))), widget, + FALSE, TRUE, 0, GTK_PACK_END); + g_object_set (G_OBJECT (widget), "can-default", TRUE, NULL); + gtk_widget_grab_default (widget); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "hbox1")); + if (!widget) { + g_warning ("Couldn't find Wi-Fi_dialog widget."); + return FALSE; + } + gtk_widget_unparent (widget); + + gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (self))), widget); + + /* If given a valid connection, hide the SSID bits and connection combo */ + if (specific_connection) { + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_label")); + gtk_widget_hide (widget); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + gtk_widget_hide (widget); + + security_combo_focus = TRUE; + priv->network_name_focus = FALSE; + } else { + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + g_signal_connect (G_OBJECT (widget), "changed", (GCallback) ssid_entry_changed, self); + priv->network_name_focus = TRUE; + } + + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, FALSE); + + if (!device_combo_init (self, specific_device)) { + g_warning ("No Wi-Fi devices available."); + return FALSE; + } + + if (!connection_combo_init (self, specific_connection)) { + g_warning ("Couldn't set up connection combo box."); + return FALSE; + } + + if (!security_combo_init (self, priv->secrets_only)) { + g_warning ("Couldn't set up Wi-Fi security combo box."); + return FALSE; + } + + security_combo_changed (priv->sec_combo, self); + g_signal_connect (G_OBJECT (priv->sec_combo), "changed", + G_CALLBACK (security_combo_changed_manually), self); + + if (secrets_only) { + gtk_widget_hide (priv->sec_combo); + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo_label")); + gtk_widget_hide (widget); + } + + if (security_combo_focus) + gtk_widget_grab_focus (priv->sec_combo); + else if (priv->network_name_focus) { + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + gtk_widget_grab_focus (widget); + } + + if (priv->connection) { + char *tmp; + char *esc_ssid = NULL; + NMSettingWireless *s_wireless; + const GByteArray *ssid; + + s_wireless = nm_connection_get_setting_wireless (priv->connection); + ssid = s_wireless ? nm_setting_wireless_get_ssid (s_wireless) : NULL; + if (ssid) + esc_ssid = nm_utils_ssid_to_utf8 (ssid); + + tmp = g_strdup_printf (_("Passwords or encryption keys are required to access the Wi-Fi network '%s'."), + esc_ssid ? esc_ssid : ""); + gtk_window_set_title (GTK_WINDOW (self), _("Wi-Fi Network Authentication Required")); + label = g_strdup_printf ("%s\n\n%s", + _("Authentication required by Wi-Fi network"), + tmp); + g_free (esc_ssid); + g_free (tmp); + } else if (priv->adhoc_create) { + gtk_window_set_title (GTK_WINDOW (self), _("Create New Wi-Fi Network")); + label = g_strdup_printf ("%s\n\n%s", + _("New Wi-Fi network"), + _("Enter a name for the Wi-Fi network you wish to create.")); + } else { + gtk_window_set_title (GTK_WINDOW (self), _("Connect to Hidden Wi-Fi Network")); + label = g_strdup_printf ("%s\n\n%s", + _("Hidden Wi-Fi network"), + _("Enter the name and security details of the hidden Wi-Fi network you wish to connect to.")); + } + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "caption_label")); + gtk_label_set_markup (GTK_LABEL (widget), label); + g_free (label); + + /* Re-validate from an idle handler so that widgets like file choosers + * have had time to find their files. + */ + priv->revalidate_id = g_idle_add (revalidate, self); + + return TRUE; +} + +/** + * nma_wifi_dialog_get_connection: + * @self: an #NMAWifiDialog + * @device: (out): + * @ap: (out): + * + * Returns: (transfer full): + */ +NMConnection * +nma_wifi_dialog_get_connection (NMAWifiDialog *self, + NMDevice **device, + NMAccessPoint **ap) +{ + NMAWifiDialogPrivate *priv; + GtkWidget *combo; + GtkTreeModel *model; + WirelessSecurity *sec = NULL; + GtkTreeIter iter; + NMConnection *connection; + NMSettingWireless *s_wireless; + + g_return_val_if_fail (self != NULL, NULL); + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + if (!priv->connection) { + NMSettingConnection *s_con; + char *uuid; + + connection = nm_connection_new (); + + s_con = (NMSettingConnection *) nm_setting_connection_new (); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRELESS_SETTING_NAME, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + nm_connection_add_setting (connection, (NMSetting *) s_con); + + s_wireless = (NMSettingWireless *) nm_setting_wireless_new (); + g_object_set (s_wireless, NM_SETTING_WIRELESS_SSID, validate_dialog_ssid (self), NULL); + + if (priv->adhoc_create) { + NMSettingIP4Config *s_ip4; + NMSettingIP6Config *s_ip6; + + g_object_set (s_wireless, NM_SETTING_WIRELESS_MODE, "adhoc", NULL); + + s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new (); + g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_SHARED, NULL); + nm_connection_add_setting (connection, (NMSetting *) s_ip4); + + s_ip6 = (NMSettingIP6Config *) nm_setting_ip6_config_new (); + g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL); + nm_connection_add_setting (connection, (NMSetting *) s_ip6); + } + + nm_connection_add_setting (connection, (NMSetting *) s_wireless); + } else + connection = g_object_ref (priv->connection); + + /* Fill security */ + model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->sec_combo)); + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->sec_combo), &iter)) + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + if (sec) { + wireless_security_fill_connection (sec, connection); + wireless_security_unref (sec); + } else { + /* Unencrypted */ + s_wireless = nm_connection_get_setting_wireless (connection); + g_assert (s_wireless); + + g_object_set (s_wireless, NM_SETTING_WIRELESS_SEC, NULL, NULL); + } + + /* Fill device */ + if (device) { + combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_combo")); + gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter); + gtk_tree_model_get (priv->device_model, &iter, D_DEV_COLUMN, device, -1); + g_object_unref (*device); + } + + if (ap) + *ap = priv->ap; + + return connection; +} + +GtkWidget * +nma_wifi_dialog_new (NMClient *client, + NMRemoteSettings *settings, + NMConnection *connection, + NMDevice *device, + NMAccessPoint *ap, + gboolean secrets_only) +{ + NMAWifiDialog *self; + NMAWifiDialogPrivate *priv; + guint32 dev_caps; + + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); + g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + /* Ensure device validity */ + if (device) { + dev_caps = nm_device_get_capabilities (device); + g_return_val_if_fail (dev_caps & NM_DEVICE_CAP_NM_SUPPORTED, NULL); + g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); + } + + self = NMA_WIFI_DIALOG (g_object_new (NMA_TYPE_WIFI_DIALOG, NULL)); + if (self) { + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + priv->client = g_object_ref (client); + priv->settings = g_object_ref (settings); + if (ap) + priv->ap = g_object_ref (ap); + + priv->sec_combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")); + priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + + if (!internal_init (self, connection, device, secrets_only, FALSE)) { + g_warning ("Couldn't create Wi-Fi security dialog."); + gtk_widget_destroy (GTK_WIDGET (self)); + self = NULL; + } + } + + return GTK_WIDGET (self); +} + +static GtkWidget * +internal_new_other (NMClient *client, NMRemoteSettings *settings, gboolean create) +{ + NMAWifiDialog *self; + NMAWifiDialogPrivate *priv; + + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); + g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), NULL); + + self = NMA_WIFI_DIALOG (g_object_new (NMA_TYPE_WIFI_DIALOG, NULL)); + if (!self) + return NULL; + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + priv->client = g_object_ref (client); + priv->settings = g_object_ref (settings); + priv->sec_combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")); + priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + priv->adhoc_create = create; + + if (!internal_init (self, NULL, NULL, FALSE, create)) { + g_warning ("Couldn't create Wi-Fi security dialog."); + gtk_widget_destroy (GTK_WIDGET (self)); + return NULL; + } + + return GTK_WIDGET (self); +} + +GtkWidget * +nma_wifi_dialog_new_for_other (NMClient *client, NMRemoteSettings *settings) +{ + return internal_new_other (client, settings, FALSE); +} + +GtkWidget * +nma_wifi_dialog_new_for_create (NMClient *client, NMRemoteSettings *settings) +{ + return internal_new_other (client, settings, TRUE); +} + +/** + * nma_wifi_dialog_nag_user: + * @self: + * + * Returns: (transfer full): + */ +GtkWidget * +nma_wifi_dialog_nag_user (NMAWifiDialog *self) +{ + NMAWifiDialogPrivate *priv; + GtkWidget *combo, *nag; + GtkTreeModel *model; + GtkTreeIter iter; + WirelessSecurity *sec = NULL; + + g_return_val_if_fail (self != NULL, NULL); + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")); + g_return_val_if_fail (combo != NULL, NULL); + + /* Ask the security method if it wants to nag the user. */ + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + g_warning ("%s: no active security combo box item.", __func__); + return NULL; + } + + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + if (sec) { + nag = wireless_security_nag_user (sec); + wireless_security_unref (sec); + return nag; + } + + return NULL; +} + +static void +nma_wifi_dialog_init (NMAWifiDialog *self) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GError *error = NULL; + + priv->builder = gtk_builder_new (); + + if (!gtk_builder_add_from_file (priv->builder, UIDIR "/wifi.ui", &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); + } +} + +static void +dispose (GObject *object) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (object); + + if (priv->disposed) { + G_OBJECT_CLASS (nma_wifi_dialog_parent_class)->dispose (object); + return; + } + + priv->disposed = TRUE; + + if (priv->secrets_info) + priv->secrets_info->canceled = TRUE; + + g_object_unref (priv->client); + g_object_unref (priv->settings); + g_object_unref (priv->builder); + + g_object_unref (priv->device_model); + g_object_unref (priv->connection_model); + + if (priv->group) + g_object_unref (priv->group); + + if (priv->connection) + g_object_unref (priv->connection); + + if (priv->device) + g_object_unref (priv->device); + + if (priv->ap) + g_object_unref (priv->ap); + + if (priv->revalidate_id) + g_source_remove (priv->revalidate_id); + + G_OBJECT_CLASS (nma_wifi_dialog_parent_class)->dispose (object); +} + +static void +nma_wifi_dialog_class_init (NMAWifiDialogClass *nmad_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (nmad_class); + + g_type_class_add_private (nmad_class, sizeof (NMAWifiDialogPrivate)); + + /* virtual methods */ + object_class->dispose = dispose; +} diff -Nru network-manager-applet-0.9.4.1/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/wireless-security/ws-wpa-psk.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/wireless-security/ws-wpa-psk.c --- network-manager-applet-0.9.4.1/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/wireless-security/ws-wpa-psk.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/applet_adhoc_use_wpa_rsn_part1.patch/src/wireless-security/ws-wpa-psk.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,200 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2007 - 2010 Red Hat, Inc. + */ + +#include +#include +#include + +#include "wireless-security.h" +#include "helpers.h" + +#define WPA_PMK_LEN 32 + +struct _WirelessSecurityWPAPSK { + WirelessSecurity parent; +}; + +static void +show_toggled_cb (GtkCheckButton *button, WirelessSecurity *sec) +{ + GtkWidget *widget; + gboolean visible; + + widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, "wpa_psk_entry")); + g_assert (widget); + + visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); + gtk_entry_set_visibility (GTK_ENTRY (widget), visible); +} + +static gboolean +validate (WirelessSecurity *parent, const GByteArray *ssid) +{ + GtkWidget *entry; + const char *key; + guint32 len; + int i; + + entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_entry")); + g_assert (entry); + + key = gtk_entry_get_text (GTK_ENTRY (entry)); + len = strlen (key); + if ((len < 8) || (len > 64)) + return FALSE; + + if (len == 64) { + /* Hex PSK */ + for (i = 0; i < len; i++) { + if (!isxdigit (key[i])) + return FALSE; + } + } + + /* passphrase can be between 8 and 63 characters inclusive */ + + return TRUE; +} + +static void +add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group) +{ + GtkWidget *widget; + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_type_label")); + gtk_size_group_add_widget (group, widget); + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_label")); + gtk_size_group_add_widget (group, widget); +} + +static void +fill_connection (WirelessSecurity *parent, NMConnection *connection) +{ + GtkWidget *widget; + const char *key; + NMSettingWireless *s_wireless; + NMSettingWirelessSecurity *s_wireless_sec; + const char *mode; + gboolean is_adhoc = FALSE; + + s_wireless = nm_connection_get_setting_wireless (connection); + g_assert (s_wireless); + + mode = nm_setting_wireless_get_mode (s_wireless); + if (mode && !strcmp (mode, "adhoc")) + is_adhoc = TRUE; + + g_object_set (s_wireless, NM_SETTING_WIRELESS_SEC, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NULL); + + /* Blow away the old security setting by adding a clear one */ + s_wireless_sec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new (); + nm_connection_add_setting (connection, (NMSetting *) s_wireless_sec); + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_entry")); + key = gtk_entry_get_text (GTK_ENTRY (widget)); + g_object_set (s_wireless_sec, NM_SETTING_WIRELESS_SECURITY_PSK, key, NULL); + + wireless_security_clear_ciphers (connection); + if (is_adhoc) { + /* Ad-Hoc settings as specified by the supplicant */ + g_object_set (s_wireless_sec, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-none", NULL); + nm_setting_wireless_security_add_proto (s_wireless_sec, "wpa"); + nm_setting_wireless_security_add_pairwise (s_wireless_sec, "none"); + + /* Ad-hoc can only have _one_ group cipher... default to TKIP to be more + * compatible for now. Maybe we'll support selecting CCMP later. + */ + nm_setting_wireless_security_add_group (s_wireless_sec, "tkip"); + } else { + g_object_set (s_wireless_sec, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-psk", NULL); + + /* Just leave ciphers and protocol empty, the supplicant will + * figure that out magically based on the AP IEs and card capabilities. + */ + } +} + +static void +update_secrets (WirelessSecurity *parent, NMConnection *connection) +{ + helper_fill_secret_entry (connection, + parent->builder, + "wpa_psk_entry", + NM_TYPE_SETTING_WIRELESS_SECURITY, + (HelperSecretFunc) nm_setting_wireless_security_get_psk); +} + +WirelessSecurityWPAPSK * +ws_wpa_psk_new (NMConnection *connection, gboolean secrets_only) +{ + WirelessSecurity *parent; + WirelessSecurityWPAPSK *sec; + GtkWidget *widget; + + parent = wireless_security_init (sizeof (WirelessSecurityWPAPSK), + validate, + add_to_size_group, + fill_connection, + update_secrets, + NULL, + UIDIR "/ws-wpa-psk.ui", + "wpa_psk_notebook", + "wpa_psk_entry"); + if (!parent) + return NULL; + + parent->adhoc_compatible = FALSE; + sec = (WirelessSecurityWPAPSK *) parent; + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_entry")); + g_assert (widget); + g_signal_connect (G_OBJECT (widget), "changed", + (GCallback) wireless_security_changed_cb, + sec); + gtk_entry_set_width_chars (GTK_ENTRY (widget), 28); + + /* Fill secrets, if any */ + if (connection) + update_secrets (WIRELESS_SECURITY (sec), connection); + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_checkbutton_wpa")); + g_assert (widget); + g_signal_connect (G_OBJECT (widget), "toggled", + (GCallback) show_toggled_cb, + sec); + + /* Hide WPA/RSN for now since this can be autodetected by NM and the + * supplicant when connecting to the AP. + */ + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_type_combo")); + g_assert (widget); + gtk_widget_hide (widget); + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_type_label")); + g_assert (widget); + gtk_widget_hide (widget); + + return sec; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/applied-patches network-manager-applet-0.9.6.2+git201210311320.2620/.pc/applied-patches --- network-manager-applet-0.9.4.1/.pc/applied-patches 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/applied-patches 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,21 @@ +lp289466_always_show_tray_icon.patch +lp328572-dxteam-connect-text.patch +lp330571_dxteam_wired_connect_text.patch +lp330608_dxteam_gsm_connect_text.patch +lp341684_device_sensitive_disconnect_notify.patch +lp358526_generic_disconnected_notification_icon.patch +lp460144_correctly_update_notification.patch +applet-wifi-menu-before-vpn.patch +default-ipv6-auto.patch +clear-notification-actions.patch +key-certificate-extensions.patch +mobile-wizard.patch +lp830178_adhoc_ip6_ignore.patch +lp829673_gconf_hide_applet.patch +nm-applet-use-indicator.patch +position_dialogs_to_center_of_the_screen.patch +make_menu_items_insensitive_based_on_permissions.patch +hide_policy_items_env_var.patch +applet_adhoc_use_wpa_rsn_part1.patch +lp1048516_dont_req_keyring_in_greeter.patch +lp1048520_delay_pin_dialog_in_greeter.patch diff -Nru network-manager-applet-0.9.4.1/.pc/clear-notification-actions.patch/src/applet.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/clear-notification-actions.patch/src/applet.c --- network-manager-applet-0.9.4.1/.pc/clear-notification-actions.patch/src/applet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/clear-notification-actions.patch/src/applet.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,3705 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2012 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + * + * This applet used the GNOME Wireless Applet as a skeleton to build from. + * + * GNOME Wireless Applet Authors: + * Eskil Heyn Olsen + * Bastien Nocera (Gnome2 port) + * + * (C) Copyright 2001, 2002 Free Software Foundation + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "applet-device-wifi.h" +#include "applet-device-gsm.h" +#include "applet-device-cdma.h" +#include "applet-device-bt.h" +#include "applet-device-wimax.h" +#include "applet-dialogs.h" +#include "nm-wifi-dialog.h" +#include "applet-vpn-request.h" +#include "utils.h" +#include "shell-watcher.h" +#include "nm-ui-utils.h" + +#define NOTIFY_CAPS_ACTIONS_KEY "actions" + +extern gboolean shell_debug; + +G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) + +/********************************************************************/ +/* Temporary dbus interface stuff */ + +static gboolean +impl_dbus_connect_to_hidden_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_connect_to_hidden_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_create_wifi_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_can_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NOT_AUTHORIZED, + "Creation of Wi-Fi networks has been disabled by system policy."); + return FALSE; + } + + if (!applet_wifi_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_8021x_network (NMApplet *applet, + const char *device_path, + const char *ap_path, + GError **error) +{ + NMDevice *device; + NMAccessPoint *ap; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_WIFI (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + ap = nm_device_wifi_get_access_point_by_path (NM_DEVICE_WIFI (device), ap_path); + if (!ap) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point could not be found."); + return FALSE; + } + + /* FIXME: this doesn't account for Dynamic WEP */ + if ( !(nm_access_point_get_wpa_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + && !(nm_access_point_get_rsn_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point had no 802.1x capabilities"); + return FALSE; + } + + if (!applet_wifi_connect_to_8021x_network (applet, device, ap)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_3g_network (NMApplet *applet, + const char *device_path, + GError **error) +{ + NMDevice *device; + NMDeviceModemCapabilities caps; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_MODEM (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + applet_gsm_connect_network (applet, device); + } else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + applet_cdma_connect_network (applet, device); + } else { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device had no GSM or CDMA capabilities."); + return FALSE; + } + + return TRUE; +} + +#include "applet-dbus-bindings.h" + +/********************************************************************/ + +static inline NMADeviceClass * +get_device_class (NMDevice *device, NMApplet *applet) +{ + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + if (NM_IS_DEVICE_ETHERNET (device)) + return applet->ethernet_class; + else if (NM_IS_DEVICE_WIFI (device)) + return applet->wifi_class; + else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + return applet->gsm_class; + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + return applet->cdma_class; + else + g_message ("%s: unhandled modem capabilities 0x%X", __func__, caps); + } else if (NM_IS_DEVICE_BT (device)) + return applet->bt_class; + else if (NM_IS_DEVICE_WIMAX (device)) + return applet->wimax_class; + else + g_debug ("%s: Unknown device type '%s'", __func__, G_OBJECT_TYPE_NAME (device)); + return NULL; +} + +static inline NMADeviceClass * +get_device_class_from_connection (NMConnection *connection, NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *ctype; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + ctype = nm_setting_connection_get_connection_type (s_con); + g_return_val_if_fail (ctype != NULL, NULL); + + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME) || !strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return applet->ethernet_class; + else if (!strcmp (ctype, NM_SETTING_WIRELESS_SETTING_NAME)) + return applet->wifi_class; + else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME)) + return applet->gsm_class; + else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME)) + return applet->cdma_class; + else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) + return applet->bt_class; + else + g_warning ("%s: unhandled connection type '%s'", __func__, ctype); + return NULL; +} + +struct _OfflineNotificationContextInfo { + NMState state; + NMDeviceState device_state; + NMDeviceStateReason device_state_reason; + NMDeviceType device_type; + gchar* title; + const gchar* text; + const gchar* icon; + NotifyUrgency urgency; +}; + +typedef struct _OfflineNotificationContextInfo OfflineNotificationContextInfo; + +static NMActiveConnection * +applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *best = NULL; + NMDevice *best_dev = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const GPtrArray *devices; + NMDevice *candidate_dev; + + if (nm_active_connection_get_state (candidate) != NM_ACTIVE_CONNECTION_STATE_ACTIVATING) + continue; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (!best_dev) { + best_dev = candidate_dev; + best = candidate; + continue; + } + + if (NM_IS_DEVICE_WIFI (best_dev)) { + if (NM_IS_DEVICE_ETHERNET (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (NM_IS_DEVICE_MODEM (best_dev)) { + NMDeviceModemCapabilities best_caps; + NMDeviceModemCapabilities candidate_caps = NM_DEVICE_MODEM_CAPABILITY_NONE; + + best_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (best_dev)); + if (NM_IS_DEVICE_MODEM (candidate_dev)) + candidate_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (candidate_dev)); + + if (best_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (best_caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev) + || (candidate_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { + best_dev = candidate_dev; + best = candidate; + } + } + } + } + + *device = best_dev; + return best; +} + +static NMActiveConnection * +applet_get_default_active_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *default_ac = NULL; + NMDevice *non_default_device = NULL; + NMActiveConnection *non_default_ac = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + NMDevice *candidate_dev; + const GPtrArray *devices; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (nm_active_connection_get_default (candidate)) { + if (!default_ac) { + *device = candidate_dev; + default_ac = candidate; + } + } else { + if (!non_default_ac) { + non_default_device = candidate_dev; + non_default_ac = candidate; + } + } + } + + /* Prefer the default connection if one exists, otherwise return the first + * non-default connection. + */ + if (!default_ac && non_default_ac) { + default_ac = non_default_ac; + *device = non_default_device; + } + return default_ac; +} + +NMRemoteSettings * +applet_get_settings (NMApplet *applet) +{ + return applet->settings; +} + +GSList * +applet_get_all_connections (NMApplet *applet) +{ + GSList *connections, *iter, *next; + NMConnection *connection; + NMSettingConnection *s_con; + + connections = nm_remote_settings_list_connections (applet->settings); + + /* Ignore slave connections */ + for (iter = connections; iter; iter = next) { + connection = iter->data; + next = iter->next; + + s_con = nm_connection_get_setting_connection (connection); + if (s_con && nm_setting_connection_get_master (s_con)) + connections = g_slist_delete_link (connections, iter); + } + + return connections; +} + +static NMConnection * +applet_get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMActiveConnection * +applet_get_active_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + int i; + const char *cpath; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + const char *active_cpath = nm_active_connection_get_connection (active); + + if (active_cpath && !strcmp (active_cpath, cpath)) + return active; + } + return NULL; +} + +NMDevice * +applet_get_device_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + const char *cpath; + int i; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + + if (!g_strcmp0 (nm_active_connection_get_connection (active), cpath)) + return g_ptr_array_index (nm_active_connection_get_devices (active), 0); + } + return NULL; +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + char *specific_object; + NMConnection *connection; +} AppletItemActivateInfo; + +static void +applet_item_activate_info_destroy (AppletItemActivateInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + g_free (info->specific_object); + if (info->connection) + g_object_unref (info->connection); + memset (info, 0, sizeof (AppletItemActivateInfo)); + g_free (info); +} + +static void +add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add/activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +applet_menu_item_activate_helper_new_connection (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + AppletItemActivateInfo *info = user_data; + + if (canceled) { + applet_item_activate_info_destroy (info); + return; + } + + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + info->specific_object, + add_and_activate_cb, + info->applet); + + applet_item_activate_info_destroy (info); +} + +static void +disconnect_cb (NMDevice *device, GError *error, gpointer user_data) +{ + if (error) { + const char *text = _("Device disconnect failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s: %s", __func__, text, err_text); + utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } +} + +void +applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet) +{ + g_return_if_fail (NM_IS_DEVICE (device)); + + nm_device_disconnect (device, disconnect_cb, NULL); +} + +static void +activate_connection_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Connection activation failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +void +applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data) +{ + AppletItemActivateInfo *info; + NMADeviceClass *dclass; + + g_return_if_fail (NM_IS_DEVICE (device)); + + if (connection) { + /* If the menu item had an associated connection already, just tell + * NM to activate that connection. + */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + specific_object, + activate_connection_cb, + applet); + return; + } + + /* If no connection was given, ask the device class to create a new + * default connection for this device type. This could be a wizard, + * and thus take a while. + */ + + info = g_malloc0 (sizeof (AppletItemActivateInfo)); + info->applet = applet; + info->specific_object = g_strdup (specific_object); + info->device = g_object_ref (device); + + dclass = get_device_class (device, applet); + g_assert (dclass); + if (!dclass->new_auto_connection (device, dclass_data, + applet_menu_item_activate_helper_new_connection, + info)) { + g_warning ("Couldn't create default connection."); + applet_item_activate_info_destroy (info); + } +} + +void +applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos) +{ + GtkWidget *menu_item = gtk_image_menu_item_new (); +#if GTK_CHECK_VERSION(3,1,6) + GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); +#else + GtkWidget *box = gtk_hbox_new (FALSE, 0); +#endif + GtkWidget *xlabel = NULL; + + if (label) { + xlabel = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (xlabel), label); + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2); + } + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + + g_object_set (G_OBJECT (menu_item), + "child", box, + "sensitive", FALSE, + NULL); + if (pos < 0) + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + else + gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, pos); + return; +} + +GtkWidget * +applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active) +{ + GtkWidget *item; + NMSettingConnection *s_con; + char *markup; + GtkWidget *label; + + s_con = nm_connection_get_setting_connection (connection); + item = gtk_image_menu_item_new_with_label (""); + if (add_active && (active == connection)) { + /* Pure evil */ + label = gtk_bin_get_child (GTK_BIN (item)); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + markup = g_markup_printf_escaped ("%s", nm_setting_connection_get_id (s_con)); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + } else + gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); + + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + return item; +} + +#define TITLE_TEXT_R ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_G ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_B ((double) 0x5e / 255.0 ) + +static void +menu_item_draw_generic (GtkWidget *widget, cairo_t *cr) +{ + GtkWidget *label; + PangoFontDescription *desc; + PangoLayout *layout; + int width = 0, height = 0, owidth, oheight; + gdouble extraheight = 0, extrawidth = 0; + const char *text; + gdouble xpadding = 10.0; + gdouble ypadding = 5.0; + gdouble postpadding = 0.0; + + label = gtk_bin_get_child (GTK_BIN (widget)); + text = gtk_label_get_text (GTK_LABEL (label)); + + layout = pango_cairo_create_layout (cr); +#if GTK_CHECK_VERSION(2,20,0) && !GTK_CHECK_VERSION(2,91,6) + { + GtkStyle *style; + style = gtk_widget_get_style (widget); + desc = pango_font_description_copy (style->font_desc); + } +#else + { + GtkStyleContext *style; + style = gtk_widget_get_style_context (widget); + gtk_style_context_get (style, gtk_style_context_get_state (style), + "font", &desc, + NULL); + } +#endif + pango_font_description_set_variant (desc, PANGO_VARIANT_SMALL_CAPS); + pango_font_description_set_weight (desc, PANGO_WEIGHT_SEMIBOLD); + pango_layout_set_font_description (layout, desc); + pango_layout_set_text (layout, text, -1); + pango_cairo_update_layout (cr, layout); + pango_layout_get_size (layout, &owidth, &oheight); + width = owidth / PANGO_SCALE; + height += oheight / PANGO_SCALE; + + cairo_save (cr); + + cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); + cairo_rectangle (cr, 0, 0, + (double) (width + 2 * xpadding), + (double) (height + ypadding + postpadding)); + cairo_fill (cr); + + /* now the in-padding content */ + cairo_translate (cr, xpadding , ypadding); + cairo_set_source_rgb (cr, TITLE_TEXT_R, TITLE_TEXT_G, TITLE_TEXT_B); + cairo_move_to (cr, extrawidth, extraheight); + pango_cairo_show_layout (cr, layout); + + cairo_restore(cr); + + pango_font_description_free (desc); + g_object_unref (layout); + + gtk_widget_set_size_request (widget, width + 2 * xpadding, height + ypadding + postpadding); +} + +#if GTK_CHECK_VERSION(2,90,7) +static gboolean +menu_title_item_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) +{ + menu_item_draw_generic (widget, cr); + return TRUE; +} +#else +static gboolean +menu_title_item_expose (GtkWidget *widget, GdkEventExpose *event) +{ + GtkAllocation allocation; + cairo_t *cr; + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + /* The drawing area we get is the whole menu; clip the drawing to the + * event area, which should just be our menu item. + */ + cairo_rectangle (cr, + event->area.x, event->area.y, + event->area.width, event->area.height); + cairo_clip (cr); + + /* We also need to reposition the cairo context so that (0, 0) is the + * top-left of where we're supposed to start drawing. + */ + gtk_widget_get_allocation (widget, &allocation); + cairo_translate (cr, allocation.x, allocation.y); + + menu_item_draw_generic (widget, cr); + + cairo_destroy (cr); + return TRUE; +} +#endif + +GtkWidget * +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text) +{ + GtkWidget *item; + + item = gtk_menu_item_new_with_mnemonic (text); + gtk_widget_set_sensitive (item, FALSE); +#if GTK_CHECK_VERSION(2,90,7) + g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL); +#else + g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); +#endif + return item; +} + +static gboolean +applet_notify_server_has_actions (void) +{ + static gboolean has_actions = FALSE; + static gboolean initialized = FALSE; + GList *server_caps, *iter; + + if (initialized) + return has_actions; + initialized = TRUE; + + server_caps = notify_get_server_caps(); + for (iter = server_caps; iter; iter = g_list_next (iter)) { + if (!strcmp ((const char *) iter->data, NOTIFY_CAPS_ACTIONS_KEY)) { + has_actions = TRUE; + break; + } + } + g_list_foreach (server_caps, (GFunc) g_free, NULL); + g_list_free (server_caps); + + return has_actions; +} + +void +applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data) +{ + NotifyNotification *notify; + GError *error = NULL; + char *escaped; + + g_return_if_fail (applet != NULL); + g_return_if_fail (summary != NULL); + g_return_if_fail (message != NULL); + + if (!gtk_status_icon_is_embedded (applet->status_icon)) + return; + + /* if we're not registered, don't notify either */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + return; + + escaped = utils_escape_notify_message (message); + + if (applet->notification == NULL) { + notify = notify_notification_new (summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK +#if HAVE_LIBNOTIFY_07 + ); +#else + , NULL); +#endif + + applet->notification = notify; + } else { + notify = applet->notification; + notify_notification_update (notify, + summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK); + } + + g_free (escaped); + +#if HAVE_LIBNOTIFY_07 + notify_notification_set_hint (notify, "transient", g_variant_new_boolean (TRUE)); +#else + notify_notification_attach_to_status_icon (notify, applet->status_icon); +#endif + notify_notification_set_urgency (notify, urgency); + notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT); + + if (applet_notify_server_has_actions () && action1) { + notify_notification_add_action (notify, action1, action1_label, + action1_cb, action1_user_data, NULL); + } + + if (!notify_notification_show (notify, &error)) { + g_warning ("Failed to show notification: %s", + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + } +} + +static void +notify_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id) + return; + + if ( strcmp (id, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_VPN_NOTIFICATIONS)) + return; + + g_settings_set_boolean (applet->gsettings, id, TRUE); +} + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref) +{ + if (g_settings_get_boolean (applet->gsettings, pref)) + return; + + applet_do_notify (applet, NOTIFY_URGENCY_LOW, summary, message, icon, pref, + _("Don't show this message again"), + notify_dont_show_cb, + applet); +} + +static gboolean +animation_timeout (gpointer data) +{ + applet_schedule_update_icon (NM_APPLET (data)); + return TRUE; +} + +static void +start_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id == 0) { + applet->animation_step = 0; + applet->animation_id = g_timeout_add (100, animation_timeout, applet); + } +} + +static void +clear_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id) { + g_source_remove (applet->animation_id); + applet->animation_id = 0; + applet->animation_step = 0; + } +} + +static gboolean +applet_is_any_device_activating (NMApplet *applet) +{ + const GPtrArray *devices; + int i; + + /* Check for activating devices */ + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = NM_DEVICE (g_ptr_array_index (devices, i)); + NMDeviceState state; + + state = nm_device_get_state (candidate); + if (state > NM_DEVICE_STATE_DISCONNECTED && state < NM_DEVICE_STATE_ACTIVATED) + return TRUE; + } + return FALSE; +} + +static gboolean +applet_is_any_vpn_activating (NMApplet *applet) +{ + const GPtrArray *connections; + int i; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (connections, i)); + NMVPNConnectionState vpn_state; + + if (NM_IS_VPN_CONNECTION (candidate)) { + vpn_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + if ( vpn_state == NM_VPN_CONNECTION_STATE_PREPARE + || vpn_state == NM_VPN_CONNECTION_STATE_NEED_AUTH + || vpn_state == NM_VPN_CONNECTION_STATE_CONNECT + || vpn_state == NM_VPN_CONNECTION_STATE_IP_CONFIG_GET) { + return TRUE; + } + } + } + return FALSE; +} + +static char * +make_vpn_failure_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service stopped unexpectedly."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service returned invalid configuration."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the connection attempt timed out."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service did not start in time."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because there were no valid VPN secrets."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because of invalid VPN secrets."), + nm_setting_connection_get_id (s_con)); + + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' failed."), nm_setting_connection_get_id (s_con)); +} + +static char * +make_vpn_disconnection_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the VPN service stopped."), + nm_setting_connection_get_id (s_con)); + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected."), nm_setting_connection_get_id (s_con)); +} + +static void +vpn_connection_state_changed (NMVPNConnection *vpn, + NMVPNConnectionState state, + NMVPNConnectionStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const char *banner; + char *title = NULL, *msg; + gboolean device_activating, vpn_activating; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (state) { + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections might not have come through yet. + */ + vpn_activating = TRUE; + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + banner = nm_vpn_connection_get_banner (vpn); + if (banner && strlen (banner)) + msg = g_strdup_printf (_("VPN connection has been successfully established.\n\n%s\n"), banner); + else + msg = g_strdup (_("VPN connection has been successfully established.\n")); + + title = _("VPN Login Message"); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_FAILED: + title = _("VPN Connection Failed"); + msg = make_vpn_failure_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_DISCONNECTED: + if (reason != NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED) { + title = _("VPN Connection Failed"); + msg = make_vpn_disconnection_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + } + break; + default: + break; + } + + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); + + applet_schedule_update_icon (applet); +} + +static const char * +get_connection_id (NMConnection *connection) +{ + NMSettingConnection *s_con; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + return nm_setting_connection_get_id (s_con); +} + +typedef struct { + NMApplet *applet; + char *vpn_name; +} VPNActivateInfo; + +static void +activate_vpn_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + VPNActivateInfo *info = (VPNActivateInfo *) user_data; + char *title, *msg, *name; + + if (error) { + clear_animation_timeout (info->applet); + + title = _("VPN Connection Failed"); + + /* dbus-glib GError messages _always_ have two NULLs, the D-Bus error + * name comes after the first NULL. Find it. + */ + name = error->message + strlen (error->message) + 1; + if (strstr (name, "ServiceStartFailed")) { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start.\n\n%s"), + info->vpn_name, error->message); + } else { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed to start.\n\n%s"), + info->vpn_name, error->message); + } + + applet_do_notify_with_pref (info->applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + + g_warning ("VPN Connection activation failed: (%s) %s", name, error->message); + } + + applet_schedule_update_icon (info->applet); + g_free (info->vpn_name); + g_free (info); +} + +static void +nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + VPNActivateInfo *info; + NMConnection *connection; + NMSettingConnection *s_con; + NMActiveConnection *active; + NMDevice *device = NULL; + + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) { + g_warning ("%s: no active connection or device.", __func__); + return; + } + + connection = NM_CONNECTION (g_object_get_data (G_OBJECT (item), "connection")); + if (!connection) { + g_warning ("%s: no connection associated with menu item!", __func__); + return; + } + + if (applet_get_active_for_connection (applet, connection)) + /* Connection already active; do nothing */ + return; + + s_con = nm_connection_get_setting_connection (connection); + info = g_malloc0 (sizeof (VPNActivateInfo)); + info->applet = applet; + info->vpn_name = g_strdup (nm_setting_connection_get_id (s_con)); + + /* Connection inactive, activate */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + nm_object_get_path (NM_OBJECT (active)), + activate_vpn_cb, + info); + start_animation_timeout (applet); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + + +/* + * nma_menu_configure_vpn_item_activate + * + * Signal function called when user clicks "Configure VPN..." + * + */ +static void +nma_menu_configure_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + const char *argv[] = { BINDIR "/nm-connection-editor", "--show", "--type", NM_SETTING_VPN_SETTING_NAME, NULL}; + + g_spawn_async (NULL, (gchar **) argv, NULL, 0, NULL, NULL, NULL, NULL); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static NMActiveConnection * +applet_get_first_active_vpn_connection (NMApplet *applet, + NMVPNConnectionState *out_state) +{ + const GPtrArray *active_list; + int i; + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate; + NMConnection *connection; + NMSettingConnection *s_con; + + candidate = g_ptr_array_index (active_list, i); + + connection = applet_get_connection_for_active (applet, candidate); + if (!connection) + continue; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + if (out_state) + *out_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + return candidate; + } + } + + return NULL; +} + +/* + * nma_menu_disconnect_vpn_item_activate + * + * Signal function called when user clicks "Disconnect VPN" + * + */ +static void +nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMActiveConnection *active_vpn = NULL; + NMVPNConnectionState state = NM_VPN_CONNECTION_STATE_UNKNOWN; + + active_vpn = applet_get_first_active_vpn_connection (applet, &state); + if (active_vpn) + nm_client_deactivate_connection (applet->nm_client, active_vpn); + else + g_warning ("%s: deactivate clicked but no active VPN connection could be found.", __func__); +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +/* + * nma_menu_add_separator_item + * + */ +static void +nma_menu_add_separator_item (GtkWidget *menu) +{ + GtkWidget *menu_item; + + menu_item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + + +/* + * nma_menu_add_text_item + * + * Add a non-clickable text item to a menu + * + */ +static void nma_menu_add_text_item (GtkWidget *menu, char *text) +{ + GtkWidget *menu_item; + + g_return_if_fail (text != NULL); + g_return_if_fail (menu != NULL); + + menu_item = gtk_menu_item_new_with_label (text); + gtk_widget_set_sensitive (menu_item, FALSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + +static gint +sort_devices (gconstpointer a, gconstpointer b) +{ + NMDevice *aa = NM_DEVICE (a); + NMDevice *bb = NM_DEVICE (b); + GType aa_type = G_OBJECT_TYPE (G_OBJECT (aa)); + GType bb_type = G_OBJECT_TYPE (G_OBJECT (bb)); + + if (aa_type == bb_type) { + const char *aa_desc = NULL; + const char *bb_desc = NULL; + + aa_desc = nma_utils_get_device_description (aa); + bb_desc = nma_utils_get_device_description (bb); + + return g_strcmp0 (aa_desc, bb_desc); + } + + /* Ethernet always first */ + if (aa_type == NM_TYPE_DEVICE_ETHERNET) + return -1; + if (bb_type == NM_TYPE_DEVICE_ETHERNET) + return 1; + + /* Modems next */ + if (aa_type == NM_TYPE_DEVICE_MODEM) + return -1; + if (bb_type == NM_TYPE_DEVICE_MODEM) + return 1; + + /* Bluetooth next */ + if (aa_type == NM_TYPE_DEVICE_BT) + return -1; + if (bb_type == NM_TYPE_DEVICE_BT) + return 1; + + /* WiMAX next */ + if (aa_type == NM_TYPE_DEVICE_WIMAX) + return -1; + if (bb_type == NM_TYPE_DEVICE_WIMAX) + return 1; + + /* WiFi last because it has many menu items */ + return 1; +} + +static gboolean +nm_g_ptr_array_contains (const GPtrArray *haystack, gpointer needle) +{ + int i; + + for (i = 0; haystack && (i < haystack->len); i++) { + if (g_ptr_array_index (haystack, i) == needle) + return TRUE; + } + return FALSE; +} + +NMConnection * +applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active) +{ + const GPtrArray *active_connections; + NMConnection *connection = NULL; + int i; + + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + if (out_active) + g_return_val_if_fail (*out_active == NULL, NULL); + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMRemoteConnection *tmp; + NMActiveConnection *active; + const char *connection_path; + const GPtrArray *devices; + + active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_connections, i)); + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + tmp = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (tmp) { + connection = NM_CONNECTION (tmp); + if (out_active) + *out_active = active; + break; + } + } + + return connection; +} + +gboolean +nma_menu_device_check_unusable (NMDevice *device) +{ + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + case NM_DEVICE_STATE_UNMANAGED: + return TRUE; + default: + break; + } + return FALSE; +} + + +struct AppletDeviceMenuInfo { + NMDevice *device; + NMApplet *applet; +}; + +static void +applet_device_info_destroy (struct AppletDeviceMenuInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + memset (info, 0, sizeof (struct AppletDeviceMenuInfo)); + g_free (info); +} + +static void +applet_device_disconnect_db (GtkMenuItem *item, gpointer user_data) +{ + struct AppletDeviceMenuInfo *info = user_data; + + applet_menu_item_disconnect_helper (info->device, + info->applet); +} + +GtkWidget * +nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg) +{ + GtkWidget *item = NULL; + gboolean managed = TRUE; + + if (!unavailable_msg) { + if (nm_device_get_firmware_missing (device)) + unavailable_msg = _("device not ready (firmware missing)"); + else + unavailable_msg = _("device not ready"); + } + + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_DISCONNECTED: + unavailable_msg = _("disconnected"); + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_UNMANAGED: + managed = FALSE; + break; + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + case NM_DEVICE_STATE_ACTIVATED: + { + struct AppletDeviceMenuInfo *info = g_new0 (struct AppletDeviceMenuInfo, 1); + info->device = g_object_ref (device); + info->applet = applet; + item = gtk_menu_item_new_with_label (_("Disconnect")); + g_signal_connect_data (item, "activate", + G_CALLBACK (applet_device_disconnect_db), + info, + (GClosureNotify) applet_device_info_destroy, 0); + gtk_widget_set_sensitive (item, TRUE); + break; + } + default: + managed = nm_device_get_managed (device); + break; + } + + if (!managed) { + item = gtk_menu_item_new_with_label (_("device not managed")); + gtk_widget_set_sensitive (item, FALSE); + } + + return item; +} + +static guint32 +nma_menu_add_devices (GtkWidget *menu, NMApplet *applet) +{ + const GPtrArray *temp = NULL; + GSList *devices = NULL, *iter = NULL; + gint n_wifi_devices = 0; + gint n_usable_wifi_devices = 0; + gint n_ethernet_devices = 0; + gint n_mb_devices = 0; + gint n_bt_devices = 0; + int i; + + temp = nm_client_get_devices (applet->nm_client); + for (i = 0; temp && (i < temp->len); i++) + devices = g_slist_insert_sorted (devices, g_ptr_array_index (temp, i), sort_devices); + + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) { + n_wifi_devices++; + if ( nm_client_wireless_get_enabled (applet->nm_client) + && (nm_device_get_state (device) >= NM_DEVICE_STATE_DISCONNECTED)) + n_usable_wifi_devices++; + } else if (NM_IS_DEVICE_ETHERNET (device)) + n_ethernet_devices++; + else if (NM_IS_DEVICE_MODEM (device)) + n_mb_devices++; + else if (NM_IS_DEVICE_BT (device)) + n_bt_devices++; + } + + if (!n_ethernet_devices && !n_wifi_devices && !n_mb_devices && !n_bt_devices) { + nma_menu_add_text_item (menu, _("No network devices available")); + goto out; + } + + /* Add all devices in our device list to the menu */ + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + gint n_devices = 0; + NMADeviceClass *dclass; + NMConnection *active; + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) + n_devices = n_wifi_devices; + else if (NM_IS_DEVICE_ETHERNET (device)) + n_devices = n_ethernet_devices; + else if (NM_IS_DEVICE_MODEM (device)) + n_devices = n_mb_devices; + + active = applet_find_active_connection_for_device (device, applet, NULL); + + dclass = get_device_class (device, applet); + if (dclass) + dclass->add_menu_item (device, n_devices, active, menu, applet); + } + + out: + g_slist_free (devices); + + /* Return # of usable wifi devices here for correct enable/disable state + * of things like Enable Wi-Fi, "Connect to other..." and such. + */ + return n_usable_wifi_devices; +} + +static int +sort_vpn_connections (gconstpointer a, gconstpointer b) +{ + return strcmp (get_connection_id (NM_CONNECTION (a)), get_connection_id (NM_CONNECTION (b))); +} + +static GSList * +get_vpn_connections (NMApplet *applet) +{ + GSList *all_connections; + GSList *iter; + GSList *list = NULL; + + all_connections = applet_get_all_connections (applet); + + for (iter = all_connections; iter; iter = iter->next) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) + /* Not a VPN connection */ + continue; + + if (!nm_connection_get_setting_vpn (connection)) { + g_warning ("%s: VPN connection '%s' didn't have required vpn setting.", __func__, + nm_setting_connection_get_id (s_con)); + continue; + } + + list = g_slist_prepend (list, connection); + } + + g_slist_free (all_connections); + + return g_slist_sort (list, sort_vpn_connections); +} + +static void +nma_menu_add_vpn_submenu (GtkWidget *menu, NMApplet *applet) +{ + GtkMenu *vpn_menu; + GtkMenuItem *item; + GSList *list, *iter; + int num_vpn_active = 0; + + nma_menu_add_separator_item (menu); + + vpn_menu = GTK_MENU (gtk_menu_new ()); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_VPN Connections"))); + gtk_menu_item_set_submenu (item, GTK_WIDGET (vpn_menu)); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + + list = get_vpn_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (applet_get_active_for_connection (applet, connection)) + num_vpn_active++; + } + + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMActiveConnection *active; + const char *name; + GtkWidget *image; + NMState state; + + name = get_connection_id (connection); + + item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); + gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + + /* If no VPN connections are active, draw all menu items enabled. If + * >= 1 VPN connections are active, only the active VPN menu item is + * drawn enabled. + */ + active = applet_get_active_for_connection (applet, connection); + + state = nm_client_get_state (applet->nm_client); + if ( state != NM_STATE_CONNECTED_LOCAL + && state != NM_STATE_CONNECTED_SITE + && state != NM_STATE_CONNECTED_GLOBAL) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + else if ((num_vpn_active == 0) || active) + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + else + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + if (active) { + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + } + + g_object_set_data_full (G_OBJECT (item), "connection", + g_object_ref (connection), + (GDestroyNotify) g_object_unref); + + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_vpn_item_clicked), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } + + /* Draw a seperator, but only if we have VPN connections above it */ + if (list) + nma_menu_add_separator_item (GTK_WIDGET (vpn_menu)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Configure VPN..."))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_configure_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Disconnect VPN"))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_disconnect_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + if (num_vpn_active == 0) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + g_slist_free (list); +} + + +static void +nma_set_wifi_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wireless_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wwan_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wwan_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wimax_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wimax_set_enabled (applet->nm_client, state); +} + +static void +nma_set_networking_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_networking_set_enabled (applet->nm_client, state); +} + + +static void +nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_CONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_VPN_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + !state); +} + +/* + * nma_menu_show_cb + * + * Pop up the wifi networks menu + * + */ +static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet) +{ + guint32 n_wifi; + + g_return_if_fail (menu != NULL); + g_return_if_fail (applet != NULL); + + gtk_status_icon_set_tooltip_text (applet->status_icon, NULL); + + if (!nm_client_get_manager_running (applet->nm_client)) { + nma_menu_add_text_item (menu, _("NetworkManager is not running...")); + return; + } + + if (nm_client_get_state (applet->nm_client) == NM_STATE_ASLEEP) { + nma_menu_add_text_item (menu, _("Networking disabled")); + return; + } + + n_wifi = nma_menu_add_devices (menu, applet); + + if (n_wifi > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { + /* Add the "Hidden Wi-Fi network..." entry */ + nma_menu_add_hidden_network_item (menu, applet); + nma_menu_add_create_network_item (menu, applet); + nma_menu_add_separator_item (menu); + } + + nma_menu_add_vpn_submenu (menu, applet); + gtk_widget_show_all (menu); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static gboolean +destroy_old_menu (gpointer user_data) +{ + g_object_unref (user_data); + return FALSE; +} + +static void +nma_menu_deactivate_cb (GtkWidget *widget, NMApplet *applet) +{ + /* Must punt the destroy to a low-priority idle to ensure that + * the menu items don't get destroyed before any 'activate' signal + * fires for an item. + */ + g_signal_handlers_disconnect_by_func (applet->menu, G_CALLBACK (nma_menu_deactivate_cb), applet); + g_idle_add_full (G_PRIORITY_LOW, destroy_old_menu, applet->menu, NULL); + applet->menu = NULL; + + /* Re-set the tooltip */ + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +} + +static gboolean +is_permission_yes (NMApplet *applet, NMClientPermission perm) +{ + if ( applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_YES + || applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_AUTH) + return TRUE; + return FALSE; +} + +/* + * nma_context_menu_update + * + */ +static void +nma_context_menu_update (NMApplet *applet) +{ + NMState state; + gboolean net_enabled = TRUE; + gboolean have_wifi = FALSE; + gboolean have_wwan = FALSE; + gboolean have_wimax = FALSE; + gboolean wifi_hw_enabled; + gboolean wwan_hw_enabled; + gboolean wimax_hw_enabled; + gboolean notifications_enabled = TRUE; + gboolean sensitive = FALSE; + + state = nm_client_get_state (applet->nm_client); + sensitive = ( state == NM_STATE_CONNECTED_LOCAL + || state == NM_STATE_CONNECTED_SITE + || state == NM_STATE_CONNECTED_GLOBAL); + gtk_widget_set_sensitive (applet->info_menu_item, sensitive); + + /* Update checkboxes, and block 'toggled' signal when updating so that the + * callback doesn't get triggered. + */ + + /* Enabled Networking */ + g_signal_handler_block (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + net_enabled = nm_client_networking_get_enabled (applet->nm_client); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->networking_enabled_item), + net_enabled && (state != NM_STATE_ASLEEP)); + g_signal_handler_unblock (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + gtk_widget_set_sensitive (applet->networking_enabled_item, + is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK)); + + /* Enabled Wi-Fi */ + g_signal_handler_block (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wifi_enabled_item), + nm_client_wireless_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wifi_enabled_item), + wifi_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI)); + + /* Enabled Mobile Broadband */ + g_signal_handler_block (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wwan_enabled_item), + nm_client_wwan_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + + wwan_hw_enabled = nm_client_wwan_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wwan_enabled_item), + wwan_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN)); + + /* Enable WiMAX */ + g_signal_handler_block (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wimax_enabled_item), + nm_client_wimax_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + + wimax_hw_enabled = nm_client_wimax_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), + wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); + + /* Enabled notifications */ + g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + if ( g_settings_get_boolean (applet->gsettings, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_VPN_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + notifications_enabled = FALSE; + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); + g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + + /* Don't show wifi-specific stuff if wifi is off */ + if (state != NM_STATE_ASLEEP) { + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = g_ptr_array_index (devices, i); + + if (NM_IS_DEVICE_WIFI (candidate)) + have_wifi = TRUE; + else if (NM_IS_DEVICE_MODEM (candidate)) + have_wwan = TRUE; + else if (NM_IS_DEVICE_WIMAX (candidate)) + have_wimax = TRUE; + } + } + + if (have_wifi) + gtk_widget_show_all (applet->wifi_enabled_item); + else + gtk_widget_hide (applet->wifi_enabled_item); + + if (have_wwan) + gtk_widget_show_all (applet->wwan_enabled_item); + else + gtk_widget_hide (applet->wwan_enabled_item); + + if (have_wimax) + gtk_widget_show_all (applet->wimax_enabled_item); + else + gtk_widget_hide (applet->wimax_enabled_item); +} + +static void +ce_child_setup (gpointer user_data G_GNUC_UNUSED) +{ + /* We are in the child process at this point */ + pid_t pid = getpid (); + setpgid (pid, pid); +} + +static void +nma_edit_connections_cb (GtkMenuItem *mi, NMApplet *applet) +{ + char *argv[2]; + GError *error = NULL; + gboolean success; + + argv[0] = BINDIR "/nm-connection-editor"; + argv[1] = NULL; + + success = g_spawn_async ("/", argv, NULL, 0, &ce_child_setup, NULL, NULL, &error); + if (!success) { + g_warning ("Error launching connection editor: %s", error->message); + g_error_free (error); + } +} + +static void +applet_connection_info_cb (NMApplet *applet) +{ + applet_info_dialog_show (applet); +} + +/* + * nma_context_menu_create + * + * Generate the contextual popup menu. + * + */ +static GtkWidget *nma_context_menu_create (NMApplet *applet) +{ + GtkMenuShell *menu; + GtkWidget *menu_item; + GtkWidget *image; + guint id; + + g_return_val_if_fail (applet != NULL, NULL); + + menu = GTK_MENU_SHELL (gtk_menu_new ()); + + /* 'Enable Networking' item */ + applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); + id = g_signal_connect (applet->networking_enabled_item, + "toggled", + G_CALLBACK (nma_set_networking_enabled_cb), + applet); + applet->networking_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->networking_enabled_item); + + /* 'Enable Wi-Fi' item */ + applet->wifi_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Wi-Fi")); + id = g_signal_connect (applet->wifi_enabled_item, + "toggled", + G_CALLBACK (nma_set_wifi_enabled_cb), + applet); + applet->wifi_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wifi_enabled_item); + + /* 'Enable Mobile Broadband' item */ + applet->wwan_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Mobile Broadband")); + id = g_signal_connect (applet->wwan_enabled_item, + "toggled", + G_CALLBACK (nma_set_wwan_enabled_cb), + applet); + applet->wwan_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wwan_enabled_item); + + /* 'Enable WiMAX Mobile Broadband' item */ + applet->wimax_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable WiMA_X Mobile Broadband")); + id = g_signal_connect (applet->wimax_enabled_item, + "toggled", + G_CALLBACK (nma_set_wimax_enabled_cb), + applet); + applet->wimax_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wimax_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* Toggle notifications item */ + applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); + id = g_signal_connect (applet->notifications_enabled_item, + "toggled", + G_CALLBACK (nma_set_notifications_enabled_cb), + applet); + applet->notifications_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->notifications_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* 'Connection Information' item */ + applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); + g_signal_connect_swapped (applet->info_menu_item, + "activate", + G_CALLBACK (applet_connection_info_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->info_menu_item), image); + gtk_menu_shell_append (menu, applet->info_menu_item); + + /* 'Edit Connections...' item */ + applet->connections_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Edit Connections...")); + g_signal_connect (applet->connections_menu_item, + "activate", + G_CALLBACK (nma_edit_connections_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); + gtk_menu_shell_append (menu, applet->connections_menu_item); + + /* Separator */ + nma_menu_add_separator_item (GTK_WIDGET (menu)); + +#if 0 /* FIXME: Implement the help callback, nma_help_cb()! */ + /* Help item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Help")); + g_signal_connect (menu_item, "activate", G_CALLBACK (nma_help_cb), applet); + image = gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); +#endif + + /* About item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_About")); + g_signal_connect_swapped (menu_item, "activate", G_CALLBACK (applet_about_dialog_show), applet); + image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + + gtk_widget_show_all (GTK_WIDGET (menu)); + + return GTK_WIDGET (menu); +} + + +/*****************************************************************************/ + +static void +foo_set_icon (NMApplet *applet, GdkPixbuf *pixbuf, guint32 layer) +{ + int i; + + if (layer > ICON_LAYER_MAX) { + g_warning ("Tried to icon to invalid layer %d", layer); + return; + } + + /* Ignore setting of the same icon as is already displayed */ + if (applet->icon_layers[layer] == pixbuf) + return; + + if (applet->icon_layers[layer]) { + g_object_unref (applet->icon_layers[layer]); + applet->icon_layers[layer] = NULL; + } + + if (pixbuf) + applet->icon_layers[layer] = g_object_ref (pixbuf); + + if (!applet->icon_layers[0]) { + nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + pixbuf = g_object_ref (applet->no_connection_icon); + } else { + pixbuf = gdk_pixbuf_copy (applet->icon_layers[0]); + + for (i = ICON_LAYER_LINK + 1; i <= ICON_LAYER_MAX; i++) { + GdkPixbuf *top = applet->icon_layers[i]; + + if (!top) + continue; + + gdk_pixbuf_composite (top, pixbuf, 0, 0, gdk_pixbuf_get_width (top), + gdk_pixbuf_get_height (top), + 0, 0, 1.0, 1.0, + GDK_INTERP_NEAREST, 255); + } + } + + gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); + g_object_unref (pixbuf); +} + + +NMRemoteConnection * +applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) +{ + const GPtrArray *active_connections; + int i; + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMActiveConnection *active; + NMRemoteConnection *connection; + const char *connection_path; + const GPtrArray *devices; + + active = g_ptr_array_index (active_connections, i); + if (!active) + continue; + + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + connection = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (connection) + return connection; + } + return NULL; +} + +static gboolean +select_merged_notification_text (OfflineNotificationContextInfo *info) +{ + info->urgency = NOTIFY_URGENCY_LOW; + /* only do something if this is about full offline state */ + if(info->state != NM_STATE_UNKNOWN || info->device_state != NM_DEVICE_STATE_UNKNOWN) { + info->urgency = NOTIFY_URGENCY_NORMAL; + if (!info->title) + info->title = g_strdup (_("Network")); + if (info->state == NM_STATE_DISCONNECTED || info->state == NM_STATE_ASLEEP) { + info->text = _("Disconnected - you are now offline"); + } else + info->text = _("Disconnected"); + + switch (info->device_type) { + case NM_DEVICE_TYPE_ETHERNET: + info->icon = "notification-network-ethernet-disconnected"; + break; + case NM_DEVICE_TYPE_WIFI: + info->icon = "notification-network-wireless-disconnected"; + break; + case NM_DEVICE_TYPE_MODEM: + info->icon = "notification-gsm-disconnected"; + break; + default: + info->icon = "notification-network-disconnected"; + break; + } + g_debug("going for offline with icon: %s", info->icon); + return TRUE; + } + return FALSE; +} + +static gboolean +foo_online_offline_deferred_notify (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if(select_merged_notification_text (info)) + if (!g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS)) + applet_do_notify (applet, info->urgency, info->title, + info->text, info->icon, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + _("Don't show this message again"), + notify_dont_show_cb, + applet); + else + g_debug("no notification because merged found that we have nothing to say (e.g. not offline)"); + if (info->title) + g_free (info->title); + info->title = NULL; + g_free (applet->notification_queue_data); + applet->notification_queue_data = NULL; + applet->deferred_id = 0; + return FALSE; +} + +static void +applet_common_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + gboolean device_activating = FALSE, vpn_activating = FALSE; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (new_state) { + case NM_DEVICE_STATE_FAILED: + case NM_DEVICE_STATE_DISCONNECTED: + case NM_DEVICE_STATE_UNMANAGED: + case NM_DEVICE_STATE_UNAVAILABLE: + { + if (old_state != NM_DEVICE_STATE_FAILED && + old_state != NM_DEVICE_STATE_UNKNOWN && + old_state != NM_DEVICE_STATE_DISCONNECTED && + old_state != NM_DEVICE_STATE_UNMANAGED && + old_state != NM_DEVICE_STATE_UNAVAILABLE) { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->device_state = new_state; + info->device_state_reason = reason; + if (info->title) { + g_free(info->title); + info->title = NULL; + } + if (NM_IS_DEVICE_WIFI (device)) { + info->device_type = NM_DEVICE_TYPE_WIFI; + info->title = g_strdup(g_object_get_data (G_OBJECT(device), "canonical-last-essid")); + if (!info->title) + info->title = g_strdup (_("Wireless network")); + } else if (NM_IS_DEVICE_ETHERNET (device)) { + info->device_type = NM_DEVICE_TYPE_ETHERNET; + info->title = g_strdup(_("Wired network")); + } else if (NM_IS_DEVICE_MODEM (device)) { + info->device_type = NM_DEVICE_TYPE_MODEM; + info->title = g_strdup (_("Modem network")); + } else { + info->device_type = NM_DEVICE_TYPE_UNKNOWN; + info->title = g_strdup (_("Network")); + } + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + clear_animation_timeout (applet); + } else { + g_debug ("old state indicates that this was not a disconnect %d", old_state); + } + break; + } + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections or devices might not have come through yet. + */ + device_activating = TRUE; + break; + case NM_DEVICE_STATE_ACTIVATED: + default: + break; + } + + /* If there's an activating device but we're not animating, start animation. + * If we're animating, but there's no activating device or VPN, stop animating. + */ + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); +} + +static void +foo_device_state_changed_cb (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + g_assert (dclass); + + dclass->device_state_changed (device, new_state, old_state, reason, applet); + applet_common_device_state_changed (device, new_state, old_state, reason, applet); + + applet_schedule_update_icon (applet); +} + +static void +foo_device_added_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + if (!dclass) + return; + + if (dclass->device_added) + dclass->device_added (device, applet); + + g_signal_connect (device, "state-changed", + G_CALLBACK (foo_device_state_changed_cb), + user_data); + + foo_device_state_changed_cb (device, + nm_device_get_state (device), + NM_DEVICE_STATE_UNKNOWN, + NM_DEVICE_STATE_REASON_NONE, + applet); +} + +static void +foo_client_state_changed_cb (NMClient *client, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + g_debug("foo_client_state_changed_cb"); + switch (nm_client_get_state (client)) { + case NM_STATE_DISCONNECTED: + case NM_STATE_ASLEEP: + { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->state = nm_client_get_state (client); + select_merged_notification_text (info); + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + /* Fall through */ + } + default: + break; + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_running_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (nm_client_get_manager_running (client)) { + g_message ("NM appeared"); + } else { + g_message ("NM disappeared"); + clear_animation_timeout (applet); + } + + applet_schedule_update_icon (applet); +} + +#define VPN_STATE_ID_TAG "vpn-state-id" + +static void +foo_active_connections_changed_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const GPtrArray *active_list; + int i; + + /* Track the state of new VPN connections */ + active_list = nm_client_get_active_connections (client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + guint id; + + if ( !NM_IS_VPN_CONNECTION (candidate) + || g_object_get_data (G_OBJECT (candidate), VPN_STATE_ID_TAG)) + continue; + + id = g_signal_connect (G_OBJECT (candidate), "vpn-state-changed", + G_CALLBACK (vpn_connection_state_changed), applet); + g_object_set_data (G_OBJECT (candidate), VPN_STATE_ID_TAG, GUINT_TO_POINTER (id)); + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_permission_changed (NMClient *client, + NMClientPermission permission, + NMClientPermissionResult result, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (permission <= NM_CLIENT_PERMISSION_LAST) + applet->permissions[permission] = result; +} + +static gboolean +foo_set_initial_state (gpointer data) +{ + NMApplet *applet = NM_APPLET (data); + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) + foo_device_added_cb (applet->nm_client, NM_DEVICE (g_ptr_array_index (devices, i)), applet); + + foo_active_connections_changed_cb (applet->nm_client, NULL, applet); + + applet_schedule_update_icon (applet); + + return FALSE; +} + +static void +foo_client_setup (NMApplet *applet) +{ + NMClientPermission perm; + + applet->nm_client = nm_client_new (); + if (!applet->nm_client) + return; + + g_signal_connect (applet->nm_client, "notify::state", + G_CALLBACK (foo_client_state_changed_cb), + applet); + g_signal_connect (applet->nm_client, "notify::active-connections", + G_CALLBACK (foo_active_connections_changed_cb), + applet); + g_signal_connect (applet->nm_client, "device-added", + G_CALLBACK (foo_device_added_cb), + applet); + g_signal_connect (applet->nm_client, "notify::manager-running", + G_CALLBACK (foo_manager_running_cb), + applet); + + g_signal_connect (applet->nm_client, "permission-changed", + G_CALLBACK (foo_manager_permission_changed), + applet); + + /* Initialize permissions - the initial 'permission-changed' signal is emitted from NMClient constructor, and thus not caught */ + for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { + applet->permissions[perm] = nm_client_get_permission_result (applet->nm_client, perm); + } + + if (nm_client_get_manager_running (applet->nm_client)) + g_idle_add (foo_set_initial_state, applet); + + applet_schedule_update_icon (applet); +} + +static GdkPixbuf * +applet_common_get_device_icon (NMDeviceState state, NMApplet *applet) +{ + GdkPixbuf *pixbuf = NULL; + int stage = -1; + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + stage = 0; + break; + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + stage = 1; + break; + case NM_DEVICE_STATE_IP_CONFIG: + stage = 2; + break; + default: + break; + } + + if (stage >= 0) { + int i, j; + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { + char *name; + + name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); + nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); + g_free (name); + } + } + + pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_CONNECTING_FRAMES) + applet->animation_step = 0; + } + + return pixbuf; +} + +static char * +get_tip_for_device_state (NMDevice *device, + NMDeviceState state, + NMConnection *connection) +{ + NMSettingConnection *s_con; + char *tip = NULL; + const char *id = NULL; + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + tip = g_strdup_printf (_("Preparing network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + tip = g_strdup_printf (_("Network connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static GdkPixbuf * +applet_get_device_icon_for_state (NMApplet *applet, char **tip) +{ + NMActiveConnection *active; + NMDevice *device = NULL; + GdkPixbuf *pixbuf = NULL; + NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; + NMADeviceClass *dclass; + + // FIXME: handle multiple device states here + + /* First show the best activating device's state */ + active = applet_get_best_activating_connection (applet, &device); + if (!active || !device) { + /* If there aren't any activating devices, then show the state of + * the default active connection instead. + */ + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) + goto out; + } + + state = nm_device_get_state (device); + + dclass = get_device_class (device, applet); + if (dclass) { + NMConnection *connection; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + /* device class returns a referenced pixbuf */ + pixbuf = dclass->get_icon (device, state, connection, tip, applet); + if (!*tip) + *tip = get_tip_for_device_state (device, state, connection); + } + +out: + if (!pixbuf) { + pixbuf = applet_common_get_device_icon (state, applet); + /* reference the pixbuf to match the device class' get_icon() function behavior */ + if (pixbuf) + g_object_ref (pixbuf); + } + return pixbuf; +} + +static char * +get_tip_for_vpn (NMActiveConnection *active, NMVPNConnectionState state, NMApplet *applet) +{ + char *tip = NULL; + const char *path, *id = NULL; + GSList *iter, *list; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + if (!strcmp (nm_connection_get_path (candidate), path)) { + s_con = nm_connection_get_setting_connection (candidate); + id = nm_setting_connection_get_id (s_con); + break; + } + } + g_slist_free (list); + + if (!id) + return NULL; + + switch (state) { + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_PREPARE: + tip = g_strdup_printf (_("Starting VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + tip = g_strdup_printf (_("Requesting a VPN address for '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + tip = g_strdup_printf (_("VPN connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static gboolean +applet_update_icon (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GdkPixbuf *pixbuf = NULL; + NMState state; + char *dev_tip = NULL, *vpn_tip = NULL; + NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; + gboolean nm_running; + NMActiveConnection *active_vpn = NULL; + + applet->update_icon_id = 0; + + nm_running = nm_client_get_manager_running (applet->nm_client); + + /* Handle device state first */ + + state = nm_client_get_state (applet->nm_client); + if (!nm_running) + state = NM_STATE_UNKNOWN; + + switch (state) { + case NM_STATE_UNKNOWN: + case NM_STATE_ASLEEP: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("Networking disabled")); + break; + case NM_STATE_DISCONNECTED: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("No network connection")); + break; + default: + pixbuf = applet_get_device_icon_for_state (applet, &dev_tip); + break; + } + + foo_set_icon (applet, pixbuf, ICON_LAYER_LINK); + if (pixbuf) + g_object_unref (pixbuf); + + /* VPN state next */ + pixbuf = NULL; + active_vpn = applet_get_first_active_vpn_connection (applet, &vpn_state); + if (active_vpn) { + int i; + + switch (vpn_state) { + case NM_VPN_CONNECTION_STATE_ACTIVATED: + pixbuf = nma_icon_check_and_load ("nm-vpn-active-lock", &applet->vpn_lock_icon, applet); + break; + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) { + char *name; + + name = g_strdup_printf ("nm-vpn-connecting%02d", i+1); + nma_icon_check_and_load (name, &applet->vpn_connecting_icons[i], applet); + g_free (name); + } + + pixbuf = applet->vpn_connecting_icons[applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) + applet->animation_step = 0; + break; + default: + break; + } + + vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); + } + foo_set_icon (applet, pixbuf, ICON_LAYER_VPN); + + g_free (applet->tip); + applet->tip = NULL; + + if (dev_tip || vpn_tip) { + GString *tip; + + tip = g_string_new (dev_tip); + + if (vpn_tip) + g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", vpn_tip); + + if (tip->len) + applet->tip = tip->str; + + g_free (vpn_tip); + g_free (dev_tip); + g_string_free (tip, FALSE); + } + + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); + + return FALSE; +} + +void +applet_schedule_update_icon (NMApplet *applet) +{ + if (!applet->update_icon_id) + applet->update_icon_id = g_idle_add (applet_update_icon, applet); +} + +/*****************************************************************************/ + +static SecretsRequest * +applet_secrets_request_new (size_t totsize, + NMConnection *connection, + gpointer request_id, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + NMApplet *applet) +{ + SecretsRequest *req; + + g_return_val_if_fail (totsize >= sizeof (SecretsRequest), NULL); + g_return_val_if_fail (connection != NULL, NULL); + + req = g_malloc0 (totsize); + req->totsize = totsize; + req->connection = g_object_ref (connection); + req->reqid = request_id; + req->setting_name = g_strdup (setting_name); + req->hints = g_strdupv ((char **) hints); + req->flags = flags; + req->callback = callback; + req->callback_data = callback_data; + req->applet = applet; + return req; +} + +void +applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func) +{ + req->free_func = free_func; +} + +void +applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error) +{ + req->callback (req->applet->agent, error ? NULL : settings, error, req->callback_data); +} + +void +applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error) +{ + NMSetting *setting; + GHashTable *settings = NULL, *secrets; + + if (setting_name && !error) { + setting = nm_connection_get_setting_by_name (req->connection, setting_name); + if (setting) { + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, g_strdup (setting_name), secrets); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, setting_name); + } + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled setting '%s'", + __FILE__, __LINE__, __func__, setting_name); + } + } + + req->callback (req->applet->agent, settings, error, req->callback_data); +} + +void +applet_secrets_request_free (SecretsRequest *req) +{ + g_return_if_fail (req != NULL); + + if (req->free_func) + req->free_func (req); + + req->applet->secrets_reqs = g_slist_remove (req->applet->secrets_reqs, req); + + g_object_unref (req->connection); + g_free (req->setting_name); + g_strfreev (req->hints); + memset (req, 0, req->totsize); + g_free (req); +} + +static void +get_existing_secrets_cb (NMSecretAgent *agent, + NMConnection *connection, + GHashTable *secrets, + GError *secrets_error, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMADeviceClass *dclass; + GError *error = NULL; + + /* Merge existing secrets into connection; ignore errors */ + nm_connection_update_secrets (connection, req->setting_name, secrets, NULL); + + dclass = get_device_class_from_connection (connection, req->applet); + g_assert (dclass); + + /* Let the device class handle secrets */ + if (!dclass->get_secrets (req, &error)) { + g_warning ("%s:%d - %s", __func__, __LINE__, error ? error->message : "(unknown)"); + applet_secrets_request_complete (req, NULL, error); + applet_secrets_request_free (req); + g_error_free (error); + } + /* Otherwise success; wait for the secrets callback */ +} + +static void +applet_agent_get_secrets_cb (AppletAgent *agent, + gpointer request_id, + NMConnection *connection, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMSettingConnection *s_con; + NMADeviceClass *dclass; + GError *error = NULL; + SecretsRequest *req = NULL; + + s_con = nm_connection_get_setting_connection (connection); + g_return_if_fail (s_con != NULL); + + /* VPN secrets get handled a bit differently */ + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + req = applet_secrets_request_new (applet_vpn_request_get_secrets_size (), + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + if (!applet_vpn_request_get_secrets (req, &error)) + goto error; + + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + return; + } + + dclass = get_device_class_from_connection (connection, applet); + if (!dclass) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): device type unknown", + __FILE__, __LINE__, __func__); + goto error; + } + + if (!dclass->get_secrets) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NO_SECRETS, + "%s.%d (%s): no secrets found", + __FILE__, __LINE__, __func__); + goto error; + } + + g_assert (dclass->secrets_request_size); + req = applet_secrets_request_new (dclass->secrets_request_size, + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + + /* Get existing secrets, if any */ + nm_secret_agent_get_secrets (NM_SECRET_AGENT (applet->agent), + connection, + setting_name, + hints, + NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE, + get_existing_secrets_cb, + req); + return; + +error: + g_warning ("%s", error->message); + callback (agent, NULL, error, callback_data); + g_error_free (error); + + if (req) + applet_secrets_request_free (req); +} + +static void +applet_agent_cancel_secrets_cb (AppletAgent *agent, + gpointer request_id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GSList *iter; + + for (iter = applet->secrets_reqs; iter; iter = g_slist_next (iter)) { + SecretsRequest *req = iter->data; + + if (req->reqid == request_id) { + /* cancel and free this password request */ + applet_secrets_request_free (req); + } + } +} + +static void +applet_agent_registered_cb (AppletAgent *agent, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + /* If the shell is running and the agent just got registered, unregister it */ + if ( (nm_shell_watcher_version_at_least (applet->shell_watcher, 3, 4)) + && nm_secret_agent_get_registered (NM_SECRET_AGENT (agent))) { + g_message ("Stopping registered applet secret agent because GNOME Shell is running"); + nm_secret_agent_unregister (NM_SECRET_AGENT (agent)); + } +} + +/*****************************************************************************/ + +static void +nma_clear_icon (GdkPixbuf **icon, NMApplet *applet) +{ + g_return_if_fail (icon != NULL); + g_return_if_fail (applet != NULL); + + if (*icon && (*icon != applet->fallback_icon)) { + g_object_unref (*icon); + *icon = NULL; + } +} + +static void nma_icons_free (NMApplet *applet) +{ + int i, j; + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); + + nma_clear_icon (&applet->no_connection_icon, applet); + nma_clear_icon (&applet->ethernet_icon, applet); + nma_clear_icon (&applet->adhoc_icon, applet); + nma_clear_icon (&applet->wwan_icon, applet); + nma_clear_icon (&applet->wwan_tower_icon, applet); + nma_clear_icon (&applet->vpn_lock_icon, applet); + nma_clear_icon (&applet->wifi_00_icon, applet); + nma_clear_icon (&applet->wifi_25_icon, applet); + nma_clear_icon (&applet->wifi_50_icon, applet); + nma_clear_icon (&applet->wifi_75_icon, applet); + nma_clear_icon (&applet->wifi_100_icon, applet); + nma_clear_icon (&applet->secure_lock_icon, applet); + + nma_clear_icon (&applet->mb_tech_1x_icon, applet); + nma_clear_icon (&applet->mb_tech_evdo_icon, applet); + nma_clear_icon (&applet->mb_tech_gprs_icon, applet); + nma_clear_icon (&applet->mb_tech_edge_icon, applet); + nma_clear_icon (&applet->mb_tech_umts_icon, applet); + nma_clear_icon (&applet->mb_tech_hspa_icon, applet); + nma_clear_icon (&applet->mb_tech_lte_icon, applet); + nma_clear_icon (&applet->mb_roaming_icon, applet); + nma_clear_icon (&applet->mb_tech_3g_icon, applet); + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) + nma_clear_icon (&applet->network_connecting_icons[i][j], applet); + } + + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) + nma_clear_icon (&applet->vpn_connecting_icons[i], applet); + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); +} + +GdkPixbuf * +nma_icon_check_and_load (const char *name, GdkPixbuf **icon, NMApplet *applet) +{ + GError *error = NULL; + + g_return_val_if_fail (name != NULL, NULL); + g_return_val_if_fail (icon != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + /* icon already loaded successfully */ + if (*icon && (*icon != applet->fallback_icon)) + return *icon; + + /* Try to load the icon; if the load fails, log the problem, and set + * the icon to the fallback icon if requested. + */ + *icon = gtk_icon_theme_load_icon (applet->icon_theme, name, applet->icon_size, 0, &error); + if (!*icon) { + g_warning ("Icon %s missing: (%d) %s", + name, + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + + *icon = applet->fallback_icon; + } + return *icon; +} + +#include "fallback-icon.h" + +static gboolean +nma_icons_reload (NMApplet *applet) +{ + GError *error = NULL; + GdkPixbufLoader *loader; + + g_return_val_if_fail (applet->icon_size > 0, FALSE); + + nma_icons_free (applet); + + loader = gdk_pixbuf_loader_new_with_type ("png", &error); + if (!loader) + goto error; + + if (!gdk_pixbuf_loader_write (loader, + fallback_icon_data, + sizeof (fallback_icon_data), + &error)) + goto error; + + if (!gdk_pixbuf_loader_close (loader, &error)) + goto error; + + applet->fallback_icon = gdk_pixbuf_loader_get_pixbuf (loader); + g_object_ref (applet->fallback_icon); + g_assert (applet->fallback_icon); + g_object_unref (loader); + + return TRUE; + +error: + g_warning ("Could not load fallback icon: (%d) %s", + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + /* Die if we can't get a fallback icon */ + g_assert (FALSE); + return FALSE; +} + +static void nma_icon_theme_changed (GtkIconTheme *icon_theme, NMApplet *applet) +{ + nma_icons_reload (applet); +} + +static void nma_icons_init (NMApplet *applet) +{ + GdkScreen *screen; + gboolean path_appended; + + if (applet->icon_theme) { + g_signal_handlers_disconnect_by_func (applet->icon_theme, + G_CALLBACK (nma_icon_theme_changed), + applet); + g_object_unref (G_OBJECT (applet->icon_theme)); + } + + screen = gtk_status_icon_get_screen (applet->status_icon); + g_assert (screen); + applet->icon_theme = gtk_icon_theme_get_for_screen (screen); + + /* If not done yet, append our search path */ + path_appended = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended")); + if (path_appended == FALSE) { + gtk_icon_theme_append_search_path (applet->icon_theme, ICONDIR); + g_object_set_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended", + GINT_TO_POINTER (TRUE)); + } + + g_signal_connect (applet->icon_theme, "changed", G_CALLBACK (nma_icon_theme_changed), applet); +} + +static void +status_icon_screen_changed_cb (GtkStatusIcon *icon, + GParamSpec *pspec, + NMApplet *applet) +{ + nma_icons_init (applet); + nma_icon_theme_changed (NULL, applet); +} + +static gboolean +status_icon_size_changed_cb (GtkStatusIcon *icon, + gint size, + NMApplet *applet) +{ + if (getenv ("NMA_SIZE_DEBUG")) { + g_message ("%s(): status icon size now %d", __func__, size); + } + + /* icon_size may be 0 if for example the panel hasn't given us any space + * yet. We'll get resized later, but for now just load the 16x16 icons. + */ + applet->icon_size = MAX (16, size); + + nma_icons_reload (applet); + + applet_schedule_update_icon (applet); + + return TRUE; +} + +static void +status_icon_activate_cb (GtkStatusIcon *icon, NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + + /* Kill any old menu */ + if (applet->menu) + g_object_unref (applet->menu); + + /* And make a fresh new one */ + applet->menu = gtk_menu_new (); + /* Sink the ref so we can explicitly destroy the menu later */ + g_object_ref_sink (G_OBJECT (applet->menu)); + + gtk_container_set_border_width (GTK_CONTAINER (applet->menu), 0); + g_signal_connect (applet->menu, "show", G_CALLBACK (nma_menu_show_cb), applet); + g_signal_connect (applet->menu, "deactivate", G_CALLBACK (nma_menu_deactivate_cb), applet); + + /* Display the new menu */ + gtk_menu_popup (GTK_MENU (applet->menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + 1, gtk_get_current_event_time ()); +} + +static void +status_icon_popup_menu_cb (GtkStatusIcon *icon, + guint button, + guint32 activate_time, + NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + + nma_context_menu_update (applet); + gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + button, activate_time); +} + +static gboolean +setup_widgets (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->status_icon = gtk_status_icon_new (); + if (!applet->status_icon) + return FALSE; + if (shell_debug) + gtk_status_icon_set_name (applet->status_icon, "adsfasdfasdfadfasdf"); + + g_signal_connect (applet->status_icon, "notify::screen", + G_CALLBACK (status_icon_screen_changed_cb), applet); + g_signal_connect (applet->status_icon, "size-changed", + G_CALLBACK (status_icon_size_changed_cb), applet); + g_signal_connect (applet->status_icon, "activate", + G_CALLBACK (status_icon_activate_cb), applet); + g_signal_connect (applet->status_icon, "popup-menu", + G_CALLBACK (status_icon_popup_menu_cb), applet); + + applet->context_menu = nma_context_menu_create (applet); + if (!applet->context_menu) + return FALSE; + + return TRUE; +} + +static void +applet_embedded_cb (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + gboolean embedded = gtk_status_icon_is_embedded (GTK_STATUS_ICON (object)); + + g_message ("applet now %s the notification area", + embedded ? "embedded in" : "removed from"); +} + +#if GLIB_CHECK_VERSION(2,26,0) +static gboolean +delayed_start_agent (gpointer user_data) +{ + NMApplet *applet = user_data; + + applet->agent_start_id = 0; + + g_assert (applet->agent); + + /* If the agent is already running, there's nothing to do. */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent)) == TRUE) + return FALSE; + + if (nm_secret_agent_register (NM_SECRET_AGENT (applet->agent))) + g_message ("Starting applet secret agent because GNOME Shell disappeared"); + else + g_warning ("Failed to start applet secret agent!"); + return FALSE; +} + +static void +shell_version_changed_cb (NMShellWatcher *watcher, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = user_data; + + if (applet->agent_start_id) { + g_source_remove (applet->agent_start_id); + applet->agent_start_id = 0; + } + + if (!applet->agent) + return; + + if (nm_shell_watcher_version_at_least (watcher, 3, 4)) { + /* GNOME Shell handles all secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) { + g_message ("Stopping applet secret agent because GNOME Shell appeared"); + nm_secret_agent_unregister (NM_SECRET_AGENT (applet->agent)); + } + } else if (nm_shell_watcher_version_at_least (watcher, 3, 2)) { + /* GNOME Shell handles everything except VPN secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + g_message ("Applet secret agent handling only VPN secrets because GNOME Shell appeared"); + applet_agent_handle_vpn_only (applet->agent, TRUE); + } else { + /* If the shell quit and our agent wasn't already registered, do it + * now on a delay (just in case the shell is restarting). + */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + applet->agent_start_id = g_timeout_add_seconds (4, delayed_start_agent, applet); + applet_agent_handle_vpn_only (applet->agent, FALSE); + } +} +#endif + +static gboolean +dbus_setup (NMApplet *applet, GError **error) +{ + DBusConnection *connection; + DBusGProxy *proxy; + guint result; + gboolean success; + + applet->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, error); + if (!applet->bus) + return FALSE; + + connection = dbus_g_connection_get_connection (applet->bus); + dbus_connection_set_exit_on_disconnect (connection, FALSE); + + applet->session_bus = dbus_g_bus_get (DBUS_BUS_SESSION, error); + if (!applet->session_bus) + return FALSE; + + dbus_g_connection_register_g_object (applet->session_bus, + "/org/gnome/network_manager_applet", + G_OBJECT (applet)); + + proxy = dbus_g_proxy_new_for_name (applet->session_bus, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + success = dbus_g_proxy_call (proxy, "RequestName", error, + G_TYPE_STRING, "org.gnome.network_manager_applet", + G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE, + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID); + g_object_unref (proxy); + + return success; +} + +static GObject * +constructor (GType type, + guint n_props, + GObjectConstructParam *construct_props) +{ + NMApplet *applet; + GError* error = NULL; + + applet = NM_APPLET (G_OBJECT_CLASS (nma_parent_class)->constructor (type, n_props, construct_props)); + + g_set_application_name (_("NetworkManager Applet")); + gtk_window_set_default_icon_name (GTK_STOCK_NETWORK); + + applet->info_dialog_ui = gtk_builder_new (); + + if (!gtk_builder_add_from_file (applet->info_dialog_ui, UIDIR "/info.ui", &error)) { + g_warning ("Couldn't load info dialog ui file: %s", error->message); + g_error_free (error); + goto error; + } + + applet->gsettings = g_settings_new (APPLET_PREFS_SCHEMA); + + /* Load pixmaps and create applet widgets */ + if (!setup_widgets (applet)) + goto error; + nma_icons_init (applet); + + if (!notify_is_initted ()) + notify_init ("NetworkManager"); + + if (!dbus_setup (applet, &error)) { + g_warning ("Failed to initialize D-Bus: %s", error->message); + g_error_free (error); + goto error; + } + applet->settings = nm_remote_settings_new (applet->bus); + +#ifdef BUILD_MIGRATION_TOOL + { + char *argv[2] = { LIBEXECDIR "/nm-applet-migration-tool", NULL }; + int status; + + /* Move user connections to the system */ + if (!g_spawn_sync (NULL, argv, NULL, 0, NULL, NULL, + NULL, NULL, &status, &error)) { + g_warning ("Could not run nm-applet-migration-tool: %s", + error->message); + g_error_free (error); + } else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { + g_warning ("nm-applet-migration-tool exited with error"); + } + } +#endif + + applet->agent = applet_agent_new (); + g_assert (applet->agent); + g_signal_connect (applet->agent, APPLET_AGENT_GET_SECRETS, + G_CALLBACK (applet_agent_get_secrets_cb), applet); + g_signal_connect (applet->agent, APPLET_AGENT_CANCEL_SECRETS, + G_CALLBACK (applet_agent_cancel_secrets_cb), applet); + g_signal_connect (applet->agent, "notify::" NM_SECRET_AGENT_REGISTERED, + G_CALLBACK (applet_agent_registered_cb), applet); + + /* Initialize device classes */ + applet->ethernet_class = applet_device_ethernet_get_class (applet); + g_assert (applet->ethernet_class); + + applet->wifi_class = applet_device_wifi_get_class (applet); + g_assert (applet->wifi_class); + + applet->gsm_class = applet_device_gsm_get_class (applet); + g_assert (applet->gsm_class); + + applet->cdma_class = applet_device_cdma_get_class (applet); + g_assert (applet->cdma_class); + + applet->bt_class = applet_device_bt_get_class (applet); + g_assert (applet->bt_class); + + applet->wimax_class = applet_device_wimax_get_class (applet); + g_assert (applet->wimax_class); + + foo_client_setup (applet); + + /* Track embedding to help debug issues where user has removed the + * notification area applet from the panel, and thus nm-applet too. + */ + g_signal_connect (applet->status_icon, "notify::embedded", + G_CALLBACK (applet_embedded_cb), NULL); + applet_embedded_cb (G_OBJECT (applet->status_icon), NULL, NULL); + +#if GLIB_CHECK_VERSION(2,26,0) + /* Watch GNOME Shell so we can unregister our applet agent if it appears */ + applet->shell_watcher = nm_shell_watcher_new (); + g_signal_connect (applet->shell_watcher, + "notify::shell-version", + G_CALLBACK (shell_version_changed_cb), + applet); +#endif + + return G_OBJECT (applet); + +error: + g_object_unref (applet); + return NULL; +} + +static void finalize (GObject *object) +{ + NMApplet *applet = NM_APPLET (object); + + g_slice_free (NMADeviceClass, applet->ethernet_class); + g_slice_free (NMADeviceClass, applet->wifi_class); + g_slice_free (NMADeviceClass, applet->gsm_class); + g_slice_free (NMADeviceClass, applet->cdma_class); + g_slice_free (NMADeviceClass, applet->bt_class); + g_slice_free (NMADeviceClass, applet->wimax_class); + + if (applet->update_icon_id) + g_source_remove (applet->update_icon_id); + + if (applet->menu) + g_object_unref (applet->menu); + nma_icons_free (applet); + + g_free (applet->tip); + + while (g_slist_length (applet->secrets_reqs)) + applet_secrets_request_free ((SecretsRequest *) applet->secrets_reqs->data); + + if (applet->notification) { + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + } + + if (applet->info_dialog_ui) + g_object_unref (applet->info_dialog_ui); + + if (applet->gsettings) + g_object_unref (applet->gsettings); + + if (applet->status_icon) + g_object_unref (applet->status_icon); + + if (applet->nm_client) + g_object_unref (applet->nm_client); + + if (applet->fallback_icon) + g_object_unref (applet->fallback_icon); + + if (applet->agent) + g_object_unref (applet->agent); + + if (applet->settings) + g_object_unref (applet->settings); + + if (applet->bus) + dbus_g_connection_unref (applet->bus); + + if (applet->session_bus) + dbus_g_connection_unref (applet->session_bus); + +#if GLIB_CHECK_VERSION(2,26,0) + if (applet->shell_watcher) + g_object_unref (applet->shell_watcher); +#endif + if (applet->agent_start_id) + g_source_remove (applet->agent_start_id); + + G_OBJECT_CLASS (nma_parent_class)->finalize (object); +} + +static void nma_init (NMApplet *applet) +{ + applet->animation_id = 0; + applet->animation_step = 0; + applet->icon_theme = NULL; + applet->notification = NULL; + applet->icon_size = 16; +} + +enum { + PROP_0, + PROP_LOOP, + LAST_PROP +}; + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMApplet *applet = NM_APPLET (object); + + switch (prop_id) { + case PROP_LOOP: + applet->loop = g_value_get_pointer (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void nma_class_init (NMAppletClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GParamSpec *pspec; + + oclass->set_property = set_property; + oclass->constructor = constructor; + oclass->finalize = finalize; + + pspec = g_param_spec_pointer ("loop", "Loop", "Applet mainloop", G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); + g_object_class_install_property (oclass, PROP_LOOP, pspec); + + dbus_g_object_type_install_info (NM_TYPE_APPLET, &dbus_glib_nma_object_info); +} + +NMApplet * +nm_applet_new (GMainLoop *loop) +{ + return g_object_new (NM_TYPE_APPLET, "loop", loop, NULL); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/default-ipv6-auto.patch/src/applet-dialogs.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/default-ipv6-auto.patch/src/applet-dialogs.c --- network-manager-applet-0.9.4.1/.pc/default-ipv6-auto.patch/src/applet-dialogs.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/default-ipv6-auto.patch/src/applet-dialogs.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,1468 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2011 Red Hat, Inc. + */ + +#include "config.h" + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "applet-dialogs.h" + + +static void +info_dialog_show_error (const char *err) +{ + GtkWidget *dialog; + + dialog = gtk_message_dialog_new_with_markup (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, + "%s\n\n%s", _("Error displaying connection information:"), err); + gtk_window_present (GTK_WINDOW (dialog)); + g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); +} + +static char * +ip4_address_as_string (guint32 ip) +{ + char *ip_string; + struct in_addr tmp_addr; + + tmp_addr.s_addr = ip; + ip_string = g_malloc0 (INET_ADDRSTRLEN + 1); + if (!inet_ntop (AF_INET, &tmp_addr, ip_string, INET_ADDRSTRLEN)) + strcpy (ip_string, "(none)"); + return ip_string; +} + +static gchar * +ip6_address_as_string (const struct in6_addr *ip) +{ + char buf[INET6_ADDRSTRLEN]; + + memset (&buf, '\0', sizeof (buf)); + + if (inet_ntop (AF_INET6, ip, buf, INET6_ADDRSTRLEN)) { + return g_strdup (buf); + } else { + int j; + GString *ip6_str = g_string_new (NULL); + g_string_append_printf (ip6_str, "%02X", ip->s6_addr[0]); + for (j = 1; j < 16; j++) + g_string_append_printf (ip6_str, " %02X", ip->s6_addr[j]); + g_warning ("%s: error converting IP6 address %s", __func__, ip6_str->str); + g_string_free (ip6_str, TRUE); + return NULL; + } +} + +static char * +get_eap_label (NMSettingWirelessSecurity *sec, + NMSetting8021x *s_8021x) +{ + GString *str = NULL; + char *phase2_str = NULL; + + if (sec) { + const char *key_mgmt = nm_setting_wireless_security_get_key_mgmt (sec); + const char *auth_alg = nm_setting_wireless_security_get_auth_alg (sec); + + if (!strcmp (key_mgmt, "ieee8021x")) { + if (auth_alg && !strcmp (auth_alg, "leap")) + str = g_string_new (_("LEAP")); + else + str = g_string_new (_("Dynamic WEP")); + } else if (!strcmp (key_mgmt, "wpa-eap")) + str = g_string_new (_("WPA/WPA2")); + else + return NULL; + } else if (s_8021x) + str = g_string_new ("802.1x"); + + if (!s_8021x) + goto out; + + if (nm_setting_802_1x_get_num_eap_methods (s_8021x)) { + char *eap_str = g_ascii_strup (nm_setting_802_1x_get_eap_method (s_8021x, 0), -1); + g_string_append_printf (str, ", EAP-%s", eap_str); + g_free (eap_str); + } + + if (nm_setting_802_1x_get_phase2_auth (s_8021x)) + phase2_str = g_ascii_strup (nm_setting_802_1x_get_phase2_auth (s_8021x), -1); + else if (nm_setting_802_1x_get_phase2_autheap (s_8021x)) + phase2_str = g_ascii_strup (nm_setting_802_1x_get_phase2_autheap (s_8021x), -1); + + if (phase2_str) { + g_string_append (str, ", "); + g_string_append (str, phase2_str); + g_free (phase2_str); + } + +out: + return g_string_free (str, FALSE); +} + +static NMConnection * +get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMConnection * +get_connection_for_active_path (NMApplet *applet, const char *active_path) +{ + NMActiveConnection *active = NULL; + const GPtrArray *connections; + int i; + + if (active_path == NULL) + return NULL; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const char *ac_path = nm_object_get_path (NM_OBJECT (candidate)); + + if (g_strcmp0 (ac_path, active_path) == 0) { + active = candidate; + break; + } + } + + return active ? get_connection_for_active (applet, active) : NULL; +} + +static GtkWidget * +create_info_label (const char *text, gboolean selectable) +{ + GtkWidget *label; + + label = gtk_label_new (text ? text : ""); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0); + gtk_label_set_selectable (GTK_LABEL (label), selectable); + return label; +} + +static GtkWidget * +create_info_group_label (const char *text, gboolean selectable) +{ + GtkWidget *label; + char *markup; + + label = create_info_label (NULL, selectable); + markup = g_markup_printf_escaped ("%s", text); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + + return label; +} + +static GtkWidget * +create_info_label_security (NMConnection *connection) +{ + NMSettingConnection *s_con; + char *label = NULL; + GtkWidget *w = NULL; + const char *connection_type; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + connection_type = nm_setting_connection_get_connection_type (s_con); + if (!strcmp (connection_type, NM_SETTING_WIRELESS_SETTING_NAME)) { + NMSettingWireless *s_wireless; + NMSettingWirelessSecurity *s_wireless_sec; + NMSetting8021x *s_8021x; + const char *security; + + s_wireless = nm_connection_get_setting_wireless (connection); + s_wireless_sec = nm_connection_get_setting_wireless_security (connection); + s_8021x = nm_connection_get_setting_802_1x (connection); + security = s_wireless ? nm_setting_wireless_get_security (s_wireless) : NULL; + + if (security && !strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME) && s_wireless_sec) { + const char *key_mgmt = nm_setting_wireless_security_get_key_mgmt (s_wireless_sec); + + if (!strcmp (key_mgmt, "none")) + label = g_strdup (_("WEP")); + else if (!strcmp (key_mgmt, "wpa-none")) + label = g_strdup (_("WPA/WPA2")); + else if (!strcmp (key_mgmt, "wpa-psk")) + label = g_strdup (_("WPA/WPA2")); + else + label = get_eap_label (s_wireless_sec, s_8021x); + } else { + label = g_strdup (C_("Wifi/wired security", "None")); + } + } else if (!strcmp (connection_type, NM_SETTING_WIRED_SETTING_NAME)) { + NMSetting8021x *s_8021x; + + s_8021x = nm_connection_get_setting_802_1x (connection); + if (s_8021x) + label = get_eap_label (NULL, s_8021x); + else + label = g_strdup (C_("Wifi/wired security", "None")); + } + + if (label) + w = create_info_label (label, TRUE); + g_free (label); + + return w; +} + +static GtkWidget * +create_info_notebook_label (NMConnection *connection, gboolean is_default) +{ + GtkWidget *label; + char *str; + + if (is_default) { + str = g_strdup_printf (_("%s (default)"), nm_connection_get_id (connection)); + label = gtk_label_new (str); + g_free (str); + } else + label = gtk_label_new (nm_connection_get_id (connection)); + + return label; +} + +typedef struct { + NMDevice *device; + GtkWidget *label; + guint32 id; +} LabelInfo; + +static void +device_destroyed (gpointer data, GObject *device_ptr) +{ + LabelInfo *info = data; + + /* Device is destroyed, notify handler won't fire + * anymore anyway. Let the label destroy handler + * know it doesn't have to disconnect the callback. + */ + info->device = NULL; + info->id = 0; +} + +static void +label_destroyed (gpointer data, GObject *label_ptr) +{ + LabelInfo *info = data; + + /* Remove the notify handler from the device */ + if (info->device) { + if (info->id) + g_signal_handler_disconnect (info->device, info->id); + /* destroy our info data */ + g_object_weak_unref (G_OBJECT (info->device), device_destroyed, info); + memset (info, 0, sizeof (LabelInfo)); + g_free (info); + } +} + +static void +label_info_new (NMDevice *device, + GtkWidget *label, + const char *notify_prop, + GCallback callback) +{ + LabelInfo *info; + + info = g_malloc0 (sizeof (LabelInfo)); + info->device = device; + info->label = label; + info->id = g_signal_connect (device, notify_prop, callback, label); + g_object_weak_ref (G_OBJECT (label), label_destroyed, info); + g_object_weak_ref (G_OBJECT (device), device_destroyed, info); +} + +static void +bitrate_changed_cb (GObject *device, GParamSpec *pspec, gpointer user_data) +{ + GtkWidget *speed_label = GTK_WIDGET (user_data); + guint32 bitrate = 0; + char *str = NULL; + + bitrate = nm_device_wifi_get_bitrate (NM_DEVICE_WIFI (device)) / 1000; + if (bitrate) + str = g_strdup_printf (_("%u Mb/s"), bitrate); + + gtk_label_set_text (GTK_LABEL (speed_label), str ? str : C_("Speed", "Unknown")); + g_free (str); +} + +static void +wimax_cinr_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data) +{ + GtkWidget *label = GTK_WIDGET (user_data); + gint cinr; + char *str = NULL; + + cinr = nm_device_wimax_get_cinr (NM_DEVICE_WIMAX (device)); + if (cinr) + str = g_strdup_printf (_("%d dB"), cinr); + + gtk_label_set_text (GTK_LABEL (label), str ? str : C_("WiMAX CINR", "unknown")); + g_free (str); +} + +static void +wimax_bsid_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data) +{ + GtkWidget *label = GTK_WIDGET (user_data); + const char *str = NULL; + + str = nm_device_wimax_get_bsid (NM_DEVICE_WIMAX (device)); + if (!str) + str = C_("WiMAX Base Station ID", "unknown"); + gtk_label_set_text (GTK_LABEL (label), str); +} + +static void +info_dialog_add_page (GtkNotebook *notebook, + NMConnection *connection, + gboolean is_default, + NMDevice *device) +{ + GtkTable *table; + guint32 speed = 0; + char *str; + const char *iface, *method = NULL; + NMIP4Config *ip4_config; + NMIP6Config *ip6_config; + const GArray *dns; + const GSList *dns6; + NMIP4Address *def_addr = NULL; + NMIP6Address *def6_addr = NULL; + NMSettingIP6Config *s_ip6; + guint32 hostmask, network, bcast, netmask; + int i, row = 0; + GtkWidget* speed_label, *sec_label = NULL; + const GSList *addresses; + gboolean show_security = FALSE; + + table = GTK_TABLE (gtk_table_new (12, 2, FALSE)); + gtk_table_set_col_spacings (table, 12); + gtk_table_set_row_spacings (table, 6); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); + + /* Interface */ + iface = nm_device_get_iface (device); + if (NM_IS_DEVICE_ETHERNET (device)) { + str = g_strdup_printf (_("Ethernet (%s)"), iface); + show_security = TRUE; + } else if (NM_IS_DEVICE_WIFI (device)) { + str = g_strdup_printf (_("802.11 WiFi (%s)"), iface); + show_security = TRUE; + } else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + str = g_strdup_printf (_("GSM (%s)"), iface); + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + str = g_strdup_printf (_("CDMA (%s)"), iface); + else + str = g_strdup_printf (_("Mobile Broadband (%s)"), iface); + } else if (NM_IS_DEVICE_WIMAX (device)) + str = g_strdup_printf (_("WiMAX (%s)"), iface); + else + str = g_strdup (iface); + + + /*--- General ---*/ + gtk_table_attach (table, create_info_group_label (_("General"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + gtk_table_attach (table, create_info_label (_("Interface:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Hardware address */ + str = NULL; + if (NM_IS_DEVICE_ETHERNET (device)) + str = g_strdup (nm_device_ethernet_get_hw_address (NM_DEVICE_ETHERNET (device))); + else if (NM_IS_DEVICE_WIFI (device)) + str = g_strdup (nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (device))); + else if (NM_IS_DEVICE_WIMAX (device)) + str = g_strdup (nm_device_wimax_get_hw_address (NM_DEVICE_WIMAX (device))); + + gtk_table_attach (table, create_info_label (_("Hardware Address:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Driver */ + gtk_table_attach (table, create_info_label (_("Driver:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (nm_device_get_driver (device), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + speed_label = create_info_label ("", TRUE); + + /* Speed */ + str = NULL; + if (NM_IS_DEVICE_ETHERNET (device)) { + /* Ethernet speed in Mb/s */ + speed = nm_device_ethernet_get_speed (NM_DEVICE_ETHERNET (device)); + } else if (NM_IS_DEVICE_WIFI (device)) { + /* Wi-Fi speed in Kb/s */ + speed = nm_device_wifi_get_bitrate (NM_DEVICE_WIFI (device)) / 1000; + + label_info_new (device, + speed_label, + "notify::" NM_DEVICE_WIFI_BITRATE, + G_CALLBACK (bitrate_changed_cb)); + } + + if (speed) + str = g_strdup_printf (_("%u Mb/s"), speed); + + gtk_label_set_text (GTK_LABEL(speed_label), str ? str : C_("Speed", "Unknown")); + g_free (str); + + gtk_table_attach (table, create_info_label (_("Speed:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, speed_label, + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + /* Security */ + if (show_security) { + sec_label = create_info_label_security (connection); + if (sec_label) { + gtk_table_attach (table, create_info_label (_("Security:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, sec_label, + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + } + } + + if (NM_IS_DEVICE_WIMAX (device)) { + GtkWidget *bsid_label, *cinr_label; + + /* CINR */ + cinr_label = create_info_label ("", TRUE); + gtk_table_attach (table, create_info_label (_("CINR:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, cinr_label, + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + label_info_new (device, + cinr_label, + "notify::" NM_DEVICE_WIMAX_CINR, + G_CALLBACK (wimax_cinr_changed_cb)); + wimax_cinr_changed_cb (device, NULL, cinr_label); + row++; + + /* Base Station ID */ + bsid_label = create_info_label ("", TRUE); + gtk_table_attach (table, create_info_label (_("BSID:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, bsid_label, + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + label_info_new (device, + bsid_label, + "notify::" NM_DEVICE_WIMAX_BSID, + G_CALLBACK (wimax_bsid_changed_cb)); + wimax_bsid_changed_cb (device, NULL, bsid_label); + row++; + } + + /* Empty line */ + gtk_table_attach (table, gtk_label_new (""), 0, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + /*--- IPv4 ---*/ + gtk_table_attach (table, create_info_group_label (_("IPv4"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + + row++; + + ip4_config = nm_device_get_ip4_config (device); + addresses = nm_ip4_config_get_addresses (ip4_config); + if (g_slist_length ((GSList *) addresses)) + def_addr = addresses->data; + + /* Address */ + gtk_table_attach (table, create_info_label (_("IP Address:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = def_addr ? ip4_address_as_string (nm_ip4_address_get_address (def_addr)) : g_strdup (C_("Address", "Unknown")); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Broadcast */ + if (def_addr) { + netmask = nm_utils_ip4_prefix_to_netmask (nm_ip4_address_get_prefix (def_addr)); + network = ntohl (nm_ip4_address_get_address (def_addr)) & ntohl (netmask); + hostmask = ~ntohl (netmask); + bcast = htonl (network | hostmask); + } + + gtk_table_attach (table, create_info_label (_("Broadcast Address:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = def_addr ? ip4_address_as_string (bcast) : g_strdup (C_("Address", "Unknown")); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Prefix */ + gtk_table_attach (table, create_info_label (_("Subnet Mask:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = def_addr ? ip4_address_as_string (netmask) : g_strdup (C_("Subnet Mask", "Unknown")); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Gateway */ + if (def_addr && nm_ip4_address_get_gateway (def_addr)) { + gtk_table_attach (table, create_info_label (_("Default Route:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip4_address_as_string (nm_ip4_address_get_gateway (def_addr)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + /* DNS */ + dns = def_addr ? nm_ip4_config_get_nameservers (ip4_config) : NULL; + if (dns && dns->len) { + gtk_table_attach (table, create_info_label (_("Primary DNS:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip4_address_as_string (g_array_index (dns, guint32, 0)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + if (dns->len > 1) { + gtk_table_attach (table, create_info_label (_("Secondary DNS:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip4_address_as_string (g_array_index (dns, guint32, 1)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + if (dns->len > 2) { + gtk_table_attach (table, create_info_label (_("Ternary DNS:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip4_address_as_string (g_array_index (dns, guint32, 2)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + } + + /* Empty line */ + gtk_table_attach (table, gtk_label_new (""), 0, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + /*--- IPv6 ---*/ + gtk_table_attach (table, create_info_group_label (_("IPv6"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + s_ip6 = nm_connection_get_setting_ip6_config (connection); + if (s_ip6) + method = nm_setting_ip6_config_get_method (s_ip6); + + if (!method || !strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE)) { + gtk_table_attach (table, create_info_label (_("Ignored"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + } + + ip6_config = nm_device_get_ip6_config (device); + if (ip6_config) { + addresses = nm_ip6_config_get_addresses (ip6_config); + if (g_slist_length ((GSList *) addresses)) + def6_addr = addresses->data; + } + + /* Address */ + if (def6_addr) { + char *tmp_addr; + guint32 prefix; + + gtk_table_attach (table, create_info_label (_("IP Address:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + tmp_addr = ip6_address_as_string (nm_ip6_address_get_address (def6_addr)); + prefix = nm_ip6_address_get_prefix (def6_addr); + str = g_strdup_printf ("%s/%d", tmp_addr, prefix); + g_free (tmp_addr); + + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + /* Gateway */ + if (def6_addr && nm_ip6_address_get_gateway (def6_addr)) { + gtk_table_attach (table, create_info_label (_("Default Route:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip6_address_as_string (nm_ip6_address_get_gateway (def6_addr)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + /* DNS */ + dns6 = def6_addr ? nm_ip6_config_get_nameservers (ip6_config) : NULL; + + for (i = 0; dns6 && i < 3 ; dns6 = g_slist_next (dns6), i++) { + char *label[] = { "Primary DNS:", "Secondary DNS:", "Ternary DNS:" }; + + gtk_table_attach (table, create_info_label (_(label[i]), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip6_address_as_string (dns6->data); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + gtk_notebook_append_page (notebook, GTK_WIDGET (table), + create_info_notebook_label (connection, is_default)); + + gtk_widget_show_all (GTK_WIDGET (table)); +} + +static char * +get_vpn_connection_type (NMConnection *connection) +{ + const char *type, *p; + + /* The service type is in format of "org.freedesktop.NetworkManager.vpnc". + * Extract end part after last dot, e.g. "vpnc" */ + type = nm_setting_vpn_get_service_type (nm_connection_get_setting_vpn (connection)); + p = strrchr (type, '.'); + return g_strdup (p ? p + 1 : type); +} + +/* VPN parameters can be found at: + * http://git.gnome.org/browse/network-manager-openvpn/tree/src/nm-openvpn-service.h + * http://git.gnome.org/browse/network-manager-vpnc/tree/src/nm-vpnc-service.h + * http://git.gnome.org/browse/network-manager-pptp/tree/src/nm-pptp-service.h + * http://git.gnome.org/browse/network-manager-openconnect/tree/src/nm-openconnect-service.h + * http://git.gnome.org/browse/network-manager-openswan/tree/src/nm-openswan-service.h + * See also 'properties' directory in these plugins. + */ +static const gchar * +find_vpn_gateway_key (const char *vpn_type) +{ + if (g_strcmp0 (vpn_type, "openvpn") == 0) return "remote"; + if (g_strcmp0 (vpn_type, "vpnc") == 0) return "IPSec gateway"; + if (g_strcmp0 (vpn_type, "pptp") == 0) return "gateway"; + if (g_strcmp0 (vpn_type, "openconnect") == 0) return "gateway"; + if (g_strcmp0 (vpn_type, "openswan") == 0) return "right"; + return ""; +} + +static const gchar * +find_vpn_username_key (const char *vpn_type) +{ + if (g_strcmp0 (vpn_type, "openvpn") == 0) return "username"; + if (g_strcmp0 (vpn_type, "vpnc") == 0) return "Xauth username"; + if (g_strcmp0 (vpn_type, "pptp") == 0) return "user"; + if (g_strcmp0 (vpn_type, "openconnect") == 0) return "username"; + if (g_strcmp0 (vpn_type, "openswan") == 0) return "leftxauthusername"; + return ""; +} + +enum VpnDataItem { + VPN_DATA_ITEM_GATEWAY, + VPN_DATA_ITEM_USERNAME +}; + +static const gchar * +get_vpn_data_item (NMConnection *connection, enum VpnDataItem vpn_data_item) +{ + const char *key; + char *type = get_vpn_connection_type (connection); + + switch (vpn_data_item) { + case VPN_DATA_ITEM_GATEWAY: + key = find_vpn_gateway_key (type); + break; + case VPN_DATA_ITEM_USERNAME: + key = find_vpn_username_key (type); + break; + default: + key = ""; + break; + } + g_free (type); + + return nm_setting_vpn_get_data_item (nm_connection_get_setting_vpn (connection), key); +} + +static void +info_dialog_add_page_for_vpn (GtkNotebook *notebook, + NMConnection *connection, + NMActiveConnection *active, + NMConnection *parent_con) +{ + GtkTable *table; + char *str; + int row = 0; + gboolean is_default = nm_active_connection_get_default (active); + + table = GTK_TABLE (gtk_table_new (12, 2, FALSE)); + gtk_table_set_col_spacings (table, 12); + gtk_table_set_row_spacings (table, 6); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); + + /*--- General ---*/ + gtk_table_attach (table, create_info_group_label (_("General"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + str = get_vpn_connection_type (connection); + gtk_table_attach (table, create_info_label (_("VPN Type:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + gtk_table_attach (table, create_info_label (_("VPN Gateway:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (get_vpn_data_item (connection, VPN_DATA_ITEM_GATEWAY), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + gtk_table_attach (table, create_info_label (_("VPN Username:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (get_vpn_data_item (connection, VPN_DATA_ITEM_USERNAME), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + gtk_table_attach (table, create_info_label (_("VPN Banner:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (nm_vpn_connection_get_banner (NM_VPN_CONNECTION (active)), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + gtk_table_attach (table, create_info_label (_("Base Connection:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (parent_con ? nm_connection_get_id (parent_con) : _("Unknown"), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + + gtk_notebook_append_page (notebook, GTK_WIDGET (table), + create_info_notebook_label (connection, is_default)); + + gtk_widget_show_all (GTK_WIDGET (table)); +} + +static GtkWidget * +info_dialog_update (NMApplet *applet) +{ + GtkNotebook *notebook; + const GPtrArray *connections; + int i; + int pages = 0; + + notebook = GTK_NOTEBOOK (GTK_WIDGET (gtk_builder_get_object (applet->info_dialog_ui, "info_notebook"))); + + /* Remove old pages */ + for (i = gtk_notebook_get_n_pages (notebook); i > 0; i--) + gtk_notebook_remove_page (notebook, -1); + + /* Add new pages */ + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *active_connection = g_ptr_array_index (connections, i); + NMConnection *connection; + const GPtrArray *devices; + + if (nm_active_connection_get_state (active_connection) != NM_ACTIVE_CONNECTION_STATE_ACTIVATED) + continue; + + connection = get_connection_for_active (applet, active_connection); + if (!connection) { + g_warning ("%s: couldn't find the default active connection's NMConnection!", __func__); + continue; + } + + devices = nm_active_connection_get_devices (active_connection); + if (devices && devices->len > 0) + info_dialog_add_page (notebook, + connection, + nm_active_connection_get_default (active_connection), + g_ptr_array_index (devices, 0)); + else { + if (NM_IS_VPN_CONNECTION (active_connection)) { + const char *spec_object = nm_active_connection_get_specific_object (active_connection); + NMConnection *parent_con = get_connection_for_active_path (applet, spec_object); + + info_dialog_add_page_for_vpn (notebook, connection, active_connection, parent_con); + } else { + g_warning ("Active connection %s had no devices and was not a VPN!", + nm_object_get_path (NM_OBJECT (active_connection))); + continue; + } + } + + pages++; + } + + if (pages == 0) { + /* Shouldn't really happen but ... */ + info_dialog_show_error (_("No valid active connections found!")); + return NULL; + } + + return GTK_WIDGET (gtk_builder_get_object (applet->info_dialog_ui, "info_dialog")); +} + +void +applet_info_dialog_show (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = info_dialog_update (applet); + if (!dialog) + return; + + g_signal_connect (dialog, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), dialog); + g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_hide), dialog); + gtk_widget_realize (dialog); + gtk_window_present_with_time (GTK_WINDOW (dialog), + gdk_x11_get_server_time (gtk_widget_get_window (dialog))); +} + +#if !GTK_CHECK_VERSION(2,23,0) +static void +about_dialog_handle_url_cb (GtkAboutDialog *about, const gchar *url, gpointer data) +{ + gboolean ret; + char *cmdline; + GdkScreen *screen; + + screen = gtk_window_get_screen (GTK_WINDOW (about)); + + cmdline = g_strconcat ("gnome-open ", url, NULL); + ret = gdk_spawn_command_line_on_screen (screen, cmdline, NULL); + g_free (cmdline); + + if (ret == FALSE) { + cmdline = g_strconcat ("xdg-open ", url, NULL); + ret = gdk_spawn_command_line_on_screen (screen, cmdline, NULL); + g_free (cmdline); + } +} +#endif + +void +applet_about_dialog_show (NMApplet *applet) +{ +#if !GTK_CHECK_VERSION(2,23,0) + gtk_about_dialog_set_url_hook (about_dialog_handle_url_cb, NULL, NULL); +#endif + gtk_show_about_dialog (NULL, + "version", VERSION, + "copyright", _("Copyright \xc2\xa9 2004-2011 Red Hat, Inc.\n" + "Copyright \xc2\xa9 2005-2008 Novell, Inc.\n" + "and many other community contributors and translators"), + "comments", _("Notification area applet for managing your network devices and connections."), + "website", "http://www.gnome.org/projects/NetworkManager/", + "website-label", _("NetworkManager Website"), + "logo-icon-name", GTK_STOCK_NETWORK, + NULL); +} + +GtkWidget * +applet_warning_dialog_show (const char *message) +{ + GtkWidget *dialog; + + dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, message, NULL); + + /* Bash focus-stealing prevention in the face */ + gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_window_set_default_icon_name (GTK_STOCK_DIALOG_ERROR); + gtk_window_set_title (GTK_WINDOW (dialog), _("Missing resources")); + gtk_widget_realize (dialog); + gtk_widget_show (dialog); + gtk_window_present_with_time (GTK_WINDOW (dialog), + gdk_x11_get_server_time (gtk_widget_get_window (dialog))); + + g_signal_connect_swapped (dialog, "response", + G_CALLBACK (gtk_widget_destroy), + dialog); + return dialog; +} + +GtkWidget * +applet_mobile_password_dialog_new (NMConnection *connection, + GtkEntry **out_secret_entry) +{ + GtkDialog *dialog; + GtkWidget *w; + GtkBox *box = NULL, *vbox = NULL; + NMSettingConnection *s_con; + char *tmp; + const char *id; + + dialog = GTK_DIALOG (gtk_dialog_new ()); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_title (GTK_WINDOW (dialog), _("Mobile broadband network password")); + + w = gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); + w = gtk_dialog_add_button (dialog, GTK_STOCK_OK, GTK_RESPONSE_OK); + gtk_window_set_default (GTK_WINDOW (dialog), w); + + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + g_assert (id); + tmp = g_strdup_printf (_("A password is required to connect to '%s'."), id); + w = gtk_label_new (tmp); + g_free (tmp); + + vbox = GTK_BOX (gtk_dialog_get_content_area (dialog)); + + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + + w = gtk_alignment_new (0.5, 0.5, 0, 1.0); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + +#if GTK_CHECK_VERSION(3,1,6) + box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6)); +#else + box = GTK_BOX (gtk_hbox_new (FALSE, 6)); +#endif + gtk_container_set_border_width (GTK_CONTAINER (box), 6); + gtk_container_add (GTK_CONTAINER (w), GTK_WIDGET (box)); + + gtk_box_pack_start (box, gtk_label_new (_("Password:")), FALSE, FALSE, 0); + + w = gtk_entry_new (); + *out_secret_entry = GTK_ENTRY (w); + gtk_entry_set_activates_default (GTK_ENTRY (w), TRUE); + gtk_box_pack_start (box, w, FALSE, FALSE, 0); + + gtk_widget_show_all (GTK_WIDGET (vbox)); + return GTK_WIDGET (dialog); +} + +/**********************************************************************/ + +static void +mpd_entry_changed (GtkWidget *widget, gpointer user_data) +{ + GtkWidget *dialog = GTK_WIDGET (user_data); + GtkBuilder *builder = g_object_get_data (G_OBJECT (dialog), "builder"); + GtkWidget *entry; + guint32 minlen; + gboolean valid = FALSE; + const char *text, *text2 = NULL, *text3 = NULL; + gboolean match23; + + g_return_if_fail (builder != NULL); + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry")); + if (g_object_get_data (G_OBJECT (entry), "active")) { + minlen = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "minlen")); + text = gtk_entry_get_text (GTK_ENTRY (entry)); + if (text && (strlen (text) < minlen)) + goto done; + } + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + if (g_object_get_data (G_OBJECT (entry), "active")) { + minlen = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "minlen")); + text2 = gtk_entry_get_text (GTK_ENTRY (entry)); + if (text2 && (strlen (text2) < minlen)) + goto done; + } + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + if (g_object_get_data (G_OBJECT (entry), "active")) { + minlen = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "minlen")); + text3 = gtk_entry_get_text (GTK_ENTRY (entry)); + if (text3 && (strlen (text3) < minlen)) + goto done; + } + + /* Validate 2 & 3 if they are supposed to be the same */ + match23 = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (dialog), "match23")); + if (match23) { + if (!text2 || !text3 || strcmp (text2, text3)) + goto done; + } + + valid = TRUE; + +done: + /* Clear any error text in the progress label now that the user has changed something */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_label")); + gtk_label_set_text (GTK_LABEL (widget), ""); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_button")); + g_warn_if_fail (widget != NULL); + gtk_widget_set_sensitive (widget, valid); + if (valid) + gtk_widget_grab_default (widget); +} + +void +applet_mobile_pin_dialog_destroy (GtkWidget *widget) +{ + gtk_widget_hide (widget); + gtk_widget_destroy (widget); +} + +static void +mpd_cancel_dialog (GtkDialog *dialog) +{ + gtk_dialog_response (dialog, GTK_RESPONSE_CANCEL); +} + +static void +show_toggled_cb (GtkWidget *button, gpointer user_data) +{ + GtkWidget *dialog = GTK_WIDGET (user_data); + gboolean show; + GtkWidget *widget; + GtkBuilder *builder; + + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + show = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry")); + gtk_entry_set_visibility (GTK_ENTRY (widget), show); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + gtk_entry_set_visibility (GTK_ENTRY (widget), show); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + gtk_entry_set_visibility (GTK_ENTRY (widget), show); +} + +GtkWidget * +applet_mobile_pin_dialog_new (const char *title, + const char *header, + const char *desc, + const char *show_password_label, + gboolean show_auto_unlock_checkbox) +{ + char *str; + GtkWidget *dialog; + GtkWidget *widget; + GError *error = NULL; + GtkBuilder *builder; + + g_return_val_if_fail (title != NULL, NULL); + g_return_val_if_fail (header != NULL, NULL); + g_return_val_if_fail (desc != NULL, NULL); + g_return_val_if_fail (show_password_label != NULL, NULL); + + builder = gtk_builder_new (); + + if (!gtk_builder_add_from_file (builder, UIDIR "/gsm-unlock.ui", &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); + g_object_unref (builder); + return NULL; + } + + dialog = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_dialog")); + if (!dialog) { + g_object_unref (builder); + g_return_val_if_fail (dialog != NULL, NULL); + } + + g_object_set_data_full (G_OBJECT (dialog), "builder", builder, (GDestroyNotify) g_object_unref); + + gtk_window_set_title (GTK_WINDOW (dialog), title); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "header_label")); + str = g_strdup_printf ("%s", header); + gtk_label_set_use_markup (GTK_LABEL (widget), TRUE); + gtk_label_set_markup (GTK_LABEL (widget), str); + g_free (str); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "desc_label")); + gtk_label_set_text (GTK_LABEL (widget), desc); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_password_checkbutton")); + gtk_button_set_label (GTK_BUTTON (widget), show_password_label); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); + g_signal_connect (widget, "toggled", G_CALLBACK (show_toggled_cb), dialog); + show_toggled_cb (widget, dialog); + + g_signal_connect (dialog, "delete-event", G_CALLBACK (mpd_cancel_dialog), NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "save_checkbutton")); + if (show_auto_unlock_checkbox) + g_object_set_data (G_OBJECT (widget), "active", GUINT_TO_POINTER (TRUE)); + + mpd_entry_changed (NULL, dialog); + + return dialog; +} + +void +applet_mobile_pin_dialog_present (GtkWidget *dialog, gboolean now) +{ + GtkBuilder *builder; + GtkWidget *widget; + + g_return_if_fail (dialog != NULL); + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + gtk_widget_show_all (dialog); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_hbox")); + gtk_widget_hide (widget); + + /* Hide inactive entries */ + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + if (!g_object_get_data (G_OBJECT (widget), "active")) { + gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_label")); + gtk_widget_hide (widget); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + if (!g_object_get_data (G_OBJECT (widget), "active")) { + gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_label")); + gtk_widget_hide (widget); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "save_checkbutton")); + if (!g_object_get_data (G_OBJECT (widget), "active")) + gtk_widget_hide (widget); + + /* Need to resize the dialog after hiding widgets */ + gtk_window_resize (GTK_WINDOW (dialog), 400, 100); + + /* Show the dialog */ + gtk_widget_realize (dialog); + if (now) + gtk_window_present_with_time (GTK_WINDOW (dialog), + gdk_x11_get_server_time (gtk_widget_get_window (dialog))); + else + gtk_window_present (GTK_WINDOW (dialog)); +} + +static void +mpd_entry_filter (GtkEntry *entry, + const char *text, + gint length, + gint *position, + gpointer user_data) +{ + GtkEditable *editable = GTK_EDITABLE (entry); + int i, count = 0; + gchar *result = g_malloc0 (length); + + /* Digits only */ + for (i = 0; i < length; i++) { + if (isdigit (text[i])) + result[count++] = text[i]; + } + + if (count > 0) { + g_signal_handlers_block_by_func (G_OBJECT (editable), + G_CALLBACK (mpd_entry_filter), + user_data); + gtk_editable_insert_text (editable, result, count, position); + g_signal_handlers_unblock_by_func (G_OBJECT (editable), + G_CALLBACK (mpd_entry_filter), + user_data); + } + g_signal_stop_emission_by_name (G_OBJECT (editable), "insert-text"); + g_free (result); +} + +static void +mpd_set_entry (GtkWidget *dialog, + const char *entry_name, + const char *label_name, + const char *label, + guint32 minlen, + guint32 maxlen) +{ + GtkBuilder *builder; + GtkWidget *widget; + gboolean entry2_active = FALSE; + gboolean entry3_active = FALSE; + + g_return_if_fail (dialog != NULL); + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, label_name)); + gtk_label_set_text (GTK_LABEL (widget), label); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, entry_name)); + g_signal_connect (widget, "changed", G_CALLBACK (mpd_entry_changed), dialog); + g_signal_connect (widget, "insert-text", G_CALLBACK (mpd_entry_filter), NULL); + + if (maxlen) + gtk_entry_set_max_length (GTK_ENTRY (widget), maxlen); + g_object_set_data (G_OBJECT (widget), "minlen", GUINT_TO_POINTER (minlen)); + + /* Tag it so we know it's active */ + g_object_set_data (G_OBJECT (widget), "active", GUINT_TO_POINTER (1)); + + /* Make a single-entry dialog look better */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + entry2_active = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (widget), "active")); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + entry3_active = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (widget), "active")); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "table14")); + if (entry2_active || entry3_active) + gtk_table_set_row_spacings (GTK_TABLE (widget), 6); + else + gtk_table_set_row_spacings (GTK_TABLE (widget), 0); + + mpd_entry_changed (NULL, dialog); +} + +void +applet_mobile_pin_dialog_set_entry1 (GtkWidget *dialog, + const char *label, + guint32 minlen, + guint32 maxlen) +{ + mpd_set_entry (dialog, "code1_entry", "code1_label", label, minlen, maxlen); +} + +void +applet_mobile_pin_dialog_set_entry2 (GtkWidget *dialog, + const char *label, + guint32 minlen, + guint32 maxlen) +{ + mpd_set_entry (dialog, "code2_entry", "code2_label", label, minlen, maxlen); +} + +void +applet_mobile_pin_dialog_set_entry3 (GtkWidget *dialog, + const char *label, + guint32 minlen, + guint32 maxlen) +{ + mpd_set_entry (dialog, "code3_entry", "code3_label", label, minlen, maxlen); +} + +void applet_mobile_pin_dialog_match_23 (GtkWidget *dialog, gboolean match) +{ + g_return_if_fail (dialog != NULL); + + g_object_set_data (G_OBJECT (dialog), "match23", GUINT_TO_POINTER (match)); +} + +static const char * +mpd_get_entry (GtkWidget *dialog, const char *entry_name) +{ + GtkBuilder *builder; + GtkWidget *widget; + + g_return_val_if_fail (dialog != NULL, NULL); + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_val_if_fail (builder != NULL, NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, entry_name)); + return gtk_entry_get_text (GTK_ENTRY (widget)); +} + +const char * +applet_mobile_pin_dialog_get_entry1 (GtkWidget *dialog) +{ + return mpd_get_entry (dialog, "code1_entry"); +} + +const char * +applet_mobile_pin_dialog_get_entry2 (GtkWidget *dialog) +{ + return mpd_get_entry (dialog, "code2_entry"); +} + +const char * +applet_mobile_pin_dialog_get_entry3 (GtkWidget *dialog) +{ + return mpd_get_entry (dialog, "code3_entry"); +} + +gboolean +applet_mobile_pin_dialog_get_auto_unlock (GtkWidget *dialog) +{ + GtkBuilder *builder; + GtkWidget *widget; + + g_return_val_if_fail (dialog != NULL, FALSE); + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_val_if_fail (builder != NULL, FALSE); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "save_checkbutton")); + return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); +} + +void +applet_mobile_pin_dialog_start_spinner (GtkWidget *dialog, const char *text) +{ + GtkBuilder *builder; + GtkWidget *spinner, *widget, *hbox, *align; + + g_return_if_fail (dialog != NULL); + g_return_if_fail (text != NULL); + + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + spinner = gtk_spinner_new (); + g_return_if_fail (spinner != NULL); + g_object_set_data (G_OBJECT (dialog), "spinner", spinner); + + align = GTK_WIDGET (gtk_builder_get_object (builder, "spinner_alignment")); + gtk_container_add (GTK_CONTAINER (align), spinner); + gtk_spinner_start (GTK_SPINNER (spinner)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_label")); + gtk_label_set_text (GTK_LABEL (widget), text); + gtk_widget_show (widget); + + hbox = GTK_WIDGET (gtk_builder_get_object (builder, "progress_hbox")); + gtk_widget_show_all (hbox); + + /* Desensitize everything while spinning */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry")); + gtk_widget_set_sensitive (widget, FALSE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + gtk_widget_set_sensitive (widget, FALSE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + gtk_widget_set_sensitive (widget, FALSE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_button")); + gtk_widget_set_sensitive (widget, FALSE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_cancel_button")); + gtk_widget_set_sensitive (widget, FALSE); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_password_checkbutton")); + gtk_widget_set_sensitive (widget, FALSE); +} + +void +applet_mobile_pin_dialog_stop_spinner (GtkWidget *dialog, const char *text) +{ + GtkBuilder *builder; + GtkWidget *spinner, *widget, *align; + + g_return_if_fail (dialog != NULL); + + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + spinner = g_object_get_data (G_OBJECT (dialog), "spinner"); + g_return_if_fail (spinner != NULL); + gtk_spinner_stop (GTK_SPINNER (spinner)); + g_object_set_data (G_OBJECT (dialog), "spinner", NULL); + + /* Remove it from the alignment */ + align = GTK_WIDGET (gtk_builder_get_object (builder, "spinner_alignment")); + gtk_container_remove (GTK_CONTAINER (align), spinner); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_label")); + if (text) { + gtk_label_set_text (GTK_LABEL (widget), text); + gtk_widget_show (widget); + } else + gtk_widget_hide (widget); + + /* Resensitize stuff */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry")); + gtk_widget_set_sensitive (widget, TRUE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + gtk_widget_set_sensitive (widget, TRUE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + gtk_widget_set_sensitive (widget, TRUE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_button")); + gtk_widget_set_sensitive (widget, TRUE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_cancel_button")); + gtk_widget_set_sensitive (widget, TRUE); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_password_checkbutton")); + gtk_widget_set_sensitive (widget, TRUE); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/hide_policy_items_env_var.patch/src/applet-device-cdma.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/hide_policy_items_env_var.patch/src/applet-device-cdma.c --- network-manager-applet-0.9.4.1/.pc/hide_policy_items_env_var.patch/src/applet-device-cdma.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/hide_policy_items_env_var.patch/src/applet-device-cdma.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1091 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-cdma.h" +#include "utils.h" +#include "nm-mobile-wizard.h" +#include "applet-dialogs.h" +#include "nma-marshal.h" +#include "nmn-mobile-providers.h" +#include "mb-menu-item.h" +#include "nm-ui-utils.h" + +typedef struct { + NMApplet *applet; + NMDevice *device; + + DBusGConnection *bus; + DBusGProxy *props_proxy; + DBusGProxy *cdma_proxy; + gboolean quality_valid; + guint32 quality; + guint32 cdma1x_state; + guint32 evdo_state; + gboolean evdo_capable; + guint32 sid; + gboolean modem_enabled; + + GHashTable *providers; + char *provider_name; + + guint32 poll_id; + gboolean skip_reg_poll; + gboolean skip_signal_poll; +} CdmaDeviceInfo; + +static void check_start_polling (CdmaDeviceInfo *info); + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} CdmaMenuItemInfo; + +static void +cdma_menu_item_info_destroy (gpointer data) +{ + CdmaMenuItemInfo *info = data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (info->connection); + + g_slice_free (CdmaMenuItemInfo, data); +} + +typedef struct { + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} AutoCdmaWizardInfo; + +static void +mobile_wizard_done (NMAMobileWizard *wizard, + gboolean canceled, + NMAMobileWizardAccessMethod *method, + gpointer user_data) +{ + AutoCdmaWizardInfo *info = user_data; + NMConnection *connection = NULL; + + if (!canceled && method) { + NMSetting *setting; + char *uuid, *id; + + if (method->devtype != NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + g_warning ("Unexpected device type (not CDMA)."); + canceled = TRUE; + goto done; + } + + connection = nm_connection_new (); + + setting = nm_setting_cdma_new (); + g_object_set (setting, + NM_SETTING_CDMA_NUMBER, "#777", + NM_SETTING_CDMA_USERNAME, method->username, + NM_SETTING_CDMA_PASSWORD, method->password, + NULL); + nm_connection_add_setting (connection, setting); + + /* Serial setting */ + setting = nm_setting_serial_new (); + g_object_set (setting, + NM_SETTING_SERIAL_BAUD, 115200, + NM_SETTING_SERIAL_BITS, 8, + NM_SETTING_SERIAL_PARITY, 'n', + NM_SETTING_SERIAL_STOPBITS, 1, + NULL); + nm_connection_add_setting (connection, setting); + + nm_connection_add_setting (connection, nm_setting_ppp_new ()); + + setting = nm_setting_connection_new (); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); + uuid = nm_utils_uuid_generate (); + g_object_set (setting, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_CDMA_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + g_free (id); + nm_connection_add_setting (connection, setting); + } + +done: + (*(info->callback)) (connection, TRUE, canceled, info->callback_data); + + if (wizard) + nma_mobile_wizard_destroy (wizard); + g_free (info); +} + +static gboolean +do_mobile_wizard (AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMAMobileWizard *wizard; + AutoCdmaWizardInfo *info; + NMAMobileWizardAccessMethod *method; + + info = g_malloc0 (sizeof (AutoCdmaWizardInfo)); + info->callback = callback; + info->callback_data = callback_data; + + wizard = nma_mobile_wizard_new (NULL, NULL, NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO, FALSE, + mobile_wizard_done, info); + if (wizard) { + nma_mobile_wizard_present (wizard); + return TRUE; + } + + /* Fall back to something */ + method = g_malloc0 (sizeof (NMAMobileWizardAccessMethod)); + method->devtype = NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO; + method->provider_name = _("CDMA"); + mobile_wizard_done (NULL, FALSE, method, info); + g_free (method); + + return TRUE; +} + +static gboolean +cdma_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + return do_mobile_wizard (callback, callback_data); +} + +static void +dbus_3g_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; +} Dbus3gInfo; + +static void +dbus_connect_3g_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus3gInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + "/", + dbus_3g_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +void +applet_cdma_connect_network (NMApplet *applet, NMDevice *device) +{ + Dbus3gInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + + do_mobile_wizard (dbus_connect_3g_cb, info); +} + +static void +cdma_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + CdmaMenuItemInfo *info = (CdmaMenuItemInfo *) user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + +static void +add_connection_item (NMDevice *device, + NMConnection *connection, + GtkWidget *item, + GtkWidget *menu, + NMApplet *applet) +{ + CdmaMenuItemInfo *info; + + info = g_slice_new0 (CdmaMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = connection ? g_object_ref (connection) : NULL; + + g_signal_connect_data (item, "activate", + G_CALLBACK (cdma_menu_item_activate), + info, + (GClosureNotify) cdma_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); +} + +static guint32 +cdma_state_to_mb_state (CdmaDeviceInfo *info) +{ + if (!info->modem_enabled) + return MB_STATE_UNKNOWN; + + /* EVDO state overrides 1X state for now */ + if (info->evdo_state) { + if (info->evdo_state == 3) + return MB_STATE_ROAMING; + return MB_STATE_HOME; + } else if (info->cdma1x_state) { + if (info->cdma1x_state == 3) + return MB_STATE_ROAMING; + return MB_STATE_HOME; + } + + return MB_STATE_UNKNOWN; +} + +static guint32 +cdma_act_to_mb_act (CdmaDeviceInfo *info) +{ + if (info->evdo_state) + return MB_TECH_EVDO_REVA; /* Always rA until we get CDMA AcT from MM */ + else if (info->cdma1x_state) + return MB_TECH_1XRTT; + return MB_TECH_UNKNOWN; +} + +static void +cdma_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + CdmaDeviceInfo *info; + char *text; + GtkWidget *item; + GSList *connections, *all, *iter; +#ifdef ENABLE_INDICATOR + GtkWidget *signal_icon; +#endif + gboolean allowed; + NMClientPermissionResult perm; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + text = g_strdup_printf (_("Mobile Broadband (%s)"), desc); + } else { + text = g_strdup (_("Mobile Broadband")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); +#ifndef ENABLE_INDICATOR + gtk_widget_set_sensitive (item, FALSE); +#endif + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + g_free (text); + + /* Add the active connection */ + if (active) { + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (active); + g_assert (s_con); + +#ifndef ENABLE_INDICATOR + item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), + info->quality_valid ? info->quality : 0, + info->provider_name, + TRUE, + cdma_act_to_mb_act (info), + cdma_state_to_mb_state (info), + info->modem_enabled, + applet); +#else + text = mobile_helper_get_connection_label (nm_setting_connection_get_id (s_con), + info->provider_name, + cdma_act_to_mb_act (info), + cdma_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#endif + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + add_connection_item (device, active, item, menu, applet); + } + + /* Get the "disconnect" item if connected */ + if (nm_device_get_state (device) > NM_DEVICE_STATE_DISCONNECTED) { + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + } else { + /* Otherwise show idle registration state or disabled */ +#ifndef ENABLE_INDICATOR + item = nm_mb_menu_item_new (NULL, + info->quality_valid ? info->quality : 0, + info->provider_name, + FALSE, + cdma_act_to_mb_act (info), + cdma_state_to_mb_state (info), + info->modem_enabled, + applet); +#else + text = mobile_helper_get_connection_label (NULL, + info->provider_name, + cdma_act_to_mb_act (info), + cdma_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#endif + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + + /* Add the default / inactive connection items */ + if (!nma_menu_device_check_unusable (device)) { + if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (connections)) { + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (connection != active) { + item = applet_new_menu_item_helper (connection, NULL, FALSE); + add_connection_item (device, connection, item, menu, applet); + } + } + } else { + + allowed = FALSE; + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_NETWORK_CONTROL); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + allowed = TRUE; + } else { + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + allowed = TRUE; + } + } + } + + /* Default connection item */ + item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (CDMA) connection...")); + + gtk_widget_set_sensitive (GTK_WIDGET (item), allowed); + add_connection_item (device, NULL, item, menu, applet); + } + } + + g_slist_free (connections); +} + +static void +cdma_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + CdmaDeviceInfo *info; + + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + const char *id; + + s_con = nm_connection_get_setting_connection (connection); + id = s_con ? nm_setting_connection_get_id (s_con) : NULL; + if (id) + str = g_strdup_printf (_("You are now connected to '%s'."), id); + } + + applet_do_notify_with_pref (applet, + _("Connection Established"), + str ? str : _("You are now connected to the CDMA network."), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (str); + } + + /* Start/stop polling of quality and registration when device state changes */ + info = g_object_get_data (G_OBJECT (device), "devinfo"); + check_start_polling (info); +} + +static void +cdma_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *id; + CdmaDeviceInfo *info; + gboolean mb_state; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (info); + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + mb_state = cdma_state_to_mb_state (info); + *out_pixbuf = mobile_helper_get_status_pixbuf (info->quality, + info->quality_valid, + mb_state, + cdma_act_to_mb_act (info), + applet); + *out_indicator_icon = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + + if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { + gboolean roaming = (mb_state == MB_STATE_ROAMING); + + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active: (%d%%%s%s)"), + id, info->quality, + roaming ? ", " : "", + roaming ? _("roaming") : ""); + } else + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active"), id); + break; + default: + break; + } +} + +typedef struct { + SecretsRequest req; + GtkWidget *dialog; + GtkEntry *secret_entry; + char *secret_name; +} NMCdmaSecretsInfo; + +static void +free_cdma_secrets_info (SecretsRequest *req) +{ + NMCdmaSecretsInfo *info = (NMCdmaSecretsInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } + g_free (info->secret_name); +} + +static void +get_cdma_secrets_cb (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMCdmaSecretsInfo *info = (NMCdmaSecretsInfo *) req; + NMSettingCdma *setting; + GError *error = NULL; + + if (response == GTK_RESPONSE_OK) { + setting = nm_connection_get_setting_cdma (req->connection); + if (setting) { + g_object_set (G_OBJECT (setting), + info->secret_name, gtk_entry_get_text (info->secret_entry), + NULL); + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): no GSM setting", + __FILE__, __LINE__, __func__); + } + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + } + + applet_secrets_request_complete_setting (req, NM_SETTING_CDMA_SETTING_NAME, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static gboolean +cdma_get_secrets (SecretsRequest *req, GError **error) +{ + NMCdmaSecretsInfo *info = (NMCdmaSecretsInfo *) req; + GtkWidget *widget; + GtkEntry *secret_entry = NULL; + + applet_secrets_request_set_free_func (req, free_cdma_secrets_info); + + if (!req->hints || !g_strv_length (req->hints)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): missing secrets hints.", + __FILE__, __LINE__, __func__); + return FALSE; + } + info->secret_name = g_strdup (req->hints[0]); + + if (!strcmp (info->secret_name, NM_SETTING_CDMA_PASSWORD)) + widget = applet_mobile_password_dialog_new (req->connection, &secret_entry); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unknown secrets hint '%s'.", + __FILE__, __LINE__, __func__, info->secret_name); + return FALSE; + } + info->dialog = widget; + info->secret_entry = secret_entry; + + if (!widget || !secret_entry) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): error asking for CDMA secrets.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (widget, "response", G_CALLBACK (get_cdma_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (GTK_WIDGET (widget)); + gtk_window_present (GTK_WINDOW (widget)); + + return TRUE; +} + +static void +cdma_device_info_free (gpointer data) +{ + CdmaDeviceInfo *info = data; + + if (info->props_proxy) + g_object_unref (info->props_proxy); + if (info->cdma_proxy) + g_object_unref (info->cdma_proxy); + if (info->bus) + dbus_g_connection_unref (info->bus); + if (info->poll_id) + g_source_remove (info->poll_id); + if (info->providers) + g_hash_table_destroy (info->providers); + g_free (info->provider_name); + memset (info, 0, sizeof (CdmaDeviceInfo)); + g_free (info); +} + +static void +notify_user_of_cdma_reg_change (CdmaDeviceInfo *info) +{ + guint32 mb_state = cdma_state_to_mb_state (info); + + if (mb_state == MB_STATE_HOME) { + applet_do_notify_with_pref (info->applet, + _("CDMA network."), + _("You are now registered on the home network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } else if (mb_state == MB_STATE_ROAMING) { + applet_do_notify_with_pref (info->applet, + _("CDMA network."), + _("You are now registered on a roaming network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } +} + +static void +update_registration_state (CdmaDeviceInfo *info, + guint32 new_cdma1x_state, + guint32 new_evdo_state) +{ + guint32 old_mb_state = cdma_state_to_mb_state (info); + + if ( (info->cdma1x_state != new_cdma1x_state) + || (info->evdo_state != new_evdo_state)) { + info->cdma1x_state = new_cdma1x_state; + info->evdo_state = new_evdo_state; + } + + /* Use the composite state to notify of home/roaming changes */ + if (cdma_state_to_mb_state (info) != old_mb_state) + notify_user_of_cdma_reg_change (info); +} + +static void +reg_state_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GError *error = NULL; + guint32 cdma1x_state = 0, evdo_state = 0; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_UINT, &cdma1x_state, + G_TYPE_UINT, &evdo_state, + G_TYPE_INVALID)) { + update_registration_state (info, cdma1x_state, evdo_state); + applet_schedule_update_icon (info->applet); + } + + g_clear_error (&error); +} + +static void +signal_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GError *error = NULL; + guint32 quality = 0; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_UINT, &quality, + G_TYPE_INVALID)) { + info->quality = quality; + info->quality_valid = TRUE; + applet_schedule_update_icon (info->applet); + } + + g_clear_error (&error); +} + +#define SERVING_SYSTEM_TYPE (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID)) + +static char * +find_provider_for_sid (GHashTable *table, guint32 sid) +{ + GHashTableIter iter; + gpointer value; + GSList *piter, *siter; + char *name = NULL; + + if (sid == 0) + return NULL; + + g_hash_table_iter_init (&iter, table); + /* Search through each country */ + while (g_hash_table_iter_next (&iter, NULL, &value) && !name) { + GSList *providers = value; + + /* Search through each country's providers */ + for (piter = providers; piter && !name; piter = g_slist_next (piter)) { + NmnMobileProvider *provider = piter->data; + + /* Search through CDMA SID list */ + for (siter = provider->cdma_sid; siter; siter = g_slist_next (siter)) { + if (GPOINTER_TO_UINT (siter->data) == sid) { + name = g_strdup (provider->name); + break; + } + } + } + } + + return name; +} + +static void +serving_system_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GError *error = NULL; + GValueArray *array = NULL; + guint32 new_sid = 0; + GValue *value; + + if (dbus_g_proxy_end_call (proxy, call, &error, + SERVING_SYSTEM_TYPE, &array, + G_TYPE_INVALID)) { + if (array->n_values == 3) { + value = g_value_array_get_nth (array, 2); + if (G_VALUE_HOLDS_UINT (value)) + new_sid = g_value_get_uint (value); + } + + g_value_array_free (array); + } + + if (new_sid && (new_sid != info->sid)) { + info->sid = new_sid; + if (info->providers) { + g_free (info->provider_name); + info->provider_name = NULL; + info->provider_name = find_provider_for_sid (info->providers, new_sid); + } + } else if (!new_sid) { + info->sid = 0; + g_free (info->provider_name); + info->provider_name = NULL; + } + + g_clear_error (&error); +} + +static void +enabled_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_BOOLEAN (&value)) + info->modem_enabled = g_value_get_boolean (&value); + g_value_unset (&value); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static gboolean +cdma_poll_cb (gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + + /* Kick off calls to get registration state and signal quality */ + if (!info->skip_reg_poll) { + dbus_g_proxy_begin_call (info->cdma_proxy, "GetRegistrationState", + reg_state_reply, info, NULL, + G_TYPE_INVALID); + info->skip_reg_poll = FALSE; + } + + if (!info->skip_signal_poll) { + dbus_g_proxy_begin_call (info->cdma_proxy, "GetSignalQuality", + signal_reply, info, NULL, + G_TYPE_INVALID); + info->skip_signal_poll = FALSE; + } + + dbus_g_proxy_begin_call (info->cdma_proxy, "GetServingSystem", + serving_system_reply, info, NULL, + G_TYPE_INVALID); + + return TRUE; /* keep running until we're told to stop */ +} + +static void +check_start_polling (CdmaDeviceInfo *info) +{ + NMDeviceState state; + gboolean poll = TRUE; + + g_return_if_fail (info != NULL); + + /* Don't poll if any of the following are true: + * + * 1) NM says the device is not available + * 3) the modem isn't enabled + */ + + state = nm_device_get_state (info->device); + if ( (state <= NM_DEVICE_STATE_UNAVAILABLE) + || (info->modem_enabled == FALSE)) + poll = FALSE; + + if (poll) { + if (!info->poll_id) { + /* 33 seconds to be just a bit more than MM's poll interval, so + * that if we get an unsolicited update from MM between polls we'll + * skip the next poll. + */ + info->poll_id = g_timeout_add_seconds (33, cdma_poll_cb, info); + } + cdma_poll_cb (info); + } else { + if (info->poll_id) + g_source_remove (info->poll_id); + info->poll_id = 0; + info->skip_reg_poll = FALSE; + info->skip_signal_poll = FALSE; + } +} + +static void +reg_state_changed_cb (DBusGProxy *proxy, + guint32 cdma1x_state, + guint32 evdo_state, + gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + + update_registration_state (info, cdma1x_state, evdo_state); + info->skip_reg_poll = TRUE; + applet_schedule_update_icon (info->applet); +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (info->applet); +#endif /* ENABLE_INDICATOR */ +} + +static void +signal_quality_changed_cb (DBusGProxy *proxy, + guint32 quality, + gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + + info->quality = quality; + info->quality_valid = TRUE; + info->skip_signal_poll = TRUE; + + applet_schedule_update_icon (info->applet); +} + +#define MM_DBUS_INTERFACE_MODEM "org.freedesktop.ModemManager.Modem" +#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)) + +static void +modem_properties_changed (DBusGProxy *proxy, + const char *interface, + GHashTable *props, + gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GValue *value; + + if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM)) { + value = g_hash_table_lookup (props, "Enabled"); + if (value && G_VALUE_HOLDS_BOOLEAN (value)) { + info->modem_enabled = g_value_get_boolean (value); + if (!info->modem_enabled) { + info->quality = 0; + info->quality_valid = 0; + info->cdma1x_state = 0; + info->evdo_state = 0; + info->sid = 0; + g_free (info->provider_name); + info->provider_name = NULL; + } + check_start_polling (info); + } + } +} + +static void +cdma_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceModem *modem = NM_DEVICE_MODEM (device); + CdmaDeviceInfo *info; + DBusGConnection *bus; + const char *udi; + GError *error = NULL; + + udi = nm_device_get_udi (device); + if (!udi) + return; + + bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); + if (!bus) { + g_warning ("%s: failed to connect to D-Bus: (%d) %s", __func__, error->code, error->message); + g_clear_error (&error); + return; + } + + info = g_malloc0 (sizeof (CdmaDeviceInfo)); + info->applet = applet; + info->device = device; + info->bus = bus; + info->quality_valid = FALSE; + + info->providers = nmn_mobile_providers_parse (NULL); + + info->props_proxy = dbus_g_proxy_new_for_name (bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.DBus.Properties"); + if (!info->props_proxy) { + g_message ("%s: failed to create D-Bus properties proxy.", __func__); + cdma_device_info_free (info); + return; + } + + info->cdma_proxy = dbus_g_proxy_new_for_name (bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.ModemManager.Modem.Cdma"); + if (!info->cdma_proxy) { + g_message ("%s: failed to create CDMA proxy.", __func__); + cdma_device_info_free (info); + return; + } + + g_object_set_data_full (G_OBJECT (modem), "devinfo", info, cdma_device_info_free); + + /* Registration state change signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__UINT_UINT, + G_TYPE_NONE, + G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->cdma_proxy, "RegistrationStateChanged", + G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->cdma_proxy, "RegistrationStateChanged", + G_CALLBACK (reg_state_changed_cb), info, NULL); + + /* Signal quality change signal */ + dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->cdma_proxy, "SignalQuality", G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->cdma_proxy, "SignalQuality", + G_CALLBACK (signal_quality_changed_cb), info, NULL); + + /* Modem property change signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__STRING_BOXED, + G_TYPE_NONE, G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, + G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->props_proxy, "MmPropertiesChanged", + G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->props_proxy, "MmPropertiesChanged", + G_CALLBACK (modem_properties_changed), + info, NULL); + + /* Ask whether the device is enabled */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + enabled_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_STRING, "Enabled", + G_TYPE_INVALID); +} + +NMADeviceClass * +applet_device_cdma_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = cdma_new_auto_connection; + dclass->add_menu_item = cdma_add_menu_item; + dclass->device_state_changed = cdma_device_state_changed; + dclass->get_icon = cdma_get_icon; + dclass->get_secrets = cdma_get_secrets; + dclass->secrets_request_size = sizeof (NMCdmaSecretsInfo); + dclass->device_added = cdma_device_added; + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/hide_policy_items_env_var.patch/src/applet-device-gsm.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/hide_policy_items_env_var.patch/src/applet-device-gsm.c --- network-manager-applet-0.9.4.1/.pc/hide_policy_items_env_var.patch/src/applet-device-gsm.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/hide_policy_items_env_var.patch/src/applet-device-gsm.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1812 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + * (C) Copyright 2008 Novell, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-gsm.h" +#include "utils.h" +#include "nm-mobile-wizard.h" +#include "mobile-helpers.h" +#include "applet-dialogs.h" +#include "mb-menu-item.h" +#include "nma-marshal.h" +#include "nmn-mobile-providers.h" +#include "nm-ui-utils.h" + +typedef enum { + MM_MODEM_GSM_ACCESS_TECH_UNKNOWN = 0, + MM_MODEM_GSM_ACCESS_TECH_GSM = 1, + MM_MODEM_GSM_ACCESS_TECH_GSM_COMPACT = 2, + MM_MODEM_GSM_ACCESS_TECH_GPRS = 3, + MM_MODEM_GSM_ACCESS_TECH_EDGE = 4, /* GSM w/EGPRS */ + MM_MODEM_GSM_ACCESS_TECH_UMTS = 5, /* UTRAN */ + MM_MODEM_GSM_ACCESS_TECH_HSDPA = 6, /* UTRAN w/HSDPA */ + MM_MODEM_GSM_ACCESS_TECH_HSUPA = 7, /* UTRAN w/HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA = 8, /* UTRAN w/HSDPA and HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS = 9, + MM_MODEM_GSM_ACCESS_TECH_LTE = 10, + + MM_MODEM_GSM_ACCESS_TECH_LAST = MM_MODEM_GSM_ACCESS_TECH_LTE +} MMModemGsmAccessTech; + +typedef struct { + NMApplet *applet; + NMDevice *device; + + DBusGConnection *bus; + DBusGProxy *props_proxy; + DBusGProxy *card_proxy; + DBusGProxy *net_proxy; + + gboolean quality_valid; + guint32 quality; + char *unlock_required; + char *devid; + char *simid; + gboolean modem_enabled; + MMModemGsmAccessTech act; + + /* reg_state is (1 + MM reg state) so that 0 means we haven't gotten a + * value from MM yet. 0 is a valid MM GSM reg state. + */ + guint reg_state; + char *op_code; + char *op_name; + GHashTable *providers; + + guint32 poll_id; + gboolean skip_reg_poll; + gboolean skip_signal_poll; + + /* Unlock dialog stuff */ + GtkWidget *dialog; + gpointer keyring_id; +} GsmDeviceInfo; + +static void unlock_dialog_destroy (GsmDeviceInfo *info); +static void check_start_polling (GsmDeviceInfo *info); + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} GSMMenuItemInfo; + +static void +gsm_menu_item_info_destroy (gpointer data) +{ + GSMMenuItemInfo *info = data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (info->connection); + + g_slice_free (GSMMenuItemInfo, data); +} + +typedef struct { + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} AutoGsmWizardInfo; + +static void +mobile_wizard_done (NMAMobileWizard *wizard, + gboolean canceled, + NMAMobileWizardAccessMethod *method, + gpointer user_data) +{ + AutoGsmWizardInfo *info = user_data; + NMConnection *connection = NULL; + + if (!canceled && method) { + NMSetting *setting; + char *uuid, *id; + + if (method->devtype != NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + g_warning ("Unexpected device type (not GSM)."); + canceled = TRUE; + goto done; + } + + connection = nm_connection_new (); + + setting = nm_setting_gsm_new (); + g_object_set (setting, + NM_SETTING_GSM_NUMBER, "*99#", + NM_SETTING_GSM_USERNAME, method->username, + NM_SETTING_GSM_PASSWORD, method->password, + NM_SETTING_GSM_APN, method->gsm_apn, + NULL); + nm_connection_add_setting (connection, setting); + + /* Serial setting */ + setting = nm_setting_serial_new (); + g_object_set (setting, + NM_SETTING_SERIAL_BAUD, 115200, + NM_SETTING_SERIAL_BITS, 8, + NM_SETTING_SERIAL_PARITY, 'n', + NM_SETTING_SERIAL_STOPBITS, 1, + NULL); + nm_connection_add_setting (connection, setting); + + nm_connection_add_setting (connection, nm_setting_ppp_new ()); + + setting = nm_setting_connection_new (); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); + uuid = nm_utils_uuid_generate (); + g_object_set (setting, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_GSM_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + g_free (id); + nm_connection_add_setting (connection, setting); + } + +done: + (*(info->callback)) (connection, TRUE, canceled, info->callback_data); + + if (wizard) + nma_mobile_wizard_destroy (wizard); + g_free (info); +} + +static gboolean +do_mobile_wizard (AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMAMobileWizard *wizard; + AutoGsmWizardInfo *info; + NMAMobileWizardAccessMethod *method; + + info = g_malloc0 (sizeof (AutoGsmWizardInfo)); + info->callback = callback; + info->callback_data = callback_data; + + wizard = nma_mobile_wizard_new (NULL, NULL, NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS, FALSE, + mobile_wizard_done, info); + if (wizard) { + nma_mobile_wizard_present (wizard); + return TRUE; + } + + /* Fall back to something */ + method = g_malloc0 (sizeof (NMAMobileWizardAccessMethod)); + method->devtype = NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS; + method->provider_name = _("GSM"); + mobile_wizard_done (NULL, FALSE, method, info); + g_free (method); + + return TRUE; +} + +static gboolean +gsm_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + return do_mobile_wizard (callback, callback_data); +} + +static void +dbus_3g_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; +} Dbus3gInfo; + +static void +dbus_connect_3g_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus3gInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + "/", + dbus_3g_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +void +applet_gsm_connect_network (NMApplet *applet, NMDevice *device) +{ + Dbus3gInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + + do_mobile_wizard (dbus_connect_3g_cb, info); +} + +static void +gsm_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + GSMMenuItemInfo *info = (GSMMenuItemInfo *) user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + +static void +add_connection_item (NMDevice *device, + NMConnection *connection, + GtkWidget *item, + GtkWidget *menu, + NMApplet *applet) +{ + GSMMenuItemInfo *info; + + info = g_slice_new0 (GSMMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = connection ? g_object_ref (connection) : NULL; + + g_signal_connect_data (item, "activate", + G_CALLBACK (gsm_menu_item_activate), + info, + (GClosureNotify) gsm_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); +} + +static guint32 +gsm_state_to_mb_state (GsmDeviceInfo *info) +{ + if (!info->modem_enabled) + return MB_STATE_UNKNOWN; + + switch (info->reg_state) { + case 1: /* IDLE */ + return MB_STATE_IDLE; + case 2: /* HOME */ + return MB_STATE_HOME; + case 3: /* SEARCHING */ + return MB_STATE_SEARCHING; + case 4: /* DENIED */ + return MB_STATE_DENIED; + case 6: /* ROAMING */ + return MB_STATE_ROAMING; + case 5: /* UNKNOWN */ + default: + break; + } + + return MB_STATE_UNKNOWN; +} + +static guint32 +gsm_act_to_mb_act (GsmDeviceInfo *info) +{ + switch (info->act) { + case MM_MODEM_GSM_ACCESS_TECH_GPRS: + return MB_TECH_GPRS; + case MM_MODEM_GSM_ACCESS_TECH_EDGE: + return MB_TECH_EDGE; + case MM_MODEM_GSM_ACCESS_TECH_UMTS: + return MB_TECH_UMTS; + case MM_MODEM_GSM_ACCESS_TECH_HSDPA: + return MB_TECH_HSDPA; + case MM_MODEM_GSM_ACCESS_TECH_HSUPA: + return MB_TECH_HSUPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA: + return MB_TECH_HSPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS: + return MB_TECH_HSPA_PLUS; + case MM_MODEM_GSM_ACCESS_TECH_LTE: + return MB_TECH_LTE; + default: + break; + } + + return MB_TECH_GSM; +} + +static void +gsm_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + GsmDeviceInfo *info; + char *text; + GtkWidget *item; + GSList *connections, *all, *iter; +#ifdef ENABLE_INDICATOR + GtkWidget *signal_icon; +#endif + gboolean allowed; + NMClientPermissionResult perm; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + text = g_strdup_printf (_("Mobile Broadband (%s)"), desc); + } else { + text = g_strdup (_("Mobile Broadband")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); +#ifndef ENABLE_INDICATOR + gtk_widget_set_sensitive (item, FALSE); +#endif + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + g_free (text); + + /* Add the active connection */ + if (active) { + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (active); + g_assert (s_con); + +#ifndef ENABLE_INDICATOR + item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), + info->quality_valid ? info->quality : 0, + info->op_name, + TRUE, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info), + info->modem_enabled, + applet); +#else + text = mobile_helper_get_connection_label (nm_setting_connection_get_id (s_con), + info->op_name, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#endif + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + add_connection_item (device, active, item, menu, applet); + } + + /* Notify user of unmanaged or unavailable device */ + if (nm_device_get_state (device) > NM_DEVICE_STATE_DISCONNECTED) { + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + } else { + /* Otherwise show idle registration state or disabled */ +#ifndef ENABLE_INDICATOR + item = nm_mb_menu_item_new (NULL, + info->quality_valid ? info->quality : 0, + info->op_name, + FALSE, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info), + info->modem_enabled, + applet); +#else + text = mobile_helper_get_connection_label (NULL, + info->op_name, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + gtk_widget_set_sensitive (item, FALSE); +#endif + + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + + /* Add the default / inactive connection items */ + if (!nma_menu_device_check_unusable (device)) { + if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (connections)) { + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (connection != active) { + item = applet_new_menu_item_helper (connection, NULL, FALSE); + add_connection_item (device, connection, item, menu, applet); + } + } + } else { + + allowed = FALSE; + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_NETWORK_CONTROL); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + allowed = TRUE; + } else { + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + allowed = TRUE; + } + } + } + + /* Default connection item */ + item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (GSM) connection...")); + gtk_widget_set_sensitive (GTK_WIDGET (item), allowed); + add_connection_item (device, NULL, item, menu, applet); + + } + } + + g_slist_free (connections); +} + +static void +gsm_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + GsmDeviceInfo *info; + + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + const char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, + str ? str : _("GSM network."), + _("Connection Established"), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } + + /* Start/stop polling of quality and registration when device state changes */ + info = g_object_get_data (G_OBJECT (device), "devinfo"); + check_start_polling (info); +} + +static void +gsm_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *id; + GsmDeviceInfo *info; + guint32 mb_state; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (info); + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + mb_state = gsm_state_to_mb_state (info); + *out_pixbuf = mobile_helper_get_status_pixbuf (info->quality, + info->quality_valid, + mb_state, + gsm_act_to_mb_act (info), + applet); + *out_indicator_icon = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + + if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { + gboolean roaming = (mb_state == MB_STATE_ROAMING); + + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active: (%d%%%s%s)"), + id, info->quality, + roaming ? ", " : "", + roaming ? _("roaming") : ""); + } else + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active"), id); + break; + default: + break; + } +} + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkEntry *secret_entry; + char *secret_name; +} NMGsmSecretsInfo; + +static void +free_gsm_secrets_info (SecretsRequest *req) +{ + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } + + g_free (info->secret_name); +} + +static void +get_gsm_secrets_cb (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + NMSettingGsm *setting; + GError *error = NULL; + + if (response == GTK_RESPONSE_OK) { + setting = nm_connection_get_setting_gsm (req->connection); + if (setting) { + g_object_set (G_OBJECT (setting), + info->secret_name, gtk_entry_get_text (info->secret_entry), + NULL); + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): no GSM setting", + __FILE__, __LINE__, __func__); + } + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + } + + applet_secrets_request_complete_setting (req, NM_SETTING_GSM_SETTING_NAME, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static void +pin_entry_changed (GtkEditable *editable, gpointer user_data) +{ + GtkWidget *ok_button = GTK_WIDGET (user_data); + const char *s; + int i; + gboolean valid = FALSE; + guint32 len; + + s = gtk_entry_get_text (GTK_ENTRY (editable)); + if (s) { + len = strlen (s); + if ((len >= 4) && (len <= 8)) { + valid = TRUE; + for (i = 0; i < len; i++) { + if (!g_ascii_isdigit (s[i])) { + valid = FALSE; + break; + } + } + } + } + + gtk_widget_set_sensitive (ok_button, valid); +} + +static GtkWidget * +ask_for_pin (GtkEntry **out_secret_entry) +{ + GtkDialog *dialog; + GtkWidget *w = NULL, *ok_button = NULL; + GtkBox *box = NULL, *vbox = NULL; + + dialog = GTK_DIALOG (gtk_dialog_new ()); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_title (GTK_WINDOW (dialog), _("PIN code required")); + + ok_button = gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); + ok_button = gtk_dialog_add_button (dialog, GTK_STOCK_OK, GTK_RESPONSE_OK); + gtk_window_set_default (GTK_WINDOW (dialog), ok_button); + + vbox = GTK_BOX (gtk_dialog_get_content_area (dialog)); + + w = gtk_label_new (_("PIN code is needed for the mobile broadband device")); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + + w = gtk_alignment_new (0.5, 0.5, 0, 1.0); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + +#if GTK_CHECK_VERSION(3,1,6) + box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6)); +#else + box = GTK_BOX (gtk_hbox_new (FALSE, 6)); +#endif + gtk_container_set_border_width (GTK_CONTAINER (box), 6); + gtk_container_add (GTK_CONTAINER (w), GTK_WIDGET (box)); + + gtk_box_pack_start (box, gtk_label_new ("PIN:"), FALSE, FALSE, 0); + + w = gtk_entry_new (); + *out_secret_entry = GTK_ENTRY (w); + gtk_entry_set_max_length (GTK_ENTRY (w), 8); + gtk_entry_set_width_chars (GTK_ENTRY (w), 8); + gtk_entry_set_activates_default (GTK_ENTRY (w), TRUE); + gtk_entry_set_visibility (GTK_ENTRY (w), FALSE); + gtk_box_pack_start (box, w, FALSE, FALSE, 0); + g_signal_connect (w, "changed", G_CALLBACK (pin_entry_changed), ok_button); + pin_entry_changed (GTK_EDITABLE (w), ok_button); + + gtk_widget_show_all (GTK_WIDGET (vbox)); + return GTK_WIDGET (dialog); +} + +static gboolean +gsm_get_secrets (SecretsRequest *req, GError **error) +{ + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + GtkWidget *widget; + GtkEntry *secret_entry = NULL; + + applet_secrets_request_set_free_func (req, free_gsm_secrets_info); + + if (!req->hints || !g_strv_length (req->hints)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): missing secrets hints.", + __FILE__, __LINE__, __func__); + return FALSE; + } + info->secret_name = g_strdup (req->hints[0]); + + if (!strcmp (info->secret_name, NM_SETTING_GSM_PIN)) { + NMDevice *device; + GsmDeviceInfo *devinfo; + + device = applet_get_device_for_connection (req->applet, req->connection); + if (!device) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to find device for active connection.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + devinfo = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (devinfo); + + /* A GetSecrets PIN dialog overrides the initial unlock dialog */ + if (devinfo->dialog) + unlock_dialog_destroy (devinfo); + + widget = ask_for_pin (&secret_entry); + } else if (!strcmp (info->secret_name, NM_SETTING_GSM_PASSWORD)) + widget = applet_mobile_password_dialog_new (req->connection, &secret_entry); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unknown secrets hint '%s'.", + __FILE__, __LINE__, __func__, info->secret_name); + return FALSE; + } + info->dialog = widget; + info->secret_entry = secret_entry; + + if (!widget || !secret_entry) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): error asking for GSM secrets.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (widget, "response", G_CALLBACK (get_gsm_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (GTK_WIDGET (widget)); + gtk_window_present (GTK_WINDOW (widget)); + + return TRUE; +} + +/********************************************************************/ + +static void +save_pin_cb (GnomeKeyringResult result, guint32 val, gpointer user_data) +{ + if (result != GNOME_KEYRING_RESULT_OK) + g_warning ("%s: result %d", (const char *) user_data, result); +} + +static void +set_pin_in_keyring (const char *devid, + const char *simid, + const char *pin) +{ + GnomeKeyringAttributeList *attributes; + GnomeKeyringAttribute attr; + const char *name; + char *error_msg; + + name = g_strdup_printf (_("PIN code for SIM card '%s' on '%s'"), + simid ? simid : "unknown", + devid); + + attributes = gnome_keyring_attribute_list_new (); + attr.name = g_strdup ("devid"); + attr.type = GNOME_KEYRING_ATTRIBUTE_TYPE_STRING; + attr.value.string = g_strdup (devid); + g_array_append_val (attributes, attr); + + if (simid) { + attr.name = g_strdup ("simid"); + attr.type = GNOME_KEYRING_ATTRIBUTE_TYPE_STRING; + attr.value.string = g_strdup (simid); + g_array_append_val (attributes, attr); + } + + error_msg = g_strdup_printf ("Saving PIN code in keyring for devid:%s simid:%s failed", + devid, simid ? simid : "(unknown)"); + + gnome_keyring_item_create (NULL, + GNOME_KEYRING_ITEM_GENERIC_SECRET, + name, + attributes, + pin, + TRUE, + save_pin_cb, + error_msg, + (GDestroyNotify) g_free); + + gnome_keyring_attribute_list_free (attributes); +} + +static void +delete_pin_cb (GnomeKeyringResult result, gpointer user_data) +{ + /* nothing to do */ +} + +static void +delete_pins_find_cb (GnomeKeyringResult result, GList *list, gpointer user_data) +{ + GList *iter; + + if (result == GNOME_KEYRING_RESULT_OK) { + for (iter = list; iter; iter = g_list_next (iter)) { + GnomeKeyringFound *found = iter->data; + + gnome_keyring_item_delete (found->keyring, found->item_id, delete_pin_cb, NULL, NULL); + } + } +} + +static void +delete_pins_in_keyring (const char *devid) +{ + gnome_keyring_find_itemsv (GNOME_KEYRING_ITEM_GENERIC_SECRET, + delete_pins_find_cb, + NULL, + NULL, + "devid", + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + devid, + NULL); +} + +static void +unlock_dialog_destroy (GsmDeviceInfo *info) +{ + applet_mobile_pin_dialog_destroy (info->dialog); + info->dialog = NULL; +} + +static void +unlock_pin_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + const char *dbus_error, *msg = NULL, *code1; + + if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + if (applet_mobile_pin_dialog_get_auto_unlock (info->dialog)) { + code1 = applet_mobile_pin_dialog_get_entry1 (info->dialog); + set_pin_in_keyring (info->devid, info->simid, code1); + } else + delete_pins_in_keyring (info->devid); + unlock_dialog_destroy (info); + return; + } + + dbus_error = dbus_g_error_get_name (error); + if (dbus_error && !strcmp (dbus_error, "org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword")) + msg = _("Wrong PIN code; please contact your provider."); + else + msg = error ? error->message : NULL; + + applet_mobile_pin_dialog_stop_spinner (info->dialog, msg); + g_warning ("%s: error unlocking with PIN: %s", __func__, error->message); + g_clear_error (&error); +} + +static void +unlock_puk_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + const char *dbus_error, *msg = NULL; + + if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + unlock_dialog_destroy (info); + return; + } + + dbus_error = dbus_g_error_get_name (error); + if (dbus_error && !strcmp (dbus_error, "org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword")) + msg = _("Wrong PUK code; please contact your provider."); + else + msg = error ? error->message : NULL; + + applet_mobile_pin_dialog_stop_spinner (info->dialog, msg); + g_warning ("%s: error unlocking with PIN: %s", __func__, error->message); + g_clear_error (&error); +} + +#define UNLOCK_CODE_PIN 1 +#define UNLOCK_CODE_PUK 2 + +static void +unlock_dialog_response (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + const char *code1, *code2; + guint32 unlock_code; + + if (response == GTK_RESPONSE_CANCEL || response == GTK_RESPONSE_DELETE_EVENT) { + unlock_dialog_destroy (info); + return; + } + + /* Start the spinner to show the progress of the unlock */ + applet_mobile_pin_dialog_start_spinner (info->dialog, _("Sending unlock code...")); + + unlock_code = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (info->dialog), "unlock-code")); + if (!unlock_code) { + g_warn_if_fail (unlock_code != 0); + unlock_dialog_destroy (info); + return; + } + + code1 = applet_mobile_pin_dialog_get_entry1 (info->dialog); + if (!code1 || !strlen (code1)) { + g_warn_if_fail (code1 != NULL); + g_warn_if_fail (strlen (code1)); + unlock_dialog_destroy (info); + return; + } + + /* Send the code to ModemManager */ + if (unlock_code == UNLOCK_CODE_PIN) { + dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPin", + unlock_pin_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, code1, + G_TYPE_INVALID); + } else if (unlock_code == UNLOCK_CODE_PUK) { + code2 = applet_mobile_pin_dialog_get_entry2 (info->dialog); + if (!code2) { + g_warn_if_fail (code2 != NULL); + unlock_dialog_destroy (info); + return; + } + + dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPuk", + unlock_puk_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, code1, + G_TYPE_STRING, code2, + G_TYPE_INVALID); + } +} + +static void +unlock_dialog_new (NMDevice *device, GsmDeviceInfo *info) +{ + const char *header = NULL; + const char *title = NULL; + const char *show_pass_label = NULL; + char *desc = NULL; + const char *label1 = NULL, *label2 = NULL, *label3 = NULL; + const char *device_desc; + gboolean match23 = FALSE; + guint32 label1_min = 0, label2_min = 0, label3_min = 0; + guint32 label1_max = 0, label2_max = 0, label3_max = 0; + guint32 unlock_code = 0; + + g_return_if_fail (info->unlock_required != NULL); + + if (info->dialog) + return; + + /* Figure out the dialog text based on the required unlock code */ + device_desc = nma_utils_get_device_description (device); + if (!strcmp (info->unlock_required, "sim-pin")) { + title = _("SIM PIN unlock required"); + header = _("SIM PIN Unlock Required"); + /* FIXME: some warning about # of times you can enter incorrect PIN */ + desc = g_strdup_printf (_("The mobile broadband device '%s' requires a SIM PIN code before it can be used."), device_desc); + /* Translators: PIN code entry label */ + label1 = _("PIN code:"); + label1_min = 4; + label1_max = 8; + /* Translators: Show/obscure PIN checkbox label */ + show_pass_label = _("Show PIN code"); + unlock_code = UNLOCK_CODE_PIN; + } else if (!strcmp (info->unlock_required, "sim-puk")) { + title = _("SIM PUK unlock required"); + header = _("SIM PUK Unlock Required"); + /* FIXME: some warning about # of times you can enter incorrect PUK */ + desc = g_strdup_printf (_("The mobile broadband device '%s' requires a SIM PUK code before it can be used."), device_desc); + /* Translators: PUK code entry label */ + label1 = _("PUK code:"); + label1_min = label1_max = 8; + /* Translators: New PIN entry label */ + label2 = _("New PIN code:"); + /* Translators: New PIN verification entry label */ + label3 = _("Re-enter new PIN code:"); + label2_min = label3_min = 4; + label2_max = label3_max = 8; + match23 = TRUE; + /* Translators: Show/obscure PIN/PUK checkbox label */ + show_pass_label = _("Show PIN/PUK codes"); + unlock_code = UNLOCK_CODE_PUK; + } else { + g_warning ("Unhandled unlock request for '%s'", info->unlock_required); + return; + } + + /* Construct and run the dialog */ + info->dialog = applet_mobile_pin_dialog_new (title, + header, + desc, + show_pass_label, + (unlock_code == UNLOCK_CODE_PIN) ? TRUE : FALSE); + g_free (desc); + g_return_if_fail (info->dialog != NULL); + + g_object_set_data (G_OBJECT (info->dialog), "unlock-code", GUINT_TO_POINTER (unlock_code)); + applet_mobile_pin_dialog_match_23 (info->dialog, match23); + + applet_mobile_pin_dialog_set_entry1 (info->dialog, label1, label1_min, label1_max); + if (label2) + applet_mobile_pin_dialog_set_entry2 (info->dialog, label2, label2_min, label2_max); + if (label3) + applet_mobile_pin_dialog_set_entry3 (info->dialog, label3, label3_min, label3_max); + + g_signal_connect (info->dialog, "response", G_CALLBACK (unlock_dialog_response), info); + applet_mobile_pin_dialog_present (info->dialog, FALSE); +} + +/********************************************************************/ + +static void +gsm_device_info_free (gpointer data) +{ + GsmDeviceInfo *info = data; + + if (info->props_proxy) + g_object_unref (info->props_proxy); + if (info->card_proxy) + g_object_unref (info->card_proxy); + if (info->net_proxy) + g_object_unref (info->net_proxy); + if (info->bus) + dbus_g_connection_unref (info->bus); + + if (info->keyring_id) + gnome_keyring_cancel_request (info->keyring_id); + + if (info->providers) + g_hash_table_destroy (info->providers); + + if (info->poll_id) + g_source_remove (info->poll_id); + + if (info->dialog) + unlock_dialog_destroy (info); + + g_free (info->devid); + g_free (info->simid); + g_free (info->op_code); + g_free (info->op_name); + memset (info, 0, sizeof (GsmDeviceInfo)); + g_free (info); +} + +static void +signal_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + guint32 quality = 0; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_UINT, &quality, + G_TYPE_INVALID)) { + info->quality = quality; + info->quality_valid = TRUE; + applet_schedule_update_icon (info->applet); + } + + g_clear_error (&error); +} + +static char * +find_provider_for_mcc_mnc (GHashTable *table, const char *mccmnc) +{ + GHashTableIter iter; + gpointer value; + GSList *piter, *siter; + const char *name2 = NULL, *name3 = NULL; + gboolean done = FALSE; + + if (!mccmnc) + return NULL; + + g_hash_table_iter_init (&iter, table); + /* Search through each country */ + while (g_hash_table_iter_next (&iter, NULL, &value) && !done) { + GSList *providers = value; + + /* Search through each country's providers */ + for (piter = providers; piter && !done; piter = g_slist_next (piter)) { + NmnMobileProvider *provider = piter->data; + + /* Search through MCC/MNC list */ + for (siter = provider->gsm_mcc_mnc; siter; siter = g_slist_next (siter)) { + NmnGsmMccMnc *mcc = siter->data; + + /* Match both 2-digit and 3-digit MNC; prefer a + * 3-digit match if found, otherwise a 2-digit one. + */ + if (strncmp (mcc->mcc, mccmnc, 3)) + continue; /* MCC was wrong */ + + if ( !name3 + && (strlen (mccmnc) == 6) + && !strncmp (mccmnc + 3, mcc->mnc, 3)) + name3 = provider->name; + + if ( !name2 + && !strncmp (mccmnc + 3, mcc->mnc, 2)) + name2 = provider->name; + + if (name2 && name3) { + done = TRUE; + break; + } + } + } + } + + if (name3) + return g_strdup (name3); + return g_strdup (name2); +} + +static char * +parse_op_name (GsmDeviceInfo *info, const char *orig, const char *op_code) +{ + guint i, orig_len; + + /* Some devices return the MCC/MNC if they haven't fully initialized + * or gotten all the info from the network yet. Handle that. + */ + + orig_len = orig ? strlen (orig) : 0; + if (orig_len == 0) { + /* If the operator name isn't valid, maybe we can look up the MCC/MNC + * from the operator code instead. + */ + if (op_code && strlen (op_code)) { + orig = op_code; + orig_len = strlen (orig); + } else + return NULL; + } else if (orig_len < 5 || orig_len > 6) + return g_strdup (orig); /* not an MCC/MNC */ + + for (i = 0; i < orig_len; i++) { + if (!isdigit (orig[i])) + return strdup (orig); + } + + /* At this point we have a 5 or 6 character all-digit string; that's + * probably an MCC/MNC. Look that up. + */ + + if (!info->providers) + info->providers = nmn_mobile_providers_parse (NULL); + if (!info->providers) + return strdup (orig); + + return find_provider_for_mcc_mnc (info->providers, orig); +} + +static void +notify_user_of_gsm_reg_change (GsmDeviceInfo *info) +{ + guint32 mb_state = gsm_state_to_mb_state (info); + + if (mb_state == MB_STATE_HOME) { + applet_do_notify_with_pref (info->applet, + _("GSM network."), + _("You are now registered on the home network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } else if (mb_state == MB_STATE_ROAMING) { + applet_do_notify_with_pref (info->applet, + _("GSM network."), + _("You are now registered on a roaming network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } +} + +#define REG_INFO_TYPE (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID)) +#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)) + +static void +reg_info_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValueArray *array = NULL; + guint32 new_state = 0; + char *new_op_code = NULL; + char *new_op_name = NULL; + GValue *value; + + if (dbus_g_proxy_end_call (proxy, call, &error, REG_INFO_TYPE, &array, G_TYPE_INVALID)) { + if (array->n_values == 3) { + value = g_value_array_get_nth (array, 0); + if (G_VALUE_HOLDS_UINT (value)) + new_state = g_value_get_uint (value) + 1; + + value = g_value_array_get_nth (array, 1); + if (G_VALUE_HOLDS_STRING (value)) { + new_op_code = g_value_dup_string (value); + if (new_op_code && !strlen (new_op_code)) { + g_free (new_op_code); + new_op_code = NULL; + } + } + + value = g_value_array_get_nth (array, 2); + if (G_VALUE_HOLDS_STRING (value)) + new_op_name = parse_op_name (info, g_value_get_string (value), new_op_code); + } + + g_value_array_free (array); + } + + if (info->reg_state != new_state) { + info->reg_state = new_state; + notify_user_of_gsm_reg_change (info); + } + + g_free (info->op_code); + info->op_code = new_op_code; + g_free (info->op_name); + info->op_name = new_op_name; + + g_clear_error (&error); +} + +static void +enabled_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_BOOLEAN (&value)) + info->modem_enabled = g_value_get_boolean (&value); + g_value_unset (&value); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static char * +parse_unlock_required (GValue *value) +{ + const char *new_val; + + /* Empty string means NULL */ + new_val = g_value_get_string (value); + if (new_val && strlen (new_val)) { + /* PIN2/PUK2 only required for various dialing things that we don't care + * about; it doesn't inhibit normal operation. + */ + if (strcmp (new_val, "sim-puk2") && strcmp (new_val, "sim-pin2")) + return g_strdup (new_val); + } + + return NULL; +} + +static void +keyring_unlock_pin_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + + if (!dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + g_warning ("Failed to auto-unlock devid:%s simid:%s : (%s) %s", + info->devid ? info->devid : "(unknown)", + info->simid ? info->simid : "(unknown)", + dbus_g_error_get_name (error), + error->message); + /* Ask the user */ + unlock_dialog_new (info->device, info); + g_clear_error (&error); + } +} + +static void +keyring_pin_check_cb (GnomeKeyringResult result, GList *list, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GList *iter; + const char *pin = NULL; + + info->keyring_id = NULL; + + if (result != GNOME_KEYRING_RESULT_OK) { + /* No saved PIN, just ask the user */ + unlock_dialog_new (info->device, info); + return; + } + + /* Look for a result with a matching "simid" attribute since that's + * better than just using a matching "devid". The PIN is really tied + * to the SIM, not the modem itself. + */ + for (iter = list; + info->simid && (pin == NULL) && iter; + iter = g_list_next (iter)) { + GnomeKeyringFound *found = iter->data; + int i; + + /* Look for a matching "simid" attribute */ + for (i = 0; (pin == NULL) && i < found->attributes->len; i++) { + GnomeKeyringAttribute attr = gnome_keyring_attribute_list_index (found->attributes, i); + + if ( g_strcmp0 (attr.name, "simid") == 0 + && attr.type == GNOME_KEYRING_ATTRIBUTE_TYPE_STRING + && g_strcmp0 (attr.value.string, info->simid) == 0) { + pin = found->secret; + break; + } + } + } + + if (pin == NULL) { + /* Fall back to the first result's PIN */ + pin = ((GnomeKeyringFound *) list->data)->secret; + if (pin == NULL) { + /* Should never get here */ + g_warn_if_fail (pin != NULL); + unlock_dialog_new (info->device, info); + return; + } + } + + /* Send the PIN code to ModemManager */ + if (!dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPin", + keyring_unlock_pin_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, pin, + G_TYPE_INVALID)) { + g_warning ("Failed to auto-unlock devid:%s simid:%s", + info->devid ? info->devid : "(unknown)", + info->simid ? info->simid : "(unknown)"); + } +} + +static void +simid_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_STRING (&value)) { + g_free (info->simid); + info->simid = g_value_dup_string (&value); + } + g_value_unset (&value); + } + g_clear_error (&error); + + /* Procure unlock code and apply it if an unlock is now required. */ + if (info->unlock_required) { + /* If we have a device ID ask the keyring for any saved SIM-PIN codes */ + if (info->devid && (g_strcmp0 (info->unlock_required, "sim-pin") == 0)) { + g_warn_if_fail (info->keyring_id == NULL); + info->keyring_id = gnome_keyring_find_itemsv (GNOME_KEYRING_ITEM_GENERIC_SECRET, + keyring_pin_check_cb, + info, + NULL, + "devid", + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + info->devid, + NULL); + } else { + /* Couldn't get a device ID, but unlock required; present dialog */ + unlock_dialog_new (info->device, info); + } + } + + check_start_polling (info); +} + +#define MM_DBUS_INTERFACE_MODEM_GSM_CARD "org.freedesktop.ModemManager.Modem.Gsm.Card" + +static void +unlock_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GHashTable *props = NULL; + + if (dbus_g_proxy_end_call (proxy, call, &error, + DBUS_TYPE_G_MAP_OF_VARIANT, &props, + G_TYPE_INVALID)) { + GHashTableIter iter; + const char *prop_name; + GValue *value; + + g_hash_table_iter_init (&iter, props); + while (g_hash_table_iter_next (&iter, (gpointer) &prop_name, (gpointer) &value)) { + if ((strcmp (prop_name, "UnlockRequired") == 0) && G_VALUE_HOLDS_STRING (value)) { + g_free (info->unlock_required); + info->unlock_required = parse_unlock_required (value); + } + + if ((strcmp (prop_name, "DeviceIdentifier") == 0) && G_VALUE_HOLDS_STRING (value)) { + g_free (info->devid); + info->devid = g_value_dup_string (value); + } + } + g_hash_table_destroy (props); + + /* Get SIM card identifier */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + simid_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM_GSM_CARD, + G_TYPE_STRING, "SimIdentifier", + G_TYPE_INVALID); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static void +access_tech_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_UINT (&value)) { + info->act = g_value_get_uint (&value); + applet_schedule_update_icon (info->applet); + } + g_value_unset (&value); + } + g_clear_error (&error); +} + +static gboolean +gsm_poll_cb (gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + + /* MM might have just sent an unsolicited update, in which case we just + * skip this poll and wait till the next one. + */ + + if (!info->skip_reg_poll) { + dbus_g_proxy_begin_call (info->net_proxy, "GetRegistrationInfo", + reg_info_reply, info, NULL, + G_TYPE_INVALID); + info->skip_reg_poll = FALSE; + } + + if (!info->skip_signal_poll) { + dbus_g_proxy_begin_call (info->net_proxy, "GetSignalQuality", + signal_reply, info, NULL, + G_TYPE_INVALID); + info->skip_signal_poll = FALSE; + } + + return TRUE; /* keep running until we're told to stop */ +} + +static void +check_start_polling (GsmDeviceInfo *info) +{ + NMDeviceState state; + gboolean poll = TRUE; + + g_return_if_fail (info != NULL); + + /* Don't poll if any of the following are true: + * + * 1) NM says the device is not available + * 2) the modem requires an unlock code + * 3) the modem isn't enabled + */ + + state = nm_device_get_state (info->device); + if ( (state <= NM_DEVICE_STATE_UNAVAILABLE) + || info->unlock_required + || (info->modem_enabled == FALSE)) + poll = FALSE; + + if (poll) { + if (!info->poll_id) { + /* 33 seconds to be just a bit more than MM's poll interval, so + * that if we get an unsolicited update from MM between polls we'll + * skip the next poll. + */ + info->poll_id = g_timeout_add_seconds (33, gsm_poll_cb, info); + } + gsm_poll_cb (info); + } else { + if (info->poll_id) + g_source_remove (info->poll_id); + info->poll_id = 0; + info->skip_reg_poll = FALSE; + info->skip_signal_poll = FALSE; + } +} + +static void +reg_info_changed_cb (DBusGProxy *proxy, + guint32 reg_state, + const char *op_code, + const char *op_name, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + guint32 new_state = reg_state + 1; + + if (info->reg_state != new_state) { + info->reg_state = new_state; + notify_user_of_gsm_reg_change (info); + } + + g_free (info->op_code); + info->op_code = strlen (op_code) ? g_strdup (op_code) : NULL; + g_free (info->op_name); + info->op_name = parse_op_name (info, op_name, info->op_code); + info->skip_reg_poll = TRUE; + +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (info->applet); +#endif /* ENABLE_INDICATOR */ +} + +static void +signal_quality_changed_cb (DBusGProxy *proxy, + guint32 quality, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + + info->quality = quality; + info->quality_valid = TRUE; + info->skip_signal_poll = TRUE; + + applet_schedule_update_icon (info->applet); +} + +#define MM_DBUS_INTERFACE_MODEM "org.freedesktop.ModemManager.Modem" +#define MM_DBUS_INTERFACE_MODEM_GSM_NETWORK "org.freedesktop.ModemManager.Modem.Gsm.Network" + +static void +modem_properties_changed (DBusGProxy *proxy, + const char *interface, + GHashTable *props, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GValue *value; + + if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM)) { + value = g_hash_table_lookup (props, "UnlockRequired"); + if (value && G_VALUE_HOLDS_STRING (value)) { + g_free (info->unlock_required); + info->unlock_required = parse_unlock_required (value); + check_start_polling (info); + } + + value = g_hash_table_lookup (props, "Enabled"); + if (value && G_VALUE_HOLDS_BOOLEAN (value)) { + info->modem_enabled = g_value_get_boolean (value); + if (!info->modem_enabled) { + info->quality = 0; + info->quality_valid = 0; + info->reg_state = 0; + info->act = 0; + g_free (info->op_code); + info->op_code = NULL; + g_free (info->op_name); + info->op_name = NULL; + } + check_start_polling (info); + } + } else if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM_GSM_NETWORK)) { + value = g_hash_table_lookup (props, "AccessTechnology"); + if (value && G_VALUE_HOLDS_UINT (value)) { + info->act = g_value_get_uint (value); + applet_schedule_update_icon (info->applet); + } + } +} + +static void +gsm_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceModem *modem = NM_DEVICE_MODEM (device); + GsmDeviceInfo *info; + const char *udi; + DBusGConnection *bus; + GError *error = NULL; + + udi = nm_device_get_udi (device); + if (!udi) + return; + + bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); + if (!bus) { + g_warning ("%s: failed to connect to D-Bus: (%d) %s", __func__, error->code, error->message); + g_clear_error (&error); + return; + } + + info = g_malloc0 (sizeof (GsmDeviceInfo)); + info->applet = applet; + info->device = device; + info->bus = bus; + + info->props_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.DBus.Properties"); + if (!info->props_proxy) { + g_message ("%s: failed to create D-Bus properties proxy.", __func__); + gsm_device_info_free (info); + return; + } + + info->card_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.ModemManager.Modem.Gsm.Card"); + if (!info->card_proxy) { + g_message ("%s: failed to create GSM Card proxy.", __func__); + gsm_device_info_free (info); + return; + } + + info->net_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + MM_DBUS_INTERFACE_MODEM_GSM_NETWORK); + if (!info->net_proxy) { + g_message ("%s: failed to create GSM Network proxy.", __func__); + gsm_device_info_free (info); + return; + } + + g_object_set_data_full (G_OBJECT (modem), "devinfo", info, gsm_device_info_free); + + /* Registration info signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__UINT_STRING_STRING, + G_TYPE_NONE, + G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->net_proxy, "RegistrationInfo", + G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->net_proxy, "RegistrationInfo", + G_CALLBACK (reg_info_changed_cb), info, NULL); + + /* Signal quality change signal */ + dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->net_proxy, "SignalQuality", G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->net_proxy, "SignalQuality", + G_CALLBACK (signal_quality_changed_cb), info, NULL); + + /* Modem property change signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__STRING_BOXED, + G_TYPE_NONE, G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, + G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->props_proxy, "MmPropertiesChanged", + G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->props_proxy, "MmPropertiesChanged", + G_CALLBACK (modem_properties_changed), + info, NULL); + + /* Ask whether the device needs to be unlocked */ + dbus_g_proxy_begin_call (info->props_proxy, "GetAll", + unlock_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_INVALID); + + /* Ask whether the device is enabled */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + enabled_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_STRING, "Enabled", + G_TYPE_INVALID); + + dbus_g_proxy_begin_call (info->props_proxy, "Get", + access_tech_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM_GSM_NETWORK, + G_TYPE_STRING, "AccessTechnology", + G_TYPE_INVALID); +} + +NMADeviceClass * +applet_device_gsm_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = gsm_new_auto_connection; + dclass->add_menu_item = gsm_add_menu_item; + dclass->device_state_changed = gsm_device_state_changed; + dclass->get_icon = gsm_get_icon; + dclass->get_secrets = gsm_get_secrets; + dclass->secrets_request_size = sizeof (NMGsmSecretsInfo); + dclass->device_added = gsm_device_added; + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/hide_policy_items_env_var.patch/src/applet-device-wifi.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/hide_policy_items_env_var.patch/src/applet-device-wifi.c --- network-manager-applet-0.9.4.1/.pc/hide_policy_items_env_var.patch/src/applet-device-wifi.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/hide_policy_items_env_var.patch/src/applet-device-wifi.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,2041 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-wifi.h" +#include "ap-menu-item.h" +#include "utils.h" +#include "nm-wifi-dialog.h" +#include "nm-ui-utils.h" + +#define ACTIVE_AP_TAG "active-ap" + +static void wifi_dialog_response_cb (GtkDialog *dialog, gint response, gpointer user_data); + +static void nag_dialog_response_cb (GtkDialog *nag_dialog, gint response, gpointer user_data); + +static NMAccessPoint *update_active_ap (NMDevice *device, NMDeviceState state, NMApplet *applet); + +static void _do_new_auto_connection (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap, + AppletNewAutoConnectionCallback callback, + gpointer callback_data); + +static void +show_ignore_focus_stealing_prevention (GtkWidget *widget) +{ + GdkWindow *window; + + gtk_widget_realize (widget); + gtk_widget_show (widget); + window = gtk_widget_get_window (widget); + gtk_window_present_with_time (GTK_WINDOW (widget), gdk_x11_get_server_time (window)); +} + +gboolean +applet_wifi_connect_to_hidden_network (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = nma_wifi_dialog_new_for_other (applet->nm_client, applet->settings); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (wifi_dialog_response_cb), + applet); + show_ignore_focus_stealing_prevention (dialog); + } + return !!dialog; +} + +void +nma_menu_add_hidden_network_item (GtkWidget *menu, NMApplet *applet) +{ + GtkWidget *menu_item; + GtkWidget *label; + gboolean allowed; + NMClientPermissionResult perm; + + menu_item = gtk_menu_item_new (); + label = gtk_label_new_with_mnemonic (_("_Connect to Hidden Wi-Fi Network...")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_container_add (GTK_CONTAINER (menu_item), label); + gtk_widget_show_all (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_swapped (menu_item, "activate", + G_CALLBACK (applet_wifi_connect_to_hidden_network), + applet); + + allowed = FALSE; + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_NETWORK_CONTROL); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + /* First, the user has to be able to control networks + * to connect to a new hidden access point. + */ + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + /* The user can modify (and add!) a new configuration for herself. */ + allowed = TRUE; + } else { + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + /* The user can modify (and add!) a new system wide configuration. */ + allowed = TRUE; + } + } + } + + gtk_widget_set_sensitive (GTK_WIDGET (menu_item), allowed); +} + +gboolean +applet_wifi_can_create_wifi_network (NMApplet *applet) +{ + gboolean disabled, allowed = FALSE; + NMClientPermissionResult perm; + + /* FIXME: check WIFI_SHARE_PROTECTED too, and make the wifi dialog + * handle the permissions as well so that admins can restrict open network + * creation separately from protected network creation. + */ + perm = nm_client_get_permission_result (applet->nm_client, NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN); + if (perm == NM_CLIENT_PERMISSION_RESULT_YES || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + disabled = g_settings_get_boolean (applet->gsettings, PREF_DISABLE_WIFI_CREATE); + if (!disabled) + allowed = TRUE; + } + return allowed; +} + +gboolean +applet_wifi_create_wifi_network (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = nma_wifi_dialog_new_for_create (applet->nm_client, applet->settings); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (wifi_dialog_response_cb), + applet); + show_ignore_focus_stealing_prevention (dialog); + } + return !!dialog; +} + +void +nma_menu_add_create_network_item (GtkWidget *menu, NMApplet *applet) +{ + GtkWidget *menu_item; + GtkWidget *label; + + menu_item = gtk_menu_item_new (); + label = gtk_label_new_with_mnemonic (_("Create _New Wi-Fi Network...")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_container_add (GTK_CONTAINER (menu_item), label); + gtk_widget_show_all (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_swapped (menu_item, "activate", + G_CALLBACK (applet_wifi_create_wifi_network), + applet); + + if (!applet_wifi_can_create_wifi_network (applet)) + gtk_widget_set_sensitive (GTK_WIDGET (menu_item), FALSE); +} + +static void +dbus_8021x_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMAccessPoint *ap; +} Dbus8021xInfo; + +static void +dbus_connect_8021x_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus8021xInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + nm_object_get_path (NM_OBJECT (info->ap)), + dbus_8021x_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + g_object_unref (info->ap); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +gboolean +applet_wifi_connect_to_8021x_network (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap) +{ + Dbus8021xInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + info->ap = g_object_ref (ap); + + _do_new_auto_connection (applet, device, ap, dbus_connect_8021x_cb, info); + return TRUE; +} + + +typedef struct { + NMApplet *applet; + NMDeviceWifi *device; + NMAccessPoint *ap; + NMConnection *connection; +} WifiMenuItemInfo; + +static void +wifi_menu_item_info_destroy (gpointer data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) data; + + g_object_unref (G_OBJECT (info->device)); + g_object_unref (G_OBJECT (info->ap)); + + if (info->connection) + g_object_unref (G_OBJECT (info->connection)); + + g_slice_free (WifiMenuItemInfo, data); +} + +/* + * NOTE: this list should *not* contain networks that you would like to + * automatically roam to like "Starbucks" or "AT&T" or "T-Mobile HotSpot". + */ +static const char *manf_default_ssids[] = { + "linksys", + "linksys-a", + "linksys-g", + "default", + "belkin54g", + "NETGEAR", + "o2DSL", + "WLAN", + "ALICE-WLAN", + NULL +}; + +static gboolean +is_ssid_in_list (const GByteArray *ssid, const char **list) +{ + while (*list) { + if (ssid->len == strlen (*list)) { + if (!memcmp (*list, ssid->data, ssid->len)) + return TRUE; + } + list++; + } + return FALSE; +} + +static gboolean +is_manufacturer_default_ssid (const GByteArray *ssid) +{ + return is_ssid_in_list (ssid, manf_default_ssids); +} + +static char * +get_ssid_utf8 (NMAccessPoint *ap) +{ + char *ssid_utf8 = NULL; + const GByteArray *ssid; + + if (ap) { + ssid = nm_access_point_get_ssid (ap); + if (ssid) + ssid_utf8 = nm_utils_ssid_to_utf8 (ssid); + } + if (!ssid_utf8) + ssid_utf8 = g_strdup (_("(none)")); + + return ssid_utf8; +} + +/* List known trojan networks that should never be shown to the user */ +static const char *blacklisted_ssids[] = { + /* http://www.npr.org/templates/story/story.php?storyId=130451369 */ + "Free Public WiFi", + NULL +}; + +static gboolean +is_blacklisted_ssid (const GByteArray *ssid) +{ + return is_ssid_in_list (ssid, blacklisted_ssids); +} + +#ifdef ENABLE_INDICATOR +static void +clear_dupes_list (GSList *list) +{ + g_slist_foreach (list, (GFunc) g_free, NULL); + g_slist_free (list); +} + +static gboolean +get_ap_is_encrypted (NMAccessPoint *ap) +{ + guint32 ap_flags, ap_wpa, ap_rsn; + + ap_flags = nm_access_point_get_flags (ap); + ap_wpa = nm_access_point_get_wpa_flags (ap); + ap_rsn = nm_access_point_get_rsn_flags (ap); + + if ((ap_flags & NM_802_11_AP_FLAGS_PRIVACY) || ap_wpa || ap_rsn) + return TRUE; + + return FALSE; +} + +static void +ap_menu_item_set_sensitive (GtkWidget *item, NMAccessPoint *ap, guint32 dev_caps) +{ + gboolean is_adhoc = FALSE; + guint32 ap_flags, ap_wpa, ap_rsn; + + ap_flags = nm_access_point_get_flags (ap); + ap_wpa = nm_access_point_get_wpa_flags (ap); + ap_rsn = nm_access_point_get_rsn_flags (ap); + + if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) + is_adhoc = TRUE; + + /* Don't enable the menu item the device can't even connect to the AP */ + if ( !nm_utils_security_valid (NMU_SEC_NONE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_WPA_ENTERPRISE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + } +} + +static gchar * +get_best_icon_name_for_ap (NMAccessPoint *ap, gboolean need_sec, gboolean encrypted) +{ + GString *icon_name = NULL; + gchar *tmp = NULL; + guint32 strength; + + g_return_val_if_fail (NM_IS_ACCESS_POINT (ap), NULL); + + strength = nm_access_point_get_strength (ap); + strength = CLAMP (strength, 0, 100); + + icon_name = g_string_new (""); + if (strength > 80) + icon_name = g_string_assign (icon_name, "nm-signal-100"); + else if (strength > 55) + icon_name = g_string_assign (icon_name, "nm-signal-75"); + else if (strength > 30) + icon_name = g_string_assign (icon_name, "nm-signal-50"); + else if (strength > 5) + icon_name = g_string_assign (icon_name, "nm-signal-25"); + else + icon_name = g_string_assign (icon_name, "nm-signal-00"); + + if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) { + icon_name = g_string_assign (icon_name, "nm-adhoc"); + goto out; + } + + if (need_sec && encrypted) + icon_name = g_string_append (icon_name, "-secure"); + +out: + tmp = icon_name->str; + g_string_free (icon_name, FALSE); + + return tmp; +} + +static void +set_menu_item_accessible_desc (NMAccessPoint *ap, + GtkMenuItem *item, + gboolean is_encrypted) +{ + guint32 strength; + gchar *ssid = NULL; + GString *icon_desc = NULL; + + g_return_if_fail (NM_IS_ACCESS_POINT (ap)); + + strength = nm_access_point_get_strength (ap); + strength = CLAMP (strength, 0, 100); + + ssid = g_strdup (gtk_menu_item_get_label (item)); + + if (ssid == NULL) + return; + + icon_desc = g_string_new (""); + g_string_append_printf (icon_desc, "%s: ", ssid); + + if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) { + icon_desc = g_string_append (icon_desc, _("ad-hoc")); + goto out; + } + + g_string_append_printf (icon_desc, "%d%%", strength); + + if (is_encrypted) { + icon_desc = g_string_append (icon_desc, ", "); + icon_desc = g_string_append (icon_desc, _("secure.")); + } + +out: + atk_object_set_name (gtk_widget_get_accessible (GTK_WIDGET (item)), icon_desc->str); + g_free (ssid); + g_string_free (icon_desc, TRUE); +} +#endif + +static void +clamp_ap_to_bssid (NMAccessPoint *ap, NMSettingWireless *s_wifi) +{ + const char *str_bssid; + struct ether_addr *eth_addr; + GByteArray *bssid; + + /* For a certain list of known ESSIDs which are commonly preset by ISPs + * and manufacturers and often unchanged by users, lock the connection + * to the BSSID so that we don't try to auto-connect to your grandma's + * neighbor's WiFi. + */ + + str_bssid = nm_access_point_get_hw_address (ap); + if (str_bssid) { + eth_addr = ether_aton (str_bssid); + if (eth_addr) { + bssid = g_byte_array_sized_new (ETH_ALEN); + g_byte_array_append (bssid, eth_addr->ether_addr_octet, ETH_ALEN); + g_object_set (G_OBJECT (s_wifi), + NM_SETTING_WIRELESS_BSSID, bssid, + NULL); + g_byte_array_free (bssid, TRUE); + } + } +} + +typedef struct { + NMApplet *applet; + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} MoreInfo; + +static void +more_info_wifi_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (foo); + MoreInfo *info = user_data; + NMConnection *connection = NULL; + NMDevice *device = NULL; + NMAccessPoint *ap = NULL; + + if (response != GTK_RESPONSE_OK) { + info->callback (NULL, FALSE, TRUE, info->callback_data); + goto done; + } + + if (!nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *nag_dialog; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + nag_dialog = nma_wifi_dialog_nag_user (dialog); + if (nag_dialog) { + gtk_window_set_transient_for (GTK_WINDOW (nag_dialog), GTK_WINDOW (dialog)); + g_signal_connect (nag_dialog, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + /* nma_wifi_dialog_get_connection() returns a connection with the + * refcount incremented, so the caller must remember to unref it. + */ + connection = nma_wifi_dialog_get_connection (dialog, &device, &ap); + g_assert (connection); + g_assert (device); + + info->callback (connection, TRUE, FALSE, info->callback_data); + + /* Balance nma_wifi_dialog_get_connection() */ + g_object_unref (connection); + +done: + g_free (info); + gtk_widget_hide (GTK_WIDGET (dialog)); + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static void +_do_new_auto_connection (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMConnection *connection = NULL; + NMSettingConnection *s_con = NULL; + NMSettingWireless *s_wifi = NULL; + NMSettingWirelessSecurity *s_wsec = NULL; + NMSetting8021x *s_8021x = NULL; + const GByteArray *ssid; + NM80211ApSecurityFlags wpa_flags, rsn_flags; + GtkWidget *dialog; + MoreInfo *more_info; + char *uuid; + + g_assert (applet); + g_assert (device); + g_assert (ap); + + connection = nm_connection_new (); + + ssid = nm_access_point_get_ssid (ap); + if ( (nm_access_point_get_mode (ap) == NM_802_11_MODE_INFRA) + && (is_manufacturer_default_ssid (ssid) == TRUE)) { + + /* Lock connection to this AP if it's a manufacturer-default SSID + * so that we don't randomly connect to some other 'linksys' + */ + s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); + clamp_ap_to_bssid (ap, s_wifi); + nm_connection_add_setting (connection, NM_SETTING (s_wifi)); + } + + /* If the AP is WPA[2]-Enterprise then we need to set up a minimal 802.1x + * setting and ask the user for more information. + */ + rsn_flags = nm_access_point_get_rsn_flags (ap); + wpa_flags = nm_access_point_get_wpa_flags (ap); + if ( (rsn_flags & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + || (wpa_flags & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + + /* Need a UUID for the "always ask" stuff in the Dialog of Doom */ + s_con = (NMSettingConnection *) nm_setting_connection_new (); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, NM_SETTING_CONNECTION_UUID, uuid, NULL); + g_free (uuid); + nm_connection_add_setting (connection, NM_SETTING (s_con)); + + if (!s_wifi) { + s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); + nm_connection_add_setting (connection, NM_SETTING (s_wifi)); + } + g_object_set (s_wifi, + NM_SETTING_WIRELESS_SSID, ssid, + NM_SETTING_WIRELESS_SEC, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, + NULL); + + s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new (); + g_object_set (s_wsec, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-eap", NULL); + nm_connection_add_setting (connection, NM_SETTING (s_wsec)); + + s_8021x = (NMSetting8021x *) nm_setting_802_1x_new (); + nm_setting_802_1x_add_eap_method (s_8021x, "ttls"); + g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_AUTH, "mschapv2", NULL); + nm_connection_add_setting (connection, NM_SETTING (s_8021x)); + } + + /* If it's an 802.1x connection, we need more information, so pop up the + * Dialog Of Doom. + */ + if (s_8021x) { + more_info = g_malloc0 (sizeof (*more_info)); + more_info->applet = applet; + more_info->callback = callback; + more_info->callback_data = callback_data; + + dialog = nma_wifi_dialog_new (applet->nm_client, applet->settings, connection, device, ap, FALSE); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (more_info_wifi_dialog_response_cb), + more_info); + show_ignore_focus_stealing_prevention (dialog); + } + } else { + /* Everything else can just get activated right away */ + callback (connection, TRUE, FALSE, callback_data); + } +} + +static gboolean +wifi_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) dclass_data; + + g_return_val_if_fail (device != NULL, FALSE); + g_return_val_if_fail (info->ap != NULL, FALSE); + + _do_new_auto_connection (info->applet, device, info->ap, callback, callback_data); + return TRUE; +} + + +static void +wifi_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) user_data; + const char *specific_object = NULL; + + if (info->ap) + specific_object = nm_object_get_path (NM_OBJECT (info->ap)); + applet_menu_item_activate_helper (NM_DEVICE (info->device), + info->connection, + specific_object ? specific_object : "/", + info->applet, + user_data); +} + +struct dup_data { + NMDevice *device; +#ifndef ENABLE_INDICATOR + NMNetworkMenuItem *found; +#else + GtkWidget *found; +#endif + char *hash; +}; + +static void +find_duplicate (gpointer d, gpointer user_data) +{ + struct dup_data * data = (struct dup_data *) user_data; + NMDevice *device; + const char *hash; + GtkWidget *widget = GTK_WIDGET (d); + + g_assert (d && widget); + g_return_if_fail (data); + g_return_if_fail (data->hash); + +#ifndef ENABLE_INDICATOR + if (data->found || !NM_IS_NETWORK_MENU_ITEM (widget)) + return; +#else + if (data->found || !GTK_IS_IMAGE_MENU_ITEM (widget)) + return; +#endif + + device = g_object_get_data (G_OBJECT (widget), "device"); + if (NM_DEVICE (device) != data->device) + return; + +#ifndef ENABLE_INDICATOR + hash = nm_network_menu_item_get_hash (NM_NETWORK_MENU_ITEM (widget)); + if (hash && (strcmp (hash, data->hash) == 0)) + data->found = NM_NETWORK_MENU_ITEM (widget); +#else + hash = g_object_get_data (G_OBJECT (widget), "hash"); + if (hash && (strcmp (hash, data->hash) == 0)) + data->found = widget; +#endif /* ENABLE_INDICATOR */ +} + +#ifndef ENABLE_INDICATOR +static NMNetworkMenuItem * +#else +static GtkImageMenuItem * +#endif +create_new_ap_item (NMDeviceWifi *device, + NMAccessPoint *ap, + struct dup_data *dup_data, + GSList *connections, + NMApplet *applet) +{ + WifiMenuItemInfo *info; + GSList *iter; +#ifndef ENABLE_INDICATOR + NMNetworkMenuItem *item = NULL; +#else + GtkWidget *item = NULL; + char *text, *best_icon_name; + const char *path; + GtkWidget *icon_image; + gboolean encrypted, ad_hoc; + GSList *dupes; +#endif /* ENABLE_INDICATOR */ + GSList *dev_connections = NULL; + GSList *ap_connections = NULL; + const GByteArray *ssid; + guint32 dev_caps; + + dev_connections = nm_device_filter_connections (NM_DEVICE (device), connections); + ap_connections = nm_access_point_filter_connections (ap, dev_connections); + g_slist_free (dev_connections); + dev_connections = NULL; + + ssid = nm_access_point_get_ssid (ap); + dev_caps = nm_device_wifi_get_capabilities (device); + +#ifndef ENABLE_INDICATOR + item = NM_NETWORK_MENU_ITEM (nm_network_menu_item_new (dup_data->hash, + !!g_slist_length (ap_connections))); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + + nm_network_menu_item_set_ssid (item, (GByteArray *) ssid); + + nma_icon_check_and_load ("nm-adhoc", &applet->adhoc_icon, applet); + nm_network_menu_item_set_detail (item, ap, applet->adhoc_icon, dev_caps); + nm_network_menu_item_best_strength (item, nm_access_point_get_strength (ap), applet); + nm_network_menu_item_add_dupe (item, ap); +#else + text = nm_utils_ssid_to_utf8 (ssid); + if (!text) { + // Avoid any cases where the SSID could possibly end up undefined. + text = g_strdup (""); + } + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + + encrypted = get_ap_is_encrypted (ap); + ad_hoc = nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC; + + best_icon_name = get_best_icon_name_for_ap (ap, TRUE, encrypted); + icon_image = gtk_image_new_from_icon_name (best_icon_name, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (best_icon_name); + + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), icon_image); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + + path = nm_object_get_path (NM_OBJECT (ap)); + dupes = g_slist_append (dupes, g_strdup (path)); + g_object_set_data_full (G_OBJECT (item), "dupes", (gpointer) dupes, (GDestroyNotify) clear_dupes_list); + g_object_set_data (G_OBJECT (item), "encrypted", (gpointer) encrypted); + g_object_set_data (G_OBJECT (item), "ad-hoc", (gpointer) ad_hoc); + g_object_set_data (G_OBJECT (item), "hash", (gpointer) dup_data->hash); + g_object_set_data (G_OBJECT (item), "has_connections", (gpointer) !!g_slist_length (ap_connections)); + + set_menu_item_accessible_desc (ap, GTK_MENU_ITEM (item), encrypted); + + ap_menu_item_set_sensitive (item, ap, dev_caps); +#endif /* ENABLE_INDICATOR */ + + g_object_set_data (G_OBJECT (item), "device", NM_DEVICE (device)); + + /* If there's only one connection, don't show the submenu */ + if (g_slist_length (ap_connections) > 1) { + GtkWidget *submenu; + + submenu = gtk_menu_new (); + + for (iter = ap_connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + GtkWidget *subitem; + + s_con = nm_connection_get_setting_connection (connection); + subitem = gtk_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); + + info = g_slice_new0 (WifiMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->ap = g_object_ref (G_OBJECT (ap)); + info->connection = g_object_ref (G_OBJECT (connection)); + + g_signal_connect_data (subitem, "activate", + G_CALLBACK (wifi_menu_item_activate), + info, + (GClosureNotify) wifi_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), GTK_WIDGET (subitem)); + } + + gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu); + } else { + NMConnection *connection; + + info = g_slice_new0 (WifiMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->ap = g_object_ref (G_OBJECT (ap)); + + if (g_slist_length (ap_connections) == 1) { + connection = NM_CONNECTION (g_slist_nth_data (ap_connections, 0)); + info->connection = g_object_ref (G_OBJECT (connection)); + } + + g_signal_connect_data (GTK_WIDGET (item), + "activate", + G_CALLBACK (wifi_menu_item_activate), + info, + (GClosureNotify) wifi_menu_item_info_destroy, + 0); + } + + g_slist_free (ap_connections); + return item; +} + +#ifndef ENABLE_INDICATOR +static NMNetworkMenuItem * +#else +static GtkImageMenuItem * +#endif /* ENABLE_INDICATOR */ +get_menu_item_for_ap (NMDeviceWifi *device, + NMAccessPoint *ap, + GSList *connections, + GSList *menu_list, + NMApplet *applet) +{ + const GByteArray *ssid; + struct dup_data dup_data = { NULL, NULL }; + + /* Don't add BSSs that hide their SSID or are blacklisted */ + ssid = nm_access_point_get_ssid (ap); + if ( !ssid + || nm_utils_is_empty_ssid (ssid->data, ssid->len) + || is_blacklisted_ssid (ssid)) + return NULL; + + /* Find out if this AP is a member of a larger network that all uses the + * same SSID and security settings. If so, we'll already have a menu item + * for this SSID, so just update that item's strength and add this AP to + * menu item's duplicate list. + */ + dup_data.found = NULL; + dup_data.hash = g_object_get_data (G_OBJECT (ap), "hash"); +#ifndef ENABLE_INDICATOR + g_return_val_if_fail (dup_data.hash != NULL, NULL); +#else + /* heh, not much choice here, otherwise on startup we get tons of errors + * because g_return_val_if_fail prints assertion errors. + */ + if (dup_data.hash == NULL) + return NULL; +#endif + + dup_data.device = NM_DEVICE (device); + g_slist_foreach (menu_list, find_duplicate, &dup_data); + + if (dup_data.found) { +#ifndef ENABLE_INDICATOR + nm_network_menu_item_best_strength (dup_data.found, nm_access_point_get_strength (ap), applet); + nm_network_menu_item_add_dupe (dup_data.found, ap); +#else + GSList *dupes = NULL; + const char *path; + + dupes = g_object_steal_data (G_OBJECT (dup_data.found), "dupes"); + path = nm_object_get_path (NM_OBJECT (ap)); + dupes = g_slist_prepend (dupes, g_strdup (path)); + g_object_set_data_full (G_OBJECT (dup_data.found), "dupes", (gpointer) dupes, (GDestroyNotify) clear_dupes_list); +#endif + return NULL; + } + + return create_new_ap_item (device, ap, &dup_data, connections, applet); +} + +static gint +sort_by_name (gconstpointer tmpa, gconstpointer tmpb) +{ +#ifndef ENABLE_INDICATOR + NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); + NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); + const char *a_ssid, *b_ssid; + gboolean a_adhoc, b_adhoc; + int i; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_ssid = nm_network_menu_item_get_ssid (a); + b_ssid = nm_network_menu_item_get_ssid (b); + + if (a_ssid && !b_ssid) + return 1; + if (b_ssid && !a_ssid) + return -1; + + if (a_ssid && b_ssid) { + i = g_ascii_strcasecmp (a_ssid, b_ssid); + if (i != 0) + return i; + } + + /* If the names are the same, sort infrastructure APs first */ + a_adhoc = nm_network_menu_item_get_is_adhoc (a); + b_adhoc = nm_network_menu_item_get_is_adhoc (b); + if (a_adhoc && !b_adhoc) + return 1; + else if (!a_adhoc && b_adhoc) + return -1; + + return 0; +#else + GtkImageMenuItem *a = GTK_IMAGE_MENU_ITEM (tmpa); + GtkImageMenuItem *b = GTK_IMAGE_MENU_ITEM (tmpb); + const char *a_ssid, *b_ssid; + gboolean a_adhoc, b_adhoc; + int i; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_ssid = gtk_menu_item_get_label (GTK_MENU_ITEM (a)); + b_ssid = gtk_menu_item_get_label (GTK_MENU_ITEM (b)); + + if (a_ssid && !b_ssid) + return 1; + if (b_ssid && !a_ssid) + return -1; + + if (a_ssid && b_ssid) { + i = g_ascii_strcasecmp (a_ssid, b_ssid); + if (i != 0) + return i; + } + + /* If the names are the same, sort infrastructure APs first */ + a_adhoc = g_object_get_data (G_OBJECT (a), "ad-hoc"); + b_adhoc = g_object_get_data (G_OBJECT (b), "ad-hoc"); + if (a_adhoc && !b_adhoc) + return 1; + else if (!a_adhoc && b_adhoc) + return -1; + + return 0; +#endif /* ENABLE_INDICATOR */ +} + +/* Sort menu items for the top-level menu: + * 1) whether there's a saved connection or not + * a) sort alphabetically within #1 + * 2) encrypted without a saved connection + * 3) unencrypted without a saved connection + */ +static gint +sort_toplevel (gconstpointer tmpa, gconstpointer tmpb) +{ +#ifndef ENABLE_INDICATOR + NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); + NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); + gboolean a_fave, b_fave; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_fave = nm_network_menu_item_get_has_connections (a); + b_fave = nm_network_menu_item_get_has_connections (b); + + /* Items with a saved connection first */ + if (a_fave && !b_fave) + return -1; + else if (!a_fave && b_fave) + return 1; + else if (!a_fave && !b_fave) { + gboolean a_enc = nm_network_menu_item_get_is_encrypted (a); + gboolean b_enc = nm_network_menu_item_get_is_encrypted (b); + + /* If neither item has a saved connection, sort by encryption */ + if (a_enc && !b_enc) + return -1; + else if (!a_enc && b_enc) + return 1; + } + + /* For all other cases (both have saved connections, both are encrypted, or + * both are unencrypted) just sort by name. + */ + return sort_by_name (a, b); +#else + GtkImageMenuItem *a = GTK_IMAGE_MENU_ITEM (tmpa); + GtkImageMenuItem *b = GTK_IMAGE_MENU_ITEM (tmpb); + gboolean a_fave, b_fave; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_fave = g_object_get_data (G_OBJECT (a), "has_connections"); + b_fave = g_object_get_data (G_OBJECT (b), "has_connections"); + + /* Items with a saved connection first */ + if (a_fave && !b_fave) + return -1; + else if (!a_fave && b_fave) + return 1; + else if (!a_fave && !b_fave) { + gboolean a_enc = g_object_get_data (G_OBJECT (a), "encrypted"); + gboolean b_enc = g_object_get_data (G_OBJECT (b), "encrypted"); + + /* If neither item has a saved connection, sort by encryption */ + if (a_enc && !b_enc) + return -1; + else if (!a_enc && b_enc) + return 1; + } + + /* For all other cases (both have saved connections, both are encrypted, or + * both are unencrypted) just sort by name. + */ + return sort_by_name (a, b); +#endif /* ENABLE_INDICATOR */ +} + +static void +wifi_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + NMDeviceWifi *wdev; + char *text; + const GPtrArray *aps; + int i; + NMAccessPoint *active_ap = NULL; + GSList *connections = NULL, *all, *iter; + gboolean wifi_enabled = TRUE; + gboolean wifi_hw_enabled = TRUE; + GSList *menu_items = NULL; /* All menu items we'll be adding */ +#ifndef ENABLE_INDICATOR + NMNetworkMenuItem *item, *active_item = NULL; +#else + GtkImageMenuItem *item, *active_item = NULL; +#endif /* ENABLE_INDICATOR */ + GtkWidget *widget; + + wdev = NM_DEVICE_WIFI (device); + aps = nm_device_wifi_get_access_points (wdev); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + if (aps && aps->len > 1) + text = g_strdup_printf (_("Wi-Fi Networks (%s)"), desc); + else + text = g_strdup_printf (_("Wi-Fi Network (%s)"), desc); + } else + text = g_strdup (ngettext ("Wi-Fi Network", "Wi-Fi Networks", aps ? aps->len : 0)); + + widget = applet_menu_item_create_device_item_helper (device, applet, text); + g_free (text); + + gtk_widget_set_sensitive (widget, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); + gtk_widget_show (widget); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + /* Add the active AP if we're connected to something and the device is available */ + if (!nma_menu_device_check_unusable (device)) { + active_ap = nm_device_wifi_get_active_access_point (wdev); + if (active_ap) { + active_item = item = get_menu_item_for_ap (wdev, active_ap, connections, NULL, applet); + if (item) { +#ifndef ENABLE_INDICATOR + nm_network_menu_item_set_active (item, TRUE); +#endif + menu_items = g_slist_append (menu_items, item); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + gtk_widget_show_all (GTK_WIDGET (item)); + } + } + } + + /* Notify user of unmanaged or unavailable device */ + wifi_enabled = nm_client_wireless_get_enabled (applet->nm_client); + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + widget = nma_menu_device_get_menu_item (device, applet, + wifi_hw_enabled ? + (wifi_enabled ? NULL : _("Wi-Fi is disabled")) : + _("Wi-Fi is disabled by hardware switch")); + if (widget) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); + gtk_widget_show (widget); + } + + /* If disabled or rfkilled or whatever, nothing left to do */ + if (nma_menu_device_check_unusable (device)) + goto out; + + /* Create menu items for the rest of the APs */ + for (i = 0; aps && (i < aps->len); i++) { + NMAccessPoint *ap = g_ptr_array_index (aps, i); + + item = get_menu_item_for_ap (wdev, ap, connections, menu_items, applet); + if (item) + menu_items = g_slist_append (menu_items, item); + } + + /* Now remove the active AP item from the list, as we've already dealt with + * it. (Needed it when creating menu items for the rest of the APs though + * to ensure duplicate APs are handled correctly) + */ + if (active_item) + menu_items = g_slist_remove (menu_items, active_item); + + /* Sort all the rest of the menu items for the top-level menu */ + menu_items = g_slist_sort (menu_items, sort_toplevel); + + if (g_slist_length (menu_items)) { + GSList *submenu_items = NULL; + GSList *topmenu_items = NULL; + guint32 num_for_toplevel = 5; + + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (menu_items) == (num_for_toplevel + 1)) + num_for_toplevel++; + + /* Add the first 5 APs (or 6 if there are only 6 total) from the sorted + * toplevel list. + */ + for (iter = menu_items; iter && num_for_toplevel; iter = g_slist_next (iter)) { + topmenu_items = g_slist_append (topmenu_items, iter->data); + num_for_toplevel--; + submenu_items = iter->next; + } + topmenu_items = g_slist_sort (topmenu_items, sort_by_name); + + for (iter = topmenu_items; iter; iter = g_slist_next (iter)) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (iter->data)); + gtk_widget_show_all (GTK_WIDGET (iter->data)); + } + g_slist_free (topmenu_items); + topmenu_items = NULL; + + /* If there are any submenu items, make a submenu for those */ + if (submenu_items) { + GtkWidget *subitem, *submenu; + GSList *sorted_subitems; + + subitem = gtk_menu_item_new_with_mnemonic (_("More networks")); + submenu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (subitem), submenu); + + /* Sort the subitems alphabetically */ + sorted_subitems = g_slist_copy (submenu_items); + sorted_subitems = g_slist_sort (sorted_subitems, sort_by_name); + + /* And add the rest to the submenu */ + for (iter = sorted_subitems; iter; iter = g_slist_next (iter)) + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), GTK_WIDGET (iter->data)); + g_slist_free (sorted_subitems); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), subitem); + gtk_widget_show_all (subitem); + } + } + +out: + g_slist_free (menu_items); + g_slist_free (connections); +} + +static void +notify_active_ap_changed_cb (NMDeviceWifi *device, + GParamSpec *pspec, + NMApplet *applet) +{ + NMRemoteConnection *connection; + NMSettingWireless *s_wireless; + NMAccessPoint *new; + const GByteArray *ssid; + NMDeviceState state; + + state = nm_device_get_state (NM_DEVICE (device)); + + new = update_active_ap (NM_DEVICE (device), state, applet); + if (!new || (state != NM_DEVICE_STATE_ACTIVATED)) + return; + + connection = applet_get_exported_connection_for_device (NM_DEVICE (device), applet); + if (!connection) + return; + + s_wireless = nm_connection_get_setting_wireless (NM_CONNECTION (connection)); + if (!s_wireless) + return; + + ssid = nm_access_point_get_ssid (new); + if (!ssid || !nm_utils_same_ssid (nm_setting_wireless_get_ssid (s_wireless), ssid, TRUE)) + return; + + applet_schedule_update_icon (applet); +} + +static void +add_hash_to_ap (NMAccessPoint *ap) +{ + char *hash; + + hash = utils_hash_ap (nm_access_point_get_ssid (ap), + nm_access_point_get_mode (ap), + nm_access_point_get_flags (ap), + nm_access_point_get_wpa_flags (ap), + nm_access_point_get_rsn_flags (ap)); + g_object_set_data_full (G_OBJECT (ap), "hash", hash, (GDestroyNotify) g_free); +} + +static void +notify_ap_prop_changed_cb (NMAccessPoint *ap, + GParamSpec *pspec, + NMApplet *applet) +{ + const char *prop = g_param_spec_get_name (pspec); + + if ( !strcmp (prop, NM_ACCESS_POINT_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_WPA_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_RSN_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_SSID) + || !strcmp (prop, NM_ACCESS_POINT_FREQUENCY) + || !strcmp (prop, NM_ACCESS_POINT_MODE)) { + add_hash_to_ap (ap); + } +} + +static void +wifi_available_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id || strcmp (id, "dont-show")) + return; + + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + TRUE); +} + + +struct ap_notification_data +{ + NMApplet *applet; + NMDeviceWifi *device; + guint id; + gulong last_notification_time; + guint new_con_id; +}; + +/* Scan the list of access points, looking for the case where we have no + * known (i.e. autoconnect) access points, but we do have unknown ones. + * + * If we find one, notify the user. + */ +static gboolean +idle_check_avail_access_point_notification (gpointer datap) +{ + struct ap_notification_data *data = datap; + NMApplet *applet = data->applet; + NMDeviceWifi *device = data->device; + int i; + const GPtrArray *aps; + GSList *all_connections; + GSList *connections; + GTimeVal timeval; + gboolean have_unused_access_point = FALSE; + gboolean have_no_autoconnect_points = TRUE; + + if (nm_client_get_state (data->applet->nm_client) != NM_STATE_DISCONNECTED) + return FALSE; + + if (nm_device_get_state (NM_DEVICE (device)) != NM_DEVICE_STATE_DISCONNECTED) + return FALSE; + + g_get_current_time (&timeval); + if ((timeval.tv_sec - data->last_notification_time) < 60*60) /* Notify at most once an hour */ + return FALSE; + + all_connections = applet_get_all_connections (applet); + connections = nm_device_filter_connections (NM_DEVICE (device), all_connections); + g_slist_free (all_connections); + all_connections = NULL; + + aps = nm_device_wifi_get_access_points (device); + for (i = 0; aps && (i < aps->len); i++) { + NMAccessPoint *ap = aps->pdata[i]; + GSList *ap_connections = nm_access_point_filter_connections (ap, connections); + GSList *iter; + gboolean is_autoconnect = FALSE; + + for (iter = ap_connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (nm_setting_connection_get_autoconnect (s_con)) { + is_autoconnect = TRUE; + break; + } + } + g_slist_free (ap_connections); + + if (!is_autoconnect) + have_unused_access_point = TRUE; + else + have_no_autoconnect_points = FALSE; + } + g_slist_free (connections); + + if (!(have_unused_access_point && have_no_autoconnect_points)) + return FALSE; + + /* Avoid notifying too often */ + g_get_current_time (&timeval); + data->last_notification_time = timeval.tv_sec; + + applet_do_notify (applet, + NOTIFY_URGENCY_LOW, + _("Wi-Fi Networks Available"), + _("Use the network menu to connect to a Wi-Fi network"), + "nm-device-wireless", + "dont-show", + _("Don't show this message again"), + wifi_available_dont_show_cb, + applet); + return FALSE; +} + +static void +queue_avail_access_point_notification (NMDevice *device) +{ + struct ap_notification_data *data; + + data = g_object_get_data (G_OBJECT (device), "notify-wifi-avail-data"); + if (data->id != 0) + return; + + if (g_settings_get_boolean (data->applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + return; + + data->id = g_timeout_add_seconds (3, idle_check_avail_access_point_notification, data); +} + +static void +access_point_added_cb (NMDeviceWifi *device, + NMAccessPoint *ap, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + add_hash_to_ap (ap); + g_signal_connect (G_OBJECT (ap), + "notify", + G_CALLBACK (notify_ap_prop_changed_cb), + applet); + + queue_avail_access_point_notification (NM_DEVICE (device)); +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (applet); +#endif /* ENABLE_INDICATOR */ +} + +static void +access_point_removed_cb (NMDeviceWifi *device, + NMAccessPoint *ap, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMAccessPoint *old; + + /* If this AP was the active AP, make sure ACTIVE_AP_TAG gets cleared from + * its device. + */ + old = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + if (old == ap) { + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); + applet_schedule_update_icon (applet); +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (applet); +#endif /* ENABLE_INDICATOR */ + } +} + +static void +on_new_connection (NMRemoteSettings *settings, + NMRemoteConnection *connection, + gpointer datap) +{ + struct ap_notification_data *data = datap; + queue_avail_access_point_notification (NM_DEVICE (data->device)); +} + +static void +free_ap_notification_data (gpointer user_data) +{ + struct ap_notification_data *data = user_data; + NMRemoteSettings *settings = applet_get_settings (data->applet); + + if (data->id) + g_source_remove (data->id); + + if (settings) + g_signal_handler_disconnect (settings, data->new_con_id); + memset (data, 0, sizeof (*data)); + g_free (data); +} + +static void +wifi_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceWifi *wdev = NM_DEVICE_WIFI (device); + const GPtrArray *aps; + int i; + struct ap_notification_data *data; + guint id; + + g_signal_connect (wdev, + "notify::" NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT, + G_CALLBACK (notify_active_ap_changed_cb), + applet); + + g_signal_connect (wdev, + "access-point-added", + G_CALLBACK (access_point_added_cb), + applet); + + g_signal_connect (wdev, + "access-point-removed", + G_CALLBACK (access_point_removed_cb), + applet); + + /* Now create the per-device hooks for watching for available wifi + * connections. + */ + data = g_new0 (struct ap_notification_data, 1); + data->applet = applet; + data->device = wdev; + /* We also need to hook up to the settings to find out when we have new connections + * that might be candididates. Keep the ID around so we can disconnect + * when the device is destroyed. + */ + id = g_signal_connect (applet_get_settings (applet), + NM_REMOTE_SETTINGS_NEW_CONNECTION, + G_CALLBACK (on_new_connection), + data); + data->new_con_id = id; + g_object_set_data_full (G_OBJECT (wdev), "notify-wifi-avail-data", + data, free_ap_notification_data); + + queue_avail_access_point_notification (device); + + /* Hash all APs this device knows about */ + aps = nm_device_wifi_get_access_points (wdev); + for (i = 0; aps && (i < aps->len); i++) + add_hash_to_ap (g_ptr_array_index (aps, i)); +} + +static void +bssid_strength_changed (NMAccessPoint *ap, GParamSpec *pspec, gpointer user_data) +{ + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static NMAccessPoint * +update_active_ap (NMDevice *device, NMDeviceState state, NMApplet *applet) +{ + NMAccessPoint *new = NULL, *old; + + if (state == NM_DEVICE_STATE_PREPARE || + state == NM_DEVICE_STATE_CONFIG || + state == NM_DEVICE_STATE_IP_CONFIG || + state == NM_DEVICE_STATE_NEED_AUTH || + state == NM_DEVICE_STATE_ACTIVATED) { + new = nm_device_wifi_get_active_access_point (NM_DEVICE_WIFI (device)); + } + + old = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + if (new && (new == old)) + return new; /* no change */ + + if (old) { + g_signal_handlers_disconnect_by_func (old, G_CALLBACK (bssid_strength_changed), applet); + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); + } + + if (new) { + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, new); + + /* monitor this AP's signal strength for updating the applet icon */ + g_signal_connect (new, + "notify::" NM_ACCESS_POINT_STRENGTH, + G_CALLBACK (bssid_strength_changed), + applet); + } + + return new; +} + +static void +wifi_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + NMAccessPoint *new = NULL; + char *esc_ssid = NULL; + + new = update_active_ap (device, new_state, applet); + + if (new_state == NM_DEVICE_STATE_DISCONNECTED) + queue_avail_access_point_notification (device); + + if (new_state != NM_DEVICE_STATE_ACTIVATED) + return; + + esc_ssid = get_ssid_utf8 (new); + g_object_set_data_full (G_OBJECT(device), "canonical-last-essid", g_strdup (esc_ssid), (GDestroyNotify) g_free); + applet_do_notify_with_pref (applet, + esc_ssid ? esc_ssid : _("(none)"), + _("Connection Established"), + "nm-device-wireless", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (esc_ssid); +} + +static void +wifi_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + NMAccessPoint *ap; + const char *id; + char *ssid = NULL; + + ap = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing Wi-Fi network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring Wi-Fi network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for Wi-Fi network '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a Wi-Fi network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + if (ap) { + guint32 strength; + + strength = nm_access_point_get_strength (ap); + strength = CLAMP (strength, 0, 100); + + if (strength > 80) + *out_pixbuf = nma_icon_check_and_load ("nm-signal-100", &applet->wifi_100_icon, applet); + else if (strength > 55) + *out_pixbuf = nma_icon_check_and_load ("nm-signal-75", &applet->wifi_75_icon, applet); + else if (strength > 30) + *out_pixbuf = nma_icon_check_and_load ("nm-signal-50", &applet->wifi_50_icon, applet); + else if (strength > 5) + *out_pixbuf = nma_icon_check_and_load ("nm-signal-25", &applet->wifi_25_icon, applet); + else + *out_pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); + + *out_indicator_icon = get_best_icon_name_for_ap (ap, FALSE, FALSE); + + ssid = get_ssid_utf8 (ap); + *tip = g_strdup_printf (_("Wi-Fi network connection '%s' active: %s (%d%%)"), + id, ssid, strength); + g_free (ssid); + } else { + *out_indicator_icon = g_strdup_printf ("nm-signal-00"); + *out_pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); + *tip = g_strdup_printf (_("Wi-Fi network connection '%s' active"), id); + } + break; + default: + break; + } + + if (out_pixbuf && *out_pixbuf) + g_object_ref (*out_pixbuf); +} + +static gboolean +wifi_dialog_close (gpointer user_data) +{ + GtkWidget *dialog = GTK_WIDGET (user_data); + + gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); + return FALSE; +} + +static void +wifi_dialog_destroyed (gpointer data, GObject *dialog_ptr) +{ + /* remove the idle function; for not to call wifi_dialog_close() on invalid pointer */ + g_idle_remove_by_data (dialog_ptr); +} + +static void +nag_dialog_response_cb (GtkDialog *nag_dialog, + gint response, + gpointer user_data) +{ + NMAWifiDialog *wifi_dialog = NMA_WIFI_DIALOG (user_data); + + if (response == GTK_RESPONSE_NO) { /* user opted not to correct the warning */ + nma_wifi_dialog_set_nag_ignored (wifi_dialog, TRUE); + g_idle_add (wifi_dialog_close, wifi_dialog); + g_object_weak_ref (G_OBJECT (wifi_dialog), wifi_dialog_destroyed, NULL); + } +} + + +static void +activate_existing_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +activate_new_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add new connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +wifi_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (foo); + NMApplet *applet = NM_APPLET (user_data); + NMConnection *connection = NULL, *fuzzy_match = NULL; + NMDevice *device = NULL; + NMAccessPoint *ap = NULL; + GSList *all, *iter; + + if (response != GTK_RESPONSE_OK) + goto done; + + if (!nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *nag_dialog; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + nag_dialog = nma_wifi_dialog_nag_user (dialog); + if (nag_dialog) { + gtk_window_set_transient_for (GTK_WINDOW (nag_dialog), GTK_WINDOW (dialog)); + g_signal_connect (nag_dialog, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + /* nma_wifi_dialog_get_connection() returns a connection with the + * refcount incremented, so the caller must remember to unref it. + */ + connection = nma_wifi_dialog_get_connection (dialog, &device, &ap); + g_assert (connection); + g_assert (device); + + /* Find a similar connection and use that instead */ + all = applet_get_all_connections (applet); + for (iter = all; iter; iter = g_slist_next (iter)) { + if (nm_connection_compare (connection, + NM_CONNECTION (iter->data), + (NM_SETTING_COMPARE_FLAG_FUZZY | NM_SETTING_COMPARE_FLAG_IGNORE_ID))) { + fuzzy_match = NM_CONNECTION (iter->data); + break; + } + } + g_slist_free (all); + + if (fuzzy_match) { + nm_client_activate_connection (applet->nm_client, + fuzzy_match, + device, + ap ? nm_object_get_path (NM_OBJECT (ap)) : NULL, + activate_existing_cb, + applet); + } else { + NMSetting *s_con; + NMSettingWireless *s_wifi = NULL; + const char *mode = NULL; + + /* Entirely new connection */ + + /* Don't autoconnect adhoc networks by default for now */ + s_wifi = nm_connection_get_setting_wireless (connection); + if (s_wifi) + mode = nm_setting_wireless_get_mode (s_wifi); + if (g_strcmp0 (mode, "adhoc") == 0) { + s_con = nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION); + if (!s_con) { + s_con = nm_setting_connection_new (); + nm_connection_add_setting (connection, s_con); + } + g_object_set (G_OBJECT (s_con), NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, NULL); + } + + nm_client_add_and_activate_connection (applet->nm_client, + connection, + device, + ap ? nm_object_get_path (NM_OBJECT (ap)) : NULL, + activate_new_cb, + applet); + } + + /* Balance nma_wifi_dialog_get_connection() */ + g_object_unref (connection); + +done: + gtk_widget_hide (GTK_WIDGET (dialog)); + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static gboolean +add_one_setting (GHashTable *settings, + NMConnection *connection, + NMSetting *setting, + GError **error) +{ + GHashTable *secrets; + + g_return_val_if_fail (settings != NULL, FALSE); + g_return_val_if_fail (connection != NULL, FALSE); + g_return_val_if_fail (setting != NULL, FALSE); + g_return_val_if_fail (error != NULL, FALSE); + g_return_val_if_fail (*error == NULL, FALSE); + + secrets = nm_setting_to_hash (setting, NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + g_hash_table_insert (settings, g_strdup (nm_setting_get_name (setting)), secrets); + } else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, nm_setting_get_name (setting)); + } + + return secrets ? TRUE : FALSE; +} + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkWidget *nag_dialog; +} NMWifiInfo; + +static void +free_wifi_info (SecretsRequest *req) +{ + NMWifiInfo *info = (NMWifiInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } +} + +static void +get_secrets_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMWifiInfo *info = (NMWifiInfo *) req; + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (info->dialog); + NMConnection *connection = NULL; + NMSettingWirelessSecurity *s_wireless_sec; + GHashTable *settings = NULL; + const char *key_mgmt, *auth_alg; + GError *error = NULL; + + /* Handle the nag dialog specially; don't want to clear the NMActiveConnection + * destroy handler yet if the main dialog isn't going away. + */ + if ((response == GTK_RESPONSE_OK) && !nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *widget; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + widget = nma_wifi_dialog_nag_user (dialog); + if (widget) { + gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (dialog)); + g_signal_connect (widget, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + if (response != GTK_RESPONSE_OK) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + goto done; + } + + connection = nma_wifi_dialog_get_connection (dialog, NULL, NULL); + if (!connection) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't get connection from Wi-Fi dialog.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* Second-guess which setting NM wants secrets for. */ + s_wireless_sec = nm_connection_get_setting_wireless_security (connection); + if (!s_wireless_sec) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): requested setting '802-11-wireless-security'" + " didn't exist in the connection.", + __FILE__, __LINE__, __func__); + goto done; /* Unencrypted */ + } + + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, (GDestroyNotify) g_hash_table_destroy); + if (!settings) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): not enough memory to return secrets.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* If the user chose an 802.1x-based auth method, return 802.1x secrets, + * not wireless secrets. Can happen with Dynamic WEP, because NM doesn't + * know the capabilities of the AP (since Dynamic WEP APs don't broadcast + * beacons), and therefore defaults to requesting WEP secrets from the + * wireless-security setting, not the 802.1x setting. + */ + key_mgmt = nm_setting_wireless_security_get_key_mgmt (s_wireless_sec); + if (!strcmp (key_mgmt, "ieee8021x") || !strcmp (key_mgmt, "wpa-eap")) { + /* LEAP secrets aren't in the 802.1x setting */ + auth_alg = nm_setting_wireless_security_get_auth_alg (s_wireless_sec); + if (!auth_alg || strcmp (auth_alg, "leap")) { + NMSetting8021x *s_8021x; + + s_8021x = nm_connection_get_setting_802_1x (connection); + if (!s_8021x) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): requested setting '802-1x' didn't" + " exist in the connection.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* Add the 802.1x setting */ + if (!add_one_setting (settings, connection, NM_SETTING (s_8021x), &error)) + goto done; + } + } + + /* Add the 802-11-wireless-security setting no matter what */ + add_one_setting (settings, connection, NM_SETTING (s_wireless_sec), &error); + +done: + applet_secrets_request_complete (req, settings, error); + applet_secrets_request_free (req); + + if (settings) + g_hash_table_destroy (settings); + if (connection) + nm_connection_clear_secrets (connection); +} + +static gboolean +wifi_get_secrets (SecretsRequest *req, GError **error) +{ + NMWifiInfo *info = (NMWifiInfo *) req; + + applet_secrets_request_set_free_func (req, free_wifi_info); + + info->dialog = nma_wifi_dialog_new (req->applet->nm_client, req->applet->settings, req->connection, NULL, NULL, TRUE); + if (info->dialog) { + g_signal_connect (info->dialog, "response", + G_CALLBACK (get_secrets_dialog_response_cb), + info); + show_ignore_focus_stealing_prevention (info->dialog); + } else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't display secrets UI", + __FILE__, __LINE__, __func__); + } + return !!info->dialog; +} + +NMADeviceClass * +applet_device_wifi_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = wifi_new_auto_connection; + dclass->add_menu_item = wifi_add_menu_item; + dclass->device_added = wifi_device_added; + dclass->device_state_changed = wifi_device_state_changed; + dclass->get_icon = wifi_get_icon; + dclass->get_secrets = wifi_get_secrets; + dclass->secrets_request_size = sizeof (NMWifiInfo); + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/hide_policy_items_env_var.patch/src/applet.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/hide_policy_items_env_var.patch/src/applet.c --- network-manager-applet-0.9.4.1/.pc/hide_policy_items_env_var.patch/src/applet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/hide_policy_items_env_var.patch/src/applet.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,4064 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2012 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + * + * This applet used the GNOME Wireless Applet as a skeleton to build from. + * + * GNOME Wireless Applet Authors: + * Eskil Heyn Olsen + * Bastien Nocera (Gnome2 port) + * + * (C) Copyright 2001, 2002 Free Software Foundation + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "applet-device-wifi.h" +#include "applet-device-gsm.h" +#include "applet-device-cdma.h" +#include "applet-device-bt.h" +#include "applet-device-wimax.h" +#include "applet-dialogs.h" +#include "nm-wifi-dialog.h" +#include "applet-vpn-request.h" +#include "utils.h" +#include "shell-watcher.h" +#include "nm-ui-utils.h" + +#define NOTIFY_CAPS_ACTIONS_KEY "actions" + +extern gboolean shell_debug; + +G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) + +static gboolean is_permission_yes (NMApplet *applet, NMClientPermission perm); + +/********************************************************************/ +/* Temporary dbus interface stuff */ + +static gboolean +impl_dbus_connect_to_hidden_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_connect_to_hidden_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_create_wifi_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_can_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NOT_AUTHORIZED, + "Creation of Wi-Fi networks has been disabled by system policy."); + return FALSE; + } + + if (!applet_wifi_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_8021x_network (NMApplet *applet, + const char *device_path, + const char *ap_path, + GError **error) +{ + NMDevice *device; + NMAccessPoint *ap; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_WIFI (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + ap = nm_device_wifi_get_access_point_by_path (NM_DEVICE_WIFI (device), ap_path); + if (!ap) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point could not be found."); + return FALSE; + } + + /* FIXME: this doesn't account for Dynamic WEP */ + if ( !(nm_access_point_get_wpa_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + && !(nm_access_point_get_rsn_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point had no 802.1x capabilities"); + return FALSE; + } + + if (!applet_wifi_connect_to_8021x_network (applet, device, ap)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_3g_network (NMApplet *applet, + const char *device_path, + GError **error) +{ + NMDevice *device; + NMDeviceModemCapabilities caps; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_MODEM (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + applet_gsm_connect_network (applet, device); + } else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + applet_cdma_connect_network (applet, device); + } else { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device had no GSM or CDMA capabilities."); + return FALSE; + } + + return TRUE; +} + +#include "applet-dbus-bindings.h" + +/********************************************************************/ + +static inline NMADeviceClass * +get_device_class (NMDevice *device, NMApplet *applet) +{ + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + if (NM_IS_DEVICE_ETHERNET (device)) + return applet->ethernet_class; + else if (NM_IS_DEVICE_WIFI (device)) + return applet->wifi_class; + else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + return applet->gsm_class; + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + return applet->cdma_class; + else + g_message ("%s: unhandled modem capabilities 0x%X", __func__, caps); + } else if (NM_IS_DEVICE_BT (device)) + return applet->bt_class; + else if (NM_IS_DEVICE_WIMAX (device)) + return applet->wimax_class; + else + g_debug ("%s: Unknown device type '%s'", __func__, G_OBJECT_TYPE_NAME (device)); + return NULL; +} + +static inline NMADeviceClass * +get_device_class_from_connection (NMConnection *connection, NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *ctype; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + ctype = nm_setting_connection_get_connection_type (s_con); + g_return_val_if_fail (ctype != NULL, NULL); + + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME) || !strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return applet->ethernet_class; + else if (!strcmp (ctype, NM_SETTING_WIRELESS_SETTING_NAME)) + return applet->wifi_class; + else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME)) + return applet->gsm_class; + else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME)) + return applet->cdma_class; + else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) + return applet->bt_class; + else + g_warning ("%s: unhandled connection type '%s'", __func__, ctype); + return NULL; +} + +struct _OfflineNotificationContextInfo { + NMState state; + NMDeviceState device_state; + NMDeviceStateReason device_state_reason; + NMDeviceType device_type; + gchar* title; + const gchar* text; + const gchar* icon; + NotifyUrgency urgency; +}; + +typedef struct _OfflineNotificationContextInfo OfflineNotificationContextInfo; + +static NMActiveConnection * +applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *best = NULL; + NMDevice *best_dev = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const GPtrArray *devices; + NMDevice *candidate_dev; + + if (nm_active_connection_get_state (candidate) != NM_ACTIVE_CONNECTION_STATE_ACTIVATING) + continue; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (!best_dev) { + best_dev = candidate_dev; + best = candidate; + continue; + } + + if (NM_IS_DEVICE_WIFI (best_dev)) { + if (NM_IS_DEVICE_ETHERNET (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (NM_IS_DEVICE_MODEM (best_dev)) { + NMDeviceModemCapabilities best_caps; + NMDeviceModemCapabilities candidate_caps = NM_DEVICE_MODEM_CAPABILITY_NONE; + + best_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (best_dev)); + if (NM_IS_DEVICE_MODEM (candidate_dev)) + candidate_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (candidate_dev)); + + if (best_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (best_caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev) + || (candidate_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { + best_dev = candidate_dev; + best = candidate; + } + } + } + } + + *device = best_dev; + return best; +} + +static NMActiveConnection * +applet_get_default_active_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *default_ac = NULL; + NMDevice *non_default_device = NULL; + NMActiveConnection *non_default_ac = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + NMDevice *candidate_dev; + const GPtrArray *devices; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (nm_active_connection_get_default (candidate)) { + if (!default_ac) { + *device = candidate_dev; + default_ac = candidate; + } + } else { + if (!non_default_ac) { + non_default_device = candidate_dev; + non_default_ac = candidate; + } + } + } + + /* Prefer the default connection if one exists, otherwise return the first + * non-default connection. + */ + if (!default_ac && non_default_ac) { + default_ac = non_default_ac; + *device = non_default_device; + } + return default_ac; +} + +NMRemoteSettings * +applet_get_settings (NMApplet *applet) +{ + return applet->settings; +} + +GSList * +applet_get_all_connections (NMApplet *applet) +{ + GSList *connections, *iter, *next; + NMConnection *connection; + NMSettingConnection *s_con; + + connections = nm_remote_settings_list_connections (applet->settings); + + /* Ignore slave connections */ + for (iter = connections; iter; iter = next) { + connection = iter->data; + next = iter->next; + + s_con = nm_connection_get_setting_connection (connection); + if (s_con && nm_setting_connection_get_master (s_con)) + connections = g_slist_delete_link (connections, iter); + } + + return connections; +} + +static NMConnection * +applet_get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMActiveConnection * +applet_get_active_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + int i; + const char *cpath; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + const char *active_cpath = nm_active_connection_get_connection (active); + + if (active_cpath && !strcmp (active_cpath, cpath)) + return active; + } + return NULL; +} + +NMDevice * +applet_get_device_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + const char *cpath; + int i; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + + if (!g_strcmp0 (nm_active_connection_get_connection (active), cpath)) + return g_ptr_array_index (nm_active_connection_get_devices (active), 0); + } + return NULL; +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + char *specific_object; + NMConnection *connection; +} AppletItemActivateInfo; + +static void +applet_item_activate_info_destroy (AppletItemActivateInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + g_free (info->specific_object); + if (info->connection) + g_object_unref (info->connection); + memset (info, 0, sizeof (AppletItemActivateInfo)); + g_free (info); +} + +static void +add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (error) { + const char *text = _("Failed to add/activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +static void +applet_menu_item_activate_helper_new_connection (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + AppletItemActivateInfo *info = user_data; + + if (canceled) { + applet_item_activate_info_destroy (info); + return; + } + + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + info->specific_object, + add_and_activate_cb, + info->applet); + + applet_item_activate_info_destroy (info); +} + +static void +disconnect_cb (NMDevice *device, GError *error, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (error) { + const char *text = _("Device disconnect failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s: %s", __func__, text, err_text); + utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +void +applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet) +{ + g_return_if_fail (NM_IS_DEVICE (device)); + + nm_device_disconnect (device, disconnect_cb, applet); +} + +static void +activate_connection_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Connection activation failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +void +applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data) +{ + AppletItemActivateInfo *info; + NMADeviceClass *dclass; + + g_return_if_fail (NM_IS_DEVICE (device)); + + if (connection) { + /* If the menu item had an associated connection already, just tell + * NM to activate that connection. + */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + specific_object, + activate_connection_cb, + applet); + return; + } + + /* If no connection was given, ask the device class to create a new + * default connection for this device type. This could be a wizard, + * and thus take a while. + */ + + info = g_malloc0 (sizeof (AppletItemActivateInfo)); + info->applet = applet; + info->specific_object = g_strdup (specific_object); + info->device = g_object_ref (device); + + dclass = get_device_class (device, applet); + g_assert (dclass); + if (!dclass->new_auto_connection (device, dclass_data, + applet_menu_item_activate_helper_new_connection, + info)) { + g_warning ("Couldn't create default connection."); + applet_item_activate_info_destroy (info); + } +} + +void +applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos) +{ + GtkWidget *menu_item = NULL; +#ifndef ENABLE_INDICATOR +#if GTK_CHECK_VERSION(3,1,6) + GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); +#else + GtkWidget *box = gtk_hbox_new (FALSE, 0); +#endif + GtkWidget *xlabel = NULL; + + menu_item = gtk_image_menu_item_new (); + + if (label) { + xlabel = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (xlabel), label); + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2); + } + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + + g_object_set (G_OBJECT (menu_item), + "child", box, + "sensitive", FALSE, + NULL); +#else + menu_item = gtk_separator_menu_item_new (); +#endif /* ENABLE_INDICATOR */ + if (pos < 0) + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + else + gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, pos); + return; +} + +GtkWidget * +applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active) +{ + GtkWidget *item; + NMSettingConnection *s_con; +#ifndef ENABLE_INDICATOR + char *markup; + GtkWidget *label; +#endif /* ENABLE_INDICATOR */ + + s_con = nm_connection_get_setting_connection (connection); +#ifndef ENABLE_INDICATOR + item = gtk_image_menu_item_new_with_label (""); + if (add_active && (active == connection)) { + /* Pure evil */ + label = gtk_bin_get_child (GTK_BIN (item)); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + markup = g_markup_printf_escaped ("%s", nm_setting_connection_get_id (s_con)); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + } else + gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); + + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#else + item = gtk_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); +#endif /* ENABLE_INDICATOR */ + return item; +} + +#ifndef ENABLE_INDICATOR +#define TITLE_TEXT_R ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_G ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_B ((double) 0x5e / 255.0 ) + +static void +menu_item_draw_generic (GtkWidget *widget, cairo_t *cr) +{ + GtkWidget *label; + PangoFontDescription *desc; + PangoLayout *layout; + int width = 0, height = 0, owidth, oheight; + gdouble extraheight = 0, extrawidth = 0; + const char *text; + gdouble xpadding = 10.0; + gdouble ypadding = 5.0; + gdouble postpadding = 0.0; + + label = gtk_bin_get_child (GTK_BIN (widget)); + text = gtk_label_get_text (GTK_LABEL (label)); + + layout = pango_cairo_create_layout (cr); +#if GTK_CHECK_VERSION(2,20,0) && !GTK_CHECK_VERSION(2,91,6) + { + GtkStyle *style; + style = gtk_widget_get_style (widget); + desc = pango_font_description_copy (style->font_desc); + } +#else + { + GtkStyleContext *style; + style = gtk_widget_get_style_context (widget); + gtk_style_context_get (style, gtk_style_context_get_state (style), + "font", &desc, + NULL); + } +#endif + pango_font_description_set_variant (desc, PANGO_VARIANT_SMALL_CAPS); + pango_font_description_set_weight (desc, PANGO_WEIGHT_SEMIBOLD); + pango_layout_set_font_description (layout, desc); + pango_layout_set_text (layout, text, -1); + pango_cairo_update_layout (cr, layout); + pango_layout_get_size (layout, &owidth, &oheight); + width = owidth / PANGO_SCALE; + height += oheight / PANGO_SCALE; + + cairo_save (cr); + + cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); + cairo_rectangle (cr, 0, 0, + (double) (width + 2 * xpadding), + (double) (height + ypadding + postpadding)); + cairo_fill (cr); + + /* now the in-padding content */ + cairo_translate (cr, xpadding , ypadding); + cairo_set_source_rgb (cr, TITLE_TEXT_R, TITLE_TEXT_G, TITLE_TEXT_B); + cairo_move_to (cr, extrawidth, extraheight); + pango_cairo_show_layout (cr, layout); + + cairo_restore(cr); + + pango_font_description_free (desc); + g_object_unref (layout); + + gtk_widget_set_size_request (widget, width + 2 * xpadding, height + ypadding + postpadding); +} + +#if GTK_CHECK_VERSION(2,90,7) +static gboolean +menu_title_item_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) +{ + menu_item_draw_generic (widget, cr); + return TRUE; +} +#else +static gboolean +menu_title_item_expose (GtkWidget *widget, GdkEventExpose *event) +{ + GtkAllocation allocation; + cairo_t *cr; + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + /* The drawing area we get is the whole menu; clip the drawing to the + * event area, which should just be our menu item. + */ + cairo_rectangle (cr, + event->area.x, event->area.y, + event->area.width, event->area.height); + cairo_clip (cr); + + /* We also need to reposition the cairo context so that (0, 0) is the + * top-left of where we're supposed to start drawing. + */ + gtk_widget_get_allocation (widget, &allocation); + cairo_translate (cr, allocation.x, allocation.y); + + menu_item_draw_generic (widget, cr); + + cairo_destroy (cr); + return TRUE; +} +#endif + +#endif /* ENABLE_INDICATOR */ + +GtkWidget * +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text) +{ + GtkWidget *item; + + item = gtk_menu_item_new_with_mnemonic (text); + gtk_widget_set_sensitive (item, FALSE); +#ifndef ENABLE_INDICATOR +#if GTK_CHECK_VERSION(2,90,7) + g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL); +#else + g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); +#endif +#endif /* ENABLE_INDICATOR */ + return item; +} + +static gboolean +applet_notify_server_has_actions (void) +{ + static gboolean has_actions = FALSE; + static gboolean initialized = FALSE; + GList *server_caps, *iter; + + if (initialized) + return has_actions; + initialized = TRUE; + + server_caps = notify_get_server_caps(); + for (iter = server_caps; iter; iter = g_list_next (iter)) { + if (!strcmp ((const char *) iter->data, NOTIFY_CAPS_ACTIONS_KEY)) { + has_actions = TRUE; + break; + } + } + g_list_foreach (server_caps, (GFunc) g_free, NULL); + g_list_free (server_caps); + + return has_actions; +} + +void +applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data) +{ + NotifyNotification *notify; + GError *error = NULL; + char *escaped; + + g_return_if_fail (applet != NULL); + g_return_if_fail (summary != NULL); + g_return_if_fail (message != NULL); + +#ifndef ENABLE_INDICATOR + if (!gtk_status_icon_is_embedded (applet->status_icon)) +#else + if (!gtk_status_icon_is_embedded (applet->status_icon) && + app_indicator_get_status (applet->app_indicator) == APP_INDICATOR_STATUS_PASSIVE) +#endif /* ENABLE_INDICATOR */ + return; + + /* if we're not registered, don't notify either */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + return; + + escaped = utils_escape_notify_message (message); + + if (applet->notification == NULL) { + notify = notify_notification_new (summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK +#if HAVE_LIBNOTIFY_07 + ); +#else + , NULL); +#endif + + applet->notification = notify; + } else { + notify = applet->notification; + notify_notification_update (notify, + summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK); + } + + g_free (escaped); + +#if HAVE_LIBNOTIFY_07 + notify_notification_set_hint (notify, "transient", g_variant_new_boolean (TRUE)); +#else + notify_notification_attach_to_status_icon (notify, applet->status_icon); +#endif + notify_notification_set_urgency (notify, urgency); + notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT); + + if (applet_notify_server_has_actions () && action1) { + notify_notification_clear_actions (notify); + notify_notification_add_action (notify, action1, action1_label, + action1_cb, action1_user_data, NULL); + } + + if (!notify_notification_show (notify, &error)) { + g_warning ("Failed to show notification: %s", + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + } +} + +static void +notify_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id) + return; + + if ( strcmp (id, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_VPN_NOTIFICATIONS)) + return; + + g_settings_set_boolean (applet->gsettings, id, TRUE); +} + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref) +{ + if (g_settings_get_boolean (applet->gsettings, pref)) + return; + + applet_do_notify (applet, NOTIFY_URGENCY_LOW, summary, message, icon, pref, + _("Don't show this message again"), + notify_dont_show_cb, + applet); +} + +static gboolean +animation_timeout (gpointer data) +{ + applet_schedule_update_icon (NM_APPLET (data)); + return TRUE; +} + +static void +start_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id == 0) { + applet->animation_step = 0; + applet->animation_id = g_timeout_add (100, animation_timeout, applet); + } +} + +static void +clear_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id) { + g_source_remove (applet->animation_id); + applet->animation_id = 0; + applet->animation_step = 0; + } +} + +static gboolean +applet_is_any_device_activating (NMApplet *applet) +{ + const GPtrArray *devices; + int i; + + /* Check for activating devices */ + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = NM_DEVICE (g_ptr_array_index (devices, i)); + NMDeviceState state; + + state = nm_device_get_state (candidate); + if (state > NM_DEVICE_STATE_DISCONNECTED && state < NM_DEVICE_STATE_ACTIVATED) + return TRUE; + } + return FALSE; +} + +static gboolean +applet_is_any_vpn_activating (NMApplet *applet) +{ + const GPtrArray *connections; + int i; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (connections, i)); + NMVPNConnectionState vpn_state; + + if (NM_IS_VPN_CONNECTION (candidate)) { + vpn_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + if ( vpn_state == NM_VPN_CONNECTION_STATE_PREPARE + || vpn_state == NM_VPN_CONNECTION_STATE_NEED_AUTH + || vpn_state == NM_VPN_CONNECTION_STATE_CONNECT + || vpn_state == NM_VPN_CONNECTION_STATE_IP_CONFIG_GET) { + return TRUE; + } + } + } + return FALSE; +} + +static char * +make_vpn_failure_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service stopped unexpectedly."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service returned invalid configuration."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the connection attempt timed out."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service did not start in time."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because there were no valid VPN secrets."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because of invalid VPN secrets."), + nm_setting_connection_get_id (s_con)); + + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' failed."), nm_setting_connection_get_id (s_con)); +} + +static char * +make_vpn_disconnection_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the VPN service stopped."), + nm_setting_connection_get_id (s_con)); + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected."), nm_setting_connection_get_id (s_con)); +} + +static void +vpn_connection_state_changed (NMVPNConnection *vpn, + NMVPNConnectionState state, + NMVPNConnectionStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const char *banner; + char *title = NULL, *msg; + gboolean device_activating, vpn_activating; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (state) { + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections might not have come through yet. + */ + vpn_activating = TRUE; + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + banner = nm_vpn_connection_get_banner (vpn); + if (banner && strlen (banner)) + msg = g_strdup_printf (_("VPN connection has been successfully established.\n\n%s\n"), banner); + else + msg = g_strdup (_("VPN connection has been successfully established.\n")); + + title = _("VPN Login Message"); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_FAILED: + title = _("VPN Connection Failed"); + msg = make_vpn_failure_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_DISCONNECTED: + if (reason != NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED) { + title = _("VPN Connection Failed"); + msg = make_vpn_disconnection_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + } + break; + default: + break; + } + + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +static const char * +get_connection_id (NMConnection *connection) +{ + NMSettingConnection *s_con; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + return nm_setting_connection_get_id (s_con); +} + +typedef struct { + NMApplet *applet; + char *vpn_name; +} VPNActivateInfo; + +static void +activate_vpn_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + VPNActivateInfo *info = (VPNActivateInfo *) user_data; + char *title, *msg, *name; + + if (error) { + clear_animation_timeout (info->applet); + + title = _("VPN Connection Failed"); + + /* dbus-glib GError messages _always_ have two NULLs, the D-Bus error + * name comes after the first NULL. Find it. + */ + name = error->message + strlen (error->message) + 1; + if (strstr (name, "ServiceStartFailed")) { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start.\n\n%s"), + info->vpn_name, error->message); + } else { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed to start.\n\n%s"), + info->vpn_name, error->message); + } + + applet_do_notify_with_pref (info->applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + + g_warning ("VPN Connection activation failed: (%s) %s", name, error->message); + } + + applet_schedule_update_icon (info->applet); + applet_schedule_update_menu (info->applet); + g_free (info->vpn_name); + g_free (info); +} + +static void nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data); + +static void +nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + VPNActivateInfo *info; + NMConnection *connection; + NMSettingConnection *s_con; + NMActiveConnection *active; + NMDevice *device = NULL; + + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) { + g_warning ("%s: no active connection or device.", __func__); + return; + } + + connection = NM_CONNECTION (g_object_get_data (G_OBJECT (item), "connection")); + if (!connection) { + g_warning ("%s: no connection associated with menu item!", __func__); + return; + } + + if (applet_get_active_for_connection (applet, connection)) { +#ifndef ENABLE_INDICATOR + /* Connection already active; do nothing */ +#else + nma_menu_disconnect_vpn_item_activate (item, applet); +#endif /* ENABLE_INDICATOR */ + return; + } + + s_con = nm_connection_get_setting_connection (connection); + info = g_malloc0 (sizeof (VPNActivateInfo)); + info->applet = applet; + info->vpn_name = g_strdup (nm_setting_connection_get_id (s_con)); + + /* Connection inactive, activate */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + nm_object_get_path (NM_OBJECT (active)), + activate_vpn_cb, + info); + start_animation_timeout (applet); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + + +/* + * nma_menu_configure_vpn_item_activate + * + * Signal function called when user clicks "Configure VPN..." + * + */ +static void +nma_menu_configure_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + const char *argv[] = { BINDIR "/nm-connection-editor", "--show", "--type", NM_SETTING_VPN_SETTING_NAME, NULL}; + + g_spawn_async (NULL, (gchar **) argv, NULL, 0, NULL, NULL, NULL, NULL); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static NMActiveConnection * +applet_get_first_active_vpn_connection (NMApplet *applet, + NMVPNConnectionState *out_state) +{ + const GPtrArray *active_list; + int i; + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate; + NMConnection *connection; + NMSettingConnection *s_con; + + candidate = g_ptr_array_index (active_list, i); + + connection = applet_get_connection_for_active (applet, candidate); + if (!connection) + continue; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + if (out_state) + *out_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + return candidate; + } + } + + return NULL; +} + +/* + * nma_menu_disconnect_vpn_item_activate + * + * Signal function called when user clicks "Disconnect VPN" + * + */ +static void +nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMActiveConnection *active_vpn = NULL; + NMVPNConnectionState state = NM_VPN_CONNECTION_STATE_UNKNOWN; + + active_vpn = applet_get_first_active_vpn_connection (applet, &state); + if (active_vpn) + nm_client_deactivate_connection (applet->nm_client, active_vpn); + else + g_warning ("%s: deactivate clicked but no active VPN connection could be found.", __func__); +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +/* + * nma_menu_add_separator_item + * + */ +static void +nma_menu_add_separator_item (GtkWidget *menu) +{ + GtkWidget *menu_item; + + menu_item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + + +/* + * nma_menu_add_text_item + * + * Add a non-clickable text item to a menu + * + */ +static void nma_menu_add_text_item (GtkWidget *menu, char *text) +{ + GtkWidget *menu_item; + + g_return_if_fail (text != NULL); + g_return_if_fail (menu != NULL); + + menu_item = gtk_menu_item_new_with_label (text); + gtk_widget_set_sensitive (menu_item, FALSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + +static gint +sort_devices (gconstpointer a, gconstpointer b) +{ + NMDevice *aa = NM_DEVICE (a); + NMDevice *bb = NM_DEVICE (b); + GType aa_type = G_OBJECT_TYPE (G_OBJECT (aa)); + GType bb_type = G_OBJECT_TYPE (G_OBJECT (bb)); + + if (aa_type == bb_type) { + const char *aa_desc = NULL; + const char *bb_desc = NULL; + + aa_desc = nma_utils_get_device_description (aa); + bb_desc = nma_utils_get_device_description (bb); + + return g_strcmp0 (aa_desc, bb_desc); + } + + /* Ethernet always first */ + if (aa_type == NM_TYPE_DEVICE_ETHERNET) + return -1; + if (bb_type == NM_TYPE_DEVICE_ETHERNET) + return 1; + + /* Modems next */ + if (aa_type == NM_TYPE_DEVICE_MODEM) + return -1; + if (bb_type == NM_TYPE_DEVICE_MODEM) + return 1; + + /* Bluetooth next */ + if (aa_type == NM_TYPE_DEVICE_BT) + return -1; + if (bb_type == NM_TYPE_DEVICE_BT) + return 1; + + /* WiMAX next */ + if (aa_type == NM_TYPE_DEVICE_WIMAX) + return -1; + if (bb_type == NM_TYPE_DEVICE_WIMAX) + return 1; + + /* WiFi last because it has many menu items */ + return 1; +} + +static gboolean +nm_g_ptr_array_contains (const GPtrArray *haystack, gpointer needle) +{ + int i; + + for (i = 0; haystack && (i < haystack->len); i++) { + if (g_ptr_array_index (haystack, i) == needle) + return TRUE; + } + return FALSE; +} + +NMConnection * +applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active) +{ + const GPtrArray *active_connections; + NMConnection *connection = NULL; + int i; + + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + if (out_active) + g_return_val_if_fail (*out_active == NULL, NULL); + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMRemoteConnection *tmp; + NMActiveConnection *active; + const char *connection_path; + const GPtrArray *devices; + + active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_connections, i)); + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + tmp = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (tmp) { + connection = NM_CONNECTION (tmp); + if (out_active) + *out_active = active; + break; + } + } + + return connection; +} + +gboolean +nma_menu_device_check_unusable (NMDevice *device) +{ + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + case NM_DEVICE_STATE_UNMANAGED: + return TRUE; + default: + break; + } + return FALSE; +} + + +struct AppletDeviceMenuInfo { + NMDevice *device; + NMApplet *applet; +}; + +static void +applet_device_info_destroy (struct AppletDeviceMenuInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + memset (info, 0, sizeof (struct AppletDeviceMenuInfo)); + g_free (info); +} + +static void +applet_device_disconnect_db (GtkMenuItem *item, gpointer user_data) +{ + struct AppletDeviceMenuInfo *info = user_data; + + applet_menu_item_disconnect_helper (info->device, + info->applet); +} + +GtkWidget * +nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg) +{ + GtkWidget *item = NULL; + gboolean managed = TRUE; + + if (!unavailable_msg) { + if (nm_device_get_firmware_missing (device)) + unavailable_msg = _("device not ready (firmware missing)"); + else + unavailable_msg = _("device not ready"); + } + + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_DISCONNECTED: + unavailable_msg = _("disconnected"); + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_UNMANAGED: + managed = FALSE; + break; + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + case NM_DEVICE_STATE_ACTIVATED: + { + struct AppletDeviceMenuInfo *info = g_new0 (struct AppletDeviceMenuInfo, 1); + info->device = g_object_ref (device); + info->applet = applet; + item = gtk_menu_item_new_with_label (_("Disconnect")); + g_signal_connect_data (item, "activate", + G_CALLBACK (applet_device_disconnect_db), + info, + (GClosureNotify) applet_device_info_destroy, 0); + if (is_permission_yes (applet, NM_CLIENT_PERMISSION_NETWORK_CONTROL)) + gtk_widget_set_sensitive (item, TRUE); + else + gtk_widget_set_sensitive (item, FALSE); + break; + } + default: + managed = nm_device_get_managed (device); + break; + } + + if (!managed) { + item = gtk_menu_item_new_with_label (_("device not managed")); + gtk_widget_set_sensitive (item, FALSE); + } + + return item; +} + +static guint32 +nma_menu_add_devices (GtkWidget *menu, NMApplet *applet) +{ + const GPtrArray *temp = NULL; + GSList *devices = NULL, *iter = NULL; + gint n_wifi_devices = 0; + gint n_usable_wifi_devices = 0; + gint n_ethernet_devices = 0; + gint n_mb_devices = 0; + gint n_bt_devices = 0; + int i; + + temp = nm_client_get_devices (applet->nm_client); + for (i = 0; temp && (i < temp->len); i++) + devices = g_slist_insert_sorted (devices, g_ptr_array_index (temp, i), sort_devices); + + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) { + n_wifi_devices++; + if ( nm_client_wireless_get_enabled (applet->nm_client) + && (nm_device_get_state (device) >= NM_DEVICE_STATE_DISCONNECTED)) + n_usable_wifi_devices++; + } else if (NM_IS_DEVICE_ETHERNET (device)) + n_ethernet_devices++; + else if (NM_IS_DEVICE_MODEM (device)) + n_mb_devices++; + else if (NM_IS_DEVICE_BT (device)) + n_bt_devices++; + } + + if (!n_ethernet_devices && !n_wifi_devices && !n_mb_devices && !n_bt_devices) { + nma_menu_add_text_item (menu, _("No network devices available")); + goto out; + } + + /* Add all devices in our device list to the menu */ + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + gint n_devices = 0; + NMADeviceClass *dclass; + NMConnection *active; + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) + n_devices = n_wifi_devices; + else if (NM_IS_DEVICE_ETHERNET (device)) + n_devices = n_ethernet_devices; + else if (NM_IS_DEVICE_MODEM (device)) + n_devices = n_mb_devices; + + active = applet_find_active_connection_for_device (device, applet, NULL); + + dclass = get_device_class (device, applet); + if (dclass) + dclass->add_menu_item (device, n_devices, active, menu, applet); + + nma_menu_add_separator_item (menu); + } + + out: + g_slist_free (devices); + + /* Return # of usable wifi devices here for correct enable/disable state + * of things like Enable Wi-Fi, "Connect to other..." and such. + */ + return n_usable_wifi_devices; +} + +static int +sort_vpn_connections (gconstpointer a, gconstpointer b) +{ + return strcmp (get_connection_id (NM_CONNECTION (a)), get_connection_id (NM_CONNECTION (b))); +} + +static GSList * +get_vpn_connections (NMApplet *applet) +{ + GSList *all_connections; + GSList *iter; + GSList *list = NULL; + + all_connections = applet_get_all_connections (applet); + + for (iter = all_connections; iter; iter = iter->next) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) + /* Not a VPN connection */ + continue; + + if (!nm_connection_get_setting_vpn (connection)) { + g_warning ("%s: VPN connection '%s' didn't have required vpn setting.", __func__, + nm_setting_connection_get_id (s_con)); + continue; + } + + list = g_slist_prepend (list, connection); + } + + g_slist_free (all_connections); + + return g_slist_sort (list, sort_vpn_connections); +} + +static void +nma_menu_add_vpn_submenu (GtkWidget *menu, NMApplet *applet) +{ + GtkMenu *vpn_menu; + GtkMenuItem *item; + GSList *list, *iter; + int num_vpn_active = 0; + + vpn_menu = GTK_MENU (gtk_menu_new ()); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_VPN Connections"))); + gtk_menu_item_set_submenu (item, GTK_WIDGET (vpn_menu)); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + + list = get_vpn_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (applet_get_active_for_connection (applet, connection)) + num_vpn_active++; + } + + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMActiveConnection *active; + const char *name; +#ifndef ENABLE_INDICATOR + GtkWidget *image; +#endif /* ENABLE_INDICATOR */ + NMState state; + + name = get_connection_id (connection); + +#ifndef ENABLE_INDICATOR + item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); + gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); +#else + item = GTK_MENU_ITEM (gtk_check_menu_item_new_with_label (name)); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(item), FALSE); +#endif /* ENABLE_INDICATOR */ + + /* If no VPN connections are active, draw all menu items enabled. If + * >= 1 VPN connections are active, only the active VPN menu item is + * drawn enabled. + */ + active = applet_get_active_for_connection (applet, connection); + + state = nm_client_get_state (applet->nm_client); + if ( state != NM_STATE_CONNECTED_LOCAL + && state != NM_STATE_CONNECTED_SITE + && state != NM_STATE_CONNECTED_GLOBAL) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + else if ((num_vpn_active == 0) || active) + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + else + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + if (active) { +#ifndef ENABLE_INDICATOR + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); +#else + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(item), TRUE); +#endif /* ENABLE_INDICATOR */ + } + + g_object_set_data_full (G_OBJECT (item), "connection", + g_object_ref (connection), + (GDestroyNotify) g_object_unref); + + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_vpn_item_clicked), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } + + /* Draw a seperator, but only if we have VPN connections above it */ + if (list) + nma_menu_add_separator_item (GTK_WIDGET (vpn_menu)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Configure VPN..."))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_configure_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + if ( is_permission_yes (applet, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM) + || is_permission_yes (applet, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN)) { + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + } else { + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + } + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Disconnect VPN"))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_disconnect_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + if (is_permission_yes (applet, NM_CLIENT_PERMISSION_NETWORK_CONTROL)) { + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + if (num_vpn_active == 0) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + } else { + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + } + + g_slist_free (list); +} + + +static void +nma_set_wifi_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wireless_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wwan_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wwan_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wimax_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wimax_set_enabled (applet->nm_client, state); +} + +static void +nma_set_networking_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_networking_set_enabled (applet->nm_client, state); +} + + +#ifndef ENABLE_INDICATOR +static void +nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_CONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_VPN_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + !state); +} +#endif /* ENABLE_INDICATOR */ + +/* + * nma_menu_show_cb + * + * Pop up the wifi networks menu + * + */ +static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet) +{ + guint32 n_wifi; + + g_return_if_fail (menu != NULL); + g_return_if_fail (applet != NULL); + + gtk_status_icon_set_tooltip_text (applet->status_icon, NULL); + + if (!nm_client_get_manager_running (applet->nm_client)) { + nma_menu_add_text_item (menu, _("NetworkManager is not running...")); + return; + } + + if (nm_client_get_state (applet->nm_client) == NM_STATE_ASLEEP) { + nma_menu_add_text_item (menu, _("Networking disabled")); + return; + } + + n_wifi = nma_menu_add_devices (menu, applet); + + if (n_wifi > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { + /* Add the "Hidden Wi-Fi network..." entry */ + nma_menu_add_hidden_network_item (menu, applet); + nma_menu_add_create_network_item (menu, applet); + nma_menu_add_separator_item (menu); + } + + nma_menu_add_vpn_submenu (menu, applet); + gtk_widget_show_all (menu); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static gboolean +destroy_old_menu (gpointer user_data) +{ + g_object_unref (user_data); + return FALSE; +} + +static void +nma_menu_deactivate_cb (GtkWidget *widget, NMApplet *applet) +{ + /* Must punt the destroy to a low-priority idle to ensure that + * the menu items don't get destroyed before any 'activate' signal + * fires for an item. + */ + g_signal_handlers_disconnect_by_func (applet->menu, G_CALLBACK (nma_menu_deactivate_cb), applet); + g_idle_add_full (G_PRIORITY_LOW, destroy_old_menu, applet->menu, NULL); + applet->menu = NULL; + + /* Re-set the tooltip */ + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +} + +static gboolean +is_permission_yes (NMApplet *applet, NMClientPermission perm) +{ + if ( applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_YES + || applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_AUTH) + return TRUE; + return FALSE; +} + +/* + * nma_context_menu_update + * + */ +static void +nma_context_menu_update (NMApplet *applet) +{ + NMState state; + gboolean net_enabled = TRUE; + gboolean have_wifi = FALSE; + gboolean have_wwan = FALSE; + gboolean have_wimax = FALSE; + gboolean wifi_hw_enabled; + gboolean wwan_hw_enabled; + gboolean wimax_hw_enabled; +#ifndef ENABLE_INDICATOR + gboolean notifications_enabled = TRUE; +#endif /* ENABLE_INDICATOR */ + gboolean sensitive = FALSE; + + state = nm_client_get_state (applet->nm_client); + sensitive = ( state == NM_STATE_CONNECTED_LOCAL + || state == NM_STATE_CONNECTED_SITE + || state == NM_STATE_CONNECTED_GLOBAL); + gtk_widget_set_sensitive (applet->info_menu_item, sensitive); + + /* Update checkboxes, and block 'toggled' signal when updating so that the + * callback doesn't get triggered. + */ + + /* Enabled Networking */ + g_signal_handler_block (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + net_enabled = nm_client_networking_get_enabled (applet->nm_client); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->networking_enabled_item), + net_enabled && (state != NM_STATE_ASLEEP)); + g_signal_handler_unblock (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + gtk_widget_set_sensitive (applet->networking_enabled_item, + is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK)); + + /* Enabled Wi-Fi */ + g_signal_handler_block (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wifi_enabled_item), + nm_client_wireless_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wifi_enabled_item), + wifi_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI)); + + /* Enabled Mobile Broadband */ + g_signal_handler_block (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wwan_enabled_item), + nm_client_wwan_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + + wwan_hw_enabled = nm_client_wwan_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wwan_enabled_item), + wwan_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN)); + + /* Enable WiMAX */ + g_signal_handler_block (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wimax_enabled_item), + nm_client_wimax_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + + wimax_hw_enabled = nm_client_wimax_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), + wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); + +#ifndef ENABLE_INDICATOR + /* Enabled notifications */ + g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + if ( g_settings_get_boolean (applet->gsettings, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_VPN_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + notifications_enabled = FALSE; + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); + g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); +#endif /* ENABLE_INDICATOR */ + + /* Don't show wifi-specific stuff if wifi is off */ + if (state != NM_STATE_ASLEEP) { + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = g_ptr_array_index (devices, i); + + if (NM_IS_DEVICE_WIFI (candidate)) + have_wifi = TRUE; + else if (NM_IS_DEVICE_MODEM (candidate)) + have_wwan = TRUE; + else if (NM_IS_DEVICE_WIMAX (candidate)) + have_wimax = TRUE; + } + } + + if (have_wifi) + gtk_widget_show_all (applet->wifi_enabled_item); + else + gtk_widget_hide (applet->wifi_enabled_item); + + if (have_wwan) + gtk_widget_show_all (applet->wwan_enabled_item); + else + gtk_widget_hide (applet->wwan_enabled_item); + + if (have_wimax) + gtk_widget_show_all (applet->wimax_enabled_item); + else + gtk_widget_hide (applet->wimax_enabled_item); + + if (is_permission_yes (applet, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM) + || is_permission_yes (applet, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN) + || is_permission_yes (applet, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_HOSTNAME)) { + + /* User has permissions to modify some of the settings. */ + gtk_widget_set_sensitive (applet->connections_menu_item, TRUE); + + } else { + /* the user is not allowed to edit any of the settings, + * so set the "Edit Connections..." menu item insensitive. + */ + gtk_widget_set_sensitive (applet->connections_menu_item, FALSE); + } +} + +static void +ce_child_setup (gpointer user_data G_GNUC_UNUSED) +{ + /* We are in the child process at this point */ + pid_t pid = getpid (); + setpgid (pid, pid); +} + +static void +nma_edit_connections_cb (GtkMenuItem *mi, NMApplet *applet) +{ + char *argv[2]; + GError *error = NULL; + gboolean success; + + argv[0] = BINDIR "/nm-connection-editor"; + argv[1] = NULL; + + success = g_spawn_async ("/", argv, NULL, 0, &ce_child_setup, NULL, NULL, &error); + if (!success) { + g_warning ("Error launching connection editor: %s", error->message); + g_error_free (error); + } +} + +static void +applet_connection_info_cb (NMApplet *applet) +{ + applet_info_dialog_show (applet); +} + +/* + * nma_context_menu_create + * + * Generate the contextual popup menu. + * + */ +static GtkWidget *nma_context_menu_create (NMApplet *applet, GtkMenuShell *menu) +{ +#ifndef ENABLE_INDICATOR + GtkMenuShell *menu; + GtkWidget *menu_item; +#endif + GtkWidget *image; + guint id; + + g_return_val_if_fail (applet != NULL, NULL); + +#ifndef ENABLE_INDICATOR + menu = GTK_MENU_SHELL (gtk_menu_new ()); +#endif + + /* 'Enable Networking' item */ + applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); + id = g_signal_connect (applet->networking_enabled_item, + "toggled", + G_CALLBACK (nma_set_networking_enabled_cb), + applet); + applet->networking_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->networking_enabled_item); + + /* 'Enable Wi-Fi' item */ + applet->wifi_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Wi-Fi")); + id = g_signal_connect (applet->wifi_enabled_item, + "toggled", + G_CALLBACK (nma_set_wifi_enabled_cb), + applet); + applet->wifi_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wifi_enabled_item); + + /* 'Enable Mobile Broadband' item */ + applet->wwan_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Mobile Broadband")); + id = g_signal_connect (applet->wwan_enabled_item, + "toggled", + G_CALLBACK (nma_set_wwan_enabled_cb), + applet); + applet->wwan_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wwan_enabled_item); + + /* 'Enable WiMAX Mobile Broadband' item */ + applet->wimax_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable WiMA_X Mobile Broadband")); + id = g_signal_connect (applet->wimax_enabled_item, + "toggled", + G_CALLBACK (nma_set_wimax_enabled_cb), + applet); + applet->wimax_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wimax_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + +#ifndef ENABLE_INDICATOR + /* Toggle notifications item */ + applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); + id = g_signal_connect (applet->notifications_enabled_item, + "toggled", + G_CALLBACK (nma_set_notifications_enabled_cb), + applet); + applet->notifications_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->notifications_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); +#endif /* ENABLE_INDICATOR */ + + /* 'Connection Information' item */ + applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); + g_signal_connect_swapped (applet->info_menu_item, + "activate", + G_CALLBACK (applet_connection_info_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->info_menu_item), image); + gtk_menu_shell_append (menu, applet->info_menu_item); + + /* 'Edit Connections...' item */ + applet->connections_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Edit Connections...")); + g_signal_connect (applet->connections_menu_item, + "activate", + G_CALLBACK (nma_edit_connections_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); + gtk_menu_shell_append (menu, applet->connections_menu_item); + +#ifndef ENABLE_INDICATOR + /* Separator */ + nma_menu_add_separator_item (GTK_WIDGET (menu)); + +#if 0 /* FIXME: Implement the help callback, nma_help_cb()! */ + /* Help item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Help")); + g_signal_connect (menu_item, "activate", G_CALLBACK (nma_help_cb), applet); + image = gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); +#endif + + /* About item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_About")); + g_signal_connect_swapped (menu_item, "activate", G_CALLBACK (applet_about_dialog_show), applet); + image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); +#endif /* ENABLE_INDICATOR */ + + gtk_widget_show_all (GTK_WIDGET (menu)); + + return GTK_WIDGET (menu); +} + +#ifdef ENABLE_INDICATOR +static void +indicator_update_menu (NMApplet *applet) +{ + if (!applet->in_fallback) { + if (applet->menu) + g_object_unref (applet->menu); + + applet->menu = gtk_menu_new (); + g_object_ref_sink (G_OBJECT (applet->menu)); + nma_menu_show_cb (applet->menu, applet); + nma_menu_add_separator_item (applet->menu); + applet->menu = nma_context_menu_create (applet, GTK_MENU_SHELL(applet->menu)); + + app_indicator_set_menu (applet->app_indicator, GTK_MENU (applet->menu)); + + nma_context_menu_update (applet); + } + + applet->update_menu_id = 0; +} + +static gboolean +applet_update_indicator_menu (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + indicator_update_menu (applet); + + return FALSE; +} + +void +applet_schedule_update_menu (NMApplet *applet) +{ + if (!applet->update_menu_id) + applet->update_menu_id = g_idle_add (applet_update_indicator_menu, applet); +} + +static void +new_connection_cb (NMRemoteSettings *settings, NMRemoteConnection *connection, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + //if (nm_connection_is_type (NM_CONNECTION (connection), NM_SETTING_VPN_SETTING_NAME)) + applet_schedule_update_menu (applet); +} +#endif /* ENABLE_INDICATOR */ + + +/*****************************************************************************/ + +static void +foo_set_icon (NMApplet *applet, guint32 layer, GdkPixbuf *pixbuf, char *icon_name, char *new_tip) +{ + GString *tip = NULL; + int i; + + switch (layer) { + case ICON_LAYER_LINK: + if (new_tip == NULL) + new_tip = g_strdup (_("No network connection")); + tip = g_string_new (new_tip); + break; + case ICON_LAYER_VPN: + tip = g_string_new (applet->tip); + + if (new_tip) + g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", new_tip); + break; + default: + tip = g_string_new (""); + if (layer > ICON_LAYER_MAX) { + g_string_free (tip, TRUE); + g_warning ("Tried to icon to invalid layer %d", layer); + return; + } + break; + } + + if (tip->len) { + g_free (applet->tip); + applet->tip = tip->str; + } + + g_free (new_tip); + g_string_free (tip, FALSE); + +#ifdef ENABLE_INDICATOR + if (icon_name == NULL && layer == ICON_LAYER_LINK) { + icon_name = g_strdup ("nm-no-connection"); + } + + if (icon_name != NULL && + g_strcmp0 (app_indicator_get_icon (applet->app_indicator), icon_name) != 0) { + app_indicator_set_icon_full (applet->app_indicator, icon_name, applet->tip); + } +#endif /* ENABLE_INDICATOR */ + + /* Ignore setting of the same icon as is already displayed */ + if (applet->icon_layers[layer] == pixbuf) + return; + + if (applet->icon_layers[layer]) { + g_object_unref (applet->icon_layers[layer]); + applet->icon_layers[layer] = NULL; + } + + if (pixbuf) + applet->icon_layers[layer] = g_object_ref (pixbuf); + + if (!applet->icon_layers[0]) { + nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + pixbuf = g_object_ref (applet->no_connection_icon); + } else { + pixbuf = gdk_pixbuf_copy (applet->icon_layers[0]); + + for (i = ICON_LAYER_LINK + 1; i <= ICON_LAYER_MAX; i++) { + GdkPixbuf *top = applet->icon_layers[i]; + + if (!top) + continue; + + gdk_pixbuf_composite (top, pixbuf, 0, 0, gdk_pixbuf_get_width (top), + gdk_pixbuf_get_height (top), + 0, 0, 1.0, 1.0, + GDK_INTERP_NEAREST, 255); + } + } + + gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); + g_object_unref (pixbuf); +#if GTK_CHECK_VERSION(2, 15, 0) + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +#else + gtk_status_icon_set_tooltip (applet->status_icon, applet->tip); +#endif + +} + +NMRemoteConnection * +applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) +{ + const GPtrArray *active_connections; + int i; + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMActiveConnection *active; + NMRemoteConnection *connection; + const char *connection_path; + const GPtrArray *devices; + + active = g_ptr_array_index (active_connections, i); + if (!active) + continue; + + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + connection = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (connection) + return connection; + } + return NULL; +} + +static gboolean +select_merged_notification_text (OfflineNotificationContextInfo *info) +{ + info->urgency = NOTIFY_URGENCY_LOW; + /* only do something if this is about full offline state */ + if(info->state != NM_STATE_UNKNOWN || info->device_state != NM_DEVICE_STATE_UNKNOWN) { + info->urgency = NOTIFY_URGENCY_NORMAL; + if (!info->title) + info->title = g_strdup (_("Network")); + if (info->state == NM_STATE_DISCONNECTED || info->state == NM_STATE_ASLEEP) { + info->text = _("Disconnected - you are now offline"); + } else + info->text = _("Disconnected"); + + switch (info->device_type) { + case NM_DEVICE_TYPE_ETHERNET: + info->icon = "notification-network-ethernet-disconnected"; + break; + case NM_DEVICE_TYPE_WIFI: + info->icon = "notification-network-wireless-disconnected"; + break; + case NM_DEVICE_TYPE_MODEM: + info->icon = "notification-gsm-disconnected"; + break; + default: + info->icon = "notification-network-disconnected"; + break; + } + g_debug("going for offline with icon: %s", info->icon); + return TRUE; + } + return FALSE; +} + +static gboolean +foo_online_offline_deferred_notify (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if(select_merged_notification_text (info)) + if (!g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS)) + applet_do_notify (applet, info->urgency, info->title, + info->text, info->icon, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + _("Don't show this message again"), + notify_dont_show_cb, + applet); + else + g_debug("no notification because merged found that we have nothing to say (e.g. not offline)"); + if (info->title) + g_free (info->title); + info->title = NULL; + g_free (applet->notification_queue_data); + applet->notification_queue_data = NULL; + applet->deferred_id = 0; + return FALSE; +} + +static void +applet_common_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + gboolean device_activating = FALSE, vpn_activating = FALSE; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (new_state) { + case NM_DEVICE_STATE_FAILED: + case NM_DEVICE_STATE_DISCONNECTED: + case NM_DEVICE_STATE_UNMANAGED: + case NM_DEVICE_STATE_UNAVAILABLE: + { + if (old_state != NM_DEVICE_STATE_FAILED && + old_state != NM_DEVICE_STATE_UNKNOWN && + old_state != NM_DEVICE_STATE_DISCONNECTED && + old_state != NM_DEVICE_STATE_UNMANAGED && + old_state != NM_DEVICE_STATE_UNAVAILABLE) { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->device_state = new_state; + info->device_state_reason = reason; + if (info->title) { + g_free(info->title); + info->title = NULL; + } + if (NM_IS_DEVICE_WIFI (device)) { + info->device_type = NM_DEVICE_TYPE_WIFI; + info->title = g_strdup(g_object_get_data (G_OBJECT(device), "canonical-last-essid")); + if (!info->title) + info->title = g_strdup (_("Wireless network")); + } else if (NM_IS_DEVICE_ETHERNET (device)) { + info->device_type = NM_DEVICE_TYPE_ETHERNET; + info->title = g_strdup(_("Wired network")); + } else if (NM_IS_DEVICE_MODEM (device)) { + info->device_type = NM_DEVICE_TYPE_MODEM; + info->title = g_strdup (_("Modem network")); + } else { + info->device_type = NM_DEVICE_TYPE_UNKNOWN; + info->title = g_strdup (_("Network")); + } + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + clear_animation_timeout (applet); + } else { + g_debug ("old state indicates that this was not a disconnect %d", old_state); + } + break; + } + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections or devices might not have come through yet. + */ + device_activating = TRUE; + break; + case NM_DEVICE_STATE_ACTIVATED: + default: + break; + } + + /* If there's an activating device but we're not animating, start animation. + * If we're animating, but there's no activating device or VPN, stop animating. + */ + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); +} + +static void +foo_device_state_changed_cb (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + g_assert (dclass); + + dclass->device_state_changed (device, new_state, old_state, reason, applet); + applet_common_device_state_changed (device, new_state, old_state, reason, applet); + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +static void +foo_device_added_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + if (!dclass) + return; + + if (dclass->device_added) + dclass->device_added (device, applet); + + g_signal_connect (device, "state-changed", + G_CALLBACK (foo_device_state_changed_cb), + user_data); + + foo_device_state_changed_cb (device, + nm_device_get_state (device), + NM_DEVICE_STATE_UNKNOWN, + NM_DEVICE_STATE_REASON_NONE, + applet); +} + +static void +foo_client_state_changed_cb (NMClient *client, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + g_debug("foo_client_state_changed_cb"); + switch (nm_client_get_state (client)) { + case NM_STATE_DISCONNECTED: + case NM_STATE_ASLEEP: + { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->state = nm_client_get_state (client); + select_merged_notification_text (info); + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + /* Fall through */ + } + default: + break; + } + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +#ifdef ENABLE_INDICATOR +static void +foo_device_removed_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} +#endif + +static void +foo_manager_running_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (nm_client_get_manager_running (client)) { + g_message ("NM appeared"); + } else { + g_message ("NM disappeared"); + clear_animation_timeout (applet); + } + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +#define VPN_STATE_ID_TAG "vpn-state-id" + +static void +foo_active_connections_changed_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const GPtrArray *active_list; + int i; + + /* Track the state of new VPN connections */ + active_list = nm_client_get_active_connections (client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + guint id; + + if ( !NM_IS_VPN_CONNECTION (candidate) + || g_object_get_data (G_OBJECT (candidate), VPN_STATE_ID_TAG)) + continue; + + id = g_signal_connect (G_OBJECT (candidate), "vpn-state-changed", + G_CALLBACK (vpn_connection_state_changed), applet); + g_object_set_data (G_OBJECT (candidate), VPN_STATE_ID_TAG, GUINT_TO_POINTER (id)); + } + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +static void +foo_manager_permission_changed (NMClient *client, + NMClientPermission permission, + NMClientPermissionResult result, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (permission <= NM_CLIENT_PERMISSION_LAST) + applet->permissions[permission] = result; +} + +static gboolean +foo_set_initial_state (gpointer data) +{ + NMApplet *applet = NM_APPLET (data); + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) + foo_device_added_cb (applet->nm_client, NM_DEVICE (g_ptr_array_index (devices, i)), applet); + + foo_active_connections_changed_cb (applet->nm_client, NULL, applet); + + applet_schedule_update_icon (applet); + + return FALSE; +} + +static gboolean setup_widgets (NMApplet *applet); +static void nma_icons_init (NMApplet *applet); + +static void +foo_client_setup (NMApplet *applet) +{ + NMClientPermission perm; + + applet->nm_client = nm_client_new (); + if (!applet->nm_client) + return; + + g_signal_connect (applet->nm_client, "notify::state", + G_CALLBACK (foo_client_state_changed_cb), + applet); + g_signal_connect (applet->nm_client, "notify::active-connections", + G_CALLBACK (foo_active_connections_changed_cb), + applet); + g_signal_connect (applet->nm_client, "device-added", + G_CALLBACK (foo_device_added_cb), + applet); +#ifdef ENABLE_INDICATOR + g_signal_connect (applet->nm_client, "device-removed", + G_CALLBACK (foo_device_removed_cb), + applet); +#endif /* ENABLE_INDICATOR */ + g_signal_connect (applet->nm_client, "notify::manager-running", + G_CALLBACK (foo_manager_running_cb), + applet); + + g_signal_connect (applet->nm_client, "permission-changed", + G_CALLBACK (foo_manager_permission_changed), + applet); + + /* Initialize permissions - the initial 'permission-changed' signal is emitted from NMClient constructor, and thus not caught */ + for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { + applet->permissions[perm] = nm_client_get_permission_result (applet->nm_client, perm); + } + + if (nm_client_get_manager_running (applet->nm_client)) + g_idle_add (foo_set_initial_state, applet); + + applet_schedule_update_icon (applet); +} + +static void +applet_common_get_device_icon (NMDeviceState state, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + NMApplet *applet) +{ + int stage = -1; + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + stage = 0; + break; + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + stage = 1; + break; + case NM_DEVICE_STATE_IP_CONFIG: + stage = 2; + break; + default: + break; + } + + if (stage >= 0) { + /* Don't overwrite pixbufs or names given by specific device classes */ + if (out_pixbuf && !*out_pixbuf) { + int i, j; + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { + char *name; + + name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); + nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); + g_free (name); + } + } + *out_pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; + if (out_pixbuf && *out_pixbuf) + g_object_ref (*out_pixbuf); + } + if (out_indicator_icon && !*out_indicator_icon) { + *out_indicator_icon = g_strdup_printf ("nm-stage%02d-connecting%02d", + stage + 1, + applet->animation_step + 1); + } + + applet->animation_step++; + if (applet->animation_step >= NUM_CONNECTING_FRAMES) + applet->animation_step = 0; + } +} + +static char * +get_tip_for_device_state (NMDevice *device, + NMDeviceState state, + NMConnection *connection) +{ + NMSettingConnection *s_con; + char *tip = NULL; + const char *id = NULL; + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + tip = g_strdup_printf (_("Preparing network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + tip = g_strdup_printf (_("Network connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static void +applet_get_device_icon_for_state (NMApplet *applet, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **out_tip) +{ + NMActiveConnection *active; + NMDevice *device = NULL; + NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; + NMADeviceClass *dclass; + + // FIXME: handle multiple device states here + + /* First show the best activating device's state */ + active = applet_get_best_activating_connection (applet, &device); + if (!active || !device) { + /* If there aren't any activating devices, then show the state of + * the default active connection instead. + */ + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) + goto out; + } + + state = nm_device_get_state (device); + + dclass = get_device_class (device, applet); + if (dclass) { + NMConnection *connection; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + /* device class returns a referenced pixbuf */ + dclass->get_icon (device, state, connection, out_pixbuf, out_indicator_icon, out_tip, applet); + if (out_tip && !*out_tip) + *out_tip = get_tip_for_device_state (device, state, connection); + } + +out: + applet_common_get_device_icon (state, out_pixbuf, out_indicator_icon, applet); +} + +static char * +get_tip_for_vpn (NMActiveConnection *active, NMVPNConnectionState state, NMApplet *applet) +{ + char *tip = NULL; + const char *path, *id = NULL; + GSList *iter, *list; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + if (!strcmp (nm_connection_get_path (candidate), path)) { + s_con = nm_connection_get_setting_connection (candidate); + id = nm_setting_connection_get_id (s_con); + break; + } + } + g_slist_free (list); + + if (!id) + return NULL; + + switch (state) { + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_PREPARE: + tip = g_strdup_printf (_("Starting VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + tip = g_strdup_printf (_("Requesting a VPN address for '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + tip = g_strdup_printf (_("VPN connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static gboolean +applet_update_icon (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GdkPixbuf *pixbuf = NULL; + NMState state; + char *dev_tip = NULL, *vpn_tip = NULL, *icon_name = NULL; + NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; + gboolean nm_running; + NMActiveConnection *active_vpn = NULL; + + applet->update_icon_id = 0; + + nm_running = nm_client_get_manager_running (applet->nm_client); + + /* Handle device state first */ + + state = nm_client_get_state (applet->nm_client); + if (!nm_running) + state = NM_STATE_UNKNOWN; + + +#ifdef ENABLE_INDICATOR + if (applet->in_fallback) + gtk_status_icon_set_visible (applet->status_icon, applet->visible); + else + gtk_status_icon_set_visible (applet->status_icon, FALSE); + + if (nm_running && applet->visible) + app_indicator_set_status (applet->app_indicator, APP_INDICATOR_STATUS_ACTIVE); + else + app_indicator_set_status (applet->app_indicator, APP_INDICATOR_STATUS_PASSIVE); +#else + gtk_status_icon_set_visible (applet->status_icon, applet->visible); +#endif + + switch (state) { + case NM_STATE_UNKNOWN: + case NM_STATE_ASLEEP: + icon_name = g_strdup ("nm-no-connection"); + pixbuf = nma_icon_check_and_load (icon_name, &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("Networking disabled")); + break; + case NM_STATE_DISCONNECTED: + icon_name = g_strdup ("nm-no-connection"); + pixbuf = nma_icon_check_and_load (icon_name, &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("No network connection")); + break; + default: + applet_get_device_icon_for_state (applet, &pixbuf, &icon_name, &dev_tip); + break; + } + + foo_set_icon (applet, ICON_LAYER_LINK, pixbuf, icon_name, dev_tip); + if (pixbuf) + g_object_unref (pixbuf); + if (icon_name) + g_free (icon_name); + + /* VPN state next */ + pixbuf = NULL; + icon_name = NULL; + active_vpn = applet_get_first_active_vpn_connection (applet, &vpn_state); + if (active_vpn) { + int i; + + switch (vpn_state) { + case NM_VPN_CONNECTION_STATE_ACTIVATED: +#ifndef ENABLE_INDICATOR + icon_name = g_strdup_printf ("nm-vpn-active-lock"); +#else + icon_name = g_strdup_printf ("%s-secure", app_indicator_get_icon (applet->app_indicator)); +#endif /* ENABLE_INDICATOR */ + pixbuf = nma_icon_check_and_load (icon_name, &applet->vpn_lock_icon, applet); + break; + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) { + char *name; + + name = g_strdup_printf ("nm-vpn-connecting%02d", i+1); + nma_icon_check_and_load (name, &applet->vpn_connecting_icons[i], applet); + g_free (name); + } + + pixbuf = applet->vpn_connecting_icons[applet->animation_step]; +#ifdef ENABLE_INDICATOR + icon_name = g_strdup_printf ("nm-vpn-connecting%02d", applet->animation_step+1); +#endif + applet->animation_step++; + if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) + applet->animation_step = 0; + break; + default: + break; + } + + vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); + } + foo_set_icon (applet, ICON_LAYER_VPN, pixbuf, icon_name, vpn_tip); + if (icon_name) + g_free (icon_name); + + return FALSE; +} + +void +applet_schedule_update_icon (NMApplet *applet) +{ + if (!applet->update_icon_id) + applet->update_icon_id = g_idle_add (applet_update_icon, applet); +} + +/*****************************************************************************/ + +static SecretsRequest * +applet_secrets_request_new (size_t totsize, + NMConnection *connection, + gpointer request_id, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + NMApplet *applet) +{ + SecretsRequest *req; + + g_return_val_if_fail (totsize >= sizeof (SecretsRequest), NULL); + g_return_val_if_fail (connection != NULL, NULL); + + req = g_malloc0 (totsize); + req->totsize = totsize; + req->connection = g_object_ref (connection); + req->reqid = request_id; + req->setting_name = g_strdup (setting_name); + req->hints = g_strdupv ((char **) hints); + req->flags = flags; + req->callback = callback; + req->callback_data = callback_data; + req->applet = applet; + return req; +} + +void +applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func) +{ + req->free_func = free_func; +} + +void +applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error) +{ + req->callback (req->applet->agent, error ? NULL : settings, error, req->callback_data); +} + +void +applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error) +{ + NMSetting *setting; + GHashTable *settings = NULL, *secrets; + + if (setting_name && !error) { + setting = nm_connection_get_setting_by_name (req->connection, setting_name); + if (setting) { + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, g_strdup (setting_name), secrets); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, setting_name); + } + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled setting '%s'", + __FILE__, __LINE__, __func__, setting_name); + } + } + + req->callback (req->applet->agent, settings, error, req->callback_data); +} + +void +applet_secrets_request_free (SecretsRequest *req) +{ + g_return_if_fail (req != NULL); + + if (req->free_func) + req->free_func (req); + + req->applet->secrets_reqs = g_slist_remove (req->applet->secrets_reqs, req); + + g_object_unref (req->connection); + g_free (req->setting_name); + g_strfreev (req->hints); + memset (req, 0, req->totsize); + g_free (req); +} + +static void +get_existing_secrets_cb (NMSecretAgent *agent, + NMConnection *connection, + GHashTable *secrets, + GError *secrets_error, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMADeviceClass *dclass; + GError *error = NULL; + + /* Merge existing secrets into connection; ignore errors */ + nm_connection_update_secrets (connection, req->setting_name, secrets, NULL); + + dclass = get_device_class_from_connection (connection, req->applet); + g_assert (dclass); + + /* Let the device class handle secrets */ + if (!dclass->get_secrets (req, &error)) { + g_warning ("%s:%d - %s", __func__, __LINE__, error ? error->message : "(unknown)"); + applet_secrets_request_complete (req, NULL, error); + applet_secrets_request_free (req); + g_error_free (error); + } + /* Otherwise success; wait for the secrets callback */ +} + +static void +applet_agent_get_secrets_cb (AppletAgent *agent, + gpointer request_id, + NMConnection *connection, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMSettingConnection *s_con; + NMADeviceClass *dclass; + GError *error = NULL; + SecretsRequest *req = NULL; + + s_con = nm_connection_get_setting_connection (connection); + g_return_if_fail (s_con != NULL); + + /* VPN secrets get handled a bit differently */ + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + req = applet_secrets_request_new (applet_vpn_request_get_secrets_size (), + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + if (!applet_vpn_request_get_secrets (req, &error)) + goto error; + + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + return; + } + + dclass = get_device_class_from_connection (connection, applet); + if (!dclass) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): device type unknown", + __FILE__, __LINE__, __func__); + goto error; + } + + if (!dclass->get_secrets) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NO_SECRETS, + "%s.%d (%s): no secrets found", + __FILE__, __LINE__, __func__); + goto error; + } + + g_assert (dclass->secrets_request_size); + req = applet_secrets_request_new (dclass->secrets_request_size, + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + + /* Get existing secrets, if any */ + nm_secret_agent_get_secrets (NM_SECRET_AGENT (applet->agent), + connection, + setting_name, + hints, + NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE, + get_existing_secrets_cb, + req); + return; + +error: + g_warning ("%s", error->message); + callback (agent, NULL, error, callback_data); + g_error_free (error); + + if (req) + applet_secrets_request_free (req); +} + +static void +applet_agent_cancel_secrets_cb (AppletAgent *agent, + gpointer request_id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GSList *iter; + + for (iter = applet->secrets_reqs; iter; iter = g_slist_next (iter)) { + SecretsRequest *req = iter->data; + + if (req->reqid == request_id) { + /* cancel and free this password request */ + applet_secrets_request_free (req); + } + } +} + +static void +applet_agent_registered_cb (AppletAgent *agent, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + /* If the shell is running and the agent just got registered, unregister it */ + if ( (nm_shell_watcher_version_at_least (applet->shell_watcher, 3, 4)) + && nm_secret_agent_get_registered (NM_SECRET_AGENT (agent))) { + g_message ("Stopping registered applet secret agent because GNOME Shell is running"); + nm_secret_agent_unregister (NM_SECRET_AGENT (agent)); + } +} + +/*****************************************************************************/ + +static void +nma_clear_icon (GdkPixbuf **icon, NMApplet *applet) +{ + g_return_if_fail (icon != NULL); + g_return_if_fail (applet != NULL); + + if (*icon && (*icon != applet->fallback_icon)) { + g_object_unref (*icon); + *icon = NULL; + } +} + +static void nma_icons_free (NMApplet *applet) +{ + int i, j; + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); + + nma_clear_icon (&applet->no_connection_icon, applet); + nma_clear_icon (&applet->ethernet_icon, applet); + nma_clear_icon (&applet->adhoc_icon, applet); + nma_clear_icon (&applet->wwan_icon, applet); + nma_clear_icon (&applet->wwan_tower_icon, applet); + nma_clear_icon (&applet->vpn_lock_icon, applet); + nma_clear_icon (&applet->wifi_00_icon, applet); + nma_clear_icon (&applet->wifi_25_icon, applet); + nma_clear_icon (&applet->wifi_50_icon, applet); + nma_clear_icon (&applet->wifi_75_icon, applet); + nma_clear_icon (&applet->wifi_100_icon, applet); + nma_clear_icon (&applet->secure_lock_icon, applet); + + nma_clear_icon (&applet->mb_tech_1x_icon, applet); + nma_clear_icon (&applet->mb_tech_evdo_icon, applet); + nma_clear_icon (&applet->mb_tech_gprs_icon, applet); + nma_clear_icon (&applet->mb_tech_edge_icon, applet); + nma_clear_icon (&applet->mb_tech_umts_icon, applet); + nma_clear_icon (&applet->mb_tech_hspa_icon, applet); + nma_clear_icon (&applet->mb_tech_lte_icon, applet); + nma_clear_icon (&applet->mb_roaming_icon, applet); + nma_clear_icon (&applet->mb_tech_3g_icon, applet); + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) + nma_clear_icon (&applet->network_connecting_icons[i][j], applet); + } + + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) + nma_clear_icon (&applet->vpn_connecting_icons[i], applet); + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); +} + +GdkPixbuf * +nma_icon_check_and_load (const char *name, GdkPixbuf **icon, NMApplet *applet) +{ + GError *error = NULL; + + g_return_val_if_fail (name != NULL, NULL); + g_return_val_if_fail (icon != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + /* icon already loaded successfully */ + if (*icon && (*icon != applet->fallback_icon)) + return *icon; + + /* Try to load the icon; if the load fails, log the problem, and set + * the icon to the fallback icon if requested. + */ + *icon = gtk_icon_theme_load_icon (applet->icon_theme, name, applet->icon_size, 0, &error); + if (!*icon) { + g_warning ("Icon %s missing: (%d) %s", + name, + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + + *icon = applet->fallback_icon; + } + return *icon; +} + +#include "fallback-icon.h" + +static gboolean +nma_icons_reload (NMApplet *applet) +{ + GError *error = NULL; + GdkPixbufLoader *loader; + + g_return_val_if_fail (applet->icon_size > 0, FALSE); + + nma_icons_free (applet); + + loader = gdk_pixbuf_loader_new_with_type ("png", &error); + if (!loader) + goto error; + + if (!gdk_pixbuf_loader_write (loader, + fallback_icon_data, + sizeof (fallback_icon_data), + &error)) + goto error; + + if (!gdk_pixbuf_loader_close (loader, &error)) + goto error; + + applet->fallback_icon = gdk_pixbuf_loader_get_pixbuf (loader); + g_object_ref (applet->fallback_icon); + g_assert (applet->fallback_icon); + g_object_unref (loader); + + return TRUE; + +error: + g_warning ("Could not load fallback icon: (%d) %s", + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + /* Die if we can't get a fallback icon */ + g_assert (FALSE); + return FALSE; +} + +static void nma_icon_theme_changed (GtkIconTheme *icon_theme, NMApplet *applet) +{ + nma_icons_reload (applet); +} + +static void nma_icons_init (NMApplet *applet) +{ + GdkScreen *screen; + gboolean path_appended; + + if (applet->icon_theme) { + g_signal_handlers_disconnect_by_func (applet->icon_theme, + G_CALLBACK (nma_icon_theme_changed), + applet); + g_object_unref (G_OBJECT (applet->icon_theme)); + } + + screen = gtk_status_icon_get_screen (applet->status_icon); + g_assert (screen); + applet->icon_theme = gtk_icon_theme_get_for_screen (screen); + + /* If not done yet, append our search path */ + path_appended = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended")); + if (path_appended == FALSE) { + gtk_icon_theme_append_search_path (applet->icon_theme, ICONDIR); + g_object_set_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended", + GINT_TO_POINTER (TRUE)); + } + + g_signal_connect (applet->icon_theme, "changed", G_CALLBACK (nma_icon_theme_changed), applet); +} + +static void +status_icon_screen_changed_cb (GtkStatusIcon *icon, + GParamSpec *pspec, + NMApplet *applet) +{ + nma_icons_init (applet); + nma_icon_theme_changed (NULL, applet); +} + +static gboolean +status_icon_size_changed_cb (GtkStatusIcon *icon, + gint size, + NMApplet *applet) +{ + if (getenv ("NMA_SIZE_DEBUG")) { + g_message ("%s(): status icon size now %d", __func__, size); + } + + /* icon_size may be 0 if for example the panel hasn't given us any space + * yet. We'll get resized later, but for now just load the 16x16 icons. + */ + applet->icon_size = MAX (16, size); + + nma_icons_reload (applet); + + applet_schedule_update_icon (applet); + + return TRUE; +} + +static void +status_icon_activate_cb (GtkStatusIcon *icon, NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + + /* Kill any old menu */ + if (applet->menu) + g_object_unref (applet->menu); + + /* And make a fresh new one */ + applet->menu = gtk_menu_new (); + /* Sink the ref so we can explicitly destroy the menu later */ + g_object_ref_sink (G_OBJECT (applet->menu)); + + gtk_container_set_border_width (GTK_CONTAINER (applet->menu), 0); + g_signal_connect (applet->menu, "show", G_CALLBACK (nma_menu_show_cb), applet); + g_signal_connect (applet->menu, "deactivate", G_CALLBACK (nma_menu_deactivate_cb), applet); + + /* Display the new menu */ + gtk_menu_popup (GTK_MENU (applet->menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + 1, gtk_get_current_event_time ()); +} + +static void +status_icon_popup_menu_cb (GtkStatusIcon *icon, + guint button, + guint32 activate_time, + NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + + /* Kill the old menu */ + if (applet->context_menu) + g_object_unref (applet->context_menu); + + /* And make a fresh new one */ + applet->context_menu = gtk_menu_new (); + g_object_ref_sink (G_OBJECT (applet->context_menu)); + applet->context_menu = nma_context_menu_create (applet, GTK_MENU_SHELL (applet->context_menu)); + nma_context_menu_update (applet); + gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + button, activate_time); +} + +#ifdef ENABLE_INDICATOR +static GtkStatusIcon * +indicator_fallback (AppIndicator *indicator) +{ + NMApplet *applet; + + applet = NM_APPLET(g_object_get_data (G_OBJECT (indicator), "applet")); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (applet->status_icon, NULL); + + g_message ("using fallback from indicator to GtkStatusIcon"); + gtk_status_icon_set_visible (applet->status_icon, applet->visible); + + applet->in_fallback = TRUE; + + return applet->status_icon; +} + +static void +indicator_unfallback (AppIndicator *indicator, GtkStatusIcon *status_icon) +{ + NMApplet *applet; + + applet = NM_APPLET(g_object_get_data (G_OBJECT (indicator), "applet")); + g_return_if_fail (NM_IS_APPLET (applet)); + g_return_if_fail (applet->status_icon); + + g_message ("moving back from GtkStatusIcon to indicator"); + gtk_status_icon_set_visible (applet->status_icon, FALSE); + + applet->in_fallback = FALSE; +} + +static gboolean +setup_indicator_menu (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->in_fallback = FALSE; + + applet->app_indicator = app_indicator_new + ("nm-applet", "nm-no-connection", + APP_INDICATOR_CATEGORY_SYSTEM_SERVICES); + + app_indicator_set_title(applet->app_indicator, _("Network")); + + g_object_set_data (G_OBJECT (applet->app_indicator), "applet", (gpointer) applet); + + APP_INDICATOR_GET_CLASS(applet->app_indicator)->fallback = indicator_fallback; + APP_INDICATOR_GET_CLASS(applet->app_indicator)->unfallback = indicator_unfallback; + + applet->menu = gtk_menu_new (); + + g_object_ref_sink (G_OBJECT (applet->menu)); + + applet->menu = nma_context_menu_create (applet, GTK_MENU_SHELL(applet->menu)); + nma_context_menu_update(applet); + + app_indicator_set_menu(applet->app_indicator, GTK_MENU(applet->menu)); + + return TRUE; +} +#endif /* ENABLE_INDICATOR */ + +static gboolean +setup_statusicon_menu (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->status_icon = gtk_status_icon_new (); + +#ifdef ENABLE_INDICATOR + gtk_status_icon_set_visible (applet->status_icon, FALSE); +#endif + + if (!applet->status_icon) + return FALSE; + if (shell_debug) + gtk_status_icon_set_name (applet->status_icon, "adsfasdfasdfadfasdf"); + + g_signal_connect (applet->status_icon, "notify::screen", + G_CALLBACK (status_icon_screen_changed_cb), applet); + g_signal_connect (applet->status_icon, "size-changed", + G_CALLBACK (status_icon_size_changed_cb), applet); + g_signal_connect (applet->status_icon, "activate", + G_CALLBACK (status_icon_activate_cb), applet); + g_signal_connect (applet->status_icon, "popup-menu", + G_CALLBACK (status_icon_popup_menu_cb), applet); + + applet->context_menu = gtk_menu_new (); + applet->context_menu = nma_context_menu_create (applet, GTK_MENU_SHELL (applet->context_menu)); + g_object_ref_sink (G_OBJECT (applet->context_menu)); + if (!applet->context_menu) + return FALSE; + + return TRUE; +} + +static gboolean +setup_widgets (NMApplet *applet) +{ + gboolean success = FALSE; + gboolean indicator_success = FALSE; + + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + success = setup_statusicon_menu (applet); + +#ifdef ENABLE_INDICATOR + indicator_success = setup_indicator_menu (applet); +#endif + +#ifndef ENABLE_INDICATOR + return success; +#else + return success || indicator_success; +#endif +} + +static void +applet_embedded_cb (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + gboolean embedded = gtk_status_icon_is_embedded (GTK_STATUS_ICON (object)); + + g_message ("applet now %s the notification area", + embedded ? "embedded in" : "removed from"); +} + +#if GLIB_CHECK_VERSION(2,26,0) +static gboolean +delayed_start_agent (gpointer user_data) +{ + NMApplet *applet = user_data; + + applet->agent_start_id = 0; + + g_assert (applet->agent); + + /* If the agent is already running, there's nothing to do. */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent)) == TRUE) + return FALSE; + + if (nm_secret_agent_register (NM_SECRET_AGENT (applet->agent))) + g_message ("Starting applet secret agent because GNOME Shell disappeared"); + else + g_warning ("Failed to start applet secret agent!"); + return FALSE; +} + +static void +shell_version_changed_cb (NMShellWatcher *watcher, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = user_data; + + if (applet->agent_start_id) { + g_source_remove (applet->agent_start_id); + applet->agent_start_id = 0; + } + + if (!applet->agent) + return; + + if (nm_shell_watcher_version_at_least (watcher, 3, 4)) { + /* GNOME Shell handles all secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) { + g_message ("Stopping applet secret agent because GNOME Shell appeared"); + nm_secret_agent_unregister (NM_SECRET_AGENT (applet->agent)); + } + } else if (nm_shell_watcher_version_at_least (watcher, 3, 2)) { + /* GNOME Shell handles everything except VPN secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + g_message ("Applet secret agent handling only VPN secrets because GNOME Shell appeared"); + applet_agent_handle_vpn_only (applet->agent, TRUE); + } else { + /* If the shell quit and our agent wasn't already registered, do it + * now on a delay (just in case the shell is restarting). + */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + applet->agent_start_id = g_timeout_add_seconds (4, delayed_start_agent, applet); + applet_agent_handle_vpn_only (applet->agent, FALSE); + } +} +#endif + +static gboolean +dbus_setup (NMApplet *applet, GError **error) +{ + DBusConnection *connection; + DBusGProxy *proxy; + guint result; + gboolean success; + + applet->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, error); + if (!applet->bus) + return FALSE; + + connection = dbus_g_connection_get_connection (applet->bus); + dbus_connection_set_exit_on_disconnect (connection, FALSE); + + applet->session_bus = dbus_g_bus_get (DBUS_BUS_SESSION, error); + if (!applet->session_bus) + return FALSE; + + dbus_g_connection_register_g_object (applet->session_bus, + "/org/gnome/network_manager_applet", + G_OBJECT (applet)); + + proxy = dbus_g_proxy_new_for_name (applet->session_bus, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + success = dbus_g_proxy_call (proxy, "RequestName", error, + G_TYPE_STRING, "org.gnome.network_manager_applet", + G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE, + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID); + g_object_unref (proxy); + + return success; +} + +static void +applet_gsettings_show_changed (GSettings *settings, + gchar *key, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + g_return_if_fail (NM_IS_APPLET(applet)); + g_return_if_fail (key != NULL); + + applet->visible = g_settings_get_boolean (settings, key); + + gtk_status_icon_set_visible (applet->status_icon, applet->visible); +} + +static GObject * +constructor (GType type, + guint n_props, + GObjectConstructParam *construct_props) +{ + NMApplet *applet; + GError* error = NULL; + + applet = NM_APPLET (G_OBJECT_CLASS (nma_parent_class)->constructor (type, n_props, construct_props)); + + g_set_application_name (_("NetworkManager Applet")); + gtk_window_set_default_icon_name (GTK_STOCK_NETWORK); + + applet->info_dialog_ui = gtk_builder_new (); + + if (!gtk_builder_add_from_file (applet->info_dialog_ui, UIDIR "/info.ui", &error)) { + g_warning ("Couldn't load info dialog ui file: %s", error->message); + g_error_free (error); + goto error; + } + + applet->gsettings = g_settings_new (APPLET_PREFS_SCHEMA); + applet->visible = g_settings_get_boolean (applet->gsettings, PREF_SHOW_APPLET); + g_signal_connect (applet->gsettings, "changed::show-applet", + G_CALLBACK (applet_gsettings_show_changed), applet); + + foo_client_setup (applet); + + /* Load pixmaps and create applet widgets */ + if (!setup_widgets (applet)) + goto error; + nma_icons_init (applet); + + if (!notify_is_initted ()) + notify_init ("NetworkManager"); + + if (!dbus_setup (applet, &error)) { + g_warning ("Failed to initialize D-Bus: %s", error->message); + g_error_free (error); + goto error; + } + applet->settings = nm_remote_settings_new (applet->bus); + +#ifdef BUILD_MIGRATION_TOOL + { + char *argv[2] = { LIBEXECDIR "/nm-applet-migration-tool", NULL }; + int status; + + /* Move user connections to the system */ + if (!g_spawn_sync (NULL, argv, NULL, 0, NULL, NULL, + NULL, NULL, &status, &error)) { + g_warning ("Could not run nm-applet-migration-tool: %s", + error->message); + g_error_free (error); + } else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { + g_warning ("nm-applet-migration-tool exited with error"); + } + } +#endif + +#ifdef ENABLE_INDICATOR + /* Watch for new connections */ + g_signal_connect (applet->settings, "new-connection", + G_CALLBACK (new_connection_cb), + applet); +#endif /* ENABLE_INDICATOR */ + + applet->agent = applet_agent_new (); + g_assert (applet->agent); + g_signal_connect (applet->agent, APPLET_AGENT_GET_SECRETS, + G_CALLBACK (applet_agent_get_secrets_cb), applet); + g_signal_connect (applet->agent, APPLET_AGENT_CANCEL_SECRETS, + G_CALLBACK (applet_agent_cancel_secrets_cb), applet); + g_signal_connect (applet->agent, "notify::" NM_SECRET_AGENT_REGISTERED, + G_CALLBACK (applet_agent_registered_cb), applet); + + /* Initialize device classes */ + applet->ethernet_class = applet_device_ethernet_get_class (applet); + g_assert (applet->ethernet_class); + + applet->wifi_class = applet_device_wifi_get_class (applet); + g_assert (applet->wifi_class); + + applet->gsm_class = applet_device_gsm_get_class (applet); + g_assert (applet->gsm_class); + + applet->cdma_class = applet_device_cdma_get_class (applet); + g_assert (applet->cdma_class); + + applet->bt_class = applet_device_bt_get_class (applet); + g_assert (applet->bt_class); + + applet->wimax_class = applet_device_wimax_get_class (applet); + g_assert (applet->wimax_class); + + /* Track embedding to help debug issues where user has removed the + * notification area applet from the panel, and thus nm-applet too. + */ + g_signal_connect (applet->status_icon, "notify::embedded", + G_CALLBACK (applet_embedded_cb), NULL); + applet_embedded_cb (G_OBJECT (applet->status_icon), NULL, NULL); + +#if GLIB_CHECK_VERSION(2,26,0) + /* Watch GNOME Shell so we can unregister our applet agent if it appears */ + applet->shell_watcher = nm_shell_watcher_new (); + g_signal_connect (applet->shell_watcher, + "notify::shell-version", + G_CALLBACK (shell_version_changed_cb), + applet); +#endif + + return G_OBJECT (applet); + +error: + g_object_unref (applet); + return NULL; +} + +static void finalize (GObject *object) +{ + NMApplet *applet = NM_APPLET (object); + + g_slice_free (NMADeviceClass, applet->ethernet_class); + g_slice_free (NMADeviceClass, applet->wifi_class); + g_slice_free (NMADeviceClass, applet->gsm_class); + g_slice_free (NMADeviceClass, applet->cdma_class); + g_slice_free (NMADeviceClass, applet->bt_class); + g_slice_free (NMADeviceClass, applet->wimax_class); + + if (applet->update_icon_id) + g_source_remove (applet->update_icon_id); + +#ifdef ENABLE_INDICATOR + if (applet->update_menu_id) + g_source_remove (applet->update_menu_id); +#endif /* ENABLE_INDICATOR */ + + if (applet->menu) + g_object_unref (applet->menu); + nma_icons_free (applet); + + g_free (applet->tip); + + while (g_slist_length (applet->secrets_reqs)) + applet_secrets_request_free ((SecretsRequest *) applet->secrets_reqs->data); + + if (applet->notification) { + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + } + + if (applet->info_dialog_ui) + g_object_unref (applet->info_dialog_ui); + + if (applet->gsettings) + g_object_unref (applet->gsettings); + + if (applet->status_icon) + g_object_unref (applet->status_icon); + +#ifdef ENABLE_INDICATOR + if (applet->app_indicator) + g_object_unref (applet->app_indicator); +#endif + + if (applet->nm_client) + g_object_unref (applet->nm_client); + + if (applet->fallback_icon) + g_object_unref (applet->fallback_icon); + + if (applet->agent) + g_object_unref (applet->agent); + + if (applet->settings) + g_object_unref (applet->settings); + + if (applet->bus) + dbus_g_connection_unref (applet->bus); + + if (applet->session_bus) + dbus_g_connection_unref (applet->session_bus); + +#if GLIB_CHECK_VERSION(2,26,0) + if (applet->shell_watcher) + g_object_unref (applet->shell_watcher); +#endif + if (applet->agent_start_id) + g_source_remove (applet->agent_start_id); + + G_OBJECT_CLASS (nma_parent_class)->finalize (object); +} + +static void nma_init (NMApplet *applet) +{ + applet->animation_id = 0; + applet->animation_step = 0; + applet->icon_theme = NULL; + applet->notification = NULL; + applet->icon_size = 16; +} + +enum { + PROP_0, + PROP_LOOP, + LAST_PROP +}; + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMApplet *applet = NM_APPLET (object); + + switch (prop_id) { + case PROP_LOOP: + applet->loop = g_value_get_pointer (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void nma_class_init (NMAppletClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GParamSpec *pspec; + + oclass->set_property = set_property; + oclass->constructor = constructor; + oclass->finalize = finalize; + + pspec = g_param_spec_pointer ("loop", "Loop", "Applet mainloop", G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); + g_object_class_install_property (oclass, PROP_LOOP, pspec); + + dbus_g_object_type_install_info (NM_TYPE_APPLET, &dbus_glib_nma_object_info); +} + +NMApplet * +nm_applet_new (GMainLoop *loop) +{ + return g_object_new (NM_TYPE_APPLET, "loop", loop, NULL); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/hide_policy_items_env_var.patch/src/applet.h network-manager-applet-0.9.6.2+git201210311320.2620/.pc/hide_policy_items_env_var.patch/src/applet.h --- network-manager-applet-0.9.4.1/.pc/hide_policy_items_env_var.patch/src/applet.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/hide_policy_items_env_var.patch/src/applet.h 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,344 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2011 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + */ + +#ifndef APPLET_H +#define APPLET_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include +#include + +#include +#include +#include + +#include + +#if ENABLE_INDICATOR +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include "applet-agent.h" +#include "shell-watcher.h" + +#define NM_TYPE_APPLET (nma_get_type()) +#define NM_APPLET(object) (G_TYPE_CHECK_INSTANCE_CAST((object), NM_TYPE_APPLET, NMApplet)) +#define NM_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_APPLET, NMAppletClass)) +#define NM_IS_APPLET(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), NM_TYPE_APPLET)) +#define NM_IS_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_APPLET)) +#define NM_APPLET_GET_CLASS(object)(G_TYPE_INSTANCE_GET_CLASS((object), NM_TYPE_APPLET, NMAppletClass)) + +typedef struct +{ + GObjectClass parent_class; +} NMAppletClass; + +#define APPLET_PREFS_SCHEMA "org.gnome.nm-applet" +#define PREF_DISABLE_CONNECTED_NOTIFICATIONS "disable-connected-notifications" +#define PREF_DISABLE_DISCONNECTED_NOTIFICATIONS "disable-disconnected-notifications" +#define PREF_DISABLE_VPN_NOTIFICATIONS "disable-vpn-notifications" +#define PREF_DISABLE_WIFI_CREATE "disable-wifi-create" +#define PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE "suppress-wireless-networks-available" +#define PREF_SHOW_APPLET "show-applet" + +#define ICON_LAYER_LINK 0 +#define ICON_LAYER_VPN 1 +#define ICON_LAYER_MAX ICON_LAYER_VPN + +typedef struct NMADeviceClass NMADeviceClass; + +/* + * Applet instance data + * + */ +typedef struct +{ + GObject parent_instance; + + GMainLoop *loop; + DBusGConnection *bus; + DBusGConnection *session_bus; + +#if GLIB_CHECK_VERSION(2,26,0) + NMShellWatcher *shell_watcher; +#endif + guint agent_start_id; + + NMClient *nm_client; + NMRemoteSettings *settings; + AppletAgent *agent; + + GSettings *gsettings; + + gboolean visible; + + /* Permissions */ + NMClientPermissionResult permissions[NM_CLIENT_PERMISSION_LAST + 1]; + + /* Device classes */ + NMADeviceClass *ethernet_class; + NMADeviceClass *wifi_class; + NMADeviceClass *gsm_class; + NMADeviceClass *cdma_class; + NMADeviceClass *bt_class; + NMADeviceClass *wimax_class; + + /* Data model elements */ + guint update_icon_id; + + GtkIconTheme * icon_theme; + GdkPixbuf * no_connection_icon; + GdkPixbuf * ethernet_icon; + GdkPixbuf * adhoc_icon; + GdkPixbuf * wwan_icon; + GdkPixbuf * wifi_00_icon; + GdkPixbuf * wifi_25_icon; + GdkPixbuf * wifi_50_icon; + GdkPixbuf * wifi_75_icon; + GdkPixbuf * wifi_100_icon; + GdkPixbuf * secure_lock_icon; +#define NUM_CONNECTING_STAGES 3 +#define NUM_CONNECTING_FRAMES 11 + GdkPixbuf * network_connecting_icons[NUM_CONNECTING_STAGES][NUM_CONNECTING_FRAMES]; +#define NUM_VPN_CONNECTING_FRAMES 14 + GdkPixbuf * vpn_connecting_icons[NUM_VPN_CONNECTING_FRAMES]; + GdkPixbuf * vpn_lock_icon; + GdkPixbuf * fallback_icon; + + /* Mobiel Broadband icons */ + GdkPixbuf * wwan_tower_icon; + GdkPixbuf * mb_tech_1x_icon; + GdkPixbuf * mb_tech_evdo_icon; + GdkPixbuf * mb_tech_gprs_icon; + GdkPixbuf * mb_tech_edge_icon; + GdkPixbuf * mb_tech_umts_icon; + GdkPixbuf * mb_tech_hspa_icon; + GdkPixbuf * mb_tech_lte_icon; + GdkPixbuf * mb_roaming_icon; + GdkPixbuf * mb_tech_3g_icon; + + /* Active status icon pixbufs */ + GdkPixbuf * icon_layers[ICON_LAYER_MAX + 1]; + + /* Animation stuff */ + int animation_step; + guint animation_id; + + /* Direct UI elements */ +#if ENABLE_INDICATOR + AppIndicator * app_indicator; + guint update_menu_id; + gboolean in_fallback; +#endif + GtkStatusIcon * status_icon; + int icon_size; + + GtkWidget * menu; + char * tip; + + GtkWidget * context_menu; + GtkWidget * networking_enabled_item; + guint networking_enabled_toggled_id; + GtkWidget * wifi_enabled_item; + guint wifi_enabled_toggled_id; + GtkWidget * wwan_enabled_item; + guint wwan_enabled_toggled_id; + GtkWidget * wimax_enabled_item; + guint wimax_enabled_toggled_id; + + GtkWidget * notifications_enabled_item; + guint notifications_enabled_toggled_id; + + GtkWidget * info_menu_item; + GtkWidget * connections_menu_item; + + GtkBuilder * info_dialog_ui; + NotifyNotification* notification; + + /* Tracker objects for secrets requests */ + GSList * secrets_reqs; + + gpointer notification_queue_data; + guint deferred_id; +} NMApplet; + +typedef void (*AppletNewAutoConnectionCallback) (NMConnection *connection, + gboolean created, + gboolean canceled, + gpointer user_data); + +typedef struct _SecretsRequest SecretsRequest; +typedef void (*SecretsRequestFreeFunc) (SecretsRequest *req); + +struct _SecretsRequest { + size_t totsize; + gpointer reqid; + char *setting_name; + char **hints; + guint32 flags; + NMApplet *applet; + AppletAgentSecretsCallback callback; + gpointer callback_data; + + NMConnection *connection; + + /* Class-specific stuff */ + SecretsRequestFreeFunc free_func; +}; + +void applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func); +void applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error); +void applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error); +void applet_secrets_request_free (SecretsRequest *req); + +struct NMADeviceClass { + gboolean (*new_auto_connection) (NMDevice *device, + gpointer user_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data); + + void (*add_menu_item) (NMDevice *device, + guint32 num_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet); + + void (*device_added) (NMDevice *device, NMApplet *applet); + + void (*device_state_changed) (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet); + + /* Device class is expected to pass a *referenced* pixbuf, which will + * be unrefed by the icon code. This allows the device class to create + * a composited pixbuf if necessary and pass the reference to the caller. + */ + void (*get_icon) (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **tip, + NMApplet *applet); + + size_t secrets_request_size; + gboolean (*get_secrets) (SecretsRequest *req, + GError **error); +}; + +GType nma_get_type (void); + +NMApplet *nm_applet_new (GMainLoop *loop); + +void applet_schedule_update_icon (NMApplet *applet); + +#if ENABLE_INDICATOR +void applet_schedule_update_menu (NMApplet *applet); +#endif /* ENABLE_INDICATOR */ + +NMRemoteSettings *applet_get_settings (NMApplet *applet); + +GSList *applet_get_all_connections (NMApplet *applet); + +gboolean nma_menu_device_check_unusable (NMDevice *device); + +GtkWidget * nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg); + +void applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data); + +void applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet); + +void applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos); + +GtkWidget* +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text); + +NMRemoteConnection *applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet); + +NMDevice *applet_get_device_for_connection (NMApplet *applet, NMConnection *connection); + +void applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data); + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref); + +NMConnection * applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active); + +GtkWidget * applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active); + +GdkPixbuf * nma_icon_check_and_load (const char *name, + GdkPixbuf **icon, + NMApplet *applet); + +gboolean applet_wifi_connect_to_hidden_network (NMApplet *applet); +gboolean applet_wifi_connect_to_8021x_network (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap); +gboolean applet_wifi_create_wifi_network (NMApplet *applet); +gboolean applet_wifi_can_create_wifi_network (NMApplet *applet); + +#endif diff -Nru network-manager-applet-0.9.4.1/.pc/key-certificate-extensions.patch/src/wireless-security/eap-method.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/key-certificate-extensions.patch/src/wireless-security/eap-method.c --- network-manager-applet-0.9.4.1/.pc/key-certificate-extensions.patch/src/wireless-security/eap-method.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/key-certificate-extensions.patch/src/wireless-security/eap-method.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,660 @@ +/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */ + +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2007 - 2012 Red Hat, Inc. + */ + +#include "config.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include "eap-method.h" +#include "nm-utils.h" + +GType +eap_method_get_g_type (void) +{ + static GType type_id = 0; + + if (!type_id) { + type_id = g_boxed_type_register_static ("EAPMethod", + (GBoxedCopyFunc) eap_method_ref, + (GBoxedFreeFunc) eap_method_unref); + } + + return type_id; +} + +GtkWidget * +eap_method_get_widget (EAPMethod *method) +{ + g_return_val_if_fail (method != NULL, NULL); + + return method->ui_widget; +} + +gboolean +eap_method_validate (EAPMethod *method) +{ + g_return_val_if_fail (method != NULL, FALSE); + + g_assert (method->validate); + return (*(method->validate)) (method); +} + +void +eap_method_add_to_size_group (EAPMethod *method, GtkSizeGroup *group) +{ + g_return_if_fail (method != NULL); + g_return_if_fail (group != NULL); + + g_assert (method->add_to_size_group); + return (*(method->add_to_size_group)) (method, group); +} + +void +eap_method_fill_connection (EAPMethod *method, NMConnection *connection) +{ + g_return_if_fail (method != NULL); + g_return_if_fail (connection != NULL); + + g_assert (method->fill_connection); + return (*(method->fill_connection)) (method, connection); +} + +void +eap_method_update_secrets (EAPMethod *method, NMConnection *connection) +{ + g_return_if_fail (method != NULL); + g_return_if_fail (connection != NULL); + + if (method->update_secrets) + method->update_secrets (method, connection); +} + +typedef struct { + EAPMethod *method; + NMConnection *connection; +} NagDialogResponseInfo; + +static void +nag_dialog_destroyed (gpointer data, GObject *dialog_ptr) +{ + NagDialogResponseInfo *info = (NagDialogResponseInfo *) data; + + memset (info, '\0', sizeof (NagDialogResponseInfo)); + g_free (info); +} + +static GSettings * +_get_ca_ignore_settings (const char *uuid) +{ + GSettings *settings; + char *path = NULL; + + path = g_strdup_printf ("/org/gnome/nm-applet/eap/%s", uuid); + settings = g_settings_new_with_path ("org.gnome.nm-applet.eap", path); + g_free (path); + + return settings; +} + +static void +_set_ignore_ca_cert (const char *uuid, gboolean phase2, gboolean ignore) +{ + GSettings *settings; + const char *key; + + g_return_if_fail (uuid != NULL); + + settings = _get_ca_ignore_settings (uuid); + key = phase2 ? "ignore-phase2-ca-cert" : "ignore-ca-cert"; + g_settings_set_boolean (settings, key, ignore); + g_object_unref (settings); +} + +static void +nag_dialog_response_cb (GtkDialog *nag_dialog, + gint response, + gpointer user_data) +{ + NagDialogResponseInfo *info = (NagDialogResponseInfo *) user_data; + EAPMethod *method = (EAPMethod *) info->method; + NMConnection *connection = (NMConnection *) info->connection; + GtkWidget *widget; + + if (response == GTK_RESPONSE_NO) { + /* Grab the value of the "don't bother me" checkbox */ + widget = GTK_WIDGET (gtk_builder_get_object (method->nag_builder, "ignore_checkbox")); + g_assert (widget); + + method->ignore_ca_cert = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); + + /* And save it */ + _set_ignore_ca_cert (nm_connection_get_uuid (connection), + method->phase2, + method->ignore_ca_cert); + } + + gtk_widget_hide (GTK_WIDGET (nag_dialog)); +} + +static gboolean +nag_dialog_delete_event_cb (GtkDialog *nag_dialog, GdkEvent *e, gpointer user_data) +{ + // FIXME?: By emitting response signal, dismissing nag dialog with upper right "x" icon, + // Alt-F4, or Esc would have the same behaviour as clicking "Ignore" button. + //g_signal_emit_by_name (nag_dialog, "response", GTK_RESPONSE_NO, user_data); + return TRUE; /* do not destroy */ +} + +GtkWidget * +eap_method_nag_user (EAPMethod *method) +{ + GtkWidget *widget; + char *filename = NULL; + + g_return_val_if_fail (method != NULL, NULL); + + if (!method->nag_dialog || method->ignore_ca_cert) + return NULL; + + /* Checkbox should be unchecked each time dialog comes up */ + widget = GTK_WIDGET (gtk_builder_get_object (method->nag_builder, "ignore_checkbox")); + g_assert (widget); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); + + /* Nag the user if the CA Cert is blank, since it's a security risk. */ + widget = GTK_WIDGET (gtk_builder_get_object (method->builder, method->ca_cert_chooser)); + g_assert (widget); + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + if (filename != NULL) { + g_free (filename); + return NULL; + } + + gtk_window_present (GTK_WINDOW (method->nag_dialog)); + return method->nag_dialog; +} + +#define NAG_DIALOG_UI UIDIR "/nag-user-dialog.ui" + +static gboolean +_get_ignore_ca_cert (const char *uuid, gboolean phase2) +{ + GSettings *settings; + const char *key; + gboolean ignore = FALSE; + + g_return_val_if_fail (uuid != NULL, FALSE); + + settings = _get_ca_ignore_settings (uuid); + + key = phase2 ? "ignore-phase2-ca-cert" : "ignore-ca-cert"; + ignore = g_settings_get_boolean (settings, key); + + g_object_unref (settings); + return ignore; +} + +gboolean +eap_method_nag_init (EAPMethod *method, + const char *ca_cert_chooser, + NMConnection *connection) +{ + GtkWidget *dialog, *widget; + NagDialogResponseInfo *info; + GError *error = NULL; + char *text; + + g_return_val_if_fail (method != NULL, FALSE); + g_return_val_if_fail (ca_cert_chooser != NULL, FALSE); + + method->nag_builder = gtk_builder_new (); + if (!gtk_builder_add_from_file (method->nag_builder, NAG_DIALOG_UI, &error)) { + g_warning ("Couldn't load UI builder file " NAG_DIALOG_UI ": %s", + error->message); + g_error_free (error); + return FALSE; + } + + method->ca_cert_chooser = g_strdup (ca_cert_chooser); + if (connection) { + NMSettingConnection *s_con; + const char *uuid; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + uuid = nm_setting_connection_get_uuid (s_con); + g_assert (uuid); + + /* Figure out if the user wants to ignore missing CA cert */ + method->ignore_ca_cert = _get_ignore_ca_cert (uuid, method->phase2); + } + + info = g_malloc0 (sizeof (NagDialogResponseInfo)); + info->method = method; + info->connection = connection; + + dialog = GTK_WIDGET (gtk_builder_get_object (method->nag_builder, "nag_user_dialog")); + g_assert (dialog); + g_signal_connect (dialog, "response", G_CALLBACK (nag_dialog_response_cb), info); + g_signal_connect (dialog, "delete-event", G_CALLBACK (nag_dialog_delete_event_cb), info); + g_object_weak_ref (G_OBJECT (dialog), nag_dialog_destroyed, info); + + widget = GTK_WIDGET (gtk_builder_get_object (method->nag_builder, "content_label")); + g_assert (widget); + + text = g_strdup_printf ("%s\n\n%s", + _("No Certificate Authority certificate chosen"), + _("Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate Authority certificate?")); + gtk_label_set_markup (GTK_LABEL (widget), text); + g_free (text); + + widget = GTK_WIDGET (gtk_builder_get_object (method->nag_builder, "ignore_button")); + gtk_button_set_label (GTK_BUTTON (widget), _("Ignore")); + g_assert (widget); + + widget = GTK_WIDGET (gtk_builder_get_object (method->nag_builder, "change_button")); + gtk_button_set_label (GTK_BUTTON (widget), _("Choose CA Certificate")); + g_assert (widget); + + method->nag_dialog = dialog; + return TRUE; +} + +void +eap_method_phase2_update_secrets_helper (EAPMethod *method, + NMConnection *connection, + const char *combo_name, + guint32 column) +{ + GtkWidget *combo; + GtkTreeIter iter; + GtkTreeModel *model; + + g_return_if_fail (method != NULL); + g_return_if_fail (connection != NULL); + g_return_if_fail (combo_name != NULL); + + combo = GTK_WIDGET (gtk_builder_get_object (method->builder, combo_name)); + g_assert (combo); + + /* Let each EAP phase2 method try to update its secrets */ + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + if (gtk_tree_model_get_iter_first (model, &iter)) { + do { + EAPMethod *eap = NULL; + + gtk_tree_model_get (model, &iter, column, &eap, -1); + if (eap) { + eap_method_update_secrets (eap, connection); + eap_method_unref (eap); + } + } while (gtk_tree_model_iter_next (model, &iter)); + } +} + +EAPMethod * +eap_method_init (gsize obj_size, + EMValidateFunc validate, + EMAddToSizeGroupFunc add_to_size_group, + EMFillConnectionFunc fill_connection, + EMUpdateSecretsFunc update_secrets, + EMDestroyFunc destroy, + const char *ui_file, + const char *ui_widget_name, + const char *default_field, + gboolean phase2) +{ + EAPMethod *method; + GError *error = NULL; + + g_return_val_if_fail (obj_size > 0, NULL); + g_return_val_if_fail (ui_file != NULL, NULL); + g_return_val_if_fail (ui_widget_name != NULL, NULL); + + method = g_slice_alloc0 (obj_size); + g_assert (method); + + method->refcount = 1; + method->obj_size = obj_size; + method->validate = validate; + method->add_to_size_group = add_to_size_group; + method->fill_connection = fill_connection; + method->update_secrets = update_secrets; + method->destroy = destroy; + method->default_field = default_field; + method->phase2 = phase2; + + method->builder = gtk_builder_new (); + if (!gtk_builder_add_from_file (method->builder, ui_file, &error)) { + g_warning ("Couldn't load UI builder file %s: %s", + ui_file, error->message); + eap_method_unref (method); + return NULL; + } + + method->ui_widget = GTK_WIDGET (gtk_builder_get_object (method->builder, ui_widget_name)); + if (!method->ui_widget) { + g_warning ("Couldn't load UI widget '%s' from UI file %s", + ui_widget_name, ui_file); + eap_method_unref (method); + return NULL; + } + g_object_ref_sink (method->ui_widget); + + return method; +} + + +EAPMethod * +eap_method_ref (EAPMethod *method) +{ + g_return_val_if_fail (method != NULL, NULL); + g_return_val_if_fail (method->refcount > 0, NULL); + + method->refcount++; + return method; +} + +void +eap_method_unref (EAPMethod *method) +{ + g_return_if_fail (method != NULL); + g_return_if_fail (method->refcount > 0); + + method->refcount--; + if (method->refcount == 0) { + if (method->destroy) + method->destroy (method); + + if (method->nag_dialog) + gtk_widget_destroy (method->nag_dialog); + if (method->nag_builder) + g_object_unref (method->nag_builder); + g_free (method->ca_cert_chooser); + if (method->builder) + g_object_unref (method->builder); + if (method->ui_widget) + g_object_unref (method->ui_widget); + + g_slice_free1 (method->obj_size, method); + } +} + +gboolean +eap_method_validate_filepicker (GtkBuilder *builder, + const char *name, + guint32 item_type, + const char *password, + NMSetting8021xCKFormat *out_format) +{ + GtkWidget *widget; + char *filename; + NMSetting8021x *setting; + gboolean success = FALSE; + GError *error = NULL; + + if (item_type == TYPE_PRIVATE_KEY) { + g_return_val_if_fail (password != NULL, FALSE); + g_return_val_if_fail (strlen (password), FALSE); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, name)); + g_assert (widget); + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + if (!filename) + return (item_type == TYPE_CA_CERT) ? TRUE : FALSE; + + if (!g_file_test (filename, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) + goto out; + + setting = (NMSetting8021x *) nm_setting_802_1x_new (); + + if (item_type == TYPE_PRIVATE_KEY) { + if (!nm_setting_802_1x_set_private_key (setting, filename, password, NM_SETTING_802_1X_CK_SCHEME_PATH, out_format, &error)) { + g_warning ("Error: couldn't verify private key: %d %s", + error ? error->code : -1, error ? error->message : "(none)"); + g_clear_error (&error); + } else + success = TRUE; + } else if (item_type == TYPE_CLIENT_CERT) { + if (!nm_setting_802_1x_set_client_cert (setting, filename, NM_SETTING_802_1X_CK_SCHEME_PATH, out_format, &error)) { + g_warning ("Error: couldn't verify client certificate: %d %s", + error ? error->code : -1, error ? error->message : "(none)"); + g_clear_error (&error); + } else + success = TRUE; + } else if (item_type == TYPE_CA_CERT) { + if (!nm_setting_802_1x_set_ca_cert (setting, filename, NM_SETTING_802_1X_CK_SCHEME_PATH, out_format, &error)) { + g_warning ("Error: couldn't verify CA certificate: %d %s", + error ? error->code : -1, error ? error->message : "(none)"); + g_clear_error (&error); + } else + success = TRUE; + } else + g_warning ("%s: invalid item type %d.", __func__, item_type); + + g_object_unref (setting); + +out: + g_free (filename); + return success; +} + +static const char * +find_tag (const char *tag, const char *buf, gsize len) +{ + gsize i, taglen; + + taglen = strlen (tag); + if (len < taglen) + return NULL; + + for (i = 0; i < len - taglen + 1; i++) { + if (memcmp (buf + i, tag, taglen) == 0) + return buf + i; + } + return NULL; +} + +static const char *pem_rsa_key_begin = "-----BEGIN RSA PRIVATE KEY-----"; +static const char *pem_dsa_key_begin = "-----BEGIN DSA PRIVATE KEY-----"; +static const char *pem_pkcs8_enc_key_begin = "-----BEGIN ENCRYPTED PRIVATE KEY-----"; +static const char *pem_pkcs8_dec_key_begin = "-----BEGIN PRIVATE KEY-----"; +static const char *pem_cert_begin = "-----BEGIN CERTIFICATE-----"; +static const char *proc_type_tag = "Proc-Type: 4,ENCRYPTED"; +static const char *dek_info_tag = "DEK-Info:"; + +static gboolean +file_has_extension (const char *filename, const char *extensions[]) +{ + char *p, *ext; + int i = 0; + gboolean found = FALSE; + + p = strrchr (filename, '.'); + if (!p) + return FALSE; + + ext = g_ascii_strdown (p, -1); + if (ext) { + while (extensions[i]) { + if (!strcmp (ext, extensions[i++])) { + found = TRUE; + break; + } + } + } + g_free (ext); + + return found; +} + +static gboolean +pem_file_is_encrypted (const char *buffer, gsize bytes_read) +{ + /* Check if the private key is encrypted or not by looking for the + * old OpenSSL-style proc-type and dec-info tags. + */ + if (find_tag (proc_type_tag, (const char *) buffer, bytes_read)) { + if (find_tag (dek_info_tag, (const char *) buffer, bytes_read)) + return TRUE; + } + return FALSE; +} + +static gboolean +file_is_der_or_pem (const char *filename, + gboolean privkey, + gboolean *out_privkey_encrypted) +{ + int fd; + unsigned char buffer[8192]; + ssize_t bytes_read; + gboolean success = FALSE; + + fd = open (filename, O_RDONLY); + if (fd < 0) + return FALSE; + + bytes_read = read (fd, buffer, sizeof (buffer) - 1); + if (bytes_read < 400) /* needs to be lower? */ + goto out; + buffer[bytes_read] = '\0'; + + /* Check for DER signature */ + if (bytes_read > 2 && buffer[0] == 0x30 && buffer[1] == 0x82) { + success = TRUE; + goto out; + } + + /* Check for PEM signatures */ + if (privkey) { + if (find_tag (pem_rsa_key_begin, (const char *) buffer, bytes_read)) { + success = TRUE; + if (out_privkey_encrypted) + *out_privkey_encrypted = pem_file_is_encrypted ((const char *) buffer, bytes_read); + goto out; + } + + if (find_tag (pem_dsa_key_begin, (const char *) buffer, bytes_read)) { + success = TRUE; + if (out_privkey_encrypted) + *out_privkey_encrypted = pem_file_is_encrypted ((const char *) buffer, bytes_read); + goto out; + } + + if (find_tag (pem_pkcs8_enc_key_begin, (const char *) buffer, bytes_read)) { + success = TRUE; + if (out_privkey_encrypted) + *out_privkey_encrypted = TRUE; + goto out; + } + + if (find_tag (pem_pkcs8_dec_key_begin, (const char *) buffer, bytes_read)) { + success = TRUE; + if (out_privkey_encrypted) + *out_privkey_encrypted = FALSE; + goto out; + } + } else { + if (find_tag (pem_cert_begin, (const char *) buffer, bytes_read)) { + success = TRUE; + goto out; + } + } + +out: + close (fd); + return success; +} + +static gboolean +default_filter_privkey (const GtkFileFilterInfo *filter_info, gpointer user_data) +{ + const char *extensions[] = { ".der", ".pem", ".p12", NULL }; + gboolean require_encrypted = !!user_data; + gboolean is_encrypted = TRUE; + + if (!filter_info->filename) + return FALSE; + + if (!file_has_extension (filter_info->filename, extensions)) + return FALSE; + + if ( !file_is_der_or_pem (filter_info->filename, TRUE, &is_encrypted) + && !nm_utils_file_is_pkcs12 (filter_info->filename)) + return FALSE; + + return require_encrypted ? is_encrypted : TRUE; +} + +static gboolean +default_filter_cert (const GtkFileFilterInfo *filter_info, gpointer user_data) +{ + const char *extensions[] = { ".der", ".pem", ".crt", ".cer", NULL }; + + if (!filter_info->filename) + return FALSE; + + if (!file_has_extension (filter_info->filename, extensions)) + return FALSE; + + if (!file_is_der_or_pem (filter_info->filename, FALSE, NULL)) + return FALSE; + + return TRUE; +} + +GtkFileFilter * +eap_method_default_file_chooser_filter_new (gboolean privkey) +{ + GtkFileFilter *filter; + + filter = gtk_file_filter_new (); + if (privkey) { + gtk_file_filter_add_custom (filter, GTK_FILE_FILTER_FILENAME, default_filter_privkey, NULL, NULL); + gtk_file_filter_set_name (filter, _("DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)")); + } else { + gtk_file_filter_add_custom (filter, GTK_FILE_FILTER_FILENAME, default_filter_cert, NULL, NULL); + gtk_file_filter_set_name (filter, _("DER or PEM certificates (*.der, *.pem, *.crt, *.cer)")); + } + return filter; +} + +gboolean +eap_method_is_encrypted_private_key (const char *path) +{ + GtkFileFilterInfo info = { .filename = path }; + + return default_filter_privkey (&info, (gpointer) TRUE); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/lp1048516_dont_req_keyring_in_greeter.patch/src/applet-device-gsm.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp1048516_dont_req_keyring_in_greeter.patch/src/applet-device-gsm.c --- network-manager-applet-0.9.4.1/.pc/lp1048516_dont_req_keyring_in_greeter.patch/src/applet-device-gsm.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp1048516_dont_req_keyring_in_greeter.patch/src/applet-device-gsm.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1816 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + * (C) Copyright 2008 Novell, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-gsm.h" +#include "utils.h" +#include "nm-mobile-wizard.h" +#include "mobile-helpers.h" +#include "applet-dialogs.h" +#include "mb-menu-item.h" +#include "nma-marshal.h" +#include "nmn-mobile-providers.h" +#include "nm-ui-utils.h" + +typedef enum { + MM_MODEM_GSM_ACCESS_TECH_UNKNOWN = 0, + MM_MODEM_GSM_ACCESS_TECH_GSM = 1, + MM_MODEM_GSM_ACCESS_TECH_GSM_COMPACT = 2, + MM_MODEM_GSM_ACCESS_TECH_GPRS = 3, + MM_MODEM_GSM_ACCESS_TECH_EDGE = 4, /* GSM w/EGPRS */ + MM_MODEM_GSM_ACCESS_TECH_UMTS = 5, /* UTRAN */ + MM_MODEM_GSM_ACCESS_TECH_HSDPA = 6, /* UTRAN w/HSDPA */ + MM_MODEM_GSM_ACCESS_TECH_HSUPA = 7, /* UTRAN w/HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA = 8, /* UTRAN w/HSDPA and HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS = 9, + MM_MODEM_GSM_ACCESS_TECH_LTE = 10, + + MM_MODEM_GSM_ACCESS_TECH_LAST = MM_MODEM_GSM_ACCESS_TECH_LTE +} MMModemGsmAccessTech; + +typedef struct { + NMApplet *applet; + NMDevice *device; + + DBusGConnection *bus; + DBusGProxy *props_proxy; + DBusGProxy *card_proxy; + DBusGProxy *net_proxy; + + gboolean quality_valid; + guint32 quality; + char *unlock_required; + char *devid; + char *simid; + gboolean modem_enabled; + MMModemGsmAccessTech act; + + /* reg_state is (1 + MM reg state) so that 0 means we haven't gotten a + * value from MM yet. 0 is a valid MM GSM reg state. + */ + guint reg_state; + char *op_code; + char *op_name; + GHashTable *providers; + + guint32 poll_id; + gboolean skip_reg_poll; + gboolean skip_signal_poll; + + /* Unlock dialog stuff */ + GtkWidget *dialog; + gpointer keyring_id; +} GsmDeviceInfo; + +static void unlock_dialog_destroy (GsmDeviceInfo *info); +static void check_start_polling (GsmDeviceInfo *info); + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} GSMMenuItemInfo; + +static void +gsm_menu_item_info_destroy (gpointer data) +{ + GSMMenuItemInfo *info = data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (info->connection); + + g_slice_free (GSMMenuItemInfo, data); +} + +typedef struct { + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} AutoGsmWizardInfo; + +static void +mobile_wizard_done (NMAMobileWizard *wizard, + gboolean canceled, + NMAMobileWizardAccessMethod *method, + gpointer user_data) +{ + AutoGsmWizardInfo *info = user_data; + NMConnection *connection = NULL; + + if (!canceled && method) { + NMSetting *setting; + char *uuid, *id; + + if (method->devtype != NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + g_warning ("Unexpected device type (not GSM)."); + canceled = TRUE; + goto done; + } + + connection = nm_connection_new (); + + setting = nm_setting_gsm_new (); + g_object_set (setting, + NM_SETTING_GSM_NUMBER, "*99#", + NM_SETTING_GSM_USERNAME, method->username, + NM_SETTING_GSM_PASSWORD, method->password, + NM_SETTING_GSM_APN, method->gsm_apn, + NULL); + nm_connection_add_setting (connection, setting); + + /* Serial setting */ + setting = nm_setting_serial_new (); + g_object_set (setting, + NM_SETTING_SERIAL_BAUD, 115200, + NM_SETTING_SERIAL_BITS, 8, + NM_SETTING_SERIAL_PARITY, 'n', + NM_SETTING_SERIAL_STOPBITS, 1, + NULL); + nm_connection_add_setting (connection, setting); + + nm_connection_add_setting (connection, nm_setting_ppp_new ()); + + setting = nm_setting_connection_new (); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); + uuid = nm_utils_uuid_generate (); + g_object_set (setting, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_GSM_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + g_free (id); + nm_connection_add_setting (connection, setting); + } + +done: + (*(info->callback)) (connection, TRUE, canceled, info->callback_data); + + if (wizard) + nma_mobile_wizard_destroy (wizard); + g_free (info); +} + +static gboolean +do_mobile_wizard (AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMAMobileWizard *wizard; + AutoGsmWizardInfo *info; + NMAMobileWizardAccessMethod *method; + + info = g_malloc0 (sizeof (AutoGsmWizardInfo)); + info->callback = callback; + info->callback_data = callback_data; + + wizard = nma_mobile_wizard_new (NULL, NULL, NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS, FALSE, + mobile_wizard_done, info); + if (wizard) { + nma_mobile_wizard_present (wizard); + return TRUE; + } + + /* Fall back to something */ + method = g_malloc0 (sizeof (NMAMobileWizardAccessMethod)); + method->devtype = NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS; + method->provider_name = _("GSM"); + mobile_wizard_done (NULL, FALSE, method, info); + g_free (method); + + return TRUE; +} + +static gboolean +gsm_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + return do_mobile_wizard (callback, callback_data); +} + +static void +dbus_3g_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; +} Dbus3gInfo; + +static void +dbus_connect_3g_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus3gInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + "/", + dbus_3g_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +void +applet_gsm_connect_network (NMApplet *applet, NMDevice *device) +{ + Dbus3gInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + + do_mobile_wizard (dbus_connect_3g_cb, info); +} + +static void +gsm_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + GSMMenuItemInfo *info = (GSMMenuItemInfo *) user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + +static void +add_connection_item (NMDevice *device, + NMConnection *connection, + GtkWidget *item, + GtkWidget *menu, + NMApplet *applet) +{ + GSMMenuItemInfo *info; + + info = g_slice_new0 (GSMMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = connection ? g_object_ref (connection) : NULL; + + g_signal_connect_data (item, "activate", + G_CALLBACK (gsm_menu_item_activate), + info, + (GClosureNotify) gsm_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); +} + +static guint32 +gsm_state_to_mb_state (GsmDeviceInfo *info) +{ + if (!info->modem_enabled) + return MB_STATE_UNKNOWN; + + switch (info->reg_state) { + case 1: /* IDLE */ + return MB_STATE_IDLE; + case 2: /* HOME */ + return MB_STATE_HOME; + case 3: /* SEARCHING */ + return MB_STATE_SEARCHING; + case 4: /* DENIED */ + return MB_STATE_DENIED; + case 6: /* ROAMING */ + return MB_STATE_ROAMING; + case 5: /* UNKNOWN */ + default: + break; + } + + return MB_STATE_UNKNOWN; +} + +static guint32 +gsm_act_to_mb_act (GsmDeviceInfo *info) +{ + switch (info->act) { + case MM_MODEM_GSM_ACCESS_TECH_GPRS: + return MB_TECH_GPRS; + case MM_MODEM_GSM_ACCESS_TECH_EDGE: + return MB_TECH_EDGE; + case MM_MODEM_GSM_ACCESS_TECH_UMTS: + return MB_TECH_UMTS; + case MM_MODEM_GSM_ACCESS_TECH_HSDPA: + return MB_TECH_HSDPA; + case MM_MODEM_GSM_ACCESS_TECH_HSUPA: + return MB_TECH_HSUPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA: + return MB_TECH_HSPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS: + return MB_TECH_HSPA_PLUS; + case MM_MODEM_GSM_ACCESS_TECH_LTE: + return MB_TECH_LTE; + default: + break; + } + + return MB_TECH_GSM; +} + +static void +gsm_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + GsmDeviceInfo *info; + char *text; + GtkWidget *item; + GSList *connections, *all, *iter; +#ifdef ENABLE_INDICATOR + GtkWidget *signal_icon; +#endif + gboolean allowed; + NMClientPermissionResult perm; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + text = g_strdup_printf (_("Mobile Broadband (%s)"), desc); + } else { + text = g_strdup (_("Mobile Broadband")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); +#ifndef ENABLE_INDICATOR + gtk_widget_set_sensitive (item, FALSE); +#endif + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + g_free (text); + + /* Add the active connection */ + if (active) { + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (active); + g_assert (s_con); + +#ifndef ENABLE_INDICATOR + item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), + info->quality_valid ? info->quality : 0, + info->op_name, + TRUE, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info), + info->modem_enabled, + applet); +#else + text = mobile_helper_get_connection_label (nm_setting_connection_get_id (s_con), + info->op_name, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#endif + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + add_connection_item (device, active, item, menu, applet); + } + + /* Notify user of unmanaged or unavailable device */ + if (nm_device_get_state (device) > NM_DEVICE_STATE_DISCONNECTED) { + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + } else { + /* Otherwise show idle registration state or disabled */ +#ifndef ENABLE_INDICATOR + item = nm_mb_menu_item_new (NULL, + info->quality_valid ? info->quality : 0, + info->op_name, + FALSE, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info), + info->modem_enabled, + applet); +#else + text = mobile_helper_get_connection_label (NULL, + info->op_name, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + gtk_widget_set_sensitive (item, FALSE); +#endif + + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + + /* Add the default / inactive connection items */ + if (!nma_menu_device_check_unusable (device)) { + if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (connections)) { + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (connection != active) { + item = applet_new_menu_item_helper (connection, NULL, FALSE); + add_connection_item (device, connection, item, menu, applet); + } + } + } else { + + allowed = FALSE; + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_NETWORK_CONTROL); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + allowed = TRUE; + } else { + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + allowed = TRUE; + } + } + } + + /* Default connection item */ + item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (GSM) connection...")); + gtk_widget_set_sensitive (GTK_WIDGET (item), allowed); + if (!allowed && applet->hide_policy_items) { + /* don't add the item if it should be hidden */ + g_object_ref_sink (item); + g_object_unref (item); + } else + add_connection_item (device, NULL, item, menu, applet); + } + } + + g_slist_free (connections); +} + +static void +gsm_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + GsmDeviceInfo *info; + + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + const char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, + str ? str : _("GSM network."), + _("Connection Established"), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } + + /* Start/stop polling of quality and registration when device state changes */ + info = g_object_get_data (G_OBJECT (device), "devinfo"); + check_start_polling (info); +} + +static void +gsm_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *id; + GsmDeviceInfo *info; + guint32 mb_state; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (info); + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + mb_state = gsm_state_to_mb_state (info); + *out_pixbuf = mobile_helper_get_status_pixbuf (info->quality, + info->quality_valid, + mb_state, + gsm_act_to_mb_act (info), + applet); + *out_indicator_icon = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + + if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { + gboolean roaming = (mb_state == MB_STATE_ROAMING); + + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active: (%d%%%s%s)"), + id, info->quality, + roaming ? ", " : "", + roaming ? _("roaming") : ""); + } else + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active"), id); + break; + default: + break; + } +} + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkEntry *secret_entry; + char *secret_name; +} NMGsmSecretsInfo; + +static void +free_gsm_secrets_info (SecretsRequest *req) +{ + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } + + g_free (info->secret_name); +} + +static void +get_gsm_secrets_cb (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + NMSettingGsm *setting; + GError *error = NULL; + + if (response == GTK_RESPONSE_OK) { + setting = nm_connection_get_setting_gsm (req->connection); + if (setting) { + g_object_set (G_OBJECT (setting), + info->secret_name, gtk_entry_get_text (info->secret_entry), + NULL); + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): no GSM setting", + __FILE__, __LINE__, __func__); + } + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + } + + applet_secrets_request_complete_setting (req, NM_SETTING_GSM_SETTING_NAME, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static void +pin_entry_changed (GtkEditable *editable, gpointer user_data) +{ + GtkWidget *ok_button = GTK_WIDGET (user_data); + const char *s; + int i; + gboolean valid = FALSE; + guint32 len; + + s = gtk_entry_get_text (GTK_ENTRY (editable)); + if (s) { + len = strlen (s); + if ((len >= 4) && (len <= 8)) { + valid = TRUE; + for (i = 0; i < len; i++) { + if (!g_ascii_isdigit (s[i])) { + valid = FALSE; + break; + } + } + } + } + + gtk_widget_set_sensitive (ok_button, valid); +} + +static GtkWidget * +ask_for_pin (GtkEntry **out_secret_entry) +{ + GtkDialog *dialog; + GtkWidget *w = NULL, *ok_button = NULL; + GtkBox *box = NULL, *vbox = NULL; + + dialog = GTK_DIALOG (gtk_dialog_new ()); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_title (GTK_WINDOW (dialog), _("PIN code required")); + + ok_button = gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); + ok_button = gtk_dialog_add_button (dialog, GTK_STOCK_OK, GTK_RESPONSE_OK); + gtk_window_set_default (GTK_WINDOW (dialog), ok_button); + + vbox = GTK_BOX (gtk_dialog_get_content_area (dialog)); + + w = gtk_label_new (_("PIN code is needed for the mobile broadband device")); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + + w = gtk_alignment_new (0.5, 0.5, 0, 1.0); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + +#if GTK_CHECK_VERSION(3,1,6) + box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6)); +#else + box = GTK_BOX (gtk_hbox_new (FALSE, 6)); +#endif + gtk_container_set_border_width (GTK_CONTAINER (box), 6); + gtk_container_add (GTK_CONTAINER (w), GTK_WIDGET (box)); + + gtk_box_pack_start (box, gtk_label_new ("PIN:"), FALSE, FALSE, 0); + + w = gtk_entry_new (); + *out_secret_entry = GTK_ENTRY (w); + gtk_entry_set_max_length (GTK_ENTRY (w), 8); + gtk_entry_set_width_chars (GTK_ENTRY (w), 8); + gtk_entry_set_activates_default (GTK_ENTRY (w), TRUE); + gtk_entry_set_visibility (GTK_ENTRY (w), FALSE); + gtk_box_pack_start (box, w, FALSE, FALSE, 0); + g_signal_connect (w, "changed", G_CALLBACK (pin_entry_changed), ok_button); + pin_entry_changed (GTK_EDITABLE (w), ok_button); + + gtk_widget_show_all (GTK_WIDGET (vbox)); + return GTK_WIDGET (dialog); +} + +static gboolean +gsm_get_secrets (SecretsRequest *req, GError **error) +{ + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + GtkWidget *widget; + GtkEntry *secret_entry = NULL; + + applet_secrets_request_set_free_func (req, free_gsm_secrets_info); + + if (!req->hints || !g_strv_length (req->hints)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): missing secrets hints.", + __FILE__, __LINE__, __func__); + return FALSE; + } + info->secret_name = g_strdup (req->hints[0]); + + if (!strcmp (info->secret_name, NM_SETTING_GSM_PIN)) { + NMDevice *device; + GsmDeviceInfo *devinfo; + + device = applet_get_device_for_connection (req->applet, req->connection); + if (!device) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to find device for active connection.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + devinfo = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (devinfo); + + /* A GetSecrets PIN dialog overrides the initial unlock dialog */ + if (devinfo->dialog) + unlock_dialog_destroy (devinfo); + + widget = ask_for_pin (&secret_entry); + } else if (!strcmp (info->secret_name, NM_SETTING_GSM_PASSWORD)) + widget = applet_mobile_password_dialog_new (req->connection, &secret_entry); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unknown secrets hint '%s'.", + __FILE__, __LINE__, __func__, info->secret_name); + return FALSE; + } + info->dialog = widget; + info->secret_entry = secret_entry; + + if (!widget || !secret_entry) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): error asking for GSM secrets.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (widget, "response", G_CALLBACK (get_gsm_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (GTK_WIDGET (widget)); + gtk_window_present (GTK_WINDOW (widget)); + + return TRUE; +} + +/********************************************************************/ + +static void +save_pin_cb (GnomeKeyringResult result, guint32 val, gpointer user_data) +{ + if (result != GNOME_KEYRING_RESULT_OK) + g_warning ("%s: result %d", (const char *) user_data, result); +} + +static void +set_pin_in_keyring (const char *devid, + const char *simid, + const char *pin) +{ + GnomeKeyringAttributeList *attributes; + GnomeKeyringAttribute attr; + const char *name; + char *error_msg; + + name = g_strdup_printf (_("PIN code for SIM card '%s' on '%s'"), + simid ? simid : "unknown", + devid); + + attributes = gnome_keyring_attribute_list_new (); + attr.name = g_strdup ("devid"); + attr.type = GNOME_KEYRING_ATTRIBUTE_TYPE_STRING; + attr.value.string = g_strdup (devid); + g_array_append_val (attributes, attr); + + if (simid) { + attr.name = g_strdup ("simid"); + attr.type = GNOME_KEYRING_ATTRIBUTE_TYPE_STRING; + attr.value.string = g_strdup (simid); + g_array_append_val (attributes, attr); + } + + error_msg = g_strdup_printf ("Saving PIN code in keyring for devid:%s simid:%s failed", + devid, simid ? simid : "(unknown)"); + + gnome_keyring_item_create (NULL, + GNOME_KEYRING_ITEM_GENERIC_SECRET, + name, + attributes, + pin, + TRUE, + save_pin_cb, + error_msg, + (GDestroyNotify) g_free); + + gnome_keyring_attribute_list_free (attributes); +} + +static void +delete_pin_cb (GnomeKeyringResult result, gpointer user_data) +{ + /* nothing to do */ +} + +static void +delete_pins_find_cb (GnomeKeyringResult result, GList *list, gpointer user_data) +{ + GList *iter; + + if (result == GNOME_KEYRING_RESULT_OK) { + for (iter = list; iter; iter = g_list_next (iter)) { + GnomeKeyringFound *found = iter->data; + + gnome_keyring_item_delete (found->keyring, found->item_id, delete_pin_cb, NULL, NULL); + } + } +} + +static void +delete_pins_in_keyring (const char *devid) +{ + gnome_keyring_find_itemsv (GNOME_KEYRING_ITEM_GENERIC_SECRET, + delete_pins_find_cb, + NULL, + NULL, + "devid", + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + devid, + NULL); +} + +static void +unlock_dialog_destroy (GsmDeviceInfo *info) +{ + applet_mobile_pin_dialog_destroy (info->dialog); + info->dialog = NULL; +} + +static void +unlock_pin_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + const char *dbus_error, *msg = NULL, *code1; + + if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + if (applet_mobile_pin_dialog_get_auto_unlock (info->dialog)) { + code1 = applet_mobile_pin_dialog_get_entry1 (info->dialog); + set_pin_in_keyring (info->devid, info->simid, code1); + } else + delete_pins_in_keyring (info->devid); + unlock_dialog_destroy (info); + return; + } + + dbus_error = dbus_g_error_get_name (error); + if (dbus_error && !strcmp (dbus_error, "org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword")) + msg = _("Wrong PIN code; please contact your provider."); + else + msg = error ? error->message : NULL; + + applet_mobile_pin_dialog_stop_spinner (info->dialog, msg); + g_warning ("%s: error unlocking with PIN: %s", __func__, error->message); + g_clear_error (&error); +} + +static void +unlock_puk_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + const char *dbus_error, *msg = NULL; + + if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + unlock_dialog_destroy (info); + return; + } + + dbus_error = dbus_g_error_get_name (error); + if (dbus_error && !strcmp (dbus_error, "org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword")) + msg = _("Wrong PUK code; please contact your provider."); + else + msg = error ? error->message : NULL; + + applet_mobile_pin_dialog_stop_spinner (info->dialog, msg); + g_warning ("%s: error unlocking with PIN: %s", __func__, error->message); + g_clear_error (&error); +} + +#define UNLOCK_CODE_PIN 1 +#define UNLOCK_CODE_PUK 2 + +static void +unlock_dialog_response (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + const char *code1, *code2; + guint32 unlock_code; + + if (response == GTK_RESPONSE_CANCEL || response == GTK_RESPONSE_DELETE_EVENT) { + unlock_dialog_destroy (info); + return; + } + + /* Start the spinner to show the progress of the unlock */ + applet_mobile_pin_dialog_start_spinner (info->dialog, _("Sending unlock code...")); + + unlock_code = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (info->dialog), "unlock-code")); + if (!unlock_code) { + g_warn_if_fail (unlock_code != 0); + unlock_dialog_destroy (info); + return; + } + + code1 = applet_mobile_pin_dialog_get_entry1 (info->dialog); + if (!code1 || !strlen (code1)) { + g_warn_if_fail (code1 != NULL); + g_warn_if_fail (strlen (code1)); + unlock_dialog_destroy (info); + return; + } + + /* Send the code to ModemManager */ + if (unlock_code == UNLOCK_CODE_PIN) { + dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPin", + unlock_pin_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, code1, + G_TYPE_INVALID); + } else if (unlock_code == UNLOCK_CODE_PUK) { + code2 = applet_mobile_pin_dialog_get_entry2 (info->dialog); + if (!code2) { + g_warn_if_fail (code2 != NULL); + unlock_dialog_destroy (info); + return; + } + + dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPuk", + unlock_puk_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, code1, + G_TYPE_STRING, code2, + G_TYPE_INVALID); + } +} + +static void +unlock_dialog_new (NMDevice *device, GsmDeviceInfo *info) +{ + const char *header = NULL; + const char *title = NULL; + const char *show_pass_label = NULL; + char *desc = NULL; + const char *label1 = NULL, *label2 = NULL, *label3 = NULL; + const char *device_desc; + gboolean match23 = FALSE; + guint32 label1_min = 0, label2_min = 0, label3_min = 0; + guint32 label1_max = 0, label2_max = 0, label3_max = 0; + guint32 unlock_code = 0; + + g_return_if_fail (info->unlock_required != NULL); + + if (info->dialog) + return; + + /* Figure out the dialog text based on the required unlock code */ + device_desc = nma_utils_get_device_description (device); + if (!strcmp (info->unlock_required, "sim-pin")) { + title = _("SIM PIN unlock required"); + header = _("SIM PIN Unlock Required"); + /* FIXME: some warning about # of times you can enter incorrect PIN */ + desc = g_strdup_printf (_("The mobile broadband device '%s' requires a SIM PIN code before it can be used."), device_desc); + /* Translators: PIN code entry label */ + label1 = _("PIN code:"); + label1_min = 4; + label1_max = 8; + /* Translators: Show/obscure PIN checkbox label */ + show_pass_label = _("Show PIN code"); + unlock_code = UNLOCK_CODE_PIN; + } else if (!strcmp (info->unlock_required, "sim-puk")) { + title = _("SIM PUK unlock required"); + header = _("SIM PUK Unlock Required"); + /* FIXME: some warning about # of times you can enter incorrect PUK */ + desc = g_strdup_printf (_("The mobile broadband device '%s' requires a SIM PUK code before it can be used."), device_desc); + /* Translators: PUK code entry label */ + label1 = _("PUK code:"); + label1_min = label1_max = 8; + /* Translators: New PIN entry label */ + label2 = _("New PIN code:"); + /* Translators: New PIN verification entry label */ + label3 = _("Re-enter new PIN code:"); + label2_min = label3_min = 4; + label2_max = label3_max = 8; + match23 = TRUE; + /* Translators: Show/obscure PIN/PUK checkbox label */ + show_pass_label = _("Show PIN/PUK codes"); + unlock_code = UNLOCK_CODE_PUK; + } else { + g_warning ("Unhandled unlock request for '%s'", info->unlock_required); + return; + } + + /* Construct and run the dialog */ + info->dialog = applet_mobile_pin_dialog_new (title, + header, + desc, + show_pass_label, + (unlock_code == UNLOCK_CODE_PIN) ? TRUE : FALSE); + g_free (desc); + g_return_if_fail (info->dialog != NULL); + + g_object_set_data (G_OBJECT (info->dialog), "unlock-code", GUINT_TO_POINTER (unlock_code)); + applet_mobile_pin_dialog_match_23 (info->dialog, match23); + + applet_mobile_pin_dialog_set_entry1 (info->dialog, label1, label1_min, label1_max); + if (label2) + applet_mobile_pin_dialog_set_entry2 (info->dialog, label2, label2_min, label2_max); + if (label3) + applet_mobile_pin_dialog_set_entry3 (info->dialog, label3, label3_min, label3_max); + + g_signal_connect (info->dialog, "response", G_CALLBACK (unlock_dialog_response), info); + applet_mobile_pin_dialog_present (info->dialog, FALSE); +} + +/********************************************************************/ + +static void +gsm_device_info_free (gpointer data) +{ + GsmDeviceInfo *info = data; + + if (info->props_proxy) + g_object_unref (info->props_proxy); + if (info->card_proxy) + g_object_unref (info->card_proxy); + if (info->net_proxy) + g_object_unref (info->net_proxy); + if (info->bus) + dbus_g_connection_unref (info->bus); + + if (info->keyring_id) + gnome_keyring_cancel_request (info->keyring_id); + + if (info->providers) + g_hash_table_destroy (info->providers); + + if (info->poll_id) + g_source_remove (info->poll_id); + + if (info->dialog) + unlock_dialog_destroy (info); + + g_free (info->devid); + g_free (info->simid); + g_free (info->op_code); + g_free (info->op_name); + memset (info, 0, sizeof (GsmDeviceInfo)); + g_free (info); +} + +static void +signal_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + guint32 quality = 0; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_UINT, &quality, + G_TYPE_INVALID)) { + info->quality = quality; + info->quality_valid = TRUE; + applet_schedule_update_icon (info->applet); + } + + g_clear_error (&error); +} + +static char * +find_provider_for_mcc_mnc (GHashTable *table, const char *mccmnc) +{ + GHashTableIter iter; + gpointer value; + GSList *piter, *siter; + const char *name2 = NULL, *name3 = NULL; + gboolean done = FALSE; + + if (!mccmnc) + return NULL; + + g_hash_table_iter_init (&iter, table); + /* Search through each country */ + while (g_hash_table_iter_next (&iter, NULL, &value) && !done) { + GSList *providers = value; + + /* Search through each country's providers */ + for (piter = providers; piter && !done; piter = g_slist_next (piter)) { + NmnMobileProvider *provider = piter->data; + + /* Search through MCC/MNC list */ + for (siter = provider->gsm_mcc_mnc; siter; siter = g_slist_next (siter)) { + NmnGsmMccMnc *mcc = siter->data; + + /* Match both 2-digit and 3-digit MNC; prefer a + * 3-digit match if found, otherwise a 2-digit one. + */ + if (strncmp (mcc->mcc, mccmnc, 3)) + continue; /* MCC was wrong */ + + if ( !name3 + && (strlen (mccmnc) == 6) + && !strncmp (mccmnc + 3, mcc->mnc, 3)) + name3 = provider->name; + + if ( !name2 + && !strncmp (mccmnc + 3, mcc->mnc, 2)) + name2 = provider->name; + + if (name2 && name3) { + done = TRUE; + break; + } + } + } + } + + if (name3) + return g_strdup (name3); + return g_strdup (name2); +} + +static char * +parse_op_name (GsmDeviceInfo *info, const char *orig, const char *op_code) +{ + guint i, orig_len; + + /* Some devices return the MCC/MNC if they haven't fully initialized + * or gotten all the info from the network yet. Handle that. + */ + + orig_len = orig ? strlen (orig) : 0; + if (orig_len == 0) { + /* If the operator name isn't valid, maybe we can look up the MCC/MNC + * from the operator code instead. + */ + if (op_code && strlen (op_code)) { + orig = op_code; + orig_len = strlen (orig); + } else + return NULL; + } else if (orig_len < 5 || orig_len > 6) + return g_strdup (orig); /* not an MCC/MNC */ + + for (i = 0; i < orig_len; i++) { + if (!isdigit (orig[i])) + return strdup (orig); + } + + /* At this point we have a 5 or 6 character all-digit string; that's + * probably an MCC/MNC. Look that up. + */ + + if (!info->providers) + info->providers = nmn_mobile_providers_parse (NULL); + if (!info->providers) + return strdup (orig); + + return find_provider_for_mcc_mnc (info->providers, orig); +} + +static void +notify_user_of_gsm_reg_change (GsmDeviceInfo *info) +{ + guint32 mb_state = gsm_state_to_mb_state (info); + + if (mb_state == MB_STATE_HOME) { + applet_do_notify_with_pref (info->applet, + _("GSM network."), + _("You are now registered on the home network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } else if (mb_state == MB_STATE_ROAMING) { + applet_do_notify_with_pref (info->applet, + _("GSM network."), + _("You are now registered on a roaming network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } +} + +#define REG_INFO_TYPE (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID)) +#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)) + +static void +reg_info_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValueArray *array = NULL; + guint32 new_state = 0; + char *new_op_code = NULL; + char *new_op_name = NULL; + GValue *value; + + if (dbus_g_proxy_end_call (proxy, call, &error, REG_INFO_TYPE, &array, G_TYPE_INVALID)) { + if (array->n_values == 3) { + value = g_value_array_get_nth (array, 0); + if (G_VALUE_HOLDS_UINT (value)) + new_state = g_value_get_uint (value) + 1; + + value = g_value_array_get_nth (array, 1); + if (G_VALUE_HOLDS_STRING (value)) { + new_op_code = g_value_dup_string (value); + if (new_op_code && !strlen (new_op_code)) { + g_free (new_op_code); + new_op_code = NULL; + } + } + + value = g_value_array_get_nth (array, 2); + if (G_VALUE_HOLDS_STRING (value)) + new_op_name = parse_op_name (info, g_value_get_string (value), new_op_code); + } + + g_value_array_free (array); + } + + if (info->reg_state != new_state) { + info->reg_state = new_state; + notify_user_of_gsm_reg_change (info); + } + + g_free (info->op_code); + info->op_code = new_op_code; + g_free (info->op_name); + info->op_name = new_op_name; + + g_clear_error (&error); +} + +static void +enabled_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_BOOLEAN (&value)) + info->modem_enabled = g_value_get_boolean (&value); + g_value_unset (&value); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static char * +parse_unlock_required (GValue *value) +{ + const char *new_val; + + /* Empty string means NULL */ + new_val = g_value_get_string (value); + if (new_val && strlen (new_val)) { + /* PIN2/PUK2 only required for various dialing things that we don't care + * about; it doesn't inhibit normal operation. + */ + if (strcmp (new_val, "sim-puk2") && strcmp (new_val, "sim-pin2")) + return g_strdup (new_val); + } + + return NULL; +} + +static void +keyring_unlock_pin_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + + if (!dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + g_warning ("Failed to auto-unlock devid:%s simid:%s : (%s) %s", + info->devid ? info->devid : "(unknown)", + info->simid ? info->simid : "(unknown)", + dbus_g_error_get_name (error), + error->message); + /* Ask the user */ + unlock_dialog_new (info->device, info); + g_clear_error (&error); + } +} + +static void +keyring_pin_check_cb (GnomeKeyringResult result, GList *list, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GList *iter; + const char *pin = NULL; + + info->keyring_id = NULL; + + if (result != GNOME_KEYRING_RESULT_OK) { + /* No saved PIN, just ask the user */ + unlock_dialog_new (info->device, info); + return; + } + + /* Look for a result with a matching "simid" attribute since that's + * better than just using a matching "devid". The PIN is really tied + * to the SIM, not the modem itself. + */ + for (iter = list; + info->simid && (pin == NULL) && iter; + iter = g_list_next (iter)) { + GnomeKeyringFound *found = iter->data; + int i; + + /* Look for a matching "simid" attribute */ + for (i = 0; (pin == NULL) && i < found->attributes->len; i++) { + GnomeKeyringAttribute attr = gnome_keyring_attribute_list_index (found->attributes, i); + + if ( g_strcmp0 (attr.name, "simid") == 0 + && attr.type == GNOME_KEYRING_ATTRIBUTE_TYPE_STRING + && g_strcmp0 (attr.value.string, info->simid) == 0) { + pin = found->secret; + break; + } + } + } + + if (pin == NULL) { + /* Fall back to the first result's PIN */ + pin = ((GnomeKeyringFound *) list->data)->secret; + if (pin == NULL) { + /* Should never get here */ + g_warn_if_fail (pin != NULL); + unlock_dialog_new (info->device, info); + return; + } + } + + /* Send the PIN code to ModemManager */ + if (!dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPin", + keyring_unlock_pin_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, pin, + G_TYPE_INVALID)) { + g_warning ("Failed to auto-unlock devid:%s simid:%s", + info->devid ? info->devid : "(unknown)", + info->simid ? info->simid : "(unknown)"); + } +} + +static void +simid_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_STRING (&value)) { + g_free (info->simid); + info->simid = g_value_dup_string (&value); + } + g_value_unset (&value); + } + g_clear_error (&error); + + /* Procure unlock code and apply it if an unlock is now required. */ + if (info->unlock_required) { + /* If we have a device ID ask the keyring for any saved SIM-PIN codes */ + if (info->devid && (g_strcmp0 (info->unlock_required, "sim-pin") == 0)) { + g_warn_if_fail (info->keyring_id == NULL); + info->keyring_id = gnome_keyring_find_itemsv (GNOME_KEYRING_ITEM_GENERIC_SECRET, + keyring_pin_check_cb, + info, + NULL, + "devid", + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + info->devid, + NULL); + } else { + /* Couldn't get a device ID, but unlock required; present dialog */ + unlock_dialog_new (info->device, info); + } + } + + check_start_polling (info); +} + +#define MM_DBUS_INTERFACE_MODEM_GSM_CARD "org.freedesktop.ModemManager.Modem.Gsm.Card" + +static void +unlock_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GHashTable *props = NULL; + + if (dbus_g_proxy_end_call (proxy, call, &error, + DBUS_TYPE_G_MAP_OF_VARIANT, &props, + G_TYPE_INVALID)) { + GHashTableIter iter; + const char *prop_name; + GValue *value; + + g_hash_table_iter_init (&iter, props); + while (g_hash_table_iter_next (&iter, (gpointer) &prop_name, (gpointer) &value)) { + if ((strcmp (prop_name, "UnlockRequired") == 0) && G_VALUE_HOLDS_STRING (value)) { + g_free (info->unlock_required); + info->unlock_required = parse_unlock_required (value); + } + + if ((strcmp (prop_name, "DeviceIdentifier") == 0) && G_VALUE_HOLDS_STRING (value)) { + g_free (info->devid); + info->devid = g_value_dup_string (value); + } + } + g_hash_table_destroy (props); + + /* Get SIM card identifier */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + simid_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM_GSM_CARD, + G_TYPE_STRING, "SimIdentifier", + G_TYPE_INVALID); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static void +access_tech_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_UINT (&value)) { + info->act = g_value_get_uint (&value); + applet_schedule_update_icon (info->applet); + } + g_value_unset (&value); + } + g_clear_error (&error); +} + +static gboolean +gsm_poll_cb (gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + + /* MM might have just sent an unsolicited update, in which case we just + * skip this poll and wait till the next one. + */ + + if (!info->skip_reg_poll) { + dbus_g_proxy_begin_call (info->net_proxy, "GetRegistrationInfo", + reg_info_reply, info, NULL, + G_TYPE_INVALID); + info->skip_reg_poll = FALSE; + } + + if (!info->skip_signal_poll) { + dbus_g_proxy_begin_call (info->net_proxy, "GetSignalQuality", + signal_reply, info, NULL, + G_TYPE_INVALID); + info->skip_signal_poll = FALSE; + } + + return TRUE; /* keep running until we're told to stop */ +} + +static void +check_start_polling (GsmDeviceInfo *info) +{ + NMDeviceState state; + gboolean poll = TRUE; + + g_return_if_fail (info != NULL); + + /* Don't poll if any of the following are true: + * + * 1) NM says the device is not available + * 2) the modem requires an unlock code + * 3) the modem isn't enabled + */ + + state = nm_device_get_state (info->device); + if ( (state <= NM_DEVICE_STATE_UNAVAILABLE) + || info->unlock_required + || (info->modem_enabled == FALSE)) + poll = FALSE; + + if (poll) { + if (!info->poll_id) { + /* 33 seconds to be just a bit more than MM's poll interval, so + * that if we get an unsolicited update from MM between polls we'll + * skip the next poll. + */ + info->poll_id = g_timeout_add_seconds (33, gsm_poll_cb, info); + } + gsm_poll_cb (info); + } else { + if (info->poll_id) + g_source_remove (info->poll_id); + info->poll_id = 0; + info->skip_reg_poll = FALSE; + info->skip_signal_poll = FALSE; + } +} + +static void +reg_info_changed_cb (DBusGProxy *proxy, + guint32 reg_state, + const char *op_code, + const char *op_name, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + guint32 new_state = reg_state + 1; + + if (info->reg_state != new_state) { + info->reg_state = new_state; + notify_user_of_gsm_reg_change (info); + } + + g_free (info->op_code); + info->op_code = strlen (op_code) ? g_strdup (op_code) : NULL; + g_free (info->op_name); + info->op_name = parse_op_name (info, op_name, info->op_code); + info->skip_reg_poll = TRUE; + +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (info->applet); +#endif /* ENABLE_INDICATOR */ +} + +static void +signal_quality_changed_cb (DBusGProxy *proxy, + guint32 quality, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + + info->quality = quality; + info->quality_valid = TRUE; + info->skip_signal_poll = TRUE; + + applet_schedule_update_icon (info->applet); +} + +#define MM_DBUS_INTERFACE_MODEM "org.freedesktop.ModemManager.Modem" +#define MM_DBUS_INTERFACE_MODEM_GSM_NETWORK "org.freedesktop.ModemManager.Modem.Gsm.Network" + +static void +modem_properties_changed (DBusGProxy *proxy, + const char *interface, + GHashTable *props, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GValue *value; + + if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM)) { + value = g_hash_table_lookup (props, "UnlockRequired"); + if (value && G_VALUE_HOLDS_STRING (value)) { + g_free (info->unlock_required); + info->unlock_required = parse_unlock_required (value); + check_start_polling (info); + } + + value = g_hash_table_lookup (props, "Enabled"); + if (value && G_VALUE_HOLDS_BOOLEAN (value)) { + info->modem_enabled = g_value_get_boolean (value); + if (!info->modem_enabled) { + info->quality = 0; + info->quality_valid = 0; + info->reg_state = 0; + info->act = 0; + g_free (info->op_code); + info->op_code = NULL; + g_free (info->op_name); + info->op_name = NULL; + } + check_start_polling (info); + } + } else if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM_GSM_NETWORK)) { + value = g_hash_table_lookup (props, "AccessTechnology"); + if (value && G_VALUE_HOLDS_UINT (value)) { + info->act = g_value_get_uint (value); + applet_schedule_update_icon (info->applet); + } + } +} + +static void +gsm_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceModem *modem = NM_DEVICE_MODEM (device); + GsmDeviceInfo *info; + const char *udi; + DBusGConnection *bus; + GError *error = NULL; + + udi = nm_device_get_udi (device); + if (!udi) + return; + + bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); + if (!bus) { + g_warning ("%s: failed to connect to D-Bus: (%d) %s", __func__, error->code, error->message); + g_clear_error (&error); + return; + } + + info = g_malloc0 (sizeof (GsmDeviceInfo)); + info->applet = applet; + info->device = device; + info->bus = bus; + + info->props_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.DBus.Properties"); + if (!info->props_proxy) { + g_message ("%s: failed to create D-Bus properties proxy.", __func__); + gsm_device_info_free (info); + return; + } + + info->card_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.ModemManager.Modem.Gsm.Card"); + if (!info->card_proxy) { + g_message ("%s: failed to create GSM Card proxy.", __func__); + gsm_device_info_free (info); + return; + } + + info->net_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + MM_DBUS_INTERFACE_MODEM_GSM_NETWORK); + if (!info->net_proxy) { + g_message ("%s: failed to create GSM Network proxy.", __func__); + gsm_device_info_free (info); + return; + } + + g_object_set_data_full (G_OBJECT (modem), "devinfo", info, gsm_device_info_free); + + /* Registration info signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__UINT_STRING_STRING, + G_TYPE_NONE, + G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->net_proxy, "RegistrationInfo", + G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->net_proxy, "RegistrationInfo", + G_CALLBACK (reg_info_changed_cb), info, NULL); + + /* Signal quality change signal */ + dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->net_proxy, "SignalQuality", G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->net_proxy, "SignalQuality", + G_CALLBACK (signal_quality_changed_cb), info, NULL); + + /* Modem property change signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__STRING_BOXED, + G_TYPE_NONE, G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, + G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->props_proxy, "MmPropertiesChanged", + G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->props_proxy, "MmPropertiesChanged", + G_CALLBACK (modem_properties_changed), + info, NULL); + + /* Ask whether the device needs to be unlocked */ + dbus_g_proxy_begin_call (info->props_proxy, "GetAll", + unlock_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_INVALID); + + /* Ask whether the device is enabled */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + enabled_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_STRING, "Enabled", + G_TYPE_INVALID); + + dbus_g_proxy_begin_call (info->props_proxy, "Get", + access_tech_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM_GSM_NETWORK, + G_TYPE_STRING, "AccessTechnology", + G_TYPE_INVALID); +} + +NMADeviceClass * +applet_device_gsm_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = gsm_new_auto_connection; + dclass->add_menu_item = gsm_add_menu_item; + dclass->device_state_changed = gsm_device_state_changed; + dclass->get_icon = gsm_get_icon; + dclass->get_secrets = gsm_get_secrets; + dclass->secrets_request_size = sizeof (NMGsmSecretsInfo); + dclass->device_added = gsm_device_added; + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/lp1048520_delay_pin_dialog_in_greeter.patch/src/applet-device-gsm.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp1048520_delay_pin_dialog_in_greeter.patch/src/applet-device-gsm.c --- network-manager-applet-0.9.4.1/.pc/lp1048520_delay_pin_dialog_in_greeter.patch/src/applet-device-gsm.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp1048520_delay_pin_dialog_in_greeter.patch/src/applet-device-gsm.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1824 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + * (C) Copyright 2008 Novell, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-gsm.h" +#include "utils.h" +#include "nm-mobile-wizard.h" +#include "mobile-helpers.h" +#include "applet-dialogs.h" +#include "mb-menu-item.h" +#include "nma-marshal.h" +#include "nmn-mobile-providers.h" +#include "nm-ui-utils.h" + +typedef enum { + MM_MODEM_GSM_ACCESS_TECH_UNKNOWN = 0, + MM_MODEM_GSM_ACCESS_TECH_GSM = 1, + MM_MODEM_GSM_ACCESS_TECH_GSM_COMPACT = 2, + MM_MODEM_GSM_ACCESS_TECH_GPRS = 3, + MM_MODEM_GSM_ACCESS_TECH_EDGE = 4, /* GSM w/EGPRS */ + MM_MODEM_GSM_ACCESS_TECH_UMTS = 5, /* UTRAN */ + MM_MODEM_GSM_ACCESS_TECH_HSDPA = 6, /* UTRAN w/HSDPA */ + MM_MODEM_GSM_ACCESS_TECH_HSUPA = 7, /* UTRAN w/HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA = 8, /* UTRAN w/HSDPA and HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS = 9, + MM_MODEM_GSM_ACCESS_TECH_LTE = 10, + + MM_MODEM_GSM_ACCESS_TECH_LAST = MM_MODEM_GSM_ACCESS_TECH_LTE +} MMModemGsmAccessTech; + +typedef struct { + NMApplet *applet; + NMDevice *device; + + DBusGConnection *bus; + DBusGProxy *props_proxy; + DBusGProxy *card_proxy; + DBusGProxy *net_proxy; + + gboolean quality_valid; + guint32 quality; + char *unlock_required; + char *devid; + char *simid; + gboolean modem_enabled; + MMModemGsmAccessTech act; + + /* reg_state is (1 + MM reg state) so that 0 means we haven't gotten a + * value from MM yet. 0 is a valid MM GSM reg state. + */ + guint reg_state; + char *op_code; + char *op_name; + GHashTable *providers; + + guint32 poll_id; + gboolean skip_reg_poll; + gboolean skip_signal_poll; + + /* Unlock dialog stuff */ + GtkWidget *dialog; + gpointer keyring_id; +} GsmDeviceInfo; + +static void unlock_dialog_destroy (GsmDeviceInfo *info); +static void check_start_polling (GsmDeviceInfo *info); + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} GSMMenuItemInfo; + +static void +gsm_menu_item_info_destroy (gpointer data) +{ + GSMMenuItemInfo *info = data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (info->connection); + + g_slice_free (GSMMenuItemInfo, data); +} + +typedef struct { + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} AutoGsmWizardInfo; + +static void +mobile_wizard_done (NMAMobileWizard *wizard, + gboolean canceled, + NMAMobileWizardAccessMethod *method, + gpointer user_data) +{ + AutoGsmWizardInfo *info = user_data; + NMConnection *connection = NULL; + + if (!canceled && method) { + NMSetting *setting; + char *uuid, *id; + + if (method->devtype != NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + g_warning ("Unexpected device type (not GSM)."); + canceled = TRUE; + goto done; + } + + connection = nm_connection_new (); + + setting = nm_setting_gsm_new (); + g_object_set (setting, + NM_SETTING_GSM_NUMBER, "*99#", + NM_SETTING_GSM_USERNAME, method->username, + NM_SETTING_GSM_PASSWORD, method->password, + NM_SETTING_GSM_APN, method->gsm_apn, + NULL); + nm_connection_add_setting (connection, setting); + + /* Serial setting */ + setting = nm_setting_serial_new (); + g_object_set (setting, + NM_SETTING_SERIAL_BAUD, 115200, + NM_SETTING_SERIAL_BITS, 8, + NM_SETTING_SERIAL_PARITY, 'n', + NM_SETTING_SERIAL_STOPBITS, 1, + NULL); + nm_connection_add_setting (connection, setting); + + nm_connection_add_setting (connection, nm_setting_ppp_new ()); + + setting = nm_setting_connection_new (); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); + uuid = nm_utils_uuid_generate (); + g_object_set (setting, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_GSM_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + g_free (id); + nm_connection_add_setting (connection, setting); + } + +done: + (*(info->callback)) (connection, TRUE, canceled, info->callback_data); + + if (wizard) + nma_mobile_wizard_destroy (wizard); + g_free (info); +} + +static gboolean +do_mobile_wizard (AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMAMobileWizard *wizard; + AutoGsmWizardInfo *info; + NMAMobileWizardAccessMethod *method; + + info = g_malloc0 (sizeof (AutoGsmWizardInfo)); + info->callback = callback; + info->callback_data = callback_data; + + wizard = nma_mobile_wizard_new (NULL, NULL, NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS, FALSE, + mobile_wizard_done, info); + if (wizard) { + nma_mobile_wizard_present (wizard); + return TRUE; + } + + /* Fall back to something */ + method = g_malloc0 (sizeof (NMAMobileWizardAccessMethod)); + method->devtype = NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS; + method->provider_name = _("GSM"); + mobile_wizard_done (NULL, FALSE, method, info); + g_free (method); + + return TRUE; +} + +static gboolean +gsm_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + return do_mobile_wizard (callback, callback_data); +} + +static void +dbus_3g_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; +} Dbus3gInfo; + +static void +dbus_connect_3g_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus3gInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + "/", + dbus_3g_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +void +applet_gsm_connect_network (NMApplet *applet, NMDevice *device) +{ + Dbus3gInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + + do_mobile_wizard (dbus_connect_3g_cb, info); +} + +static void +gsm_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + GSMMenuItemInfo *info = (GSMMenuItemInfo *) user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + +static void +add_connection_item (NMDevice *device, + NMConnection *connection, + GtkWidget *item, + GtkWidget *menu, + NMApplet *applet) +{ + GSMMenuItemInfo *info; + + info = g_slice_new0 (GSMMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = connection ? g_object_ref (connection) : NULL; + + g_signal_connect_data (item, "activate", + G_CALLBACK (gsm_menu_item_activate), + info, + (GClosureNotify) gsm_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); +} + +static guint32 +gsm_state_to_mb_state (GsmDeviceInfo *info) +{ + if (!info->modem_enabled) + return MB_STATE_UNKNOWN; + + switch (info->reg_state) { + case 1: /* IDLE */ + return MB_STATE_IDLE; + case 2: /* HOME */ + return MB_STATE_HOME; + case 3: /* SEARCHING */ + return MB_STATE_SEARCHING; + case 4: /* DENIED */ + return MB_STATE_DENIED; + case 6: /* ROAMING */ + return MB_STATE_ROAMING; + case 5: /* UNKNOWN */ + default: + break; + } + + return MB_STATE_UNKNOWN; +} + +static guint32 +gsm_act_to_mb_act (GsmDeviceInfo *info) +{ + switch (info->act) { + case MM_MODEM_GSM_ACCESS_TECH_GPRS: + return MB_TECH_GPRS; + case MM_MODEM_GSM_ACCESS_TECH_EDGE: + return MB_TECH_EDGE; + case MM_MODEM_GSM_ACCESS_TECH_UMTS: + return MB_TECH_UMTS; + case MM_MODEM_GSM_ACCESS_TECH_HSDPA: + return MB_TECH_HSDPA; + case MM_MODEM_GSM_ACCESS_TECH_HSUPA: + return MB_TECH_HSUPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA: + return MB_TECH_HSPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS: + return MB_TECH_HSPA_PLUS; + case MM_MODEM_GSM_ACCESS_TECH_LTE: + return MB_TECH_LTE; + default: + break; + } + + return MB_TECH_GSM; +} + +static void +gsm_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + GsmDeviceInfo *info; + char *text; + GtkWidget *item; + GSList *connections, *all, *iter; +#ifdef ENABLE_INDICATOR + GtkWidget *signal_icon; +#endif + gboolean allowed; + NMClientPermissionResult perm; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + text = g_strdup_printf (_("Mobile Broadband (%s)"), desc); + } else { + text = g_strdup (_("Mobile Broadband")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); +#ifndef ENABLE_INDICATOR + gtk_widget_set_sensitive (item, FALSE); +#endif + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + g_free (text); + + /* Add the active connection */ + if (active) { + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (active); + g_assert (s_con); + +#ifndef ENABLE_INDICATOR + item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), + info->quality_valid ? info->quality : 0, + info->op_name, + TRUE, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info), + info->modem_enabled, + applet); +#else + text = mobile_helper_get_connection_label (nm_setting_connection_get_id (s_con), + info->op_name, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#endif + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + add_connection_item (device, active, item, menu, applet); + } + + /* Notify user of unmanaged or unavailable device */ + if (nm_device_get_state (device) > NM_DEVICE_STATE_DISCONNECTED) { + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + } else { + /* Otherwise show idle registration state or disabled */ +#ifndef ENABLE_INDICATOR + item = nm_mb_menu_item_new (NULL, + info->quality_valid ? info->quality : 0, + info->op_name, + FALSE, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info), + info->modem_enabled, + applet); +#else + text = mobile_helper_get_connection_label (NULL, + info->op_name, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + gtk_widget_set_sensitive (item, FALSE); +#endif + + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + + /* Add the default / inactive connection items */ + if (!nma_menu_device_check_unusable (device)) { + if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (connections)) { + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (connection != active) { + item = applet_new_menu_item_helper (connection, NULL, FALSE); + add_connection_item (device, connection, item, menu, applet); + } + } + } else { + + allowed = FALSE; + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_NETWORK_CONTROL); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + allowed = TRUE; + } else { + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + allowed = TRUE; + } + } + } + + /* Default connection item */ + item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (GSM) connection...")); + gtk_widget_set_sensitive (GTK_WIDGET (item), allowed); + if (!allowed && applet->hide_policy_items) { + /* don't add the item if it should be hidden */ + g_object_ref_sink (item); + g_object_unref (item); + } else + add_connection_item (device, NULL, item, menu, applet); + } + } + + g_slist_free (connections); +} + +static void +gsm_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + GsmDeviceInfo *info; + + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + const char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, + str ? str : _("GSM network."), + _("Connection Established"), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } + + /* Start/stop polling of quality and registration when device state changes */ + info = g_object_get_data (G_OBJECT (device), "devinfo"); + check_start_polling (info); +} + +static void +gsm_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *id; + GsmDeviceInfo *info; + guint32 mb_state; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (info); + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + mb_state = gsm_state_to_mb_state (info); + *out_pixbuf = mobile_helper_get_status_pixbuf (info->quality, + info->quality_valid, + mb_state, + gsm_act_to_mb_act (info), + applet); + *out_indicator_icon = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + + if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { + gboolean roaming = (mb_state == MB_STATE_ROAMING); + + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active: (%d%%%s%s)"), + id, info->quality, + roaming ? ", " : "", + roaming ? _("roaming") : ""); + } else + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active"), id); + break; + default: + break; + } +} + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkEntry *secret_entry; + char *secret_name; +} NMGsmSecretsInfo; + +static void +free_gsm_secrets_info (SecretsRequest *req) +{ + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } + + g_free (info->secret_name); +} + +static void +get_gsm_secrets_cb (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + NMSettingGsm *setting; + GError *error = NULL; + + if (response == GTK_RESPONSE_OK) { + setting = nm_connection_get_setting_gsm (req->connection); + if (setting) { + g_object_set (G_OBJECT (setting), + info->secret_name, gtk_entry_get_text (info->secret_entry), + NULL); + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): no GSM setting", + __FILE__, __LINE__, __func__); + } + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + } + + applet_secrets_request_complete_setting (req, NM_SETTING_GSM_SETTING_NAME, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static void +pin_entry_changed (GtkEditable *editable, gpointer user_data) +{ + GtkWidget *ok_button = GTK_WIDGET (user_data); + const char *s; + int i; + gboolean valid = FALSE; + guint32 len; + + s = gtk_entry_get_text (GTK_ENTRY (editable)); + if (s) { + len = strlen (s); + if ((len >= 4) && (len <= 8)) { + valid = TRUE; + for (i = 0; i < len; i++) { + if (!g_ascii_isdigit (s[i])) { + valid = FALSE; + break; + } + } + } + } + + gtk_widget_set_sensitive (ok_button, valid); +} + +static GtkWidget * +ask_for_pin (GtkEntry **out_secret_entry) +{ + GtkDialog *dialog; + GtkWidget *w = NULL, *ok_button = NULL; + GtkBox *box = NULL, *vbox = NULL; + + dialog = GTK_DIALOG (gtk_dialog_new ()); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_title (GTK_WINDOW (dialog), _("PIN code required")); + + ok_button = gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); + ok_button = gtk_dialog_add_button (dialog, GTK_STOCK_OK, GTK_RESPONSE_OK); + gtk_window_set_default (GTK_WINDOW (dialog), ok_button); + + vbox = GTK_BOX (gtk_dialog_get_content_area (dialog)); + + w = gtk_label_new (_("PIN code is needed for the mobile broadband device")); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + + w = gtk_alignment_new (0.5, 0.5, 0, 1.0); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + +#if GTK_CHECK_VERSION(3,1,6) + box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6)); +#else + box = GTK_BOX (gtk_hbox_new (FALSE, 6)); +#endif + gtk_container_set_border_width (GTK_CONTAINER (box), 6); + gtk_container_add (GTK_CONTAINER (w), GTK_WIDGET (box)); + + gtk_box_pack_start (box, gtk_label_new ("PIN:"), FALSE, FALSE, 0); + + w = gtk_entry_new (); + *out_secret_entry = GTK_ENTRY (w); + gtk_entry_set_max_length (GTK_ENTRY (w), 8); + gtk_entry_set_width_chars (GTK_ENTRY (w), 8); + gtk_entry_set_activates_default (GTK_ENTRY (w), TRUE); + gtk_entry_set_visibility (GTK_ENTRY (w), FALSE); + gtk_box_pack_start (box, w, FALSE, FALSE, 0); + g_signal_connect (w, "changed", G_CALLBACK (pin_entry_changed), ok_button); + pin_entry_changed (GTK_EDITABLE (w), ok_button); + + gtk_widget_show_all (GTK_WIDGET (vbox)); + return GTK_WIDGET (dialog); +} + +static gboolean +gsm_get_secrets (SecretsRequest *req, GError **error) +{ + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + GtkWidget *widget; + GtkEntry *secret_entry = NULL; + + applet_secrets_request_set_free_func (req, free_gsm_secrets_info); + + if (!req->hints || !g_strv_length (req->hints)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): missing secrets hints.", + __FILE__, __LINE__, __func__); + return FALSE; + } + info->secret_name = g_strdup (req->hints[0]); + + if (!strcmp (info->secret_name, NM_SETTING_GSM_PIN)) { + NMDevice *device; + GsmDeviceInfo *devinfo; + + device = applet_get_device_for_connection (req->applet, req->connection); + if (!device) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to find device for active connection.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + devinfo = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (devinfo); + + /* A GetSecrets PIN dialog overrides the initial unlock dialog */ + if (devinfo->dialog) + unlock_dialog_destroy (devinfo); + + widget = ask_for_pin (&secret_entry); + } else if (!strcmp (info->secret_name, NM_SETTING_GSM_PASSWORD)) + widget = applet_mobile_password_dialog_new (req->connection, &secret_entry); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unknown secrets hint '%s'.", + __FILE__, __LINE__, __func__, info->secret_name); + return FALSE; + } + info->dialog = widget; + info->secret_entry = secret_entry; + + if (!widget || !secret_entry) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): error asking for GSM secrets.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (widget, "response", G_CALLBACK (get_gsm_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (GTK_WIDGET (widget)); + gtk_window_present (GTK_WINDOW (widget)); + + return TRUE; +} + +/********************************************************************/ + +static void +save_pin_cb (GnomeKeyringResult result, guint32 val, gpointer user_data) +{ + if (result != GNOME_KEYRING_RESULT_OK) + g_warning ("%s: result %d", (const char *) user_data, result); +} + +static void +set_pin_in_keyring (const char *devid, + const char *simid, + const char *pin) +{ + GnomeKeyringAttributeList *attributes; + GnomeKeyringAttribute attr; + const char *name; + char *error_msg; + + name = g_strdup_printf (_("PIN code for SIM card '%s' on '%s'"), + simid ? simid : "unknown", + devid); + + attributes = gnome_keyring_attribute_list_new (); + attr.name = g_strdup ("devid"); + attr.type = GNOME_KEYRING_ATTRIBUTE_TYPE_STRING; + attr.value.string = g_strdup (devid); + g_array_append_val (attributes, attr); + + if (simid) { + attr.name = g_strdup ("simid"); + attr.type = GNOME_KEYRING_ATTRIBUTE_TYPE_STRING; + attr.value.string = g_strdup (simid); + g_array_append_val (attributes, attr); + } + + error_msg = g_strdup_printf ("Saving PIN code in keyring for devid:%s simid:%s failed", + devid, simid ? simid : "(unknown)"); + + gnome_keyring_item_create (NULL, + GNOME_KEYRING_ITEM_GENERIC_SECRET, + name, + attributes, + pin, + TRUE, + save_pin_cb, + error_msg, + (GDestroyNotify) g_free); + + gnome_keyring_attribute_list_free (attributes); +} + +static void +delete_pin_cb (GnomeKeyringResult result, gpointer user_data) +{ + /* nothing to do */ +} + +static void +delete_pins_find_cb (GnomeKeyringResult result, GList *list, gpointer user_data) +{ + GList *iter; + + if (result == GNOME_KEYRING_RESULT_OK) { + for (iter = list; iter; iter = g_list_next (iter)) { + GnomeKeyringFound *found = iter->data; + + gnome_keyring_item_delete (found->keyring, found->item_id, delete_pin_cb, NULL, NULL); + } + } +} + +static void +delete_pins_in_keyring (const char *devid) +{ + gnome_keyring_find_itemsv (GNOME_KEYRING_ITEM_GENERIC_SECRET, + delete_pins_find_cb, + NULL, + NULL, + "devid", + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + devid, + NULL); +} + +static void +unlock_dialog_destroy (GsmDeviceInfo *info) +{ + applet_mobile_pin_dialog_destroy (info->dialog); + info->dialog = NULL; +} + +static void +unlock_pin_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + const char *dbus_error, *msg = NULL, *code1; + + if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + if (applet_mobile_pin_dialog_get_auto_unlock (info->dialog)) { + code1 = applet_mobile_pin_dialog_get_entry1 (info->dialog); + set_pin_in_keyring (info->devid, info->simid, code1); + } else + delete_pins_in_keyring (info->devid); + unlock_dialog_destroy (info); + return; + } + + dbus_error = dbus_g_error_get_name (error); + if (dbus_error && !strcmp (dbus_error, "org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword")) + msg = _("Wrong PIN code; please contact your provider."); + else + msg = error ? error->message : NULL; + + applet_mobile_pin_dialog_stop_spinner (info->dialog, msg); + g_warning ("%s: error unlocking with PIN: %s", __func__, error->message); + g_clear_error (&error); +} + +static void +unlock_puk_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + const char *dbus_error, *msg = NULL; + + if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + unlock_dialog_destroy (info); + return; + } + + dbus_error = dbus_g_error_get_name (error); + if (dbus_error && !strcmp (dbus_error, "org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword")) + msg = _("Wrong PUK code; please contact your provider."); + else + msg = error ? error->message : NULL; + + applet_mobile_pin_dialog_stop_spinner (info->dialog, msg); + g_warning ("%s: error unlocking with PIN: %s", __func__, error->message); + g_clear_error (&error); +} + +#define UNLOCK_CODE_PIN 1 +#define UNLOCK_CODE_PUK 2 + +static void +unlock_dialog_response (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + const char *code1, *code2; + guint32 unlock_code; + + if (response == GTK_RESPONSE_CANCEL || response == GTK_RESPONSE_DELETE_EVENT) { + unlock_dialog_destroy (info); + return; + } + + /* Start the spinner to show the progress of the unlock */ + applet_mobile_pin_dialog_start_spinner (info->dialog, _("Sending unlock code...")); + + unlock_code = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (info->dialog), "unlock-code")); + if (!unlock_code) { + g_warn_if_fail (unlock_code != 0); + unlock_dialog_destroy (info); + return; + } + + code1 = applet_mobile_pin_dialog_get_entry1 (info->dialog); + if (!code1 || !strlen (code1)) { + g_warn_if_fail (code1 != NULL); + g_warn_if_fail (strlen (code1)); + unlock_dialog_destroy (info); + return; + } + + /* Send the code to ModemManager */ + if (unlock_code == UNLOCK_CODE_PIN) { + dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPin", + unlock_pin_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, code1, + G_TYPE_INVALID); + } else if (unlock_code == UNLOCK_CODE_PUK) { + code2 = applet_mobile_pin_dialog_get_entry2 (info->dialog); + if (!code2) { + g_warn_if_fail (code2 != NULL); + unlock_dialog_destroy (info); + return; + } + + dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPuk", + unlock_puk_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, code1, + G_TYPE_STRING, code2, + G_TYPE_INVALID); + } +} + +static void +unlock_dialog_new (NMDevice *device, GsmDeviceInfo *info) +{ + const char *header = NULL; + const char *title = NULL; + const char *show_pass_label = NULL; + char *desc = NULL; + const char *label1 = NULL, *label2 = NULL, *label3 = NULL; + const char *device_desc; + gboolean match23 = FALSE; + guint32 label1_min = 0, label2_min = 0, label3_min = 0; + guint32 label1_max = 0, label2_max = 0, label3_max = 0; + guint32 unlock_code = 0; + gboolean show_save = FALSE; + NMClientPermission perm; + + g_return_if_fail (info->unlock_required != NULL); + + if (info->dialog) + return; + + /* Figure out the dialog text based on the required unlock code */ + device_desc = nma_utils_get_device_description (device); + if (!strcmp (info->unlock_required, "sim-pin")) { + title = _("SIM PIN unlock required"); + header = _("SIM PIN Unlock Required"); + /* FIXME: some warning about # of times you can enter incorrect PIN */ + desc = g_strdup_printf (_("The mobile broadband device '%s' requires a SIM PIN code before it can be used."), device_desc); + /* Translators: PIN code entry label */ + label1 = _("PIN code:"); + label1_min = 4; + label1_max = 8; + /* Translators: Show/obscure PIN checkbox label */ + show_pass_label = _("Show PIN code"); + unlock_code = UNLOCK_CODE_PIN; + } else if (!strcmp (info->unlock_required, "sim-puk")) { + title = _("SIM PUK unlock required"); + header = _("SIM PUK Unlock Required"); + /* FIXME: some warning about # of times you can enter incorrect PUK */ + desc = g_strdup_printf (_("The mobile broadband device '%s' requires a SIM PUK code before it can be used."), device_desc); + /* Translators: PUK code entry label */ + label1 = _("PUK code:"); + label1_min = label1_max = 8; + /* Translators: New PIN entry label */ + label2 = _("New PIN code:"); + /* Translators: New PIN verification entry label */ + label3 = _("Re-enter new PIN code:"); + label2_min = label3_min = 4; + label2_max = label3_max = 8; + match23 = TRUE; + /* Translators: Show/obscure PIN/PUK checkbox label */ + show_pass_label = _("Show PIN/PUK codes"); + unlock_code = UNLOCK_CODE_PUK; + } else { + g_warning ("Unhandled unlock request for '%s'", info->unlock_required); + return; + } + + show_save = (unlock_code == UNLOCK_CODE_PIN) ? TRUE : FALSE; + perm = NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN; + if (! ( info->applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_YES + || info->applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_AUTH)) + show_save = FALSE; + + /* Construct and run the dialog */ + info->dialog = applet_mobile_pin_dialog_new (title, + header, + desc, + show_pass_label, + show_save); + g_free (desc); + g_return_if_fail (info->dialog != NULL); + + g_object_set_data (G_OBJECT (info->dialog), "unlock-code", GUINT_TO_POINTER (unlock_code)); + applet_mobile_pin_dialog_match_23 (info->dialog, match23); + + applet_mobile_pin_dialog_set_entry1 (info->dialog, label1, label1_min, label1_max); + if (label2) + applet_mobile_pin_dialog_set_entry2 (info->dialog, label2, label2_min, label2_max); + if (label3) + applet_mobile_pin_dialog_set_entry3 (info->dialog, label3, label3_min, label3_max); + + g_signal_connect (info->dialog, "response", G_CALLBACK (unlock_dialog_response), info); + applet_mobile_pin_dialog_present (info->dialog, FALSE); +} + +/********************************************************************/ + +static void +gsm_device_info_free (gpointer data) +{ + GsmDeviceInfo *info = data; + + if (info->props_proxy) + g_object_unref (info->props_proxy); + if (info->card_proxy) + g_object_unref (info->card_proxy); + if (info->net_proxy) + g_object_unref (info->net_proxy); + if (info->bus) + dbus_g_connection_unref (info->bus); + + if (info->keyring_id) + gnome_keyring_cancel_request (info->keyring_id); + + if (info->providers) + g_hash_table_destroy (info->providers); + + if (info->poll_id) + g_source_remove (info->poll_id); + + if (info->dialog) + unlock_dialog_destroy (info); + + g_free (info->devid); + g_free (info->simid); + g_free (info->op_code); + g_free (info->op_name); + memset (info, 0, sizeof (GsmDeviceInfo)); + g_free (info); +} + +static void +signal_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + guint32 quality = 0; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_UINT, &quality, + G_TYPE_INVALID)) { + info->quality = quality; + info->quality_valid = TRUE; + applet_schedule_update_icon (info->applet); + } + + g_clear_error (&error); +} + +static char * +find_provider_for_mcc_mnc (GHashTable *table, const char *mccmnc) +{ + GHashTableIter iter; + gpointer value; + GSList *piter, *siter; + const char *name2 = NULL, *name3 = NULL; + gboolean done = FALSE; + + if (!mccmnc) + return NULL; + + g_hash_table_iter_init (&iter, table); + /* Search through each country */ + while (g_hash_table_iter_next (&iter, NULL, &value) && !done) { + GSList *providers = value; + + /* Search through each country's providers */ + for (piter = providers; piter && !done; piter = g_slist_next (piter)) { + NmnMobileProvider *provider = piter->data; + + /* Search through MCC/MNC list */ + for (siter = provider->gsm_mcc_mnc; siter; siter = g_slist_next (siter)) { + NmnGsmMccMnc *mcc = siter->data; + + /* Match both 2-digit and 3-digit MNC; prefer a + * 3-digit match if found, otherwise a 2-digit one. + */ + if (strncmp (mcc->mcc, mccmnc, 3)) + continue; /* MCC was wrong */ + + if ( !name3 + && (strlen (mccmnc) == 6) + && !strncmp (mccmnc + 3, mcc->mnc, 3)) + name3 = provider->name; + + if ( !name2 + && !strncmp (mccmnc + 3, mcc->mnc, 2)) + name2 = provider->name; + + if (name2 && name3) { + done = TRUE; + break; + } + } + } + } + + if (name3) + return g_strdup (name3); + return g_strdup (name2); +} + +static char * +parse_op_name (GsmDeviceInfo *info, const char *orig, const char *op_code) +{ + guint i, orig_len; + + /* Some devices return the MCC/MNC if they haven't fully initialized + * or gotten all the info from the network yet. Handle that. + */ + + orig_len = orig ? strlen (orig) : 0; + if (orig_len == 0) { + /* If the operator name isn't valid, maybe we can look up the MCC/MNC + * from the operator code instead. + */ + if (op_code && strlen (op_code)) { + orig = op_code; + orig_len = strlen (orig); + } else + return NULL; + } else if (orig_len < 5 || orig_len > 6) + return g_strdup (orig); /* not an MCC/MNC */ + + for (i = 0; i < orig_len; i++) { + if (!isdigit (orig[i])) + return strdup (orig); + } + + /* At this point we have a 5 or 6 character all-digit string; that's + * probably an MCC/MNC. Look that up. + */ + + if (!info->providers) + info->providers = nmn_mobile_providers_parse (NULL); + if (!info->providers) + return strdup (orig); + + return find_provider_for_mcc_mnc (info->providers, orig); +} + +static void +notify_user_of_gsm_reg_change (GsmDeviceInfo *info) +{ + guint32 mb_state = gsm_state_to_mb_state (info); + + if (mb_state == MB_STATE_HOME) { + applet_do_notify_with_pref (info->applet, + _("GSM network."), + _("You are now registered on the home network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } else if (mb_state == MB_STATE_ROAMING) { + applet_do_notify_with_pref (info->applet, + _("GSM network."), + _("You are now registered on a roaming network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } +} + +#define REG_INFO_TYPE (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID)) +#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)) + +static void +reg_info_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValueArray *array = NULL; + guint32 new_state = 0; + char *new_op_code = NULL; + char *new_op_name = NULL; + GValue *value; + + if (dbus_g_proxy_end_call (proxy, call, &error, REG_INFO_TYPE, &array, G_TYPE_INVALID)) { + if (array->n_values == 3) { + value = g_value_array_get_nth (array, 0); + if (G_VALUE_HOLDS_UINT (value)) + new_state = g_value_get_uint (value) + 1; + + value = g_value_array_get_nth (array, 1); + if (G_VALUE_HOLDS_STRING (value)) { + new_op_code = g_value_dup_string (value); + if (new_op_code && !strlen (new_op_code)) { + g_free (new_op_code); + new_op_code = NULL; + } + } + + value = g_value_array_get_nth (array, 2); + if (G_VALUE_HOLDS_STRING (value)) + new_op_name = parse_op_name (info, g_value_get_string (value), new_op_code); + } + + g_value_array_free (array); + } + + if (info->reg_state != new_state) { + info->reg_state = new_state; + notify_user_of_gsm_reg_change (info); + } + + g_free (info->op_code); + info->op_code = new_op_code; + g_free (info->op_name); + info->op_name = new_op_name; + + g_clear_error (&error); +} + +static void +enabled_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_BOOLEAN (&value)) + info->modem_enabled = g_value_get_boolean (&value); + g_value_unset (&value); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static char * +parse_unlock_required (GValue *value) +{ + const char *new_val; + + /* Empty string means NULL */ + new_val = g_value_get_string (value); + if (new_val && strlen (new_val)) { + /* PIN2/PUK2 only required for various dialing things that we don't care + * about; it doesn't inhibit normal operation. + */ + if (strcmp (new_val, "sim-puk2") && strcmp (new_val, "sim-pin2")) + return g_strdup (new_val); + } + + return NULL; +} + +static void +keyring_unlock_pin_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + + if (!dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + g_warning ("Failed to auto-unlock devid:%s simid:%s : (%s) %s", + info->devid ? info->devid : "(unknown)", + info->simid ? info->simid : "(unknown)", + dbus_g_error_get_name (error), + error->message); + /* Ask the user */ + unlock_dialog_new (info->device, info); + g_clear_error (&error); + } +} + +static void +keyring_pin_check_cb (GnomeKeyringResult result, GList *list, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GList *iter; + const char *pin = NULL; + + info->keyring_id = NULL; + + if (result != GNOME_KEYRING_RESULT_OK) { + /* No saved PIN, just ask the user */ + unlock_dialog_new (info->device, info); + return; + } + + /* Look for a result with a matching "simid" attribute since that's + * better than just using a matching "devid". The PIN is really tied + * to the SIM, not the modem itself. + */ + for (iter = list; + info->simid && (pin == NULL) && iter; + iter = g_list_next (iter)) { + GnomeKeyringFound *found = iter->data; + int i; + + /* Look for a matching "simid" attribute */ + for (i = 0; (pin == NULL) && i < found->attributes->len; i++) { + GnomeKeyringAttribute attr = gnome_keyring_attribute_list_index (found->attributes, i); + + if ( g_strcmp0 (attr.name, "simid") == 0 + && attr.type == GNOME_KEYRING_ATTRIBUTE_TYPE_STRING + && g_strcmp0 (attr.value.string, info->simid) == 0) { + pin = found->secret; + break; + } + } + } + + if (pin == NULL) { + /* Fall back to the first result's PIN */ + pin = ((GnomeKeyringFound *) list->data)->secret; + if (pin == NULL) { + /* Should never get here */ + g_warn_if_fail (pin != NULL); + unlock_dialog_new (info->device, info); + return; + } + } + + /* Send the PIN code to ModemManager */ + if (!dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPin", + keyring_unlock_pin_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, pin, + G_TYPE_INVALID)) { + g_warning ("Failed to auto-unlock devid:%s simid:%s", + info->devid ? info->devid : "(unknown)", + info->simid ? info->simid : "(unknown)"); + } +} + +static void +simid_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_STRING (&value)) { + g_free (info->simid); + info->simid = g_value_dup_string (&value); + } + g_value_unset (&value); + } + g_clear_error (&error); + + /* Procure unlock code and apply it if an unlock is now required. */ + if (info->unlock_required) { + /* If we have a device ID ask the keyring for any saved SIM-PIN codes */ + if (info->devid && (g_strcmp0 (info->unlock_required, "sim-pin") == 0)) { + g_warn_if_fail (info->keyring_id == NULL); + info->keyring_id = gnome_keyring_find_itemsv (GNOME_KEYRING_ITEM_GENERIC_SECRET, + keyring_pin_check_cb, + info, + NULL, + "devid", + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + info->devid, + NULL); + } else { + /* Couldn't get a device ID, but unlock required; present dialog */ + unlock_dialog_new (info->device, info); + } + } + + check_start_polling (info); +} + +#define MM_DBUS_INTERFACE_MODEM_GSM_CARD "org.freedesktop.ModemManager.Modem.Gsm.Card" + +static void +unlock_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GHashTable *props = NULL; + + if (dbus_g_proxy_end_call (proxy, call, &error, + DBUS_TYPE_G_MAP_OF_VARIANT, &props, + G_TYPE_INVALID)) { + GHashTableIter iter; + const char *prop_name; + GValue *value; + + g_hash_table_iter_init (&iter, props); + while (g_hash_table_iter_next (&iter, (gpointer) &prop_name, (gpointer) &value)) { + if ((strcmp (prop_name, "UnlockRequired") == 0) && G_VALUE_HOLDS_STRING (value)) { + g_free (info->unlock_required); + info->unlock_required = parse_unlock_required (value); + } + + if ((strcmp (prop_name, "DeviceIdentifier") == 0) && G_VALUE_HOLDS_STRING (value)) { + g_free (info->devid); + info->devid = g_value_dup_string (value); + } + } + g_hash_table_destroy (props); + + /* Get SIM card identifier */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + simid_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM_GSM_CARD, + G_TYPE_STRING, "SimIdentifier", + G_TYPE_INVALID); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static void +access_tech_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_UINT (&value)) { + info->act = g_value_get_uint (&value); + applet_schedule_update_icon (info->applet); + } + g_value_unset (&value); + } + g_clear_error (&error); +} + +static gboolean +gsm_poll_cb (gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + + /* MM might have just sent an unsolicited update, in which case we just + * skip this poll and wait till the next one. + */ + + if (!info->skip_reg_poll) { + dbus_g_proxy_begin_call (info->net_proxy, "GetRegistrationInfo", + reg_info_reply, info, NULL, + G_TYPE_INVALID); + info->skip_reg_poll = FALSE; + } + + if (!info->skip_signal_poll) { + dbus_g_proxy_begin_call (info->net_proxy, "GetSignalQuality", + signal_reply, info, NULL, + G_TYPE_INVALID); + info->skip_signal_poll = FALSE; + } + + return TRUE; /* keep running until we're told to stop */ +} + +static void +check_start_polling (GsmDeviceInfo *info) +{ + NMDeviceState state; + gboolean poll = TRUE; + + g_return_if_fail (info != NULL); + + /* Don't poll if any of the following are true: + * + * 1) NM says the device is not available + * 2) the modem requires an unlock code + * 3) the modem isn't enabled + */ + + state = nm_device_get_state (info->device); + if ( (state <= NM_DEVICE_STATE_UNAVAILABLE) + || info->unlock_required + || (info->modem_enabled == FALSE)) + poll = FALSE; + + if (poll) { + if (!info->poll_id) { + /* 33 seconds to be just a bit more than MM's poll interval, so + * that if we get an unsolicited update from MM between polls we'll + * skip the next poll. + */ + info->poll_id = g_timeout_add_seconds (33, gsm_poll_cb, info); + } + gsm_poll_cb (info); + } else { + if (info->poll_id) + g_source_remove (info->poll_id); + info->poll_id = 0; + info->skip_reg_poll = FALSE; + info->skip_signal_poll = FALSE; + } +} + +static void +reg_info_changed_cb (DBusGProxy *proxy, + guint32 reg_state, + const char *op_code, + const char *op_name, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + guint32 new_state = reg_state + 1; + + if (info->reg_state != new_state) { + info->reg_state = new_state; + notify_user_of_gsm_reg_change (info); + } + + g_free (info->op_code); + info->op_code = strlen (op_code) ? g_strdup (op_code) : NULL; + g_free (info->op_name); + info->op_name = parse_op_name (info, op_name, info->op_code); + info->skip_reg_poll = TRUE; + +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (info->applet); +#endif /* ENABLE_INDICATOR */ +} + +static void +signal_quality_changed_cb (DBusGProxy *proxy, + guint32 quality, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + + info->quality = quality; + info->quality_valid = TRUE; + info->skip_signal_poll = TRUE; + + applet_schedule_update_icon (info->applet); +} + +#define MM_DBUS_INTERFACE_MODEM "org.freedesktop.ModemManager.Modem" +#define MM_DBUS_INTERFACE_MODEM_GSM_NETWORK "org.freedesktop.ModemManager.Modem.Gsm.Network" + +static void +modem_properties_changed (DBusGProxy *proxy, + const char *interface, + GHashTable *props, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GValue *value; + + if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM)) { + value = g_hash_table_lookup (props, "UnlockRequired"); + if (value && G_VALUE_HOLDS_STRING (value)) { + g_free (info->unlock_required); + info->unlock_required = parse_unlock_required (value); + check_start_polling (info); + } + + value = g_hash_table_lookup (props, "Enabled"); + if (value && G_VALUE_HOLDS_BOOLEAN (value)) { + info->modem_enabled = g_value_get_boolean (value); + if (!info->modem_enabled) { + info->quality = 0; + info->quality_valid = 0; + info->reg_state = 0; + info->act = 0; + g_free (info->op_code); + info->op_code = NULL; + g_free (info->op_name); + info->op_name = NULL; + } + check_start_polling (info); + } + } else if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM_GSM_NETWORK)) { + value = g_hash_table_lookup (props, "AccessTechnology"); + if (value && G_VALUE_HOLDS_UINT (value)) { + info->act = g_value_get_uint (value); + applet_schedule_update_icon (info->applet); + } + } +} + +static void +gsm_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceModem *modem = NM_DEVICE_MODEM (device); + GsmDeviceInfo *info; + const char *udi; + DBusGConnection *bus; + GError *error = NULL; + + udi = nm_device_get_udi (device); + if (!udi) + return; + + bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); + if (!bus) { + g_warning ("%s: failed to connect to D-Bus: (%d) %s", __func__, error->code, error->message); + g_clear_error (&error); + return; + } + + info = g_malloc0 (sizeof (GsmDeviceInfo)); + info->applet = applet; + info->device = device; + info->bus = bus; + + info->props_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.DBus.Properties"); + if (!info->props_proxy) { + g_message ("%s: failed to create D-Bus properties proxy.", __func__); + gsm_device_info_free (info); + return; + } + + info->card_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.ModemManager.Modem.Gsm.Card"); + if (!info->card_proxy) { + g_message ("%s: failed to create GSM Card proxy.", __func__); + gsm_device_info_free (info); + return; + } + + info->net_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + MM_DBUS_INTERFACE_MODEM_GSM_NETWORK); + if (!info->net_proxy) { + g_message ("%s: failed to create GSM Network proxy.", __func__); + gsm_device_info_free (info); + return; + } + + g_object_set_data_full (G_OBJECT (modem), "devinfo", info, gsm_device_info_free); + + /* Registration info signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__UINT_STRING_STRING, + G_TYPE_NONE, + G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->net_proxy, "RegistrationInfo", + G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->net_proxy, "RegistrationInfo", + G_CALLBACK (reg_info_changed_cb), info, NULL); + + /* Signal quality change signal */ + dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->net_proxy, "SignalQuality", G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->net_proxy, "SignalQuality", + G_CALLBACK (signal_quality_changed_cb), info, NULL); + + /* Modem property change signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__STRING_BOXED, + G_TYPE_NONE, G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, + G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->props_proxy, "MmPropertiesChanged", + G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->props_proxy, "MmPropertiesChanged", + G_CALLBACK (modem_properties_changed), + info, NULL); + + /* Ask whether the device needs to be unlocked */ + dbus_g_proxy_begin_call (info->props_proxy, "GetAll", + unlock_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_INVALID); + + /* Ask whether the device is enabled */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + enabled_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_STRING, "Enabled", + G_TYPE_INVALID); + + dbus_g_proxy_begin_call (info->props_proxy, "Get", + access_tech_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM_GSM_NETWORK, + G_TYPE_STRING, "AccessTechnology", + G_TYPE_INVALID); +} + +NMADeviceClass * +applet_device_gsm_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = gsm_new_auto_connection; + dclass->add_menu_item = gsm_add_menu_item; + dclass->device_state_changed = gsm_device_state_changed; + dclass->get_icon = gsm_get_icon; + dclass->get_secrets = gsm_get_secrets; + dclass->secrets_request_size = sizeof (NMGsmSecretsInfo); + dclass->device_added = gsm_device_added; + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/lp289466_always_show_tray_icon.patch/src/applet.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp289466_always_show_tray_icon.patch/src/applet.c --- network-manager-applet-0.9.4.1/.pc/lp289466_always_show_tray_icon.patch/src/applet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp289466_always_show_tray_icon.patch/src/applet.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,3576 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2012 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + * + * This applet used the GNOME Wireless Applet as a skeleton to build from. + * + * GNOME Wireless Applet Authors: + * Eskil Heyn Olsen + * Bastien Nocera (Gnome2 port) + * + * (C) Copyright 2001, 2002 Free Software Foundation + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "applet-device-wifi.h" +#include "applet-device-gsm.h" +#include "applet-device-cdma.h" +#include "applet-device-bt.h" +#include "applet-device-wimax.h" +#include "applet-dialogs.h" +#include "nm-wifi-dialog.h" +#include "applet-vpn-request.h" +#include "utils.h" +#include "shell-watcher.h" +#include "nm-ui-utils.h" + +#define NOTIFY_CAPS_ACTIONS_KEY "actions" + +extern gboolean shell_debug; + +G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) + +/********************************************************************/ +/* Temporary dbus interface stuff */ + +static gboolean +impl_dbus_connect_to_hidden_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_connect_to_hidden_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_create_wifi_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_can_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NOT_AUTHORIZED, + "Creation of Wi-Fi networks has been disabled by system policy."); + return FALSE; + } + + if (!applet_wifi_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_8021x_network (NMApplet *applet, + const char *device_path, + const char *ap_path, + GError **error) +{ + NMDevice *device; + NMAccessPoint *ap; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_WIFI (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + ap = nm_device_wifi_get_access_point_by_path (NM_DEVICE_WIFI (device), ap_path); + if (!ap) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point could not be found."); + return FALSE; + } + + /* FIXME: this doesn't account for Dynamic WEP */ + if ( !(nm_access_point_get_wpa_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + && !(nm_access_point_get_rsn_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point had no 802.1x capabilities"); + return FALSE; + } + + if (!applet_wifi_connect_to_8021x_network (applet, device, ap)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_3g_network (NMApplet *applet, + const char *device_path, + GError **error) +{ + NMDevice *device; + NMDeviceModemCapabilities caps; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_MODEM (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + applet_gsm_connect_network (applet, device); + } else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + applet_cdma_connect_network (applet, device); + } else { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device had no GSM or CDMA capabilities."); + return FALSE; + } + + return TRUE; +} + +#include "applet-dbus-bindings.h" + +/********************************************************************/ + +static inline NMADeviceClass * +get_device_class (NMDevice *device, NMApplet *applet) +{ + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + if (NM_IS_DEVICE_ETHERNET (device)) + return applet->ethernet_class; + else if (NM_IS_DEVICE_WIFI (device)) + return applet->wifi_class; + else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + return applet->gsm_class; + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + return applet->cdma_class; + else + g_message ("%s: unhandled modem capabilities 0x%X", __func__, caps); + } else if (NM_IS_DEVICE_BT (device)) + return applet->bt_class; + else if (NM_IS_DEVICE_WIMAX (device)) + return applet->wimax_class; + else + g_debug ("%s: Unknown device type '%s'", __func__, G_OBJECT_TYPE_NAME (device)); + return NULL; +} + +static inline NMADeviceClass * +get_device_class_from_connection (NMConnection *connection, NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *ctype; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + ctype = nm_setting_connection_get_connection_type (s_con); + g_return_val_if_fail (ctype != NULL, NULL); + + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME) || !strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return applet->ethernet_class; + else if (!strcmp (ctype, NM_SETTING_WIRELESS_SETTING_NAME)) + return applet->wifi_class; + else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME)) + return applet->gsm_class; + else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME)) + return applet->cdma_class; + else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) + return applet->bt_class; + else + g_warning ("%s: unhandled connection type '%s'", __func__, ctype); + return NULL; +} + +static NMActiveConnection * +applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *best = NULL; + NMDevice *best_dev = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const GPtrArray *devices; + NMDevice *candidate_dev; + + if (nm_active_connection_get_state (candidate) != NM_ACTIVE_CONNECTION_STATE_ACTIVATING) + continue; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (!best_dev) { + best_dev = candidate_dev; + best = candidate; + continue; + } + + if (NM_IS_DEVICE_WIFI (best_dev)) { + if (NM_IS_DEVICE_ETHERNET (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (NM_IS_DEVICE_MODEM (best_dev)) { + NMDeviceModemCapabilities best_caps; + NMDeviceModemCapabilities candidate_caps = NM_DEVICE_MODEM_CAPABILITY_NONE; + + best_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (best_dev)); + if (NM_IS_DEVICE_MODEM (candidate_dev)) + candidate_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (candidate_dev)); + + if (best_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (best_caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev) + || (candidate_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { + best_dev = candidate_dev; + best = candidate; + } + } + } + } + + *device = best_dev; + return best; +} + +static NMActiveConnection * +applet_get_default_active_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *default_ac = NULL; + NMDevice *non_default_device = NULL; + NMActiveConnection *non_default_ac = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + NMDevice *candidate_dev; + const GPtrArray *devices; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (nm_active_connection_get_default (candidate)) { + if (!default_ac) { + *device = candidate_dev; + default_ac = candidate; + } + } else { + if (!non_default_ac) { + non_default_device = candidate_dev; + non_default_ac = candidate; + } + } + } + + /* Prefer the default connection if one exists, otherwise return the first + * non-default connection. + */ + if (!default_ac && non_default_ac) { + default_ac = non_default_ac; + *device = non_default_device; + } + return default_ac; +} + +NMRemoteSettings * +applet_get_settings (NMApplet *applet) +{ + return applet->settings; +} + +GSList * +applet_get_all_connections (NMApplet *applet) +{ + GSList *connections, *iter, *next; + NMConnection *connection; + NMSettingConnection *s_con; + + connections = nm_remote_settings_list_connections (applet->settings); + + /* Ignore slave connections */ + for (iter = connections; iter; iter = next) { + connection = iter->data; + next = iter->next; + + s_con = nm_connection_get_setting_connection (connection); + if (s_con && nm_setting_connection_get_master (s_con)) + connections = g_slist_delete_link (connections, iter); + } + + return connections; +} + +static NMConnection * +applet_get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMActiveConnection * +applet_get_active_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + int i; + const char *cpath; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + const char *active_cpath = nm_active_connection_get_connection (active); + + if (active_cpath && !strcmp (active_cpath, cpath)) + return active; + } + return NULL; +} + +NMDevice * +applet_get_device_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + const char *cpath; + int i; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + + if (!g_strcmp0 (nm_active_connection_get_connection (active), cpath)) + return g_ptr_array_index (nm_active_connection_get_devices (active), 0); + } + return NULL; +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + char *specific_object; + NMConnection *connection; +} AppletItemActivateInfo; + +static void +applet_item_activate_info_destroy (AppletItemActivateInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + g_free (info->specific_object); + if (info->connection) + g_object_unref (info->connection); + memset (info, 0, sizeof (AppletItemActivateInfo)); + g_free (info); +} + +static void +add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add/activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +applet_menu_item_activate_helper_new_connection (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + AppletItemActivateInfo *info = user_data; + + if (canceled) { + applet_item_activate_info_destroy (info); + return; + } + + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + info->specific_object, + add_and_activate_cb, + info->applet); + + applet_item_activate_info_destroy (info); +} + +static void +disconnect_cb (NMDevice *device, GError *error, gpointer user_data) +{ + if (error) { + const char *text = _("Device disconnect failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s: %s", __func__, text, err_text); + utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } +} + +void +applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet) +{ + g_return_if_fail (NM_IS_DEVICE (device)); + + nm_device_disconnect (device, disconnect_cb, NULL); +} + +static void +activate_connection_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Connection activation failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +void +applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data) +{ + AppletItemActivateInfo *info; + NMADeviceClass *dclass; + + g_return_if_fail (NM_IS_DEVICE (device)); + + if (connection) { + /* If the menu item had an associated connection already, just tell + * NM to activate that connection. + */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + specific_object, + activate_connection_cb, + applet); + return; + } + + /* If no connection was given, ask the device class to create a new + * default connection for this device type. This could be a wizard, + * and thus take a while. + */ + + info = g_malloc0 (sizeof (AppletItemActivateInfo)); + info->applet = applet; + info->specific_object = g_strdup (specific_object); + info->device = g_object_ref (device); + + dclass = get_device_class (device, applet); + g_assert (dclass); + if (!dclass->new_auto_connection (device, dclass_data, + applet_menu_item_activate_helper_new_connection, + info)) { + g_warning ("Couldn't create default connection."); + applet_item_activate_info_destroy (info); + } +} + +void +applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos) +{ + GtkWidget *menu_item = gtk_image_menu_item_new (); +#if GTK_CHECK_VERSION(3,1,6) + GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); +#else + GtkWidget *box = gtk_hbox_new (FALSE, 0); +#endif + GtkWidget *xlabel = NULL; + + if (label) { + xlabel = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (xlabel), label); + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2); + } + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + + g_object_set (G_OBJECT (menu_item), + "child", box, + "sensitive", FALSE, + NULL); + if (pos < 0) + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + else + gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, pos); + return; +} + +GtkWidget * +applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active) +{ + GtkWidget *item; + NMSettingConnection *s_con; + char *markup; + GtkWidget *label; + + s_con = nm_connection_get_setting_connection (connection); + item = gtk_image_menu_item_new_with_label (""); + if (add_active && (active == connection)) { + /* Pure evil */ + label = gtk_bin_get_child (GTK_BIN (item)); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + markup = g_markup_printf_escaped ("%s", nm_setting_connection_get_id (s_con)); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + } else + gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); + + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + return item; +} + +#define TITLE_TEXT_R ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_G ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_B ((double) 0x5e / 255.0 ) + +static void +menu_item_draw_generic (GtkWidget *widget, cairo_t *cr) +{ + GtkWidget *label; + PangoFontDescription *desc; + PangoLayout *layout; + int width = 0, height = 0, owidth, oheight; + gdouble extraheight = 0, extrawidth = 0; + const char *text; + gdouble xpadding = 10.0; + gdouble ypadding = 5.0; + gdouble postpadding = 0.0; + + label = gtk_bin_get_child (GTK_BIN (widget)); + text = gtk_label_get_text (GTK_LABEL (label)); + + layout = pango_cairo_create_layout (cr); +#if GTK_CHECK_VERSION(2,20,0) && !GTK_CHECK_VERSION(2,91,6) + { + GtkStyle *style; + style = gtk_widget_get_style (widget); + desc = pango_font_description_copy (style->font_desc); + } +#else + { + GtkStyleContext *style; + style = gtk_widget_get_style_context (widget); + gtk_style_context_get (style, gtk_style_context_get_state (style), + "font", &desc, + NULL); + } +#endif + pango_font_description_set_variant (desc, PANGO_VARIANT_SMALL_CAPS); + pango_font_description_set_weight (desc, PANGO_WEIGHT_SEMIBOLD); + pango_layout_set_font_description (layout, desc); + pango_layout_set_text (layout, text, -1); + pango_cairo_update_layout (cr, layout); + pango_layout_get_size (layout, &owidth, &oheight); + width = owidth / PANGO_SCALE; + height += oheight / PANGO_SCALE; + + cairo_save (cr); + + cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); + cairo_rectangle (cr, 0, 0, + (double) (width + 2 * xpadding), + (double) (height + ypadding + postpadding)); + cairo_fill (cr); + + /* now the in-padding content */ + cairo_translate (cr, xpadding , ypadding); + cairo_set_source_rgb (cr, TITLE_TEXT_R, TITLE_TEXT_G, TITLE_TEXT_B); + cairo_move_to (cr, extrawidth, extraheight); + pango_cairo_show_layout (cr, layout); + + cairo_restore(cr); + + pango_font_description_free (desc); + g_object_unref (layout); + + gtk_widget_set_size_request (widget, width + 2 * xpadding, height + ypadding + postpadding); +} + +#if GTK_CHECK_VERSION(2,90,7) +static gboolean +menu_title_item_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) +{ + menu_item_draw_generic (widget, cr); + return TRUE; +} +#else +static gboolean +menu_title_item_expose (GtkWidget *widget, GdkEventExpose *event) +{ + GtkAllocation allocation; + cairo_t *cr; + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + /* The drawing area we get is the whole menu; clip the drawing to the + * event area, which should just be our menu item. + */ + cairo_rectangle (cr, + event->area.x, event->area.y, + event->area.width, event->area.height); + cairo_clip (cr); + + /* We also need to reposition the cairo context so that (0, 0) is the + * top-left of where we're supposed to start drawing. + */ + gtk_widget_get_allocation (widget, &allocation); + cairo_translate (cr, allocation.x, allocation.y); + + menu_item_draw_generic (widget, cr); + + cairo_destroy (cr); + return TRUE; +} +#endif + +GtkWidget * +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text) +{ + GtkWidget *item; + + item = gtk_menu_item_new_with_mnemonic (text); + gtk_widget_set_sensitive (item, FALSE); +#if GTK_CHECK_VERSION(2,90,7) + g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL); +#else + g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); +#endif + return item; +} + +static void +applet_clear_notify (NMApplet *applet) +{ + if (applet->notification == NULL) + return; + + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + applet->notification = NULL; +} + +static gboolean +applet_notify_server_has_actions (void) +{ + static gboolean has_actions = FALSE; + static gboolean initialized = FALSE; + GList *server_caps, *iter; + + if (initialized) + return has_actions; + initialized = TRUE; + + server_caps = notify_get_server_caps(); + for (iter = server_caps; iter; iter = g_list_next (iter)) { + if (!strcmp ((const char *) iter->data, NOTIFY_CAPS_ACTIONS_KEY)) { + has_actions = TRUE; + break; + } + } + g_list_foreach (server_caps, (GFunc) g_free, NULL); + g_list_free (server_caps); + + return has_actions; +} + +void +applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data) +{ + NotifyNotification *notify; + GError *error = NULL; + char *escaped; + + g_return_if_fail (applet != NULL); + g_return_if_fail (summary != NULL); + g_return_if_fail (message != NULL); + + if (!gtk_status_icon_is_embedded (applet->status_icon)) + return; + + /* if we're not registered, don't notify either */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + return; + + applet_clear_notify (applet); + + escaped = utils_escape_notify_message (message); + notify = notify_notification_new (summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK +#if HAVE_LIBNOTIFY_07 + ); +#else + , NULL); +#endif + g_free (escaped); + applet->notification = notify; + +#if HAVE_LIBNOTIFY_07 + notify_notification_set_hint (notify, "transient", g_variant_new_boolean (TRUE)); +#else + notify_notification_attach_to_status_icon (notify, applet->status_icon); +#endif + notify_notification_set_urgency (notify, urgency); + notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT); + + if (applet_notify_server_has_actions () && action1) { + notify_notification_add_action (notify, action1, action1_label, + action1_cb, action1_user_data, NULL); + } + + if (!notify_notification_show (notify, &error)) { + g_warning ("Failed to show notification: %s", + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + } +} + +static void +notify_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id) + return; + + if ( strcmp (id, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_VPN_NOTIFICATIONS)) + return; + + g_settings_set_boolean (applet->gsettings, id, TRUE); +} + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref) +{ + if (g_settings_get_boolean (applet->gsettings, pref)) + return; + + applet_do_notify (applet, NOTIFY_URGENCY_LOW, summary, message, icon, pref, + _("Don't show this message again"), + notify_dont_show_cb, + applet); +} + +static gboolean +animation_timeout (gpointer data) +{ + applet_schedule_update_icon (NM_APPLET (data)); + return TRUE; +} + +static void +start_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id == 0) { + applet->animation_step = 0; + applet->animation_id = g_timeout_add (100, animation_timeout, applet); + } +} + +static void +clear_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id) { + g_source_remove (applet->animation_id); + applet->animation_id = 0; + applet->animation_step = 0; + } +} + +static gboolean +applet_is_any_device_activating (NMApplet *applet) +{ + const GPtrArray *devices; + int i; + + /* Check for activating devices */ + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = NM_DEVICE (g_ptr_array_index (devices, i)); + NMDeviceState state; + + state = nm_device_get_state (candidate); + if (state > NM_DEVICE_STATE_DISCONNECTED && state < NM_DEVICE_STATE_ACTIVATED) + return TRUE; + } + return FALSE; +} + +static gboolean +applet_is_any_vpn_activating (NMApplet *applet) +{ + const GPtrArray *connections; + int i; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (connections, i)); + NMVPNConnectionState vpn_state; + + if (NM_IS_VPN_CONNECTION (candidate)) { + vpn_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + if ( vpn_state == NM_VPN_CONNECTION_STATE_PREPARE + || vpn_state == NM_VPN_CONNECTION_STATE_NEED_AUTH + || vpn_state == NM_VPN_CONNECTION_STATE_CONNECT + || vpn_state == NM_VPN_CONNECTION_STATE_IP_CONFIG_GET) { + return TRUE; + } + } + } + return FALSE; +} + +static char * +make_vpn_failure_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service stopped unexpectedly."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service returned invalid configuration."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the connection attempt timed out."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service did not start in time."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because there were no valid VPN secrets."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because of invalid VPN secrets."), + nm_setting_connection_get_id (s_con)); + + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' failed."), nm_setting_connection_get_id (s_con)); +} + +static char * +make_vpn_disconnection_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the VPN service stopped."), + nm_setting_connection_get_id (s_con)); + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected."), nm_setting_connection_get_id (s_con)); +} + +static void +vpn_connection_state_changed (NMVPNConnection *vpn, + NMVPNConnectionState state, + NMVPNConnectionStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const char *banner; + char *title = NULL, *msg; + gboolean device_activating, vpn_activating; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (state) { + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections might not have come through yet. + */ + vpn_activating = TRUE; + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + banner = nm_vpn_connection_get_banner (vpn); + if (banner && strlen (banner)) + msg = g_strdup_printf (_("VPN connection has been successfully established.\n\n%s\n"), banner); + else + msg = g_strdup (_("VPN connection has been successfully established.\n")); + + title = _("VPN Login Message"); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_FAILED: + title = _("VPN Connection Failed"); + msg = make_vpn_failure_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_DISCONNECTED: + if (reason != NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED) { + title = _("VPN Connection Failed"); + msg = make_vpn_disconnection_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + } + break; + default: + break; + } + + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); + + applet_schedule_update_icon (applet); +} + +static const char * +get_connection_id (NMConnection *connection) +{ + NMSettingConnection *s_con; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + return nm_setting_connection_get_id (s_con); +} + +typedef struct { + NMApplet *applet; + char *vpn_name; +} VPNActivateInfo; + +static void +activate_vpn_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + VPNActivateInfo *info = (VPNActivateInfo *) user_data; + char *title, *msg, *name; + + if (error) { + clear_animation_timeout (info->applet); + + title = _("VPN Connection Failed"); + + /* dbus-glib GError messages _always_ have two NULLs, the D-Bus error + * name comes after the first NULL. Find it. + */ + name = error->message + strlen (error->message) + 1; + if (strstr (name, "ServiceStartFailed")) { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start.\n\n%s"), + info->vpn_name, error->message); + } else { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed to start.\n\n%s"), + info->vpn_name, error->message); + } + + applet_do_notify_with_pref (info->applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + + g_warning ("VPN Connection activation failed: (%s) %s", name, error->message); + } + + applet_schedule_update_icon (info->applet); + g_free (info->vpn_name); + g_free (info); +} + +static void +nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + VPNActivateInfo *info; + NMConnection *connection; + NMSettingConnection *s_con; + NMActiveConnection *active; + NMDevice *device = NULL; + + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) { + g_warning ("%s: no active connection or device.", __func__); + return; + } + + connection = NM_CONNECTION (g_object_get_data (G_OBJECT (item), "connection")); + if (!connection) { + g_warning ("%s: no connection associated with menu item!", __func__); + return; + } + + if (applet_get_active_for_connection (applet, connection)) + /* Connection already active; do nothing */ + return; + + s_con = nm_connection_get_setting_connection (connection); + info = g_malloc0 (sizeof (VPNActivateInfo)); + info->applet = applet; + info->vpn_name = g_strdup (nm_setting_connection_get_id (s_con)); + + /* Connection inactive, activate */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + nm_object_get_path (NM_OBJECT (active)), + activate_vpn_cb, + info); + start_animation_timeout (applet); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + + +/* + * nma_menu_configure_vpn_item_activate + * + * Signal function called when user clicks "Configure VPN..." + * + */ +static void +nma_menu_configure_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + const char *argv[] = { BINDIR "/nm-connection-editor", "--show", "--type", NM_SETTING_VPN_SETTING_NAME, NULL}; + + g_spawn_async (NULL, (gchar **) argv, NULL, 0, NULL, NULL, NULL, NULL); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static NMActiveConnection * +applet_get_first_active_vpn_connection (NMApplet *applet, + NMVPNConnectionState *out_state) +{ + const GPtrArray *active_list; + int i; + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate; + NMConnection *connection; + NMSettingConnection *s_con; + + candidate = g_ptr_array_index (active_list, i); + + connection = applet_get_connection_for_active (applet, candidate); + if (!connection) + continue; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + if (out_state) + *out_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + return candidate; + } + } + + return NULL; +} + +/* + * nma_menu_disconnect_vpn_item_activate + * + * Signal function called when user clicks "Disconnect VPN" + * + */ +static void +nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMActiveConnection *active_vpn = NULL; + NMVPNConnectionState state = NM_VPN_CONNECTION_STATE_UNKNOWN; + + active_vpn = applet_get_first_active_vpn_connection (applet, &state); + if (active_vpn) + nm_client_deactivate_connection (applet->nm_client, active_vpn); + else + g_warning ("%s: deactivate clicked but no active VPN connection could be found.", __func__); +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +/* + * nma_menu_add_separator_item + * + */ +static void +nma_menu_add_separator_item (GtkWidget *menu) +{ + GtkWidget *menu_item; + + menu_item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + + +/* + * nma_menu_add_text_item + * + * Add a non-clickable text item to a menu + * + */ +static void nma_menu_add_text_item (GtkWidget *menu, char *text) +{ + GtkWidget *menu_item; + + g_return_if_fail (text != NULL); + g_return_if_fail (menu != NULL); + + menu_item = gtk_menu_item_new_with_label (text); + gtk_widget_set_sensitive (menu_item, FALSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + +static gint +sort_devices (gconstpointer a, gconstpointer b) +{ + NMDevice *aa = NM_DEVICE (a); + NMDevice *bb = NM_DEVICE (b); + GType aa_type = G_OBJECT_TYPE (G_OBJECT (aa)); + GType bb_type = G_OBJECT_TYPE (G_OBJECT (bb)); + + if (aa_type == bb_type) { + const char *aa_desc = NULL; + const char *bb_desc = NULL; + + aa_desc = nma_utils_get_device_description (aa); + bb_desc = nma_utils_get_device_description (bb); + + return g_strcmp0 (aa_desc, bb_desc); + } + + /* Ethernet always first */ + if (aa_type == NM_TYPE_DEVICE_ETHERNET) + return -1; + if (bb_type == NM_TYPE_DEVICE_ETHERNET) + return 1; + + /* Modems next */ + if (aa_type == NM_TYPE_DEVICE_MODEM) + return -1; + if (bb_type == NM_TYPE_DEVICE_MODEM) + return 1; + + /* Bluetooth next */ + if (aa_type == NM_TYPE_DEVICE_BT) + return -1; + if (bb_type == NM_TYPE_DEVICE_BT) + return 1; + + /* WiMAX next */ + if (aa_type == NM_TYPE_DEVICE_WIMAX) + return -1; + if (bb_type == NM_TYPE_DEVICE_WIMAX) + return 1; + + /* WiFi last because it has many menu items */ + return 1; +} + +static gboolean +nm_g_ptr_array_contains (const GPtrArray *haystack, gpointer needle) +{ + int i; + + for (i = 0; haystack && (i < haystack->len); i++) { + if (g_ptr_array_index (haystack, i) == needle) + return TRUE; + } + return FALSE; +} + +NMConnection * +applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active) +{ + const GPtrArray *active_connections; + NMConnection *connection = NULL; + int i; + + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + if (out_active) + g_return_val_if_fail (*out_active == NULL, NULL); + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMRemoteConnection *tmp; + NMActiveConnection *active; + const char *connection_path; + const GPtrArray *devices; + + active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_connections, i)); + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + tmp = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (tmp) { + connection = NM_CONNECTION (tmp); + if (out_active) + *out_active = active; + break; + } + } + + return connection; +} + +gboolean +nma_menu_device_check_unusable (NMDevice *device) +{ + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + case NM_DEVICE_STATE_UNMANAGED: + return TRUE; + default: + break; + } + return FALSE; +} + + +struct AppletDeviceMenuInfo { + NMDevice *device; + NMApplet *applet; +}; + +static void +applet_device_info_destroy (struct AppletDeviceMenuInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + memset (info, 0, sizeof (struct AppletDeviceMenuInfo)); + g_free (info); +} + +static void +applet_device_disconnect_db (GtkMenuItem *item, gpointer user_data) +{ + struct AppletDeviceMenuInfo *info = user_data; + + applet_menu_item_disconnect_helper (info->device, + info->applet); +} + +GtkWidget * +nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg) +{ + GtkWidget *item = NULL; + gboolean managed = TRUE; + + if (!unavailable_msg) { + if (nm_device_get_firmware_missing (device)) + unavailable_msg = _("device not ready (firmware missing)"); + else + unavailable_msg = _("device not ready"); + } + + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_DISCONNECTED: + unavailable_msg = _("disconnected"); + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_UNMANAGED: + managed = FALSE; + break; + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + case NM_DEVICE_STATE_ACTIVATED: + { + struct AppletDeviceMenuInfo *info = g_new0 (struct AppletDeviceMenuInfo, 1); + info->device = g_object_ref (device); + info->applet = applet; + item = gtk_menu_item_new_with_label (_("Disconnect")); + g_signal_connect_data (item, "activate", + G_CALLBACK (applet_device_disconnect_db), + info, + (GClosureNotify) applet_device_info_destroy, 0); + gtk_widget_set_sensitive (item, TRUE); + break; + } + default: + managed = nm_device_get_managed (device); + break; + } + + if (!managed) { + item = gtk_menu_item_new_with_label (_("device not managed")); + gtk_widget_set_sensitive (item, FALSE); + } + + return item; +} + +static guint32 +nma_menu_add_devices (GtkWidget *menu, NMApplet *applet) +{ + const GPtrArray *temp = NULL; + GSList *devices = NULL, *iter = NULL; + gint n_wifi_devices = 0; + gint n_usable_wifi_devices = 0; + gint n_ethernet_devices = 0; + gint n_mb_devices = 0; + gint n_bt_devices = 0; + int i; + + temp = nm_client_get_devices (applet->nm_client); + for (i = 0; temp && (i < temp->len); i++) + devices = g_slist_insert_sorted (devices, g_ptr_array_index (temp, i), sort_devices); + + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) { + n_wifi_devices++; + if ( nm_client_wireless_get_enabled (applet->nm_client) + && (nm_device_get_state (device) >= NM_DEVICE_STATE_DISCONNECTED)) + n_usable_wifi_devices++; + } else if (NM_IS_DEVICE_ETHERNET (device)) + n_ethernet_devices++; + else if (NM_IS_DEVICE_MODEM (device)) + n_mb_devices++; + else if (NM_IS_DEVICE_BT (device)) + n_bt_devices++; + } + + if (!n_ethernet_devices && !n_wifi_devices && !n_mb_devices && !n_bt_devices) { + nma_menu_add_text_item (menu, _("No network devices available")); + goto out; + } + + /* Add all devices in our device list to the menu */ + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + gint n_devices = 0; + NMADeviceClass *dclass; + NMConnection *active; + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) + n_devices = n_wifi_devices; + else if (NM_IS_DEVICE_ETHERNET (device)) + n_devices = n_ethernet_devices; + else if (NM_IS_DEVICE_MODEM (device)) + n_devices = n_mb_devices; + + active = applet_find_active_connection_for_device (device, applet, NULL); + + dclass = get_device_class (device, applet); + if (dclass) + dclass->add_menu_item (device, n_devices, active, menu, applet); + } + + out: + g_slist_free (devices); + + /* Return # of usable wifi devices here for correct enable/disable state + * of things like Enable Wi-Fi, "Connect to other..." and such. + */ + return n_usable_wifi_devices; +} + +static int +sort_vpn_connections (gconstpointer a, gconstpointer b) +{ + return strcmp (get_connection_id (NM_CONNECTION (a)), get_connection_id (NM_CONNECTION (b))); +} + +static GSList * +get_vpn_connections (NMApplet *applet) +{ + GSList *all_connections; + GSList *iter; + GSList *list = NULL; + + all_connections = applet_get_all_connections (applet); + + for (iter = all_connections; iter; iter = iter->next) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) + /* Not a VPN connection */ + continue; + + if (!nm_connection_get_setting_vpn (connection)) { + g_warning ("%s: VPN connection '%s' didn't have required vpn setting.", __func__, + nm_setting_connection_get_id (s_con)); + continue; + } + + list = g_slist_prepend (list, connection); + } + + g_slist_free (all_connections); + + return g_slist_sort (list, sort_vpn_connections); +} + +static void +nma_menu_add_vpn_submenu (GtkWidget *menu, NMApplet *applet) +{ + GtkMenu *vpn_menu; + GtkMenuItem *item; + GSList *list, *iter; + int num_vpn_active = 0; + + nma_menu_add_separator_item (menu); + + vpn_menu = GTK_MENU (gtk_menu_new ()); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_VPN Connections"))); + gtk_menu_item_set_submenu (item, GTK_WIDGET (vpn_menu)); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + + list = get_vpn_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (applet_get_active_for_connection (applet, connection)) + num_vpn_active++; + } + + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMActiveConnection *active; + const char *name; + GtkWidget *image; + NMState state; + + name = get_connection_id (connection); + + item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); + gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + + /* If no VPN connections are active, draw all menu items enabled. If + * >= 1 VPN connections are active, only the active VPN menu item is + * drawn enabled. + */ + active = applet_get_active_for_connection (applet, connection); + + state = nm_client_get_state (applet->nm_client); + if ( state != NM_STATE_CONNECTED_LOCAL + && state != NM_STATE_CONNECTED_SITE + && state != NM_STATE_CONNECTED_GLOBAL) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + else if ((num_vpn_active == 0) || active) + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + else + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + if (active) { + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + } + + g_object_set_data_full (G_OBJECT (item), "connection", + g_object_ref (connection), + (GDestroyNotify) g_object_unref); + + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_vpn_item_clicked), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } + + /* Draw a seperator, but only if we have VPN connections above it */ + if (list) + nma_menu_add_separator_item (GTK_WIDGET (vpn_menu)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Configure VPN..."))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_configure_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Disconnect VPN"))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_disconnect_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + if (num_vpn_active == 0) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + g_slist_free (list); +} + + +static void +nma_set_wifi_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wireless_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wwan_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wwan_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wimax_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wimax_set_enabled (applet->nm_client, state); +} + +static void +nma_set_networking_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_networking_set_enabled (applet->nm_client, state); +} + + +static void +nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_CONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_VPN_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + !state); +} + +/* + * nma_menu_show_cb + * + * Pop up the wifi networks menu + * + */ +static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet) +{ + guint32 n_wifi; + + g_return_if_fail (menu != NULL); + g_return_if_fail (applet != NULL); + + gtk_status_icon_set_tooltip_text (applet->status_icon, NULL); + + if (!nm_client_get_manager_running (applet->nm_client)) { + nma_menu_add_text_item (menu, _("NetworkManager is not running...")); + return; + } + + if (nm_client_get_state (applet->nm_client) == NM_STATE_ASLEEP) { + nma_menu_add_text_item (menu, _("Networking disabled")); + return; + } + + n_wifi = nma_menu_add_devices (menu, applet); + + nma_menu_add_vpn_submenu (menu, applet); + + if (n_wifi > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { + /* Add the "Hidden Wi-Fi network..." entry */ + nma_menu_add_separator_item (menu); + nma_menu_add_hidden_network_item (menu, applet); + nma_menu_add_create_network_item (menu, applet); + } + + gtk_widget_show_all (menu); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static gboolean +destroy_old_menu (gpointer user_data) +{ + g_object_unref (user_data); + return FALSE; +} + +static void +nma_menu_deactivate_cb (GtkWidget *widget, NMApplet *applet) +{ + /* Must punt the destroy to a low-priority idle to ensure that + * the menu items don't get destroyed before any 'activate' signal + * fires for an item. + */ + g_signal_handlers_disconnect_by_func (applet->menu, G_CALLBACK (nma_menu_deactivate_cb), applet); + g_idle_add_full (G_PRIORITY_LOW, destroy_old_menu, applet->menu, NULL); + applet->menu = NULL; + + /* Re-set the tooltip */ + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +} + +static gboolean +is_permission_yes (NMApplet *applet, NMClientPermission perm) +{ + if ( applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_YES + || applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_AUTH) + return TRUE; + return FALSE; +} + +/* + * nma_context_menu_update + * + */ +static void +nma_context_menu_update (NMApplet *applet) +{ + NMState state; + gboolean net_enabled = TRUE; + gboolean have_wifi = FALSE; + gboolean have_wwan = FALSE; + gboolean have_wimax = FALSE; + gboolean wifi_hw_enabled; + gboolean wwan_hw_enabled; + gboolean wimax_hw_enabled; + gboolean notifications_enabled = TRUE; + gboolean sensitive = FALSE; + + state = nm_client_get_state (applet->nm_client); + sensitive = ( state == NM_STATE_CONNECTED_LOCAL + || state == NM_STATE_CONNECTED_SITE + || state == NM_STATE_CONNECTED_GLOBAL); + gtk_widget_set_sensitive (applet->info_menu_item, sensitive); + + /* Update checkboxes, and block 'toggled' signal when updating so that the + * callback doesn't get triggered. + */ + + /* Enabled Networking */ + g_signal_handler_block (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + net_enabled = nm_client_networking_get_enabled (applet->nm_client); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->networking_enabled_item), + net_enabled && (state != NM_STATE_ASLEEP)); + g_signal_handler_unblock (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + gtk_widget_set_sensitive (applet->networking_enabled_item, + is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK)); + + /* Enabled Wi-Fi */ + g_signal_handler_block (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wifi_enabled_item), + nm_client_wireless_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wifi_enabled_item), + wifi_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI)); + + /* Enabled Mobile Broadband */ + g_signal_handler_block (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wwan_enabled_item), + nm_client_wwan_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + + wwan_hw_enabled = nm_client_wwan_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wwan_enabled_item), + wwan_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN)); + + /* Enable WiMAX */ + g_signal_handler_block (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wimax_enabled_item), + nm_client_wimax_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + + wimax_hw_enabled = nm_client_wimax_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), + wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); + + /* Enabled notifications */ + g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + if ( g_settings_get_boolean (applet->gsettings, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_VPN_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + notifications_enabled = FALSE; + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); + g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + + /* Don't show wifi-specific stuff if wifi is off */ + if (state != NM_STATE_ASLEEP) { + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = g_ptr_array_index (devices, i); + + if (NM_IS_DEVICE_WIFI (candidate)) + have_wifi = TRUE; + else if (NM_IS_DEVICE_MODEM (candidate)) + have_wwan = TRUE; + else if (NM_IS_DEVICE_WIMAX (candidate)) + have_wimax = TRUE; + } + } + + if (have_wifi) + gtk_widget_show_all (applet->wifi_enabled_item); + else + gtk_widget_hide (applet->wifi_enabled_item); + + if (have_wwan) + gtk_widget_show_all (applet->wwan_enabled_item); + else + gtk_widget_hide (applet->wwan_enabled_item); + + if (have_wimax) + gtk_widget_show_all (applet->wimax_enabled_item); + else + gtk_widget_hide (applet->wimax_enabled_item); +} + +static void +ce_child_setup (gpointer user_data G_GNUC_UNUSED) +{ + /* We are in the child process at this point */ + pid_t pid = getpid (); + setpgid (pid, pid); +} + +static void +nma_edit_connections_cb (GtkMenuItem *mi, NMApplet *applet) +{ + char *argv[2]; + GError *error = NULL; + gboolean success; + + argv[0] = BINDIR "/nm-connection-editor"; + argv[1] = NULL; + + success = g_spawn_async ("/", argv, NULL, 0, &ce_child_setup, NULL, NULL, &error); + if (!success) { + g_warning ("Error launching connection editor: %s", error->message); + g_error_free (error); + } +} + +static void +applet_connection_info_cb (NMApplet *applet) +{ + applet_info_dialog_show (applet); +} + +/* + * nma_context_menu_create + * + * Generate the contextual popup menu. + * + */ +static GtkWidget *nma_context_menu_create (NMApplet *applet) +{ + GtkMenuShell *menu; + GtkWidget *menu_item; + GtkWidget *image; + guint id; + + g_return_val_if_fail (applet != NULL, NULL); + + menu = GTK_MENU_SHELL (gtk_menu_new ()); + + /* 'Enable Networking' item */ + applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); + id = g_signal_connect (applet->networking_enabled_item, + "toggled", + G_CALLBACK (nma_set_networking_enabled_cb), + applet); + applet->networking_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->networking_enabled_item); + + /* 'Enable Wi-Fi' item */ + applet->wifi_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Wi-Fi")); + id = g_signal_connect (applet->wifi_enabled_item, + "toggled", + G_CALLBACK (nma_set_wifi_enabled_cb), + applet); + applet->wifi_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wifi_enabled_item); + + /* 'Enable Mobile Broadband' item */ + applet->wwan_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Mobile Broadband")); + id = g_signal_connect (applet->wwan_enabled_item, + "toggled", + G_CALLBACK (nma_set_wwan_enabled_cb), + applet); + applet->wwan_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wwan_enabled_item); + + /* 'Enable WiMAX Mobile Broadband' item */ + applet->wimax_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable WiMA_X Mobile Broadband")); + id = g_signal_connect (applet->wimax_enabled_item, + "toggled", + G_CALLBACK (nma_set_wimax_enabled_cb), + applet); + applet->wimax_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wimax_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* Toggle notifications item */ + applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); + id = g_signal_connect (applet->notifications_enabled_item, + "toggled", + G_CALLBACK (nma_set_notifications_enabled_cb), + applet); + applet->notifications_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->notifications_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* 'Connection Information' item */ + applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); + g_signal_connect_swapped (applet->info_menu_item, + "activate", + G_CALLBACK (applet_connection_info_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->info_menu_item), image); + gtk_menu_shell_append (menu, applet->info_menu_item); + + /* 'Edit Connections...' item */ + applet->connections_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Edit Connections...")); + g_signal_connect (applet->connections_menu_item, + "activate", + G_CALLBACK (nma_edit_connections_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); + gtk_menu_shell_append (menu, applet->connections_menu_item); + + /* Separator */ + nma_menu_add_separator_item (GTK_WIDGET (menu)); + +#if 0 /* FIXME: Implement the help callback, nma_help_cb()! */ + /* Help item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Help")); + g_signal_connect (menu_item, "activate", G_CALLBACK (nma_help_cb), applet); + image = gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); +#endif + + /* About item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_About")); + g_signal_connect_swapped (menu_item, "activate", G_CALLBACK (applet_about_dialog_show), applet); + image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + + gtk_widget_show_all (GTK_WIDGET (menu)); + + return GTK_WIDGET (menu); +} + + +/*****************************************************************************/ + +static void +foo_set_icon (NMApplet *applet, GdkPixbuf *pixbuf, guint32 layer) +{ + int i; + + if (layer > ICON_LAYER_MAX) { + g_warning ("Tried to icon to invalid layer %d", layer); + return; + } + + /* Ignore setting of the same icon as is already displayed */ + if (applet->icon_layers[layer] == pixbuf) + return; + + if (applet->icon_layers[layer]) { + g_object_unref (applet->icon_layers[layer]); + applet->icon_layers[layer] = NULL; + } + + if (pixbuf) + applet->icon_layers[layer] = g_object_ref (pixbuf); + + if (!applet->icon_layers[0]) { + nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + pixbuf = g_object_ref (applet->no_connection_icon); + } else { + pixbuf = gdk_pixbuf_copy (applet->icon_layers[0]); + + for (i = ICON_LAYER_LINK + 1; i <= ICON_LAYER_MAX; i++) { + GdkPixbuf *top = applet->icon_layers[i]; + + if (!top) + continue; + + gdk_pixbuf_composite (top, pixbuf, 0, 0, gdk_pixbuf_get_width (top), + gdk_pixbuf_get_height (top), + 0, 0, 1.0, 1.0, + GDK_INTERP_NEAREST, 255); + } + } + + gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); + g_object_unref (pixbuf); +} + + +NMRemoteConnection * +applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) +{ + const GPtrArray *active_connections; + int i; + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMActiveConnection *active; + NMRemoteConnection *connection; + const char *connection_path; + const GPtrArray *devices; + + active = g_ptr_array_index (active_connections, i); + if (!active) + continue; + + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + connection = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (connection) + return connection; + } + return NULL; +} + +static void +applet_common_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + gboolean device_activating = FALSE, vpn_activating = FALSE; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (new_state) { + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections or devices might not have come through yet. + */ + device_activating = TRUE; + break; + case NM_DEVICE_STATE_ACTIVATED: + default: + break; + } + + /* If there's an activating device but we're not animating, start animation. + * If we're animating, but there's no activating device or VPN, stop animating. + */ + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); +} + +static void +foo_device_state_changed_cb (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + g_assert (dclass); + + dclass->device_state_changed (device, new_state, old_state, reason, applet); + applet_common_device_state_changed (device, new_state, old_state, reason, applet); + + applet_schedule_update_icon (applet); +} + +static void +foo_device_added_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + if (!dclass) + return; + + if (dclass->device_added) + dclass->device_added (device, applet); + + g_signal_connect (device, "state-changed", + G_CALLBACK (foo_device_state_changed_cb), + user_data); + + foo_device_state_changed_cb (device, + nm_device_get_state (device), + NM_DEVICE_STATE_UNKNOWN, + NM_DEVICE_STATE_REASON_NONE, + applet); +} + +static void +foo_client_state_changed_cb (NMClient *client, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + switch (nm_client_get_state (client)) { + case NM_STATE_DISCONNECTED: + applet_do_notify_with_pref (applet, _("Disconnected"), + _("The network connection has been disconnected."), + "nm-no-connection", + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS); + /* Fall through */ + default: + break; + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_running_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (nm_client_get_manager_running (client)) { + g_message ("NM appeared"); + } else { + g_message ("NM disappeared"); + clear_animation_timeout (applet); + } + + applet_schedule_update_icon (applet); +} + +#define VPN_STATE_ID_TAG "vpn-state-id" + +static void +foo_active_connections_changed_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const GPtrArray *active_list; + int i; + + /* Track the state of new VPN connections */ + active_list = nm_client_get_active_connections (client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + guint id; + + if ( !NM_IS_VPN_CONNECTION (candidate) + || g_object_get_data (G_OBJECT (candidate), VPN_STATE_ID_TAG)) + continue; + + id = g_signal_connect (G_OBJECT (candidate), "vpn-state-changed", + G_CALLBACK (vpn_connection_state_changed), applet); + g_object_set_data (G_OBJECT (candidate), VPN_STATE_ID_TAG, GUINT_TO_POINTER (id)); + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_permission_changed (NMClient *client, + NMClientPermission permission, + NMClientPermissionResult result, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (permission <= NM_CLIENT_PERMISSION_LAST) + applet->permissions[permission] = result; +} + +static gboolean +foo_set_initial_state (gpointer data) +{ + NMApplet *applet = NM_APPLET (data); + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) + foo_device_added_cb (applet->nm_client, NM_DEVICE (g_ptr_array_index (devices, i)), applet); + + foo_active_connections_changed_cb (applet->nm_client, NULL, applet); + + applet_schedule_update_icon (applet); + + return FALSE; +} + +static void +foo_client_setup (NMApplet *applet) +{ + NMClientPermission perm; + + applet->nm_client = nm_client_new (); + if (!applet->nm_client) + return; + + g_signal_connect (applet->nm_client, "notify::state", + G_CALLBACK (foo_client_state_changed_cb), + applet); + g_signal_connect (applet->nm_client, "notify::active-connections", + G_CALLBACK (foo_active_connections_changed_cb), + applet); + g_signal_connect (applet->nm_client, "device-added", + G_CALLBACK (foo_device_added_cb), + applet); + g_signal_connect (applet->nm_client, "notify::manager-running", + G_CALLBACK (foo_manager_running_cb), + applet); + + g_signal_connect (applet->nm_client, "permission-changed", + G_CALLBACK (foo_manager_permission_changed), + applet); + + /* Initialize permissions - the initial 'permission-changed' signal is emitted from NMClient constructor, and thus not caught */ + for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { + applet->permissions[perm] = nm_client_get_permission_result (applet->nm_client, perm); + } + + if (nm_client_get_manager_running (applet->nm_client)) + g_idle_add (foo_set_initial_state, applet); +} + +static GdkPixbuf * +applet_common_get_device_icon (NMDeviceState state, NMApplet *applet) +{ + GdkPixbuf *pixbuf = NULL; + int stage = -1; + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + stage = 0; + break; + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + stage = 1; + break; + case NM_DEVICE_STATE_IP_CONFIG: + stage = 2; + break; + default: + break; + } + + if (stage >= 0) { + int i, j; + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { + char *name; + + name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); + nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); + g_free (name); + } + } + + pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_CONNECTING_FRAMES) + applet->animation_step = 0; + } + + return pixbuf; +} + +static char * +get_tip_for_device_state (NMDevice *device, + NMDeviceState state, + NMConnection *connection) +{ + NMSettingConnection *s_con; + char *tip = NULL; + const char *id = NULL; + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + tip = g_strdup_printf (_("Preparing network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + tip = g_strdup_printf (_("Network connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static GdkPixbuf * +applet_get_device_icon_for_state (NMApplet *applet, char **tip) +{ + NMActiveConnection *active; + NMDevice *device = NULL; + GdkPixbuf *pixbuf = NULL; + NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; + NMADeviceClass *dclass; + + // FIXME: handle multiple device states here + + /* First show the best activating device's state */ + active = applet_get_best_activating_connection (applet, &device); + if (!active || !device) { + /* If there aren't any activating devices, then show the state of + * the default active connection instead. + */ + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) + goto out; + } + + state = nm_device_get_state (device); + + dclass = get_device_class (device, applet); + if (dclass) { + NMConnection *connection; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + /* device class returns a referenced pixbuf */ + pixbuf = dclass->get_icon (device, state, connection, tip, applet); + if (!*tip) + *tip = get_tip_for_device_state (device, state, connection); + } + +out: + if (!pixbuf) { + pixbuf = applet_common_get_device_icon (state, applet); + /* reference the pixbuf to match the device class' get_icon() function behavior */ + if (pixbuf) + g_object_ref (pixbuf); + } + return pixbuf; +} + +static char * +get_tip_for_vpn (NMActiveConnection *active, NMVPNConnectionState state, NMApplet *applet) +{ + char *tip = NULL; + const char *path, *id = NULL; + GSList *iter, *list; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + if (!strcmp (nm_connection_get_path (candidate), path)) { + s_con = nm_connection_get_setting_connection (candidate); + id = nm_setting_connection_get_id (s_con); + break; + } + } + g_slist_free (list); + + if (!id) + return NULL; + + switch (state) { + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_PREPARE: + tip = g_strdup_printf (_("Starting VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + tip = g_strdup_printf (_("Requesting a VPN address for '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + tip = g_strdup_printf (_("VPN connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static gboolean +applet_update_icon (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GdkPixbuf *pixbuf = NULL; + NMState state; + char *dev_tip = NULL, *vpn_tip = NULL; + NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; + gboolean nm_running; + NMActiveConnection *active_vpn = NULL; + + applet->update_icon_id = 0; + + nm_running = nm_client_get_manager_running (applet->nm_client); + gtk_status_icon_set_visible (applet->status_icon, nm_running); + + /* Handle device state first */ + + state = nm_client_get_state (applet->nm_client); + if (!nm_running) + state = NM_STATE_UNKNOWN; + + switch (state) { + case NM_STATE_UNKNOWN: + case NM_STATE_ASLEEP: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("Networking disabled")); + break; + case NM_STATE_DISCONNECTED: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("No network connection")); + break; + default: + pixbuf = applet_get_device_icon_for_state (applet, &dev_tip); + break; + } + + foo_set_icon (applet, pixbuf, ICON_LAYER_LINK); + if (pixbuf) + g_object_unref (pixbuf); + + /* VPN state next */ + pixbuf = NULL; + active_vpn = applet_get_first_active_vpn_connection (applet, &vpn_state); + if (active_vpn) { + int i; + + switch (vpn_state) { + case NM_VPN_CONNECTION_STATE_ACTIVATED: + pixbuf = nma_icon_check_and_load ("nm-vpn-active-lock", &applet->vpn_lock_icon, applet); + break; + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) { + char *name; + + name = g_strdup_printf ("nm-vpn-connecting%02d", i+1); + nma_icon_check_and_load (name, &applet->vpn_connecting_icons[i], applet); + g_free (name); + } + + pixbuf = applet->vpn_connecting_icons[applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) + applet->animation_step = 0; + break; + default: + break; + } + + vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); + } + foo_set_icon (applet, pixbuf, ICON_LAYER_VPN); + + g_free (applet->tip); + applet->tip = NULL; + + if (dev_tip || vpn_tip) { + GString *tip; + + tip = g_string_new (dev_tip); + + if (vpn_tip) + g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", vpn_tip); + + if (tip->len) + applet->tip = tip->str; + + g_free (vpn_tip); + g_free (dev_tip); + g_string_free (tip, FALSE); + } + + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); + + return FALSE; +} + +void +applet_schedule_update_icon (NMApplet *applet) +{ + if (!applet->update_icon_id) + applet->update_icon_id = g_idle_add (applet_update_icon, applet); +} + +/*****************************************************************************/ + +static SecretsRequest * +applet_secrets_request_new (size_t totsize, + NMConnection *connection, + gpointer request_id, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + NMApplet *applet) +{ + SecretsRequest *req; + + g_return_val_if_fail (totsize >= sizeof (SecretsRequest), NULL); + g_return_val_if_fail (connection != NULL, NULL); + + req = g_malloc0 (totsize); + req->totsize = totsize; + req->connection = g_object_ref (connection); + req->reqid = request_id; + req->setting_name = g_strdup (setting_name); + req->hints = g_strdupv ((char **) hints); + req->flags = flags; + req->callback = callback; + req->callback_data = callback_data; + req->applet = applet; + return req; +} + +void +applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func) +{ + req->free_func = free_func; +} + +void +applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error) +{ + req->callback (req->applet->agent, error ? NULL : settings, error, req->callback_data); +} + +void +applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error) +{ + NMSetting *setting; + GHashTable *settings = NULL, *secrets; + + if (setting_name && !error) { + setting = nm_connection_get_setting_by_name (req->connection, setting_name); + if (setting) { + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, g_strdup (setting_name), secrets); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, setting_name); + } + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled setting '%s'", + __FILE__, __LINE__, __func__, setting_name); + } + } + + req->callback (req->applet->agent, settings, error, req->callback_data); +} + +void +applet_secrets_request_free (SecretsRequest *req) +{ + g_return_if_fail (req != NULL); + + if (req->free_func) + req->free_func (req); + + req->applet->secrets_reqs = g_slist_remove (req->applet->secrets_reqs, req); + + g_object_unref (req->connection); + g_free (req->setting_name); + g_strfreev (req->hints); + memset (req, 0, req->totsize); + g_free (req); +} + +static void +get_existing_secrets_cb (NMSecretAgent *agent, + NMConnection *connection, + GHashTable *secrets, + GError *secrets_error, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMADeviceClass *dclass; + GError *error = NULL; + + /* Merge existing secrets into connection; ignore errors */ + nm_connection_update_secrets (connection, req->setting_name, secrets, NULL); + + dclass = get_device_class_from_connection (connection, req->applet); + g_assert (dclass); + + /* Let the device class handle secrets */ + if (!dclass->get_secrets (req, &error)) { + g_warning ("%s:%d - %s", __func__, __LINE__, error ? error->message : "(unknown)"); + applet_secrets_request_complete (req, NULL, error); + applet_secrets_request_free (req); + g_error_free (error); + } + /* Otherwise success; wait for the secrets callback */ +} + +static void +applet_agent_get_secrets_cb (AppletAgent *agent, + gpointer request_id, + NMConnection *connection, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMSettingConnection *s_con; + NMADeviceClass *dclass; + GError *error = NULL; + SecretsRequest *req = NULL; + + s_con = nm_connection_get_setting_connection (connection); + g_return_if_fail (s_con != NULL); + + /* VPN secrets get handled a bit differently */ + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + req = applet_secrets_request_new (applet_vpn_request_get_secrets_size (), + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + if (!applet_vpn_request_get_secrets (req, &error)) + goto error; + + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + return; + } + + dclass = get_device_class_from_connection (connection, applet); + if (!dclass) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): device type unknown", + __FILE__, __LINE__, __func__); + goto error; + } + + if (!dclass->get_secrets) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NO_SECRETS, + "%s.%d (%s): no secrets found", + __FILE__, __LINE__, __func__); + goto error; + } + + g_assert (dclass->secrets_request_size); + req = applet_secrets_request_new (dclass->secrets_request_size, + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + + /* Get existing secrets, if any */ + nm_secret_agent_get_secrets (NM_SECRET_AGENT (applet->agent), + connection, + setting_name, + hints, + NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE, + get_existing_secrets_cb, + req); + return; + +error: + g_warning ("%s", error->message); + callback (agent, NULL, error, callback_data); + g_error_free (error); + + if (req) + applet_secrets_request_free (req); +} + +static void +applet_agent_cancel_secrets_cb (AppletAgent *agent, + gpointer request_id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GSList *iter; + + for (iter = applet->secrets_reqs; iter; iter = g_slist_next (iter)) { + SecretsRequest *req = iter->data; + + if (req->reqid == request_id) { + /* cancel and free this password request */ + applet_secrets_request_free (req); + } + } +} + +static void +applet_agent_registered_cb (AppletAgent *agent, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + /* If the shell is running and the agent just got registered, unregister it */ + if ( (nm_shell_watcher_version_at_least (applet->shell_watcher, 3, 4)) + && nm_secret_agent_get_registered (NM_SECRET_AGENT (agent))) { + g_message ("Stopping registered applet secret agent because GNOME Shell is running"); + nm_secret_agent_unregister (NM_SECRET_AGENT (agent)); + } +} + +/*****************************************************************************/ + +static void +nma_clear_icon (GdkPixbuf **icon, NMApplet *applet) +{ + g_return_if_fail (icon != NULL); + g_return_if_fail (applet != NULL); + + if (*icon && (*icon != applet->fallback_icon)) { + g_object_unref (*icon); + *icon = NULL; + } +} + +static void nma_icons_free (NMApplet *applet) +{ + int i, j; + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); + + nma_clear_icon (&applet->no_connection_icon, applet); + nma_clear_icon (&applet->ethernet_icon, applet); + nma_clear_icon (&applet->adhoc_icon, applet); + nma_clear_icon (&applet->wwan_icon, applet); + nma_clear_icon (&applet->wwan_tower_icon, applet); + nma_clear_icon (&applet->vpn_lock_icon, applet); + nma_clear_icon (&applet->wifi_00_icon, applet); + nma_clear_icon (&applet->wifi_25_icon, applet); + nma_clear_icon (&applet->wifi_50_icon, applet); + nma_clear_icon (&applet->wifi_75_icon, applet); + nma_clear_icon (&applet->wifi_100_icon, applet); + nma_clear_icon (&applet->secure_lock_icon, applet); + + nma_clear_icon (&applet->mb_tech_1x_icon, applet); + nma_clear_icon (&applet->mb_tech_evdo_icon, applet); + nma_clear_icon (&applet->mb_tech_gprs_icon, applet); + nma_clear_icon (&applet->mb_tech_edge_icon, applet); + nma_clear_icon (&applet->mb_tech_umts_icon, applet); + nma_clear_icon (&applet->mb_tech_hspa_icon, applet); + nma_clear_icon (&applet->mb_tech_lte_icon, applet); + nma_clear_icon (&applet->mb_roaming_icon, applet); + nma_clear_icon (&applet->mb_tech_3g_icon, applet); + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) + nma_clear_icon (&applet->network_connecting_icons[i][j], applet); + } + + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) + nma_clear_icon (&applet->vpn_connecting_icons[i], applet); + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); +} + +GdkPixbuf * +nma_icon_check_and_load (const char *name, GdkPixbuf **icon, NMApplet *applet) +{ + GError *error = NULL; + + g_return_val_if_fail (name != NULL, NULL); + g_return_val_if_fail (icon != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + /* icon already loaded successfully */ + if (*icon && (*icon != applet->fallback_icon)) + return *icon; + + /* Try to load the icon; if the load fails, log the problem, and set + * the icon to the fallback icon if requested. + */ + *icon = gtk_icon_theme_load_icon (applet->icon_theme, name, applet->icon_size, 0, &error); + if (!*icon) { + g_warning ("Icon %s missing: (%d) %s", + name, + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + + *icon = applet->fallback_icon; + } + return *icon; +} + +#include "fallback-icon.h" + +static gboolean +nma_icons_reload (NMApplet *applet) +{ + GError *error = NULL; + GdkPixbufLoader *loader; + + g_return_val_if_fail (applet->icon_size > 0, FALSE); + + nma_icons_free (applet); + + loader = gdk_pixbuf_loader_new_with_type ("png", &error); + if (!loader) + goto error; + + if (!gdk_pixbuf_loader_write (loader, + fallback_icon_data, + sizeof (fallback_icon_data), + &error)) + goto error; + + if (!gdk_pixbuf_loader_close (loader, &error)) + goto error; + + applet->fallback_icon = gdk_pixbuf_loader_get_pixbuf (loader); + g_object_ref (applet->fallback_icon); + g_assert (applet->fallback_icon); + g_object_unref (loader); + + return TRUE; + +error: + g_warning ("Could not load fallback icon: (%d) %s", + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + /* Die if we can't get a fallback icon */ + g_assert (FALSE); + return FALSE; +} + +static void nma_icon_theme_changed (GtkIconTheme *icon_theme, NMApplet *applet) +{ + nma_icons_reload (applet); +} + +static void nma_icons_init (NMApplet *applet) +{ + GdkScreen *screen; + gboolean path_appended; + + if (applet->icon_theme) { + g_signal_handlers_disconnect_by_func (applet->icon_theme, + G_CALLBACK (nma_icon_theme_changed), + applet); + g_object_unref (G_OBJECT (applet->icon_theme)); + } + + screen = gtk_status_icon_get_screen (applet->status_icon); + g_assert (screen); + applet->icon_theme = gtk_icon_theme_get_for_screen (screen); + + /* If not done yet, append our search path */ + path_appended = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended")); + if (path_appended == FALSE) { + gtk_icon_theme_append_search_path (applet->icon_theme, ICONDIR); + g_object_set_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended", + GINT_TO_POINTER (TRUE)); + } + + g_signal_connect (applet->icon_theme, "changed", G_CALLBACK (nma_icon_theme_changed), applet); +} + +static void +status_icon_screen_changed_cb (GtkStatusIcon *icon, + GParamSpec *pspec, + NMApplet *applet) +{ + nma_icons_init (applet); + nma_icon_theme_changed (NULL, applet); +} + +static gboolean +status_icon_size_changed_cb (GtkStatusIcon *icon, + gint size, + NMApplet *applet) +{ + if (getenv ("NMA_SIZE_DEBUG")) { + g_message ("%s(): status icon size now %d", __func__, size); + } + + /* icon_size may be 0 if for example the panel hasn't given us any space + * yet. We'll get resized later, but for now just load the 16x16 icons. + */ + applet->icon_size = MAX (16, size); + + nma_icons_reload (applet); + + applet_schedule_update_icon (applet); + + return TRUE; +} + +static void +status_icon_activate_cb (GtkStatusIcon *icon, NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + applet_clear_notify (applet); + + /* Kill any old menu */ + if (applet->menu) + g_object_unref (applet->menu); + + /* And make a fresh new one */ + applet->menu = gtk_menu_new (); + /* Sink the ref so we can explicitly destroy the menu later */ + g_object_ref_sink (G_OBJECT (applet->menu)); + + gtk_container_set_border_width (GTK_CONTAINER (applet->menu), 0); + g_signal_connect (applet->menu, "show", G_CALLBACK (nma_menu_show_cb), applet); + g_signal_connect (applet->menu, "deactivate", G_CALLBACK (nma_menu_deactivate_cb), applet); + + /* Display the new menu */ + gtk_menu_popup (GTK_MENU (applet->menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + 1, gtk_get_current_event_time ()); +} + +static void +status_icon_popup_menu_cb (GtkStatusIcon *icon, + guint button, + guint32 activate_time, + NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + applet_clear_notify (applet); + + nma_context_menu_update (applet); + gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + button, activate_time); +} + +static gboolean +setup_widgets (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->status_icon = gtk_status_icon_new (); + if (!applet->status_icon) + return FALSE; + if (shell_debug) + gtk_status_icon_set_name (applet->status_icon, "adsfasdfasdfadfasdf"); + + g_signal_connect (applet->status_icon, "notify::screen", + G_CALLBACK (status_icon_screen_changed_cb), applet); + g_signal_connect (applet->status_icon, "size-changed", + G_CALLBACK (status_icon_size_changed_cb), applet); + g_signal_connect (applet->status_icon, "activate", + G_CALLBACK (status_icon_activate_cb), applet); + g_signal_connect (applet->status_icon, "popup-menu", + G_CALLBACK (status_icon_popup_menu_cb), applet); + + applet->context_menu = nma_context_menu_create (applet); + if (!applet->context_menu) + return FALSE; + + return TRUE; +} + +static void +applet_embedded_cb (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + gboolean embedded = gtk_status_icon_is_embedded (GTK_STATUS_ICON (object)); + + g_message ("applet now %s the notification area", + embedded ? "embedded in" : "removed from"); +} + +#if GLIB_CHECK_VERSION(2,26,0) +static gboolean +delayed_start_agent (gpointer user_data) +{ + NMApplet *applet = user_data; + + applet->agent_start_id = 0; + + g_assert (applet->agent); + + /* If the agent is already running, there's nothing to do. */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent)) == TRUE) + return FALSE; + + if (nm_secret_agent_register (NM_SECRET_AGENT (applet->agent))) + g_message ("Starting applet secret agent because GNOME Shell disappeared"); + else + g_warning ("Failed to start applet secret agent!"); + return FALSE; +} + +static void +shell_version_changed_cb (NMShellWatcher *watcher, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = user_data; + + if (applet->agent_start_id) { + g_source_remove (applet->agent_start_id); + applet->agent_start_id = 0; + } + + if (!applet->agent) + return; + + if (nm_shell_watcher_version_at_least (watcher, 3, 4)) { + /* GNOME Shell handles all secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) { + g_message ("Stopping applet secret agent because GNOME Shell appeared"); + nm_secret_agent_unregister (NM_SECRET_AGENT (applet->agent)); + } + } else if (nm_shell_watcher_version_at_least (watcher, 3, 2)) { + /* GNOME Shell handles everything except VPN secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + g_message ("Applet secret agent handling only VPN secrets because GNOME Shell appeared"); + applet_agent_handle_vpn_only (applet->agent, TRUE); + } else { + /* If the shell quit and our agent wasn't already registered, do it + * now on a delay (just in case the shell is restarting). + */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + applet->agent_start_id = g_timeout_add_seconds (4, delayed_start_agent, applet); + applet_agent_handle_vpn_only (applet->agent, FALSE); + } +} +#endif + +static gboolean +dbus_setup (NMApplet *applet, GError **error) +{ + DBusConnection *connection; + DBusGProxy *proxy; + guint result; + gboolean success; + + applet->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, error); + if (!applet->bus) + return FALSE; + + connection = dbus_g_connection_get_connection (applet->bus); + dbus_connection_set_exit_on_disconnect (connection, FALSE); + + applet->session_bus = dbus_g_bus_get (DBUS_BUS_SESSION, error); + if (!applet->session_bus) + return FALSE; + + dbus_g_connection_register_g_object (applet->session_bus, + "/org/gnome/network_manager_applet", + G_OBJECT (applet)); + + proxy = dbus_g_proxy_new_for_name (applet->session_bus, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + success = dbus_g_proxy_call (proxy, "RequestName", error, + G_TYPE_STRING, "org.gnome.network_manager_applet", + G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE, + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID); + g_object_unref (proxy); + + return success; +} + +static GObject * +constructor (GType type, + guint n_props, + GObjectConstructParam *construct_props) +{ + NMApplet *applet; + GError* error = NULL; + + applet = NM_APPLET (G_OBJECT_CLASS (nma_parent_class)->constructor (type, n_props, construct_props)); + + g_set_application_name (_("NetworkManager Applet")); + gtk_window_set_default_icon_name (GTK_STOCK_NETWORK); + + applet->info_dialog_ui = gtk_builder_new (); + + if (!gtk_builder_add_from_file (applet->info_dialog_ui, UIDIR "/info.ui", &error)) { + g_warning ("Couldn't load info dialog ui file: %s", error->message); + g_error_free (error); + goto error; + } + + applet->gsettings = g_settings_new (APPLET_PREFS_SCHEMA); + + /* Load pixmaps and create applet widgets */ + if (!setup_widgets (applet)) + goto error; + nma_icons_init (applet); + + if (!notify_is_initted ()) + notify_init ("NetworkManager"); + + if (!dbus_setup (applet, &error)) { + g_warning ("Failed to initialize D-Bus: %s", error->message); + g_error_free (error); + goto error; + } + applet->settings = nm_remote_settings_new (applet->bus); + +#ifdef BUILD_MIGRATION_TOOL + { + char *argv[2] = { LIBEXECDIR "/nm-applet-migration-tool", NULL }; + int status; + + /* Move user connections to the system */ + if (!g_spawn_sync (NULL, argv, NULL, 0, NULL, NULL, + NULL, NULL, &status, &error)) { + g_warning ("Could not run nm-applet-migration-tool: %s", + error->message); + g_error_free (error); + } else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { + g_warning ("nm-applet-migration-tool exited with error"); + } + } +#endif + + applet->agent = applet_agent_new (); + g_assert (applet->agent); + g_signal_connect (applet->agent, APPLET_AGENT_GET_SECRETS, + G_CALLBACK (applet_agent_get_secrets_cb), applet); + g_signal_connect (applet->agent, APPLET_AGENT_CANCEL_SECRETS, + G_CALLBACK (applet_agent_cancel_secrets_cb), applet); + g_signal_connect (applet->agent, "notify::" NM_SECRET_AGENT_REGISTERED, + G_CALLBACK (applet_agent_registered_cb), applet); + + /* Initialize device classes */ + applet->ethernet_class = applet_device_ethernet_get_class (applet); + g_assert (applet->ethernet_class); + + applet->wifi_class = applet_device_wifi_get_class (applet); + g_assert (applet->wifi_class); + + applet->gsm_class = applet_device_gsm_get_class (applet); + g_assert (applet->gsm_class); + + applet->cdma_class = applet_device_cdma_get_class (applet); + g_assert (applet->cdma_class); + + applet->bt_class = applet_device_bt_get_class (applet); + g_assert (applet->bt_class); + + applet->wimax_class = applet_device_wimax_get_class (applet); + g_assert (applet->wimax_class); + + foo_client_setup (applet); + + /* Track embedding to help debug issues where user has removed the + * notification area applet from the panel, and thus nm-applet too. + */ + g_signal_connect (applet->status_icon, "notify::embedded", + G_CALLBACK (applet_embedded_cb), NULL); + applet_embedded_cb (G_OBJECT (applet->status_icon), NULL, NULL); + +#if GLIB_CHECK_VERSION(2,26,0) + /* Watch GNOME Shell so we can unregister our applet agent if it appears */ + applet->shell_watcher = nm_shell_watcher_new (); + g_signal_connect (applet->shell_watcher, + "notify::shell-version", + G_CALLBACK (shell_version_changed_cb), + applet); +#endif + + return G_OBJECT (applet); + +error: + g_object_unref (applet); + return NULL; +} + +static void finalize (GObject *object) +{ + NMApplet *applet = NM_APPLET (object); + + g_slice_free (NMADeviceClass, applet->ethernet_class); + g_slice_free (NMADeviceClass, applet->wifi_class); + g_slice_free (NMADeviceClass, applet->gsm_class); + g_slice_free (NMADeviceClass, applet->cdma_class); + g_slice_free (NMADeviceClass, applet->bt_class); + g_slice_free (NMADeviceClass, applet->wimax_class); + + if (applet->update_icon_id) + g_source_remove (applet->update_icon_id); + + if (applet->menu) + g_object_unref (applet->menu); + nma_icons_free (applet); + + g_free (applet->tip); + + while (g_slist_length (applet->secrets_reqs)) + applet_secrets_request_free ((SecretsRequest *) applet->secrets_reqs->data); + + if (applet->notification) { + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + } + + if (applet->info_dialog_ui) + g_object_unref (applet->info_dialog_ui); + + if (applet->gsettings) + g_object_unref (applet->gsettings); + + if (applet->status_icon) + g_object_unref (applet->status_icon); + + if (applet->nm_client) + g_object_unref (applet->nm_client); + + if (applet->fallback_icon) + g_object_unref (applet->fallback_icon); + + if (applet->agent) + g_object_unref (applet->agent); + + if (applet->settings) + g_object_unref (applet->settings); + + if (applet->bus) + dbus_g_connection_unref (applet->bus); + + if (applet->session_bus) + dbus_g_connection_unref (applet->session_bus); + +#if GLIB_CHECK_VERSION(2,26,0) + if (applet->shell_watcher) + g_object_unref (applet->shell_watcher); +#endif + if (applet->agent_start_id) + g_source_remove (applet->agent_start_id); + + G_OBJECT_CLASS (nma_parent_class)->finalize (object); +} + +static void nma_init (NMApplet *applet) +{ + applet->animation_id = 0; + applet->animation_step = 0; + applet->icon_theme = NULL; + applet->notification = NULL; + applet->icon_size = 16; +} + +enum { + PROP_0, + PROP_LOOP, + LAST_PROP +}; + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMApplet *applet = NM_APPLET (object); + + switch (prop_id) { + case PROP_LOOP: + applet->loop = g_value_get_pointer (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void nma_class_init (NMAppletClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GParamSpec *pspec; + + oclass->set_property = set_property; + oclass->constructor = constructor; + oclass->finalize = finalize; + + pspec = g_param_spec_pointer ("loop", "Loop", "Applet mainloop", G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); + g_object_class_install_property (oclass, PROP_LOOP, pspec); + + dbus_g_object_type_install_info (NM_TYPE_APPLET, &dbus_glib_nma_object_info); +} + +NMApplet * +nm_applet_new (GMainLoop *loop) +{ + return g_object_new (NM_TYPE_APPLET, "loop", loop, NULL); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/lp328572-dxteam-connect-text.patch/src/applet-device-wifi.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp328572-dxteam-connect-text.patch/src/applet-device-wifi.c --- network-manager-applet-0.9.4.1/.pc/lp328572-dxteam-connect-text.patch/src/applet-device-wifi.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp328572-dxteam-connect-text.patch/src/applet-device-wifi.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,1706 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-wifi.h" +#include "ap-menu-item.h" +#include "utils.h" +#include "nm-wifi-dialog.h" +#include "nm-ui-utils.h" + +#define ACTIVE_AP_TAG "active-ap" + +static void wifi_dialog_response_cb (GtkDialog *dialog, gint response, gpointer user_data); + +static void nag_dialog_response_cb (GtkDialog *nag_dialog, gint response, gpointer user_data); + +static NMAccessPoint *update_active_ap (NMDevice *device, NMDeviceState state, NMApplet *applet); + +static void _do_new_auto_connection (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap, + AppletNewAutoConnectionCallback callback, + gpointer callback_data); + +static void +show_ignore_focus_stealing_prevention (GtkWidget *widget) +{ + GdkWindow *window; + + gtk_widget_realize (widget); + gtk_widget_show (widget); + window = gtk_widget_get_window (widget); + gtk_window_present_with_time (GTK_WINDOW (widget), gdk_x11_get_server_time (window)); +} + +gboolean +applet_wifi_connect_to_hidden_network (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = nma_wifi_dialog_new_for_other (applet->nm_client, applet->settings); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (wifi_dialog_response_cb), + applet); + show_ignore_focus_stealing_prevention (dialog); + } + return !!dialog; +} + +void +nma_menu_add_hidden_network_item (GtkWidget *menu, NMApplet *applet) +{ + GtkWidget *menu_item; + GtkWidget *label; + + menu_item = gtk_menu_item_new (); + label = gtk_label_new_with_mnemonic (_("_Connect to Hidden Wi-Fi Network...")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_container_add (GTK_CONTAINER (menu_item), label); + gtk_widget_show_all (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_swapped (menu_item, "activate", + G_CALLBACK (applet_wifi_connect_to_hidden_network), + applet); +} + +gboolean +applet_wifi_can_create_wifi_network (NMApplet *applet) +{ + gboolean disabled, allowed = FALSE; + NMClientPermissionResult perm; + + /* FIXME: check WIFI_SHARE_PROTECTED too, and make the wifi dialog + * handle the permissions as well so that admins can restrict open network + * creation separately from protected network creation. + */ + perm = nm_client_get_permission_result (applet->nm_client, NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN); + if (perm == NM_CLIENT_PERMISSION_RESULT_YES || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + disabled = g_settings_get_boolean (applet->gsettings, PREF_DISABLE_WIFI_CREATE); + if (!disabled) + allowed = TRUE; + } + return allowed; +} + +gboolean +applet_wifi_create_wifi_network (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = nma_wifi_dialog_new_for_create (applet->nm_client, applet->settings); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (wifi_dialog_response_cb), + applet); + show_ignore_focus_stealing_prevention (dialog); + } + return !!dialog; +} + +void +nma_menu_add_create_network_item (GtkWidget *menu, NMApplet *applet) +{ + GtkWidget *menu_item; + GtkWidget *label; + + menu_item = gtk_menu_item_new (); + label = gtk_label_new_with_mnemonic (_("Create _New Wi-Fi Network...")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_container_add (GTK_CONTAINER (menu_item), label); + gtk_widget_show_all (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_swapped (menu_item, "activate", + G_CALLBACK (applet_wifi_create_wifi_network), + applet); + + if (!applet_wifi_can_create_wifi_network (applet)) + gtk_widget_set_sensitive (GTK_WIDGET (menu_item), FALSE); +} + +static void +dbus_8021x_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMAccessPoint *ap; +} Dbus8021xInfo; + +static void +dbus_connect_8021x_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus8021xInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + nm_object_get_path (NM_OBJECT (info->ap)), + dbus_8021x_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + g_object_unref (info->ap); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +gboolean +applet_wifi_connect_to_8021x_network (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap) +{ + Dbus8021xInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + info->ap = g_object_ref (ap); + + _do_new_auto_connection (applet, device, ap, dbus_connect_8021x_cb, info); + return TRUE; +} + + +typedef struct { + NMApplet *applet; + NMDeviceWifi *device; + NMAccessPoint *ap; + NMConnection *connection; +} WifiMenuItemInfo; + +static void +wifi_menu_item_info_destroy (gpointer data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) data; + + g_object_unref (G_OBJECT (info->device)); + g_object_unref (G_OBJECT (info->ap)); + + if (info->connection) + g_object_unref (G_OBJECT (info->connection)); + + g_slice_free (WifiMenuItemInfo, data); +} + +/* + * NOTE: this list should *not* contain networks that you would like to + * automatically roam to like "Starbucks" or "AT&T" or "T-Mobile HotSpot". + */ +static const char *manf_default_ssids[] = { + "linksys", + "linksys-a", + "linksys-g", + "default", + "belkin54g", + "NETGEAR", + "o2DSL", + "WLAN", + "ALICE-WLAN", + NULL +}; + +static gboolean +is_ssid_in_list (const GByteArray *ssid, const char **list) +{ + while (*list) { + if (ssid->len == strlen (*list)) { + if (!memcmp (*list, ssid->data, ssid->len)) + return TRUE; + } + list++; + } + return FALSE; +} + +static gboolean +is_manufacturer_default_ssid (const GByteArray *ssid) +{ + return is_ssid_in_list (ssid, manf_default_ssids); +} + +static char * +get_ssid_utf8 (NMAccessPoint *ap) +{ + char *ssid_utf8 = NULL; + const GByteArray *ssid; + + if (ap) { + ssid = nm_access_point_get_ssid (ap); + if (ssid) + ssid_utf8 = nm_utils_ssid_to_utf8 (ssid); + } + if (!ssid_utf8) + ssid_utf8 = g_strdup (_("(none)")); + + return ssid_utf8; +} + +/* List known trojan networks that should never be shown to the user */ +static const char *blacklisted_ssids[] = { + /* http://www.npr.org/templates/story/story.php?storyId=130451369 */ + "Free Public WiFi", + NULL +}; + +static gboolean +is_blacklisted_ssid (const GByteArray *ssid) +{ + return is_ssid_in_list (ssid, blacklisted_ssids); +} + +static void +clamp_ap_to_bssid (NMAccessPoint *ap, NMSettingWireless *s_wifi) +{ + const char *str_bssid; + struct ether_addr *eth_addr; + GByteArray *bssid; + + /* For a certain list of known ESSIDs which are commonly preset by ISPs + * and manufacturers and often unchanged by users, lock the connection + * to the BSSID so that we don't try to auto-connect to your grandma's + * neighbor's WiFi. + */ + + str_bssid = nm_access_point_get_hw_address (ap); + if (str_bssid) { + eth_addr = ether_aton (str_bssid); + if (eth_addr) { + bssid = g_byte_array_sized_new (ETH_ALEN); + g_byte_array_append (bssid, eth_addr->ether_addr_octet, ETH_ALEN); + g_object_set (G_OBJECT (s_wifi), + NM_SETTING_WIRELESS_BSSID, bssid, + NULL); + g_byte_array_free (bssid, TRUE); + } + } +} + +typedef struct { + NMApplet *applet; + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} MoreInfo; + +static void +more_info_wifi_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (foo); + MoreInfo *info = user_data; + NMConnection *connection = NULL; + NMDevice *device = NULL; + NMAccessPoint *ap = NULL; + + if (response != GTK_RESPONSE_OK) { + info->callback (NULL, FALSE, TRUE, info->callback_data); + goto done; + } + + if (!nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *nag_dialog; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + nag_dialog = nma_wifi_dialog_nag_user (dialog); + if (nag_dialog) { + gtk_window_set_transient_for (GTK_WINDOW (nag_dialog), GTK_WINDOW (dialog)); + g_signal_connect (nag_dialog, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + /* nma_wifi_dialog_get_connection() returns a connection with the + * refcount incremented, so the caller must remember to unref it. + */ + connection = nma_wifi_dialog_get_connection (dialog, &device, &ap); + g_assert (connection); + g_assert (device); + + info->callback (connection, TRUE, FALSE, info->callback_data); + + /* Balance nma_wifi_dialog_get_connection() */ + g_object_unref (connection); + +done: + g_free (info); + gtk_widget_hide (GTK_WIDGET (dialog)); + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static void +_do_new_auto_connection (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMConnection *connection = NULL; + NMSettingConnection *s_con = NULL; + NMSettingWireless *s_wifi = NULL; + NMSettingWirelessSecurity *s_wsec = NULL; + NMSetting8021x *s_8021x = NULL; + const GByteArray *ssid; + NM80211ApSecurityFlags wpa_flags, rsn_flags; + GtkWidget *dialog; + MoreInfo *more_info; + char *uuid; + + g_assert (applet); + g_assert (device); + g_assert (ap); + + connection = nm_connection_new (); + + ssid = nm_access_point_get_ssid (ap); + if ( (nm_access_point_get_mode (ap) == NM_802_11_MODE_INFRA) + && (is_manufacturer_default_ssid (ssid) == TRUE)) { + + /* Lock connection to this AP if it's a manufacturer-default SSID + * so that we don't randomly connect to some other 'linksys' + */ + s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); + clamp_ap_to_bssid (ap, s_wifi); + nm_connection_add_setting (connection, NM_SETTING (s_wifi)); + } + + /* If the AP is WPA[2]-Enterprise then we need to set up a minimal 802.1x + * setting and ask the user for more information. + */ + rsn_flags = nm_access_point_get_rsn_flags (ap); + wpa_flags = nm_access_point_get_wpa_flags (ap); + if ( (rsn_flags & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + || (wpa_flags & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + + /* Need a UUID for the "always ask" stuff in the Dialog of Doom */ + s_con = (NMSettingConnection *) nm_setting_connection_new (); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, NM_SETTING_CONNECTION_UUID, uuid, NULL); + g_free (uuid); + nm_connection_add_setting (connection, NM_SETTING (s_con)); + + if (!s_wifi) { + s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); + nm_connection_add_setting (connection, NM_SETTING (s_wifi)); + } + g_object_set (s_wifi, + NM_SETTING_WIRELESS_SSID, ssid, + NM_SETTING_WIRELESS_SEC, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, + NULL); + + s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new (); + g_object_set (s_wsec, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-eap", NULL); + nm_connection_add_setting (connection, NM_SETTING (s_wsec)); + + s_8021x = (NMSetting8021x *) nm_setting_802_1x_new (); + nm_setting_802_1x_add_eap_method (s_8021x, "ttls"); + g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_AUTH, "mschapv2", NULL); + nm_connection_add_setting (connection, NM_SETTING (s_8021x)); + } + + /* If it's an 802.1x connection, we need more information, so pop up the + * Dialog Of Doom. + */ + if (s_8021x) { + more_info = g_malloc0 (sizeof (*more_info)); + more_info->applet = applet; + more_info->callback = callback; + more_info->callback_data = callback_data; + + dialog = nma_wifi_dialog_new (applet->nm_client, applet->settings, connection, device, ap, FALSE); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (more_info_wifi_dialog_response_cb), + more_info); + show_ignore_focus_stealing_prevention (dialog); + } + } else { + /* Everything else can just get activated right away */ + callback (connection, TRUE, FALSE, callback_data); + } +} + +static gboolean +wifi_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) dclass_data; + + g_return_val_if_fail (device != NULL, FALSE); + g_return_val_if_fail (info->ap != NULL, FALSE); + + _do_new_auto_connection (info->applet, device, info->ap, callback, callback_data); + return TRUE; +} + + +static void +wifi_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) user_data; + const char *specific_object = NULL; + + if (info->ap) + specific_object = nm_object_get_path (NM_OBJECT (info->ap)); + applet_menu_item_activate_helper (NM_DEVICE (info->device), + info->connection, + specific_object ? specific_object : "/", + info->applet, + user_data); +} + +struct dup_data { + NMDevice *device; + NMNetworkMenuItem *found; + char *hash; +}; + +static void +find_duplicate (gpointer d, gpointer user_data) +{ + struct dup_data * data = (struct dup_data *) user_data; + NMDevice *device; + const char *hash; + GtkWidget *widget = GTK_WIDGET (d); + + g_assert (d && widget); + g_return_if_fail (data); + g_return_if_fail (data->hash); + + if (data->found || !NM_IS_NETWORK_MENU_ITEM (widget)) + return; + + device = g_object_get_data (G_OBJECT (widget), "device"); + if (NM_DEVICE (device) != data->device) + return; + + hash = nm_network_menu_item_get_hash (NM_NETWORK_MENU_ITEM (widget)); + if (hash && (strcmp (hash, data->hash) == 0)) + data->found = NM_NETWORK_MENU_ITEM (widget); +} + +static NMNetworkMenuItem * +create_new_ap_item (NMDeviceWifi *device, + NMAccessPoint *ap, + struct dup_data *dup_data, + GSList *connections, + NMApplet *applet) +{ + WifiMenuItemInfo *info; + GSList *iter; + NMNetworkMenuItem *item = NULL; + GSList *dev_connections = NULL; + GSList *ap_connections = NULL; + const GByteArray *ssid; + guint32 dev_caps; + + dev_connections = nm_device_filter_connections (NM_DEVICE (device), connections); + ap_connections = nm_access_point_filter_connections (ap, dev_connections); + g_slist_free (dev_connections); + dev_connections = NULL; + + item = NM_NETWORK_MENU_ITEM (nm_network_menu_item_new (dup_data->hash, + !!g_slist_length (ap_connections))); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + + ssid = nm_access_point_get_ssid (ap); + nm_network_menu_item_set_ssid (item, (GByteArray *) ssid); + + dev_caps = nm_device_wifi_get_capabilities (device); + nma_icon_check_and_load ("nm-adhoc", &applet->adhoc_icon, applet); + nm_network_menu_item_set_detail (item, ap, applet->adhoc_icon, dev_caps); + nm_network_menu_item_best_strength (item, nm_access_point_get_strength (ap), applet); + nm_network_menu_item_add_dupe (item, ap); + + g_object_set_data (G_OBJECT (item), "device", NM_DEVICE (device)); + + /* If there's only one connection, don't show the submenu */ + if (g_slist_length (ap_connections) > 1) { + GtkWidget *submenu; + + submenu = gtk_menu_new (); + + for (iter = ap_connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + GtkWidget *subitem; + + s_con = nm_connection_get_setting_connection (connection); + subitem = gtk_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); + + info = g_slice_new0 (WifiMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->ap = g_object_ref (G_OBJECT (ap)); + info->connection = g_object_ref (G_OBJECT (connection)); + + g_signal_connect_data (subitem, "activate", + G_CALLBACK (wifi_menu_item_activate), + info, + (GClosureNotify) wifi_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), GTK_WIDGET (subitem)); + } + + gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu); + } else { + NMConnection *connection; + + info = g_slice_new0 (WifiMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->ap = g_object_ref (G_OBJECT (ap)); + + if (g_slist_length (ap_connections) == 1) { + connection = NM_CONNECTION (g_slist_nth_data (ap_connections, 0)); + info->connection = g_object_ref (G_OBJECT (connection)); + } + + g_signal_connect_data (GTK_WIDGET (item), + "activate", + G_CALLBACK (wifi_menu_item_activate), + info, + (GClosureNotify) wifi_menu_item_info_destroy, + 0); + } + + g_slist_free (ap_connections); + return item; +} + +static NMNetworkMenuItem * +get_menu_item_for_ap (NMDeviceWifi *device, + NMAccessPoint *ap, + GSList *connections, + GSList *menu_list, + NMApplet *applet) +{ + const GByteArray *ssid; + struct dup_data dup_data = { NULL, NULL }; + + /* Don't add BSSs that hide their SSID or are blacklisted */ + ssid = nm_access_point_get_ssid (ap); + if ( !ssid + || nm_utils_is_empty_ssid (ssid->data, ssid->len) + || is_blacklisted_ssid (ssid)) + return NULL; + + /* Find out if this AP is a member of a larger network that all uses the + * same SSID and security settings. If so, we'll already have a menu item + * for this SSID, so just update that item's strength and add this AP to + * menu item's duplicate list. + */ + dup_data.found = NULL; + dup_data.hash = g_object_get_data (G_OBJECT (ap), "hash"); + g_return_val_if_fail (dup_data.hash != NULL, NULL); + + dup_data.device = NM_DEVICE (device); + g_slist_foreach (menu_list, find_duplicate, &dup_data); + + if (dup_data.found) { + nm_network_menu_item_best_strength (dup_data.found, nm_access_point_get_strength (ap), applet); + nm_network_menu_item_add_dupe (dup_data.found, ap); + return NULL; + } + + return create_new_ap_item (device, ap, &dup_data, connections, applet); +} + +static gint +sort_by_name (gconstpointer tmpa, gconstpointer tmpb) +{ + NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); + NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); + const char *a_ssid, *b_ssid; + gboolean a_adhoc, b_adhoc; + int i; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_ssid = nm_network_menu_item_get_ssid (a); + b_ssid = nm_network_menu_item_get_ssid (b); + + if (a_ssid && !b_ssid) + return 1; + if (b_ssid && !a_ssid) + return -1; + + if (a_ssid && b_ssid) { + i = g_ascii_strcasecmp (a_ssid, b_ssid); + if (i != 0) + return i; + } + + /* If the names are the same, sort infrastructure APs first */ + a_adhoc = nm_network_menu_item_get_is_adhoc (a); + b_adhoc = nm_network_menu_item_get_is_adhoc (b); + if (a_adhoc && !b_adhoc) + return 1; + else if (!a_adhoc && b_adhoc) + return -1; + + return 0; +} + +/* Sort menu items for the top-level menu: + * 1) whether there's a saved connection or not + * a) sort alphabetically within #1 + * 2) encrypted without a saved connection + * 3) unencrypted without a saved connection + */ +static gint +sort_toplevel (gconstpointer tmpa, gconstpointer tmpb) +{ + NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); + NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); + gboolean a_fave, b_fave; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_fave = nm_network_menu_item_get_has_connections (a); + b_fave = nm_network_menu_item_get_has_connections (b); + + /* Items with a saved connection first */ + if (a_fave && !b_fave) + return -1; + else if (!a_fave && b_fave) + return 1; + else if (!a_fave && !b_fave) { + gboolean a_enc = nm_network_menu_item_get_is_encrypted (a); + gboolean b_enc = nm_network_menu_item_get_is_encrypted (b); + + /* If neither item has a saved connection, sort by encryption */ + if (a_enc && !b_enc) + return -1; + else if (!a_enc && b_enc) + return 1; + } + + /* For all other cases (both have saved connections, both are encrypted, or + * both are unencrypted) just sort by name. + */ + return sort_by_name (a, b); +} + +static void +wifi_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + NMDeviceWifi *wdev; + char *text; + const GPtrArray *aps; + int i; + NMAccessPoint *active_ap = NULL; + GSList *connections = NULL, *all, *iter; + gboolean wifi_enabled = TRUE; + gboolean wifi_hw_enabled = TRUE; + GSList *menu_items = NULL; /* All menu items we'll be adding */ + NMNetworkMenuItem *item, *active_item = NULL; + GtkWidget *widget; + + wdev = NM_DEVICE_WIFI (device); + aps = nm_device_wifi_get_access_points (wdev); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + if (aps && aps->len > 1) + text = g_strdup_printf (_("Wi-Fi Networks (%s)"), desc); + else + text = g_strdup_printf (_("Wi-Fi Network (%s)"), desc); + } else + text = g_strdup (ngettext ("Wi-Fi Network", "Wi-Fi Networks", aps ? aps->len : 0)); + + widget = applet_menu_item_create_device_item_helper (device, applet, text); + g_free (text); + + gtk_widget_set_sensitive (widget, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); + gtk_widget_show (widget); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + /* Add the active AP if we're connected to something and the device is available */ + if (!nma_menu_device_check_unusable (device)) { + active_ap = nm_device_wifi_get_active_access_point (wdev); + if (active_ap) { + active_item = item = get_menu_item_for_ap (wdev, active_ap, connections, NULL, applet); + if (item) { + nm_network_menu_item_set_active (item, TRUE); + menu_items = g_slist_append (menu_items, item); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + gtk_widget_show_all (GTK_WIDGET (item)); + } + } + } + + /* Notify user of unmanaged or unavailable device */ + wifi_enabled = nm_client_wireless_get_enabled (applet->nm_client); + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + widget = nma_menu_device_get_menu_item (device, applet, + wifi_hw_enabled ? + (wifi_enabled ? NULL : _("Wi-Fi is disabled")) : + _("Wi-Fi is disabled by hardware switch")); + if (widget) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); + gtk_widget_show (widget); + } + + /* If disabled or rfkilled or whatever, nothing left to do */ + if (nma_menu_device_check_unusable (device)) + goto out; + + /* Create menu items for the rest of the APs */ + for (i = 0; aps && (i < aps->len); i++) { + NMAccessPoint *ap = g_ptr_array_index (aps, i); + + item = get_menu_item_for_ap (wdev, ap, connections, menu_items, applet); + if (item) + menu_items = g_slist_append (menu_items, item); + } + + /* Now remove the active AP item from the list, as we've already dealt with + * it. (Needed it when creating menu items for the rest of the APs though + * to ensure duplicate APs are handled correctly) + */ + if (active_item) + menu_items = g_slist_remove (menu_items, active_item); + + /* Sort all the rest of the menu items for the top-level menu */ + menu_items = g_slist_sort (menu_items, sort_toplevel); + + if (g_slist_length (menu_items)) { + GSList *submenu_items = NULL; + GSList *topmenu_items = NULL; + guint32 num_for_toplevel = 5; + + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (menu_items) == (num_for_toplevel + 1)) + num_for_toplevel++; + + /* Add the first 5 APs (or 6 if there are only 6 total) from the sorted + * toplevel list. + */ + for (iter = menu_items; iter && num_for_toplevel; iter = g_slist_next (iter)) { + topmenu_items = g_slist_append (topmenu_items, iter->data); + num_for_toplevel--; + submenu_items = iter->next; + } + topmenu_items = g_slist_sort (topmenu_items, sort_by_name); + + for (iter = topmenu_items; iter; iter = g_slist_next (iter)) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (iter->data)); + gtk_widget_show_all (GTK_WIDGET (iter->data)); + } + g_slist_free (topmenu_items); + topmenu_items = NULL; + + /* If there are any submenu items, make a submenu for those */ + if (submenu_items) { + GtkWidget *subitem, *submenu; + GSList *sorted_subitems; + + subitem = gtk_menu_item_new_with_mnemonic (_("More networks")); + submenu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (subitem), submenu); + + /* Sort the subitems alphabetically */ + sorted_subitems = g_slist_copy (submenu_items); + sorted_subitems = g_slist_sort (sorted_subitems, sort_by_name); + + /* And add the rest to the submenu */ + for (iter = sorted_subitems; iter; iter = g_slist_next (iter)) + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), GTK_WIDGET (iter->data)); + g_slist_free (sorted_subitems); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), subitem); + gtk_widget_show_all (subitem); + } + } + +out: + g_slist_free (menu_items); + g_slist_free (connections); +} + +static void +notify_active_ap_changed_cb (NMDeviceWifi *device, + GParamSpec *pspec, + NMApplet *applet) +{ + NMRemoteConnection *connection; + NMSettingWireless *s_wireless; + NMAccessPoint *new; + const GByteArray *ssid; + NMDeviceState state; + + state = nm_device_get_state (NM_DEVICE (device)); + + new = update_active_ap (NM_DEVICE (device), state, applet); + if (!new || (state != NM_DEVICE_STATE_ACTIVATED)) + return; + + connection = applet_get_exported_connection_for_device (NM_DEVICE (device), applet); + if (!connection) + return; + + s_wireless = nm_connection_get_setting_wireless (NM_CONNECTION (connection)); + if (!s_wireless) + return; + + ssid = nm_access_point_get_ssid (new); + if (!ssid || !nm_utils_same_ssid (nm_setting_wireless_get_ssid (s_wireless), ssid, TRUE)) + return; + + applet_schedule_update_icon (applet); +} + +static void +add_hash_to_ap (NMAccessPoint *ap) +{ + char *hash; + + hash = utils_hash_ap (nm_access_point_get_ssid (ap), + nm_access_point_get_mode (ap), + nm_access_point_get_flags (ap), + nm_access_point_get_wpa_flags (ap), + nm_access_point_get_rsn_flags (ap)); + g_object_set_data_full (G_OBJECT (ap), "hash", hash, (GDestroyNotify) g_free); +} + +static void +notify_ap_prop_changed_cb (NMAccessPoint *ap, + GParamSpec *pspec, + NMApplet *applet) +{ + const char *prop = g_param_spec_get_name (pspec); + + if ( !strcmp (prop, NM_ACCESS_POINT_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_WPA_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_RSN_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_SSID) + || !strcmp (prop, NM_ACCESS_POINT_FREQUENCY) + || !strcmp (prop, NM_ACCESS_POINT_MODE)) { + add_hash_to_ap (ap); + } +} + +static void +wifi_available_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id || strcmp (id, "dont-show")) + return; + + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + TRUE); +} + + +struct ap_notification_data +{ + NMApplet *applet; + NMDeviceWifi *device; + guint id; + gulong last_notification_time; + guint new_con_id; +}; + +/* Scan the list of access points, looking for the case where we have no + * known (i.e. autoconnect) access points, but we do have unknown ones. + * + * If we find one, notify the user. + */ +static gboolean +idle_check_avail_access_point_notification (gpointer datap) +{ + struct ap_notification_data *data = datap; + NMApplet *applet = data->applet; + NMDeviceWifi *device = data->device; + int i; + const GPtrArray *aps; + GSList *all_connections; + GSList *connections; + GTimeVal timeval; + gboolean have_unused_access_point = FALSE; + gboolean have_no_autoconnect_points = TRUE; + + if (nm_client_get_state (data->applet->nm_client) != NM_STATE_DISCONNECTED) + return FALSE; + + if (nm_device_get_state (NM_DEVICE (device)) != NM_DEVICE_STATE_DISCONNECTED) + return FALSE; + + g_get_current_time (&timeval); + if ((timeval.tv_sec - data->last_notification_time) < 60*60) /* Notify at most once an hour */ + return FALSE; + + all_connections = applet_get_all_connections (applet); + connections = nm_device_filter_connections (NM_DEVICE (device), all_connections); + g_slist_free (all_connections); + all_connections = NULL; + + aps = nm_device_wifi_get_access_points (device); + for (i = 0; aps && (i < aps->len); i++) { + NMAccessPoint *ap = aps->pdata[i]; + GSList *ap_connections = nm_access_point_filter_connections (ap, connections); + GSList *iter; + gboolean is_autoconnect = FALSE; + + for (iter = ap_connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (nm_setting_connection_get_autoconnect (s_con)) { + is_autoconnect = TRUE; + break; + } + } + g_slist_free (ap_connections); + + if (!is_autoconnect) + have_unused_access_point = TRUE; + else + have_no_autoconnect_points = FALSE; + } + g_slist_free (connections); + + if (!(have_unused_access_point && have_no_autoconnect_points)) + return FALSE; + + /* Avoid notifying too often */ + g_get_current_time (&timeval); + data->last_notification_time = timeval.tv_sec; + + applet_do_notify (applet, + NOTIFY_URGENCY_LOW, + _("Wi-Fi Networks Available"), + _("Use the network menu to connect to a Wi-Fi network"), + "nm-device-wireless", + "dont-show", + _("Don't show this message again"), + wifi_available_dont_show_cb, + applet); + return FALSE; +} + +static void +queue_avail_access_point_notification (NMDevice *device) +{ + struct ap_notification_data *data; + + data = g_object_get_data (G_OBJECT (device), "notify-wifi-avail-data"); + if (data->id != 0) + return; + + if (g_settings_get_boolean (data->applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + return; + + data->id = g_timeout_add_seconds (3, idle_check_avail_access_point_notification, data); +} + +static void +access_point_added_cb (NMDeviceWifi *device, + NMAccessPoint *ap, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + add_hash_to_ap (ap); + g_signal_connect (G_OBJECT (ap), + "notify", + G_CALLBACK (notify_ap_prop_changed_cb), + applet); + + queue_avail_access_point_notification (NM_DEVICE (device)); +} + +static void +access_point_removed_cb (NMDeviceWifi *device, + NMAccessPoint *ap, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMAccessPoint *old; + + /* If this AP was the active AP, make sure ACTIVE_AP_TAG gets cleared from + * its device. + */ + old = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + if (old == ap) { + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); + applet_schedule_update_icon (applet); + } +} + +static void +on_new_connection (NMRemoteSettings *settings, + NMRemoteConnection *connection, + gpointer datap) +{ + struct ap_notification_data *data = datap; + queue_avail_access_point_notification (NM_DEVICE (data->device)); +} + +static void +free_ap_notification_data (gpointer user_data) +{ + struct ap_notification_data *data = user_data; + NMRemoteSettings *settings = applet_get_settings (data->applet); + + if (data->id) + g_source_remove (data->id); + + if (settings) + g_signal_handler_disconnect (settings, data->new_con_id); + memset (data, 0, sizeof (*data)); + g_free (data); +} + +static void +wifi_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceWifi *wdev = NM_DEVICE_WIFI (device); + const GPtrArray *aps; + int i; + struct ap_notification_data *data; + guint id; + + g_signal_connect (wdev, + "notify::" NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT, + G_CALLBACK (notify_active_ap_changed_cb), + applet); + + g_signal_connect (wdev, + "access-point-added", + G_CALLBACK (access_point_added_cb), + applet); + + g_signal_connect (wdev, + "access-point-removed", + G_CALLBACK (access_point_removed_cb), + applet); + + /* Now create the per-device hooks for watching for available wifi + * connections. + */ + data = g_new0 (struct ap_notification_data, 1); + data->applet = applet; + data->device = wdev; + /* We also need to hook up to the settings to find out when we have new connections + * that might be candididates. Keep the ID around so we can disconnect + * when the device is destroyed. + */ + id = g_signal_connect (applet_get_settings (applet), + NM_REMOTE_SETTINGS_NEW_CONNECTION, + G_CALLBACK (on_new_connection), + data); + data->new_con_id = id; + g_object_set_data_full (G_OBJECT (wdev), "notify-wifi-avail-data", + data, free_ap_notification_data); + + queue_avail_access_point_notification (device); + + /* Hash all APs this device knows about */ + aps = nm_device_wifi_get_access_points (wdev); + for (i = 0; aps && (i < aps->len); i++) + add_hash_to_ap (g_ptr_array_index (aps, i)); +} + +static void +bssid_strength_changed (NMAccessPoint *ap, GParamSpec *pspec, gpointer user_data) +{ + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static NMAccessPoint * +update_active_ap (NMDevice *device, NMDeviceState state, NMApplet *applet) +{ + NMAccessPoint *new = NULL, *old; + + if (state == NM_DEVICE_STATE_PREPARE || + state == NM_DEVICE_STATE_CONFIG || + state == NM_DEVICE_STATE_IP_CONFIG || + state == NM_DEVICE_STATE_NEED_AUTH || + state == NM_DEVICE_STATE_ACTIVATED) { + new = nm_device_wifi_get_active_access_point (NM_DEVICE_WIFI (device)); + } + + old = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + if (new && (new == old)) + return new; /* no change */ + + if (old) { + g_signal_handlers_disconnect_by_func (old, G_CALLBACK (bssid_strength_changed), applet); + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); + } + + if (new) { + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, new); + + /* monitor this AP's signal strength for updating the applet icon */ + g_signal_connect (new, + "notify::" NM_ACCESS_POINT_STRENGTH, + G_CALLBACK (bssid_strength_changed), + applet); + } + + return new; +} + +static void +wifi_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + NMAccessPoint *new = NULL; + char *msg; + char *esc_ssid = NULL; + + new = update_active_ap (device, new_state, applet); + + if (new_state == NM_DEVICE_STATE_DISCONNECTED) + queue_avail_access_point_notification (device); + + if (new_state != NM_DEVICE_STATE_ACTIVATED) + return; + + esc_ssid = get_ssid_utf8 (new); + msg = g_strdup_printf (_("You are now connected to the Wi-Fi network '%s'."), esc_ssid); + applet_do_notify_with_pref (applet, _("Connection Established"), + msg, "nm-device-wireless", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (msg); + g_free (esc_ssid); +} + +static GdkPixbuf * +wifi_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + NMAccessPoint *ap; + GdkPixbuf *pixbuf = NULL; + const char *id; + char *ssid = NULL; + + ap = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing Wi-Fi network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring Wi-Fi network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for Wi-Fi network '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a Wi-Fi network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + if (ap) { + guint32 strength; + + strength = nm_access_point_get_strength (ap); + strength = CLAMP (strength, 0, 100); + + if (strength > 80) + pixbuf = nma_icon_check_and_load ("nm-signal-100", &applet->wifi_100_icon, applet); + else if (strength > 55) + pixbuf = nma_icon_check_and_load ("nm-signal-75", &applet->wifi_75_icon, applet); + else if (strength > 30) + pixbuf = nma_icon_check_and_load ("nm-signal-50", &applet->wifi_50_icon, applet); + else if (strength > 5) + pixbuf = nma_icon_check_and_load ("nm-signal-25", &applet->wifi_25_icon, applet); + else + pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); + + ssid = get_ssid_utf8 (ap); + *tip = g_strdup_printf (_("Wi-Fi network connection '%s' active: %s (%d%%)"), + id, ssid, strength); + g_free (ssid); + } else { + pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); + *tip = g_strdup_printf (_("Wi-Fi network connection '%s' active"), id); + } + break; + default: + break; + } + + return pixbuf ? g_object_ref (pixbuf) : NULL; +} + +static gboolean +wifi_dialog_close (gpointer user_data) +{ + GtkWidget *dialog = GTK_WIDGET (user_data); + + gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); + return FALSE; +} + +static void +wifi_dialog_destroyed (gpointer data, GObject *dialog_ptr) +{ + /* remove the idle function; for not to call wifi_dialog_close() on invalid pointer */ + g_idle_remove_by_data (dialog_ptr); +} + +static void +nag_dialog_response_cb (GtkDialog *nag_dialog, + gint response, + gpointer user_data) +{ + NMAWifiDialog *wifi_dialog = NMA_WIFI_DIALOG (user_data); + + if (response == GTK_RESPONSE_NO) { /* user opted not to correct the warning */ + nma_wifi_dialog_set_nag_ignored (wifi_dialog, TRUE); + g_idle_add (wifi_dialog_close, wifi_dialog); + g_object_weak_ref (G_OBJECT (wifi_dialog), wifi_dialog_destroyed, NULL); + } +} + + +static void +activate_existing_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +activate_new_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add new connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +wifi_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (foo); + NMApplet *applet = NM_APPLET (user_data); + NMConnection *connection = NULL, *fuzzy_match = NULL; + NMDevice *device = NULL; + NMAccessPoint *ap = NULL; + GSList *all, *iter; + + if (response != GTK_RESPONSE_OK) + goto done; + + if (!nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *nag_dialog; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + nag_dialog = nma_wifi_dialog_nag_user (dialog); + if (nag_dialog) { + gtk_window_set_transient_for (GTK_WINDOW (nag_dialog), GTK_WINDOW (dialog)); + g_signal_connect (nag_dialog, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + /* nma_wifi_dialog_get_connection() returns a connection with the + * refcount incremented, so the caller must remember to unref it. + */ + connection = nma_wifi_dialog_get_connection (dialog, &device, &ap); + g_assert (connection); + g_assert (device); + + /* Find a similar connection and use that instead */ + all = applet_get_all_connections (applet); + for (iter = all; iter; iter = g_slist_next (iter)) { + if (nm_connection_compare (connection, + NM_CONNECTION (iter->data), + (NM_SETTING_COMPARE_FLAG_FUZZY | NM_SETTING_COMPARE_FLAG_IGNORE_ID))) { + fuzzy_match = NM_CONNECTION (iter->data); + break; + } + } + g_slist_free (all); + + if (fuzzy_match) { + nm_client_activate_connection (applet->nm_client, + fuzzy_match, + device, + ap ? nm_object_get_path (NM_OBJECT (ap)) : NULL, + activate_existing_cb, + applet); + } else { + NMSetting *s_con; + NMSettingWireless *s_wifi = NULL; + const char *mode = NULL; + + /* Entirely new connection */ + + /* Don't autoconnect adhoc networks by default for now */ + s_wifi = nm_connection_get_setting_wireless (connection); + if (s_wifi) + mode = nm_setting_wireless_get_mode (s_wifi); + if (g_strcmp0 (mode, "adhoc") == 0) { + s_con = nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION); + if (!s_con) { + s_con = nm_setting_connection_new (); + nm_connection_add_setting (connection, s_con); + } + g_object_set (G_OBJECT (s_con), NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, NULL); + } + + nm_client_add_and_activate_connection (applet->nm_client, + connection, + device, + ap ? nm_object_get_path (NM_OBJECT (ap)) : NULL, + activate_new_cb, + applet); + } + + /* Balance nma_wifi_dialog_get_connection() */ + g_object_unref (connection); + +done: + gtk_widget_hide (GTK_WIDGET (dialog)); + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static gboolean +add_one_setting (GHashTable *settings, + NMConnection *connection, + NMSetting *setting, + GError **error) +{ + GHashTable *secrets; + + g_return_val_if_fail (settings != NULL, FALSE); + g_return_val_if_fail (connection != NULL, FALSE); + g_return_val_if_fail (setting != NULL, FALSE); + g_return_val_if_fail (error != NULL, FALSE); + g_return_val_if_fail (*error == NULL, FALSE); + + secrets = nm_setting_to_hash (setting, NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + g_hash_table_insert (settings, g_strdup (nm_setting_get_name (setting)), secrets); + } else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, nm_setting_get_name (setting)); + } + + return secrets ? TRUE : FALSE; +} + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkWidget *nag_dialog; +} NMWifiInfo; + +static void +free_wifi_info (SecretsRequest *req) +{ + NMWifiInfo *info = (NMWifiInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } +} + +static void +get_secrets_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMWifiInfo *info = (NMWifiInfo *) req; + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (info->dialog); + NMConnection *connection = NULL; + NMSettingWirelessSecurity *s_wireless_sec; + GHashTable *settings = NULL; + const char *key_mgmt, *auth_alg; + GError *error = NULL; + + /* Handle the nag dialog specially; don't want to clear the NMActiveConnection + * destroy handler yet if the main dialog isn't going away. + */ + if ((response == GTK_RESPONSE_OK) && !nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *widget; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + widget = nma_wifi_dialog_nag_user (dialog); + if (widget) { + gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (dialog)); + g_signal_connect (widget, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + if (response != GTK_RESPONSE_OK) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + goto done; + } + + connection = nma_wifi_dialog_get_connection (dialog, NULL, NULL); + if (!connection) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't get connection from Wi-Fi dialog.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* Second-guess which setting NM wants secrets for. */ + s_wireless_sec = nm_connection_get_setting_wireless_security (connection); + if (!s_wireless_sec) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): requested setting '802-11-wireless-security'" + " didn't exist in the connection.", + __FILE__, __LINE__, __func__); + goto done; /* Unencrypted */ + } + + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, (GDestroyNotify) g_hash_table_destroy); + if (!settings) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): not enough memory to return secrets.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* If the user chose an 802.1x-based auth method, return 802.1x secrets, + * not wireless secrets. Can happen with Dynamic WEP, because NM doesn't + * know the capabilities of the AP (since Dynamic WEP APs don't broadcast + * beacons), and therefore defaults to requesting WEP secrets from the + * wireless-security setting, not the 802.1x setting. + */ + key_mgmt = nm_setting_wireless_security_get_key_mgmt (s_wireless_sec); + if (!strcmp (key_mgmt, "ieee8021x") || !strcmp (key_mgmt, "wpa-eap")) { + /* LEAP secrets aren't in the 802.1x setting */ + auth_alg = nm_setting_wireless_security_get_auth_alg (s_wireless_sec); + if (!auth_alg || strcmp (auth_alg, "leap")) { + NMSetting8021x *s_8021x; + + s_8021x = nm_connection_get_setting_802_1x (connection); + if (!s_8021x) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): requested setting '802-1x' didn't" + " exist in the connection.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* Add the 802.1x setting */ + if (!add_one_setting (settings, connection, NM_SETTING (s_8021x), &error)) + goto done; + } + } + + /* Add the 802-11-wireless-security setting no matter what */ + add_one_setting (settings, connection, NM_SETTING (s_wireless_sec), &error); + +done: + applet_secrets_request_complete (req, settings, error); + applet_secrets_request_free (req); + + if (settings) + g_hash_table_destroy (settings); + if (connection) + nm_connection_clear_secrets (connection); +} + +static gboolean +wifi_get_secrets (SecretsRequest *req, GError **error) +{ + NMWifiInfo *info = (NMWifiInfo *) req; + + applet_secrets_request_set_free_func (req, free_wifi_info); + + info->dialog = nma_wifi_dialog_new (req->applet->nm_client, req->applet->settings, req->connection, NULL, NULL, TRUE); + if (info->dialog) { + g_signal_connect (info->dialog, "response", + G_CALLBACK (get_secrets_dialog_response_cb), + info); + show_ignore_focus_stealing_prevention (info->dialog); + } else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't display secrets UI", + __FILE__, __LINE__, __func__); + } + return !!info->dialog; +} + +NMADeviceClass * +applet_device_wifi_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = wifi_new_auto_connection; + dclass->add_menu_item = wifi_add_menu_item; + dclass->device_added = wifi_device_added; + dclass->device_state_changed = wifi_device_state_changed; + dclass->get_icon = wifi_get_icon; + dclass->get_secrets = wifi_get_secrets; + dclass->secrets_request_size = sizeof (NMWifiInfo); + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/lp330571_dxteam_wired_connect_text.patch/src/applet-device-ethernet.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp330571_dxteam_wired_connect_text.patch/src/applet-device-ethernet.c --- network-manager-applet-0.9.4.1/.pc/lp330571_dxteam_wired_connect_text.patch/src/applet-device-ethernet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp330571_dxteam_wired_connect_text.patch/src/applet-device-ethernet.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,655 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + * (C) Copyright 2008 Novell, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "ethernet-dialog.h" +#include "nm-ui-utils.h" + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} EthernetMenuItemInfo; + +static void +ethernet_menu_item_info_destroy (gpointer data) +{ + EthernetMenuItemInfo *info = (EthernetMenuItemInfo *) data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (G_OBJECT (info->connection)); + + g_slice_free (EthernetMenuItemInfo, data); +} + +#define DEFAULT_ETHERNET_NAME _("Auto Ethernet") + +static gboolean +ethernet_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMConnection *connection; + NMSettingWired *s_wired = NULL; + NMSettingConnection *s_con; + char *uuid; + + connection = nm_connection_new (); + + s_wired = NM_SETTING_WIRED (nm_setting_wired_new ()); + nm_connection_add_setting (connection, NM_SETTING (s_wired)); + + s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, + NM_SETTING_CONNECTION_ID, DEFAULT_ETHERNET_NAME, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRED_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, TRUE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + + nm_connection_add_setting (connection, NM_SETTING (s_con)); + + (*callback) (connection, TRUE, FALSE, callback_data); + return TRUE; +} + +static void +ethernet_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + EthernetMenuItemInfo *info = (EthernetMenuItemInfo *) user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + + +typedef enum { + ADD_ACTIVE = 1, + ADD_INACTIVE = 2, +} AddActiveInactiveEnum; + +static void +add_connection_items (NMDevice *device, + GSList *connections, + gboolean carrier, + NMConnection *active, + AddActiveInactiveEnum flag, + GtkWidget *menu, + NMApplet *applet) +{ + GSList *iter; + EthernetMenuItemInfo *info; + + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + GtkWidget *item; + + if (active == connection) { + if ((flag & ADD_ACTIVE) == 0) + continue; + } else { + if ((flag & ADD_INACTIVE) == 0) + continue; + } + + item = applet_new_menu_item_helper (connection, active, (flag & ADD_ACTIVE)); + gtk_widget_set_sensitive (item, carrier); + + info = g_slice_new0 (EthernetMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = g_object_ref (connection); + + g_signal_connect_data (item, "activate", + G_CALLBACK (ethernet_menu_item_activate), + info, + (GClosureNotify) ethernet_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } +} + +static void +add_default_connection_item (NMDevice *device, + gboolean carrier, + GtkWidget *menu, + NMApplet *applet) +{ + EthernetMenuItemInfo *info; + GtkWidget *item; + + item = gtk_check_menu_item_new_with_label (DEFAULT_ETHERNET_NAME); + gtk_widget_set_sensitive (GTK_WIDGET (item), carrier); + gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); + + info = g_slice_new0 (EthernetMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + + g_signal_connect_data (item, "activate", + G_CALLBACK (ethernet_menu_item_activate), + info, + (GClosureNotify) ethernet_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); +} + +static void +ethernet_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + char *text; + GtkWidget *item; + GSList *connections, *all; + gboolean carrier = TRUE; + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + + if (g_slist_length (connections) > 1) + text = g_strdup_printf (_("Ethernet Networks (%s)"), desc); + else + text = g_strdup_printf (_("Ethernet Network (%s)"), desc); + } else { + if (g_slist_length (connections) > 1) + text = g_strdup (_("Ethernet Networks")); + else + text = g_strdup (_("Ethernet Network")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); + g_free (text); + + /* Only dim the item if the device supports carrier detection AND + * we know it doesn't have a link. + */ + if (nm_device_get_capabilities (device) & NM_DEVICE_CAP_CARRIER_DETECT) + carrier = nm_device_ethernet_get_carrier (NM_DEVICE_ETHERNET (device)); + + gtk_widget_set_sensitive (item, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + + if (g_slist_length (connections)) + add_connection_items (device, connections, carrier, active, ADD_ACTIVE, menu, applet); + + /* Notify user of unmanaged or unavailable device */ + item = nma_menu_device_get_menu_item (device, applet, carrier ? NULL : _("disconnected")); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + + if (!nma_menu_device_check_unusable (device)) { + if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (connections)) + add_connection_items (device, connections, carrier, active, ADD_INACTIVE, menu, applet); + else + add_default_connection_item (device, carrier, menu, applet); + } + + g_slist_free (connections); +} + +static void +ethernet_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + const char *id; + s_con = nm_connection_get_setting_connection (connection); + id = s_con ? nm_setting_connection_get_id (s_con) : NULL; + if (id) + str = g_strdup_printf (_("You are now connected to '%s'."), id); + } + + applet_do_notify_with_pref (applet, + _("Connection Established"), + str ? str : _("You are now connected to the ethernet network."), + "nm-device-wired", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (str); + } +} + +static GdkPixbuf * +ethernet_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + GdkPixbuf *pixbuf = NULL; + const char *id; + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing ethernet network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring ethernet network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for ethernet network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting an ethernet network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + pixbuf = nma_icon_check_and_load ("nm-device-wired", &applet->ethernet_icon, applet); + *tip = g_strdup_printf (_("Ethernet network connection '%s' active"), id); + break; + default: + break; + } + + return pixbuf ? g_object_ref (pixbuf) : NULL; +} + +/* PPPoE */ + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkEntry *username_entry; + GtkEntry *service_entry; + GtkEntry *password_entry; + GtkWidget *ok_button; +} NMPppoeInfo; + +static void +pppoe_verify (GtkEditable *editable, gpointer user_data) +{ + NMPppoeInfo *info = (NMPppoeInfo *) user_data; + const char *s; + gboolean valid = TRUE; + + s = gtk_entry_get_text (info->username_entry); + if (!s || strlen (s) < 1) + valid = FALSE; + + if (valid) { + s = gtk_entry_get_text (info->password_entry); + if (!s || strlen (s) < 1) + valid = FALSE; + } + + gtk_widget_set_sensitive (info->ok_button, valid); +} + +static void +pppoe_update_setting (NMSettingPPPOE *pppoe, NMPppoeInfo *info) +{ + const char *s; + + s = gtk_entry_get_text (info->service_entry); + if (s && strlen (s) < 1) + s = NULL; + + g_object_set (pppoe, + NM_SETTING_PPPOE_USERNAME, gtk_entry_get_text (info->username_entry), + NM_SETTING_PPPOE_PASSWORD, gtk_entry_get_text (info->password_entry), + NM_SETTING_PPPOE_SERVICE, s, + NULL); +} + +static void +pppoe_update_ui (NMConnection *connection, NMPppoeInfo *info) +{ + NMSettingPPPOE *s_pppoe; + const char *s; + + g_return_if_fail (NM_IS_CONNECTION (connection)); + g_return_if_fail (info != NULL); + + s_pppoe = nm_connection_get_setting_pppoe (connection); + g_return_if_fail (s_pppoe != NULL); + + s = nm_setting_pppoe_get_username (s_pppoe); + if (s) + gtk_entry_set_text (info->username_entry, s); + + s = nm_setting_pppoe_get_service (s_pppoe); + if (s) + gtk_entry_set_text (info->service_entry, s); + + s = nm_setting_pppoe_get_password (s_pppoe); + if (s) + gtk_entry_set_text (info->password_entry, s); +} + +static void +free_pppoe_info (SecretsRequest *req) +{ + NMPppoeInfo *info = (NMPppoeInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } +} + +static void +get_pppoe_secrets_cb (GtkDialog *dialog, gint response, gpointer user_data) +{ + SecretsRequest *req = user_data; + NMPppoeInfo *info = (NMPppoeInfo *) req; + NMSettingPPPOE *setting; + GHashTable *settings = NULL; + GHashTable *secrets; + GError *error = NULL; + + if (response != GTK_RESPONSE_OK) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + goto done; + } + + setting = nm_connection_get_setting_pppoe (req->connection); + pppoe_update_setting (setting, info); + + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ONLY_SECRETS); + if (!secrets) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting " NM_SETTING_PPPOE_SETTING_NAME, + __FILE__, __LINE__, __func__); + } else { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, NM_SETTING_PPPOE_SETTING_NAME, secrets); + } + +done: + applet_secrets_request_complete (req, settings, error); + applet_secrets_request_free (req); + + if (settings) + g_hash_table_destroy (settings); +} + +static void +show_password_toggled (GtkToggleButton *button, gpointer user_data) +{ + NMPppoeInfo *info = (NMPppoeInfo *) user_data; + + if (gtk_toggle_button_get_active (button)) + gtk_entry_set_visibility (GTK_ENTRY (info->password_entry), TRUE); + else + gtk_entry_set_visibility (GTK_ENTRY (info->password_entry), FALSE); +} + +static gboolean +pppoe_get_secrets (SecretsRequest *req, GError **error) +{ + NMPppoeInfo *info = (NMPppoeInfo *) req; + GtkWidget *w; + GtkBuilder* builder; + GError *tmp_error = NULL; + + builder = gtk_builder_new (); + + if (!gtk_builder_add_from_file (builder, UIDIR "/ce-page-dsl.ui", &tmp_error)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't display secrets UI: %s", + __FILE__, __LINE__, __func__, tmp_error->message); + g_error_free (tmp_error); + return FALSE; + } + + applet_secrets_request_set_free_func (req, free_pppoe_info); + + info->username_entry = GTK_ENTRY (gtk_builder_get_object (builder, "dsl_username")); + g_signal_connect (info->username_entry, "changed", G_CALLBACK (pppoe_verify), info); + + info->service_entry = GTK_ENTRY (gtk_builder_get_object (builder, "dsl_service")); + + info->password_entry = GTK_ENTRY (gtk_builder_get_object (builder, "dsl_password")); + g_signal_connect (info->password_entry, "changed", G_CALLBACK (pppoe_verify), info); + + /* Create the dialog */ + info->dialog = gtk_dialog_new (); + gtk_window_set_title (GTK_WINDOW (info->dialog), _("DSL authentication")); + gtk_window_set_modal (GTK_WINDOW (info->dialog), TRUE); + + w = gtk_dialog_add_button (GTK_DIALOG (info->dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); + w = gtk_dialog_add_button (GTK_DIALOG (info->dialog), GTK_STOCK_OK, GTK_RESPONSE_OK); + info->ok_button = w; + + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (info->dialog))), + GTK_WIDGET (gtk_builder_get_object (builder, "DslPage")), + TRUE, TRUE, 0); + + pppoe_update_ui (req->connection, info); + + w = GTK_WIDGET (gtk_builder_get_object (builder, "dsl_show_password")); + g_signal_connect (w, "toggled", G_CALLBACK (show_password_toggled), info); + + g_signal_connect (info->dialog, "response", G_CALLBACK (get_pppoe_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (info->dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (info->dialog); + gtk_window_present (GTK_WINDOW (info->dialog)); + + return TRUE; +} + +/* 802.1x */ + +typedef struct { + SecretsRequest req; + GtkWidget *dialog; +} NM8021xInfo; + +static void +free_8021x_info (SecretsRequest *req) +{ + NM8021xInfo *info = (NM8021xInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } +} + +static void +get_8021x_secrets_cb (GtkDialog *dialog, gint response, gpointer user_data) +{ + SecretsRequest *req = user_data; + NM8021xInfo *info = (NM8021xInfo *) req; + NMConnection *connection = NULL; + NMSetting *setting; + GError *error = NULL; + + if (response != GTK_RESPONSE_OK) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + goto done; + } + + connection = nma_ethernet_dialog_get_connection (info->dialog); + if (!connection) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't get connection from ethernet dialog.", + __FILE__, __LINE__, __func__); + goto done; + } + + setting = nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X); + if (setting) { + nm_connection_add_setting (req->connection, g_object_ref (setting)); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): requested setting '802-1x' didn't" + " exist in the connection.", + __FILE__, __LINE__, __func__); + } + +done: + applet_secrets_request_complete_setting (req, NM_SETTING_802_1X_SETTING_NAME, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static gboolean +nm_8021x_get_secrets (SecretsRequest *req, GError **error) +{ + NM8021xInfo *info = (NM8021xInfo *) req; + + applet_secrets_request_set_free_func (req, free_8021x_info); + + info->dialog = nma_ethernet_dialog_new (g_object_ref (req->connection)); + if (!info->dialog) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't display secrets UI", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (info->dialog, "response", G_CALLBACK (get_8021x_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (info->dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (info->dialog); + gtk_window_present (GTK_WINDOW (info->dialog)); + + return TRUE; +} + +static gboolean +ethernet_get_secrets (SecretsRequest *req, GError **error) +{ + NMSettingConnection *s_con; + const char *ctype; + + s_con = nm_connection_get_setting_connection (req->connection); + if (!s_con) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): Invalid connection", + __FILE__, __LINE__, __func__); + return FALSE; + } + + ctype = nm_setting_connection_get_connection_type (s_con); + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME)) + return nm_8021x_get_secrets (req, error); + else if (!strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return pppoe_get_secrets (req, error); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled ethernet connection type '%s'", + __FILE__, __LINE__, __func__, ctype); + } + + return FALSE; +} + +NMADeviceClass * +applet_device_ethernet_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = ethernet_new_auto_connection; + dclass->add_menu_item = ethernet_add_menu_item; + dclass->device_state_changed = ethernet_device_state_changed; + dclass->get_icon = ethernet_get_icon; + dclass->get_secrets = ethernet_get_secrets; + dclass->secrets_request_size = MAX (sizeof (NM8021xInfo), sizeof (NMPppoeInfo)); + + return dclass; +} diff -Nru network-manager-applet-0.9.4.1/.pc/lp330608_dxteam_gsm_connect_text.patch/src/applet-device-gsm.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp330608_dxteam_gsm_connect_text.patch/src/applet-device-gsm.c --- network-manager-applet-0.9.4.1/.pc/lp330608_dxteam_gsm_connect_text.patch/src/applet-device-gsm.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp330608_dxteam_gsm_connect_text.patch/src/applet-device-gsm.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,1745 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + * (C) Copyright 2008 Novell, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-gsm.h" +#include "utils.h" +#include "nm-mobile-wizard.h" +#include "applet-dialogs.h" +#include "mb-menu-item.h" +#include "nma-marshal.h" +#include "nmn-mobile-providers.h" +#include "nm-ui-utils.h" + +typedef enum { + MM_MODEM_GSM_ACCESS_TECH_UNKNOWN = 0, + MM_MODEM_GSM_ACCESS_TECH_GSM = 1, + MM_MODEM_GSM_ACCESS_TECH_GSM_COMPACT = 2, + MM_MODEM_GSM_ACCESS_TECH_GPRS = 3, + MM_MODEM_GSM_ACCESS_TECH_EDGE = 4, /* GSM w/EGPRS */ + MM_MODEM_GSM_ACCESS_TECH_UMTS = 5, /* UTRAN */ + MM_MODEM_GSM_ACCESS_TECH_HSDPA = 6, /* UTRAN w/HSDPA */ + MM_MODEM_GSM_ACCESS_TECH_HSUPA = 7, /* UTRAN w/HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA = 8, /* UTRAN w/HSDPA and HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS = 9, + MM_MODEM_GSM_ACCESS_TECH_LTE = 10, + + MM_MODEM_GSM_ACCESS_TECH_LAST = MM_MODEM_GSM_ACCESS_TECH_LTE +} MMModemGsmAccessTech; + +typedef struct { + NMApplet *applet; + NMDevice *device; + + DBusGConnection *bus; + DBusGProxy *props_proxy; + DBusGProxy *card_proxy; + DBusGProxy *net_proxy; + + gboolean quality_valid; + guint32 quality; + char *unlock_required; + char *devid; + char *simid; + gboolean modem_enabled; + MMModemGsmAccessTech act; + + /* reg_state is (1 + MM reg state) so that 0 means we haven't gotten a + * value from MM yet. 0 is a valid MM GSM reg state. + */ + guint reg_state; + char *op_code; + char *op_name; + GHashTable *providers; + + guint32 poll_id; + gboolean skip_reg_poll; + gboolean skip_signal_poll; + + /* Unlock dialog stuff */ + GtkWidget *dialog; + gpointer keyring_id; +} GsmDeviceInfo; + +static void unlock_dialog_destroy (GsmDeviceInfo *info); +static void check_start_polling (GsmDeviceInfo *info); + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} GSMMenuItemInfo; + +static void +gsm_menu_item_info_destroy (gpointer data) +{ + GSMMenuItemInfo *info = data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (info->connection); + + g_slice_free (GSMMenuItemInfo, data); +} + +typedef struct { + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} AutoGsmWizardInfo; + +static void +mobile_wizard_done (NMAMobileWizard *wizard, + gboolean canceled, + NMAMobileWizardAccessMethod *method, + gpointer user_data) +{ + AutoGsmWizardInfo *info = user_data; + NMConnection *connection = NULL; + + if (!canceled && method) { + NMSetting *setting; + char *uuid, *id; + + if (method->devtype != NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + g_warning ("Unexpected device type (not GSM)."); + canceled = TRUE; + goto done; + } + + connection = nm_connection_new (); + + setting = nm_setting_gsm_new (); + g_object_set (setting, + NM_SETTING_GSM_NUMBER, "*99#", + NM_SETTING_GSM_USERNAME, method->username, + NM_SETTING_GSM_PASSWORD, method->password, + NM_SETTING_GSM_APN, method->gsm_apn, + NULL); + nm_connection_add_setting (connection, setting); + + /* Serial setting */ + setting = nm_setting_serial_new (); + g_object_set (setting, + NM_SETTING_SERIAL_BAUD, 115200, + NM_SETTING_SERIAL_BITS, 8, + NM_SETTING_SERIAL_PARITY, 'n', + NM_SETTING_SERIAL_STOPBITS, 1, + NULL); + nm_connection_add_setting (connection, setting); + + nm_connection_add_setting (connection, nm_setting_ppp_new ()); + + setting = nm_setting_connection_new (); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); + uuid = nm_utils_uuid_generate (); + g_object_set (setting, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_GSM_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + g_free (id); + nm_connection_add_setting (connection, setting); + } + +done: + (*(info->callback)) (connection, TRUE, canceled, info->callback_data); + + if (wizard) + nma_mobile_wizard_destroy (wizard); + g_free (info); +} + +static gboolean +do_mobile_wizard (AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMAMobileWizard *wizard; + AutoGsmWizardInfo *info; + NMAMobileWizardAccessMethod *method; + + info = g_malloc0 (sizeof (AutoGsmWizardInfo)); + info->callback = callback; + info->callback_data = callback_data; + + wizard = nma_mobile_wizard_new (NULL, NULL, NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS, FALSE, + mobile_wizard_done, info); + if (wizard) { + nma_mobile_wizard_present (wizard); + return TRUE; + } + + /* Fall back to something */ + method = g_malloc0 (sizeof (NMAMobileWizardAccessMethod)); + method->devtype = NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS; + method->provider_name = _("GSM"); + mobile_wizard_done (NULL, FALSE, method, info); + g_free (method); + + return TRUE; +} + +static gboolean +gsm_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + return do_mobile_wizard (callback, callback_data); +} + +static void +dbus_3g_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; +} Dbus3gInfo; + +static void +dbus_connect_3g_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus3gInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + "/", + dbus_3g_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +void +applet_gsm_connect_network (NMApplet *applet, NMDevice *device) +{ + Dbus3gInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + + do_mobile_wizard (dbus_connect_3g_cb, info); +} + +static void +gsm_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + GSMMenuItemInfo *info = (GSMMenuItemInfo *) user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + +static void +add_connection_item (NMDevice *device, + NMConnection *connection, + GtkWidget *item, + GtkWidget *menu, + NMApplet *applet) +{ + GSMMenuItemInfo *info; + + info = g_slice_new0 (GSMMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = connection ? g_object_ref (connection) : NULL; + + g_signal_connect_data (item, "activate", + G_CALLBACK (gsm_menu_item_activate), + info, + (GClosureNotify) gsm_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); +} + +static guint32 +gsm_state_to_mb_state (GsmDeviceInfo *info) +{ + if (!info->modem_enabled) + return MB_STATE_UNKNOWN; + + switch (info->reg_state) { + case 1: /* IDLE */ + return MB_STATE_IDLE; + case 2: /* HOME */ + return MB_STATE_HOME; + case 3: /* SEARCHING */ + return MB_STATE_SEARCHING; + case 4: /* DENIED */ + return MB_STATE_DENIED; + case 6: /* ROAMING */ + return MB_STATE_ROAMING; + case 5: /* UNKNOWN */ + default: + break; + } + + return MB_STATE_UNKNOWN; +} + +static guint32 +gsm_act_to_mb_act (GsmDeviceInfo *info) +{ + switch (info->act) { + case MM_MODEM_GSM_ACCESS_TECH_GPRS: + return MB_TECH_GPRS; + case MM_MODEM_GSM_ACCESS_TECH_EDGE: + return MB_TECH_EDGE; + case MM_MODEM_GSM_ACCESS_TECH_UMTS: + return MB_TECH_UMTS; + case MM_MODEM_GSM_ACCESS_TECH_HSDPA: + return MB_TECH_HSDPA; + case MM_MODEM_GSM_ACCESS_TECH_HSUPA: + return MB_TECH_HSUPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA: + return MB_TECH_HSPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS: + return MB_TECH_HSPA_PLUS; + case MM_MODEM_GSM_ACCESS_TECH_LTE: + return MB_TECH_LTE; + default: + break; + } + + return MB_TECH_GSM; +} + +static void +gsm_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + GsmDeviceInfo *info; + char *text; + GtkWidget *item; + GSList *connections, *all, *iter; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + text = g_strdup_printf (_("Mobile Broadband (%s)"), desc); + } else { + text = g_strdup (_("Mobile Broadband")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); + gtk_widget_set_sensitive (item, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + g_free (text); + + /* Add the active connection */ + if (active) { + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (active); + g_assert (s_con); + + item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), + info->quality_valid ? info->quality : 0, + info->op_name, + TRUE, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info), + info->modem_enabled, + applet); + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + add_connection_item (device, active, item, menu, applet); + } + + /* Notify user of unmanaged or unavailable device */ + if (nm_device_get_state (device) > NM_DEVICE_STATE_DISCONNECTED) { + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + } else { + /* Otherwise show idle registration state or disabled */ + item = nm_mb_menu_item_new (NULL, + info->quality_valid ? info->quality : 0, + info->op_name, + FALSE, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info), + info->modem_enabled, + applet); + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + + /* Add the default / inactive connection items */ + if (!nma_menu_device_check_unusable (device)) { + if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (connections)) { + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (connection != active) { + item = applet_new_menu_item_helper (connection, NULL, FALSE); + add_connection_item (device, connection, item, menu, applet); + } + } + } else { + /* Default connection item */ + item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (GSM) connection...")); + add_connection_item (device, NULL, item, menu, applet); + } + } + + g_slist_free (connections); +} + +static void +gsm_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + GsmDeviceInfo *info; + + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + const char *id; + + s_con = nm_connection_get_setting_connection (connection); + id = s_con ? nm_setting_connection_get_id (s_con) : NULL; + if (id) + str = g_strdup_printf (_("You are now connected to '%s'."), id); + } + + applet_do_notify_with_pref (applet, + _("Connection Established"), + str ? str : _("You are now connected to the GSM network."), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (str); + } + + /* Start/stop polling of quality and registration when device state changes */ + info = g_object_get_data (G_OBJECT (device), "devinfo"); + check_start_polling (info); +} + +static GdkPixbuf * +gsm_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + GdkPixbuf *pixbuf = NULL; + const char *id; + GsmDeviceInfo *info; + guint32 mb_state; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (info); + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + mb_state = gsm_state_to_mb_state (info); + pixbuf = mobile_helper_get_status_pixbuf (info->quality, + info->quality_valid, + mb_state, + gsm_act_to_mb_act (info), + applet); + + if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { + gboolean roaming = (mb_state == MB_STATE_ROAMING); + + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active: (%d%%%s%s)"), + id, info->quality, + roaming ? ", " : "", + roaming ? _("roaming") : ""); + } else + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active"), id); + break; + default: + break; + } + + return pixbuf; +} + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkEntry *secret_entry; + char *secret_name; +} NMGsmSecretsInfo; + +static void +free_gsm_secrets_info (SecretsRequest *req) +{ + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } + + g_free (info->secret_name); +} + +static void +get_gsm_secrets_cb (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + NMSettingGsm *setting; + GError *error = NULL; + + if (response == GTK_RESPONSE_OK) { + setting = nm_connection_get_setting_gsm (req->connection); + if (setting) { + g_object_set (G_OBJECT (setting), + info->secret_name, gtk_entry_get_text (info->secret_entry), + NULL); + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): no GSM setting", + __FILE__, __LINE__, __func__); + } + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + } + + applet_secrets_request_complete_setting (req, NM_SETTING_GSM_SETTING_NAME, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static void +pin_entry_changed (GtkEditable *editable, gpointer user_data) +{ + GtkWidget *ok_button = GTK_WIDGET (user_data); + const char *s; + int i; + gboolean valid = FALSE; + guint32 len; + + s = gtk_entry_get_text (GTK_ENTRY (editable)); + if (s) { + len = strlen (s); + if ((len >= 4) && (len <= 8)) { + valid = TRUE; + for (i = 0; i < len; i++) { + if (!g_ascii_isdigit (s[i])) { + valid = FALSE; + break; + } + } + } + } + + gtk_widget_set_sensitive (ok_button, valid); +} + +static GtkWidget * +ask_for_pin (GtkEntry **out_secret_entry) +{ + GtkDialog *dialog; + GtkWidget *w = NULL, *ok_button = NULL; + GtkBox *box = NULL, *vbox = NULL; + + dialog = GTK_DIALOG (gtk_dialog_new ()); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_title (GTK_WINDOW (dialog), _("PIN code required")); + + ok_button = gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); + ok_button = gtk_dialog_add_button (dialog, GTK_STOCK_OK, GTK_RESPONSE_OK); + gtk_window_set_default (GTK_WINDOW (dialog), ok_button); + + vbox = GTK_BOX (gtk_dialog_get_content_area (dialog)); + + w = gtk_label_new (_("PIN code is needed for the mobile broadband device")); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + + w = gtk_alignment_new (0.5, 0.5, 0, 1.0); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + +#if GTK_CHECK_VERSION(3,1,6) + box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6)); +#else + box = GTK_BOX (gtk_hbox_new (FALSE, 6)); +#endif + gtk_container_set_border_width (GTK_CONTAINER (box), 6); + gtk_container_add (GTK_CONTAINER (w), GTK_WIDGET (box)); + + gtk_box_pack_start (box, gtk_label_new ("PIN:"), FALSE, FALSE, 0); + + w = gtk_entry_new (); + *out_secret_entry = GTK_ENTRY (w); + gtk_entry_set_max_length (GTK_ENTRY (w), 8); + gtk_entry_set_width_chars (GTK_ENTRY (w), 8); + gtk_entry_set_activates_default (GTK_ENTRY (w), TRUE); + gtk_entry_set_visibility (GTK_ENTRY (w), FALSE); + gtk_box_pack_start (box, w, FALSE, FALSE, 0); + g_signal_connect (w, "changed", G_CALLBACK (pin_entry_changed), ok_button); + pin_entry_changed (GTK_EDITABLE (w), ok_button); + + gtk_widget_show_all (GTK_WIDGET (vbox)); + return GTK_WIDGET (dialog); +} + +static gboolean +gsm_get_secrets (SecretsRequest *req, GError **error) +{ + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + GtkWidget *widget; + GtkEntry *secret_entry = NULL; + + applet_secrets_request_set_free_func (req, free_gsm_secrets_info); + + if (!req->hints || !g_strv_length (req->hints)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): missing secrets hints.", + __FILE__, __LINE__, __func__); + return FALSE; + } + info->secret_name = g_strdup (req->hints[0]); + + if (!strcmp (info->secret_name, NM_SETTING_GSM_PIN)) { + NMDevice *device; + GsmDeviceInfo *devinfo; + + device = applet_get_device_for_connection (req->applet, req->connection); + if (!device) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to find device for active connection.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + devinfo = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (devinfo); + + /* A GetSecrets PIN dialog overrides the initial unlock dialog */ + if (devinfo->dialog) + unlock_dialog_destroy (devinfo); + + widget = ask_for_pin (&secret_entry); + } else if (!strcmp (info->secret_name, NM_SETTING_GSM_PASSWORD)) + widget = applet_mobile_password_dialog_new (req->connection, &secret_entry); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unknown secrets hint '%s'.", + __FILE__, __LINE__, __func__, info->secret_name); + return FALSE; + } + info->dialog = widget; + info->secret_entry = secret_entry; + + if (!widget || !secret_entry) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): error asking for GSM secrets.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (widget, "response", G_CALLBACK (get_gsm_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (GTK_WIDGET (widget)); + gtk_window_present (GTK_WINDOW (widget)); + + return TRUE; +} + +/********************************************************************/ + +static void +save_pin_cb (GnomeKeyringResult result, guint32 val, gpointer user_data) +{ + if (result != GNOME_KEYRING_RESULT_OK) + g_warning ("%s: result %d", (const char *) user_data, result); +} + +static void +set_pin_in_keyring (const char *devid, + const char *simid, + const char *pin) +{ + GnomeKeyringAttributeList *attributes; + GnomeKeyringAttribute attr; + const char *name; + char *error_msg; + + name = g_strdup_printf (_("PIN code for SIM card '%s' on '%s'"), + simid ? simid : "unknown", + devid); + + attributes = gnome_keyring_attribute_list_new (); + attr.name = g_strdup ("devid"); + attr.type = GNOME_KEYRING_ATTRIBUTE_TYPE_STRING; + attr.value.string = g_strdup (devid); + g_array_append_val (attributes, attr); + + if (simid) { + attr.name = g_strdup ("simid"); + attr.type = GNOME_KEYRING_ATTRIBUTE_TYPE_STRING; + attr.value.string = g_strdup (simid); + g_array_append_val (attributes, attr); + } + + error_msg = g_strdup_printf ("Saving PIN code in keyring for devid:%s simid:%s failed", + devid, simid ? simid : "(unknown)"); + + gnome_keyring_item_create (NULL, + GNOME_KEYRING_ITEM_GENERIC_SECRET, + name, + attributes, + pin, + TRUE, + save_pin_cb, + error_msg, + (GDestroyNotify) g_free); + + gnome_keyring_attribute_list_free (attributes); +} + +static void +delete_pin_cb (GnomeKeyringResult result, gpointer user_data) +{ + /* nothing to do */ +} + +static void +delete_pins_find_cb (GnomeKeyringResult result, GList *list, gpointer user_data) +{ + GList *iter; + + if (result == GNOME_KEYRING_RESULT_OK) { + for (iter = list; iter; iter = g_list_next (iter)) { + GnomeKeyringFound *found = iter->data; + + gnome_keyring_item_delete (found->keyring, found->item_id, delete_pin_cb, NULL, NULL); + } + } +} + +static void +delete_pins_in_keyring (const char *devid) +{ + gnome_keyring_find_itemsv (GNOME_KEYRING_ITEM_GENERIC_SECRET, + delete_pins_find_cb, + NULL, + NULL, + "devid", + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + devid, + NULL); +} + +static void +unlock_dialog_destroy (GsmDeviceInfo *info) +{ + applet_mobile_pin_dialog_destroy (info->dialog); + info->dialog = NULL; +} + +static void +unlock_pin_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + const char *dbus_error, *msg = NULL, *code1; + + if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + if (applet_mobile_pin_dialog_get_auto_unlock (info->dialog)) { + code1 = applet_mobile_pin_dialog_get_entry1 (info->dialog); + set_pin_in_keyring (info->devid, info->simid, code1); + } else + delete_pins_in_keyring (info->devid); + unlock_dialog_destroy (info); + return; + } + + dbus_error = dbus_g_error_get_name (error); + if (dbus_error && !strcmp (dbus_error, "org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword")) + msg = _("Wrong PIN code; please contact your provider."); + else + msg = error ? error->message : NULL; + + applet_mobile_pin_dialog_stop_spinner (info->dialog, msg); + g_warning ("%s: error unlocking with PIN: %s", __func__, error->message); + g_clear_error (&error); +} + +static void +unlock_puk_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + const char *dbus_error, *msg = NULL; + + if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + unlock_dialog_destroy (info); + return; + } + + dbus_error = dbus_g_error_get_name (error); + if (dbus_error && !strcmp (dbus_error, "org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword")) + msg = _("Wrong PUK code; please contact your provider."); + else + msg = error ? error->message : NULL; + + applet_mobile_pin_dialog_stop_spinner (info->dialog, msg); + g_warning ("%s: error unlocking with PIN: %s", __func__, error->message); + g_clear_error (&error); +} + +#define UNLOCK_CODE_PIN 1 +#define UNLOCK_CODE_PUK 2 + +static void +unlock_dialog_response (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + const char *code1, *code2; + guint32 unlock_code; + + if (response == GTK_RESPONSE_CANCEL || response == GTK_RESPONSE_DELETE_EVENT) { + unlock_dialog_destroy (info); + return; + } + + /* Start the spinner to show the progress of the unlock */ + applet_mobile_pin_dialog_start_spinner (info->dialog, _("Sending unlock code...")); + + unlock_code = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (info->dialog), "unlock-code")); + if (!unlock_code) { + g_warn_if_fail (unlock_code != 0); + unlock_dialog_destroy (info); + return; + } + + code1 = applet_mobile_pin_dialog_get_entry1 (info->dialog); + if (!code1 || !strlen (code1)) { + g_warn_if_fail (code1 != NULL); + g_warn_if_fail (strlen (code1)); + unlock_dialog_destroy (info); + return; + } + + /* Send the code to ModemManager */ + if (unlock_code == UNLOCK_CODE_PIN) { + dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPin", + unlock_pin_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, code1, + G_TYPE_INVALID); + } else if (unlock_code == UNLOCK_CODE_PUK) { + code2 = applet_mobile_pin_dialog_get_entry2 (info->dialog); + if (!code2) { + g_warn_if_fail (code2 != NULL); + unlock_dialog_destroy (info); + return; + } + + dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPuk", + unlock_puk_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, code1, + G_TYPE_STRING, code2, + G_TYPE_INVALID); + } +} + +static void +unlock_dialog_new (NMDevice *device, GsmDeviceInfo *info) +{ + const char *header = NULL; + const char *title = NULL; + const char *show_pass_label = NULL; + char *desc = NULL; + const char *label1 = NULL, *label2 = NULL, *label3 = NULL; + const char *device_desc; + gboolean match23 = FALSE; + guint32 label1_min = 0, label2_min = 0, label3_min = 0; + guint32 label1_max = 0, label2_max = 0, label3_max = 0; + guint32 unlock_code = 0; + + g_return_if_fail (info->unlock_required != NULL); + + if (info->dialog) + return; + + /* Figure out the dialog text based on the required unlock code */ + device_desc = nma_utils_get_device_description (device); + if (!strcmp (info->unlock_required, "sim-pin")) { + title = _("SIM PIN unlock required"); + header = _("SIM PIN Unlock Required"); + /* FIXME: some warning about # of times you can enter incorrect PIN */ + desc = g_strdup_printf (_("The mobile broadband device '%s' requires a SIM PIN code before it can be used."), device_desc); + /* Translators: PIN code entry label */ + label1 = _("PIN code:"); + label1_min = 4; + label1_max = 8; + /* Translators: Show/obscure PIN checkbox label */ + show_pass_label = _("Show PIN code"); + unlock_code = UNLOCK_CODE_PIN; + } else if (!strcmp (info->unlock_required, "sim-puk")) { + title = _("SIM PUK unlock required"); + header = _("SIM PUK Unlock Required"); + /* FIXME: some warning about # of times you can enter incorrect PUK */ + desc = g_strdup_printf (_("The mobile broadband device '%s' requires a SIM PUK code before it can be used."), device_desc); + /* Translators: PUK code entry label */ + label1 = _("PUK code:"); + label1_min = label1_max = 8; + /* Translators: New PIN entry label */ + label2 = _("New PIN code:"); + /* Translators: New PIN verification entry label */ + label3 = _("Re-enter new PIN code:"); + label2_min = label3_min = 4; + label2_max = label3_max = 8; + match23 = TRUE; + /* Translators: Show/obscure PIN/PUK checkbox label */ + show_pass_label = _("Show PIN/PUK codes"); + unlock_code = UNLOCK_CODE_PUK; + } else { + g_warning ("Unhandled unlock request for '%s'", info->unlock_required); + return; + } + + /* Construct and run the dialog */ + info->dialog = applet_mobile_pin_dialog_new (title, + header, + desc, + show_pass_label, + (unlock_code == UNLOCK_CODE_PIN) ? TRUE : FALSE); + g_free (desc); + g_return_if_fail (info->dialog != NULL); + + g_object_set_data (G_OBJECT (info->dialog), "unlock-code", GUINT_TO_POINTER (unlock_code)); + applet_mobile_pin_dialog_match_23 (info->dialog, match23); + + applet_mobile_pin_dialog_set_entry1 (info->dialog, label1, label1_min, label1_max); + if (label2) + applet_mobile_pin_dialog_set_entry2 (info->dialog, label2, label2_min, label2_max); + if (label3) + applet_mobile_pin_dialog_set_entry3 (info->dialog, label3, label3_min, label3_max); + + g_signal_connect (info->dialog, "response", G_CALLBACK (unlock_dialog_response), info); + applet_mobile_pin_dialog_present (info->dialog, FALSE); +} + +/********************************************************************/ + +static void +gsm_device_info_free (gpointer data) +{ + GsmDeviceInfo *info = data; + + if (info->props_proxy) + g_object_unref (info->props_proxy); + if (info->card_proxy) + g_object_unref (info->card_proxy); + if (info->net_proxy) + g_object_unref (info->net_proxy); + if (info->bus) + dbus_g_connection_unref (info->bus); + + if (info->keyring_id) + gnome_keyring_cancel_request (info->keyring_id); + + if (info->providers) + g_hash_table_destroy (info->providers); + + if (info->poll_id) + g_source_remove (info->poll_id); + + if (info->dialog) + unlock_dialog_destroy (info); + + g_free (info->devid); + g_free (info->simid); + g_free (info->op_code); + g_free (info->op_name); + memset (info, 0, sizeof (GsmDeviceInfo)); + g_free (info); +} + +static void +signal_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + guint32 quality = 0; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_UINT, &quality, + G_TYPE_INVALID)) { + info->quality = quality; + info->quality_valid = TRUE; + applet_schedule_update_icon (info->applet); + } + + g_clear_error (&error); +} + +static char * +find_provider_for_mcc_mnc (GHashTable *table, const char *mccmnc) +{ + GHashTableIter iter; + gpointer value; + GSList *piter, *siter; + const char *name2 = NULL, *name3 = NULL; + gboolean done = FALSE; + + if (!mccmnc) + return NULL; + + g_hash_table_iter_init (&iter, table); + /* Search through each country */ + while (g_hash_table_iter_next (&iter, NULL, &value) && !done) { + GSList *providers = value; + + /* Search through each country's providers */ + for (piter = providers; piter && !done; piter = g_slist_next (piter)) { + NmnMobileProvider *provider = piter->data; + + /* Search through MCC/MNC list */ + for (siter = provider->gsm_mcc_mnc; siter; siter = g_slist_next (siter)) { + NmnGsmMccMnc *mcc = siter->data; + + /* Match both 2-digit and 3-digit MNC; prefer a + * 3-digit match if found, otherwise a 2-digit one. + */ + if (strncmp (mcc->mcc, mccmnc, 3)) + continue; /* MCC was wrong */ + + if ( !name3 + && (strlen (mccmnc) == 6) + && !strncmp (mccmnc + 3, mcc->mnc, 3)) + name3 = provider->name; + + if ( !name2 + && !strncmp (mccmnc + 3, mcc->mnc, 2)) + name2 = provider->name; + + if (name2 && name3) { + done = TRUE; + break; + } + } + } + } + + if (name3) + return g_strdup (name3); + return g_strdup (name2); +} + +static char * +parse_op_name (GsmDeviceInfo *info, const char *orig, const char *op_code) +{ + guint i, orig_len; + + /* Some devices return the MCC/MNC if they haven't fully initialized + * or gotten all the info from the network yet. Handle that. + */ + + orig_len = orig ? strlen (orig) : 0; + if (orig_len == 0) { + /* If the operator name isn't valid, maybe we can look up the MCC/MNC + * from the operator code instead. + */ + if (op_code && strlen (op_code)) { + orig = op_code; + orig_len = strlen (orig); + } else + return NULL; + } else if (orig_len < 5 || orig_len > 6) + return g_strdup (orig); /* not an MCC/MNC */ + + for (i = 0; i < orig_len; i++) { + if (!isdigit (orig[i])) + return strdup (orig); + } + + /* At this point we have a 5 or 6 character all-digit string; that's + * probably an MCC/MNC. Look that up. + */ + + if (!info->providers) + info->providers = nmn_mobile_providers_parse (NULL); + if (!info->providers) + return strdup (orig); + + return find_provider_for_mcc_mnc (info->providers, orig); +} + +static void +notify_user_of_gsm_reg_change (GsmDeviceInfo *info) +{ + guint32 mb_state = gsm_state_to_mb_state (info); + + if (mb_state == MB_STATE_HOME) { + applet_do_notify_with_pref (info->applet, + _("GSM network."), + _("You are now registered on the home network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } else if (mb_state == MB_STATE_ROAMING) { + applet_do_notify_with_pref (info->applet, + _("GSM network."), + _("You are now registered on a roaming network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } +} + +#define REG_INFO_TYPE (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID)) +#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)) + +static void +reg_info_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValueArray *array = NULL; + guint32 new_state = 0; + char *new_op_code = NULL; + char *new_op_name = NULL; + GValue *value; + + if (dbus_g_proxy_end_call (proxy, call, &error, REG_INFO_TYPE, &array, G_TYPE_INVALID)) { + if (array->n_values == 3) { + value = g_value_array_get_nth (array, 0); + if (G_VALUE_HOLDS_UINT (value)) + new_state = g_value_get_uint (value) + 1; + + value = g_value_array_get_nth (array, 1); + if (G_VALUE_HOLDS_STRING (value)) { + new_op_code = g_value_dup_string (value); + if (new_op_code && !strlen (new_op_code)) { + g_free (new_op_code); + new_op_code = NULL; + } + } + + value = g_value_array_get_nth (array, 2); + if (G_VALUE_HOLDS_STRING (value)) + new_op_name = parse_op_name (info, g_value_get_string (value), new_op_code); + } + + g_value_array_free (array); + } + + if (info->reg_state != new_state) { + info->reg_state = new_state; + notify_user_of_gsm_reg_change (info); + } + + g_free (info->op_code); + info->op_code = new_op_code; + g_free (info->op_name); + info->op_name = new_op_name; + + g_clear_error (&error); +} + +static void +enabled_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_BOOLEAN (&value)) + info->modem_enabled = g_value_get_boolean (&value); + g_value_unset (&value); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static char * +parse_unlock_required (GValue *value) +{ + const char *new_val; + + /* Empty string means NULL */ + new_val = g_value_get_string (value); + if (new_val && strlen (new_val)) { + /* PIN2/PUK2 only required for various dialing things that we don't care + * about; it doesn't inhibit normal operation. + */ + if (strcmp (new_val, "sim-puk2") && strcmp (new_val, "sim-pin2")) + return g_strdup (new_val); + } + + return NULL; +} + +static void +keyring_unlock_pin_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + + if (!dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + g_warning ("Failed to auto-unlock devid:%s simid:%s : (%s) %s", + info->devid ? info->devid : "(unknown)", + info->simid ? info->simid : "(unknown)", + dbus_g_error_get_name (error), + error->message); + /* Ask the user */ + unlock_dialog_new (info->device, info); + g_clear_error (&error); + } +} + +static void +keyring_pin_check_cb (GnomeKeyringResult result, GList *list, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GList *iter; + const char *pin = NULL; + + info->keyring_id = NULL; + + if (result != GNOME_KEYRING_RESULT_OK) { + /* No saved PIN, just ask the user */ + unlock_dialog_new (info->device, info); + return; + } + + /* Look for a result with a matching "simid" attribute since that's + * better than just using a matching "devid". The PIN is really tied + * to the SIM, not the modem itself. + */ + for (iter = list; + info->simid && (pin == NULL) && iter; + iter = g_list_next (iter)) { + GnomeKeyringFound *found = iter->data; + int i; + + /* Look for a matching "simid" attribute */ + for (i = 0; (pin == NULL) && i < found->attributes->len; i++) { + GnomeKeyringAttribute attr = gnome_keyring_attribute_list_index (found->attributes, i); + + if ( g_strcmp0 (attr.name, "simid") == 0 + && attr.type == GNOME_KEYRING_ATTRIBUTE_TYPE_STRING + && g_strcmp0 (attr.value.string, info->simid) == 0) { + pin = found->secret; + break; + } + } + } + + if (pin == NULL) { + /* Fall back to the first result's PIN */ + pin = ((GnomeKeyringFound *) list->data)->secret; + if (pin == NULL) { + /* Should never get here */ + g_warn_if_fail (pin != NULL); + unlock_dialog_new (info->device, info); + return; + } + } + + /* Send the PIN code to ModemManager */ + if (!dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPin", + keyring_unlock_pin_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, pin, + G_TYPE_INVALID)) { + g_warning ("Failed to auto-unlock devid:%s simid:%s", + info->devid ? info->devid : "(unknown)", + info->simid ? info->simid : "(unknown)"); + } +} + +static void +simid_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_STRING (&value)) { + g_free (info->simid); + info->simid = g_value_dup_string (&value); + } + g_value_unset (&value); + } + g_clear_error (&error); + + /* Procure unlock code and apply it if an unlock is now required. */ + if (info->unlock_required) { + /* If we have a device ID ask the keyring for any saved SIM-PIN codes */ + if (info->devid && (g_strcmp0 (info->unlock_required, "sim-pin") == 0)) { + g_warn_if_fail (info->keyring_id == NULL); + info->keyring_id = gnome_keyring_find_itemsv (GNOME_KEYRING_ITEM_GENERIC_SECRET, + keyring_pin_check_cb, + info, + NULL, + "devid", + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + info->devid, + NULL); + } else { + /* Couldn't get a device ID, but unlock required; present dialog */ + unlock_dialog_new (info->device, info); + } + } + + check_start_polling (info); +} + +#define MM_DBUS_INTERFACE_MODEM_GSM_CARD "org.freedesktop.ModemManager.Modem.Gsm.Card" + +static void +unlock_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GHashTable *props = NULL; + + if (dbus_g_proxy_end_call (proxy, call, &error, + DBUS_TYPE_G_MAP_OF_VARIANT, &props, + G_TYPE_INVALID)) { + GHashTableIter iter; + const char *prop_name; + GValue *value; + + g_hash_table_iter_init (&iter, props); + while (g_hash_table_iter_next (&iter, (gpointer) &prop_name, (gpointer) &value)) { + if ((strcmp (prop_name, "UnlockRequired") == 0) && G_VALUE_HOLDS_STRING (value)) { + g_free (info->unlock_required); + info->unlock_required = parse_unlock_required (value); + } + + if ((strcmp (prop_name, "DeviceIdentifier") == 0) && G_VALUE_HOLDS_STRING (value)) { + g_free (info->devid); + info->devid = g_value_dup_string (value); + } + } + g_hash_table_destroy (props); + + /* Get SIM card identifier */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + simid_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM_GSM_CARD, + G_TYPE_STRING, "SimIdentifier", + G_TYPE_INVALID); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static void +access_tech_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_UINT (&value)) { + info->act = g_value_get_uint (&value); + applet_schedule_update_icon (info->applet); + } + g_value_unset (&value); + } + g_clear_error (&error); +} + +static gboolean +gsm_poll_cb (gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + + /* MM might have just sent an unsolicited update, in which case we just + * skip this poll and wait till the next one. + */ + + if (!info->skip_reg_poll) { + dbus_g_proxy_begin_call (info->net_proxy, "GetRegistrationInfo", + reg_info_reply, info, NULL, + G_TYPE_INVALID); + info->skip_reg_poll = FALSE; + } + + if (!info->skip_signal_poll) { + dbus_g_proxy_begin_call (info->net_proxy, "GetSignalQuality", + signal_reply, info, NULL, + G_TYPE_INVALID); + info->skip_signal_poll = FALSE; + } + + return TRUE; /* keep running until we're told to stop */ +} + +static void +check_start_polling (GsmDeviceInfo *info) +{ + NMDeviceState state; + gboolean poll = TRUE; + + g_return_if_fail (info != NULL); + + /* Don't poll if any of the following are true: + * + * 1) NM says the device is not available + * 2) the modem requires an unlock code + * 3) the modem isn't enabled + */ + + state = nm_device_get_state (info->device); + if ( (state <= NM_DEVICE_STATE_UNAVAILABLE) + || info->unlock_required + || (info->modem_enabled == FALSE)) + poll = FALSE; + + if (poll) { + if (!info->poll_id) { + /* 33 seconds to be just a bit more than MM's poll interval, so + * that if we get an unsolicited update from MM between polls we'll + * skip the next poll. + */ + info->poll_id = g_timeout_add_seconds (33, gsm_poll_cb, info); + } + gsm_poll_cb (info); + } else { + if (info->poll_id) + g_source_remove (info->poll_id); + info->poll_id = 0; + info->skip_reg_poll = FALSE; + info->skip_signal_poll = FALSE; + } +} + +static void +reg_info_changed_cb (DBusGProxy *proxy, + guint32 reg_state, + const char *op_code, + const char *op_name, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + guint32 new_state = reg_state + 1; + + if (info->reg_state != new_state) { + info->reg_state = new_state; + notify_user_of_gsm_reg_change (info); + } + + g_free (info->op_code); + info->op_code = strlen (op_code) ? g_strdup (op_code) : NULL; + g_free (info->op_name); + info->op_name = parse_op_name (info, op_name, info->op_code); + info->skip_reg_poll = TRUE; +} + +static void +signal_quality_changed_cb (DBusGProxy *proxy, + guint32 quality, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + + info->quality = quality; + info->quality_valid = TRUE; + info->skip_signal_poll = TRUE; + + applet_schedule_update_icon (info->applet); +} + +#define MM_DBUS_INTERFACE_MODEM "org.freedesktop.ModemManager.Modem" +#define MM_DBUS_INTERFACE_MODEM_GSM_NETWORK "org.freedesktop.ModemManager.Modem.Gsm.Network" + +static void +modem_properties_changed (DBusGProxy *proxy, + const char *interface, + GHashTable *props, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GValue *value; + + if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM)) { + value = g_hash_table_lookup (props, "UnlockRequired"); + if (value && G_VALUE_HOLDS_STRING (value)) { + g_free (info->unlock_required); + info->unlock_required = parse_unlock_required (value); + check_start_polling (info); + } + + value = g_hash_table_lookup (props, "Enabled"); + if (value && G_VALUE_HOLDS_BOOLEAN (value)) { + info->modem_enabled = g_value_get_boolean (value); + if (!info->modem_enabled) { + info->quality = 0; + info->quality_valid = 0; + info->reg_state = 0; + info->act = 0; + g_free (info->op_code); + info->op_code = NULL; + g_free (info->op_name); + info->op_name = NULL; + } + check_start_polling (info); + } + } else if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM_GSM_NETWORK)) { + value = g_hash_table_lookup (props, "AccessTechnology"); + if (value && G_VALUE_HOLDS_UINT (value)) { + info->act = g_value_get_uint (value); + applet_schedule_update_icon (info->applet); + } + } +} + +static void +gsm_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceModem *modem = NM_DEVICE_MODEM (device); + GsmDeviceInfo *info; + const char *udi; + DBusGConnection *bus; + GError *error = NULL; + + udi = nm_device_get_udi (device); + if (!udi) + return; + + bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); + if (!bus) { + g_warning ("%s: failed to connect to D-Bus: (%d) %s", __func__, error->code, error->message); + g_clear_error (&error); + return; + } + + info = g_malloc0 (sizeof (GsmDeviceInfo)); + info->applet = applet; + info->device = device; + info->bus = bus; + + info->props_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.DBus.Properties"); + if (!info->props_proxy) { + g_message ("%s: failed to create D-Bus properties proxy.", __func__); + gsm_device_info_free (info); + return; + } + + info->card_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.ModemManager.Modem.Gsm.Card"); + if (!info->card_proxy) { + g_message ("%s: failed to create GSM Card proxy.", __func__); + gsm_device_info_free (info); + return; + } + + info->net_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + MM_DBUS_INTERFACE_MODEM_GSM_NETWORK); + if (!info->net_proxy) { + g_message ("%s: failed to create GSM Network proxy.", __func__); + gsm_device_info_free (info); + return; + } + + g_object_set_data_full (G_OBJECT (modem), "devinfo", info, gsm_device_info_free); + + /* Registration info signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__UINT_STRING_STRING, + G_TYPE_NONE, + G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->net_proxy, "RegistrationInfo", + G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->net_proxy, "RegistrationInfo", + G_CALLBACK (reg_info_changed_cb), info, NULL); + + /* Signal quality change signal */ + dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->net_proxy, "SignalQuality", G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->net_proxy, "SignalQuality", + G_CALLBACK (signal_quality_changed_cb), info, NULL); + + /* Modem property change signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__STRING_BOXED, + G_TYPE_NONE, G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, + G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->props_proxy, "MmPropertiesChanged", + G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->props_proxy, "MmPropertiesChanged", + G_CALLBACK (modem_properties_changed), + info, NULL); + + /* Ask whether the device needs to be unlocked */ + dbus_g_proxy_begin_call (info->props_proxy, "GetAll", + unlock_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_INVALID); + + /* Ask whether the device is enabled */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + enabled_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_STRING, "Enabled", + G_TYPE_INVALID); + + dbus_g_proxy_begin_call (info->props_proxy, "Get", + access_tech_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM_GSM_NETWORK, + G_TYPE_STRING, "AccessTechnology", + G_TYPE_INVALID); +} + +NMADeviceClass * +applet_device_gsm_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = gsm_new_auto_connection; + dclass->add_menu_item = gsm_add_menu_item; + dclass->device_state_changed = gsm_device_state_changed; + dclass->get_icon = gsm_get_icon; + dclass->get_secrets = gsm_get_secrets; + dclass->secrets_request_size = sizeof (NMGsmSecretsInfo); + dclass->device_added = gsm_device_added; + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/lp341684_device_sensitive_disconnect_notify.patch/src/applet-device-wifi.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp341684_device_sensitive_disconnect_notify.patch/src/applet-device-wifi.c --- network-manager-applet-0.9.4.1/.pc/lp341684_device_sensitive_disconnect_notify.patch/src/applet-device-wifi.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp341684_device_sensitive_disconnect_notify.patch/src/applet-device-wifi.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1705 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-wifi.h" +#include "ap-menu-item.h" +#include "utils.h" +#include "nm-wifi-dialog.h" +#include "nm-ui-utils.h" + +#define ACTIVE_AP_TAG "active-ap" + +static void wifi_dialog_response_cb (GtkDialog *dialog, gint response, gpointer user_data); + +static void nag_dialog_response_cb (GtkDialog *nag_dialog, gint response, gpointer user_data); + +static NMAccessPoint *update_active_ap (NMDevice *device, NMDeviceState state, NMApplet *applet); + +static void _do_new_auto_connection (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap, + AppletNewAutoConnectionCallback callback, + gpointer callback_data); + +static void +show_ignore_focus_stealing_prevention (GtkWidget *widget) +{ + GdkWindow *window; + + gtk_widget_realize (widget); + gtk_widget_show (widget); + window = gtk_widget_get_window (widget); + gtk_window_present_with_time (GTK_WINDOW (widget), gdk_x11_get_server_time (window)); +} + +gboolean +applet_wifi_connect_to_hidden_network (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = nma_wifi_dialog_new_for_other (applet->nm_client, applet->settings); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (wifi_dialog_response_cb), + applet); + show_ignore_focus_stealing_prevention (dialog); + } + return !!dialog; +} + +void +nma_menu_add_hidden_network_item (GtkWidget *menu, NMApplet *applet) +{ + GtkWidget *menu_item; + GtkWidget *label; + + menu_item = gtk_menu_item_new (); + label = gtk_label_new_with_mnemonic (_("_Connect to Hidden Wi-Fi Network...")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_container_add (GTK_CONTAINER (menu_item), label); + gtk_widget_show_all (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_swapped (menu_item, "activate", + G_CALLBACK (applet_wifi_connect_to_hidden_network), + applet); +} + +gboolean +applet_wifi_can_create_wifi_network (NMApplet *applet) +{ + gboolean disabled, allowed = FALSE; + NMClientPermissionResult perm; + + /* FIXME: check WIFI_SHARE_PROTECTED too, and make the wifi dialog + * handle the permissions as well so that admins can restrict open network + * creation separately from protected network creation. + */ + perm = nm_client_get_permission_result (applet->nm_client, NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN); + if (perm == NM_CLIENT_PERMISSION_RESULT_YES || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + disabled = g_settings_get_boolean (applet->gsettings, PREF_DISABLE_WIFI_CREATE); + if (!disabled) + allowed = TRUE; + } + return allowed; +} + +gboolean +applet_wifi_create_wifi_network (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = nma_wifi_dialog_new_for_create (applet->nm_client, applet->settings); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (wifi_dialog_response_cb), + applet); + show_ignore_focus_stealing_prevention (dialog); + } + return !!dialog; +} + +void +nma_menu_add_create_network_item (GtkWidget *menu, NMApplet *applet) +{ + GtkWidget *menu_item; + GtkWidget *label; + + menu_item = gtk_menu_item_new (); + label = gtk_label_new_with_mnemonic (_("Create _New Wi-Fi Network...")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_container_add (GTK_CONTAINER (menu_item), label); + gtk_widget_show_all (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_swapped (menu_item, "activate", + G_CALLBACK (applet_wifi_create_wifi_network), + applet); + + if (!applet_wifi_can_create_wifi_network (applet)) + gtk_widget_set_sensitive (GTK_WIDGET (menu_item), FALSE); +} + +static void +dbus_8021x_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMAccessPoint *ap; +} Dbus8021xInfo; + +static void +dbus_connect_8021x_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus8021xInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + nm_object_get_path (NM_OBJECT (info->ap)), + dbus_8021x_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + g_object_unref (info->ap); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +gboolean +applet_wifi_connect_to_8021x_network (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap) +{ + Dbus8021xInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + info->ap = g_object_ref (ap); + + _do_new_auto_connection (applet, device, ap, dbus_connect_8021x_cb, info); + return TRUE; +} + + +typedef struct { + NMApplet *applet; + NMDeviceWifi *device; + NMAccessPoint *ap; + NMConnection *connection; +} WifiMenuItemInfo; + +static void +wifi_menu_item_info_destroy (gpointer data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) data; + + g_object_unref (G_OBJECT (info->device)); + g_object_unref (G_OBJECT (info->ap)); + + if (info->connection) + g_object_unref (G_OBJECT (info->connection)); + + g_slice_free (WifiMenuItemInfo, data); +} + +/* + * NOTE: this list should *not* contain networks that you would like to + * automatically roam to like "Starbucks" or "AT&T" or "T-Mobile HotSpot". + */ +static const char *manf_default_ssids[] = { + "linksys", + "linksys-a", + "linksys-g", + "default", + "belkin54g", + "NETGEAR", + "o2DSL", + "WLAN", + "ALICE-WLAN", + NULL +}; + +static gboolean +is_ssid_in_list (const GByteArray *ssid, const char **list) +{ + while (*list) { + if (ssid->len == strlen (*list)) { + if (!memcmp (*list, ssid->data, ssid->len)) + return TRUE; + } + list++; + } + return FALSE; +} + +static gboolean +is_manufacturer_default_ssid (const GByteArray *ssid) +{ + return is_ssid_in_list (ssid, manf_default_ssids); +} + +static char * +get_ssid_utf8 (NMAccessPoint *ap) +{ + char *ssid_utf8 = NULL; + const GByteArray *ssid; + + if (ap) { + ssid = nm_access_point_get_ssid (ap); + if (ssid) + ssid_utf8 = nm_utils_ssid_to_utf8 (ssid); + } + if (!ssid_utf8) + ssid_utf8 = g_strdup (_("(none)")); + + return ssid_utf8; +} + +/* List known trojan networks that should never be shown to the user */ +static const char *blacklisted_ssids[] = { + /* http://www.npr.org/templates/story/story.php?storyId=130451369 */ + "Free Public WiFi", + NULL +}; + +static gboolean +is_blacklisted_ssid (const GByteArray *ssid) +{ + return is_ssid_in_list (ssid, blacklisted_ssids); +} + +static void +clamp_ap_to_bssid (NMAccessPoint *ap, NMSettingWireless *s_wifi) +{ + const char *str_bssid; + struct ether_addr *eth_addr; + GByteArray *bssid; + + /* For a certain list of known ESSIDs which are commonly preset by ISPs + * and manufacturers and often unchanged by users, lock the connection + * to the BSSID so that we don't try to auto-connect to your grandma's + * neighbor's WiFi. + */ + + str_bssid = nm_access_point_get_hw_address (ap); + if (str_bssid) { + eth_addr = ether_aton (str_bssid); + if (eth_addr) { + bssid = g_byte_array_sized_new (ETH_ALEN); + g_byte_array_append (bssid, eth_addr->ether_addr_octet, ETH_ALEN); + g_object_set (G_OBJECT (s_wifi), + NM_SETTING_WIRELESS_BSSID, bssid, + NULL); + g_byte_array_free (bssid, TRUE); + } + } +} + +typedef struct { + NMApplet *applet; + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} MoreInfo; + +static void +more_info_wifi_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (foo); + MoreInfo *info = user_data; + NMConnection *connection = NULL; + NMDevice *device = NULL; + NMAccessPoint *ap = NULL; + + if (response != GTK_RESPONSE_OK) { + info->callback (NULL, FALSE, TRUE, info->callback_data); + goto done; + } + + if (!nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *nag_dialog; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + nag_dialog = nma_wifi_dialog_nag_user (dialog); + if (nag_dialog) { + gtk_window_set_transient_for (GTK_WINDOW (nag_dialog), GTK_WINDOW (dialog)); + g_signal_connect (nag_dialog, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + /* nma_wifi_dialog_get_connection() returns a connection with the + * refcount incremented, so the caller must remember to unref it. + */ + connection = nma_wifi_dialog_get_connection (dialog, &device, &ap); + g_assert (connection); + g_assert (device); + + info->callback (connection, TRUE, FALSE, info->callback_data); + + /* Balance nma_wifi_dialog_get_connection() */ + g_object_unref (connection); + +done: + g_free (info); + gtk_widget_hide (GTK_WIDGET (dialog)); + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static void +_do_new_auto_connection (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMConnection *connection = NULL; + NMSettingConnection *s_con = NULL; + NMSettingWireless *s_wifi = NULL; + NMSettingWirelessSecurity *s_wsec = NULL; + NMSetting8021x *s_8021x = NULL; + const GByteArray *ssid; + NM80211ApSecurityFlags wpa_flags, rsn_flags; + GtkWidget *dialog; + MoreInfo *more_info; + char *uuid; + + g_assert (applet); + g_assert (device); + g_assert (ap); + + connection = nm_connection_new (); + + ssid = nm_access_point_get_ssid (ap); + if ( (nm_access_point_get_mode (ap) == NM_802_11_MODE_INFRA) + && (is_manufacturer_default_ssid (ssid) == TRUE)) { + + /* Lock connection to this AP if it's a manufacturer-default SSID + * so that we don't randomly connect to some other 'linksys' + */ + s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); + clamp_ap_to_bssid (ap, s_wifi); + nm_connection_add_setting (connection, NM_SETTING (s_wifi)); + } + + /* If the AP is WPA[2]-Enterprise then we need to set up a minimal 802.1x + * setting and ask the user for more information. + */ + rsn_flags = nm_access_point_get_rsn_flags (ap); + wpa_flags = nm_access_point_get_wpa_flags (ap); + if ( (rsn_flags & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + || (wpa_flags & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + + /* Need a UUID for the "always ask" stuff in the Dialog of Doom */ + s_con = (NMSettingConnection *) nm_setting_connection_new (); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, NM_SETTING_CONNECTION_UUID, uuid, NULL); + g_free (uuid); + nm_connection_add_setting (connection, NM_SETTING (s_con)); + + if (!s_wifi) { + s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); + nm_connection_add_setting (connection, NM_SETTING (s_wifi)); + } + g_object_set (s_wifi, + NM_SETTING_WIRELESS_SSID, ssid, + NM_SETTING_WIRELESS_SEC, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, + NULL); + + s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new (); + g_object_set (s_wsec, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-eap", NULL); + nm_connection_add_setting (connection, NM_SETTING (s_wsec)); + + s_8021x = (NMSetting8021x *) nm_setting_802_1x_new (); + nm_setting_802_1x_add_eap_method (s_8021x, "ttls"); + g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_AUTH, "mschapv2", NULL); + nm_connection_add_setting (connection, NM_SETTING (s_8021x)); + } + + /* If it's an 802.1x connection, we need more information, so pop up the + * Dialog Of Doom. + */ + if (s_8021x) { + more_info = g_malloc0 (sizeof (*more_info)); + more_info->applet = applet; + more_info->callback = callback; + more_info->callback_data = callback_data; + + dialog = nma_wifi_dialog_new (applet->nm_client, applet->settings, connection, device, ap, FALSE); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (more_info_wifi_dialog_response_cb), + more_info); + show_ignore_focus_stealing_prevention (dialog); + } + } else { + /* Everything else can just get activated right away */ + callback (connection, TRUE, FALSE, callback_data); + } +} + +static gboolean +wifi_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) dclass_data; + + g_return_val_if_fail (device != NULL, FALSE); + g_return_val_if_fail (info->ap != NULL, FALSE); + + _do_new_auto_connection (info->applet, device, info->ap, callback, callback_data); + return TRUE; +} + + +static void +wifi_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) user_data; + const char *specific_object = NULL; + + if (info->ap) + specific_object = nm_object_get_path (NM_OBJECT (info->ap)); + applet_menu_item_activate_helper (NM_DEVICE (info->device), + info->connection, + specific_object ? specific_object : "/", + info->applet, + user_data); +} + +struct dup_data { + NMDevice *device; + NMNetworkMenuItem *found; + char *hash; +}; + +static void +find_duplicate (gpointer d, gpointer user_data) +{ + struct dup_data * data = (struct dup_data *) user_data; + NMDevice *device; + const char *hash; + GtkWidget *widget = GTK_WIDGET (d); + + g_assert (d && widget); + g_return_if_fail (data); + g_return_if_fail (data->hash); + + if (data->found || !NM_IS_NETWORK_MENU_ITEM (widget)) + return; + + device = g_object_get_data (G_OBJECT (widget), "device"); + if (NM_DEVICE (device) != data->device) + return; + + hash = nm_network_menu_item_get_hash (NM_NETWORK_MENU_ITEM (widget)); + if (hash && (strcmp (hash, data->hash) == 0)) + data->found = NM_NETWORK_MENU_ITEM (widget); +} + +static NMNetworkMenuItem * +create_new_ap_item (NMDeviceWifi *device, + NMAccessPoint *ap, + struct dup_data *dup_data, + GSList *connections, + NMApplet *applet) +{ + WifiMenuItemInfo *info; + GSList *iter; + NMNetworkMenuItem *item = NULL; + GSList *dev_connections = NULL; + GSList *ap_connections = NULL; + const GByteArray *ssid; + guint32 dev_caps; + + dev_connections = nm_device_filter_connections (NM_DEVICE (device), connections); + ap_connections = nm_access_point_filter_connections (ap, dev_connections); + g_slist_free (dev_connections); + dev_connections = NULL; + + item = NM_NETWORK_MENU_ITEM (nm_network_menu_item_new (dup_data->hash, + !!g_slist_length (ap_connections))); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + + ssid = nm_access_point_get_ssid (ap); + nm_network_menu_item_set_ssid (item, (GByteArray *) ssid); + + dev_caps = nm_device_wifi_get_capabilities (device); + nma_icon_check_and_load ("nm-adhoc", &applet->adhoc_icon, applet); + nm_network_menu_item_set_detail (item, ap, applet->adhoc_icon, dev_caps); + nm_network_menu_item_best_strength (item, nm_access_point_get_strength (ap), applet); + nm_network_menu_item_add_dupe (item, ap); + + g_object_set_data (G_OBJECT (item), "device", NM_DEVICE (device)); + + /* If there's only one connection, don't show the submenu */ + if (g_slist_length (ap_connections) > 1) { + GtkWidget *submenu; + + submenu = gtk_menu_new (); + + for (iter = ap_connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + GtkWidget *subitem; + + s_con = nm_connection_get_setting_connection (connection); + subitem = gtk_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); + + info = g_slice_new0 (WifiMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->ap = g_object_ref (G_OBJECT (ap)); + info->connection = g_object_ref (G_OBJECT (connection)); + + g_signal_connect_data (subitem, "activate", + G_CALLBACK (wifi_menu_item_activate), + info, + (GClosureNotify) wifi_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), GTK_WIDGET (subitem)); + } + + gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu); + } else { + NMConnection *connection; + + info = g_slice_new0 (WifiMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->ap = g_object_ref (G_OBJECT (ap)); + + if (g_slist_length (ap_connections) == 1) { + connection = NM_CONNECTION (g_slist_nth_data (ap_connections, 0)); + info->connection = g_object_ref (G_OBJECT (connection)); + } + + g_signal_connect_data (GTK_WIDGET (item), + "activate", + G_CALLBACK (wifi_menu_item_activate), + info, + (GClosureNotify) wifi_menu_item_info_destroy, + 0); + } + + g_slist_free (ap_connections); + return item; +} + +static NMNetworkMenuItem * +get_menu_item_for_ap (NMDeviceWifi *device, + NMAccessPoint *ap, + GSList *connections, + GSList *menu_list, + NMApplet *applet) +{ + const GByteArray *ssid; + struct dup_data dup_data = { NULL, NULL }; + + /* Don't add BSSs that hide their SSID or are blacklisted */ + ssid = nm_access_point_get_ssid (ap); + if ( !ssid + || nm_utils_is_empty_ssid (ssid->data, ssid->len) + || is_blacklisted_ssid (ssid)) + return NULL; + + /* Find out if this AP is a member of a larger network that all uses the + * same SSID and security settings. If so, we'll already have a menu item + * for this SSID, so just update that item's strength and add this AP to + * menu item's duplicate list. + */ + dup_data.found = NULL; + dup_data.hash = g_object_get_data (G_OBJECT (ap), "hash"); + g_return_val_if_fail (dup_data.hash != NULL, NULL); + + dup_data.device = NM_DEVICE (device); + g_slist_foreach (menu_list, find_duplicate, &dup_data); + + if (dup_data.found) { + nm_network_menu_item_best_strength (dup_data.found, nm_access_point_get_strength (ap), applet); + nm_network_menu_item_add_dupe (dup_data.found, ap); + return NULL; + } + + return create_new_ap_item (device, ap, &dup_data, connections, applet); +} + +static gint +sort_by_name (gconstpointer tmpa, gconstpointer tmpb) +{ + NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); + NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); + const char *a_ssid, *b_ssid; + gboolean a_adhoc, b_adhoc; + int i; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_ssid = nm_network_menu_item_get_ssid (a); + b_ssid = nm_network_menu_item_get_ssid (b); + + if (a_ssid && !b_ssid) + return 1; + if (b_ssid && !a_ssid) + return -1; + + if (a_ssid && b_ssid) { + i = g_ascii_strcasecmp (a_ssid, b_ssid); + if (i != 0) + return i; + } + + /* If the names are the same, sort infrastructure APs first */ + a_adhoc = nm_network_menu_item_get_is_adhoc (a); + b_adhoc = nm_network_menu_item_get_is_adhoc (b); + if (a_adhoc && !b_adhoc) + return 1; + else if (!a_adhoc && b_adhoc) + return -1; + + return 0; +} + +/* Sort menu items for the top-level menu: + * 1) whether there's a saved connection or not + * a) sort alphabetically within #1 + * 2) encrypted without a saved connection + * 3) unencrypted without a saved connection + */ +static gint +sort_toplevel (gconstpointer tmpa, gconstpointer tmpb) +{ + NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); + NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); + gboolean a_fave, b_fave; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_fave = nm_network_menu_item_get_has_connections (a); + b_fave = nm_network_menu_item_get_has_connections (b); + + /* Items with a saved connection first */ + if (a_fave && !b_fave) + return -1; + else if (!a_fave && b_fave) + return 1; + else if (!a_fave && !b_fave) { + gboolean a_enc = nm_network_menu_item_get_is_encrypted (a); + gboolean b_enc = nm_network_menu_item_get_is_encrypted (b); + + /* If neither item has a saved connection, sort by encryption */ + if (a_enc && !b_enc) + return -1; + else if (!a_enc && b_enc) + return 1; + } + + /* For all other cases (both have saved connections, both are encrypted, or + * both are unencrypted) just sort by name. + */ + return sort_by_name (a, b); +} + +static void +wifi_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + NMDeviceWifi *wdev; + char *text; + const GPtrArray *aps; + int i; + NMAccessPoint *active_ap = NULL; + GSList *connections = NULL, *all, *iter; + gboolean wifi_enabled = TRUE; + gboolean wifi_hw_enabled = TRUE; + GSList *menu_items = NULL; /* All menu items we'll be adding */ + NMNetworkMenuItem *item, *active_item = NULL; + GtkWidget *widget; + + wdev = NM_DEVICE_WIFI (device); + aps = nm_device_wifi_get_access_points (wdev); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + if (aps && aps->len > 1) + text = g_strdup_printf (_("Wi-Fi Networks (%s)"), desc); + else + text = g_strdup_printf (_("Wi-Fi Network (%s)"), desc); + } else + text = g_strdup (ngettext ("Wi-Fi Network", "Wi-Fi Networks", aps ? aps->len : 0)); + + widget = applet_menu_item_create_device_item_helper (device, applet, text); + g_free (text); + + gtk_widget_set_sensitive (widget, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); + gtk_widget_show (widget); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + /* Add the active AP if we're connected to something and the device is available */ + if (!nma_menu_device_check_unusable (device)) { + active_ap = nm_device_wifi_get_active_access_point (wdev); + if (active_ap) { + active_item = item = get_menu_item_for_ap (wdev, active_ap, connections, NULL, applet); + if (item) { + nm_network_menu_item_set_active (item, TRUE); + menu_items = g_slist_append (menu_items, item); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + gtk_widget_show_all (GTK_WIDGET (item)); + } + } + } + + /* Notify user of unmanaged or unavailable device */ + wifi_enabled = nm_client_wireless_get_enabled (applet->nm_client); + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + widget = nma_menu_device_get_menu_item (device, applet, + wifi_hw_enabled ? + (wifi_enabled ? NULL : _("Wi-Fi is disabled")) : + _("Wi-Fi is disabled by hardware switch")); + if (widget) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); + gtk_widget_show (widget); + } + + /* If disabled or rfkilled or whatever, nothing left to do */ + if (nma_menu_device_check_unusable (device)) + goto out; + + /* Create menu items for the rest of the APs */ + for (i = 0; aps && (i < aps->len); i++) { + NMAccessPoint *ap = g_ptr_array_index (aps, i); + + item = get_menu_item_for_ap (wdev, ap, connections, menu_items, applet); + if (item) + menu_items = g_slist_append (menu_items, item); + } + + /* Now remove the active AP item from the list, as we've already dealt with + * it. (Needed it when creating menu items for the rest of the APs though + * to ensure duplicate APs are handled correctly) + */ + if (active_item) + menu_items = g_slist_remove (menu_items, active_item); + + /* Sort all the rest of the menu items for the top-level menu */ + menu_items = g_slist_sort (menu_items, sort_toplevel); + + if (g_slist_length (menu_items)) { + GSList *submenu_items = NULL; + GSList *topmenu_items = NULL; + guint32 num_for_toplevel = 5; + + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (menu_items) == (num_for_toplevel + 1)) + num_for_toplevel++; + + /* Add the first 5 APs (or 6 if there are only 6 total) from the sorted + * toplevel list. + */ + for (iter = menu_items; iter && num_for_toplevel; iter = g_slist_next (iter)) { + topmenu_items = g_slist_append (topmenu_items, iter->data); + num_for_toplevel--; + submenu_items = iter->next; + } + topmenu_items = g_slist_sort (topmenu_items, sort_by_name); + + for (iter = topmenu_items; iter; iter = g_slist_next (iter)) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (iter->data)); + gtk_widget_show_all (GTK_WIDGET (iter->data)); + } + g_slist_free (topmenu_items); + topmenu_items = NULL; + + /* If there are any submenu items, make a submenu for those */ + if (submenu_items) { + GtkWidget *subitem, *submenu; + GSList *sorted_subitems; + + subitem = gtk_menu_item_new_with_mnemonic (_("More networks")); + submenu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (subitem), submenu); + + /* Sort the subitems alphabetically */ + sorted_subitems = g_slist_copy (submenu_items); + sorted_subitems = g_slist_sort (sorted_subitems, sort_by_name); + + /* And add the rest to the submenu */ + for (iter = sorted_subitems; iter; iter = g_slist_next (iter)) + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), GTK_WIDGET (iter->data)); + g_slist_free (sorted_subitems); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), subitem); + gtk_widget_show_all (subitem); + } + } + +out: + g_slist_free (menu_items); + g_slist_free (connections); +} + +static void +notify_active_ap_changed_cb (NMDeviceWifi *device, + GParamSpec *pspec, + NMApplet *applet) +{ + NMRemoteConnection *connection; + NMSettingWireless *s_wireless; + NMAccessPoint *new; + const GByteArray *ssid; + NMDeviceState state; + + state = nm_device_get_state (NM_DEVICE (device)); + + new = update_active_ap (NM_DEVICE (device), state, applet); + if (!new || (state != NM_DEVICE_STATE_ACTIVATED)) + return; + + connection = applet_get_exported_connection_for_device (NM_DEVICE (device), applet); + if (!connection) + return; + + s_wireless = nm_connection_get_setting_wireless (NM_CONNECTION (connection)); + if (!s_wireless) + return; + + ssid = nm_access_point_get_ssid (new); + if (!ssid || !nm_utils_same_ssid (nm_setting_wireless_get_ssid (s_wireless), ssid, TRUE)) + return; + + applet_schedule_update_icon (applet); +} + +static void +add_hash_to_ap (NMAccessPoint *ap) +{ + char *hash; + + hash = utils_hash_ap (nm_access_point_get_ssid (ap), + nm_access_point_get_mode (ap), + nm_access_point_get_flags (ap), + nm_access_point_get_wpa_flags (ap), + nm_access_point_get_rsn_flags (ap)); + g_object_set_data_full (G_OBJECT (ap), "hash", hash, (GDestroyNotify) g_free); +} + +static void +notify_ap_prop_changed_cb (NMAccessPoint *ap, + GParamSpec *pspec, + NMApplet *applet) +{ + const char *prop = g_param_spec_get_name (pspec); + + if ( !strcmp (prop, NM_ACCESS_POINT_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_WPA_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_RSN_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_SSID) + || !strcmp (prop, NM_ACCESS_POINT_FREQUENCY) + || !strcmp (prop, NM_ACCESS_POINT_MODE)) { + add_hash_to_ap (ap); + } +} + +static void +wifi_available_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id || strcmp (id, "dont-show")) + return; + + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + TRUE); +} + + +struct ap_notification_data +{ + NMApplet *applet; + NMDeviceWifi *device; + guint id; + gulong last_notification_time; + guint new_con_id; +}; + +/* Scan the list of access points, looking for the case where we have no + * known (i.e. autoconnect) access points, but we do have unknown ones. + * + * If we find one, notify the user. + */ +static gboolean +idle_check_avail_access_point_notification (gpointer datap) +{ + struct ap_notification_data *data = datap; + NMApplet *applet = data->applet; + NMDeviceWifi *device = data->device; + int i; + const GPtrArray *aps; + GSList *all_connections; + GSList *connections; + GTimeVal timeval; + gboolean have_unused_access_point = FALSE; + gboolean have_no_autoconnect_points = TRUE; + + if (nm_client_get_state (data->applet->nm_client) != NM_STATE_DISCONNECTED) + return FALSE; + + if (nm_device_get_state (NM_DEVICE (device)) != NM_DEVICE_STATE_DISCONNECTED) + return FALSE; + + g_get_current_time (&timeval); + if ((timeval.tv_sec - data->last_notification_time) < 60*60) /* Notify at most once an hour */ + return FALSE; + + all_connections = applet_get_all_connections (applet); + connections = nm_device_filter_connections (NM_DEVICE (device), all_connections); + g_slist_free (all_connections); + all_connections = NULL; + + aps = nm_device_wifi_get_access_points (device); + for (i = 0; aps && (i < aps->len); i++) { + NMAccessPoint *ap = aps->pdata[i]; + GSList *ap_connections = nm_access_point_filter_connections (ap, connections); + GSList *iter; + gboolean is_autoconnect = FALSE; + + for (iter = ap_connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (nm_setting_connection_get_autoconnect (s_con)) { + is_autoconnect = TRUE; + break; + } + } + g_slist_free (ap_connections); + + if (!is_autoconnect) + have_unused_access_point = TRUE; + else + have_no_autoconnect_points = FALSE; + } + g_slist_free (connections); + + if (!(have_unused_access_point && have_no_autoconnect_points)) + return FALSE; + + /* Avoid notifying too often */ + g_get_current_time (&timeval); + data->last_notification_time = timeval.tv_sec; + + applet_do_notify (applet, + NOTIFY_URGENCY_LOW, + _("Wi-Fi Networks Available"), + _("Use the network menu to connect to a Wi-Fi network"), + "nm-device-wireless", + "dont-show", + _("Don't show this message again"), + wifi_available_dont_show_cb, + applet); + return FALSE; +} + +static void +queue_avail_access_point_notification (NMDevice *device) +{ + struct ap_notification_data *data; + + data = g_object_get_data (G_OBJECT (device), "notify-wifi-avail-data"); + if (data->id != 0) + return; + + if (g_settings_get_boolean (data->applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + return; + + data->id = g_timeout_add_seconds (3, idle_check_avail_access_point_notification, data); +} + +static void +access_point_added_cb (NMDeviceWifi *device, + NMAccessPoint *ap, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + add_hash_to_ap (ap); + g_signal_connect (G_OBJECT (ap), + "notify", + G_CALLBACK (notify_ap_prop_changed_cb), + applet); + + queue_avail_access_point_notification (NM_DEVICE (device)); +} + +static void +access_point_removed_cb (NMDeviceWifi *device, + NMAccessPoint *ap, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMAccessPoint *old; + + /* If this AP was the active AP, make sure ACTIVE_AP_TAG gets cleared from + * its device. + */ + old = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + if (old == ap) { + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); + applet_schedule_update_icon (applet); + } +} + +static void +on_new_connection (NMRemoteSettings *settings, + NMRemoteConnection *connection, + gpointer datap) +{ + struct ap_notification_data *data = datap; + queue_avail_access_point_notification (NM_DEVICE (data->device)); +} + +static void +free_ap_notification_data (gpointer user_data) +{ + struct ap_notification_data *data = user_data; + NMRemoteSettings *settings = applet_get_settings (data->applet); + + if (data->id) + g_source_remove (data->id); + + if (settings) + g_signal_handler_disconnect (settings, data->new_con_id); + memset (data, 0, sizeof (*data)); + g_free (data); +} + +static void +wifi_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceWifi *wdev = NM_DEVICE_WIFI (device); + const GPtrArray *aps; + int i; + struct ap_notification_data *data; + guint id; + + g_signal_connect (wdev, + "notify::" NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT, + G_CALLBACK (notify_active_ap_changed_cb), + applet); + + g_signal_connect (wdev, + "access-point-added", + G_CALLBACK (access_point_added_cb), + applet); + + g_signal_connect (wdev, + "access-point-removed", + G_CALLBACK (access_point_removed_cb), + applet); + + /* Now create the per-device hooks for watching for available wifi + * connections. + */ + data = g_new0 (struct ap_notification_data, 1); + data->applet = applet; + data->device = wdev; + /* We also need to hook up to the settings to find out when we have new connections + * that might be candididates. Keep the ID around so we can disconnect + * when the device is destroyed. + */ + id = g_signal_connect (applet_get_settings (applet), + NM_REMOTE_SETTINGS_NEW_CONNECTION, + G_CALLBACK (on_new_connection), + data); + data->new_con_id = id; + g_object_set_data_full (G_OBJECT (wdev), "notify-wifi-avail-data", + data, free_ap_notification_data); + + queue_avail_access_point_notification (device); + + /* Hash all APs this device knows about */ + aps = nm_device_wifi_get_access_points (wdev); + for (i = 0; aps && (i < aps->len); i++) + add_hash_to_ap (g_ptr_array_index (aps, i)); +} + +static void +bssid_strength_changed (NMAccessPoint *ap, GParamSpec *pspec, gpointer user_data) +{ + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static NMAccessPoint * +update_active_ap (NMDevice *device, NMDeviceState state, NMApplet *applet) +{ + NMAccessPoint *new = NULL, *old; + + if (state == NM_DEVICE_STATE_PREPARE || + state == NM_DEVICE_STATE_CONFIG || + state == NM_DEVICE_STATE_IP_CONFIG || + state == NM_DEVICE_STATE_NEED_AUTH || + state == NM_DEVICE_STATE_ACTIVATED) { + new = nm_device_wifi_get_active_access_point (NM_DEVICE_WIFI (device)); + } + + old = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + if (new && (new == old)) + return new; /* no change */ + + if (old) { + g_signal_handlers_disconnect_by_func (old, G_CALLBACK (bssid_strength_changed), applet); + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); + } + + if (new) { + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, new); + + /* monitor this AP's signal strength for updating the applet icon */ + g_signal_connect (new, + "notify::" NM_ACCESS_POINT_STRENGTH, + G_CALLBACK (bssid_strength_changed), + applet); + } + + return new; +} + +static void +wifi_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + NMAccessPoint *new = NULL; + char *esc_ssid = NULL; + + new = update_active_ap (device, new_state, applet); + + if (new_state == NM_DEVICE_STATE_DISCONNECTED) + queue_avail_access_point_notification (device); + + if (new_state != NM_DEVICE_STATE_ACTIVATED) + return; + + esc_ssid = get_ssid_utf8 (new); + applet_do_notify_with_pref (applet, + esc_ssid ? esc_ssid : _("(none)"), + _("Connection Established"), + "nm-device-wireless", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (esc_ssid); +} + +static GdkPixbuf * +wifi_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + NMAccessPoint *ap; + GdkPixbuf *pixbuf = NULL; + const char *id; + char *ssid = NULL; + + ap = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing Wi-Fi network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring Wi-Fi network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for Wi-Fi network '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a Wi-Fi network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + if (ap) { + guint32 strength; + + strength = nm_access_point_get_strength (ap); + strength = CLAMP (strength, 0, 100); + + if (strength > 80) + pixbuf = nma_icon_check_and_load ("nm-signal-100", &applet->wifi_100_icon, applet); + else if (strength > 55) + pixbuf = nma_icon_check_and_load ("nm-signal-75", &applet->wifi_75_icon, applet); + else if (strength > 30) + pixbuf = nma_icon_check_and_load ("nm-signal-50", &applet->wifi_50_icon, applet); + else if (strength > 5) + pixbuf = nma_icon_check_and_load ("nm-signal-25", &applet->wifi_25_icon, applet); + else + pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); + + ssid = get_ssid_utf8 (ap); + *tip = g_strdup_printf (_("Wi-Fi network connection '%s' active: %s (%d%%)"), + id, ssid, strength); + g_free (ssid); + } else { + pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); + *tip = g_strdup_printf (_("Wi-Fi network connection '%s' active"), id); + } + break; + default: + break; + } + + return pixbuf ? g_object_ref (pixbuf) : NULL; +} + +static gboolean +wifi_dialog_close (gpointer user_data) +{ + GtkWidget *dialog = GTK_WIDGET (user_data); + + gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); + return FALSE; +} + +static void +wifi_dialog_destroyed (gpointer data, GObject *dialog_ptr) +{ + /* remove the idle function; for not to call wifi_dialog_close() on invalid pointer */ + g_idle_remove_by_data (dialog_ptr); +} + +static void +nag_dialog_response_cb (GtkDialog *nag_dialog, + gint response, + gpointer user_data) +{ + NMAWifiDialog *wifi_dialog = NMA_WIFI_DIALOG (user_data); + + if (response == GTK_RESPONSE_NO) { /* user opted not to correct the warning */ + nma_wifi_dialog_set_nag_ignored (wifi_dialog, TRUE); + g_idle_add (wifi_dialog_close, wifi_dialog); + g_object_weak_ref (G_OBJECT (wifi_dialog), wifi_dialog_destroyed, NULL); + } +} + + +static void +activate_existing_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +activate_new_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add new connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +wifi_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (foo); + NMApplet *applet = NM_APPLET (user_data); + NMConnection *connection = NULL, *fuzzy_match = NULL; + NMDevice *device = NULL; + NMAccessPoint *ap = NULL; + GSList *all, *iter; + + if (response != GTK_RESPONSE_OK) + goto done; + + if (!nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *nag_dialog; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + nag_dialog = nma_wifi_dialog_nag_user (dialog); + if (nag_dialog) { + gtk_window_set_transient_for (GTK_WINDOW (nag_dialog), GTK_WINDOW (dialog)); + g_signal_connect (nag_dialog, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + /* nma_wifi_dialog_get_connection() returns a connection with the + * refcount incremented, so the caller must remember to unref it. + */ + connection = nma_wifi_dialog_get_connection (dialog, &device, &ap); + g_assert (connection); + g_assert (device); + + /* Find a similar connection and use that instead */ + all = applet_get_all_connections (applet); + for (iter = all; iter; iter = g_slist_next (iter)) { + if (nm_connection_compare (connection, + NM_CONNECTION (iter->data), + (NM_SETTING_COMPARE_FLAG_FUZZY | NM_SETTING_COMPARE_FLAG_IGNORE_ID))) { + fuzzy_match = NM_CONNECTION (iter->data); + break; + } + } + g_slist_free (all); + + if (fuzzy_match) { + nm_client_activate_connection (applet->nm_client, + fuzzy_match, + device, + ap ? nm_object_get_path (NM_OBJECT (ap)) : NULL, + activate_existing_cb, + applet); + } else { + NMSetting *s_con; + NMSettingWireless *s_wifi = NULL; + const char *mode = NULL; + + /* Entirely new connection */ + + /* Don't autoconnect adhoc networks by default for now */ + s_wifi = nm_connection_get_setting_wireless (connection); + if (s_wifi) + mode = nm_setting_wireless_get_mode (s_wifi); + if (g_strcmp0 (mode, "adhoc") == 0) { + s_con = nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION); + if (!s_con) { + s_con = nm_setting_connection_new (); + nm_connection_add_setting (connection, s_con); + } + g_object_set (G_OBJECT (s_con), NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, NULL); + } + + nm_client_add_and_activate_connection (applet->nm_client, + connection, + device, + ap ? nm_object_get_path (NM_OBJECT (ap)) : NULL, + activate_new_cb, + applet); + } + + /* Balance nma_wifi_dialog_get_connection() */ + g_object_unref (connection); + +done: + gtk_widget_hide (GTK_WIDGET (dialog)); + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static gboolean +add_one_setting (GHashTable *settings, + NMConnection *connection, + NMSetting *setting, + GError **error) +{ + GHashTable *secrets; + + g_return_val_if_fail (settings != NULL, FALSE); + g_return_val_if_fail (connection != NULL, FALSE); + g_return_val_if_fail (setting != NULL, FALSE); + g_return_val_if_fail (error != NULL, FALSE); + g_return_val_if_fail (*error == NULL, FALSE); + + secrets = nm_setting_to_hash (setting, NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + g_hash_table_insert (settings, g_strdup (nm_setting_get_name (setting)), secrets); + } else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, nm_setting_get_name (setting)); + } + + return secrets ? TRUE : FALSE; +} + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkWidget *nag_dialog; +} NMWifiInfo; + +static void +free_wifi_info (SecretsRequest *req) +{ + NMWifiInfo *info = (NMWifiInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } +} + +static void +get_secrets_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMWifiInfo *info = (NMWifiInfo *) req; + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (info->dialog); + NMConnection *connection = NULL; + NMSettingWirelessSecurity *s_wireless_sec; + GHashTable *settings = NULL; + const char *key_mgmt, *auth_alg; + GError *error = NULL; + + /* Handle the nag dialog specially; don't want to clear the NMActiveConnection + * destroy handler yet if the main dialog isn't going away. + */ + if ((response == GTK_RESPONSE_OK) && !nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *widget; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + widget = nma_wifi_dialog_nag_user (dialog); + if (widget) { + gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (dialog)); + g_signal_connect (widget, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + if (response != GTK_RESPONSE_OK) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + goto done; + } + + connection = nma_wifi_dialog_get_connection (dialog, NULL, NULL); + if (!connection) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't get connection from Wi-Fi dialog.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* Second-guess which setting NM wants secrets for. */ + s_wireless_sec = nm_connection_get_setting_wireless_security (connection); + if (!s_wireless_sec) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): requested setting '802-11-wireless-security'" + " didn't exist in the connection.", + __FILE__, __LINE__, __func__); + goto done; /* Unencrypted */ + } + + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, (GDestroyNotify) g_hash_table_destroy); + if (!settings) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): not enough memory to return secrets.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* If the user chose an 802.1x-based auth method, return 802.1x secrets, + * not wireless secrets. Can happen with Dynamic WEP, because NM doesn't + * know the capabilities of the AP (since Dynamic WEP APs don't broadcast + * beacons), and therefore defaults to requesting WEP secrets from the + * wireless-security setting, not the 802.1x setting. + */ + key_mgmt = nm_setting_wireless_security_get_key_mgmt (s_wireless_sec); + if (!strcmp (key_mgmt, "ieee8021x") || !strcmp (key_mgmt, "wpa-eap")) { + /* LEAP secrets aren't in the 802.1x setting */ + auth_alg = nm_setting_wireless_security_get_auth_alg (s_wireless_sec); + if (!auth_alg || strcmp (auth_alg, "leap")) { + NMSetting8021x *s_8021x; + + s_8021x = nm_connection_get_setting_802_1x (connection); + if (!s_8021x) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): requested setting '802-1x' didn't" + " exist in the connection.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* Add the 802.1x setting */ + if (!add_one_setting (settings, connection, NM_SETTING (s_8021x), &error)) + goto done; + } + } + + /* Add the 802-11-wireless-security setting no matter what */ + add_one_setting (settings, connection, NM_SETTING (s_wireless_sec), &error); + +done: + applet_secrets_request_complete (req, settings, error); + applet_secrets_request_free (req); + + if (settings) + g_hash_table_destroy (settings); + if (connection) + nm_connection_clear_secrets (connection); +} + +static gboolean +wifi_get_secrets (SecretsRequest *req, GError **error) +{ + NMWifiInfo *info = (NMWifiInfo *) req; + + applet_secrets_request_set_free_func (req, free_wifi_info); + + info->dialog = nma_wifi_dialog_new (req->applet->nm_client, req->applet->settings, req->connection, NULL, NULL, TRUE); + if (info->dialog) { + g_signal_connect (info->dialog, "response", + G_CALLBACK (get_secrets_dialog_response_cb), + info); + show_ignore_focus_stealing_prevention (info->dialog); + } else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't display secrets UI", + __FILE__, __LINE__, __func__); + } + return !!info->dialog; +} + +NMADeviceClass * +applet_device_wifi_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = wifi_new_auto_connection; + dclass->add_menu_item = wifi_add_menu_item; + dclass->device_added = wifi_device_added; + dclass->device_state_changed = wifi_device_state_changed; + dclass->get_icon = wifi_get_icon; + dclass->get_secrets = wifi_get_secrets; + dclass->secrets_request_size = sizeof (NMWifiInfo); + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/lp341684_device_sensitive_disconnect_notify.patch/src/applet.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp341684_device_sensitive_disconnect_notify.patch/src/applet.c --- network-manager-applet-0.9.4.1/.pc/lp341684_device_sensitive_disconnect_notify.patch/src/applet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp341684_device_sensitive_disconnect_notify.patch/src/applet.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,3577 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2012 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + * + * This applet used the GNOME Wireless Applet as a skeleton to build from. + * + * GNOME Wireless Applet Authors: + * Eskil Heyn Olsen + * Bastien Nocera (Gnome2 port) + * + * (C) Copyright 2001, 2002 Free Software Foundation + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "applet-device-wifi.h" +#include "applet-device-gsm.h" +#include "applet-device-cdma.h" +#include "applet-device-bt.h" +#include "applet-device-wimax.h" +#include "applet-dialogs.h" +#include "nm-wifi-dialog.h" +#include "applet-vpn-request.h" +#include "utils.h" +#include "shell-watcher.h" +#include "nm-ui-utils.h" + +#define NOTIFY_CAPS_ACTIONS_KEY "actions" + +extern gboolean shell_debug; + +G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) + +/********************************************************************/ +/* Temporary dbus interface stuff */ + +static gboolean +impl_dbus_connect_to_hidden_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_connect_to_hidden_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_create_wifi_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_can_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NOT_AUTHORIZED, + "Creation of Wi-Fi networks has been disabled by system policy."); + return FALSE; + } + + if (!applet_wifi_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_8021x_network (NMApplet *applet, + const char *device_path, + const char *ap_path, + GError **error) +{ + NMDevice *device; + NMAccessPoint *ap; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_WIFI (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + ap = nm_device_wifi_get_access_point_by_path (NM_DEVICE_WIFI (device), ap_path); + if (!ap) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point could not be found."); + return FALSE; + } + + /* FIXME: this doesn't account for Dynamic WEP */ + if ( !(nm_access_point_get_wpa_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + && !(nm_access_point_get_rsn_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point had no 802.1x capabilities"); + return FALSE; + } + + if (!applet_wifi_connect_to_8021x_network (applet, device, ap)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_3g_network (NMApplet *applet, + const char *device_path, + GError **error) +{ + NMDevice *device; + NMDeviceModemCapabilities caps; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_MODEM (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + applet_gsm_connect_network (applet, device); + } else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + applet_cdma_connect_network (applet, device); + } else { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device had no GSM or CDMA capabilities."); + return FALSE; + } + + return TRUE; +} + +#include "applet-dbus-bindings.h" + +/********************************************************************/ + +static inline NMADeviceClass * +get_device_class (NMDevice *device, NMApplet *applet) +{ + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + if (NM_IS_DEVICE_ETHERNET (device)) + return applet->ethernet_class; + else if (NM_IS_DEVICE_WIFI (device)) + return applet->wifi_class; + else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + return applet->gsm_class; + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + return applet->cdma_class; + else + g_message ("%s: unhandled modem capabilities 0x%X", __func__, caps); + } else if (NM_IS_DEVICE_BT (device)) + return applet->bt_class; + else if (NM_IS_DEVICE_WIMAX (device)) + return applet->wimax_class; + else + g_debug ("%s: Unknown device type '%s'", __func__, G_OBJECT_TYPE_NAME (device)); + return NULL; +} + +static inline NMADeviceClass * +get_device_class_from_connection (NMConnection *connection, NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *ctype; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + ctype = nm_setting_connection_get_connection_type (s_con); + g_return_val_if_fail (ctype != NULL, NULL); + + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME) || !strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return applet->ethernet_class; + else if (!strcmp (ctype, NM_SETTING_WIRELESS_SETTING_NAME)) + return applet->wifi_class; + else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME)) + return applet->gsm_class; + else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME)) + return applet->cdma_class; + else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) + return applet->bt_class; + else + g_warning ("%s: unhandled connection type '%s'", __func__, ctype); + return NULL; +} + +static NMActiveConnection * +applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *best = NULL; + NMDevice *best_dev = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const GPtrArray *devices; + NMDevice *candidate_dev; + + if (nm_active_connection_get_state (candidate) != NM_ACTIVE_CONNECTION_STATE_ACTIVATING) + continue; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (!best_dev) { + best_dev = candidate_dev; + best = candidate; + continue; + } + + if (NM_IS_DEVICE_WIFI (best_dev)) { + if (NM_IS_DEVICE_ETHERNET (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (NM_IS_DEVICE_MODEM (best_dev)) { + NMDeviceModemCapabilities best_caps; + NMDeviceModemCapabilities candidate_caps = NM_DEVICE_MODEM_CAPABILITY_NONE; + + best_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (best_dev)); + if (NM_IS_DEVICE_MODEM (candidate_dev)) + candidate_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (candidate_dev)); + + if (best_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (best_caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev) + || (candidate_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { + best_dev = candidate_dev; + best = candidate; + } + } + } + } + + *device = best_dev; + return best; +} + +static NMActiveConnection * +applet_get_default_active_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *default_ac = NULL; + NMDevice *non_default_device = NULL; + NMActiveConnection *non_default_ac = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + NMDevice *candidate_dev; + const GPtrArray *devices; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (nm_active_connection_get_default (candidate)) { + if (!default_ac) { + *device = candidate_dev; + default_ac = candidate; + } + } else { + if (!non_default_ac) { + non_default_device = candidate_dev; + non_default_ac = candidate; + } + } + } + + /* Prefer the default connection if one exists, otherwise return the first + * non-default connection. + */ + if (!default_ac && non_default_ac) { + default_ac = non_default_ac; + *device = non_default_device; + } + return default_ac; +} + +NMRemoteSettings * +applet_get_settings (NMApplet *applet) +{ + return applet->settings; +} + +GSList * +applet_get_all_connections (NMApplet *applet) +{ + GSList *connections, *iter, *next; + NMConnection *connection; + NMSettingConnection *s_con; + + connections = nm_remote_settings_list_connections (applet->settings); + + /* Ignore slave connections */ + for (iter = connections; iter; iter = next) { + connection = iter->data; + next = iter->next; + + s_con = nm_connection_get_setting_connection (connection); + if (s_con && nm_setting_connection_get_master (s_con)) + connections = g_slist_delete_link (connections, iter); + } + + return connections; +} + +static NMConnection * +applet_get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMActiveConnection * +applet_get_active_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + int i; + const char *cpath; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + const char *active_cpath = nm_active_connection_get_connection (active); + + if (active_cpath && !strcmp (active_cpath, cpath)) + return active; + } + return NULL; +} + +NMDevice * +applet_get_device_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + const char *cpath; + int i; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + + if (!g_strcmp0 (nm_active_connection_get_connection (active), cpath)) + return g_ptr_array_index (nm_active_connection_get_devices (active), 0); + } + return NULL; +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + char *specific_object; + NMConnection *connection; +} AppletItemActivateInfo; + +static void +applet_item_activate_info_destroy (AppletItemActivateInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + g_free (info->specific_object); + if (info->connection) + g_object_unref (info->connection); + memset (info, 0, sizeof (AppletItemActivateInfo)); + g_free (info); +} + +static void +add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add/activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +applet_menu_item_activate_helper_new_connection (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + AppletItemActivateInfo *info = user_data; + + if (canceled) { + applet_item_activate_info_destroy (info); + return; + } + + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + info->specific_object, + add_and_activate_cb, + info->applet); + + applet_item_activate_info_destroy (info); +} + +static void +disconnect_cb (NMDevice *device, GError *error, gpointer user_data) +{ + if (error) { + const char *text = _("Device disconnect failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s: %s", __func__, text, err_text); + utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } +} + +void +applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet) +{ + g_return_if_fail (NM_IS_DEVICE (device)); + + nm_device_disconnect (device, disconnect_cb, NULL); +} + +static void +activate_connection_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Connection activation failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +void +applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data) +{ + AppletItemActivateInfo *info; + NMADeviceClass *dclass; + + g_return_if_fail (NM_IS_DEVICE (device)); + + if (connection) { + /* If the menu item had an associated connection already, just tell + * NM to activate that connection. + */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + specific_object, + activate_connection_cb, + applet); + return; + } + + /* If no connection was given, ask the device class to create a new + * default connection for this device type. This could be a wizard, + * and thus take a while. + */ + + info = g_malloc0 (sizeof (AppletItemActivateInfo)); + info->applet = applet; + info->specific_object = g_strdup (specific_object); + info->device = g_object_ref (device); + + dclass = get_device_class (device, applet); + g_assert (dclass); + if (!dclass->new_auto_connection (device, dclass_data, + applet_menu_item_activate_helper_new_connection, + info)) { + g_warning ("Couldn't create default connection."); + applet_item_activate_info_destroy (info); + } +} + +void +applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos) +{ + GtkWidget *menu_item = gtk_image_menu_item_new (); +#if GTK_CHECK_VERSION(3,1,6) + GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); +#else + GtkWidget *box = gtk_hbox_new (FALSE, 0); +#endif + GtkWidget *xlabel = NULL; + + if (label) { + xlabel = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (xlabel), label); + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2); + } + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + + g_object_set (G_OBJECT (menu_item), + "child", box, + "sensitive", FALSE, + NULL); + if (pos < 0) + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + else + gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, pos); + return; +} + +GtkWidget * +applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active) +{ + GtkWidget *item; + NMSettingConnection *s_con; + char *markup; + GtkWidget *label; + + s_con = nm_connection_get_setting_connection (connection); + item = gtk_image_menu_item_new_with_label (""); + if (add_active && (active == connection)) { + /* Pure evil */ + label = gtk_bin_get_child (GTK_BIN (item)); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + markup = g_markup_printf_escaped ("%s", nm_setting_connection_get_id (s_con)); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + } else + gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); + + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + return item; +} + +#define TITLE_TEXT_R ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_G ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_B ((double) 0x5e / 255.0 ) + +static void +menu_item_draw_generic (GtkWidget *widget, cairo_t *cr) +{ + GtkWidget *label; + PangoFontDescription *desc; + PangoLayout *layout; + int width = 0, height = 0, owidth, oheight; + gdouble extraheight = 0, extrawidth = 0; + const char *text; + gdouble xpadding = 10.0; + gdouble ypadding = 5.0; + gdouble postpadding = 0.0; + + label = gtk_bin_get_child (GTK_BIN (widget)); + text = gtk_label_get_text (GTK_LABEL (label)); + + layout = pango_cairo_create_layout (cr); +#if GTK_CHECK_VERSION(2,20,0) && !GTK_CHECK_VERSION(2,91,6) + { + GtkStyle *style; + style = gtk_widget_get_style (widget); + desc = pango_font_description_copy (style->font_desc); + } +#else + { + GtkStyleContext *style; + style = gtk_widget_get_style_context (widget); + gtk_style_context_get (style, gtk_style_context_get_state (style), + "font", &desc, + NULL); + } +#endif + pango_font_description_set_variant (desc, PANGO_VARIANT_SMALL_CAPS); + pango_font_description_set_weight (desc, PANGO_WEIGHT_SEMIBOLD); + pango_layout_set_font_description (layout, desc); + pango_layout_set_text (layout, text, -1); + pango_cairo_update_layout (cr, layout); + pango_layout_get_size (layout, &owidth, &oheight); + width = owidth / PANGO_SCALE; + height += oheight / PANGO_SCALE; + + cairo_save (cr); + + cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); + cairo_rectangle (cr, 0, 0, + (double) (width + 2 * xpadding), + (double) (height + ypadding + postpadding)); + cairo_fill (cr); + + /* now the in-padding content */ + cairo_translate (cr, xpadding , ypadding); + cairo_set_source_rgb (cr, TITLE_TEXT_R, TITLE_TEXT_G, TITLE_TEXT_B); + cairo_move_to (cr, extrawidth, extraheight); + pango_cairo_show_layout (cr, layout); + + cairo_restore(cr); + + pango_font_description_free (desc); + g_object_unref (layout); + + gtk_widget_set_size_request (widget, width + 2 * xpadding, height + ypadding + postpadding); +} + +#if GTK_CHECK_VERSION(2,90,7) +static gboolean +menu_title_item_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) +{ + menu_item_draw_generic (widget, cr); + return TRUE; +} +#else +static gboolean +menu_title_item_expose (GtkWidget *widget, GdkEventExpose *event) +{ + GtkAllocation allocation; + cairo_t *cr; + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + /* The drawing area we get is the whole menu; clip the drawing to the + * event area, which should just be our menu item. + */ + cairo_rectangle (cr, + event->area.x, event->area.y, + event->area.width, event->area.height); + cairo_clip (cr); + + /* We also need to reposition the cairo context so that (0, 0) is the + * top-left of where we're supposed to start drawing. + */ + gtk_widget_get_allocation (widget, &allocation); + cairo_translate (cr, allocation.x, allocation.y); + + menu_item_draw_generic (widget, cr); + + cairo_destroy (cr); + return TRUE; +} +#endif + +GtkWidget * +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text) +{ + GtkWidget *item; + + item = gtk_menu_item_new_with_mnemonic (text); + gtk_widget_set_sensitive (item, FALSE); +#if GTK_CHECK_VERSION(2,90,7) + g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL); +#else + g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); +#endif + return item; +} + +static void +applet_clear_notify (NMApplet *applet) +{ + if (applet->notification == NULL) + return; + + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + applet->notification = NULL; +} + +static gboolean +applet_notify_server_has_actions (void) +{ + static gboolean has_actions = FALSE; + static gboolean initialized = FALSE; + GList *server_caps, *iter; + + if (initialized) + return has_actions; + initialized = TRUE; + + server_caps = notify_get_server_caps(); + for (iter = server_caps; iter; iter = g_list_next (iter)) { + if (!strcmp ((const char *) iter->data, NOTIFY_CAPS_ACTIONS_KEY)) { + has_actions = TRUE; + break; + } + } + g_list_foreach (server_caps, (GFunc) g_free, NULL); + g_list_free (server_caps); + + return has_actions; +} + +void +applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data) +{ + NotifyNotification *notify; + GError *error = NULL; + char *escaped; + + g_return_if_fail (applet != NULL); + g_return_if_fail (summary != NULL); + g_return_if_fail (message != NULL); + + if (!gtk_status_icon_is_embedded (applet->status_icon)) + return; + + /* if we're not registered, don't notify either */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + return; + + applet_clear_notify (applet); + + escaped = utils_escape_notify_message (message); + notify = notify_notification_new (summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK +#if HAVE_LIBNOTIFY_07 + ); +#else + , NULL); +#endif + g_free (escaped); + applet->notification = notify; + +#if HAVE_LIBNOTIFY_07 + notify_notification_set_hint (notify, "transient", g_variant_new_boolean (TRUE)); +#else + notify_notification_attach_to_status_icon (notify, applet->status_icon); +#endif + notify_notification_set_urgency (notify, urgency); + notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT); + + if (applet_notify_server_has_actions () && action1) { + notify_notification_add_action (notify, action1, action1_label, + action1_cb, action1_user_data, NULL); + } + + if (!notify_notification_show (notify, &error)) { + g_warning ("Failed to show notification: %s", + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + } +} + +static void +notify_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id) + return; + + if ( strcmp (id, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_VPN_NOTIFICATIONS)) + return; + + g_settings_set_boolean (applet->gsettings, id, TRUE); +} + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref) +{ + if (g_settings_get_boolean (applet->gsettings, pref)) + return; + + applet_do_notify (applet, NOTIFY_URGENCY_LOW, summary, message, icon, pref, + _("Don't show this message again"), + notify_dont_show_cb, + applet); +} + +static gboolean +animation_timeout (gpointer data) +{ + applet_schedule_update_icon (NM_APPLET (data)); + return TRUE; +} + +static void +start_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id == 0) { + applet->animation_step = 0; + applet->animation_id = g_timeout_add (100, animation_timeout, applet); + } +} + +static void +clear_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id) { + g_source_remove (applet->animation_id); + applet->animation_id = 0; + applet->animation_step = 0; + } +} + +static gboolean +applet_is_any_device_activating (NMApplet *applet) +{ + const GPtrArray *devices; + int i; + + /* Check for activating devices */ + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = NM_DEVICE (g_ptr_array_index (devices, i)); + NMDeviceState state; + + state = nm_device_get_state (candidate); + if (state > NM_DEVICE_STATE_DISCONNECTED && state < NM_DEVICE_STATE_ACTIVATED) + return TRUE; + } + return FALSE; +} + +static gboolean +applet_is_any_vpn_activating (NMApplet *applet) +{ + const GPtrArray *connections; + int i; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (connections, i)); + NMVPNConnectionState vpn_state; + + if (NM_IS_VPN_CONNECTION (candidate)) { + vpn_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + if ( vpn_state == NM_VPN_CONNECTION_STATE_PREPARE + || vpn_state == NM_VPN_CONNECTION_STATE_NEED_AUTH + || vpn_state == NM_VPN_CONNECTION_STATE_CONNECT + || vpn_state == NM_VPN_CONNECTION_STATE_IP_CONFIG_GET) { + return TRUE; + } + } + } + return FALSE; +} + +static char * +make_vpn_failure_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service stopped unexpectedly."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service returned invalid configuration."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the connection attempt timed out."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service did not start in time."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because there were no valid VPN secrets."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because of invalid VPN secrets."), + nm_setting_connection_get_id (s_con)); + + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' failed."), nm_setting_connection_get_id (s_con)); +} + +static char * +make_vpn_disconnection_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the VPN service stopped."), + nm_setting_connection_get_id (s_con)); + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected."), nm_setting_connection_get_id (s_con)); +} + +static void +vpn_connection_state_changed (NMVPNConnection *vpn, + NMVPNConnectionState state, + NMVPNConnectionStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const char *banner; + char *title = NULL, *msg; + gboolean device_activating, vpn_activating; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (state) { + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections might not have come through yet. + */ + vpn_activating = TRUE; + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + banner = nm_vpn_connection_get_banner (vpn); + if (banner && strlen (banner)) + msg = g_strdup_printf (_("VPN connection has been successfully established.\n\n%s\n"), banner); + else + msg = g_strdup (_("VPN connection has been successfully established.\n")); + + title = _("VPN Login Message"); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_FAILED: + title = _("VPN Connection Failed"); + msg = make_vpn_failure_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_DISCONNECTED: + if (reason != NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED) { + title = _("VPN Connection Failed"); + msg = make_vpn_disconnection_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + } + break; + default: + break; + } + + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); + + applet_schedule_update_icon (applet); +} + +static const char * +get_connection_id (NMConnection *connection) +{ + NMSettingConnection *s_con; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + return nm_setting_connection_get_id (s_con); +} + +typedef struct { + NMApplet *applet; + char *vpn_name; +} VPNActivateInfo; + +static void +activate_vpn_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + VPNActivateInfo *info = (VPNActivateInfo *) user_data; + char *title, *msg, *name; + + if (error) { + clear_animation_timeout (info->applet); + + title = _("VPN Connection Failed"); + + /* dbus-glib GError messages _always_ have two NULLs, the D-Bus error + * name comes after the first NULL. Find it. + */ + name = error->message + strlen (error->message) + 1; + if (strstr (name, "ServiceStartFailed")) { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start.\n\n%s"), + info->vpn_name, error->message); + } else { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed to start.\n\n%s"), + info->vpn_name, error->message); + } + + applet_do_notify_with_pref (info->applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + + g_warning ("VPN Connection activation failed: (%s) %s", name, error->message); + } + + applet_schedule_update_icon (info->applet); + g_free (info->vpn_name); + g_free (info); +} + +static void +nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + VPNActivateInfo *info; + NMConnection *connection; + NMSettingConnection *s_con; + NMActiveConnection *active; + NMDevice *device = NULL; + + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) { + g_warning ("%s: no active connection or device.", __func__); + return; + } + + connection = NM_CONNECTION (g_object_get_data (G_OBJECT (item), "connection")); + if (!connection) { + g_warning ("%s: no connection associated with menu item!", __func__); + return; + } + + if (applet_get_active_for_connection (applet, connection)) + /* Connection already active; do nothing */ + return; + + s_con = nm_connection_get_setting_connection (connection); + info = g_malloc0 (sizeof (VPNActivateInfo)); + info->applet = applet; + info->vpn_name = g_strdup (nm_setting_connection_get_id (s_con)); + + /* Connection inactive, activate */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + nm_object_get_path (NM_OBJECT (active)), + activate_vpn_cb, + info); + start_animation_timeout (applet); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + + +/* + * nma_menu_configure_vpn_item_activate + * + * Signal function called when user clicks "Configure VPN..." + * + */ +static void +nma_menu_configure_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + const char *argv[] = { BINDIR "/nm-connection-editor", "--show", "--type", NM_SETTING_VPN_SETTING_NAME, NULL}; + + g_spawn_async (NULL, (gchar **) argv, NULL, 0, NULL, NULL, NULL, NULL); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static NMActiveConnection * +applet_get_first_active_vpn_connection (NMApplet *applet, + NMVPNConnectionState *out_state) +{ + const GPtrArray *active_list; + int i; + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate; + NMConnection *connection; + NMSettingConnection *s_con; + + candidate = g_ptr_array_index (active_list, i); + + connection = applet_get_connection_for_active (applet, candidate); + if (!connection) + continue; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + if (out_state) + *out_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + return candidate; + } + } + + return NULL; +} + +/* + * nma_menu_disconnect_vpn_item_activate + * + * Signal function called when user clicks "Disconnect VPN" + * + */ +static void +nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMActiveConnection *active_vpn = NULL; + NMVPNConnectionState state = NM_VPN_CONNECTION_STATE_UNKNOWN; + + active_vpn = applet_get_first_active_vpn_connection (applet, &state); + if (active_vpn) + nm_client_deactivate_connection (applet->nm_client, active_vpn); + else + g_warning ("%s: deactivate clicked but no active VPN connection could be found.", __func__); +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +/* + * nma_menu_add_separator_item + * + */ +static void +nma_menu_add_separator_item (GtkWidget *menu) +{ + GtkWidget *menu_item; + + menu_item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + + +/* + * nma_menu_add_text_item + * + * Add a non-clickable text item to a menu + * + */ +static void nma_menu_add_text_item (GtkWidget *menu, char *text) +{ + GtkWidget *menu_item; + + g_return_if_fail (text != NULL); + g_return_if_fail (menu != NULL); + + menu_item = gtk_menu_item_new_with_label (text); + gtk_widget_set_sensitive (menu_item, FALSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + +static gint +sort_devices (gconstpointer a, gconstpointer b) +{ + NMDevice *aa = NM_DEVICE (a); + NMDevice *bb = NM_DEVICE (b); + GType aa_type = G_OBJECT_TYPE (G_OBJECT (aa)); + GType bb_type = G_OBJECT_TYPE (G_OBJECT (bb)); + + if (aa_type == bb_type) { + const char *aa_desc = NULL; + const char *bb_desc = NULL; + + aa_desc = nma_utils_get_device_description (aa); + bb_desc = nma_utils_get_device_description (bb); + + return g_strcmp0 (aa_desc, bb_desc); + } + + /* Ethernet always first */ + if (aa_type == NM_TYPE_DEVICE_ETHERNET) + return -1; + if (bb_type == NM_TYPE_DEVICE_ETHERNET) + return 1; + + /* Modems next */ + if (aa_type == NM_TYPE_DEVICE_MODEM) + return -1; + if (bb_type == NM_TYPE_DEVICE_MODEM) + return 1; + + /* Bluetooth next */ + if (aa_type == NM_TYPE_DEVICE_BT) + return -1; + if (bb_type == NM_TYPE_DEVICE_BT) + return 1; + + /* WiMAX next */ + if (aa_type == NM_TYPE_DEVICE_WIMAX) + return -1; + if (bb_type == NM_TYPE_DEVICE_WIMAX) + return 1; + + /* WiFi last because it has many menu items */ + return 1; +} + +static gboolean +nm_g_ptr_array_contains (const GPtrArray *haystack, gpointer needle) +{ + int i; + + for (i = 0; haystack && (i < haystack->len); i++) { + if (g_ptr_array_index (haystack, i) == needle) + return TRUE; + } + return FALSE; +} + +NMConnection * +applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active) +{ + const GPtrArray *active_connections; + NMConnection *connection = NULL; + int i; + + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + if (out_active) + g_return_val_if_fail (*out_active == NULL, NULL); + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMRemoteConnection *tmp; + NMActiveConnection *active; + const char *connection_path; + const GPtrArray *devices; + + active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_connections, i)); + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + tmp = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (tmp) { + connection = NM_CONNECTION (tmp); + if (out_active) + *out_active = active; + break; + } + } + + return connection; +} + +gboolean +nma_menu_device_check_unusable (NMDevice *device) +{ + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + case NM_DEVICE_STATE_UNMANAGED: + return TRUE; + default: + break; + } + return FALSE; +} + + +struct AppletDeviceMenuInfo { + NMDevice *device; + NMApplet *applet; +}; + +static void +applet_device_info_destroy (struct AppletDeviceMenuInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + memset (info, 0, sizeof (struct AppletDeviceMenuInfo)); + g_free (info); +} + +static void +applet_device_disconnect_db (GtkMenuItem *item, gpointer user_data) +{ + struct AppletDeviceMenuInfo *info = user_data; + + applet_menu_item_disconnect_helper (info->device, + info->applet); +} + +GtkWidget * +nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg) +{ + GtkWidget *item = NULL; + gboolean managed = TRUE; + + if (!unavailable_msg) { + if (nm_device_get_firmware_missing (device)) + unavailable_msg = _("device not ready (firmware missing)"); + else + unavailable_msg = _("device not ready"); + } + + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_DISCONNECTED: + unavailable_msg = _("disconnected"); + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_UNMANAGED: + managed = FALSE; + break; + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + case NM_DEVICE_STATE_ACTIVATED: + { + struct AppletDeviceMenuInfo *info = g_new0 (struct AppletDeviceMenuInfo, 1); + info->device = g_object_ref (device); + info->applet = applet; + item = gtk_menu_item_new_with_label (_("Disconnect")); + g_signal_connect_data (item, "activate", + G_CALLBACK (applet_device_disconnect_db), + info, + (GClosureNotify) applet_device_info_destroy, 0); + gtk_widget_set_sensitive (item, TRUE); + break; + } + default: + managed = nm_device_get_managed (device); + break; + } + + if (!managed) { + item = gtk_menu_item_new_with_label (_("device not managed")); + gtk_widget_set_sensitive (item, FALSE); + } + + return item; +} + +static guint32 +nma_menu_add_devices (GtkWidget *menu, NMApplet *applet) +{ + const GPtrArray *temp = NULL; + GSList *devices = NULL, *iter = NULL; + gint n_wifi_devices = 0; + gint n_usable_wifi_devices = 0; + gint n_ethernet_devices = 0; + gint n_mb_devices = 0; + gint n_bt_devices = 0; + int i; + + temp = nm_client_get_devices (applet->nm_client); + for (i = 0; temp && (i < temp->len); i++) + devices = g_slist_insert_sorted (devices, g_ptr_array_index (temp, i), sort_devices); + + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) { + n_wifi_devices++; + if ( nm_client_wireless_get_enabled (applet->nm_client) + && (nm_device_get_state (device) >= NM_DEVICE_STATE_DISCONNECTED)) + n_usable_wifi_devices++; + } else if (NM_IS_DEVICE_ETHERNET (device)) + n_ethernet_devices++; + else if (NM_IS_DEVICE_MODEM (device)) + n_mb_devices++; + else if (NM_IS_DEVICE_BT (device)) + n_bt_devices++; + } + + if (!n_ethernet_devices && !n_wifi_devices && !n_mb_devices && !n_bt_devices) { + nma_menu_add_text_item (menu, _("No network devices available")); + goto out; + } + + /* Add all devices in our device list to the menu */ + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + gint n_devices = 0; + NMADeviceClass *dclass; + NMConnection *active; + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) + n_devices = n_wifi_devices; + else if (NM_IS_DEVICE_ETHERNET (device)) + n_devices = n_ethernet_devices; + else if (NM_IS_DEVICE_MODEM (device)) + n_devices = n_mb_devices; + + active = applet_find_active_connection_for_device (device, applet, NULL); + + dclass = get_device_class (device, applet); + if (dclass) + dclass->add_menu_item (device, n_devices, active, menu, applet); + } + + out: + g_slist_free (devices); + + /* Return # of usable wifi devices here for correct enable/disable state + * of things like Enable Wi-Fi, "Connect to other..." and such. + */ + return n_usable_wifi_devices; +} + +static int +sort_vpn_connections (gconstpointer a, gconstpointer b) +{ + return strcmp (get_connection_id (NM_CONNECTION (a)), get_connection_id (NM_CONNECTION (b))); +} + +static GSList * +get_vpn_connections (NMApplet *applet) +{ + GSList *all_connections; + GSList *iter; + GSList *list = NULL; + + all_connections = applet_get_all_connections (applet); + + for (iter = all_connections; iter; iter = iter->next) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) + /* Not a VPN connection */ + continue; + + if (!nm_connection_get_setting_vpn (connection)) { + g_warning ("%s: VPN connection '%s' didn't have required vpn setting.", __func__, + nm_setting_connection_get_id (s_con)); + continue; + } + + list = g_slist_prepend (list, connection); + } + + g_slist_free (all_connections); + + return g_slist_sort (list, sort_vpn_connections); +} + +static void +nma_menu_add_vpn_submenu (GtkWidget *menu, NMApplet *applet) +{ + GtkMenu *vpn_menu; + GtkMenuItem *item; + GSList *list, *iter; + int num_vpn_active = 0; + + nma_menu_add_separator_item (menu); + + vpn_menu = GTK_MENU (gtk_menu_new ()); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_VPN Connections"))); + gtk_menu_item_set_submenu (item, GTK_WIDGET (vpn_menu)); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + + list = get_vpn_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (applet_get_active_for_connection (applet, connection)) + num_vpn_active++; + } + + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMActiveConnection *active; + const char *name; + GtkWidget *image; + NMState state; + + name = get_connection_id (connection); + + item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); + gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + + /* If no VPN connections are active, draw all menu items enabled. If + * >= 1 VPN connections are active, only the active VPN menu item is + * drawn enabled. + */ + active = applet_get_active_for_connection (applet, connection); + + state = nm_client_get_state (applet->nm_client); + if ( state != NM_STATE_CONNECTED_LOCAL + && state != NM_STATE_CONNECTED_SITE + && state != NM_STATE_CONNECTED_GLOBAL) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + else if ((num_vpn_active == 0) || active) + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + else + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + if (active) { + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + } + + g_object_set_data_full (G_OBJECT (item), "connection", + g_object_ref (connection), + (GDestroyNotify) g_object_unref); + + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_vpn_item_clicked), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } + + /* Draw a seperator, but only if we have VPN connections above it */ + if (list) + nma_menu_add_separator_item (GTK_WIDGET (vpn_menu)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Configure VPN..."))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_configure_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Disconnect VPN"))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_disconnect_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + if (num_vpn_active == 0) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + g_slist_free (list); +} + + +static void +nma_set_wifi_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wireless_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wwan_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wwan_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wimax_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wimax_set_enabled (applet->nm_client, state); +} + +static void +nma_set_networking_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_networking_set_enabled (applet->nm_client, state); +} + + +static void +nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_CONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_VPN_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + !state); +} + +/* + * nma_menu_show_cb + * + * Pop up the wifi networks menu + * + */ +static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet) +{ + guint32 n_wifi; + + g_return_if_fail (menu != NULL); + g_return_if_fail (applet != NULL); + + gtk_status_icon_set_tooltip_text (applet->status_icon, NULL); + + if (!nm_client_get_manager_running (applet->nm_client)) { + nma_menu_add_text_item (menu, _("NetworkManager is not running...")); + return; + } + + if (nm_client_get_state (applet->nm_client) == NM_STATE_ASLEEP) { + nma_menu_add_text_item (menu, _("Networking disabled")); + return; + } + + n_wifi = nma_menu_add_devices (menu, applet); + + nma_menu_add_vpn_submenu (menu, applet); + + if (n_wifi > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { + /* Add the "Hidden Wi-Fi network..." entry */ + nma_menu_add_separator_item (menu); + nma_menu_add_hidden_network_item (menu, applet); + nma_menu_add_create_network_item (menu, applet); + } + + gtk_widget_show_all (menu); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static gboolean +destroy_old_menu (gpointer user_data) +{ + g_object_unref (user_data); + return FALSE; +} + +static void +nma_menu_deactivate_cb (GtkWidget *widget, NMApplet *applet) +{ + /* Must punt the destroy to a low-priority idle to ensure that + * the menu items don't get destroyed before any 'activate' signal + * fires for an item. + */ + g_signal_handlers_disconnect_by_func (applet->menu, G_CALLBACK (nma_menu_deactivate_cb), applet); + g_idle_add_full (G_PRIORITY_LOW, destroy_old_menu, applet->menu, NULL); + applet->menu = NULL; + + /* Re-set the tooltip */ + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +} + +static gboolean +is_permission_yes (NMApplet *applet, NMClientPermission perm) +{ + if ( applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_YES + || applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_AUTH) + return TRUE; + return FALSE; +} + +/* + * nma_context_menu_update + * + */ +static void +nma_context_menu_update (NMApplet *applet) +{ + NMState state; + gboolean net_enabled = TRUE; + gboolean have_wifi = FALSE; + gboolean have_wwan = FALSE; + gboolean have_wimax = FALSE; + gboolean wifi_hw_enabled; + gboolean wwan_hw_enabled; + gboolean wimax_hw_enabled; + gboolean notifications_enabled = TRUE; + gboolean sensitive = FALSE; + + state = nm_client_get_state (applet->nm_client); + sensitive = ( state == NM_STATE_CONNECTED_LOCAL + || state == NM_STATE_CONNECTED_SITE + || state == NM_STATE_CONNECTED_GLOBAL); + gtk_widget_set_sensitive (applet->info_menu_item, sensitive); + + /* Update checkboxes, and block 'toggled' signal when updating so that the + * callback doesn't get triggered. + */ + + /* Enabled Networking */ + g_signal_handler_block (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + net_enabled = nm_client_networking_get_enabled (applet->nm_client); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->networking_enabled_item), + net_enabled && (state != NM_STATE_ASLEEP)); + g_signal_handler_unblock (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + gtk_widget_set_sensitive (applet->networking_enabled_item, + is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK)); + + /* Enabled Wi-Fi */ + g_signal_handler_block (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wifi_enabled_item), + nm_client_wireless_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wifi_enabled_item), + wifi_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI)); + + /* Enabled Mobile Broadband */ + g_signal_handler_block (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wwan_enabled_item), + nm_client_wwan_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + + wwan_hw_enabled = nm_client_wwan_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wwan_enabled_item), + wwan_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN)); + + /* Enable WiMAX */ + g_signal_handler_block (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wimax_enabled_item), + nm_client_wimax_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + + wimax_hw_enabled = nm_client_wimax_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), + wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); + + /* Enabled notifications */ + g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + if ( g_settings_get_boolean (applet->gsettings, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_VPN_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + notifications_enabled = FALSE; + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); + g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + + /* Don't show wifi-specific stuff if wifi is off */ + if (state != NM_STATE_ASLEEP) { + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = g_ptr_array_index (devices, i); + + if (NM_IS_DEVICE_WIFI (candidate)) + have_wifi = TRUE; + else if (NM_IS_DEVICE_MODEM (candidate)) + have_wwan = TRUE; + else if (NM_IS_DEVICE_WIMAX (candidate)) + have_wimax = TRUE; + } + } + + if (have_wifi) + gtk_widget_show_all (applet->wifi_enabled_item); + else + gtk_widget_hide (applet->wifi_enabled_item); + + if (have_wwan) + gtk_widget_show_all (applet->wwan_enabled_item); + else + gtk_widget_hide (applet->wwan_enabled_item); + + if (have_wimax) + gtk_widget_show_all (applet->wimax_enabled_item); + else + gtk_widget_hide (applet->wimax_enabled_item); +} + +static void +ce_child_setup (gpointer user_data G_GNUC_UNUSED) +{ + /* We are in the child process at this point */ + pid_t pid = getpid (); + setpgid (pid, pid); +} + +static void +nma_edit_connections_cb (GtkMenuItem *mi, NMApplet *applet) +{ + char *argv[2]; + GError *error = NULL; + gboolean success; + + argv[0] = BINDIR "/nm-connection-editor"; + argv[1] = NULL; + + success = g_spawn_async ("/", argv, NULL, 0, &ce_child_setup, NULL, NULL, &error); + if (!success) { + g_warning ("Error launching connection editor: %s", error->message); + g_error_free (error); + } +} + +static void +applet_connection_info_cb (NMApplet *applet) +{ + applet_info_dialog_show (applet); +} + +/* + * nma_context_menu_create + * + * Generate the contextual popup menu. + * + */ +static GtkWidget *nma_context_menu_create (NMApplet *applet) +{ + GtkMenuShell *menu; + GtkWidget *menu_item; + GtkWidget *image; + guint id; + + g_return_val_if_fail (applet != NULL, NULL); + + menu = GTK_MENU_SHELL (gtk_menu_new ()); + + /* 'Enable Networking' item */ + applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); + id = g_signal_connect (applet->networking_enabled_item, + "toggled", + G_CALLBACK (nma_set_networking_enabled_cb), + applet); + applet->networking_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->networking_enabled_item); + + /* 'Enable Wi-Fi' item */ + applet->wifi_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Wi-Fi")); + id = g_signal_connect (applet->wifi_enabled_item, + "toggled", + G_CALLBACK (nma_set_wifi_enabled_cb), + applet); + applet->wifi_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wifi_enabled_item); + + /* 'Enable Mobile Broadband' item */ + applet->wwan_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Mobile Broadband")); + id = g_signal_connect (applet->wwan_enabled_item, + "toggled", + G_CALLBACK (nma_set_wwan_enabled_cb), + applet); + applet->wwan_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wwan_enabled_item); + + /* 'Enable WiMAX Mobile Broadband' item */ + applet->wimax_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable WiMA_X Mobile Broadband")); + id = g_signal_connect (applet->wimax_enabled_item, + "toggled", + G_CALLBACK (nma_set_wimax_enabled_cb), + applet); + applet->wimax_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wimax_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* Toggle notifications item */ + applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); + id = g_signal_connect (applet->notifications_enabled_item, + "toggled", + G_CALLBACK (nma_set_notifications_enabled_cb), + applet); + applet->notifications_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->notifications_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* 'Connection Information' item */ + applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); + g_signal_connect_swapped (applet->info_menu_item, + "activate", + G_CALLBACK (applet_connection_info_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->info_menu_item), image); + gtk_menu_shell_append (menu, applet->info_menu_item); + + /* 'Edit Connections...' item */ + applet->connections_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Edit Connections...")); + g_signal_connect (applet->connections_menu_item, + "activate", + G_CALLBACK (nma_edit_connections_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); + gtk_menu_shell_append (menu, applet->connections_menu_item); + + /* Separator */ + nma_menu_add_separator_item (GTK_WIDGET (menu)); + +#if 0 /* FIXME: Implement the help callback, nma_help_cb()! */ + /* Help item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Help")); + g_signal_connect (menu_item, "activate", G_CALLBACK (nma_help_cb), applet); + image = gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); +#endif + + /* About item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_About")); + g_signal_connect_swapped (menu_item, "activate", G_CALLBACK (applet_about_dialog_show), applet); + image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + + gtk_widget_show_all (GTK_WIDGET (menu)); + + return GTK_WIDGET (menu); +} + + +/*****************************************************************************/ + +static void +foo_set_icon (NMApplet *applet, GdkPixbuf *pixbuf, guint32 layer) +{ + int i; + + if (layer > ICON_LAYER_MAX) { + g_warning ("Tried to icon to invalid layer %d", layer); + return; + } + + /* Ignore setting of the same icon as is already displayed */ + if (applet->icon_layers[layer] == pixbuf) + return; + + if (applet->icon_layers[layer]) { + g_object_unref (applet->icon_layers[layer]); + applet->icon_layers[layer] = NULL; + } + + if (pixbuf) + applet->icon_layers[layer] = g_object_ref (pixbuf); + + if (!applet->icon_layers[0]) { + nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + pixbuf = g_object_ref (applet->no_connection_icon); + } else { + pixbuf = gdk_pixbuf_copy (applet->icon_layers[0]); + + for (i = ICON_LAYER_LINK + 1; i <= ICON_LAYER_MAX; i++) { + GdkPixbuf *top = applet->icon_layers[i]; + + if (!top) + continue; + + gdk_pixbuf_composite (top, pixbuf, 0, 0, gdk_pixbuf_get_width (top), + gdk_pixbuf_get_height (top), + 0, 0, 1.0, 1.0, + GDK_INTERP_NEAREST, 255); + } + } + + gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); + g_object_unref (pixbuf); +} + + +NMRemoteConnection * +applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) +{ + const GPtrArray *active_connections; + int i; + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMActiveConnection *active; + NMRemoteConnection *connection; + const char *connection_path; + const GPtrArray *devices; + + active = g_ptr_array_index (active_connections, i); + if (!active) + continue; + + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + connection = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (connection) + return connection; + } + return NULL; +} + +static void +applet_common_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + gboolean device_activating = FALSE, vpn_activating = FALSE; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (new_state) { + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections or devices might not have come through yet. + */ + device_activating = TRUE; + break; + case NM_DEVICE_STATE_ACTIVATED: + default: + break; + } + + /* If there's an activating device but we're not animating, start animation. + * If we're animating, but there's no activating device or VPN, stop animating. + */ + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); +} + +static void +foo_device_state_changed_cb (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + g_assert (dclass); + + dclass->device_state_changed (device, new_state, old_state, reason, applet); + applet_common_device_state_changed (device, new_state, old_state, reason, applet); + + applet_schedule_update_icon (applet); +} + +static void +foo_device_added_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + if (!dclass) + return; + + if (dclass->device_added) + dclass->device_added (device, applet); + + g_signal_connect (device, "state-changed", + G_CALLBACK (foo_device_state_changed_cb), + user_data); + + foo_device_state_changed_cb (device, + nm_device_get_state (device), + NM_DEVICE_STATE_UNKNOWN, + NM_DEVICE_STATE_REASON_NONE, + applet); +} + +static void +foo_client_state_changed_cb (NMClient *client, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + switch (nm_client_get_state (client)) { + case NM_STATE_DISCONNECTED: + applet_do_notify_with_pref (applet, _("Disconnected"), + _("The network connection has been disconnected."), + "nm-no-connection", + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS); + /* Fall through */ + default: + break; + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_running_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (nm_client_get_manager_running (client)) { + g_message ("NM appeared"); + } else { + g_message ("NM disappeared"); + clear_animation_timeout (applet); + } + + applet_schedule_update_icon (applet); +} + +#define VPN_STATE_ID_TAG "vpn-state-id" + +static void +foo_active_connections_changed_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const GPtrArray *active_list; + int i; + + /* Track the state of new VPN connections */ + active_list = nm_client_get_active_connections (client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + guint id; + + if ( !NM_IS_VPN_CONNECTION (candidate) + || g_object_get_data (G_OBJECT (candidate), VPN_STATE_ID_TAG)) + continue; + + id = g_signal_connect (G_OBJECT (candidate), "vpn-state-changed", + G_CALLBACK (vpn_connection_state_changed), applet); + g_object_set_data (G_OBJECT (candidate), VPN_STATE_ID_TAG, GUINT_TO_POINTER (id)); + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_permission_changed (NMClient *client, + NMClientPermission permission, + NMClientPermissionResult result, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (permission <= NM_CLIENT_PERMISSION_LAST) + applet->permissions[permission] = result; +} + +static gboolean +foo_set_initial_state (gpointer data) +{ + NMApplet *applet = NM_APPLET (data); + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) + foo_device_added_cb (applet->nm_client, NM_DEVICE (g_ptr_array_index (devices, i)), applet); + + foo_active_connections_changed_cb (applet->nm_client, NULL, applet); + + applet_schedule_update_icon (applet); + + return FALSE; +} + +static void +foo_client_setup (NMApplet *applet) +{ + NMClientPermission perm; + + applet->nm_client = nm_client_new (); + if (!applet->nm_client) + return; + + g_signal_connect (applet->nm_client, "notify::state", + G_CALLBACK (foo_client_state_changed_cb), + applet); + g_signal_connect (applet->nm_client, "notify::active-connections", + G_CALLBACK (foo_active_connections_changed_cb), + applet); + g_signal_connect (applet->nm_client, "device-added", + G_CALLBACK (foo_device_added_cb), + applet); + g_signal_connect (applet->nm_client, "notify::manager-running", + G_CALLBACK (foo_manager_running_cb), + applet); + + g_signal_connect (applet->nm_client, "permission-changed", + G_CALLBACK (foo_manager_permission_changed), + applet); + + /* Initialize permissions - the initial 'permission-changed' signal is emitted from NMClient constructor, and thus not caught */ + for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { + applet->permissions[perm] = nm_client_get_permission_result (applet->nm_client, perm); + } + + if (nm_client_get_manager_running (applet->nm_client)) + g_idle_add (foo_set_initial_state, applet); + + applet_schedule_update_icon (applet); +} + +static GdkPixbuf * +applet_common_get_device_icon (NMDeviceState state, NMApplet *applet) +{ + GdkPixbuf *pixbuf = NULL; + int stage = -1; + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + stage = 0; + break; + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + stage = 1; + break; + case NM_DEVICE_STATE_IP_CONFIG: + stage = 2; + break; + default: + break; + } + + if (stage >= 0) { + int i, j; + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { + char *name; + + name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); + nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); + g_free (name); + } + } + + pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_CONNECTING_FRAMES) + applet->animation_step = 0; + } + + return pixbuf; +} + +static char * +get_tip_for_device_state (NMDevice *device, + NMDeviceState state, + NMConnection *connection) +{ + NMSettingConnection *s_con; + char *tip = NULL; + const char *id = NULL; + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + tip = g_strdup_printf (_("Preparing network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + tip = g_strdup_printf (_("Network connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static GdkPixbuf * +applet_get_device_icon_for_state (NMApplet *applet, char **tip) +{ + NMActiveConnection *active; + NMDevice *device = NULL; + GdkPixbuf *pixbuf = NULL; + NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; + NMADeviceClass *dclass; + + // FIXME: handle multiple device states here + + /* First show the best activating device's state */ + active = applet_get_best_activating_connection (applet, &device); + if (!active || !device) { + /* If there aren't any activating devices, then show the state of + * the default active connection instead. + */ + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) + goto out; + } + + state = nm_device_get_state (device); + + dclass = get_device_class (device, applet); + if (dclass) { + NMConnection *connection; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + /* device class returns a referenced pixbuf */ + pixbuf = dclass->get_icon (device, state, connection, tip, applet); + if (!*tip) + *tip = get_tip_for_device_state (device, state, connection); + } + +out: + if (!pixbuf) { + pixbuf = applet_common_get_device_icon (state, applet); + /* reference the pixbuf to match the device class' get_icon() function behavior */ + if (pixbuf) + g_object_ref (pixbuf); + } + return pixbuf; +} + +static char * +get_tip_for_vpn (NMActiveConnection *active, NMVPNConnectionState state, NMApplet *applet) +{ + char *tip = NULL; + const char *path, *id = NULL; + GSList *iter, *list; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + if (!strcmp (nm_connection_get_path (candidate), path)) { + s_con = nm_connection_get_setting_connection (candidate); + id = nm_setting_connection_get_id (s_con); + break; + } + } + g_slist_free (list); + + if (!id) + return NULL; + + switch (state) { + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_PREPARE: + tip = g_strdup_printf (_("Starting VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + tip = g_strdup_printf (_("Requesting a VPN address for '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + tip = g_strdup_printf (_("VPN connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static gboolean +applet_update_icon (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GdkPixbuf *pixbuf = NULL; + NMState state; + char *dev_tip = NULL, *vpn_tip = NULL; + NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; + gboolean nm_running; + NMActiveConnection *active_vpn = NULL; + + applet->update_icon_id = 0; + + nm_running = nm_client_get_manager_running (applet->nm_client); + + /* Handle device state first */ + + state = nm_client_get_state (applet->nm_client); + if (!nm_running) + state = NM_STATE_UNKNOWN; + + switch (state) { + case NM_STATE_UNKNOWN: + case NM_STATE_ASLEEP: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("Networking disabled")); + break; + case NM_STATE_DISCONNECTED: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("No network connection")); + break; + default: + pixbuf = applet_get_device_icon_for_state (applet, &dev_tip); + break; + } + + foo_set_icon (applet, pixbuf, ICON_LAYER_LINK); + if (pixbuf) + g_object_unref (pixbuf); + + /* VPN state next */ + pixbuf = NULL; + active_vpn = applet_get_first_active_vpn_connection (applet, &vpn_state); + if (active_vpn) { + int i; + + switch (vpn_state) { + case NM_VPN_CONNECTION_STATE_ACTIVATED: + pixbuf = nma_icon_check_and_load ("nm-vpn-active-lock", &applet->vpn_lock_icon, applet); + break; + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) { + char *name; + + name = g_strdup_printf ("nm-vpn-connecting%02d", i+1); + nma_icon_check_and_load (name, &applet->vpn_connecting_icons[i], applet); + g_free (name); + } + + pixbuf = applet->vpn_connecting_icons[applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) + applet->animation_step = 0; + break; + default: + break; + } + + vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); + } + foo_set_icon (applet, pixbuf, ICON_LAYER_VPN); + + g_free (applet->tip); + applet->tip = NULL; + + if (dev_tip || vpn_tip) { + GString *tip; + + tip = g_string_new (dev_tip); + + if (vpn_tip) + g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", vpn_tip); + + if (tip->len) + applet->tip = tip->str; + + g_free (vpn_tip); + g_free (dev_tip); + g_string_free (tip, FALSE); + } + + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); + + return FALSE; +} + +void +applet_schedule_update_icon (NMApplet *applet) +{ + if (!applet->update_icon_id) + applet->update_icon_id = g_idle_add (applet_update_icon, applet); +} + +/*****************************************************************************/ + +static SecretsRequest * +applet_secrets_request_new (size_t totsize, + NMConnection *connection, + gpointer request_id, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + NMApplet *applet) +{ + SecretsRequest *req; + + g_return_val_if_fail (totsize >= sizeof (SecretsRequest), NULL); + g_return_val_if_fail (connection != NULL, NULL); + + req = g_malloc0 (totsize); + req->totsize = totsize; + req->connection = g_object_ref (connection); + req->reqid = request_id; + req->setting_name = g_strdup (setting_name); + req->hints = g_strdupv ((char **) hints); + req->flags = flags; + req->callback = callback; + req->callback_data = callback_data; + req->applet = applet; + return req; +} + +void +applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func) +{ + req->free_func = free_func; +} + +void +applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error) +{ + req->callback (req->applet->agent, error ? NULL : settings, error, req->callback_data); +} + +void +applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error) +{ + NMSetting *setting; + GHashTable *settings = NULL, *secrets; + + if (setting_name && !error) { + setting = nm_connection_get_setting_by_name (req->connection, setting_name); + if (setting) { + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, g_strdup (setting_name), secrets); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, setting_name); + } + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled setting '%s'", + __FILE__, __LINE__, __func__, setting_name); + } + } + + req->callback (req->applet->agent, settings, error, req->callback_data); +} + +void +applet_secrets_request_free (SecretsRequest *req) +{ + g_return_if_fail (req != NULL); + + if (req->free_func) + req->free_func (req); + + req->applet->secrets_reqs = g_slist_remove (req->applet->secrets_reqs, req); + + g_object_unref (req->connection); + g_free (req->setting_name); + g_strfreev (req->hints); + memset (req, 0, req->totsize); + g_free (req); +} + +static void +get_existing_secrets_cb (NMSecretAgent *agent, + NMConnection *connection, + GHashTable *secrets, + GError *secrets_error, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMADeviceClass *dclass; + GError *error = NULL; + + /* Merge existing secrets into connection; ignore errors */ + nm_connection_update_secrets (connection, req->setting_name, secrets, NULL); + + dclass = get_device_class_from_connection (connection, req->applet); + g_assert (dclass); + + /* Let the device class handle secrets */ + if (!dclass->get_secrets (req, &error)) { + g_warning ("%s:%d - %s", __func__, __LINE__, error ? error->message : "(unknown)"); + applet_secrets_request_complete (req, NULL, error); + applet_secrets_request_free (req); + g_error_free (error); + } + /* Otherwise success; wait for the secrets callback */ +} + +static void +applet_agent_get_secrets_cb (AppletAgent *agent, + gpointer request_id, + NMConnection *connection, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMSettingConnection *s_con; + NMADeviceClass *dclass; + GError *error = NULL; + SecretsRequest *req = NULL; + + s_con = nm_connection_get_setting_connection (connection); + g_return_if_fail (s_con != NULL); + + /* VPN secrets get handled a bit differently */ + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + req = applet_secrets_request_new (applet_vpn_request_get_secrets_size (), + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + if (!applet_vpn_request_get_secrets (req, &error)) + goto error; + + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + return; + } + + dclass = get_device_class_from_connection (connection, applet); + if (!dclass) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): device type unknown", + __FILE__, __LINE__, __func__); + goto error; + } + + if (!dclass->get_secrets) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NO_SECRETS, + "%s.%d (%s): no secrets found", + __FILE__, __LINE__, __func__); + goto error; + } + + g_assert (dclass->secrets_request_size); + req = applet_secrets_request_new (dclass->secrets_request_size, + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + + /* Get existing secrets, if any */ + nm_secret_agent_get_secrets (NM_SECRET_AGENT (applet->agent), + connection, + setting_name, + hints, + NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE, + get_existing_secrets_cb, + req); + return; + +error: + g_warning ("%s", error->message); + callback (agent, NULL, error, callback_data); + g_error_free (error); + + if (req) + applet_secrets_request_free (req); +} + +static void +applet_agent_cancel_secrets_cb (AppletAgent *agent, + gpointer request_id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GSList *iter; + + for (iter = applet->secrets_reqs; iter; iter = g_slist_next (iter)) { + SecretsRequest *req = iter->data; + + if (req->reqid == request_id) { + /* cancel and free this password request */ + applet_secrets_request_free (req); + } + } +} + +static void +applet_agent_registered_cb (AppletAgent *agent, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + /* If the shell is running and the agent just got registered, unregister it */ + if ( (nm_shell_watcher_version_at_least (applet->shell_watcher, 3, 4)) + && nm_secret_agent_get_registered (NM_SECRET_AGENT (agent))) { + g_message ("Stopping registered applet secret agent because GNOME Shell is running"); + nm_secret_agent_unregister (NM_SECRET_AGENT (agent)); + } +} + +/*****************************************************************************/ + +static void +nma_clear_icon (GdkPixbuf **icon, NMApplet *applet) +{ + g_return_if_fail (icon != NULL); + g_return_if_fail (applet != NULL); + + if (*icon && (*icon != applet->fallback_icon)) { + g_object_unref (*icon); + *icon = NULL; + } +} + +static void nma_icons_free (NMApplet *applet) +{ + int i, j; + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); + + nma_clear_icon (&applet->no_connection_icon, applet); + nma_clear_icon (&applet->ethernet_icon, applet); + nma_clear_icon (&applet->adhoc_icon, applet); + nma_clear_icon (&applet->wwan_icon, applet); + nma_clear_icon (&applet->wwan_tower_icon, applet); + nma_clear_icon (&applet->vpn_lock_icon, applet); + nma_clear_icon (&applet->wifi_00_icon, applet); + nma_clear_icon (&applet->wifi_25_icon, applet); + nma_clear_icon (&applet->wifi_50_icon, applet); + nma_clear_icon (&applet->wifi_75_icon, applet); + nma_clear_icon (&applet->wifi_100_icon, applet); + nma_clear_icon (&applet->secure_lock_icon, applet); + + nma_clear_icon (&applet->mb_tech_1x_icon, applet); + nma_clear_icon (&applet->mb_tech_evdo_icon, applet); + nma_clear_icon (&applet->mb_tech_gprs_icon, applet); + nma_clear_icon (&applet->mb_tech_edge_icon, applet); + nma_clear_icon (&applet->mb_tech_umts_icon, applet); + nma_clear_icon (&applet->mb_tech_hspa_icon, applet); + nma_clear_icon (&applet->mb_tech_lte_icon, applet); + nma_clear_icon (&applet->mb_roaming_icon, applet); + nma_clear_icon (&applet->mb_tech_3g_icon, applet); + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) + nma_clear_icon (&applet->network_connecting_icons[i][j], applet); + } + + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) + nma_clear_icon (&applet->vpn_connecting_icons[i], applet); + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); +} + +GdkPixbuf * +nma_icon_check_and_load (const char *name, GdkPixbuf **icon, NMApplet *applet) +{ + GError *error = NULL; + + g_return_val_if_fail (name != NULL, NULL); + g_return_val_if_fail (icon != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + /* icon already loaded successfully */ + if (*icon && (*icon != applet->fallback_icon)) + return *icon; + + /* Try to load the icon; if the load fails, log the problem, and set + * the icon to the fallback icon if requested. + */ + *icon = gtk_icon_theme_load_icon (applet->icon_theme, name, applet->icon_size, 0, &error); + if (!*icon) { + g_warning ("Icon %s missing: (%d) %s", + name, + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + + *icon = applet->fallback_icon; + } + return *icon; +} + +#include "fallback-icon.h" + +static gboolean +nma_icons_reload (NMApplet *applet) +{ + GError *error = NULL; + GdkPixbufLoader *loader; + + g_return_val_if_fail (applet->icon_size > 0, FALSE); + + nma_icons_free (applet); + + loader = gdk_pixbuf_loader_new_with_type ("png", &error); + if (!loader) + goto error; + + if (!gdk_pixbuf_loader_write (loader, + fallback_icon_data, + sizeof (fallback_icon_data), + &error)) + goto error; + + if (!gdk_pixbuf_loader_close (loader, &error)) + goto error; + + applet->fallback_icon = gdk_pixbuf_loader_get_pixbuf (loader); + g_object_ref (applet->fallback_icon); + g_assert (applet->fallback_icon); + g_object_unref (loader); + + return TRUE; + +error: + g_warning ("Could not load fallback icon: (%d) %s", + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + /* Die if we can't get a fallback icon */ + g_assert (FALSE); + return FALSE; +} + +static void nma_icon_theme_changed (GtkIconTheme *icon_theme, NMApplet *applet) +{ + nma_icons_reload (applet); +} + +static void nma_icons_init (NMApplet *applet) +{ + GdkScreen *screen; + gboolean path_appended; + + if (applet->icon_theme) { + g_signal_handlers_disconnect_by_func (applet->icon_theme, + G_CALLBACK (nma_icon_theme_changed), + applet); + g_object_unref (G_OBJECT (applet->icon_theme)); + } + + screen = gtk_status_icon_get_screen (applet->status_icon); + g_assert (screen); + applet->icon_theme = gtk_icon_theme_get_for_screen (screen); + + /* If not done yet, append our search path */ + path_appended = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended")); + if (path_appended == FALSE) { + gtk_icon_theme_append_search_path (applet->icon_theme, ICONDIR); + g_object_set_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended", + GINT_TO_POINTER (TRUE)); + } + + g_signal_connect (applet->icon_theme, "changed", G_CALLBACK (nma_icon_theme_changed), applet); +} + +static void +status_icon_screen_changed_cb (GtkStatusIcon *icon, + GParamSpec *pspec, + NMApplet *applet) +{ + nma_icons_init (applet); + nma_icon_theme_changed (NULL, applet); +} + +static gboolean +status_icon_size_changed_cb (GtkStatusIcon *icon, + gint size, + NMApplet *applet) +{ + if (getenv ("NMA_SIZE_DEBUG")) { + g_message ("%s(): status icon size now %d", __func__, size); + } + + /* icon_size may be 0 if for example the panel hasn't given us any space + * yet. We'll get resized later, but for now just load the 16x16 icons. + */ + applet->icon_size = MAX (16, size); + + nma_icons_reload (applet); + + applet_schedule_update_icon (applet); + + return TRUE; +} + +static void +status_icon_activate_cb (GtkStatusIcon *icon, NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + applet_clear_notify (applet); + + /* Kill any old menu */ + if (applet->menu) + g_object_unref (applet->menu); + + /* And make a fresh new one */ + applet->menu = gtk_menu_new (); + /* Sink the ref so we can explicitly destroy the menu later */ + g_object_ref_sink (G_OBJECT (applet->menu)); + + gtk_container_set_border_width (GTK_CONTAINER (applet->menu), 0); + g_signal_connect (applet->menu, "show", G_CALLBACK (nma_menu_show_cb), applet); + g_signal_connect (applet->menu, "deactivate", G_CALLBACK (nma_menu_deactivate_cb), applet); + + /* Display the new menu */ + gtk_menu_popup (GTK_MENU (applet->menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + 1, gtk_get_current_event_time ()); +} + +static void +status_icon_popup_menu_cb (GtkStatusIcon *icon, + guint button, + guint32 activate_time, + NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + applet_clear_notify (applet); + + nma_context_menu_update (applet); + gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + button, activate_time); +} + +static gboolean +setup_widgets (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->status_icon = gtk_status_icon_new (); + if (!applet->status_icon) + return FALSE; + if (shell_debug) + gtk_status_icon_set_name (applet->status_icon, "adsfasdfasdfadfasdf"); + + g_signal_connect (applet->status_icon, "notify::screen", + G_CALLBACK (status_icon_screen_changed_cb), applet); + g_signal_connect (applet->status_icon, "size-changed", + G_CALLBACK (status_icon_size_changed_cb), applet); + g_signal_connect (applet->status_icon, "activate", + G_CALLBACK (status_icon_activate_cb), applet); + g_signal_connect (applet->status_icon, "popup-menu", + G_CALLBACK (status_icon_popup_menu_cb), applet); + + applet->context_menu = nma_context_menu_create (applet); + if (!applet->context_menu) + return FALSE; + + return TRUE; +} + +static void +applet_embedded_cb (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + gboolean embedded = gtk_status_icon_is_embedded (GTK_STATUS_ICON (object)); + + g_message ("applet now %s the notification area", + embedded ? "embedded in" : "removed from"); +} + +#if GLIB_CHECK_VERSION(2,26,0) +static gboolean +delayed_start_agent (gpointer user_data) +{ + NMApplet *applet = user_data; + + applet->agent_start_id = 0; + + g_assert (applet->agent); + + /* If the agent is already running, there's nothing to do. */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent)) == TRUE) + return FALSE; + + if (nm_secret_agent_register (NM_SECRET_AGENT (applet->agent))) + g_message ("Starting applet secret agent because GNOME Shell disappeared"); + else + g_warning ("Failed to start applet secret agent!"); + return FALSE; +} + +static void +shell_version_changed_cb (NMShellWatcher *watcher, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = user_data; + + if (applet->agent_start_id) { + g_source_remove (applet->agent_start_id); + applet->agent_start_id = 0; + } + + if (!applet->agent) + return; + + if (nm_shell_watcher_version_at_least (watcher, 3, 4)) { + /* GNOME Shell handles all secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) { + g_message ("Stopping applet secret agent because GNOME Shell appeared"); + nm_secret_agent_unregister (NM_SECRET_AGENT (applet->agent)); + } + } else if (nm_shell_watcher_version_at_least (watcher, 3, 2)) { + /* GNOME Shell handles everything except VPN secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + g_message ("Applet secret agent handling only VPN secrets because GNOME Shell appeared"); + applet_agent_handle_vpn_only (applet->agent, TRUE); + } else { + /* If the shell quit and our agent wasn't already registered, do it + * now on a delay (just in case the shell is restarting). + */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + applet->agent_start_id = g_timeout_add_seconds (4, delayed_start_agent, applet); + applet_agent_handle_vpn_only (applet->agent, FALSE); + } +} +#endif + +static gboolean +dbus_setup (NMApplet *applet, GError **error) +{ + DBusConnection *connection; + DBusGProxy *proxy; + guint result; + gboolean success; + + applet->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, error); + if (!applet->bus) + return FALSE; + + connection = dbus_g_connection_get_connection (applet->bus); + dbus_connection_set_exit_on_disconnect (connection, FALSE); + + applet->session_bus = dbus_g_bus_get (DBUS_BUS_SESSION, error); + if (!applet->session_bus) + return FALSE; + + dbus_g_connection_register_g_object (applet->session_bus, + "/org/gnome/network_manager_applet", + G_OBJECT (applet)); + + proxy = dbus_g_proxy_new_for_name (applet->session_bus, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + success = dbus_g_proxy_call (proxy, "RequestName", error, + G_TYPE_STRING, "org.gnome.network_manager_applet", + G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE, + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID); + g_object_unref (proxy); + + return success; +} + +static GObject * +constructor (GType type, + guint n_props, + GObjectConstructParam *construct_props) +{ + NMApplet *applet; + GError* error = NULL; + + applet = NM_APPLET (G_OBJECT_CLASS (nma_parent_class)->constructor (type, n_props, construct_props)); + + g_set_application_name (_("NetworkManager Applet")); + gtk_window_set_default_icon_name (GTK_STOCK_NETWORK); + + applet->info_dialog_ui = gtk_builder_new (); + + if (!gtk_builder_add_from_file (applet->info_dialog_ui, UIDIR "/info.ui", &error)) { + g_warning ("Couldn't load info dialog ui file: %s", error->message); + g_error_free (error); + goto error; + } + + applet->gsettings = g_settings_new (APPLET_PREFS_SCHEMA); + + /* Load pixmaps and create applet widgets */ + if (!setup_widgets (applet)) + goto error; + nma_icons_init (applet); + + if (!notify_is_initted ()) + notify_init ("NetworkManager"); + + if (!dbus_setup (applet, &error)) { + g_warning ("Failed to initialize D-Bus: %s", error->message); + g_error_free (error); + goto error; + } + applet->settings = nm_remote_settings_new (applet->bus); + +#ifdef BUILD_MIGRATION_TOOL + { + char *argv[2] = { LIBEXECDIR "/nm-applet-migration-tool", NULL }; + int status; + + /* Move user connections to the system */ + if (!g_spawn_sync (NULL, argv, NULL, 0, NULL, NULL, + NULL, NULL, &status, &error)) { + g_warning ("Could not run nm-applet-migration-tool: %s", + error->message); + g_error_free (error); + } else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { + g_warning ("nm-applet-migration-tool exited with error"); + } + } +#endif + + applet->agent = applet_agent_new (); + g_assert (applet->agent); + g_signal_connect (applet->agent, APPLET_AGENT_GET_SECRETS, + G_CALLBACK (applet_agent_get_secrets_cb), applet); + g_signal_connect (applet->agent, APPLET_AGENT_CANCEL_SECRETS, + G_CALLBACK (applet_agent_cancel_secrets_cb), applet); + g_signal_connect (applet->agent, "notify::" NM_SECRET_AGENT_REGISTERED, + G_CALLBACK (applet_agent_registered_cb), applet); + + /* Initialize device classes */ + applet->ethernet_class = applet_device_ethernet_get_class (applet); + g_assert (applet->ethernet_class); + + applet->wifi_class = applet_device_wifi_get_class (applet); + g_assert (applet->wifi_class); + + applet->gsm_class = applet_device_gsm_get_class (applet); + g_assert (applet->gsm_class); + + applet->cdma_class = applet_device_cdma_get_class (applet); + g_assert (applet->cdma_class); + + applet->bt_class = applet_device_bt_get_class (applet); + g_assert (applet->bt_class); + + applet->wimax_class = applet_device_wimax_get_class (applet); + g_assert (applet->wimax_class); + + foo_client_setup (applet); + + /* Track embedding to help debug issues where user has removed the + * notification area applet from the panel, and thus nm-applet too. + */ + g_signal_connect (applet->status_icon, "notify::embedded", + G_CALLBACK (applet_embedded_cb), NULL); + applet_embedded_cb (G_OBJECT (applet->status_icon), NULL, NULL); + +#if GLIB_CHECK_VERSION(2,26,0) + /* Watch GNOME Shell so we can unregister our applet agent if it appears */ + applet->shell_watcher = nm_shell_watcher_new (); + g_signal_connect (applet->shell_watcher, + "notify::shell-version", + G_CALLBACK (shell_version_changed_cb), + applet); +#endif + + return G_OBJECT (applet); + +error: + g_object_unref (applet); + return NULL; +} + +static void finalize (GObject *object) +{ + NMApplet *applet = NM_APPLET (object); + + g_slice_free (NMADeviceClass, applet->ethernet_class); + g_slice_free (NMADeviceClass, applet->wifi_class); + g_slice_free (NMADeviceClass, applet->gsm_class); + g_slice_free (NMADeviceClass, applet->cdma_class); + g_slice_free (NMADeviceClass, applet->bt_class); + g_slice_free (NMADeviceClass, applet->wimax_class); + + if (applet->update_icon_id) + g_source_remove (applet->update_icon_id); + + if (applet->menu) + g_object_unref (applet->menu); + nma_icons_free (applet); + + g_free (applet->tip); + + while (g_slist_length (applet->secrets_reqs)) + applet_secrets_request_free ((SecretsRequest *) applet->secrets_reqs->data); + + if (applet->notification) { + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + } + + if (applet->info_dialog_ui) + g_object_unref (applet->info_dialog_ui); + + if (applet->gsettings) + g_object_unref (applet->gsettings); + + if (applet->status_icon) + g_object_unref (applet->status_icon); + + if (applet->nm_client) + g_object_unref (applet->nm_client); + + if (applet->fallback_icon) + g_object_unref (applet->fallback_icon); + + if (applet->agent) + g_object_unref (applet->agent); + + if (applet->settings) + g_object_unref (applet->settings); + + if (applet->bus) + dbus_g_connection_unref (applet->bus); + + if (applet->session_bus) + dbus_g_connection_unref (applet->session_bus); + +#if GLIB_CHECK_VERSION(2,26,0) + if (applet->shell_watcher) + g_object_unref (applet->shell_watcher); +#endif + if (applet->agent_start_id) + g_source_remove (applet->agent_start_id); + + G_OBJECT_CLASS (nma_parent_class)->finalize (object); +} + +static void nma_init (NMApplet *applet) +{ + applet->animation_id = 0; + applet->animation_step = 0; + applet->icon_theme = NULL; + applet->notification = NULL; + applet->icon_size = 16; +} + +enum { + PROP_0, + PROP_LOOP, + LAST_PROP +}; + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMApplet *applet = NM_APPLET (object); + + switch (prop_id) { + case PROP_LOOP: + applet->loop = g_value_get_pointer (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void nma_class_init (NMAppletClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GParamSpec *pspec; + + oclass->set_property = set_property; + oclass->constructor = constructor; + oclass->finalize = finalize; + + pspec = g_param_spec_pointer ("loop", "Loop", "Applet mainloop", G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); + g_object_class_install_property (oclass, PROP_LOOP, pspec); + + dbus_g_object_type_install_info (NM_TYPE_APPLET, &dbus_glib_nma_object_info); +} + +NMApplet * +nm_applet_new (GMainLoop *loop) +{ + return g_object_new (NM_TYPE_APPLET, "loop", loop, NULL); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/lp341684_device_sensitive_disconnect_notify.patch/src/applet.h network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp341684_device_sensitive_disconnect_notify.patch/src/applet.h --- network-manager-applet-0.9.4.1/.pc/lp341684_device_sensitive_disconnect_notify.patch/src/applet.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp341684_device_sensitive_disconnect_notify.patch/src/applet.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,323 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2011 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + */ + +#ifndef APPLET_H +#define APPLET_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include +#include + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include "applet-agent.h" +#include "shell-watcher.h" + +#define NM_TYPE_APPLET (nma_get_type()) +#define NM_APPLET(object) (G_TYPE_CHECK_INSTANCE_CAST((object), NM_TYPE_APPLET, NMApplet)) +#define NM_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_APPLET, NMAppletClass)) +#define NM_IS_APPLET(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), NM_TYPE_APPLET)) +#define NM_IS_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_APPLET)) +#define NM_APPLET_GET_CLASS(object)(G_TYPE_INSTANCE_GET_CLASS((object), NM_TYPE_APPLET, NMAppletClass)) + +typedef struct +{ + GObjectClass parent_class; +} NMAppletClass; + +#define APPLET_PREFS_SCHEMA "org.gnome.nm-applet" +#define PREF_DISABLE_CONNECTED_NOTIFICATIONS "disable-connected-notifications" +#define PREF_DISABLE_DISCONNECTED_NOTIFICATIONS "disable-disconnected-notifications" +#define PREF_DISABLE_VPN_NOTIFICATIONS "disable-vpn-notifications" +#define PREF_DISABLE_WIFI_CREATE "disable-wifi-create" +#define PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE "suppress-wireless-networks-available" + +#define ICON_LAYER_LINK 0 +#define ICON_LAYER_VPN 1 +#define ICON_LAYER_MAX ICON_LAYER_VPN + +typedef struct NMADeviceClass NMADeviceClass; + +/* + * Applet instance data + * + */ +typedef struct +{ + GObject parent_instance; + + GMainLoop *loop; + DBusGConnection *bus; + DBusGConnection *session_bus; + +#if GLIB_CHECK_VERSION(2,26,0) + NMShellWatcher *shell_watcher; +#endif + guint agent_start_id; + + NMClient *nm_client; + NMRemoteSettings *settings; + AppletAgent *agent; + + GSettings *gsettings; + + /* Permissions */ + NMClientPermissionResult permissions[NM_CLIENT_PERMISSION_LAST + 1]; + + /* Device classes */ + NMADeviceClass *ethernet_class; + NMADeviceClass *wifi_class; + NMADeviceClass *gsm_class; + NMADeviceClass *cdma_class; + NMADeviceClass *bt_class; + NMADeviceClass *wimax_class; + + /* Data model elements */ + guint update_icon_id; + + GtkIconTheme * icon_theme; + GdkPixbuf * no_connection_icon; + GdkPixbuf * ethernet_icon; + GdkPixbuf * adhoc_icon; + GdkPixbuf * wwan_icon; + GdkPixbuf * wifi_00_icon; + GdkPixbuf * wifi_25_icon; + GdkPixbuf * wifi_50_icon; + GdkPixbuf * wifi_75_icon; + GdkPixbuf * wifi_100_icon; + GdkPixbuf * secure_lock_icon; +#define NUM_CONNECTING_STAGES 3 +#define NUM_CONNECTING_FRAMES 11 + GdkPixbuf * network_connecting_icons[NUM_CONNECTING_STAGES][NUM_CONNECTING_FRAMES]; +#define NUM_VPN_CONNECTING_FRAMES 14 + GdkPixbuf * vpn_connecting_icons[NUM_VPN_CONNECTING_FRAMES]; + GdkPixbuf * vpn_lock_icon; + GdkPixbuf * fallback_icon; + + /* Mobiel Broadband icons */ + GdkPixbuf * wwan_tower_icon; + GdkPixbuf * mb_tech_1x_icon; + GdkPixbuf * mb_tech_evdo_icon; + GdkPixbuf * mb_tech_gprs_icon; + GdkPixbuf * mb_tech_edge_icon; + GdkPixbuf * mb_tech_umts_icon; + GdkPixbuf * mb_tech_hspa_icon; + GdkPixbuf * mb_tech_lte_icon; + GdkPixbuf * mb_roaming_icon; + GdkPixbuf * mb_tech_3g_icon; + + /* Active status icon pixbufs */ + GdkPixbuf * icon_layers[ICON_LAYER_MAX + 1]; + + /* Animation stuff */ + int animation_step; + guint animation_id; + + /* Direct UI elements */ + GtkStatusIcon * status_icon; + int icon_size; + + GtkWidget * menu; + char * tip; + + GtkWidget * context_menu; + GtkWidget * networking_enabled_item; + guint networking_enabled_toggled_id; + GtkWidget * wifi_enabled_item; + guint wifi_enabled_toggled_id; + GtkWidget * wwan_enabled_item; + guint wwan_enabled_toggled_id; + GtkWidget * wimax_enabled_item; + guint wimax_enabled_toggled_id; + + GtkWidget * notifications_enabled_item; + guint notifications_enabled_toggled_id; + + GtkWidget * info_menu_item; + GtkWidget * connections_menu_item; + + GtkBuilder * info_dialog_ui; + NotifyNotification* notification; + + /* Tracker objects for secrets requests */ + GSList * secrets_reqs; +} NMApplet; + +typedef void (*AppletNewAutoConnectionCallback) (NMConnection *connection, + gboolean created, + gboolean canceled, + gpointer user_data); + +typedef struct _SecretsRequest SecretsRequest; +typedef void (*SecretsRequestFreeFunc) (SecretsRequest *req); + +struct _SecretsRequest { + size_t totsize; + gpointer reqid; + char *setting_name; + char **hints; + guint32 flags; + NMApplet *applet; + AppletAgentSecretsCallback callback; + gpointer callback_data; + + NMConnection *connection; + + /* Class-specific stuff */ + SecretsRequestFreeFunc free_func; +}; + +void applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func); +void applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error); +void applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error); +void applet_secrets_request_free (SecretsRequest *req); + +struct NMADeviceClass { + gboolean (*new_auto_connection) (NMDevice *device, + gpointer user_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data); + + void (*add_menu_item) (NMDevice *device, + guint32 num_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet); + + void (*device_added) (NMDevice *device, NMApplet *applet); + + void (*device_state_changed) (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet); + + /* Device class is expected to return a *referenced* pixbuf, which will + * be unrefed by the icon code. This allows the device class to create + * a composited pixbuf if necessary and pass the reference to the caller. + */ + GdkPixbuf * (*get_icon) (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet); + + size_t secrets_request_size; + gboolean (*get_secrets) (SecretsRequest *req, + GError **error); +}; + +GType nma_get_type (void); + +NMApplet *nm_applet_new (GMainLoop *loop); + +void applet_schedule_update_icon (NMApplet *applet); + +NMRemoteSettings *applet_get_settings (NMApplet *applet); + +GSList *applet_get_all_connections (NMApplet *applet); + +gboolean nma_menu_device_check_unusable (NMDevice *device); + +GtkWidget * nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg); + +void applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data); + +void applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet); + +void applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos); + +GtkWidget* +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text); + +NMRemoteConnection *applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet); + +NMDevice *applet_get_device_for_connection (NMApplet *applet, NMConnection *connection); + +void applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data); + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref); + +NMConnection * applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active); + +GtkWidget * applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active); + +GdkPixbuf * nma_icon_check_and_load (const char *name, + GdkPixbuf **icon, + NMApplet *applet); + +gboolean applet_wifi_connect_to_hidden_network (NMApplet *applet); +gboolean applet_wifi_connect_to_8021x_network (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap); +gboolean applet_wifi_create_wifi_network (NMApplet *applet); +gboolean applet_wifi_can_create_wifi_network (NMApplet *applet); + +#endif diff -Nru network-manager-applet-0.9.4.1/.pc/lp358526_generic_disconnected_notification_icon.patch/src/applet.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp358526_generic_disconnected_notification_icon.patch/src/applet.c --- network-manager-applet-0.9.4.1/.pc/lp358526_generic_disconnected_notification_icon.patch/src/applet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp358526_generic_disconnected_notification_icon.patch/src/applet.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,3710 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2012 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + * + * This applet used the GNOME Wireless Applet as a skeleton to build from. + * + * GNOME Wireless Applet Authors: + * Eskil Heyn Olsen + * Bastien Nocera (Gnome2 port) + * + * (C) Copyright 2001, 2002 Free Software Foundation + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "applet-device-wifi.h" +#include "applet-device-gsm.h" +#include "applet-device-cdma.h" +#include "applet-device-bt.h" +#include "applet-device-wimax.h" +#include "applet-dialogs.h" +#include "nm-wifi-dialog.h" +#include "applet-vpn-request.h" +#include "utils.h" +#include "shell-watcher.h" +#include "nm-ui-utils.h" + +#define NOTIFY_CAPS_ACTIONS_KEY "actions" + +extern gboolean shell_debug; + +G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) + +/********************************************************************/ +/* Temporary dbus interface stuff */ + +static gboolean +impl_dbus_connect_to_hidden_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_connect_to_hidden_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_create_wifi_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_can_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NOT_AUTHORIZED, + "Creation of Wi-Fi networks has been disabled by system policy."); + return FALSE; + } + + if (!applet_wifi_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_8021x_network (NMApplet *applet, + const char *device_path, + const char *ap_path, + GError **error) +{ + NMDevice *device; + NMAccessPoint *ap; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_WIFI (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + ap = nm_device_wifi_get_access_point_by_path (NM_DEVICE_WIFI (device), ap_path); + if (!ap) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point could not be found."); + return FALSE; + } + + /* FIXME: this doesn't account for Dynamic WEP */ + if ( !(nm_access_point_get_wpa_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + && !(nm_access_point_get_rsn_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point had no 802.1x capabilities"); + return FALSE; + } + + if (!applet_wifi_connect_to_8021x_network (applet, device, ap)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_3g_network (NMApplet *applet, + const char *device_path, + GError **error) +{ + NMDevice *device; + NMDeviceModemCapabilities caps; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_MODEM (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + applet_gsm_connect_network (applet, device); + } else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + applet_cdma_connect_network (applet, device); + } else { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device had no GSM or CDMA capabilities."); + return FALSE; + } + + return TRUE; +} + +#include "applet-dbus-bindings.h" + +/********************************************************************/ + +static inline NMADeviceClass * +get_device_class (NMDevice *device, NMApplet *applet) +{ + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + if (NM_IS_DEVICE_ETHERNET (device)) + return applet->ethernet_class; + else if (NM_IS_DEVICE_WIFI (device)) + return applet->wifi_class; + else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + return applet->gsm_class; + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + return applet->cdma_class; + else + g_message ("%s: unhandled modem capabilities 0x%X", __func__, caps); + } else if (NM_IS_DEVICE_BT (device)) + return applet->bt_class; + else if (NM_IS_DEVICE_WIMAX (device)) + return applet->wimax_class; + else + g_debug ("%s: Unknown device type '%s'", __func__, G_OBJECT_TYPE_NAME (device)); + return NULL; +} + +static inline NMADeviceClass * +get_device_class_from_connection (NMConnection *connection, NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *ctype; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + ctype = nm_setting_connection_get_connection_type (s_con); + g_return_val_if_fail (ctype != NULL, NULL); + + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME) || !strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return applet->ethernet_class; + else if (!strcmp (ctype, NM_SETTING_WIRELESS_SETTING_NAME)) + return applet->wifi_class; + else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME)) + return applet->gsm_class; + else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME)) + return applet->cdma_class; + else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) + return applet->bt_class; + else + g_warning ("%s: unhandled connection type '%s'", __func__, ctype); + return NULL; +} + +struct _OfflineNotificationContextInfo { + NMState state; + NMDeviceState device_state; + NMDeviceStateReason device_state_reason; + NMDeviceType device_type; + gchar* title; + const gchar* text; + const gchar* icon; + NotifyUrgency urgency; +}; + +typedef struct _OfflineNotificationContextInfo OfflineNotificationContextInfo; + +static NMActiveConnection * +applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *best = NULL; + NMDevice *best_dev = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const GPtrArray *devices; + NMDevice *candidate_dev; + + if (nm_active_connection_get_state (candidate) != NM_ACTIVE_CONNECTION_STATE_ACTIVATING) + continue; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (!best_dev) { + best_dev = candidate_dev; + best = candidate; + continue; + } + + if (NM_IS_DEVICE_WIFI (best_dev)) { + if (NM_IS_DEVICE_ETHERNET (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (NM_IS_DEVICE_MODEM (best_dev)) { + NMDeviceModemCapabilities best_caps; + NMDeviceModemCapabilities candidate_caps = NM_DEVICE_MODEM_CAPABILITY_NONE; + + best_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (best_dev)); + if (NM_IS_DEVICE_MODEM (candidate_dev)) + candidate_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (candidate_dev)); + + if (best_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (best_caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev) + || (candidate_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { + best_dev = candidate_dev; + best = candidate; + } + } + } + } + + *device = best_dev; + return best; +} + +static NMActiveConnection * +applet_get_default_active_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *default_ac = NULL; + NMDevice *non_default_device = NULL; + NMActiveConnection *non_default_ac = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + NMDevice *candidate_dev; + const GPtrArray *devices; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (nm_active_connection_get_default (candidate)) { + if (!default_ac) { + *device = candidate_dev; + default_ac = candidate; + } + } else { + if (!non_default_ac) { + non_default_device = candidate_dev; + non_default_ac = candidate; + } + } + } + + /* Prefer the default connection if one exists, otherwise return the first + * non-default connection. + */ + if (!default_ac && non_default_ac) { + default_ac = non_default_ac; + *device = non_default_device; + } + return default_ac; +} + +NMRemoteSettings * +applet_get_settings (NMApplet *applet) +{ + return applet->settings; +} + +GSList * +applet_get_all_connections (NMApplet *applet) +{ + GSList *connections, *iter, *next; + NMConnection *connection; + NMSettingConnection *s_con; + + connections = nm_remote_settings_list_connections (applet->settings); + + /* Ignore slave connections */ + for (iter = connections; iter; iter = next) { + connection = iter->data; + next = iter->next; + + s_con = nm_connection_get_setting_connection (connection); + if (s_con && nm_setting_connection_get_master (s_con)) + connections = g_slist_delete_link (connections, iter); + } + + return connections; +} + +static NMConnection * +applet_get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMActiveConnection * +applet_get_active_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + int i; + const char *cpath; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + const char *active_cpath = nm_active_connection_get_connection (active); + + if (active_cpath && !strcmp (active_cpath, cpath)) + return active; + } + return NULL; +} + +NMDevice * +applet_get_device_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + const char *cpath; + int i; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + + if (!g_strcmp0 (nm_active_connection_get_connection (active), cpath)) + return g_ptr_array_index (nm_active_connection_get_devices (active), 0); + } + return NULL; +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + char *specific_object; + NMConnection *connection; +} AppletItemActivateInfo; + +static void +applet_item_activate_info_destroy (AppletItemActivateInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + g_free (info->specific_object); + if (info->connection) + g_object_unref (info->connection); + memset (info, 0, sizeof (AppletItemActivateInfo)); + g_free (info); +} + +static void +add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add/activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +applet_menu_item_activate_helper_new_connection (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + AppletItemActivateInfo *info = user_data; + + if (canceled) { + applet_item_activate_info_destroy (info); + return; + } + + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + info->specific_object, + add_and_activate_cb, + info->applet); + + applet_item_activate_info_destroy (info); +} + +static void +disconnect_cb (NMDevice *device, GError *error, gpointer user_data) +{ + if (error) { + const char *text = _("Device disconnect failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s: %s", __func__, text, err_text); + utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } +} + +void +applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet) +{ + g_return_if_fail (NM_IS_DEVICE (device)); + + nm_device_disconnect (device, disconnect_cb, NULL); +} + +static void +activate_connection_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Connection activation failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +void +applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data) +{ + AppletItemActivateInfo *info; + NMADeviceClass *dclass; + + g_return_if_fail (NM_IS_DEVICE (device)); + + if (connection) { + /* If the menu item had an associated connection already, just tell + * NM to activate that connection. + */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + specific_object, + activate_connection_cb, + applet); + return; + } + + /* If no connection was given, ask the device class to create a new + * default connection for this device type. This could be a wizard, + * and thus take a while. + */ + + info = g_malloc0 (sizeof (AppletItemActivateInfo)); + info->applet = applet; + info->specific_object = g_strdup (specific_object); + info->device = g_object_ref (device); + + dclass = get_device_class (device, applet); + g_assert (dclass); + if (!dclass->new_auto_connection (device, dclass_data, + applet_menu_item_activate_helper_new_connection, + info)) { + g_warning ("Couldn't create default connection."); + applet_item_activate_info_destroy (info); + } +} + +void +applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos) +{ + GtkWidget *menu_item = gtk_image_menu_item_new (); +#if GTK_CHECK_VERSION(3,1,6) + GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); +#else + GtkWidget *box = gtk_hbox_new (FALSE, 0); +#endif + GtkWidget *xlabel = NULL; + + if (label) { + xlabel = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (xlabel), label); + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2); + } + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + + g_object_set (G_OBJECT (menu_item), + "child", box, + "sensitive", FALSE, + NULL); + if (pos < 0) + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + else + gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, pos); + return; +} + +GtkWidget * +applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active) +{ + GtkWidget *item; + NMSettingConnection *s_con; + char *markup; + GtkWidget *label; + + s_con = nm_connection_get_setting_connection (connection); + item = gtk_image_menu_item_new_with_label (""); + if (add_active && (active == connection)) { + /* Pure evil */ + label = gtk_bin_get_child (GTK_BIN (item)); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + markup = g_markup_printf_escaped ("%s", nm_setting_connection_get_id (s_con)); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + } else + gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); + + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + return item; +} + +#define TITLE_TEXT_R ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_G ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_B ((double) 0x5e / 255.0 ) + +static void +menu_item_draw_generic (GtkWidget *widget, cairo_t *cr) +{ + GtkWidget *label; + PangoFontDescription *desc; + PangoLayout *layout; + int width = 0, height = 0, owidth, oheight; + gdouble extraheight = 0, extrawidth = 0; + const char *text; + gdouble xpadding = 10.0; + gdouble ypadding = 5.0; + gdouble postpadding = 0.0; + + label = gtk_bin_get_child (GTK_BIN (widget)); + text = gtk_label_get_text (GTK_LABEL (label)); + + layout = pango_cairo_create_layout (cr); +#if GTK_CHECK_VERSION(2,20,0) && !GTK_CHECK_VERSION(2,91,6) + { + GtkStyle *style; + style = gtk_widget_get_style (widget); + desc = pango_font_description_copy (style->font_desc); + } +#else + { + GtkStyleContext *style; + style = gtk_widget_get_style_context (widget); + gtk_style_context_get (style, gtk_style_context_get_state (style), + "font", &desc, + NULL); + } +#endif + pango_font_description_set_variant (desc, PANGO_VARIANT_SMALL_CAPS); + pango_font_description_set_weight (desc, PANGO_WEIGHT_SEMIBOLD); + pango_layout_set_font_description (layout, desc); + pango_layout_set_text (layout, text, -1); + pango_cairo_update_layout (cr, layout); + pango_layout_get_size (layout, &owidth, &oheight); + width = owidth / PANGO_SCALE; + height += oheight / PANGO_SCALE; + + cairo_save (cr); + + cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); + cairo_rectangle (cr, 0, 0, + (double) (width + 2 * xpadding), + (double) (height + ypadding + postpadding)); + cairo_fill (cr); + + /* now the in-padding content */ + cairo_translate (cr, xpadding , ypadding); + cairo_set_source_rgb (cr, TITLE_TEXT_R, TITLE_TEXT_G, TITLE_TEXT_B); + cairo_move_to (cr, extrawidth, extraheight); + pango_cairo_show_layout (cr, layout); + + cairo_restore(cr); + + pango_font_description_free (desc); + g_object_unref (layout); + + gtk_widget_set_size_request (widget, width + 2 * xpadding, height + ypadding + postpadding); +} + +#if GTK_CHECK_VERSION(2,90,7) +static gboolean +menu_title_item_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) +{ + menu_item_draw_generic (widget, cr); + return TRUE; +} +#else +static gboolean +menu_title_item_expose (GtkWidget *widget, GdkEventExpose *event) +{ + GtkAllocation allocation; + cairo_t *cr; + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + /* The drawing area we get is the whole menu; clip the drawing to the + * event area, which should just be our menu item. + */ + cairo_rectangle (cr, + event->area.x, event->area.y, + event->area.width, event->area.height); + cairo_clip (cr); + + /* We also need to reposition the cairo context so that (0, 0) is the + * top-left of where we're supposed to start drawing. + */ + gtk_widget_get_allocation (widget, &allocation); + cairo_translate (cr, allocation.x, allocation.y); + + menu_item_draw_generic (widget, cr); + + cairo_destroy (cr); + return TRUE; +} +#endif + +GtkWidget * +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text) +{ + GtkWidget *item; + + item = gtk_menu_item_new_with_mnemonic (text); + gtk_widget_set_sensitive (item, FALSE); +#if GTK_CHECK_VERSION(2,90,7) + g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL); +#else + g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); +#endif + return item; +} + +static void +applet_clear_notify (NMApplet *applet) +{ + if (applet->notification == NULL) + return; + + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + applet->notification = NULL; +} + +static gboolean +applet_notify_server_has_actions (void) +{ + static gboolean has_actions = FALSE; + static gboolean initialized = FALSE; + GList *server_caps, *iter; + + if (initialized) + return has_actions; + initialized = TRUE; + + server_caps = notify_get_server_caps(); + for (iter = server_caps; iter; iter = g_list_next (iter)) { + if (!strcmp ((const char *) iter->data, NOTIFY_CAPS_ACTIONS_KEY)) { + has_actions = TRUE; + break; + } + } + g_list_foreach (server_caps, (GFunc) g_free, NULL); + g_list_free (server_caps); + + return has_actions; +} + +void +applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data) +{ + NotifyNotification *notify; + GError *error = NULL; + char *escaped; + + g_return_if_fail (applet != NULL); + g_return_if_fail (summary != NULL); + g_return_if_fail (message != NULL); + + if (!gtk_status_icon_is_embedded (applet->status_icon)) + return; + + /* if we're not registered, don't notify either */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + return; + + applet_clear_notify (applet); + + escaped = utils_escape_notify_message (message); + notify = notify_notification_new (summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK +#if HAVE_LIBNOTIFY_07 + ); +#else + , NULL); +#endif + g_free (escaped); + applet->notification = notify; + +#if HAVE_LIBNOTIFY_07 + notify_notification_set_hint (notify, "transient", g_variant_new_boolean (TRUE)); +#else + notify_notification_attach_to_status_icon (notify, applet->status_icon); +#endif + notify_notification_set_urgency (notify, urgency); + notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT); + + if (applet_notify_server_has_actions () && action1) { + notify_notification_add_action (notify, action1, action1_label, + action1_cb, action1_user_data, NULL); + } + + if (!notify_notification_show (notify, &error)) { + g_warning ("Failed to show notification: %s", + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + } +} + +static void +notify_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id) + return; + + if ( strcmp (id, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_VPN_NOTIFICATIONS)) + return; + + g_settings_set_boolean (applet->gsettings, id, TRUE); +} + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref) +{ + if (g_settings_get_boolean (applet->gsettings, pref)) + return; + + applet_do_notify (applet, NOTIFY_URGENCY_LOW, summary, message, icon, pref, + _("Don't show this message again"), + notify_dont_show_cb, + applet); +} + +static gboolean +animation_timeout (gpointer data) +{ + applet_schedule_update_icon (NM_APPLET (data)); + return TRUE; +} + +static void +start_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id == 0) { + applet->animation_step = 0; + applet->animation_id = g_timeout_add (100, animation_timeout, applet); + } +} + +static void +clear_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id) { + g_source_remove (applet->animation_id); + applet->animation_id = 0; + applet->animation_step = 0; + } +} + +static gboolean +applet_is_any_device_activating (NMApplet *applet) +{ + const GPtrArray *devices; + int i; + + /* Check for activating devices */ + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = NM_DEVICE (g_ptr_array_index (devices, i)); + NMDeviceState state; + + state = nm_device_get_state (candidate); + if (state > NM_DEVICE_STATE_DISCONNECTED && state < NM_DEVICE_STATE_ACTIVATED) + return TRUE; + } + return FALSE; +} + +static gboolean +applet_is_any_vpn_activating (NMApplet *applet) +{ + const GPtrArray *connections; + int i; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (connections, i)); + NMVPNConnectionState vpn_state; + + if (NM_IS_VPN_CONNECTION (candidate)) { + vpn_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + if ( vpn_state == NM_VPN_CONNECTION_STATE_PREPARE + || vpn_state == NM_VPN_CONNECTION_STATE_NEED_AUTH + || vpn_state == NM_VPN_CONNECTION_STATE_CONNECT + || vpn_state == NM_VPN_CONNECTION_STATE_IP_CONFIG_GET) { + return TRUE; + } + } + } + return FALSE; +} + +static char * +make_vpn_failure_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service stopped unexpectedly."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service returned invalid configuration."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the connection attempt timed out."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service did not start in time."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because there were no valid VPN secrets."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because of invalid VPN secrets."), + nm_setting_connection_get_id (s_con)); + + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' failed."), nm_setting_connection_get_id (s_con)); +} + +static char * +make_vpn_disconnection_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the VPN service stopped."), + nm_setting_connection_get_id (s_con)); + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected."), nm_setting_connection_get_id (s_con)); +} + +static void +vpn_connection_state_changed (NMVPNConnection *vpn, + NMVPNConnectionState state, + NMVPNConnectionStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const char *banner; + char *title = NULL, *msg; + gboolean device_activating, vpn_activating; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (state) { + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections might not have come through yet. + */ + vpn_activating = TRUE; + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + banner = nm_vpn_connection_get_banner (vpn); + if (banner && strlen (banner)) + msg = g_strdup_printf (_("VPN connection has been successfully established.\n\n%s\n"), banner); + else + msg = g_strdup (_("VPN connection has been successfully established.\n")); + + title = _("VPN Login Message"); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_FAILED: + title = _("VPN Connection Failed"); + msg = make_vpn_failure_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_DISCONNECTED: + if (reason != NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED) { + title = _("VPN Connection Failed"); + msg = make_vpn_disconnection_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + } + break; + default: + break; + } + + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); + + applet_schedule_update_icon (applet); +} + +static const char * +get_connection_id (NMConnection *connection) +{ + NMSettingConnection *s_con; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + return nm_setting_connection_get_id (s_con); +} + +typedef struct { + NMApplet *applet; + char *vpn_name; +} VPNActivateInfo; + +static void +activate_vpn_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + VPNActivateInfo *info = (VPNActivateInfo *) user_data; + char *title, *msg, *name; + + if (error) { + clear_animation_timeout (info->applet); + + title = _("VPN Connection Failed"); + + /* dbus-glib GError messages _always_ have two NULLs, the D-Bus error + * name comes after the first NULL. Find it. + */ + name = error->message + strlen (error->message) + 1; + if (strstr (name, "ServiceStartFailed")) { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start.\n\n%s"), + info->vpn_name, error->message); + } else { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed to start.\n\n%s"), + info->vpn_name, error->message); + } + + applet_do_notify_with_pref (info->applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + + g_warning ("VPN Connection activation failed: (%s) %s", name, error->message); + } + + applet_schedule_update_icon (info->applet); + g_free (info->vpn_name); + g_free (info); +} + +static void +nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + VPNActivateInfo *info; + NMConnection *connection; + NMSettingConnection *s_con; + NMActiveConnection *active; + NMDevice *device = NULL; + + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) { + g_warning ("%s: no active connection or device.", __func__); + return; + } + + connection = NM_CONNECTION (g_object_get_data (G_OBJECT (item), "connection")); + if (!connection) { + g_warning ("%s: no connection associated with menu item!", __func__); + return; + } + + if (applet_get_active_for_connection (applet, connection)) + /* Connection already active; do nothing */ + return; + + s_con = nm_connection_get_setting_connection (connection); + info = g_malloc0 (sizeof (VPNActivateInfo)); + info->applet = applet; + info->vpn_name = g_strdup (nm_setting_connection_get_id (s_con)); + + /* Connection inactive, activate */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + nm_object_get_path (NM_OBJECT (active)), + activate_vpn_cb, + info); + start_animation_timeout (applet); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + + +/* + * nma_menu_configure_vpn_item_activate + * + * Signal function called when user clicks "Configure VPN..." + * + */ +static void +nma_menu_configure_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + const char *argv[] = { BINDIR "/nm-connection-editor", "--show", "--type", NM_SETTING_VPN_SETTING_NAME, NULL}; + + g_spawn_async (NULL, (gchar **) argv, NULL, 0, NULL, NULL, NULL, NULL); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static NMActiveConnection * +applet_get_first_active_vpn_connection (NMApplet *applet, + NMVPNConnectionState *out_state) +{ + const GPtrArray *active_list; + int i; + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate; + NMConnection *connection; + NMSettingConnection *s_con; + + candidate = g_ptr_array_index (active_list, i); + + connection = applet_get_connection_for_active (applet, candidate); + if (!connection) + continue; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + if (out_state) + *out_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + return candidate; + } + } + + return NULL; +} + +/* + * nma_menu_disconnect_vpn_item_activate + * + * Signal function called when user clicks "Disconnect VPN" + * + */ +static void +nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMActiveConnection *active_vpn = NULL; + NMVPNConnectionState state = NM_VPN_CONNECTION_STATE_UNKNOWN; + + active_vpn = applet_get_first_active_vpn_connection (applet, &state); + if (active_vpn) + nm_client_deactivate_connection (applet->nm_client, active_vpn); + else + g_warning ("%s: deactivate clicked but no active VPN connection could be found.", __func__); +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +/* + * nma_menu_add_separator_item + * + */ +static void +nma_menu_add_separator_item (GtkWidget *menu) +{ + GtkWidget *menu_item; + + menu_item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + + +/* + * nma_menu_add_text_item + * + * Add a non-clickable text item to a menu + * + */ +static void nma_menu_add_text_item (GtkWidget *menu, char *text) +{ + GtkWidget *menu_item; + + g_return_if_fail (text != NULL); + g_return_if_fail (menu != NULL); + + menu_item = gtk_menu_item_new_with_label (text); + gtk_widget_set_sensitive (menu_item, FALSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + +static gint +sort_devices (gconstpointer a, gconstpointer b) +{ + NMDevice *aa = NM_DEVICE (a); + NMDevice *bb = NM_DEVICE (b); + GType aa_type = G_OBJECT_TYPE (G_OBJECT (aa)); + GType bb_type = G_OBJECT_TYPE (G_OBJECT (bb)); + + if (aa_type == bb_type) { + const char *aa_desc = NULL; + const char *bb_desc = NULL; + + aa_desc = nma_utils_get_device_description (aa); + bb_desc = nma_utils_get_device_description (bb); + + return g_strcmp0 (aa_desc, bb_desc); + } + + /* Ethernet always first */ + if (aa_type == NM_TYPE_DEVICE_ETHERNET) + return -1; + if (bb_type == NM_TYPE_DEVICE_ETHERNET) + return 1; + + /* Modems next */ + if (aa_type == NM_TYPE_DEVICE_MODEM) + return -1; + if (bb_type == NM_TYPE_DEVICE_MODEM) + return 1; + + /* Bluetooth next */ + if (aa_type == NM_TYPE_DEVICE_BT) + return -1; + if (bb_type == NM_TYPE_DEVICE_BT) + return 1; + + /* WiMAX next */ + if (aa_type == NM_TYPE_DEVICE_WIMAX) + return -1; + if (bb_type == NM_TYPE_DEVICE_WIMAX) + return 1; + + /* WiFi last because it has many menu items */ + return 1; +} + +static gboolean +nm_g_ptr_array_contains (const GPtrArray *haystack, gpointer needle) +{ + int i; + + for (i = 0; haystack && (i < haystack->len); i++) { + if (g_ptr_array_index (haystack, i) == needle) + return TRUE; + } + return FALSE; +} + +NMConnection * +applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active) +{ + const GPtrArray *active_connections; + NMConnection *connection = NULL; + int i; + + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + if (out_active) + g_return_val_if_fail (*out_active == NULL, NULL); + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMRemoteConnection *tmp; + NMActiveConnection *active; + const char *connection_path; + const GPtrArray *devices; + + active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_connections, i)); + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + tmp = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (tmp) { + connection = NM_CONNECTION (tmp); + if (out_active) + *out_active = active; + break; + } + } + + return connection; +} + +gboolean +nma_menu_device_check_unusable (NMDevice *device) +{ + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + case NM_DEVICE_STATE_UNMANAGED: + return TRUE; + default: + break; + } + return FALSE; +} + + +struct AppletDeviceMenuInfo { + NMDevice *device; + NMApplet *applet; +}; + +static void +applet_device_info_destroy (struct AppletDeviceMenuInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + memset (info, 0, sizeof (struct AppletDeviceMenuInfo)); + g_free (info); +} + +static void +applet_device_disconnect_db (GtkMenuItem *item, gpointer user_data) +{ + struct AppletDeviceMenuInfo *info = user_data; + + applet_menu_item_disconnect_helper (info->device, + info->applet); +} + +GtkWidget * +nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg) +{ + GtkWidget *item = NULL; + gboolean managed = TRUE; + + if (!unavailable_msg) { + if (nm_device_get_firmware_missing (device)) + unavailable_msg = _("device not ready (firmware missing)"); + else + unavailable_msg = _("device not ready"); + } + + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_DISCONNECTED: + unavailable_msg = _("disconnected"); + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_UNMANAGED: + managed = FALSE; + break; + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + case NM_DEVICE_STATE_ACTIVATED: + { + struct AppletDeviceMenuInfo *info = g_new0 (struct AppletDeviceMenuInfo, 1); + info->device = g_object_ref (device); + info->applet = applet; + item = gtk_menu_item_new_with_label (_("Disconnect")); + g_signal_connect_data (item, "activate", + G_CALLBACK (applet_device_disconnect_db), + info, + (GClosureNotify) applet_device_info_destroy, 0); + gtk_widget_set_sensitive (item, TRUE); + break; + } + default: + managed = nm_device_get_managed (device); + break; + } + + if (!managed) { + item = gtk_menu_item_new_with_label (_("device not managed")); + gtk_widget_set_sensitive (item, FALSE); + } + + return item; +} + +static guint32 +nma_menu_add_devices (GtkWidget *menu, NMApplet *applet) +{ + const GPtrArray *temp = NULL; + GSList *devices = NULL, *iter = NULL; + gint n_wifi_devices = 0; + gint n_usable_wifi_devices = 0; + gint n_ethernet_devices = 0; + gint n_mb_devices = 0; + gint n_bt_devices = 0; + int i; + + temp = nm_client_get_devices (applet->nm_client); + for (i = 0; temp && (i < temp->len); i++) + devices = g_slist_insert_sorted (devices, g_ptr_array_index (temp, i), sort_devices); + + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) { + n_wifi_devices++; + if ( nm_client_wireless_get_enabled (applet->nm_client) + && (nm_device_get_state (device) >= NM_DEVICE_STATE_DISCONNECTED)) + n_usable_wifi_devices++; + } else if (NM_IS_DEVICE_ETHERNET (device)) + n_ethernet_devices++; + else if (NM_IS_DEVICE_MODEM (device)) + n_mb_devices++; + else if (NM_IS_DEVICE_BT (device)) + n_bt_devices++; + } + + if (!n_ethernet_devices && !n_wifi_devices && !n_mb_devices && !n_bt_devices) { + nma_menu_add_text_item (menu, _("No network devices available")); + goto out; + } + + /* Add all devices in our device list to the menu */ + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + gint n_devices = 0; + NMADeviceClass *dclass; + NMConnection *active; + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) + n_devices = n_wifi_devices; + else if (NM_IS_DEVICE_ETHERNET (device)) + n_devices = n_ethernet_devices; + else if (NM_IS_DEVICE_MODEM (device)) + n_devices = n_mb_devices; + + active = applet_find_active_connection_for_device (device, applet, NULL); + + dclass = get_device_class (device, applet); + if (dclass) + dclass->add_menu_item (device, n_devices, active, menu, applet); + } + + out: + g_slist_free (devices); + + /* Return # of usable wifi devices here for correct enable/disable state + * of things like Enable Wi-Fi, "Connect to other..." and such. + */ + return n_usable_wifi_devices; +} + +static int +sort_vpn_connections (gconstpointer a, gconstpointer b) +{ + return strcmp (get_connection_id (NM_CONNECTION (a)), get_connection_id (NM_CONNECTION (b))); +} + +static GSList * +get_vpn_connections (NMApplet *applet) +{ + GSList *all_connections; + GSList *iter; + GSList *list = NULL; + + all_connections = applet_get_all_connections (applet); + + for (iter = all_connections; iter; iter = iter->next) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) + /* Not a VPN connection */ + continue; + + if (!nm_connection_get_setting_vpn (connection)) { + g_warning ("%s: VPN connection '%s' didn't have required vpn setting.", __func__, + nm_setting_connection_get_id (s_con)); + continue; + } + + list = g_slist_prepend (list, connection); + } + + g_slist_free (all_connections); + + return g_slist_sort (list, sort_vpn_connections); +} + +static void +nma_menu_add_vpn_submenu (GtkWidget *menu, NMApplet *applet) +{ + GtkMenu *vpn_menu; + GtkMenuItem *item; + GSList *list, *iter; + int num_vpn_active = 0; + + nma_menu_add_separator_item (menu); + + vpn_menu = GTK_MENU (gtk_menu_new ()); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_VPN Connections"))); + gtk_menu_item_set_submenu (item, GTK_WIDGET (vpn_menu)); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + + list = get_vpn_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (applet_get_active_for_connection (applet, connection)) + num_vpn_active++; + } + + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMActiveConnection *active; + const char *name; + GtkWidget *image; + NMState state; + + name = get_connection_id (connection); + + item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); + gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + + /* If no VPN connections are active, draw all menu items enabled. If + * >= 1 VPN connections are active, only the active VPN menu item is + * drawn enabled. + */ + active = applet_get_active_for_connection (applet, connection); + + state = nm_client_get_state (applet->nm_client); + if ( state != NM_STATE_CONNECTED_LOCAL + && state != NM_STATE_CONNECTED_SITE + && state != NM_STATE_CONNECTED_GLOBAL) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + else if ((num_vpn_active == 0) || active) + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + else + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + if (active) { + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + } + + g_object_set_data_full (G_OBJECT (item), "connection", + g_object_ref (connection), + (GDestroyNotify) g_object_unref); + + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_vpn_item_clicked), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } + + /* Draw a seperator, but only if we have VPN connections above it */ + if (list) + nma_menu_add_separator_item (GTK_WIDGET (vpn_menu)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Configure VPN..."))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_configure_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Disconnect VPN"))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_disconnect_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + if (num_vpn_active == 0) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + g_slist_free (list); +} + + +static void +nma_set_wifi_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wireless_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wwan_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wwan_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wimax_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wimax_set_enabled (applet->nm_client, state); +} + +static void +nma_set_networking_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_networking_set_enabled (applet->nm_client, state); +} + + +static void +nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_CONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_VPN_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + !state); +} + +/* + * nma_menu_show_cb + * + * Pop up the wifi networks menu + * + */ +static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet) +{ + guint32 n_wifi; + + g_return_if_fail (menu != NULL); + g_return_if_fail (applet != NULL); + + gtk_status_icon_set_tooltip_text (applet->status_icon, NULL); + + if (!nm_client_get_manager_running (applet->nm_client)) { + nma_menu_add_text_item (menu, _("NetworkManager is not running...")); + return; + } + + if (nm_client_get_state (applet->nm_client) == NM_STATE_ASLEEP) { + nma_menu_add_text_item (menu, _("Networking disabled")); + return; + } + + n_wifi = nma_menu_add_devices (menu, applet); + + nma_menu_add_vpn_submenu (menu, applet); + + if (n_wifi > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { + /* Add the "Hidden Wi-Fi network..." entry */ + nma_menu_add_separator_item (menu); + nma_menu_add_hidden_network_item (menu, applet); + nma_menu_add_create_network_item (menu, applet); + } + + gtk_widget_show_all (menu); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static gboolean +destroy_old_menu (gpointer user_data) +{ + g_object_unref (user_data); + return FALSE; +} + +static void +nma_menu_deactivate_cb (GtkWidget *widget, NMApplet *applet) +{ + /* Must punt the destroy to a low-priority idle to ensure that + * the menu items don't get destroyed before any 'activate' signal + * fires for an item. + */ + g_signal_handlers_disconnect_by_func (applet->menu, G_CALLBACK (nma_menu_deactivate_cb), applet); + g_idle_add_full (G_PRIORITY_LOW, destroy_old_menu, applet->menu, NULL); + applet->menu = NULL; + + /* Re-set the tooltip */ + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +} + +static gboolean +is_permission_yes (NMApplet *applet, NMClientPermission perm) +{ + if ( applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_YES + || applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_AUTH) + return TRUE; + return FALSE; +} + +/* + * nma_context_menu_update + * + */ +static void +nma_context_menu_update (NMApplet *applet) +{ + NMState state; + gboolean net_enabled = TRUE; + gboolean have_wifi = FALSE; + gboolean have_wwan = FALSE; + gboolean have_wimax = FALSE; + gboolean wifi_hw_enabled; + gboolean wwan_hw_enabled; + gboolean wimax_hw_enabled; + gboolean notifications_enabled = TRUE; + gboolean sensitive = FALSE; + + state = nm_client_get_state (applet->nm_client); + sensitive = ( state == NM_STATE_CONNECTED_LOCAL + || state == NM_STATE_CONNECTED_SITE + || state == NM_STATE_CONNECTED_GLOBAL); + gtk_widget_set_sensitive (applet->info_menu_item, sensitive); + + /* Update checkboxes, and block 'toggled' signal when updating so that the + * callback doesn't get triggered. + */ + + /* Enabled Networking */ + g_signal_handler_block (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + net_enabled = nm_client_networking_get_enabled (applet->nm_client); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->networking_enabled_item), + net_enabled && (state != NM_STATE_ASLEEP)); + g_signal_handler_unblock (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + gtk_widget_set_sensitive (applet->networking_enabled_item, + is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK)); + + /* Enabled Wi-Fi */ + g_signal_handler_block (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wifi_enabled_item), + nm_client_wireless_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wifi_enabled_item), + wifi_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI)); + + /* Enabled Mobile Broadband */ + g_signal_handler_block (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wwan_enabled_item), + nm_client_wwan_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + + wwan_hw_enabled = nm_client_wwan_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wwan_enabled_item), + wwan_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN)); + + /* Enable WiMAX */ + g_signal_handler_block (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wimax_enabled_item), + nm_client_wimax_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + + wimax_hw_enabled = nm_client_wimax_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), + wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); + + /* Enabled notifications */ + g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + if ( g_settings_get_boolean (applet->gsettings, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_VPN_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + notifications_enabled = FALSE; + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); + g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + + /* Don't show wifi-specific stuff if wifi is off */ + if (state != NM_STATE_ASLEEP) { + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = g_ptr_array_index (devices, i); + + if (NM_IS_DEVICE_WIFI (candidate)) + have_wifi = TRUE; + else if (NM_IS_DEVICE_MODEM (candidate)) + have_wwan = TRUE; + else if (NM_IS_DEVICE_WIMAX (candidate)) + have_wimax = TRUE; + } + } + + if (have_wifi) + gtk_widget_show_all (applet->wifi_enabled_item); + else + gtk_widget_hide (applet->wifi_enabled_item); + + if (have_wwan) + gtk_widget_show_all (applet->wwan_enabled_item); + else + gtk_widget_hide (applet->wwan_enabled_item); + + if (have_wimax) + gtk_widget_show_all (applet->wimax_enabled_item); + else + gtk_widget_hide (applet->wimax_enabled_item); +} + +static void +ce_child_setup (gpointer user_data G_GNUC_UNUSED) +{ + /* We are in the child process at this point */ + pid_t pid = getpid (); + setpgid (pid, pid); +} + +static void +nma_edit_connections_cb (GtkMenuItem *mi, NMApplet *applet) +{ + char *argv[2]; + GError *error = NULL; + gboolean success; + + argv[0] = BINDIR "/nm-connection-editor"; + argv[1] = NULL; + + success = g_spawn_async ("/", argv, NULL, 0, &ce_child_setup, NULL, NULL, &error); + if (!success) { + g_warning ("Error launching connection editor: %s", error->message); + g_error_free (error); + } +} + +static void +applet_connection_info_cb (NMApplet *applet) +{ + applet_info_dialog_show (applet); +} + +/* + * nma_context_menu_create + * + * Generate the contextual popup menu. + * + */ +static GtkWidget *nma_context_menu_create (NMApplet *applet) +{ + GtkMenuShell *menu; + GtkWidget *menu_item; + GtkWidget *image; + guint id; + + g_return_val_if_fail (applet != NULL, NULL); + + menu = GTK_MENU_SHELL (gtk_menu_new ()); + + /* 'Enable Networking' item */ + applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); + id = g_signal_connect (applet->networking_enabled_item, + "toggled", + G_CALLBACK (nma_set_networking_enabled_cb), + applet); + applet->networking_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->networking_enabled_item); + + /* 'Enable Wi-Fi' item */ + applet->wifi_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Wi-Fi")); + id = g_signal_connect (applet->wifi_enabled_item, + "toggled", + G_CALLBACK (nma_set_wifi_enabled_cb), + applet); + applet->wifi_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wifi_enabled_item); + + /* 'Enable Mobile Broadband' item */ + applet->wwan_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Mobile Broadband")); + id = g_signal_connect (applet->wwan_enabled_item, + "toggled", + G_CALLBACK (nma_set_wwan_enabled_cb), + applet); + applet->wwan_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wwan_enabled_item); + + /* 'Enable WiMAX Mobile Broadband' item */ + applet->wimax_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable WiMA_X Mobile Broadband")); + id = g_signal_connect (applet->wimax_enabled_item, + "toggled", + G_CALLBACK (nma_set_wimax_enabled_cb), + applet); + applet->wimax_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wimax_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* Toggle notifications item */ + applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); + id = g_signal_connect (applet->notifications_enabled_item, + "toggled", + G_CALLBACK (nma_set_notifications_enabled_cb), + applet); + applet->notifications_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->notifications_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* 'Connection Information' item */ + applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); + g_signal_connect_swapped (applet->info_menu_item, + "activate", + G_CALLBACK (applet_connection_info_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->info_menu_item), image); + gtk_menu_shell_append (menu, applet->info_menu_item); + + /* 'Edit Connections...' item */ + applet->connections_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Edit Connections...")); + g_signal_connect (applet->connections_menu_item, + "activate", + G_CALLBACK (nma_edit_connections_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); + gtk_menu_shell_append (menu, applet->connections_menu_item); + + /* Separator */ + nma_menu_add_separator_item (GTK_WIDGET (menu)); + +#if 0 /* FIXME: Implement the help callback, nma_help_cb()! */ + /* Help item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Help")); + g_signal_connect (menu_item, "activate", G_CALLBACK (nma_help_cb), applet); + image = gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); +#endif + + /* About item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_About")); + g_signal_connect_swapped (menu_item, "activate", G_CALLBACK (applet_about_dialog_show), applet); + image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + + gtk_widget_show_all (GTK_WIDGET (menu)); + + return GTK_WIDGET (menu); +} + + +/*****************************************************************************/ + +static void +foo_set_icon (NMApplet *applet, GdkPixbuf *pixbuf, guint32 layer) +{ + int i; + + if (layer > ICON_LAYER_MAX) { + g_warning ("Tried to icon to invalid layer %d", layer); + return; + } + + /* Ignore setting of the same icon as is already displayed */ + if (applet->icon_layers[layer] == pixbuf) + return; + + if (applet->icon_layers[layer]) { + g_object_unref (applet->icon_layers[layer]); + applet->icon_layers[layer] = NULL; + } + + if (pixbuf) + applet->icon_layers[layer] = g_object_ref (pixbuf); + + if (!applet->icon_layers[0]) { + nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + pixbuf = g_object_ref (applet->no_connection_icon); + } else { + pixbuf = gdk_pixbuf_copy (applet->icon_layers[0]); + + for (i = ICON_LAYER_LINK + 1; i <= ICON_LAYER_MAX; i++) { + GdkPixbuf *top = applet->icon_layers[i]; + + if (!top) + continue; + + gdk_pixbuf_composite (top, pixbuf, 0, 0, gdk_pixbuf_get_width (top), + gdk_pixbuf_get_height (top), + 0, 0, 1.0, 1.0, + GDK_INTERP_NEAREST, 255); + } + } + + gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); + g_object_unref (pixbuf); +} + + +NMRemoteConnection * +applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) +{ + const GPtrArray *active_connections; + int i; + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMActiveConnection *active; + NMRemoteConnection *connection; + const char *connection_path; + const GPtrArray *devices; + + active = g_ptr_array_index (active_connections, i); + if (!active) + continue; + + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + connection = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (connection) + return connection; + } + return NULL; +} + +static gboolean +select_merged_notification_text (OfflineNotificationContextInfo *info) +{ + info->urgency = NOTIFY_URGENCY_LOW; + /* only do something if this is about full offline state */ + if(info->state != NM_STATE_UNKNOWN || info->device_state != NM_DEVICE_STATE_UNKNOWN) { + info->urgency = NOTIFY_URGENCY_NORMAL; + if (!info->title) + info->title = g_strdup (_("Network")); + if (info->state == NM_STATE_DISCONNECTED || info->state == NM_STATE_ASLEEP) { + info->text = _("Disconnected - you are now offline"); + } else + info->text = _("Disconnected"); + + switch (info->device_type) { + case NM_DEVICE_TYPE_ETHERNET: + info->icon = "notification-network-ethernet-disconnected"; + break; + case NM_DEVICE_TYPE_WIFI: + info->icon = "notification-network-wireless-disconnected"; + break; + case NM_DEVICE_TYPE_MODEM: + info->icon = "notification-gsm-disconnected"; + break; + default: + info->icon = "nm-no-connection"; + break; + } + g_debug("going for offline with icon: %s", info->icon); + return TRUE; + } + return FALSE; +} + +static gboolean +foo_online_offline_deferred_notify (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if(select_merged_notification_text (info)) + if (!g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS)) + applet_do_notify (applet, info->urgency, info->title, + info->text, info->icon, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + _("Don't show this message again"), + notify_dont_show_cb, + applet); + else + g_debug("no notification because merged found that we have nothing to say (e.g. not offline)"); + if (info->title) + g_free (info->title); + info->title = NULL; + g_free (applet->notification_queue_data); + applet->notification_queue_data = NULL; + applet->deferred_id = 0; + return FALSE; +} + +static void +applet_common_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + gboolean device_activating = FALSE, vpn_activating = FALSE; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (new_state) { + case NM_DEVICE_STATE_FAILED: + case NM_DEVICE_STATE_DISCONNECTED: + case NM_DEVICE_STATE_UNMANAGED: + case NM_DEVICE_STATE_UNAVAILABLE: + { + if (old_state != NM_DEVICE_STATE_FAILED && + old_state != NM_DEVICE_STATE_UNKNOWN && + old_state != NM_DEVICE_STATE_DISCONNECTED && + old_state != NM_DEVICE_STATE_UNMANAGED && + old_state != NM_DEVICE_STATE_UNAVAILABLE) { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->device_state = new_state; + info->device_state_reason = reason; + if (info->title) { + g_free(info->title); + info->title = NULL; + } + if (NM_IS_DEVICE_WIFI (device)) { + info->device_type = NM_DEVICE_TYPE_WIFI; + info->title = g_strdup(g_object_get_data (G_OBJECT(device), "canonical-last-essid")); + if (!info->title) + info->title = g_strdup (_("Wireless network")); + } else if (NM_IS_DEVICE_ETHERNET (device)) { + info->device_type = NM_DEVICE_TYPE_ETHERNET; + info->title = g_strdup(_("Wired network")); + } else if (NM_IS_DEVICE_MODEM (device)) { + info->device_type = NM_DEVICE_TYPE_MODEM; + info->title = g_strdup (_("Modem network")); + } else { + info->device_type = NM_DEVICE_TYPE_UNKNOWN; + info->title = g_strdup (_("Network")); + } + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + clear_animation_timeout (applet); + } else { + g_debug ("old state indicates that this was not a disconnect %d", old_state); + } + break; + } + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections or devices might not have come through yet. + */ + device_activating = TRUE; + break; + case NM_DEVICE_STATE_ACTIVATED: + default: + break; + } + + /* If there's an activating device but we're not animating, start animation. + * If we're animating, but there's no activating device or VPN, stop animating. + */ + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); +} + +static void +foo_device_state_changed_cb (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + g_assert (dclass); + + dclass->device_state_changed (device, new_state, old_state, reason, applet); + applet_common_device_state_changed (device, new_state, old_state, reason, applet); + + applet_schedule_update_icon (applet); +} + +static void +foo_device_added_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + if (!dclass) + return; + + if (dclass->device_added) + dclass->device_added (device, applet); + + g_signal_connect (device, "state-changed", + G_CALLBACK (foo_device_state_changed_cb), + user_data); + + foo_device_state_changed_cb (device, + nm_device_get_state (device), + NM_DEVICE_STATE_UNKNOWN, + NM_DEVICE_STATE_REASON_NONE, + applet); +} + +static void +foo_client_state_changed_cb (NMClient *client, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + g_debug("foo_client_state_changed_cb"); + switch (nm_client_get_state (client)) { + case NM_STATE_DISCONNECTED: + case NM_STATE_ASLEEP: + { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->state = nm_client_get_state (client); + select_merged_notification_text (info); + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + /* Fall through */ + } + default: + break; + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_running_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (nm_client_get_manager_running (client)) { + g_message ("NM appeared"); + } else { + g_message ("NM disappeared"); + clear_animation_timeout (applet); + } + + applet_schedule_update_icon (applet); +} + +#define VPN_STATE_ID_TAG "vpn-state-id" + +static void +foo_active_connections_changed_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const GPtrArray *active_list; + int i; + + /* Track the state of new VPN connections */ + active_list = nm_client_get_active_connections (client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + guint id; + + if ( !NM_IS_VPN_CONNECTION (candidate) + || g_object_get_data (G_OBJECT (candidate), VPN_STATE_ID_TAG)) + continue; + + id = g_signal_connect (G_OBJECT (candidate), "vpn-state-changed", + G_CALLBACK (vpn_connection_state_changed), applet); + g_object_set_data (G_OBJECT (candidate), VPN_STATE_ID_TAG, GUINT_TO_POINTER (id)); + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_permission_changed (NMClient *client, + NMClientPermission permission, + NMClientPermissionResult result, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (permission <= NM_CLIENT_PERMISSION_LAST) + applet->permissions[permission] = result; +} + +static gboolean +foo_set_initial_state (gpointer data) +{ + NMApplet *applet = NM_APPLET (data); + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) + foo_device_added_cb (applet->nm_client, NM_DEVICE (g_ptr_array_index (devices, i)), applet); + + foo_active_connections_changed_cb (applet->nm_client, NULL, applet); + + applet_schedule_update_icon (applet); + + return FALSE; +} + +static void +foo_client_setup (NMApplet *applet) +{ + NMClientPermission perm; + + applet->nm_client = nm_client_new (); + if (!applet->nm_client) + return; + + g_signal_connect (applet->nm_client, "notify::state", + G_CALLBACK (foo_client_state_changed_cb), + applet); + g_signal_connect (applet->nm_client, "notify::active-connections", + G_CALLBACK (foo_active_connections_changed_cb), + applet); + g_signal_connect (applet->nm_client, "device-added", + G_CALLBACK (foo_device_added_cb), + applet); + g_signal_connect (applet->nm_client, "notify::manager-running", + G_CALLBACK (foo_manager_running_cb), + applet); + + g_signal_connect (applet->nm_client, "permission-changed", + G_CALLBACK (foo_manager_permission_changed), + applet); + + /* Initialize permissions - the initial 'permission-changed' signal is emitted from NMClient constructor, and thus not caught */ + for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { + applet->permissions[perm] = nm_client_get_permission_result (applet->nm_client, perm); + } + + if (nm_client_get_manager_running (applet->nm_client)) + g_idle_add (foo_set_initial_state, applet); + + applet_schedule_update_icon (applet); +} + +static GdkPixbuf * +applet_common_get_device_icon (NMDeviceState state, NMApplet *applet) +{ + GdkPixbuf *pixbuf = NULL; + int stage = -1; + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + stage = 0; + break; + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + stage = 1; + break; + case NM_DEVICE_STATE_IP_CONFIG: + stage = 2; + break; + default: + break; + } + + if (stage >= 0) { + int i, j; + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { + char *name; + + name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); + nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); + g_free (name); + } + } + + pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_CONNECTING_FRAMES) + applet->animation_step = 0; + } + + return pixbuf; +} + +static char * +get_tip_for_device_state (NMDevice *device, + NMDeviceState state, + NMConnection *connection) +{ + NMSettingConnection *s_con; + char *tip = NULL; + const char *id = NULL; + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + tip = g_strdup_printf (_("Preparing network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + tip = g_strdup_printf (_("Network connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static GdkPixbuf * +applet_get_device_icon_for_state (NMApplet *applet, char **tip) +{ + NMActiveConnection *active; + NMDevice *device = NULL; + GdkPixbuf *pixbuf = NULL; + NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; + NMADeviceClass *dclass; + + // FIXME: handle multiple device states here + + /* First show the best activating device's state */ + active = applet_get_best_activating_connection (applet, &device); + if (!active || !device) { + /* If there aren't any activating devices, then show the state of + * the default active connection instead. + */ + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) + goto out; + } + + state = nm_device_get_state (device); + + dclass = get_device_class (device, applet); + if (dclass) { + NMConnection *connection; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + /* device class returns a referenced pixbuf */ + pixbuf = dclass->get_icon (device, state, connection, tip, applet); + if (!*tip) + *tip = get_tip_for_device_state (device, state, connection); + } + +out: + if (!pixbuf) { + pixbuf = applet_common_get_device_icon (state, applet); + /* reference the pixbuf to match the device class' get_icon() function behavior */ + if (pixbuf) + g_object_ref (pixbuf); + } + return pixbuf; +} + +static char * +get_tip_for_vpn (NMActiveConnection *active, NMVPNConnectionState state, NMApplet *applet) +{ + char *tip = NULL; + const char *path, *id = NULL; + GSList *iter, *list; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + if (!strcmp (nm_connection_get_path (candidate), path)) { + s_con = nm_connection_get_setting_connection (candidate); + id = nm_setting_connection_get_id (s_con); + break; + } + } + g_slist_free (list); + + if (!id) + return NULL; + + switch (state) { + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_PREPARE: + tip = g_strdup_printf (_("Starting VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + tip = g_strdup_printf (_("Requesting a VPN address for '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + tip = g_strdup_printf (_("VPN connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static gboolean +applet_update_icon (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GdkPixbuf *pixbuf = NULL; + NMState state; + char *dev_tip = NULL, *vpn_tip = NULL; + NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; + gboolean nm_running; + NMActiveConnection *active_vpn = NULL; + + applet->update_icon_id = 0; + + nm_running = nm_client_get_manager_running (applet->nm_client); + + /* Handle device state first */ + + state = nm_client_get_state (applet->nm_client); + if (!nm_running) + state = NM_STATE_UNKNOWN; + + switch (state) { + case NM_STATE_UNKNOWN: + case NM_STATE_ASLEEP: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("Networking disabled")); + break; + case NM_STATE_DISCONNECTED: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("No network connection")); + break; + default: + pixbuf = applet_get_device_icon_for_state (applet, &dev_tip); + break; + } + + foo_set_icon (applet, pixbuf, ICON_LAYER_LINK); + if (pixbuf) + g_object_unref (pixbuf); + + /* VPN state next */ + pixbuf = NULL; + active_vpn = applet_get_first_active_vpn_connection (applet, &vpn_state); + if (active_vpn) { + int i; + + switch (vpn_state) { + case NM_VPN_CONNECTION_STATE_ACTIVATED: + pixbuf = nma_icon_check_and_load ("nm-vpn-active-lock", &applet->vpn_lock_icon, applet); + break; + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) { + char *name; + + name = g_strdup_printf ("nm-vpn-connecting%02d", i+1); + nma_icon_check_and_load (name, &applet->vpn_connecting_icons[i], applet); + g_free (name); + } + + pixbuf = applet->vpn_connecting_icons[applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) + applet->animation_step = 0; + break; + default: + break; + } + + vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); + } + foo_set_icon (applet, pixbuf, ICON_LAYER_VPN); + + g_free (applet->tip); + applet->tip = NULL; + + if (dev_tip || vpn_tip) { + GString *tip; + + tip = g_string_new (dev_tip); + + if (vpn_tip) + g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", vpn_tip); + + if (tip->len) + applet->tip = tip->str; + + g_free (vpn_tip); + g_free (dev_tip); + g_string_free (tip, FALSE); + } + + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); + + return FALSE; +} + +void +applet_schedule_update_icon (NMApplet *applet) +{ + if (!applet->update_icon_id) + applet->update_icon_id = g_idle_add (applet_update_icon, applet); +} + +/*****************************************************************************/ + +static SecretsRequest * +applet_secrets_request_new (size_t totsize, + NMConnection *connection, + gpointer request_id, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + NMApplet *applet) +{ + SecretsRequest *req; + + g_return_val_if_fail (totsize >= sizeof (SecretsRequest), NULL); + g_return_val_if_fail (connection != NULL, NULL); + + req = g_malloc0 (totsize); + req->totsize = totsize; + req->connection = g_object_ref (connection); + req->reqid = request_id; + req->setting_name = g_strdup (setting_name); + req->hints = g_strdupv ((char **) hints); + req->flags = flags; + req->callback = callback; + req->callback_data = callback_data; + req->applet = applet; + return req; +} + +void +applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func) +{ + req->free_func = free_func; +} + +void +applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error) +{ + req->callback (req->applet->agent, error ? NULL : settings, error, req->callback_data); +} + +void +applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error) +{ + NMSetting *setting; + GHashTable *settings = NULL, *secrets; + + if (setting_name && !error) { + setting = nm_connection_get_setting_by_name (req->connection, setting_name); + if (setting) { + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, g_strdup (setting_name), secrets); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, setting_name); + } + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled setting '%s'", + __FILE__, __LINE__, __func__, setting_name); + } + } + + req->callback (req->applet->agent, settings, error, req->callback_data); +} + +void +applet_secrets_request_free (SecretsRequest *req) +{ + g_return_if_fail (req != NULL); + + if (req->free_func) + req->free_func (req); + + req->applet->secrets_reqs = g_slist_remove (req->applet->secrets_reqs, req); + + g_object_unref (req->connection); + g_free (req->setting_name); + g_strfreev (req->hints); + memset (req, 0, req->totsize); + g_free (req); +} + +static void +get_existing_secrets_cb (NMSecretAgent *agent, + NMConnection *connection, + GHashTable *secrets, + GError *secrets_error, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMADeviceClass *dclass; + GError *error = NULL; + + /* Merge existing secrets into connection; ignore errors */ + nm_connection_update_secrets (connection, req->setting_name, secrets, NULL); + + dclass = get_device_class_from_connection (connection, req->applet); + g_assert (dclass); + + /* Let the device class handle secrets */ + if (!dclass->get_secrets (req, &error)) { + g_warning ("%s:%d - %s", __func__, __LINE__, error ? error->message : "(unknown)"); + applet_secrets_request_complete (req, NULL, error); + applet_secrets_request_free (req); + g_error_free (error); + } + /* Otherwise success; wait for the secrets callback */ +} + +static void +applet_agent_get_secrets_cb (AppletAgent *agent, + gpointer request_id, + NMConnection *connection, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMSettingConnection *s_con; + NMADeviceClass *dclass; + GError *error = NULL; + SecretsRequest *req = NULL; + + s_con = nm_connection_get_setting_connection (connection); + g_return_if_fail (s_con != NULL); + + /* VPN secrets get handled a bit differently */ + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + req = applet_secrets_request_new (applet_vpn_request_get_secrets_size (), + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + if (!applet_vpn_request_get_secrets (req, &error)) + goto error; + + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + return; + } + + dclass = get_device_class_from_connection (connection, applet); + if (!dclass) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): device type unknown", + __FILE__, __LINE__, __func__); + goto error; + } + + if (!dclass->get_secrets) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NO_SECRETS, + "%s.%d (%s): no secrets found", + __FILE__, __LINE__, __func__); + goto error; + } + + g_assert (dclass->secrets_request_size); + req = applet_secrets_request_new (dclass->secrets_request_size, + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + + /* Get existing secrets, if any */ + nm_secret_agent_get_secrets (NM_SECRET_AGENT (applet->agent), + connection, + setting_name, + hints, + NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE, + get_existing_secrets_cb, + req); + return; + +error: + g_warning ("%s", error->message); + callback (agent, NULL, error, callback_data); + g_error_free (error); + + if (req) + applet_secrets_request_free (req); +} + +static void +applet_agent_cancel_secrets_cb (AppletAgent *agent, + gpointer request_id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GSList *iter; + + for (iter = applet->secrets_reqs; iter; iter = g_slist_next (iter)) { + SecretsRequest *req = iter->data; + + if (req->reqid == request_id) { + /* cancel and free this password request */ + applet_secrets_request_free (req); + } + } +} + +static void +applet_agent_registered_cb (AppletAgent *agent, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + /* If the shell is running and the agent just got registered, unregister it */ + if ( (nm_shell_watcher_version_at_least (applet->shell_watcher, 3, 4)) + && nm_secret_agent_get_registered (NM_SECRET_AGENT (agent))) { + g_message ("Stopping registered applet secret agent because GNOME Shell is running"); + nm_secret_agent_unregister (NM_SECRET_AGENT (agent)); + } +} + +/*****************************************************************************/ + +static void +nma_clear_icon (GdkPixbuf **icon, NMApplet *applet) +{ + g_return_if_fail (icon != NULL); + g_return_if_fail (applet != NULL); + + if (*icon && (*icon != applet->fallback_icon)) { + g_object_unref (*icon); + *icon = NULL; + } +} + +static void nma_icons_free (NMApplet *applet) +{ + int i, j; + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); + + nma_clear_icon (&applet->no_connection_icon, applet); + nma_clear_icon (&applet->ethernet_icon, applet); + nma_clear_icon (&applet->adhoc_icon, applet); + nma_clear_icon (&applet->wwan_icon, applet); + nma_clear_icon (&applet->wwan_tower_icon, applet); + nma_clear_icon (&applet->vpn_lock_icon, applet); + nma_clear_icon (&applet->wifi_00_icon, applet); + nma_clear_icon (&applet->wifi_25_icon, applet); + nma_clear_icon (&applet->wifi_50_icon, applet); + nma_clear_icon (&applet->wifi_75_icon, applet); + nma_clear_icon (&applet->wifi_100_icon, applet); + nma_clear_icon (&applet->secure_lock_icon, applet); + + nma_clear_icon (&applet->mb_tech_1x_icon, applet); + nma_clear_icon (&applet->mb_tech_evdo_icon, applet); + nma_clear_icon (&applet->mb_tech_gprs_icon, applet); + nma_clear_icon (&applet->mb_tech_edge_icon, applet); + nma_clear_icon (&applet->mb_tech_umts_icon, applet); + nma_clear_icon (&applet->mb_tech_hspa_icon, applet); + nma_clear_icon (&applet->mb_tech_lte_icon, applet); + nma_clear_icon (&applet->mb_roaming_icon, applet); + nma_clear_icon (&applet->mb_tech_3g_icon, applet); + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) + nma_clear_icon (&applet->network_connecting_icons[i][j], applet); + } + + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) + nma_clear_icon (&applet->vpn_connecting_icons[i], applet); + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); +} + +GdkPixbuf * +nma_icon_check_and_load (const char *name, GdkPixbuf **icon, NMApplet *applet) +{ + GError *error = NULL; + + g_return_val_if_fail (name != NULL, NULL); + g_return_val_if_fail (icon != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + /* icon already loaded successfully */ + if (*icon && (*icon != applet->fallback_icon)) + return *icon; + + /* Try to load the icon; if the load fails, log the problem, and set + * the icon to the fallback icon if requested. + */ + *icon = gtk_icon_theme_load_icon (applet->icon_theme, name, applet->icon_size, 0, &error); + if (!*icon) { + g_warning ("Icon %s missing: (%d) %s", + name, + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + + *icon = applet->fallback_icon; + } + return *icon; +} + +#include "fallback-icon.h" + +static gboolean +nma_icons_reload (NMApplet *applet) +{ + GError *error = NULL; + GdkPixbufLoader *loader; + + g_return_val_if_fail (applet->icon_size > 0, FALSE); + + nma_icons_free (applet); + + loader = gdk_pixbuf_loader_new_with_type ("png", &error); + if (!loader) + goto error; + + if (!gdk_pixbuf_loader_write (loader, + fallback_icon_data, + sizeof (fallback_icon_data), + &error)) + goto error; + + if (!gdk_pixbuf_loader_close (loader, &error)) + goto error; + + applet->fallback_icon = gdk_pixbuf_loader_get_pixbuf (loader); + g_object_ref (applet->fallback_icon); + g_assert (applet->fallback_icon); + g_object_unref (loader); + + return TRUE; + +error: + g_warning ("Could not load fallback icon: (%d) %s", + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + /* Die if we can't get a fallback icon */ + g_assert (FALSE); + return FALSE; +} + +static void nma_icon_theme_changed (GtkIconTheme *icon_theme, NMApplet *applet) +{ + nma_icons_reload (applet); +} + +static void nma_icons_init (NMApplet *applet) +{ + GdkScreen *screen; + gboolean path_appended; + + if (applet->icon_theme) { + g_signal_handlers_disconnect_by_func (applet->icon_theme, + G_CALLBACK (nma_icon_theme_changed), + applet); + g_object_unref (G_OBJECT (applet->icon_theme)); + } + + screen = gtk_status_icon_get_screen (applet->status_icon); + g_assert (screen); + applet->icon_theme = gtk_icon_theme_get_for_screen (screen); + + /* If not done yet, append our search path */ + path_appended = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended")); + if (path_appended == FALSE) { + gtk_icon_theme_append_search_path (applet->icon_theme, ICONDIR); + g_object_set_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended", + GINT_TO_POINTER (TRUE)); + } + + g_signal_connect (applet->icon_theme, "changed", G_CALLBACK (nma_icon_theme_changed), applet); +} + +static void +status_icon_screen_changed_cb (GtkStatusIcon *icon, + GParamSpec *pspec, + NMApplet *applet) +{ + nma_icons_init (applet); + nma_icon_theme_changed (NULL, applet); +} + +static gboolean +status_icon_size_changed_cb (GtkStatusIcon *icon, + gint size, + NMApplet *applet) +{ + if (getenv ("NMA_SIZE_DEBUG")) { + g_message ("%s(): status icon size now %d", __func__, size); + } + + /* icon_size may be 0 if for example the panel hasn't given us any space + * yet. We'll get resized later, but for now just load the 16x16 icons. + */ + applet->icon_size = MAX (16, size); + + nma_icons_reload (applet); + + applet_schedule_update_icon (applet); + + return TRUE; +} + +static void +status_icon_activate_cb (GtkStatusIcon *icon, NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + applet_clear_notify (applet); + + /* Kill any old menu */ + if (applet->menu) + g_object_unref (applet->menu); + + /* And make a fresh new one */ + applet->menu = gtk_menu_new (); + /* Sink the ref so we can explicitly destroy the menu later */ + g_object_ref_sink (G_OBJECT (applet->menu)); + + gtk_container_set_border_width (GTK_CONTAINER (applet->menu), 0); + g_signal_connect (applet->menu, "show", G_CALLBACK (nma_menu_show_cb), applet); + g_signal_connect (applet->menu, "deactivate", G_CALLBACK (nma_menu_deactivate_cb), applet); + + /* Display the new menu */ + gtk_menu_popup (GTK_MENU (applet->menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + 1, gtk_get_current_event_time ()); +} + +static void +status_icon_popup_menu_cb (GtkStatusIcon *icon, + guint button, + guint32 activate_time, + NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + applet_clear_notify (applet); + + nma_context_menu_update (applet); + gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + button, activate_time); +} + +static gboolean +setup_widgets (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->status_icon = gtk_status_icon_new (); + if (!applet->status_icon) + return FALSE; + if (shell_debug) + gtk_status_icon_set_name (applet->status_icon, "adsfasdfasdfadfasdf"); + + g_signal_connect (applet->status_icon, "notify::screen", + G_CALLBACK (status_icon_screen_changed_cb), applet); + g_signal_connect (applet->status_icon, "size-changed", + G_CALLBACK (status_icon_size_changed_cb), applet); + g_signal_connect (applet->status_icon, "activate", + G_CALLBACK (status_icon_activate_cb), applet); + g_signal_connect (applet->status_icon, "popup-menu", + G_CALLBACK (status_icon_popup_menu_cb), applet); + + applet->context_menu = nma_context_menu_create (applet); + if (!applet->context_menu) + return FALSE; + + return TRUE; +} + +static void +applet_embedded_cb (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + gboolean embedded = gtk_status_icon_is_embedded (GTK_STATUS_ICON (object)); + + g_message ("applet now %s the notification area", + embedded ? "embedded in" : "removed from"); +} + +#if GLIB_CHECK_VERSION(2,26,0) +static gboolean +delayed_start_agent (gpointer user_data) +{ + NMApplet *applet = user_data; + + applet->agent_start_id = 0; + + g_assert (applet->agent); + + /* If the agent is already running, there's nothing to do. */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent)) == TRUE) + return FALSE; + + if (nm_secret_agent_register (NM_SECRET_AGENT (applet->agent))) + g_message ("Starting applet secret agent because GNOME Shell disappeared"); + else + g_warning ("Failed to start applet secret agent!"); + return FALSE; +} + +static void +shell_version_changed_cb (NMShellWatcher *watcher, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = user_data; + + if (applet->agent_start_id) { + g_source_remove (applet->agent_start_id); + applet->agent_start_id = 0; + } + + if (!applet->agent) + return; + + if (nm_shell_watcher_version_at_least (watcher, 3, 4)) { + /* GNOME Shell handles all secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) { + g_message ("Stopping applet secret agent because GNOME Shell appeared"); + nm_secret_agent_unregister (NM_SECRET_AGENT (applet->agent)); + } + } else if (nm_shell_watcher_version_at_least (watcher, 3, 2)) { + /* GNOME Shell handles everything except VPN secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + g_message ("Applet secret agent handling only VPN secrets because GNOME Shell appeared"); + applet_agent_handle_vpn_only (applet->agent, TRUE); + } else { + /* If the shell quit and our agent wasn't already registered, do it + * now on a delay (just in case the shell is restarting). + */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + applet->agent_start_id = g_timeout_add_seconds (4, delayed_start_agent, applet); + applet_agent_handle_vpn_only (applet->agent, FALSE); + } +} +#endif + +static gboolean +dbus_setup (NMApplet *applet, GError **error) +{ + DBusConnection *connection; + DBusGProxy *proxy; + guint result; + gboolean success; + + applet->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, error); + if (!applet->bus) + return FALSE; + + connection = dbus_g_connection_get_connection (applet->bus); + dbus_connection_set_exit_on_disconnect (connection, FALSE); + + applet->session_bus = dbus_g_bus_get (DBUS_BUS_SESSION, error); + if (!applet->session_bus) + return FALSE; + + dbus_g_connection_register_g_object (applet->session_bus, + "/org/gnome/network_manager_applet", + G_OBJECT (applet)); + + proxy = dbus_g_proxy_new_for_name (applet->session_bus, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + success = dbus_g_proxy_call (proxy, "RequestName", error, + G_TYPE_STRING, "org.gnome.network_manager_applet", + G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE, + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID); + g_object_unref (proxy); + + return success; +} + +static GObject * +constructor (GType type, + guint n_props, + GObjectConstructParam *construct_props) +{ + NMApplet *applet; + GError* error = NULL; + + applet = NM_APPLET (G_OBJECT_CLASS (nma_parent_class)->constructor (type, n_props, construct_props)); + + g_set_application_name (_("NetworkManager Applet")); + gtk_window_set_default_icon_name (GTK_STOCK_NETWORK); + + applet->info_dialog_ui = gtk_builder_new (); + + if (!gtk_builder_add_from_file (applet->info_dialog_ui, UIDIR "/info.ui", &error)) { + g_warning ("Couldn't load info dialog ui file: %s", error->message); + g_error_free (error); + goto error; + } + + applet->gsettings = g_settings_new (APPLET_PREFS_SCHEMA); + + /* Load pixmaps and create applet widgets */ + if (!setup_widgets (applet)) + goto error; + nma_icons_init (applet); + + if (!notify_is_initted ()) + notify_init ("NetworkManager"); + + if (!dbus_setup (applet, &error)) { + g_warning ("Failed to initialize D-Bus: %s", error->message); + g_error_free (error); + goto error; + } + applet->settings = nm_remote_settings_new (applet->bus); + +#ifdef BUILD_MIGRATION_TOOL + { + char *argv[2] = { LIBEXECDIR "/nm-applet-migration-tool", NULL }; + int status; + + /* Move user connections to the system */ + if (!g_spawn_sync (NULL, argv, NULL, 0, NULL, NULL, + NULL, NULL, &status, &error)) { + g_warning ("Could not run nm-applet-migration-tool: %s", + error->message); + g_error_free (error); + } else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { + g_warning ("nm-applet-migration-tool exited with error"); + } + } +#endif + + applet->agent = applet_agent_new (); + g_assert (applet->agent); + g_signal_connect (applet->agent, APPLET_AGENT_GET_SECRETS, + G_CALLBACK (applet_agent_get_secrets_cb), applet); + g_signal_connect (applet->agent, APPLET_AGENT_CANCEL_SECRETS, + G_CALLBACK (applet_agent_cancel_secrets_cb), applet); + g_signal_connect (applet->agent, "notify::" NM_SECRET_AGENT_REGISTERED, + G_CALLBACK (applet_agent_registered_cb), applet); + + /* Initialize device classes */ + applet->ethernet_class = applet_device_ethernet_get_class (applet); + g_assert (applet->ethernet_class); + + applet->wifi_class = applet_device_wifi_get_class (applet); + g_assert (applet->wifi_class); + + applet->gsm_class = applet_device_gsm_get_class (applet); + g_assert (applet->gsm_class); + + applet->cdma_class = applet_device_cdma_get_class (applet); + g_assert (applet->cdma_class); + + applet->bt_class = applet_device_bt_get_class (applet); + g_assert (applet->bt_class); + + applet->wimax_class = applet_device_wimax_get_class (applet); + g_assert (applet->wimax_class); + + foo_client_setup (applet); + + /* Track embedding to help debug issues where user has removed the + * notification area applet from the panel, and thus nm-applet too. + */ + g_signal_connect (applet->status_icon, "notify::embedded", + G_CALLBACK (applet_embedded_cb), NULL); + applet_embedded_cb (G_OBJECT (applet->status_icon), NULL, NULL); + +#if GLIB_CHECK_VERSION(2,26,0) + /* Watch GNOME Shell so we can unregister our applet agent if it appears */ + applet->shell_watcher = nm_shell_watcher_new (); + g_signal_connect (applet->shell_watcher, + "notify::shell-version", + G_CALLBACK (shell_version_changed_cb), + applet); +#endif + + return G_OBJECT (applet); + +error: + g_object_unref (applet); + return NULL; +} + +static void finalize (GObject *object) +{ + NMApplet *applet = NM_APPLET (object); + + g_slice_free (NMADeviceClass, applet->ethernet_class); + g_slice_free (NMADeviceClass, applet->wifi_class); + g_slice_free (NMADeviceClass, applet->gsm_class); + g_slice_free (NMADeviceClass, applet->cdma_class); + g_slice_free (NMADeviceClass, applet->bt_class); + g_slice_free (NMADeviceClass, applet->wimax_class); + + if (applet->update_icon_id) + g_source_remove (applet->update_icon_id); + + if (applet->menu) + g_object_unref (applet->menu); + nma_icons_free (applet); + + g_free (applet->tip); + + while (g_slist_length (applet->secrets_reqs)) + applet_secrets_request_free ((SecretsRequest *) applet->secrets_reqs->data); + + if (applet->notification) { + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + } + + if (applet->info_dialog_ui) + g_object_unref (applet->info_dialog_ui); + + if (applet->gsettings) + g_object_unref (applet->gsettings); + + if (applet->status_icon) + g_object_unref (applet->status_icon); + + if (applet->nm_client) + g_object_unref (applet->nm_client); + + if (applet->fallback_icon) + g_object_unref (applet->fallback_icon); + + if (applet->agent) + g_object_unref (applet->agent); + + if (applet->settings) + g_object_unref (applet->settings); + + if (applet->bus) + dbus_g_connection_unref (applet->bus); + + if (applet->session_bus) + dbus_g_connection_unref (applet->session_bus); + +#if GLIB_CHECK_VERSION(2,26,0) + if (applet->shell_watcher) + g_object_unref (applet->shell_watcher); +#endif + if (applet->agent_start_id) + g_source_remove (applet->agent_start_id); + + G_OBJECT_CLASS (nma_parent_class)->finalize (object); +} + +static void nma_init (NMApplet *applet) +{ + applet->animation_id = 0; + applet->animation_step = 0; + applet->icon_theme = NULL; + applet->notification = NULL; + applet->icon_size = 16; +} + +enum { + PROP_0, + PROP_LOOP, + LAST_PROP +}; + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMApplet *applet = NM_APPLET (object); + + switch (prop_id) { + case PROP_LOOP: + applet->loop = g_value_get_pointer (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void nma_class_init (NMAppletClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GParamSpec *pspec; + + oclass->set_property = set_property; + oclass->constructor = constructor; + oclass->finalize = finalize; + + pspec = g_param_spec_pointer ("loop", "Loop", "Applet mainloop", G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); + g_object_class_install_property (oclass, PROP_LOOP, pspec); + + dbus_g_object_type_install_info (NM_TYPE_APPLET, &dbus_glib_nma_object_info); +} + +NMApplet * +nm_applet_new (GMainLoop *loop) +{ + return g_object_new (NM_TYPE_APPLET, "loop", loop, NULL); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/lp460144_correctly_update_notification.patch/src/applet.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp460144_correctly_update_notification.patch/src/applet.c --- network-manager-applet-0.9.4.1/.pc/lp460144_correctly_update_notification.patch/src/applet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp460144_correctly_update_notification.patch/src/applet.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,3710 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2012 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + * + * This applet used the GNOME Wireless Applet as a skeleton to build from. + * + * GNOME Wireless Applet Authors: + * Eskil Heyn Olsen + * Bastien Nocera (Gnome2 port) + * + * (C) Copyright 2001, 2002 Free Software Foundation + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "applet-device-wifi.h" +#include "applet-device-gsm.h" +#include "applet-device-cdma.h" +#include "applet-device-bt.h" +#include "applet-device-wimax.h" +#include "applet-dialogs.h" +#include "nm-wifi-dialog.h" +#include "applet-vpn-request.h" +#include "utils.h" +#include "shell-watcher.h" +#include "nm-ui-utils.h" + +#define NOTIFY_CAPS_ACTIONS_KEY "actions" + +extern gboolean shell_debug; + +G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) + +/********************************************************************/ +/* Temporary dbus interface stuff */ + +static gboolean +impl_dbus_connect_to_hidden_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_connect_to_hidden_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_create_wifi_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_can_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NOT_AUTHORIZED, + "Creation of Wi-Fi networks has been disabled by system policy."); + return FALSE; + } + + if (!applet_wifi_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_8021x_network (NMApplet *applet, + const char *device_path, + const char *ap_path, + GError **error) +{ + NMDevice *device; + NMAccessPoint *ap; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_WIFI (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + ap = nm_device_wifi_get_access_point_by_path (NM_DEVICE_WIFI (device), ap_path); + if (!ap) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point could not be found."); + return FALSE; + } + + /* FIXME: this doesn't account for Dynamic WEP */ + if ( !(nm_access_point_get_wpa_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + && !(nm_access_point_get_rsn_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point had no 802.1x capabilities"); + return FALSE; + } + + if (!applet_wifi_connect_to_8021x_network (applet, device, ap)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_3g_network (NMApplet *applet, + const char *device_path, + GError **error) +{ + NMDevice *device; + NMDeviceModemCapabilities caps; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_MODEM (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + applet_gsm_connect_network (applet, device); + } else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + applet_cdma_connect_network (applet, device); + } else { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device had no GSM or CDMA capabilities."); + return FALSE; + } + + return TRUE; +} + +#include "applet-dbus-bindings.h" + +/********************************************************************/ + +static inline NMADeviceClass * +get_device_class (NMDevice *device, NMApplet *applet) +{ + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + if (NM_IS_DEVICE_ETHERNET (device)) + return applet->ethernet_class; + else if (NM_IS_DEVICE_WIFI (device)) + return applet->wifi_class; + else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + return applet->gsm_class; + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + return applet->cdma_class; + else + g_message ("%s: unhandled modem capabilities 0x%X", __func__, caps); + } else if (NM_IS_DEVICE_BT (device)) + return applet->bt_class; + else if (NM_IS_DEVICE_WIMAX (device)) + return applet->wimax_class; + else + g_debug ("%s: Unknown device type '%s'", __func__, G_OBJECT_TYPE_NAME (device)); + return NULL; +} + +static inline NMADeviceClass * +get_device_class_from_connection (NMConnection *connection, NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *ctype; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + ctype = nm_setting_connection_get_connection_type (s_con); + g_return_val_if_fail (ctype != NULL, NULL); + + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME) || !strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return applet->ethernet_class; + else if (!strcmp (ctype, NM_SETTING_WIRELESS_SETTING_NAME)) + return applet->wifi_class; + else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME)) + return applet->gsm_class; + else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME)) + return applet->cdma_class; + else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) + return applet->bt_class; + else + g_warning ("%s: unhandled connection type '%s'", __func__, ctype); + return NULL; +} + +struct _OfflineNotificationContextInfo { + NMState state; + NMDeviceState device_state; + NMDeviceStateReason device_state_reason; + NMDeviceType device_type; + gchar* title; + const gchar* text; + const gchar* icon; + NotifyUrgency urgency; +}; + +typedef struct _OfflineNotificationContextInfo OfflineNotificationContextInfo; + +static NMActiveConnection * +applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *best = NULL; + NMDevice *best_dev = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const GPtrArray *devices; + NMDevice *candidate_dev; + + if (nm_active_connection_get_state (candidate) != NM_ACTIVE_CONNECTION_STATE_ACTIVATING) + continue; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (!best_dev) { + best_dev = candidate_dev; + best = candidate; + continue; + } + + if (NM_IS_DEVICE_WIFI (best_dev)) { + if (NM_IS_DEVICE_ETHERNET (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (NM_IS_DEVICE_MODEM (best_dev)) { + NMDeviceModemCapabilities best_caps; + NMDeviceModemCapabilities candidate_caps = NM_DEVICE_MODEM_CAPABILITY_NONE; + + best_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (best_dev)); + if (NM_IS_DEVICE_MODEM (candidate_dev)) + candidate_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (candidate_dev)); + + if (best_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (best_caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev) + || (candidate_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { + best_dev = candidate_dev; + best = candidate; + } + } + } + } + + *device = best_dev; + return best; +} + +static NMActiveConnection * +applet_get_default_active_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *default_ac = NULL; + NMDevice *non_default_device = NULL; + NMActiveConnection *non_default_ac = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + NMDevice *candidate_dev; + const GPtrArray *devices; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (nm_active_connection_get_default (candidate)) { + if (!default_ac) { + *device = candidate_dev; + default_ac = candidate; + } + } else { + if (!non_default_ac) { + non_default_device = candidate_dev; + non_default_ac = candidate; + } + } + } + + /* Prefer the default connection if one exists, otherwise return the first + * non-default connection. + */ + if (!default_ac && non_default_ac) { + default_ac = non_default_ac; + *device = non_default_device; + } + return default_ac; +} + +NMRemoteSettings * +applet_get_settings (NMApplet *applet) +{ + return applet->settings; +} + +GSList * +applet_get_all_connections (NMApplet *applet) +{ + GSList *connections, *iter, *next; + NMConnection *connection; + NMSettingConnection *s_con; + + connections = nm_remote_settings_list_connections (applet->settings); + + /* Ignore slave connections */ + for (iter = connections; iter; iter = next) { + connection = iter->data; + next = iter->next; + + s_con = nm_connection_get_setting_connection (connection); + if (s_con && nm_setting_connection_get_master (s_con)) + connections = g_slist_delete_link (connections, iter); + } + + return connections; +} + +static NMConnection * +applet_get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMActiveConnection * +applet_get_active_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + int i; + const char *cpath; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + const char *active_cpath = nm_active_connection_get_connection (active); + + if (active_cpath && !strcmp (active_cpath, cpath)) + return active; + } + return NULL; +} + +NMDevice * +applet_get_device_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + const char *cpath; + int i; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + + if (!g_strcmp0 (nm_active_connection_get_connection (active), cpath)) + return g_ptr_array_index (nm_active_connection_get_devices (active), 0); + } + return NULL; +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + char *specific_object; + NMConnection *connection; +} AppletItemActivateInfo; + +static void +applet_item_activate_info_destroy (AppletItemActivateInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + g_free (info->specific_object); + if (info->connection) + g_object_unref (info->connection); + memset (info, 0, sizeof (AppletItemActivateInfo)); + g_free (info); +} + +static void +add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add/activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +applet_menu_item_activate_helper_new_connection (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + AppletItemActivateInfo *info = user_data; + + if (canceled) { + applet_item_activate_info_destroy (info); + return; + } + + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + info->specific_object, + add_and_activate_cb, + info->applet); + + applet_item_activate_info_destroy (info); +} + +static void +disconnect_cb (NMDevice *device, GError *error, gpointer user_data) +{ + if (error) { + const char *text = _("Device disconnect failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s: %s", __func__, text, err_text); + utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } +} + +void +applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet) +{ + g_return_if_fail (NM_IS_DEVICE (device)); + + nm_device_disconnect (device, disconnect_cb, NULL); +} + +static void +activate_connection_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Connection activation failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +void +applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data) +{ + AppletItemActivateInfo *info; + NMADeviceClass *dclass; + + g_return_if_fail (NM_IS_DEVICE (device)); + + if (connection) { + /* If the menu item had an associated connection already, just tell + * NM to activate that connection. + */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + specific_object, + activate_connection_cb, + applet); + return; + } + + /* If no connection was given, ask the device class to create a new + * default connection for this device type. This could be a wizard, + * and thus take a while. + */ + + info = g_malloc0 (sizeof (AppletItemActivateInfo)); + info->applet = applet; + info->specific_object = g_strdup (specific_object); + info->device = g_object_ref (device); + + dclass = get_device_class (device, applet); + g_assert (dclass); + if (!dclass->new_auto_connection (device, dclass_data, + applet_menu_item_activate_helper_new_connection, + info)) { + g_warning ("Couldn't create default connection."); + applet_item_activate_info_destroy (info); + } +} + +void +applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos) +{ + GtkWidget *menu_item = gtk_image_menu_item_new (); +#if GTK_CHECK_VERSION(3,1,6) + GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); +#else + GtkWidget *box = gtk_hbox_new (FALSE, 0); +#endif + GtkWidget *xlabel = NULL; + + if (label) { + xlabel = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (xlabel), label); + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2); + } + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + + g_object_set (G_OBJECT (menu_item), + "child", box, + "sensitive", FALSE, + NULL); + if (pos < 0) + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + else + gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, pos); + return; +} + +GtkWidget * +applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active) +{ + GtkWidget *item; + NMSettingConnection *s_con; + char *markup; + GtkWidget *label; + + s_con = nm_connection_get_setting_connection (connection); + item = gtk_image_menu_item_new_with_label (""); + if (add_active && (active == connection)) { + /* Pure evil */ + label = gtk_bin_get_child (GTK_BIN (item)); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + markup = g_markup_printf_escaped ("%s", nm_setting_connection_get_id (s_con)); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + } else + gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); + + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + return item; +} + +#define TITLE_TEXT_R ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_G ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_B ((double) 0x5e / 255.0 ) + +static void +menu_item_draw_generic (GtkWidget *widget, cairo_t *cr) +{ + GtkWidget *label; + PangoFontDescription *desc; + PangoLayout *layout; + int width = 0, height = 0, owidth, oheight; + gdouble extraheight = 0, extrawidth = 0; + const char *text; + gdouble xpadding = 10.0; + gdouble ypadding = 5.0; + gdouble postpadding = 0.0; + + label = gtk_bin_get_child (GTK_BIN (widget)); + text = gtk_label_get_text (GTK_LABEL (label)); + + layout = pango_cairo_create_layout (cr); +#if GTK_CHECK_VERSION(2,20,0) && !GTK_CHECK_VERSION(2,91,6) + { + GtkStyle *style; + style = gtk_widget_get_style (widget); + desc = pango_font_description_copy (style->font_desc); + } +#else + { + GtkStyleContext *style; + style = gtk_widget_get_style_context (widget); + gtk_style_context_get (style, gtk_style_context_get_state (style), + "font", &desc, + NULL); + } +#endif + pango_font_description_set_variant (desc, PANGO_VARIANT_SMALL_CAPS); + pango_font_description_set_weight (desc, PANGO_WEIGHT_SEMIBOLD); + pango_layout_set_font_description (layout, desc); + pango_layout_set_text (layout, text, -1); + pango_cairo_update_layout (cr, layout); + pango_layout_get_size (layout, &owidth, &oheight); + width = owidth / PANGO_SCALE; + height += oheight / PANGO_SCALE; + + cairo_save (cr); + + cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); + cairo_rectangle (cr, 0, 0, + (double) (width + 2 * xpadding), + (double) (height + ypadding + postpadding)); + cairo_fill (cr); + + /* now the in-padding content */ + cairo_translate (cr, xpadding , ypadding); + cairo_set_source_rgb (cr, TITLE_TEXT_R, TITLE_TEXT_G, TITLE_TEXT_B); + cairo_move_to (cr, extrawidth, extraheight); + pango_cairo_show_layout (cr, layout); + + cairo_restore(cr); + + pango_font_description_free (desc); + g_object_unref (layout); + + gtk_widget_set_size_request (widget, width + 2 * xpadding, height + ypadding + postpadding); +} + +#if GTK_CHECK_VERSION(2,90,7) +static gboolean +menu_title_item_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) +{ + menu_item_draw_generic (widget, cr); + return TRUE; +} +#else +static gboolean +menu_title_item_expose (GtkWidget *widget, GdkEventExpose *event) +{ + GtkAllocation allocation; + cairo_t *cr; + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + /* The drawing area we get is the whole menu; clip the drawing to the + * event area, which should just be our menu item. + */ + cairo_rectangle (cr, + event->area.x, event->area.y, + event->area.width, event->area.height); + cairo_clip (cr); + + /* We also need to reposition the cairo context so that (0, 0) is the + * top-left of where we're supposed to start drawing. + */ + gtk_widget_get_allocation (widget, &allocation); + cairo_translate (cr, allocation.x, allocation.y); + + menu_item_draw_generic (widget, cr); + + cairo_destroy (cr); + return TRUE; +} +#endif + +GtkWidget * +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text) +{ + GtkWidget *item; + + item = gtk_menu_item_new_with_mnemonic (text); + gtk_widget_set_sensitive (item, FALSE); +#if GTK_CHECK_VERSION(2,90,7) + g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL); +#else + g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); +#endif + return item; +} + +static void +applet_clear_notify (NMApplet *applet) +{ + if (applet->notification == NULL) + return; + + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + applet->notification = NULL; +} + +static gboolean +applet_notify_server_has_actions (void) +{ + static gboolean has_actions = FALSE; + static gboolean initialized = FALSE; + GList *server_caps, *iter; + + if (initialized) + return has_actions; + initialized = TRUE; + + server_caps = notify_get_server_caps(); + for (iter = server_caps; iter; iter = g_list_next (iter)) { + if (!strcmp ((const char *) iter->data, NOTIFY_CAPS_ACTIONS_KEY)) { + has_actions = TRUE; + break; + } + } + g_list_foreach (server_caps, (GFunc) g_free, NULL); + g_list_free (server_caps); + + return has_actions; +} + +void +applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data) +{ + NotifyNotification *notify; + GError *error = NULL; + char *escaped; + + g_return_if_fail (applet != NULL); + g_return_if_fail (summary != NULL); + g_return_if_fail (message != NULL); + + if (!gtk_status_icon_is_embedded (applet->status_icon)) + return; + + /* if we're not registered, don't notify either */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + return; + + applet_clear_notify (applet); + + escaped = utils_escape_notify_message (message); + notify = notify_notification_new (summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK +#if HAVE_LIBNOTIFY_07 + ); +#else + , NULL); +#endif + g_free (escaped); + applet->notification = notify; + +#if HAVE_LIBNOTIFY_07 + notify_notification_set_hint (notify, "transient", g_variant_new_boolean (TRUE)); +#else + notify_notification_attach_to_status_icon (notify, applet->status_icon); +#endif + notify_notification_set_urgency (notify, urgency); + notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT); + + if (applet_notify_server_has_actions () && action1) { + notify_notification_add_action (notify, action1, action1_label, + action1_cb, action1_user_data, NULL); + } + + if (!notify_notification_show (notify, &error)) { + g_warning ("Failed to show notification: %s", + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + } +} + +static void +notify_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id) + return; + + if ( strcmp (id, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_VPN_NOTIFICATIONS)) + return; + + g_settings_set_boolean (applet->gsettings, id, TRUE); +} + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref) +{ + if (g_settings_get_boolean (applet->gsettings, pref)) + return; + + applet_do_notify (applet, NOTIFY_URGENCY_LOW, summary, message, icon, pref, + _("Don't show this message again"), + notify_dont_show_cb, + applet); +} + +static gboolean +animation_timeout (gpointer data) +{ + applet_schedule_update_icon (NM_APPLET (data)); + return TRUE; +} + +static void +start_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id == 0) { + applet->animation_step = 0; + applet->animation_id = g_timeout_add (100, animation_timeout, applet); + } +} + +static void +clear_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id) { + g_source_remove (applet->animation_id); + applet->animation_id = 0; + applet->animation_step = 0; + } +} + +static gboolean +applet_is_any_device_activating (NMApplet *applet) +{ + const GPtrArray *devices; + int i; + + /* Check for activating devices */ + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = NM_DEVICE (g_ptr_array_index (devices, i)); + NMDeviceState state; + + state = nm_device_get_state (candidate); + if (state > NM_DEVICE_STATE_DISCONNECTED && state < NM_DEVICE_STATE_ACTIVATED) + return TRUE; + } + return FALSE; +} + +static gboolean +applet_is_any_vpn_activating (NMApplet *applet) +{ + const GPtrArray *connections; + int i; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (connections, i)); + NMVPNConnectionState vpn_state; + + if (NM_IS_VPN_CONNECTION (candidate)) { + vpn_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + if ( vpn_state == NM_VPN_CONNECTION_STATE_PREPARE + || vpn_state == NM_VPN_CONNECTION_STATE_NEED_AUTH + || vpn_state == NM_VPN_CONNECTION_STATE_CONNECT + || vpn_state == NM_VPN_CONNECTION_STATE_IP_CONFIG_GET) { + return TRUE; + } + } + } + return FALSE; +} + +static char * +make_vpn_failure_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service stopped unexpectedly."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service returned invalid configuration."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the connection attempt timed out."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service did not start in time."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because there were no valid VPN secrets."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because of invalid VPN secrets."), + nm_setting_connection_get_id (s_con)); + + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' failed."), nm_setting_connection_get_id (s_con)); +} + +static char * +make_vpn_disconnection_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the VPN service stopped."), + nm_setting_connection_get_id (s_con)); + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected."), nm_setting_connection_get_id (s_con)); +} + +static void +vpn_connection_state_changed (NMVPNConnection *vpn, + NMVPNConnectionState state, + NMVPNConnectionStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const char *banner; + char *title = NULL, *msg; + gboolean device_activating, vpn_activating; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (state) { + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections might not have come through yet. + */ + vpn_activating = TRUE; + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + banner = nm_vpn_connection_get_banner (vpn); + if (banner && strlen (banner)) + msg = g_strdup_printf (_("VPN connection has been successfully established.\n\n%s\n"), banner); + else + msg = g_strdup (_("VPN connection has been successfully established.\n")); + + title = _("VPN Login Message"); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_FAILED: + title = _("VPN Connection Failed"); + msg = make_vpn_failure_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_DISCONNECTED: + if (reason != NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED) { + title = _("VPN Connection Failed"); + msg = make_vpn_disconnection_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + } + break; + default: + break; + } + + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); + + applet_schedule_update_icon (applet); +} + +static const char * +get_connection_id (NMConnection *connection) +{ + NMSettingConnection *s_con; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + return nm_setting_connection_get_id (s_con); +} + +typedef struct { + NMApplet *applet; + char *vpn_name; +} VPNActivateInfo; + +static void +activate_vpn_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + VPNActivateInfo *info = (VPNActivateInfo *) user_data; + char *title, *msg, *name; + + if (error) { + clear_animation_timeout (info->applet); + + title = _("VPN Connection Failed"); + + /* dbus-glib GError messages _always_ have two NULLs, the D-Bus error + * name comes after the first NULL. Find it. + */ + name = error->message + strlen (error->message) + 1; + if (strstr (name, "ServiceStartFailed")) { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start.\n\n%s"), + info->vpn_name, error->message); + } else { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed to start.\n\n%s"), + info->vpn_name, error->message); + } + + applet_do_notify_with_pref (info->applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + + g_warning ("VPN Connection activation failed: (%s) %s", name, error->message); + } + + applet_schedule_update_icon (info->applet); + g_free (info->vpn_name); + g_free (info); +} + +static void +nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + VPNActivateInfo *info; + NMConnection *connection; + NMSettingConnection *s_con; + NMActiveConnection *active; + NMDevice *device = NULL; + + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) { + g_warning ("%s: no active connection or device.", __func__); + return; + } + + connection = NM_CONNECTION (g_object_get_data (G_OBJECT (item), "connection")); + if (!connection) { + g_warning ("%s: no connection associated with menu item!", __func__); + return; + } + + if (applet_get_active_for_connection (applet, connection)) + /* Connection already active; do nothing */ + return; + + s_con = nm_connection_get_setting_connection (connection); + info = g_malloc0 (sizeof (VPNActivateInfo)); + info->applet = applet; + info->vpn_name = g_strdup (nm_setting_connection_get_id (s_con)); + + /* Connection inactive, activate */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + nm_object_get_path (NM_OBJECT (active)), + activate_vpn_cb, + info); + start_animation_timeout (applet); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + + +/* + * nma_menu_configure_vpn_item_activate + * + * Signal function called when user clicks "Configure VPN..." + * + */ +static void +nma_menu_configure_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + const char *argv[] = { BINDIR "/nm-connection-editor", "--show", "--type", NM_SETTING_VPN_SETTING_NAME, NULL}; + + g_spawn_async (NULL, (gchar **) argv, NULL, 0, NULL, NULL, NULL, NULL); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static NMActiveConnection * +applet_get_first_active_vpn_connection (NMApplet *applet, + NMVPNConnectionState *out_state) +{ + const GPtrArray *active_list; + int i; + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate; + NMConnection *connection; + NMSettingConnection *s_con; + + candidate = g_ptr_array_index (active_list, i); + + connection = applet_get_connection_for_active (applet, candidate); + if (!connection) + continue; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + if (out_state) + *out_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + return candidate; + } + } + + return NULL; +} + +/* + * nma_menu_disconnect_vpn_item_activate + * + * Signal function called when user clicks "Disconnect VPN" + * + */ +static void +nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMActiveConnection *active_vpn = NULL; + NMVPNConnectionState state = NM_VPN_CONNECTION_STATE_UNKNOWN; + + active_vpn = applet_get_first_active_vpn_connection (applet, &state); + if (active_vpn) + nm_client_deactivate_connection (applet->nm_client, active_vpn); + else + g_warning ("%s: deactivate clicked but no active VPN connection could be found.", __func__); +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +/* + * nma_menu_add_separator_item + * + */ +static void +nma_menu_add_separator_item (GtkWidget *menu) +{ + GtkWidget *menu_item; + + menu_item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + + +/* + * nma_menu_add_text_item + * + * Add a non-clickable text item to a menu + * + */ +static void nma_menu_add_text_item (GtkWidget *menu, char *text) +{ + GtkWidget *menu_item; + + g_return_if_fail (text != NULL); + g_return_if_fail (menu != NULL); + + menu_item = gtk_menu_item_new_with_label (text); + gtk_widget_set_sensitive (menu_item, FALSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + +static gint +sort_devices (gconstpointer a, gconstpointer b) +{ + NMDevice *aa = NM_DEVICE (a); + NMDevice *bb = NM_DEVICE (b); + GType aa_type = G_OBJECT_TYPE (G_OBJECT (aa)); + GType bb_type = G_OBJECT_TYPE (G_OBJECT (bb)); + + if (aa_type == bb_type) { + const char *aa_desc = NULL; + const char *bb_desc = NULL; + + aa_desc = nma_utils_get_device_description (aa); + bb_desc = nma_utils_get_device_description (bb); + + return g_strcmp0 (aa_desc, bb_desc); + } + + /* Ethernet always first */ + if (aa_type == NM_TYPE_DEVICE_ETHERNET) + return -1; + if (bb_type == NM_TYPE_DEVICE_ETHERNET) + return 1; + + /* Modems next */ + if (aa_type == NM_TYPE_DEVICE_MODEM) + return -1; + if (bb_type == NM_TYPE_DEVICE_MODEM) + return 1; + + /* Bluetooth next */ + if (aa_type == NM_TYPE_DEVICE_BT) + return -1; + if (bb_type == NM_TYPE_DEVICE_BT) + return 1; + + /* WiMAX next */ + if (aa_type == NM_TYPE_DEVICE_WIMAX) + return -1; + if (bb_type == NM_TYPE_DEVICE_WIMAX) + return 1; + + /* WiFi last because it has many menu items */ + return 1; +} + +static gboolean +nm_g_ptr_array_contains (const GPtrArray *haystack, gpointer needle) +{ + int i; + + for (i = 0; haystack && (i < haystack->len); i++) { + if (g_ptr_array_index (haystack, i) == needle) + return TRUE; + } + return FALSE; +} + +NMConnection * +applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active) +{ + const GPtrArray *active_connections; + NMConnection *connection = NULL; + int i; + + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + if (out_active) + g_return_val_if_fail (*out_active == NULL, NULL); + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMRemoteConnection *tmp; + NMActiveConnection *active; + const char *connection_path; + const GPtrArray *devices; + + active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_connections, i)); + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + tmp = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (tmp) { + connection = NM_CONNECTION (tmp); + if (out_active) + *out_active = active; + break; + } + } + + return connection; +} + +gboolean +nma_menu_device_check_unusable (NMDevice *device) +{ + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + case NM_DEVICE_STATE_UNMANAGED: + return TRUE; + default: + break; + } + return FALSE; +} + + +struct AppletDeviceMenuInfo { + NMDevice *device; + NMApplet *applet; +}; + +static void +applet_device_info_destroy (struct AppletDeviceMenuInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + memset (info, 0, sizeof (struct AppletDeviceMenuInfo)); + g_free (info); +} + +static void +applet_device_disconnect_db (GtkMenuItem *item, gpointer user_data) +{ + struct AppletDeviceMenuInfo *info = user_data; + + applet_menu_item_disconnect_helper (info->device, + info->applet); +} + +GtkWidget * +nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg) +{ + GtkWidget *item = NULL; + gboolean managed = TRUE; + + if (!unavailable_msg) { + if (nm_device_get_firmware_missing (device)) + unavailable_msg = _("device not ready (firmware missing)"); + else + unavailable_msg = _("device not ready"); + } + + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_DISCONNECTED: + unavailable_msg = _("disconnected"); + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_UNMANAGED: + managed = FALSE; + break; + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + case NM_DEVICE_STATE_ACTIVATED: + { + struct AppletDeviceMenuInfo *info = g_new0 (struct AppletDeviceMenuInfo, 1); + info->device = g_object_ref (device); + info->applet = applet; + item = gtk_menu_item_new_with_label (_("Disconnect")); + g_signal_connect_data (item, "activate", + G_CALLBACK (applet_device_disconnect_db), + info, + (GClosureNotify) applet_device_info_destroy, 0); + gtk_widget_set_sensitive (item, TRUE); + break; + } + default: + managed = nm_device_get_managed (device); + break; + } + + if (!managed) { + item = gtk_menu_item_new_with_label (_("device not managed")); + gtk_widget_set_sensitive (item, FALSE); + } + + return item; +} + +static guint32 +nma_menu_add_devices (GtkWidget *menu, NMApplet *applet) +{ + const GPtrArray *temp = NULL; + GSList *devices = NULL, *iter = NULL; + gint n_wifi_devices = 0; + gint n_usable_wifi_devices = 0; + gint n_ethernet_devices = 0; + gint n_mb_devices = 0; + gint n_bt_devices = 0; + int i; + + temp = nm_client_get_devices (applet->nm_client); + for (i = 0; temp && (i < temp->len); i++) + devices = g_slist_insert_sorted (devices, g_ptr_array_index (temp, i), sort_devices); + + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) { + n_wifi_devices++; + if ( nm_client_wireless_get_enabled (applet->nm_client) + && (nm_device_get_state (device) >= NM_DEVICE_STATE_DISCONNECTED)) + n_usable_wifi_devices++; + } else if (NM_IS_DEVICE_ETHERNET (device)) + n_ethernet_devices++; + else if (NM_IS_DEVICE_MODEM (device)) + n_mb_devices++; + else if (NM_IS_DEVICE_BT (device)) + n_bt_devices++; + } + + if (!n_ethernet_devices && !n_wifi_devices && !n_mb_devices && !n_bt_devices) { + nma_menu_add_text_item (menu, _("No network devices available")); + goto out; + } + + /* Add all devices in our device list to the menu */ + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + gint n_devices = 0; + NMADeviceClass *dclass; + NMConnection *active; + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) + n_devices = n_wifi_devices; + else if (NM_IS_DEVICE_ETHERNET (device)) + n_devices = n_ethernet_devices; + else if (NM_IS_DEVICE_MODEM (device)) + n_devices = n_mb_devices; + + active = applet_find_active_connection_for_device (device, applet, NULL); + + dclass = get_device_class (device, applet); + if (dclass) + dclass->add_menu_item (device, n_devices, active, menu, applet); + } + + out: + g_slist_free (devices); + + /* Return # of usable wifi devices here for correct enable/disable state + * of things like Enable Wi-Fi, "Connect to other..." and such. + */ + return n_usable_wifi_devices; +} + +static int +sort_vpn_connections (gconstpointer a, gconstpointer b) +{ + return strcmp (get_connection_id (NM_CONNECTION (a)), get_connection_id (NM_CONNECTION (b))); +} + +static GSList * +get_vpn_connections (NMApplet *applet) +{ + GSList *all_connections; + GSList *iter; + GSList *list = NULL; + + all_connections = applet_get_all_connections (applet); + + for (iter = all_connections; iter; iter = iter->next) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) + /* Not a VPN connection */ + continue; + + if (!nm_connection_get_setting_vpn (connection)) { + g_warning ("%s: VPN connection '%s' didn't have required vpn setting.", __func__, + nm_setting_connection_get_id (s_con)); + continue; + } + + list = g_slist_prepend (list, connection); + } + + g_slist_free (all_connections); + + return g_slist_sort (list, sort_vpn_connections); +} + +static void +nma_menu_add_vpn_submenu (GtkWidget *menu, NMApplet *applet) +{ + GtkMenu *vpn_menu; + GtkMenuItem *item; + GSList *list, *iter; + int num_vpn_active = 0; + + nma_menu_add_separator_item (menu); + + vpn_menu = GTK_MENU (gtk_menu_new ()); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_VPN Connections"))); + gtk_menu_item_set_submenu (item, GTK_WIDGET (vpn_menu)); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + + list = get_vpn_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (applet_get_active_for_connection (applet, connection)) + num_vpn_active++; + } + + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMActiveConnection *active; + const char *name; + GtkWidget *image; + NMState state; + + name = get_connection_id (connection); + + item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); + gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + + /* If no VPN connections are active, draw all menu items enabled. If + * >= 1 VPN connections are active, only the active VPN menu item is + * drawn enabled. + */ + active = applet_get_active_for_connection (applet, connection); + + state = nm_client_get_state (applet->nm_client); + if ( state != NM_STATE_CONNECTED_LOCAL + && state != NM_STATE_CONNECTED_SITE + && state != NM_STATE_CONNECTED_GLOBAL) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + else if ((num_vpn_active == 0) || active) + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + else + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + if (active) { + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + } + + g_object_set_data_full (G_OBJECT (item), "connection", + g_object_ref (connection), + (GDestroyNotify) g_object_unref); + + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_vpn_item_clicked), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } + + /* Draw a seperator, but only if we have VPN connections above it */ + if (list) + nma_menu_add_separator_item (GTK_WIDGET (vpn_menu)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Configure VPN..."))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_configure_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Disconnect VPN"))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_disconnect_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + if (num_vpn_active == 0) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + g_slist_free (list); +} + + +static void +nma_set_wifi_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wireless_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wwan_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wwan_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wimax_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wimax_set_enabled (applet->nm_client, state); +} + +static void +nma_set_networking_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_networking_set_enabled (applet->nm_client, state); +} + + +static void +nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_CONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_VPN_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + !state); +} + +/* + * nma_menu_show_cb + * + * Pop up the wifi networks menu + * + */ +static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet) +{ + guint32 n_wifi; + + g_return_if_fail (menu != NULL); + g_return_if_fail (applet != NULL); + + gtk_status_icon_set_tooltip_text (applet->status_icon, NULL); + + if (!nm_client_get_manager_running (applet->nm_client)) { + nma_menu_add_text_item (menu, _("NetworkManager is not running...")); + return; + } + + if (nm_client_get_state (applet->nm_client) == NM_STATE_ASLEEP) { + nma_menu_add_text_item (menu, _("Networking disabled")); + return; + } + + n_wifi = nma_menu_add_devices (menu, applet); + + nma_menu_add_vpn_submenu (menu, applet); + + if (n_wifi > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { + /* Add the "Hidden Wi-Fi network..." entry */ + nma_menu_add_separator_item (menu); + nma_menu_add_hidden_network_item (menu, applet); + nma_menu_add_create_network_item (menu, applet); + } + + gtk_widget_show_all (menu); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static gboolean +destroy_old_menu (gpointer user_data) +{ + g_object_unref (user_data); + return FALSE; +} + +static void +nma_menu_deactivate_cb (GtkWidget *widget, NMApplet *applet) +{ + /* Must punt the destroy to a low-priority idle to ensure that + * the menu items don't get destroyed before any 'activate' signal + * fires for an item. + */ + g_signal_handlers_disconnect_by_func (applet->menu, G_CALLBACK (nma_menu_deactivate_cb), applet); + g_idle_add_full (G_PRIORITY_LOW, destroy_old_menu, applet->menu, NULL); + applet->menu = NULL; + + /* Re-set the tooltip */ + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +} + +static gboolean +is_permission_yes (NMApplet *applet, NMClientPermission perm) +{ + if ( applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_YES + || applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_AUTH) + return TRUE; + return FALSE; +} + +/* + * nma_context_menu_update + * + */ +static void +nma_context_menu_update (NMApplet *applet) +{ + NMState state; + gboolean net_enabled = TRUE; + gboolean have_wifi = FALSE; + gboolean have_wwan = FALSE; + gboolean have_wimax = FALSE; + gboolean wifi_hw_enabled; + gboolean wwan_hw_enabled; + gboolean wimax_hw_enabled; + gboolean notifications_enabled = TRUE; + gboolean sensitive = FALSE; + + state = nm_client_get_state (applet->nm_client); + sensitive = ( state == NM_STATE_CONNECTED_LOCAL + || state == NM_STATE_CONNECTED_SITE + || state == NM_STATE_CONNECTED_GLOBAL); + gtk_widget_set_sensitive (applet->info_menu_item, sensitive); + + /* Update checkboxes, and block 'toggled' signal when updating so that the + * callback doesn't get triggered. + */ + + /* Enabled Networking */ + g_signal_handler_block (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + net_enabled = nm_client_networking_get_enabled (applet->nm_client); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->networking_enabled_item), + net_enabled && (state != NM_STATE_ASLEEP)); + g_signal_handler_unblock (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + gtk_widget_set_sensitive (applet->networking_enabled_item, + is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK)); + + /* Enabled Wi-Fi */ + g_signal_handler_block (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wifi_enabled_item), + nm_client_wireless_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wifi_enabled_item), + wifi_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI)); + + /* Enabled Mobile Broadband */ + g_signal_handler_block (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wwan_enabled_item), + nm_client_wwan_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + + wwan_hw_enabled = nm_client_wwan_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wwan_enabled_item), + wwan_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN)); + + /* Enable WiMAX */ + g_signal_handler_block (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wimax_enabled_item), + nm_client_wimax_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + + wimax_hw_enabled = nm_client_wimax_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), + wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); + + /* Enabled notifications */ + g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + if ( g_settings_get_boolean (applet->gsettings, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_VPN_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + notifications_enabled = FALSE; + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); + g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + + /* Don't show wifi-specific stuff if wifi is off */ + if (state != NM_STATE_ASLEEP) { + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = g_ptr_array_index (devices, i); + + if (NM_IS_DEVICE_WIFI (candidate)) + have_wifi = TRUE; + else if (NM_IS_DEVICE_MODEM (candidate)) + have_wwan = TRUE; + else if (NM_IS_DEVICE_WIMAX (candidate)) + have_wimax = TRUE; + } + } + + if (have_wifi) + gtk_widget_show_all (applet->wifi_enabled_item); + else + gtk_widget_hide (applet->wifi_enabled_item); + + if (have_wwan) + gtk_widget_show_all (applet->wwan_enabled_item); + else + gtk_widget_hide (applet->wwan_enabled_item); + + if (have_wimax) + gtk_widget_show_all (applet->wimax_enabled_item); + else + gtk_widget_hide (applet->wimax_enabled_item); +} + +static void +ce_child_setup (gpointer user_data G_GNUC_UNUSED) +{ + /* We are in the child process at this point */ + pid_t pid = getpid (); + setpgid (pid, pid); +} + +static void +nma_edit_connections_cb (GtkMenuItem *mi, NMApplet *applet) +{ + char *argv[2]; + GError *error = NULL; + gboolean success; + + argv[0] = BINDIR "/nm-connection-editor"; + argv[1] = NULL; + + success = g_spawn_async ("/", argv, NULL, 0, &ce_child_setup, NULL, NULL, &error); + if (!success) { + g_warning ("Error launching connection editor: %s", error->message); + g_error_free (error); + } +} + +static void +applet_connection_info_cb (NMApplet *applet) +{ + applet_info_dialog_show (applet); +} + +/* + * nma_context_menu_create + * + * Generate the contextual popup menu. + * + */ +static GtkWidget *nma_context_menu_create (NMApplet *applet) +{ + GtkMenuShell *menu; + GtkWidget *menu_item; + GtkWidget *image; + guint id; + + g_return_val_if_fail (applet != NULL, NULL); + + menu = GTK_MENU_SHELL (gtk_menu_new ()); + + /* 'Enable Networking' item */ + applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); + id = g_signal_connect (applet->networking_enabled_item, + "toggled", + G_CALLBACK (nma_set_networking_enabled_cb), + applet); + applet->networking_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->networking_enabled_item); + + /* 'Enable Wi-Fi' item */ + applet->wifi_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Wi-Fi")); + id = g_signal_connect (applet->wifi_enabled_item, + "toggled", + G_CALLBACK (nma_set_wifi_enabled_cb), + applet); + applet->wifi_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wifi_enabled_item); + + /* 'Enable Mobile Broadband' item */ + applet->wwan_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Mobile Broadband")); + id = g_signal_connect (applet->wwan_enabled_item, + "toggled", + G_CALLBACK (nma_set_wwan_enabled_cb), + applet); + applet->wwan_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wwan_enabled_item); + + /* 'Enable WiMAX Mobile Broadband' item */ + applet->wimax_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable WiMA_X Mobile Broadband")); + id = g_signal_connect (applet->wimax_enabled_item, + "toggled", + G_CALLBACK (nma_set_wimax_enabled_cb), + applet); + applet->wimax_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wimax_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* Toggle notifications item */ + applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); + id = g_signal_connect (applet->notifications_enabled_item, + "toggled", + G_CALLBACK (nma_set_notifications_enabled_cb), + applet); + applet->notifications_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->notifications_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* 'Connection Information' item */ + applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); + g_signal_connect_swapped (applet->info_menu_item, + "activate", + G_CALLBACK (applet_connection_info_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->info_menu_item), image); + gtk_menu_shell_append (menu, applet->info_menu_item); + + /* 'Edit Connections...' item */ + applet->connections_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Edit Connections...")); + g_signal_connect (applet->connections_menu_item, + "activate", + G_CALLBACK (nma_edit_connections_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); + gtk_menu_shell_append (menu, applet->connections_menu_item); + + /* Separator */ + nma_menu_add_separator_item (GTK_WIDGET (menu)); + +#if 0 /* FIXME: Implement the help callback, nma_help_cb()! */ + /* Help item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Help")); + g_signal_connect (menu_item, "activate", G_CALLBACK (nma_help_cb), applet); + image = gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); +#endif + + /* About item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_About")); + g_signal_connect_swapped (menu_item, "activate", G_CALLBACK (applet_about_dialog_show), applet); + image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + + gtk_widget_show_all (GTK_WIDGET (menu)); + + return GTK_WIDGET (menu); +} + + +/*****************************************************************************/ + +static void +foo_set_icon (NMApplet *applet, GdkPixbuf *pixbuf, guint32 layer) +{ + int i; + + if (layer > ICON_LAYER_MAX) { + g_warning ("Tried to icon to invalid layer %d", layer); + return; + } + + /* Ignore setting of the same icon as is already displayed */ + if (applet->icon_layers[layer] == pixbuf) + return; + + if (applet->icon_layers[layer]) { + g_object_unref (applet->icon_layers[layer]); + applet->icon_layers[layer] = NULL; + } + + if (pixbuf) + applet->icon_layers[layer] = g_object_ref (pixbuf); + + if (!applet->icon_layers[0]) { + nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + pixbuf = g_object_ref (applet->no_connection_icon); + } else { + pixbuf = gdk_pixbuf_copy (applet->icon_layers[0]); + + for (i = ICON_LAYER_LINK + 1; i <= ICON_LAYER_MAX; i++) { + GdkPixbuf *top = applet->icon_layers[i]; + + if (!top) + continue; + + gdk_pixbuf_composite (top, pixbuf, 0, 0, gdk_pixbuf_get_width (top), + gdk_pixbuf_get_height (top), + 0, 0, 1.0, 1.0, + GDK_INTERP_NEAREST, 255); + } + } + + gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); + g_object_unref (pixbuf); +} + + +NMRemoteConnection * +applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) +{ + const GPtrArray *active_connections; + int i; + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMActiveConnection *active; + NMRemoteConnection *connection; + const char *connection_path; + const GPtrArray *devices; + + active = g_ptr_array_index (active_connections, i); + if (!active) + continue; + + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + connection = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (connection) + return connection; + } + return NULL; +} + +static gboolean +select_merged_notification_text (OfflineNotificationContextInfo *info) +{ + info->urgency = NOTIFY_URGENCY_LOW; + /* only do something if this is about full offline state */ + if(info->state != NM_STATE_UNKNOWN || info->device_state != NM_DEVICE_STATE_UNKNOWN) { + info->urgency = NOTIFY_URGENCY_NORMAL; + if (!info->title) + info->title = g_strdup (_("Network")); + if (info->state == NM_STATE_DISCONNECTED || info->state == NM_STATE_ASLEEP) { + info->text = _("Disconnected - you are now offline"); + } else + info->text = _("Disconnected"); + + switch (info->device_type) { + case NM_DEVICE_TYPE_ETHERNET: + info->icon = "notification-network-ethernet-disconnected"; + break; + case NM_DEVICE_TYPE_WIFI: + info->icon = "notification-network-wireless-disconnected"; + break; + case NM_DEVICE_TYPE_MODEM: + info->icon = "notification-gsm-disconnected"; + break; + default: + info->icon = "notification-network-disconnected"; + break; + } + g_debug("going for offline with icon: %s", info->icon); + return TRUE; + } + return FALSE; +} + +static gboolean +foo_online_offline_deferred_notify (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if(select_merged_notification_text (info)) + if (!g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS)) + applet_do_notify (applet, info->urgency, info->title, + info->text, info->icon, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + _("Don't show this message again"), + notify_dont_show_cb, + applet); + else + g_debug("no notification because merged found that we have nothing to say (e.g. not offline)"); + if (info->title) + g_free (info->title); + info->title = NULL; + g_free (applet->notification_queue_data); + applet->notification_queue_data = NULL; + applet->deferred_id = 0; + return FALSE; +} + +static void +applet_common_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + gboolean device_activating = FALSE, vpn_activating = FALSE; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (new_state) { + case NM_DEVICE_STATE_FAILED: + case NM_DEVICE_STATE_DISCONNECTED: + case NM_DEVICE_STATE_UNMANAGED: + case NM_DEVICE_STATE_UNAVAILABLE: + { + if (old_state != NM_DEVICE_STATE_FAILED && + old_state != NM_DEVICE_STATE_UNKNOWN && + old_state != NM_DEVICE_STATE_DISCONNECTED && + old_state != NM_DEVICE_STATE_UNMANAGED && + old_state != NM_DEVICE_STATE_UNAVAILABLE) { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->device_state = new_state; + info->device_state_reason = reason; + if (info->title) { + g_free(info->title); + info->title = NULL; + } + if (NM_IS_DEVICE_WIFI (device)) { + info->device_type = NM_DEVICE_TYPE_WIFI; + info->title = g_strdup(g_object_get_data (G_OBJECT(device), "canonical-last-essid")); + if (!info->title) + info->title = g_strdup (_("Wireless network")); + } else if (NM_IS_DEVICE_ETHERNET (device)) { + info->device_type = NM_DEVICE_TYPE_ETHERNET; + info->title = g_strdup(_("Wired network")); + } else if (NM_IS_DEVICE_MODEM (device)) { + info->device_type = NM_DEVICE_TYPE_MODEM; + info->title = g_strdup (_("Modem network")); + } else { + info->device_type = NM_DEVICE_TYPE_UNKNOWN; + info->title = g_strdup (_("Network")); + } + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + clear_animation_timeout (applet); + } else { + g_debug ("old state indicates that this was not a disconnect %d", old_state); + } + break; + } + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections or devices might not have come through yet. + */ + device_activating = TRUE; + break; + case NM_DEVICE_STATE_ACTIVATED: + default: + break; + } + + /* If there's an activating device but we're not animating, start animation. + * If we're animating, but there's no activating device or VPN, stop animating. + */ + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); +} + +static void +foo_device_state_changed_cb (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + g_assert (dclass); + + dclass->device_state_changed (device, new_state, old_state, reason, applet); + applet_common_device_state_changed (device, new_state, old_state, reason, applet); + + applet_schedule_update_icon (applet); +} + +static void +foo_device_added_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + if (!dclass) + return; + + if (dclass->device_added) + dclass->device_added (device, applet); + + g_signal_connect (device, "state-changed", + G_CALLBACK (foo_device_state_changed_cb), + user_data); + + foo_device_state_changed_cb (device, + nm_device_get_state (device), + NM_DEVICE_STATE_UNKNOWN, + NM_DEVICE_STATE_REASON_NONE, + applet); +} + +static void +foo_client_state_changed_cb (NMClient *client, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + g_debug("foo_client_state_changed_cb"); + switch (nm_client_get_state (client)) { + case NM_STATE_DISCONNECTED: + case NM_STATE_ASLEEP: + { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->state = nm_client_get_state (client); + select_merged_notification_text (info); + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + /* Fall through */ + } + default: + break; + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_running_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (nm_client_get_manager_running (client)) { + g_message ("NM appeared"); + } else { + g_message ("NM disappeared"); + clear_animation_timeout (applet); + } + + applet_schedule_update_icon (applet); +} + +#define VPN_STATE_ID_TAG "vpn-state-id" + +static void +foo_active_connections_changed_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const GPtrArray *active_list; + int i; + + /* Track the state of new VPN connections */ + active_list = nm_client_get_active_connections (client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + guint id; + + if ( !NM_IS_VPN_CONNECTION (candidate) + || g_object_get_data (G_OBJECT (candidate), VPN_STATE_ID_TAG)) + continue; + + id = g_signal_connect (G_OBJECT (candidate), "vpn-state-changed", + G_CALLBACK (vpn_connection_state_changed), applet); + g_object_set_data (G_OBJECT (candidate), VPN_STATE_ID_TAG, GUINT_TO_POINTER (id)); + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_permission_changed (NMClient *client, + NMClientPermission permission, + NMClientPermissionResult result, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (permission <= NM_CLIENT_PERMISSION_LAST) + applet->permissions[permission] = result; +} + +static gboolean +foo_set_initial_state (gpointer data) +{ + NMApplet *applet = NM_APPLET (data); + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) + foo_device_added_cb (applet->nm_client, NM_DEVICE (g_ptr_array_index (devices, i)), applet); + + foo_active_connections_changed_cb (applet->nm_client, NULL, applet); + + applet_schedule_update_icon (applet); + + return FALSE; +} + +static void +foo_client_setup (NMApplet *applet) +{ + NMClientPermission perm; + + applet->nm_client = nm_client_new (); + if (!applet->nm_client) + return; + + g_signal_connect (applet->nm_client, "notify::state", + G_CALLBACK (foo_client_state_changed_cb), + applet); + g_signal_connect (applet->nm_client, "notify::active-connections", + G_CALLBACK (foo_active_connections_changed_cb), + applet); + g_signal_connect (applet->nm_client, "device-added", + G_CALLBACK (foo_device_added_cb), + applet); + g_signal_connect (applet->nm_client, "notify::manager-running", + G_CALLBACK (foo_manager_running_cb), + applet); + + g_signal_connect (applet->nm_client, "permission-changed", + G_CALLBACK (foo_manager_permission_changed), + applet); + + /* Initialize permissions - the initial 'permission-changed' signal is emitted from NMClient constructor, and thus not caught */ + for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { + applet->permissions[perm] = nm_client_get_permission_result (applet->nm_client, perm); + } + + if (nm_client_get_manager_running (applet->nm_client)) + g_idle_add (foo_set_initial_state, applet); + + applet_schedule_update_icon (applet); +} + +static GdkPixbuf * +applet_common_get_device_icon (NMDeviceState state, NMApplet *applet) +{ + GdkPixbuf *pixbuf = NULL; + int stage = -1; + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + stage = 0; + break; + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + stage = 1; + break; + case NM_DEVICE_STATE_IP_CONFIG: + stage = 2; + break; + default: + break; + } + + if (stage >= 0) { + int i, j; + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { + char *name; + + name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); + nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); + g_free (name); + } + } + + pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_CONNECTING_FRAMES) + applet->animation_step = 0; + } + + return pixbuf; +} + +static char * +get_tip_for_device_state (NMDevice *device, + NMDeviceState state, + NMConnection *connection) +{ + NMSettingConnection *s_con; + char *tip = NULL; + const char *id = NULL; + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + tip = g_strdup_printf (_("Preparing network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + tip = g_strdup_printf (_("Network connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static GdkPixbuf * +applet_get_device_icon_for_state (NMApplet *applet, char **tip) +{ + NMActiveConnection *active; + NMDevice *device = NULL; + GdkPixbuf *pixbuf = NULL; + NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; + NMADeviceClass *dclass; + + // FIXME: handle multiple device states here + + /* First show the best activating device's state */ + active = applet_get_best_activating_connection (applet, &device); + if (!active || !device) { + /* If there aren't any activating devices, then show the state of + * the default active connection instead. + */ + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) + goto out; + } + + state = nm_device_get_state (device); + + dclass = get_device_class (device, applet); + if (dclass) { + NMConnection *connection; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + /* device class returns a referenced pixbuf */ + pixbuf = dclass->get_icon (device, state, connection, tip, applet); + if (!*tip) + *tip = get_tip_for_device_state (device, state, connection); + } + +out: + if (!pixbuf) { + pixbuf = applet_common_get_device_icon (state, applet); + /* reference the pixbuf to match the device class' get_icon() function behavior */ + if (pixbuf) + g_object_ref (pixbuf); + } + return pixbuf; +} + +static char * +get_tip_for_vpn (NMActiveConnection *active, NMVPNConnectionState state, NMApplet *applet) +{ + char *tip = NULL; + const char *path, *id = NULL; + GSList *iter, *list; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + if (!strcmp (nm_connection_get_path (candidate), path)) { + s_con = nm_connection_get_setting_connection (candidate); + id = nm_setting_connection_get_id (s_con); + break; + } + } + g_slist_free (list); + + if (!id) + return NULL; + + switch (state) { + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_PREPARE: + tip = g_strdup_printf (_("Starting VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + tip = g_strdup_printf (_("Requesting a VPN address for '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + tip = g_strdup_printf (_("VPN connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static gboolean +applet_update_icon (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GdkPixbuf *pixbuf = NULL; + NMState state; + char *dev_tip = NULL, *vpn_tip = NULL; + NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; + gboolean nm_running; + NMActiveConnection *active_vpn = NULL; + + applet->update_icon_id = 0; + + nm_running = nm_client_get_manager_running (applet->nm_client); + + /* Handle device state first */ + + state = nm_client_get_state (applet->nm_client); + if (!nm_running) + state = NM_STATE_UNKNOWN; + + switch (state) { + case NM_STATE_UNKNOWN: + case NM_STATE_ASLEEP: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("Networking disabled")); + break; + case NM_STATE_DISCONNECTED: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("No network connection")); + break; + default: + pixbuf = applet_get_device_icon_for_state (applet, &dev_tip); + break; + } + + foo_set_icon (applet, pixbuf, ICON_LAYER_LINK); + if (pixbuf) + g_object_unref (pixbuf); + + /* VPN state next */ + pixbuf = NULL; + active_vpn = applet_get_first_active_vpn_connection (applet, &vpn_state); + if (active_vpn) { + int i; + + switch (vpn_state) { + case NM_VPN_CONNECTION_STATE_ACTIVATED: + pixbuf = nma_icon_check_and_load ("nm-vpn-active-lock", &applet->vpn_lock_icon, applet); + break; + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) { + char *name; + + name = g_strdup_printf ("nm-vpn-connecting%02d", i+1); + nma_icon_check_and_load (name, &applet->vpn_connecting_icons[i], applet); + g_free (name); + } + + pixbuf = applet->vpn_connecting_icons[applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) + applet->animation_step = 0; + break; + default: + break; + } + + vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); + } + foo_set_icon (applet, pixbuf, ICON_LAYER_VPN); + + g_free (applet->tip); + applet->tip = NULL; + + if (dev_tip || vpn_tip) { + GString *tip; + + tip = g_string_new (dev_tip); + + if (vpn_tip) + g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", vpn_tip); + + if (tip->len) + applet->tip = tip->str; + + g_free (vpn_tip); + g_free (dev_tip); + g_string_free (tip, FALSE); + } + + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); + + return FALSE; +} + +void +applet_schedule_update_icon (NMApplet *applet) +{ + if (!applet->update_icon_id) + applet->update_icon_id = g_idle_add (applet_update_icon, applet); +} + +/*****************************************************************************/ + +static SecretsRequest * +applet_secrets_request_new (size_t totsize, + NMConnection *connection, + gpointer request_id, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + NMApplet *applet) +{ + SecretsRequest *req; + + g_return_val_if_fail (totsize >= sizeof (SecretsRequest), NULL); + g_return_val_if_fail (connection != NULL, NULL); + + req = g_malloc0 (totsize); + req->totsize = totsize; + req->connection = g_object_ref (connection); + req->reqid = request_id; + req->setting_name = g_strdup (setting_name); + req->hints = g_strdupv ((char **) hints); + req->flags = flags; + req->callback = callback; + req->callback_data = callback_data; + req->applet = applet; + return req; +} + +void +applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func) +{ + req->free_func = free_func; +} + +void +applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error) +{ + req->callback (req->applet->agent, error ? NULL : settings, error, req->callback_data); +} + +void +applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error) +{ + NMSetting *setting; + GHashTable *settings = NULL, *secrets; + + if (setting_name && !error) { + setting = nm_connection_get_setting_by_name (req->connection, setting_name); + if (setting) { + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, g_strdup (setting_name), secrets); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, setting_name); + } + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled setting '%s'", + __FILE__, __LINE__, __func__, setting_name); + } + } + + req->callback (req->applet->agent, settings, error, req->callback_data); +} + +void +applet_secrets_request_free (SecretsRequest *req) +{ + g_return_if_fail (req != NULL); + + if (req->free_func) + req->free_func (req); + + req->applet->secrets_reqs = g_slist_remove (req->applet->secrets_reqs, req); + + g_object_unref (req->connection); + g_free (req->setting_name); + g_strfreev (req->hints); + memset (req, 0, req->totsize); + g_free (req); +} + +static void +get_existing_secrets_cb (NMSecretAgent *agent, + NMConnection *connection, + GHashTable *secrets, + GError *secrets_error, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMADeviceClass *dclass; + GError *error = NULL; + + /* Merge existing secrets into connection; ignore errors */ + nm_connection_update_secrets (connection, req->setting_name, secrets, NULL); + + dclass = get_device_class_from_connection (connection, req->applet); + g_assert (dclass); + + /* Let the device class handle secrets */ + if (!dclass->get_secrets (req, &error)) { + g_warning ("%s:%d - %s", __func__, __LINE__, error ? error->message : "(unknown)"); + applet_secrets_request_complete (req, NULL, error); + applet_secrets_request_free (req); + g_error_free (error); + } + /* Otherwise success; wait for the secrets callback */ +} + +static void +applet_agent_get_secrets_cb (AppletAgent *agent, + gpointer request_id, + NMConnection *connection, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMSettingConnection *s_con; + NMADeviceClass *dclass; + GError *error = NULL; + SecretsRequest *req = NULL; + + s_con = nm_connection_get_setting_connection (connection); + g_return_if_fail (s_con != NULL); + + /* VPN secrets get handled a bit differently */ + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + req = applet_secrets_request_new (applet_vpn_request_get_secrets_size (), + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + if (!applet_vpn_request_get_secrets (req, &error)) + goto error; + + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + return; + } + + dclass = get_device_class_from_connection (connection, applet); + if (!dclass) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): device type unknown", + __FILE__, __LINE__, __func__); + goto error; + } + + if (!dclass->get_secrets) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NO_SECRETS, + "%s.%d (%s): no secrets found", + __FILE__, __LINE__, __func__); + goto error; + } + + g_assert (dclass->secrets_request_size); + req = applet_secrets_request_new (dclass->secrets_request_size, + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + + /* Get existing secrets, if any */ + nm_secret_agent_get_secrets (NM_SECRET_AGENT (applet->agent), + connection, + setting_name, + hints, + NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE, + get_existing_secrets_cb, + req); + return; + +error: + g_warning ("%s", error->message); + callback (agent, NULL, error, callback_data); + g_error_free (error); + + if (req) + applet_secrets_request_free (req); +} + +static void +applet_agent_cancel_secrets_cb (AppletAgent *agent, + gpointer request_id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GSList *iter; + + for (iter = applet->secrets_reqs; iter; iter = g_slist_next (iter)) { + SecretsRequest *req = iter->data; + + if (req->reqid == request_id) { + /* cancel and free this password request */ + applet_secrets_request_free (req); + } + } +} + +static void +applet_agent_registered_cb (AppletAgent *agent, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + /* If the shell is running and the agent just got registered, unregister it */ + if ( (nm_shell_watcher_version_at_least (applet->shell_watcher, 3, 4)) + && nm_secret_agent_get_registered (NM_SECRET_AGENT (agent))) { + g_message ("Stopping registered applet secret agent because GNOME Shell is running"); + nm_secret_agent_unregister (NM_SECRET_AGENT (agent)); + } +} + +/*****************************************************************************/ + +static void +nma_clear_icon (GdkPixbuf **icon, NMApplet *applet) +{ + g_return_if_fail (icon != NULL); + g_return_if_fail (applet != NULL); + + if (*icon && (*icon != applet->fallback_icon)) { + g_object_unref (*icon); + *icon = NULL; + } +} + +static void nma_icons_free (NMApplet *applet) +{ + int i, j; + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); + + nma_clear_icon (&applet->no_connection_icon, applet); + nma_clear_icon (&applet->ethernet_icon, applet); + nma_clear_icon (&applet->adhoc_icon, applet); + nma_clear_icon (&applet->wwan_icon, applet); + nma_clear_icon (&applet->wwan_tower_icon, applet); + nma_clear_icon (&applet->vpn_lock_icon, applet); + nma_clear_icon (&applet->wifi_00_icon, applet); + nma_clear_icon (&applet->wifi_25_icon, applet); + nma_clear_icon (&applet->wifi_50_icon, applet); + nma_clear_icon (&applet->wifi_75_icon, applet); + nma_clear_icon (&applet->wifi_100_icon, applet); + nma_clear_icon (&applet->secure_lock_icon, applet); + + nma_clear_icon (&applet->mb_tech_1x_icon, applet); + nma_clear_icon (&applet->mb_tech_evdo_icon, applet); + nma_clear_icon (&applet->mb_tech_gprs_icon, applet); + nma_clear_icon (&applet->mb_tech_edge_icon, applet); + nma_clear_icon (&applet->mb_tech_umts_icon, applet); + nma_clear_icon (&applet->mb_tech_hspa_icon, applet); + nma_clear_icon (&applet->mb_tech_lte_icon, applet); + nma_clear_icon (&applet->mb_roaming_icon, applet); + nma_clear_icon (&applet->mb_tech_3g_icon, applet); + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) + nma_clear_icon (&applet->network_connecting_icons[i][j], applet); + } + + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) + nma_clear_icon (&applet->vpn_connecting_icons[i], applet); + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); +} + +GdkPixbuf * +nma_icon_check_and_load (const char *name, GdkPixbuf **icon, NMApplet *applet) +{ + GError *error = NULL; + + g_return_val_if_fail (name != NULL, NULL); + g_return_val_if_fail (icon != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + /* icon already loaded successfully */ + if (*icon && (*icon != applet->fallback_icon)) + return *icon; + + /* Try to load the icon; if the load fails, log the problem, and set + * the icon to the fallback icon if requested. + */ + *icon = gtk_icon_theme_load_icon (applet->icon_theme, name, applet->icon_size, 0, &error); + if (!*icon) { + g_warning ("Icon %s missing: (%d) %s", + name, + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + + *icon = applet->fallback_icon; + } + return *icon; +} + +#include "fallback-icon.h" + +static gboolean +nma_icons_reload (NMApplet *applet) +{ + GError *error = NULL; + GdkPixbufLoader *loader; + + g_return_val_if_fail (applet->icon_size > 0, FALSE); + + nma_icons_free (applet); + + loader = gdk_pixbuf_loader_new_with_type ("png", &error); + if (!loader) + goto error; + + if (!gdk_pixbuf_loader_write (loader, + fallback_icon_data, + sizeof (fallback_icon_data), + &error)) + goto error; + + if (!gdk_pixbuf_loader_close (loader, &error)) + goto error; + + applet->fallback_icon = gdk_pixbuf_loader_get_pixbuf (loader); + g_object_ref (applet->fallback_icon); + g_assert (applet->fallback_icon); + g_object_unref (loader); + + return TRUE; + +error: + g_warning ("Could not load fallback icon: (%d) %s", + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + /* Die if we can't get a fallback icon */ + g_assert (FALSE); + return FALSE; +} + +static void nma_icon_theme_changed (GtkIconTheme *icon_theme, NMApplet *applet) +{ + nma_icons_reload (applet); +} + +static void nma_icons_init (NMApplet *applet) +{ + GdkScreen *screen; + gboolean path_appended; + + if (applet->icon_theme) { + g_signal_handlers_disconnect_by_func (applet->icon_theme, + G_CALLBACK (nma_icon_theme_changed), + applet); + g_object_unref (G_OBJECT (applet->icon_theme)); + } + + screen = gtk_status_icon_get_screen (applet->status_icon); + g_assert (screen); + applet->icon_theme = gtk_icon_theme_get_for_screen (screen); + + /* If not done yet, append our search path */ + path_appended = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended")); + if (path_appended == FALSE) { + gtk_icon_theme_append_search_path (applet->icon_theme, ICONDIR); + g_object_set_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended", + GINT_TO_POINTER (TRUE)); + } + + g_signal_connect (applet->icon_theme, "changed", G_CALLBACK (nma_icon_theme_changed), applet); +} + +static void +status_icon_screen_changed_cb (GtkStatusIcon *icon, + GParamSpec *pspec, + NMApplet *applet) +{ + nma_icons_init (applet); + nma_icon_theme_changed (NULL, applet); +} + +static gboolean +status_icon_size_changed_cb (GtkStatusIcon *icon, + gint size, + NMApplet *applet) +{ + if (getenv ("NMA_SIZE_DEBUG")) { + g_message ("%s(): status icon size now %d", __func__, size); + } + + /* icon_size may be 0 if for example the panel hasn't given us any space + * yet. We'll get resized later, but for now just load the 16x16 icons. + */ + applet->icon_size = MAX (16, size); + + nma_icons_reload (applet); + + applet_schedule_update_icon (applet); + + return TRUE; +} + +static void +status_icon_activate_cb (GtkStatusIcon *icon, NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + applet_clear_notify (applet); + + /* Kill any old menu */ + if (applet->menu) + g_object_unref (applet->menu); + + /* And make a fresh new one */ + applet->menu = gtk_menu_new (); + /* Sink the ref so we can explicitly destroy the menu later */ + g_object_ref_sink (G_OBJECT (applet->menu)); + + gtk_container_set_border_width (GTK_CONTAINER (applet->menu), 0); + g_signal_connect (applet->menu, "show", G_CALLBACK (nma_menu_show_cb), applet); + g_signal_connect (applet->menu, "deactivate", G_CALLBACK (nma_menu_deactivate_cb), applet); + + /* Display the new menu */ + gtk_menu_popup (GTK_MENU (applet->menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + 1, gtk_get_current_event_time ()); +} + +static void +status_icon_popup_menu_cb (GtkStatusIcon *icon, + guint button, + guint32 activate_time, + NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + applet_clear_notify (applet); + + nma_context_menu_update (applet); + gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + button, activate_time); +} + +static gboolean +setup_widgets (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->status_icon = gtk_status_icon_new (); + if (!applet->status_icon) + return FALSE; + if (shell_debug) + gtk_status_icon_set_name (applet->status_icon, "adsfasdfasdfadfasdf"); + + g_signal_connect (applet->status_icon, "notify::screen", + G_CALLBACK (status_icon_screen_changed_cb), applet); + g_signal_connect (applet->status_icon, "size-changed", + G_CALLBACK (status_icon_size_changed_cb), applet); + g_signal_connect (applet->status_icon, "activate", + G_CALLBACK (status_icon_activate_cb), applet); + g_signal_connect (applet->status_icon, "popup-menu", + G_CALLBACK (status_icon_popup_menu_cb), applet); + + applet->context_menu = nma_context_menu_create (applet); + if (!applet->context_menu) + return FALSE; + + return TRUE; +} + +static void +applet_embedded_cb (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + gboolean embedded = gtk_status_icon_is_embedded (GTK_STATUS_ICON (object)); + + g_message ("applet now %s the notification area", + embedded ? "embedded in" : "removed from"); +} + +#if GLIB_CHECK_VERSION(2,26,0) +static gboolean +delayed_start_agent (gpointer user_data) +{ + NMApplet *applet = user_data; + + applet->agent_start_id = 0; + + g_assert (applet->agent); + + /* If the agent is already running, there's nothing to do. */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent)) == TRUE) + return FALSE; + + if (nm_secret_agent_register (NM_SECRET_AGENT (applet->agent))) + g_message ("Starting applet secret agent because GNOME Shell disappeared"); + else + g_warning ("Failed to start applet secret agent!"); + return FALSE; +} + +static void +shell_version_changed_cb (NMShellWatcher *watcher, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = user_data; + + if (applet->agent_start_id) { + g_source_remove (applet->agent_start_id); + applet->agent_start_id = 0; + } + + if (!applet->agent) + return; + + if (nm_shell_watcher_version_at_least (watcher, 3, 4)) { + /* GNOME Shell handles all secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) { + g_message ("Stopping applet secret agent because GNOME Shell appeared"); + nm_secret_agent_unregister (NM_SECRET_AGENT (applet->agent)); + } + } else if (nm_shell_watcher_version_at_least (watcher, 3, 2)) { + /* GNOME Shell handles everything except VPN secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + g_message ("Applet secret agent handling only VPN secrets because GNOME Shell appeared"); + applet_agent_handle_vpn_only (applet->agent, TRUE); + } else { + /* If the shell quit and our agent wasn't already registered, do it + * now on a delay (just in case the shell is restarting). + */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + applet->agent_start_id = g_timeout_add_seconds (4, delayed_start_agent, applet); + applet_agent_handle_vpn_only (applet->agent, FALSE); + } +} +#endif + +static gboolean +dbus_setup (NMApplet *applet, GError **error) +{ + DBusConnection *connection; + DBusGProxy *proxy; + guint result; + gboolean success; + + applet->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, error); + if (!applet->bus) + return FALSE; + + connection = dbus_g_connection_get_connection (applet->bus); + dbus_connection_set_exit_on_disconnect (connection, FALSE); + + applet->session_bus = dbus_g_bus_get (DBUS_BUS_SESSION, error); + if (!applet->session_bus) + return FALSE; + + dbus_g_connection_register_g_object (applet->session_bus, + "/org/gnome/network_manager_applet", + G_OBJECT (applet)); + + proxy = dbus_g_proxy_new_for_name (applet->session_bus, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + success = dbus_g_proxy_call (proxy, "RequestName", error, + G_TYPE_STRING, "org.gnome.network_manager_applet", + G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE, + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID); + g_object_unref (proxy); + + return success; +} + +static GObject * +constructor (GType type, + guint n_props, + GObjectConstructParam *construct_props) +{ + NMApplet *applet; + GError* error = NULL; + + applet = NM_APPLET (G_OBJECT_CLASS (nma_parent_class)->constructor (type, n_props, construct_props)); + + g_set_application_name (_("NetworkManager Applet")); + gtk_window_set_default_icon_name (GTK_STOCK_NETWORK); + + applet->info_dialog_ui = gtk_builder_new (); + + if (!gtk_builder_add_from_file (applet->info_dialog_ui, UIDIR "/info.ui", &error)) { + g_warning ("Couldn't load info dialog ui file: %s", error->message); + g_error_free (error); + goto error; + } + + applet->gsettings = g_settings_new (APPLET_PREFS_SCHEMA); + + /* Load pixmaps and create applet widgets */ + if (!setup_widgets (applet)) + goto error; + nma_icons_init (applet); + + if (!notify_is_initted ()) + notify_init ("NetworkManager"); + + if (!dbus_setup (applet, &error)) { + g_warning ("Failed to initialize D-Bus: %s", error->message); + g_error_free (error); + goto error; + } + applet->settings = nm_remote_settings_new (applet->bus); + +#ifdef BUILD_MIGRATION_TOOL + { + char *argv[2] = { LIBEXECDIR "/nm-applet-migration-tool", NULL }; + int status; + + /* Move user connections to the system */ + if (!g_spawn_sync (NULL, argv, NULL, 0, NULL, NULL, + NULL, NULL, &status, &error)) { + g_warning ("Could not run nm-applet-migration-tool: %s", + error->message); + g_error_free (error); + } else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { + g_warning ("nm-applet-migration-tool exited with error"); + } + } +#endif + + applet->agent = applet_agent_new (); + g_assert (applet->agent); + g_signal_connect (applet->agent, APPLET_AGENT_GET_SECRETS, + G_CALLBACK (applet_agent_get_secrets_cb), applet); + g_signal_connect (applet->agent, APPLET_AGENT_CANCEL_SECRETS, + G_CALLBACK (applet_agent_cancel_secrets_cb), applet); + g_signal_connect (applet->agent, "notify::" NM_SECRET_AGENT_REGISTERED, + G_CALLBACK (applet_agent_registered_cb), applet); + + /* Initialize device classes */ + applet->ethernet_class = applet_device_ethernet_get_class (applet); + g_assert (applet->ethernet_class); + + applet->wifi_class = applet_device_wifi_get_class (applet); + g_assert (applet->wifi_class); + + applet->gsm_class = applet_device_gsm_get_class (applet); + g_assert (applet->gsm_class); + + applet->cdma_class = applet_device_cdma_get_class (applet); + g_assert (applet->cdma_class); + + applet->bt_class = applet_device_bt_get_class (applet); + g_assert (applet->bt_class); + + applet->wimax_class = applet_device_wimax_get_class (applet); + g_assert (applet->wimax_class); + + foo_client_setup (applet); + + /* Track embedding to help debug issues where user has removed the + * notification area applet from the panel, and thus nm-applet too. + */ + g_signal_connect (applet->status_icon, "notify::embedded", + G_CALLBACK (applet_embedded_cb), NULL); + applet_embedded_cb (G_OBJECT (applet->status_icon), NULL, NULL); + +#if GLIB_CHECK_VERSION(2,26,0) + /* Watch GNOME Shell so we can unregister our applet agent if it appears */ + applet->shell_watcher = nm_shell_watcher_new (); + g_signal_connect (applet->shell_watcher, + "notify::shell-version", + G_CALLBACK (shell_version_changed_cb), + applet); +#endif + + return G_OBJECT (applet); + +error: + g_object_unref (applet); + return NULL; +} + +static void finalize (GObject *object) +{ + NMApplet *applet = NM_APPLET (object); + + g_slice_free (NMADeviceClass, applet->ethernet_class); + g_slice_free (NMADeviceClass, applet->wifi_class); + g_slice_free (NMADeviceClass, applet->gsm_class); + g_slice_free (NMADeviceClass, applet->cdma_class); + g_slice_free (NMADeviceClass, applet->bt_class); + g_slice_free (NMADeviceClass, applet->wimax_class); + + if (applet->update_icon_id) + g_source_remove (applet->update_icon_id); + + if (applet->menu) + g_object_unref (applet->menu); + nma_icons_free (applet); + + g_free (applet->tip); + + while (g_slist_length (applet->secrets_reqs)) + applet_secrets_request_free ((SecretsRequest *) applet->secrets_reqs->data); + + if (applet->notification) { + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + } + + if (applet->info_dialog_ui) + g_object_unref (applet->info_dialog_ui); + + if (applet->gsettings) + g_object_unref (applet->gsettings); + + if (applet->status_icon) + g_object_unref (applet->status_icon); + + if (applet->nm_client) + g_object_unref (applet->nm_client); + + if (applet->fallback_icon) + g_object_unref (applet->fallback_icon); + + if (applet->agent) + g_object_unref (applet->agent); + + if (applet->settings) + g_object_unref (applet->settings); + + if (applet->bus) + dbus_g_connection_unref (applet->bus); + + if (applet->session_bus) + dbus_g_connection_unref (applet->session_bus); + +#if GLIB_CHECK_VERSION(2,26,0) + if (applet->shell_watcher) + g_object_unref (applet->shell_watcher); +#endif + if (applet->agent_start_id) + g_source_remove (applet->agent_start_id); + + G_OBJECT_CLASS (nma_parent_class)->finalize (object); +} + +static void nma_init (NMApplet *applet) +{ + applet->animation_id = 0; + applet->animation_step = 0; + applet->icon_theme = NULL; + applet->notification = NULL; + applet->icon_size = 16; +} + +enum { + PROP_0, + PROP_LOOP, + LAST_PROP +}; + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMApplet *applet = NM_APPLET (object); + + switch (prop_id) { + case PROP_LOOP: + applet->loop = g_value_get_pointer (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void nma_class_init (NMAppletClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GParamSpec *pspec; + + oclass->set_property = set_property; + oclass->constructor = constructor; + oclass->finalize = finalize; + + pspec = g_param_spec_pointer ("loop", "Loop", "Applet mainloop", G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); + g_object_class_install_property (oclass, PROP_LOOP, pspec); + + dbus_g_object_type_install_info (NM_TYPE_APPLET, &dbus_glib_nma_object_info); +} + +NMApplet * +nm_applet_new (GMainLoop *loop) +{ + return g_object_new (NM_TYPE_APPLET, "loop", loop, NULL); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/lp829673_gconf_hide_applet.patch/nm-applet.convert network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp829673_gconf_hide_applet.patch/nm-applet.convert --- network-manager-applet-0.9.4.1/.pc/lp829673_gconf_hide_applet.patch/nm-applet.convert 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp829673_gconf_hide_applet.patch/nm-applet.convert 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,7 @@ +[org.gnome.nm-applet] +disable-connected-notifications = /apps/nm-applet/disable-connected-notifications +disable-disconnected-notifications = /apps/nm-applet/disable-disconnected-notifications +disable-vpn-notifications = /apps/nm-applet/disable-vpn-notifications +suppress-wireless-networks-available = /apps/nm-applet/suppress-wireless-networks-available +stamp = /apps/nm-applet/stamp +disable-wifi-create = /apps/nm-applet/disable-wifi-create diff -Nru network-manager-applet-0.9.4.1/.pc/lp829673_gconf_hide_applet.patch/org.gnome.nm-applet.gschema.xml.in network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp829673_gconf_hide_applet.patch/org.gnome.nm-applet.gschema.xml.in --- network-manager-applet-0.9.4.1/.pc/lp829673_gconf_hide_applet.patch/org.gnome.nm-applet.gschema.xml.in 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp829673_gconf_hide_applet.patch/org.gnome.nm-applet.gschema.xml.in 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,47 @@ + + + + + false + <_summary>Disable connected notifications + <_description>Set this to true to disable notifications when connecting to a network. + + + false + <_summary>Disable disconnected notifications + <_description>Set this to true to disable notifications when disconnecting from a network. + + + false + <_summary>Disable VPN notifications + <_description>Set this to true to disable notifications when connecting to or disconnecting from a VPN. + + + false + <_summary>Suppress networks available notifications + <_description>Set this to true to disable notifications when Wi-Fi networks are available. + + + 0 + <_summary>Stamp + <_description>Used to determine whether settings should be migrated to a new version. + + + false + <_summary>Disable WiFi Create + <_description>Set to true to disable creation of adhoc networks when using the applet. + + + + + false + <_summary>Ignore CA certificate + <_description>Set this to true to disable warnings about CA certificates in EAP authentication. + + + false + <_summary>Ignore CA certificate + <_description>Set this to true to disable warnings about CA certificates in phase 2 of EAP authentication. + + + diff -Nru network-manager-applet-0.9.4.1/.pc/lp829673_gconf_hide_applet.patch/src/applet.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp829673_gconf_hide_applet.patch/src/applet.c --- network-manager-applet-0.9.4.1/.pc/lp829673_gconf_hide_applet.patch/src/applet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp829673_gconf_hide_applet.patch/src/applet.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,3706 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2012 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + * + * This applet used the GNOME Wireless Applet as a skeleton to build from. + * + * GNOME Wireless Applet Authors: + * Eskil Heyn Olsen + * Bastien Nocera (Gnome2 port) + * + * (C) Copyright 2001, 2002 Free Software Foundation + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "applet-device-wifi.h" +#include "applet-device-gsm.h" +#include "applet-device-cdma.h" +#include "applet-device-bt.h" +#include "applet-device-wimax.h" +#include "applet-dialogs.h" +#include "nm-wifi-dialog.h" +#include "applet-vpn-request.h" +#include "utils.h" +#include "shell-watcher.h" +#include "nm-ui-utils.h" + +#define NOTIFY_CAPS_ACTIONS_KEY "actions" + +extern gboolean shell_debug; + +G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) + +/********************************************************************/ +/* Temporary dbus interface stuff */ + +static gboolean +impl_dbus_connect_to_hidden_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_connect_to_hidden_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_create_wifi_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_can_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NOT_AUTHORIZED, + "Creation of Wi-Fi networks has been disabled by system policy."); + return FALSE; + } + + if (!applet_wifi_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_8021x_network (NMApplet *applet, + const char *device_path, + const char *ap_path, + GError **error) +{ + NMDevice *device; + NMAccessPoint *ap; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_WIFI (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + ap = nm_device_wifi_get_access_point_by_path (NM_DEVICE_WIFI (device), ap_path); + if (!ap) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point could not be found."); + return FALSE; + } + + /* FIXME: this doesn't account for Dynamic WEP */ + if ( !(nm_access_point_get_wpa_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + && !(nm_access_point_get_rsn_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point had no 802.1x capabilities"); + return FALSE; + } + + if (!applet_wifi_connect_to_8021x_network (applet, device, ap)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_3g_network (NMApplet *applet, + const char *device_path, + GError **error) +{ + NMDevice *device; + NMDeviceModemCapabilities caps; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_MODEM (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + applet_gsm_connect_network (applet, device); + } else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + applet_cdma_connect_network (applet, device); + } else { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device had no GSM or CDMA capabilities."); + return FALSE; + } + + return TRUE; +} + +#include "applet-dbus-bindings.h" + +/********************************************************************/ + +static inline NMADeviceClass * +get_device_class (NMDevice *device, NMApplet *applet) +{ + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + if (NM_IS_DEVICE_ETHERNET (device)) + return applet->ethernet_class; + else if (NM_IS_DEVICE_WIFI (device)) + return applet->wifi_class; + else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + return applet->gsm_class; + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + return applet->cdma_class; + else + g_message ("%s: unhandled modem capabilities 0x%X", __func__, caps); + } else if (NM_IS_DEVICE_BT (device)) + return applet->bt_class; + else if (NM_IS_DEVICE_WIMAX (device)) + return applet->wimax_class; + else + g_debug ("%s: Unknown device type '%s'", __func__, G_OBJECT_TYPE_NAME (device)); + return NULL; +} + +static inline NMADeviceClass * +get_device_class_from_connection (NMConnection *connection, NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *ctype; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + ctype = nm_setting_connection_get_connection_type (s_con); + g_return_val_if_fail (ctype != NULL, NULL); + + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME) || !strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return applet->ethernet_class; + else if (!strcmp (ctype, NM_SETTING_WIRELESS_SETTING_NAME)) + return applet->wifi_class; + else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME)) + return applet->gsm_class; + else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME)) + return applet->cdma_class; + else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) + return applet->bt_class; + else + g_warning ("%s: unhandled connection type '%s'", __func__, ctype); + return NULL; +} + +struct _OfflineNotificationContextInfo { + NMState state; + NMDeviceState device_state; + NMDeviceStateReason device_state_reason; + NMDeviceType device_type; + gchar* title; + const gchar* text; + const gchar* icon; + NotifyUrgency urgency; +}; + +typedef struct _OfflineNotificationContextInfo OfflineNotificationContextInfo; + +static NMActiveConnection * +applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *best = NULL; + NMDevice *best_dev = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const GPtrArray *devices; + NMDevice *candidate_dev; + + if (nm_active_connection_get_state (candidate) != NM_ACTIVE_CONNECTION_STATE_ACTIVATING) + continue; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (!best_dev) { + best_dev = candidate_dev; + best = candidate; + continue; + } + + if (NM_IS_DEVICE_WIFI (best_dev)) { + if (NM_IS_DEVICE_ETHERNET (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (NM_IS_DEVICE_MODEM (best_dev)) { + NMDeviceModemCapabilities best_caps; + NMDeviceModemCapabilities candidate_caps = NM_DEVICE_MODEM_CAPABILITY_NONE; + + best_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (best_dev)); + if (NM_IS_DEVICE_MODEM (candidate_dev)) + candidate_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (candidate_dev)); + + if (best_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (best_caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev) + || (candidate_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { + best_dev = candidate_dev; + best = candidate; + } + } + } + } + + *device = best_dev; + return best; +} + +static NMActiveConnection * +applet_get_default_active_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *default_ac = NULL; + NMDevice *non_default_device = NULL; + NMActiveConnection *non_default_ac = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + NMDevice *candidate_dev; + const GPtrArray *devices; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (nm_active_connection_get_default (candidate)) { + if (!default_ac) { + *device = candidate_dev; + default_ac = candidate; + } + } else { + if (!non_default_ac) { + non_default_device = candidate_dev; + non_default_ac = candidate; + } + } + } + + /* Prefer the default connection if one exists, otherwise return the first + * non-default connection. + */ + if (!default_ac && non_default_ac) { + default_ac = non_default_ac; + *device = non_default_device; + } + return default_ac; +} + +NMRemoteSettings * +applet_get_settings (NMApplet *applet) +{ + return applet->settings; +} + +GSList * +applet_get_all_connections (NMApplet *applet) +{ + GSList *connections, *iter, *next; + NMConnection *connection; + NMSettingConnection *s_con; + + connections = nm_remote_settings_list_connections (applet->settings); + + /* Ignore slave connections */ + for (iter = connections; iter; iter = next) { + connection = iter->data; + next = iter->next; + + s_con = nm_connection_get_setting_connection (connection); + if (s_con && nm_setting_connection_get_master (s_con)) + connections = g_slist_delete_link (connections, iter); + } + + return connections; +} + +static NMConnection * +applet_get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMActiveConnection * +applet_get_active_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + int i; + const char *cpath; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + const char *active_cpath = nm_active_connection_get_connection (active); + + if (active_cpath && !strcmp (active_cpath, cpath)) + return active; + } + return NULL; +} + +NMDevice * +applet_get_device_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + const char *cpath; + int i; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + + if (!g_strcmp0 (nm_active_connection_get_connection (active), cpath)) + return g_ptr_array_index (nm_active_connection_get_devices (active), 0); + } + return NULL; +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + char *specific_object; + NMConnection *connection; +} AppletItemActivateInfo; + +static void +applet_item_activate_info_destroy (AppletItemActivateInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + g_free (info->specific_object); + if (info->connection) + g_object_unref (info->connection); + memset (info, 0, sizeof (AppletItemActivateInfo)); + g_free (info); +} + +static void +add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add/activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +applet_menu_item_activate_helper_new_connection (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + AppletItemActivateInfo *info = user_data; + + if (canceled) { + applet_item_activate_info_destroy (info); + return; + } + + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + info->specific_object, + add_and_activate_cb, + info->applet); + + applet_item_activate_info_destroy (info); +} + +static void +disconnect_cb (NMDevice *device, GError *error, gpointer user_data) +{ + if (error) { + const char *text = _("Device disconnect failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s: %s", __func__, text, err_text); + utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } +} + +void +applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet) +{ + g_return_if_fail (NM_IS_DEVICE (device)); + + nm_device_disconnect (device, disconnect_cb, NULL); +} + +static void +activate_connection_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Connection activation failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +void +applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data) +{ + AppletItemActivateInfo *info; + NMADeviceClass *dclass; + + g_return_if_fail (NM_IS_DEVICE (device)); + + if (connection) { + /* If the menu item had an associated connection already, just tell + * NM to activate that connection. + */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + specific_object, + activate_connection_cb, + applet); + return; + } + + /* If no connection was given, ask the device class to create a new + * default connection for this device type. This could be a wizard, + * and thus take a while. + */ + + info = g_malloc0 (sizeof (AppletItemActivateInfo)); + info->applet = applet; + info->specific_object = g_strdup (specific_object); + info->device = g_object_ref (device); + + dclass = get_device_class (device, applet); + g_assert (dclass); + if (!dclass->new_auto_connection (device, dclass_data, + applet_menu_item_activate_helper_new_connection, + info)) { + g_warning ("Couldn't create default connection."); + applet_item_activate_info_destroy (info); + } +} + +void +applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos) +{ + GtkWidget *menu_item = gtk_image_menu_item_new (); +#if GTK_CHECK_VERSION(3,1,6) + GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); +#else + GtkWidget *box = gtk_hbox_new (FALSE, 0); +#endif + GtkWidget *xlabel = NULL; + + if (label) { + xlabel = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (xlabel), label); + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2); + } + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + + g_object_set (G_OBJECT (menu_item), + "child", box, + "sensitive", FALSE, + NULL); + if (pos < 0) + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + else + gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, pos); + return; +} + +GtkWidget * +applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active) +{ + GtkWidget *item; + NMSettingConnection *s_con; + char *markup; + GtkWidget *label; + + s_con = nm_connection_get_setting_connection (connection); + item = gtk_image_menu_item_new_with_label (""); + if (add_active && (active == connection)) { + /* Pure evil */ + label = gtk_bin_get_child (GTK_BIN (item)); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + markup = g_markup_printf_escaped ("%s", nm_setting_connection_get_id (s_con)); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + } else + gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); + + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + return item; +} + +#define TITLE_TEXT_R ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_G ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_B ((double) 0x5e / 255.0 ) + +static void +menu_item_draw_generic (GtkWidget *widget, cairo_t *cr) +{ + GtkWidget *label; + PangoFontDescription *desc; + PangoLayout *layout; + int width = 0, height = 0, owidth, oheight; + gdouble extraheight = 0, extrawidth = 0; + const char *text; + gdouble xpadding = 10.0; + gdouble ypadding = 5.0; + gdouble postpadding = 0.0; + + label = gtk_bin_get_child (GTK_BIN (widget)); + text = gtk_label_get_text (GTK_LABEL (label)); + + layout = pango_cairo_create_layout (cr); +#if GTK_CHECK_VERSION(2,20,0) && !GTK_CHECK_VERSION(2,91,6) + { + GtkStyle *style; + style = gtk_widget_get_style (widget); + desc = pango_font_description_copy (style->font_desc); + } +#else + { + GtkStyleContext *style; + style = gtk_widget_get_style_context (widget); + gtk_style_context_get (style, gtk_style_context_get_state (style), + "font", &desc, + NULL); + } +#endif + pango_font_description_set_variant (desc, PANGO_VARIANT_SMALL_CAPS); + pango_font_description_set_weight (desc, PANGO_WEIGHT_SEMIBOLD); + pango_layout_set_font_description (layout, desc); + pango_layout_set_text (layout, text, -1); + pango_cairo_update_layout (cr, layout); + pango_layout_get_size (layout, &owidth, &oheight); + width = owidth / PANGO_SCALE; + height += oheight / PANGO_SCALE; + + cairo_save (cr); + + cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); + cairo_rectangle (cr, 0, 0, + (double) (width + 2 * xpadding), + (double) (height + ypadding + postpadding)); + cairo_fill (cr); + + /* now the in-padding content */ + cairo_translate (cr, xpadding , ypadding); + cairo_set_source_rgb (cr, TITLE_TEXT_R, TITLE_TEXT_G, TITLE_TEXT_B); + cairo_move_to (cr, extrawidth, extraheight); + pango_cairo_show_layout (cr, layout); + + cairo_restore(cr); + + pango_font_description_free (desc); + g_object_unref (layout); + + gtk_widget_set_size_request (widget, width + 2 * xpadding, height + ypadding + postpadding); +} + +#if GTK_CHECK_VERSION(2,90,7) +static gboolean +menu_title_item_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) +{ + menu_item_draw_generic (widget, cr); + return TRUE; +} +#else +static gboolean +menu_title_item_expose (GtkWidget *widget, GdkEventExpose *event) +{ + GtkAllocation allocation; + cairo_t *cr; + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + /* The drawing area we get is the whole menu; clip the drawing to the + * event area, which should just be our menu item. + */ + cairo_rectangle (cr, + event->area.x, event->area.y, + event->area.width, event->area.height); + cairo_clip (cr); + + /* We also need to reposition the cairo context so that (0, 0) is the + * top-left of where we're supposed to start drawing. + */ + gtk_widget_get_allocation (widget, &allocation); + cairo_translate (cr, allocation.x, allocation.y); + + menu_item_draw_generic (widget, cr); + + cairo_destroy (cr); + return TRUE; +} +#endif + +GtkWidget * +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text) +{ + GtkWidget *item; + + item = gtk_menu_item_new_with_mnemonic (text); + gtk_widget_set_sensitive (item, FALSE); +#if GTK_CHECK_VERSION(2,90,7) + g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL); +#else + g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); +#endif + return item; +} + +static gboolean +applet_notify_server_has_actions (void) +{ + static gboolean has_actions = FALSE; + static gboolean initialized = FALSE; + GList *server_caps, *iter; + + if (initialized) + return has_actions; + initialized = TRUE; + + server_caps = notify_get_server_caps(); + for (iter = server_caps; iter; iter = g_list_next (iter)) { + if (!strcmp ((const char *) iter->data, NOTIFY_CAPS_ACTIONS_KEY)) { + has_actions = TRUE; + break; + } + } + g_list_foreach (server_caps, (GFunc) g_free, NULL); + g_list_free (server_caps); + + return has_actions; +} + +void +applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data) +{ + NotifyNotification *notify; + GError *error = NULL; + char *escaped; + + g_return_if_fail (applet != NULL); + g_return_if_fail (summary != NULL); + g_return_if_fail (message != NULL); + + if (!gtk_status_icon_is_embedded (applet->status_icon)) + return; + + /* if we're not registered, don't notify either */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + return; + + escaped = utils_escape_notify_message (message); + + if (applet->notification == NULL) { + notify = notify_notification_new (summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK +#if HAVE_LIBNOTIFY_07 + ); +#else + , NULL); +#endif + + applet->notification = notify; + } else { + notify = applet->notification; + notify_notification_update (notify, + summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK); + } + + g_free (escaped); + +#if HAVE_LIBNOTIFY_07 + notify_notification_set_hint (notify, "transient", g_variant_new_boolean (TRUE)); +#else + notify_notification_attach_to_status_icon (notify, applet->status_icon); +#endif + notify_notification_set_urgency (notify, urgency); + notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT); + + if (applet_notify_server_has_actions () && action1) { + notify_notification_clear_actions (notify); + notify_notification_add_action (notify, action1, action1_label, + action1_cb, action1_user_data, NULL); + } + + if (!notify_notification_show (notify, &error)) { + g_warning ("Failed to show notification: %s", + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + } +} + +static void +notify_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id) + return; + + if ( strcmp (id, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_VPN_NOTIFICATIONS)) + return; + + g_settings_set_boolean (applet->gsettings, id, TRUE); +} + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref) +{ + if (g_settings_get_boolean (applet->gsettings, pref)) + return; + + applet_do_notify (applet, NOTIFY_URGENCY_LOW, summary, message, icon, pref, + _("Don't show this message again"), + notify_dont_show_cb, + applet); +} + +static gboolean +animation_timeout (gpointer data) +{ + applet_schedule_update_icon (NM_APPLET (data)); + return TRUE; +} + +static void +start_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id == 0) { + applet->animation_step = 0; + applet->animation_id = g_timeout_add (100, animation_timeout, applet); + } +} + +static void +clear_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id) { + g_source_remove (applet->animation_id); + applet->animation_id = 0; + applet->animation_step = 0; + } +} + +static gboolean +applet_is_any_device_activating (NMApplet *applet) +{ + const GPtrArray *devices; + int i; + + /* Check for activating devices */ + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = NM_DEVICE (g_ptr_array_index (devices, i)); + NMDeviceState state; + + state = nm_device_get_state (candidate); + if (state > NM_DEVICE_STATE_DISCONNECTED && state < NM_DEVICE_STATE_ACTIVATED) + return TRUE; + } + return FALSE; +} + +static gboolean +applet_is_any_vpn_activating (NMApplet *applet) +{ + const GPtrArray *connections; + int i; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (connections, i)); + NMVPNConnectionState vpn_state; + + if (NM_IS_VPN_CONNECTION (candidate)) { + vpn_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + if ( vpn_state == NM_VPN_CONNECTION_STATE_PREPARE + || vpn_state == NM_VPN_CONNECTION_STATE_NEED_AUTH + || vpn_state == NM_VPN_CONNECTION_STATE_CONNECT + || vpn_state == NM_VPN_CONNECTION_STATE_IP_CONFIG_GET) { + return TRUE; + } + } + } + return FALSE; +} + +static char * +make_vpn_failure_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service stopped unexpectedly."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service returned invalid configuration."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the connection attempt timed out."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service did not start in time."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because there were no valid VPN secrets."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because of invalid VPN secrets."), + nm_setting_connection_get_id (s_con)); + + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' failed."), nm_setting_connection_get_id (s_con)); +} + +static char * +make_vpn_disconnection_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the VPN service stopped."), + nm_setting_connection_get_id (s_con)); + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected."), nm_setting_connection_get_id (s_con)); +} + +static void +vpn_connection_state_changed (NMVPNConnection *vpn, + NMVPNConnectionState state, + NMVPNConnectionStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const char *banner; + char *title = NULL, *msg; + gboolean device_activating, vpn_activating; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (state) { + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections might not have come through yet. + */ + vpn_activating = TRUE; + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + banner = nm_vpn_connection_get_banner (vpn); + if (banner && strlen (banner)) + msg = g_strdup_printf (_("VPN connection has been successfully established.\n\n%s\n"), banner); + else + msg = g_strdup (_("VPN connection has been successfully established.\n")); + + title = _("VPN Login Message"); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_FAILED: + title = _("VPN Connection Failed"); + msg = make_vpn_failure_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_DISCONNECTED: + if (reason != NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED) { + title = _("VPN Connection Failed"); + msg = make_vpn_disconnection_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + } + break; + default: + break; + } + + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); + + applet_schedule_update_icon (applet); +} + +static const char * +get_connection_id (NMConnection *connection) +{ + NMSettingConnection *s_con; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + return nm_setting_connection_get_id (s_con); +} + +typedef struct { + NMApplet *applet; + char *vpn_name; +} VPNActivateInfo; + +static void +activate_vpn_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + VPNActivateInfo *info = (VPNActivateInfo *) user_data; + char *title, *msg, *name; + + if (error) { + clear_animation_timeout (info->applet); + + title = _("VPN Connection Failed"); + + /* dbus-glib GError messages _always_ have two NULLs, the D-Bus error + * name comes after the first NULL. Find it. + */ + name = error->message + strlen (error->message) + 1; + if (strstr (name, "ServiceStartFailed")) { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start.\n\n%s"), + info->vpn_name, error->message); + } else { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed to start.\n\n%s"), + info->vpn_name, error->message); + } + + applet_do_notify_with_pref (info->applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + + g_warning ("VPN Connection activation failed: (%s) %s", name, error->message); + } + + applet_schedule_update_icon (info->applet); + g_free (info->vpn_name); + g_free (info); +} + +static void +nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + VPNActivateInfo *info; + NMConnection *connection; + NMSettingConnection *s_con; + NMActiveConnection *active; + NMDevice *device = NULL; + + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) { + g_warning ("%s: no active connection or device.", __func__); + return; + } + + connection = NM_CONNECTION (g_object_get_data (G_OBJECT (item), "connection")); + if (!connection) { + g_warning ("%s: no connection associated with menu item!", __func__); + return; + } + + if (applet_get_active_for_connection (applet, connection)) + /* Connection already active; do nothing */ + return; + + s_con = nm_connection_get_setting_connection (connection); + info = g_malloc0 (sizeof (VPNActivateInfo)); + info->applet = applet; + info->vpn_name = g_strdup (nm_setting_connection_get_id (s_con)); + + /* Connection inactive, activate */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + nm_object_get_path (NM_OBJECT (active)), + activate_vpn_cb, + info); + start_animation_timeout (applet); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + + +/* + * nma_menu_configure_vpn_item_activate + * + * Signal function called when user clicks "Configure VPN..." + * + */ +static void +nma_menu_configure_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + const char *argv[] = { BINDIR "/nm-connection-editor", "--show", "--type", NM_SETTING_VPN_SETTING_NAME, NULL}; + + g_spawn_async (NULL, (gchar **) argv, NULL, 0, NULL, NULL, NULL, NULL); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static NMActiveConnection * +applet_get_first_active_vpn_connection (NMApplet *applet, + NMVPNConnectionState *out_state) +{ + const GPtrArray *active_list; + int i; + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate; + NMConnection *connection; + NMSettingConnection *s_con; + + candidate = g_ptr_array_index (active_list, i); + + connection = applet_get_connection_for_active (applet, candidate); + if (!connection) + continue; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + if (out_state) + *out_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + return candidate; + } + } + + return NULL; +} + +/* + * nma_menu_disconnect_vpn_item_activate + * + * Signal function called when user clicks "Disconnect VPN" + * + */ +static void +nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMActiveConnection *active_vpn = NULL; + NMVPNConnectionState state = NM_VPN_CONNECTION_STATE_UNKNOWN; + + active_vpn = applet_get_first_active_vpn_connection (applet, &state); + if (active_vpn) + nm_client_deactivate_connection (applet->nm_client, active_vpn); + else + g_warning ("%s: deactivate clicked but no active VPN connection could be found.", __func__); +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +/* + * nma_menu_add_separator_item + * + */ +static void +nma_menu_add_separator_item (GtkWidget *menu) +{ + GtkWidget *menu_item; + + menu_item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + + +/* + * nma_menu_add_text_item + * + * Add a non-clickable text item to a menu + * + */ +static void nma_menu_add_text_item (GtkWidget *menu, char *text) +{ + GtkWidget *menu_item; + + g_return_if_fail (text != NULL); + g_return_if_fail (menu != NULL); + + menu_item = gtk_menu_item_new_with_label (text); + gtk_widget_set_sensitive (menu_item, FALSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + +static gint +sort_devices (gconstpointer a, gconstpointer b) +{ + NMDevice *aa = NM_DEVICE (a); + NMDevice *bb = NM_DEVICE (b); + GType aa_type = G_OBJECT_TYPE (G_OBJECT (aa)); + GType bb_type = G_OBJECT_TYPE (G_OBJECT (bb)); + + if (aa_type == bb_type) { + const char *aa_desc = NULL; + const char *bb_desc = NULL; + + aa_desc = nma_utils_get_device_description (aa); + bb_desc = nma_utils_get_device_description (bb); + + return g_strcmp0 (aa_desc, bb_desc); + } + + /* Ethernet always first */ + if (aa_type == NM_TYPE_DEVICE_ETHERNET) + return -1; + if (bb_type == NM_TYPE_DEVICE_ETHERNET) + return 1; + + /* Modems next */ + if (aa_type == NM_TYPE_DEVICE_MODEM) + return -1; + if (bb_type == NM_TYPE_DEVICE_MODEM) + return 1; + + /* Bluetooth next */ + if (aa_type == NM_TYPE_DEVICE_BT) + return -1; + if (bb_type == NM_TYPE_DEVICE_BT) + return 1; + + /* WiMAX next */ + if (aa_type == NM_TYPE_DEVICE_WIMAX) + return -1; + if (bb_type == NM_TYPE_DEVICE_WIMAX) + return 1; + + /* WiFi last because it has many menu items */ + return 1; +} + +static gboolean +nm_g_ptr_array_contains (const GPtrArray *haystack, gpointer needle) +{ + int i; + + for (i = 0; haystack && (i < haystack->len); i++) { + if (g_ptr_array_index (haystack, i) == needle) + return TRUE; + } + return FALSE; +} + +NMConnection * +applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active) +{ + const GPtrArray *active_connections; + NMConnection *connection = NULL; + int i; + + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + if (out_active) + g_return_val_if_fail (*out_active == NULL, NULL); + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMRemoteConnection *tmp; + NMActiveConnection *active; + const char *connection_path; + const GPtrArray *devices; + + active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_connections, i)); + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + tmp = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (tmp) { + connection = NM_CONNECTION (tmp); + if (out_active) + *out_active = active; + break; + } + } + + return connection; +} + +gboolean +nma_menu_device_check_unusable (NMDevice *device) +{ + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + case NM_DEVICE_STATE_UNMANAGED: + return TRUE; + default: + break; + } + return FALSE; +} + + +struct AppletDeviceMenuInfo { + NMDevice *device; + NMApplet *applet; +}; + +static void +applet_device_info_destroy (struct AppletDeviceMenuInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + memset (info, 0, sizeof (struct AppletDeviceMenuInfo)); + g_free (info); +} + +static void +applet_device_disconnect_db (GtkMenuItem *item, gpointer user_data) +{ + struct AppletDeviceMenuInfo *info = user_data; + + applet_menu_item_disconnect_helper (info->device, + info->applet); +} + +GtkWidget * +nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg) +{ + GtkWidget *item = NULL; + gboolean managed = TRUE; + + if (!unavailable_msg) { + if (nm_device_get_firmware_missing (device)) + unavailable_msg = _("device not ready (firmware missing)"); + else + unavailable_msg = _("device not ready"); + } + + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_DISCONNECTED: + unavailable_msg = _("disconnected"); + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_UNMANAGED: + managed = FALSE; + break; + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + case NM_DEVICE_STATE_ACTIVATED: + { + struct AppletDeviceMenuInfo *info = g_new0 (struct AppletDeviceMenuInfo, 1); + info->device = g_object_ref (device); + info->applet = applet; + item = gtk_menu_item_new_with_label (_("Disconnect")); + g_signal_connect_data (item, "activate", + G_CALLBACK (applet_device_disconnect_db), + info, + (GClosureNotify) applet_device_info_destroy, 0); + gtk_widget_set_sensitive (item, TRUE); + break; + } + default: + managed = nm_device_get_managed (device); + break; + } + + if (!managed) { + item = gtk_menu_item_new_with_label (_("device not managed")); + gtk_widget_set_sensitive (item, FALSE); + } + + return item; +} + +static guint32 +nma_menu_add_devices (GtkWidget *menu, NMApplet *applet) +{ + const GPtrArray *temp = NULL; + GSList *devices = NULL, *iter = NULL; + gint n_wifi_devices = 0; + gint n_usable_wifi_devices = 0; + gint n_ethernet_devices = 0; + gint n_mb_devices = 0; + gint n_bt_devices = 0; + int i; + + temp = nm_client_get_devices (applet->nm_client); + for (i = 0; temp && (i < temp->len); i++) + devices = g_slist_insert_sorted (devices, g_ptr_array_index (temp, i), sort_devices); + + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) { + n_wifi_devices++; + if ( nm_client_wireless_get_enabled (applet->nm_client) + && (nm_device_get_state (device) >= NM_DEVICE_STATE_DISCONNECTED)) + n_usable_wifi_devices++; + } else if (NM_IS_DEVICE_ETHERNET (device)) + n_ethernet_devices++; + else if (NM_IS_DEVICE_MODEM (device)) + n_mb_devices++; + else if (NM_IS_DEVICE_BT (device)) + n_bt_devices++; + } + + if (!n_ethernet_devices && !n_wifi_devices && !n_mb_devices && !n_bt_devices) { + nma_menu_add_text_item (menu, _("No network devices available")); + goto out; + } + + /* Add all devices in our device list to the menu */ + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + gint n_devices = 0; + NMADeviceClass *dclass; + NMConnection *active; + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) + n_devices = n_wifi_devices; + else if (NM_IS_DEVICE_ETHERNET (device)) + n_devices = n_ethernet_devices; + else if (NM_IS_DEVICE_MODEM (device)) + n_devices = n_mb_devices; + + active = applet_find_active_connection_for_device (device, applet, NULL); + + dclass = get_device_class (device, applet); + if (dclass) + dclass->add_menu_item (device, n_devices, active, menu, applet); + } + + out: + g_slist_free (devices); + + /* Return # of usable wifi devices here for correct enable/disable state + * of things like Enable Wi-Fi, "Connect to other..." and such. + */ + return n_usable_wifi_devices; +} + +static int +sort_vpn_connections (gconstpointer a, gconstpointer b) +{ + return strcmp (get_connection_id (NM_CONNECTION (a)), get_connection_id (NM_CONNECTION (b))); +} + +static GSList * +get_vpn_connections (NMApplet *applet) +{ + GSList *all_connections; + GSList *iter; + GSList *list = NULL; + + all_connections = applet_get_all_connections (applet); + + for (iter = all_connections; iter; iter = iter->next) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) + /* Not a VPN connection */ + continue; + + if (!nm_connection_get_setting_vpn (connection)) { + g_warning ("%s: VPN connection '%s' didn't have required vpn setting.", __func__, + nm_setting_connection_get_id (s_con)); + continue; + } + + list = g_slist_prepend (list, connection); + } + + g_slist_free (all_connections); + + return g_slist_sort (list, sort_vpn_connections); +} + +static void +nma_menu_add_vpn_submenu (GtkWidget *menu, NMApplet *applet) +{ + GtkMenu *vpn_menu; + GtkMenuItem *item; + GSList *list, *iter; + int num_vpn_active = 0; + + nma_menu_add_separator_item (menu); + + vpn_menu = GTK_MENU (gtk_menu_new ()); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_VPN Connections"))); + gtk_menu_item_set_submenu (item, GTK_WIDGET (vpn_menu)); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + + list = get_vpn_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (applet_get_active_for_connection (applet, connection)) + num_vpn_active++; + } + + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMActiveConnection *active; + const char *name; + GtkWidget *image; + NMState state; + + name = get_connection_id (connection); + + item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); + gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + + /* If no VPN connections are active, draw all menu items enabled. If + * >= 1 VPN connections are active, only the active VPN menu item is + * drawn enabled. + */ + active = applet_get_active_for_connection (applet, connection); + + state = nm_client_get_state (applet->nm_client); + if ( state != NM_STATE_CONNECTED_LOCAL + && state != NM_STATE_CONNECTED_SITE + && state != NM_STATE_CONNECTED_GLOBAL) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + else if ((num_vpn_active == 0) || active) + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + else + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + if (active) { + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + } + + g_object_set_data_full (G_OBJECT (item), "connection", + g_object_ref (connection), + (GDestroyNotify) g_object_unref); + + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_vpn_item_clicked), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } + + /* Draw a seperator, but only if we have VPN connections above it */ + if (list) + nma_menu_add_separator_item (GTK_WIDGET (vpn_menu)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Configure VPN..."))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_configure_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Disconnect VPN"))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_disconnect_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + if (num_vpn_active == 0) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + g_slist_free (list); +} + + +static void +nma_set_wifi_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wireless_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wwan_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wwan_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wimax_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wimax_set_enabled (applet->nm_client, state); +} + +static void +nma_set_networking_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_networking_set_enabled (applet->nm_client, state); +} + + +static void +nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_CONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_VPN_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + !state); +} + +/* + * nma_menu_show_cb + * + * Pop up the wifi networks menu + * + */ +static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet) +{ + guint32 n_wifi; + + g_return_if_fail (menu != NULL); + g_return_if_fail (applet != NULL); + + gtk_status_icon_set_tooltip_text (applet->status_icon, NULL); + + if (!nm_client_get_manager_running (applet->nm_client)) { + nma_menu_add_text_item (menu, _("NetworkManager is not running...")); + return; + } + + if (nm_client_get_state (applet->nm_client) == NM_STATE_ASLEEP) { + nma_menu_add_text_item (menu, _("Networking disabled")); + return; + } + + n_wifi = nma_menu_add_devices (menu, applet); + + if (n_wifi > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { + /* Add the "Hidden Wi-Fi network..." entry */ + nma_menu_add_hidden_network_item (menu, applet); + nma_menu_add_create_network_item (menu, applet); + nma_menu_add_separator_item (menu); + } + + nma_menu_add_vpn_submenu (menu, applet); + gtk_widget_show_all (menu); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static gboolean +destroy_old_menu (gpointer user_data) +{ + g_object_unref (user_data); + return FALSE; +} + +static void +nma_menu_deactivate_cb (GtkWidget *widget, NMApplet *applet) +{ + /* Must punt the destroy to a low-priority idle to ensure that + * the menu items don't get destroyed before any 'activate' signal + * fires for an item. + */ + g_signal_handlers_disconnect_by_func (applet->menu, G_CALLBACK (nma_menu_deactivate_cb), applet); + g_idle_add_full (G_PRIORITY_LOW, destroy_old_menu, applet->menu, NULL); + applet->menu = NULL; + + /* Re-set the tooltip */ + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +} + +static gboolean +is_permission_yes (NMApplet *applet, NMClientPermission perm) +{ + if ( applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_YES + || applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_AUTH) + return TRUE; + return FALSE; +} + +/* + * nma_context_menu_update + * + */ +static void +nma_context_menu_update (NMApplet *applet) +{ + NMState state; + gboolean net_enabled = TRUE; + gboolean have_wifi = FALSE; + gboolean have_wwan = FALSE; + gboolean have_wimax = FALSE; + gboolean wifi_hw_enabled; + gboolean wwan_hw_enabled; + gboolean wimax_hw_enabled; + gboolean notifications_enabled = TRUE; + gboolean sensitive = FALSE; + + state = nm_client_get_state (applet->nm_client); + sensitive = ( state == NM_STATE_CONNECTED_LOCAL + || state == NM_STATE_CONNECTED_SITE + || state == NM_STATE_CONNECTED_GLOBAL); + gtk_widget_set_sensitive (applet->info_menu_item, sensitive); + + /* Update checkboxes, and block 'toggled' signal when updating so that the + * callback doesn't get triggered. + */ + + /* Enabled Networking */ + g_signal_handler_block (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + net_enabled = nm_client_networking_get_enabled (applet->nm_client); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->networking_enabled_item), + net_enabled && (state != NM_STATE_ASLEEP)); + g_signal_handler_unblock (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + gtk_widget_set_sensitive (applet->networking_enabled_item, + is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK)); + + /* Enabled Wi-Fi */ + g_signal_handler_block (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wifi_enabled_item), + nm_client_wireless_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wifi_enabled_item), + wifi_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI)); + + /* Enabled Mobile Broadband */ + g_signal_handler_block (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wwan_enabled_item), + nm_client_wwan_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + + wwan_hw_enabled = nm_client_wwan_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wwan_enabled_item), + wwan_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN)); + + /* Enable WiMAX */ + g_signal_handler_block (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wimax_enabled_item), + nm_client_wimax_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + + wimax_hw_enabled = nm_client_wimax_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), + wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); + + /* Enabled notifications */ + g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + if ( g_settings_get_boolean (applet->gsettings, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_VPN_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + notifications_enabled = FALSE; + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); + g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + + /* Don't show wifi-specific stuff if wifi is off */ + if (state != NM_STATE_ASLEEP) { + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = g_ptr_array_index (devices, i); + + if (NM_IS_DEVICE_WIFI (candidate)) + have_wifi = TRUE; + else if (NM_IS_DEVICE_MODEM (candidate)) + have_wwan = TRUE; + else if (NM_IS_DEVICE_WIMAX (candidate)) + have_wimax = TRUE; + } + } + + if (have_wifi) + gtk_widget_show_all (applet->wifi_enabled_item); + else + gtk_widget_hide (applet->wifi_enabled_item); + + if (have_wwan) + gtk_widget_show_all (applet->wwan_enabled_item); + else + gtk_widget_hide (applet->wwan_enabled_item); + + if (have_wimax) + gtk_widget_show_all (applet->wimax_enabled_item); + else + gtk_widget_hide (applet->wimax_enabled_item); +} + +static void +ce_child_setup (gpointer user_data G_GNUC_UNUSED) +{ + /* We are in the child process at this point */ + pid_t pid = getpid (); + setpgid (pid, pid); +} + +static void +nma_edit_connections_cb (GtkMenuItem *mi, NMApplet *applet) +{ + char *argv[2]; + GError *error = NULL; + gboolean success; + + argv[0] = BINDIR "/nm-connection-editor"; + argv[1] = NULL; + + success = g_spawn_async ("/", argv, NULL, 0, &ce_child_setup, NULL, NULL, &error); + if (!success) { + g_warning ("Error launching connection editor: %s", error->message); + g_error_free (error); + } +} + +static void +applet_connection_info_cb (NMApplet *applet) +{ + applet_info_dialog_show (applet); +} + +/* + * nma_context_menu_create + * + * Generate the contextual popup menu. + * + */ +static GtkWidget *nma_context_menu_create (NMApplet *applet) +{ + GtkMenuShell *menu; + GtkWidget *menu_item; + GtkWidget *image; + guint id; + + g_return_val_if_fail (applet != NULL, NULL); + + menu = GTK_MENU_SHELL (gtk_menu_new ()); + + /* 'Enable Networking' item */ + applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); + id = g_signal_connect (applet->networking_enabled_item, + "toggled", + G_CALLBACK (nma_set_networking_enabled_cb), + applet); + applet->networking_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->networking_enabled_item); + + /* 'Enable Wi-Fi' item */ + applet->wifi_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Wi-Fi")); + id = g_signal_connect (applet->wifi_enabled_item, + "toggled", + G_CALLBACK (nma_set_wifi_enabled_cb), + applet); + applet->wifi_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wifi_enabled_item); + + /* 'Enable Mobile Broadband' item */ + applet->wwan_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Mobile Broadband")); + id = g_signal_connect (applet->wwan_enabled_item, + "toggled", + G_CALLBACK (nma_set_wwan_enabled_cb), + applet); + applet->wwan_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wwan_enabled_item); + + /* 'Enable WiMAX Mobile Broadband' item */ + applet->wimax_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable WiMA_X Mobile Broadband")); + id = g_signal_connect (applet->wimax_enabled_item, + "toggled", + G_CALLBACK (nma_set_wimax_enabled_cb), + applet); + applet->wimax_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wimax_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* Toggle notifications item */ + applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); + id = g_signal_connect (applet->notifications_enabled_item, + "toggled", + G_CALLBACK (nma_set_notifications_enabled_cb), + applet); + applet->notifications_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->notifications_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* 'Connection Information' item */ + applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); + g_signal_connect_swapped (applet->info_menu_item, + "activate", + G_CALLBACK (applet_connection_info_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->info_menu_item), image); + gtk_menu_shell_append (menu, applet->info_menu_item); + + /* 'Edit Connections...' item */ + applet->connections_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Edit Connections...")); + g_signal_connect (applet->connections_menu_item, + "activate", + G_CALLBACK (nma_edit_connections_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); + gtk_menu_shell_append (menu, applet->connections_menu_item); + + /* Separator */ + nma_menu_add_separator_item (GTK_WIDGET (menu)); + +#if 0 /* FIXME: Implement the help callback, nma_help_cb()! */ + /* Help item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Help")); + g_signal_connect (menu_item, "activate", G_CALLBACK (nma_help_cb), applet); + image = gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); +#endif + + /* About item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_About")); + g_signal_connect_swapped (menu_item, "activate", G_CALLBACK (applet_about_dialog_show), applet); + image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + + gtk_widget_show_all (GTK_WIDGET (menu)); + + return GTK_WIDGET (menu); +} + + +/*****************************************************************************/ + +static void +foo_set_icon (NMApplet *applet, GdkPixbuf *pixbuf, guint32 layer) +{ + int i; + + if (layer > ICON_LAYER_MAX) { + g_warning ("Tried to icon to invalid layer %d", layer); + return; + } + + /* Ignore setting of the same icon as is already displayed */ + if (applet->icon_layers[layer] == pixbuf) + return; + + if (applet->icon_layers[layer]) { + g_object_unref (applet->icon_layers[layer]); + applet->icon_layers[layer] = NULL; + } + + if (pixbuf) + applet->icon_layers[layer] = g_object_ref (pixbuf); + + if (!applet->icon_layers[0]) { + nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + pixbuf = g_object_ref (applet->no_connection_icon); + } else { + pixbuf = gdk_pixbuf_copy (applet->icon_layers[0]); + + for (i = ICON_LAYER_LINK + 1; i <= ICON_LAYER_MAX; i++) { + GdkPixbuf *top = applet->icon_layers[i]; + + if (!top) + continue; + + gdk_pixbuf_composite (top, pixbuf, 0, 0, gdk_pixbuf_get_width (top), + gdk_pixbuf_get_height (top), + 0, 0, 1.0, 1.0, + GDK_INTERP_NEAREST, 255); + } + } + + gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); + g_object_unref (pixbuf); +} + + +NMRemoteConnection * +applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) +{ + const GPtrArray *active_connections; + int i; + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMActiveConnection *active; + NMRemoteConnection *connection; + const char *connection_path; + const GPtrArray *devices; + + active = g_ptr_array_index (active_connections, i); + if (!active) + continue; + + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + connection = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (connection) + return connection; + } + return NULL; +} + +static gboolean +select_merged_notification_text (OfflineNotificationContextInfo *info) +{ + info->urgency = NOTIFY_URGENCY_LOW; + /* only do something if this is about full offline state */ + if(info->state != NM_STATE_UNKNOWN || info->device_state != NM_DEVICE_STATE_UNKNOWN) { + info->urgency = NOTIFY_URGENCY_NORMAL; + if (!info->title) + info->title = g_strdup (_("Network")); + if (info->state == NM_STATE_DISCONNECTED || info->state == NM_STATE_ASLEEP) { + info->text = _("Disconnected - you are now offline"); + } else + info->text = _("Disconnected"); + + switch (info->device_type) { + case NM_DEVICE_TYPE_ETHERNET: + info->icon = "notification-network-ethernet-disconnected"; + break; + case NM_DEVICE_TYPE_WIFI: + info->icon = "notification-network-wireless-disconnected"; + break; + case NM_DEVICE_TYPE_MODEM: + info->icon = "notification-gsm-disconnected"; + break; + default: + info->icon = "notification-network-disconnected"; + break; + } + g_debug("going for offline with icon: %s", info->icon); + return TRUE; + } + return FALSE; +} + +static gboolean +foo_online_offline_deferred_notify (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if(select_merged_notification_text (info)) + if (!g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS)) + applet_do_notify (applet, info->urgency, info->title, + info->text, info->icon, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + _("Don't show this message again"), + notify_dont_show_cb, + applet); + else + g_debug("no notification because merged found that we have nothing to say (e.g. not offline)"); + if (info->title) + g_free (info->title); + info->title = NULL; + g_free (applet->notification_queue_data); + applet->notification_queue_data = NULL; + applet->deferred_id = 0; + return FALSE; +} + +static void +applet_common_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + gboolean device_activating = FALSE, vpn_activating = FALSE; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (new_state) { + case NM_DEVICE_STATE_FAILED: + case NM_DEVICE_STATE_DISCONNECTED: + case NM_DEVICE_STATE_UNMANAGED: + case NM_DEVICE_STATE_UNAVAILABLE: + { + if (old_state != NM_DEVICE_STATE_FAILED && + old_state != NM_DEVICE_STATE_UNKNOWN && + old_state != NM_DEVICE_STATE_DISCONNECTED && + old_state != NM_DEVICE_STATE_UNMANAGED && + old_state != NM_DEVICE_STATE_UNAVAILABLE) { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->device_state = new_state; + info->device_state_reason = reason; + if (info->title) { + g_free(info->title); + info->title = NULL; + } + if (NM_IS_DEVICE_WIFI (device)) { + info->device_type = NM_DEVICE_TYPE_WIFI; + info->title = g_strdup(g_object_get_data (G_OBJECT(device), "canonical-last-essid")); + if (!info->title) + info->title = g_strdup (_("Wireless network")); + } else if (NM_IS_DEVICE_ETHERNET (device)) { + info->device_type = NM_DEVICE_TYPE_ETHERNET; + info->title = g_strdup(_("Wired network")); + } else if (NM_IS_DEVICE_MODEM (device)) { + info->device_type = NM_DEVICE_TYPE_MODEM; + info->title = g_strdup (_("Modem network")); + } else { + info->device_type = NM_DEVICE_TYPE_UNKNOWN; + info->title = g_strdup (_("Network")); + } + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + clear_animation_timeout (applet); + } else { + g_debug ("old state indicates that this was not a disconnect %d", old_state); + } + break; + } + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections or devices might not have come through yet. + */ + device_activating = TRUE; + break; + case NM_DEVICE_STATE_ACTIVATED: + default: + break; + } + + /* If there's an activating device but we're not animating, start animation. + * If we're animating, but there's no activating device or VPN, stop animating. + */ + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); +} + +static void +foo_device_state_changed_cb (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + g_assert (dclass); + + dclass->device_state_changed (device, new_state, old_state, reason, applet); + applet_common_device_state_changed (device, new_state, old_state, reason, applet); + + applet_schedule_update_icon (applet); +} + +static void +foo_device_added_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + if (!dclass) + return; + + if (dclass->device_added) + dclass->device_added (device, applet); + + g_signal_connect (device, "state-changed", + G_CALLBACK (foo_device_state_changed_cb), + user_data); + + foo_device_state_changed_cb (device, + nm_device_get_state (device), + NM_DEVICE_STATE_UNKNOWN, + NM_DEVICE_STATE_REASON_NONE, + applet); +} + +static void +foo_client_state_changed_cb (NMClient *client, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + g_debug("foo_client_state_changed_cb"); + switch (nm_client_get_state (client)) { + case NM_STATE_DISCONNECTED: + case NM_STATE_ASLEEP: + { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->state = nm_client_get_state (client); + select_merged_notification_text (info); + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + /* Fall through */ + } + default: + break; + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_running_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (nm_client_get_manager_running (client)) { + g_message ("NM appeared"); + } else { + g_message ("NM disappeared"); + clear_animation_timeout (applet); + } + + applet_schedule_update_icon (applet); +} + +#define VPN_STATE_ID_TAG "vpn-state-id" + +static void +foo_active_connections_changed_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const GPtrArray *active_list; + int i; + + /* Track the state of new VPN connections */ + active_list = nm_client_get_active_connections (client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + guint id; + + if ( !NM_IS_VPN_CONNECTION (candidate) + || g_object_get_data (G_OBJECT (candidate), VPN_STATE_ID_TAG)) + continue; + + id = g_signal_connect (G_OBJECT (candidate), "vpn-state-changed", + G_CALLBACK (vpn_connection_state_changed), applet); + g_object_set_data (G_OBJECT (candidate), VPN_STATE_ID_TAG, GUINT_TO_POINTER (id)); + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_permission_changed (NMClient *client, + NMClientPermission permission, + NMClientPermissionResult result, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (permission <= NM_CLIENT_PERMISSION_LAST) + applet->permissions[permission] = result; +} + +static gboolean +foo_set_initial_state (gpointer data) +{ + NMApplet *applet = NM_APPLET (data); + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) + foo_device_added_cb (applet->nm_client, NM_DEVICE (g_ptr_array_index (devices, i)), applet); + + foo_active_connections_changed_cb (applet->nm_client, NULL, applet); + + applet_schedule_update_icon (applet); + + return FALSE; +} + +static void +foo_client_setup (NMApplet *applet) +{ + NMClientPermission perm; + + applet->nm_client = nm_client_new (); + if (!applet->nm_client) + return; + + g_signal_connect (applet->nm_client, "notify::state", + G_CALLBACK (foo_client_state_changed_cb), + applet); + g_signal_connect (applet->nm_client, "notify::active-connections", + G_CALLBACK (foo_active_connections_changed_cb), + applet); + g_signal_connect (applet->nm_client, "device-added", + G_CALLBACK (foo_device_added_cb), + applet); + g_signal_connect (applet->nm_client, "notify::manager-running", + G_CALLBACK (foo_manager_running_cb), + applet); + + g_signal_connect (applet->nm_client, "permission-changed", + G_CALLBACK (foo_manager_permission_changed), + applet); + + /* Initialize permissions - the initial 'permission-changed' signal is emitted from NMClient constructor, and thus not caught */ + for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { + applet->permissions[perm] = nm_client_get_permission_result (applet->nm_client, perm); + } + + if (nm_client_get_manager_running (applet->nm_client)) + g_idle_add (foo_set_initial_state, applet); + + applet_schedule_update_icon (applet); +} + +static GdkPixbuf * +applet_common_get_device_icon (NMDeviceState state, NMApplet *applet) +{ + GdkPixbuf *pixbuf = NULL; + int stage = -1; + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + stage = 0; + break; + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + stage = 1; + break; + case NM_DEVICE_STATE_IP_CONFIG: + stage = 2; + break; + default: + break; + } + + if (stage >= 0) { + int i, j; + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { + char *name; + + name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); + nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); + g_free (name); + } + } + + pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_CONNECTING_FRAMES) + applet->animation_step = 0; + } + + return pixbuf; +} + +static char * +get_tip_for_device_state (NMDevice *device, + NMDeviceState state, + NMConnection *connection) +{ + NMSettingConnection *s_con; + char *tip = NULL; + const char *id = NULL; + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + tip = g_strdup_printf (_("Preparing network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + tip = g_strdup_printf (_("Network connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static GdkPixbuf * +applet_get_device_icon_for_state (NMApplet *applet, char **tip) +{ + NMActiveConnection *active; + NMDevice *device = NULL; + GdkPixbuf *pixbuf = NULL; + NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; + NMADeviceClass *dclass; + + // FIXME: handle multiple device states here + + /* First show the best activating device's state */ + active = applet_get_best_activating_connection (applet, &device); + if (!active || !device) { + /* If there aren't any activating devices, then show the state of + * the default active connection instead. + */ + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) + goto out; + } + + state = nm_device_get_state (device); + + dclass = get_device_class (device, applet); + if (dclass) { + NMConnection *connection; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + /* device class returns a referenced pixbuf */ + pixbuf = dclass->get_icon (device, state, connection, tip, applet); + if (!*tip) + *tip = get_tip_for_device_state (device, state, connection); + } + +out: + if (!pixbuf) { + pixbuf = applet_common_get_device_icon (state, applet); + /* reference the pixbuf to match the device class' get_icon() function behavior */ + if (pixbuf) + g_object_ref (pixbuf); + } + return pixbuf; +} + +static char * +get_tip_for_vpn (NMActiveConnection *active, NMVPNConnectionState state, NMApplet *applet) +{ + char *tip = NULL; + const char *path, *id = NULL; + GSList *iter, *list; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + if (!strcmp (nm_connection_get_path (candidate), path)) { + s_con = nm_connection_get_setting_connection (candidate); + id = nm_setting_connection_get_id (s_con); + break; + } + } + g_slist_free (list); + + if (!id) + return NULL; + + switch (state) { + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_PREPARE: + tip = g_strdup_printf (_("Starting VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + tip = g_strdup_printf (_("Requesting a VPN address for '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + tip = g_strdup_printf (_("VPN connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static gboolean +applet_update_icon (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GdkPixbuf *pixbuf = NULL; + NMState state; + char *dev_tip = NULL, *vpn_tip = NULL; + NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; + gboolean nm_running; + NMActiveConnection *active_vpn = NULL; + + applet->update_icon_id = 0; + + nm_running = nm_client_get_manager_running (applet->nm_client); + + /* Handle device state first */ + + state = nm_client_get_state (applet->nm_client); + if (!nm_running) + state = NM_STATE_UNKNOWN; + + switch (state) { + case NM_STATE_UNKNOWN: + case NM_STATE_ASLEEP: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("Networking disabled")); + break; + case NM_STATE_DISCONNECTED: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("No network connection")); + break; + default: + pixbuf = applet_get_device_icon_for_state (applet, &dev_tip); + break; + } + + foo_set_icon (applet, pixbuf, ICON_LAYER_LINK); + if (pixbuf) + g_object_unref (pixbuf); + + /* VPN state next */ + pixbuf = NULL; + active_vpn = applet_get_first_active_vpn_connection (applet, &vpn_state); + if (active_vpn) { + int i; + + switch (vpn_state) { + case NM_VPN_CONNECTION_STATE_ACTIVATED: + pixbuf = nma_icon_check_and_load ("nm-vpn-active-lock", &applet->vpn_lock_icon, applet); + break; + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) { + char *name; + + name = g_strdup_printf ("nm-vpn-connecting%02d", i+1); + nma_icon_check_and_load (name, &applet->vpn_connecting_icons[i], applet); + g_free (name); + } + + pixbuf = applet->vpn_connecting_icons[applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) + applet->animation_step = 0; + break; + default: + break; + } + + vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); + } + foo_set_icon (applet, pixbuf, ICON_LAYER_VPN); + + g_free (applet->tip); + applet->tip = NULL; + + if (dev_tip || vpn_tip) { + GString *tip; + + tip = g_string_new (dev_tip); + + if (vpn_tip) + g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", vpn_tip); + + if (tip->len) + applet->tip = tip->str; + + g_free (vpn_tip); + g_free (dev_tip); + g_string_free (tip, FALSE); + } + + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); + + return FALSE; +} + +void +applet_schedule_update_icon (NMApplet *applet) +{ + if (!applet->update_icon_id) + applet->update_icon_id = g_idle_add (applet_update_icon, applet); +} + +/*****************************************************************************/ + +static SecretsRequest * +applet_secrets_request_new (size_t totsize, + NMConnection *connection, + gpointer request_id, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + NMApplet *applet) +{ + SecretsRequest *req; + + g_return_val_if_fail (totsize >= sizeof (SecretsRequest), NULL); + g_return_val_if_fail (connection != NULL, NULL); + + req = g_malloc0 (totsize); + req->totsize = totsize; + req->connection = g_object_ref (connection); + req->reqid = request_id; + req->setting_name = g_strdup (setting_name); + req->hints = g_strdupv ((char **) hints); + req->flags = flags; + req->callback = callback; + req->callback_data = callback_data; + req->applet = applet; + return req; +} + +void +applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func) +{ + req->free_func = free_func; +} + +void +applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error) +{ + req->callback (req->applet->agent, error ? NULL : settings, error, req->callback_data); +} + +void +applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error) +{ + NMSetting *setting; + GHashTable *settings = NULL, *secrets; + + if (setting_name && !error) { + setting = nm_connection_get_setting_by_name (req->connection, setting_name); + if (setting) { + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, g_strdup (setting_name), secrets); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, setting_name); + } + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled setting '%s'", + __FILE__, __LINE__, __func__, setting_name); + } + } + + req->callback (req->applet->agent, settings, error, req->callback_data); +} + +void +applet_secrets_request_free (SecretsRequest *req) +{ + g_return_if_fail (req != NULL); + + if (req->free_func) + req->free_func (req); + + req->applet->secrets_reqs = g_slist_remove (req->applet->secrets_reqs, req); + + g_object_unref (req->connection); + g_free (req->setting_name); + g_strfreev (req->hints); + memset (req, 0, req->totsize); + g_free (req); +} + +static void +get_existing_secrets_cb (NMSecretAgent *agent, + NMConnection *connection, + GHashTable *secrets, + GError *secrets_error, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMADeviceClass *dclass; + GError *error = NULL; + + /* Merge existing secrets into connection; ignore errors */ + nm_connection_update_secrets (connection, req->setting_name, secrets, NULL); + + dclass = get_device_class_from_connection (connection, req->applet); + g_assert (dclass); + + /* Let the device class handle secrets */ + if (!dclass->get_secrets (req, &error)) { + g_warning ("%s:%d - %s", __func__, __LINE__, error ? error->message : "(unknown)"); + applet_secrets_request_complete (req, NULL, error); + applet_secrets_request_free (req); + g_error_free (error); + } + /* Otherwise success; wait for the secrets callback */ +} + +static void +applet_agent_get_secrets_cb (AppletAgent *agent, + gpointer request_id, + NMConnection *connection, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMSettingConnection *s_con; + NMADeviceClass *dclass; + GError *error = NULL; + SecretsRequest *req = NULL; + + s_con = nm_connection_get_setting_connection (connection); + g_return_if_fail (s_con != NULL); + + /* VPN secrets get handled a bit differently */ + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + req = applet_secrets_request_new (applet_vpn_request_get_secrets_size (), + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + if (!applet_vpn_request_get_secrets (req, &error)) + goto error; + + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + return; + } + + dclass = get_device_class_from_connection (connection, applet); + if (!dclass) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): device type unknown", + __FILE__, __LINE__, __func__); + goto error; + } + + if (!dclass->get_secrets) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NO_SECRETS, + "%s.%d (%s): no secrets found", + __FILE__, __LINE__, __func__); + goto error; + } + + g_assert (dclass->secrets_request_size); + req = applet_secrets_request_new (dclass->secrets_request_size, + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + + /* Get existing secrets, if any */ + nm_secret_agent_get_secrets (NM_SECRET_AGENT (applet->agent), + connection, + setting_name, + hints, + NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE, + get_existing_secrets_cb, + req); + return; + +error: + g_warning ("%s", error->message); + callback (agent, NULL, error, callback_data); + g_error_free (error); + + if (req) + applet_secrets_request_free (req); +} + +static void +applet_agent_cancel_secrets_cb (AppletAgent *agent, + gpointer request_id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GSList *iter; + + for (iter = applet->secrets_reqs; iter; iter = g_slist_next (iter)) { + SecretsRequest *req = iter->data; + + if (req->reqid == request_id) { + /* cancel and free this password request */ + applet_secrets_request_free (req); + } + } +} + +static void +applet_agent_registered_cb (AppletAgent *agent, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + /* If the shell is running and the agent just got registered, unregister it */ + if ( (nm_shell_watcher_version_at_least (applet->shell_watcher, 3, 4)) + && nm_secret_agent_get_registered (NM_SECRET_AGENT (agent))) { + g_message ("Stopping registered applet secret agent because GNOME Shell is running"); + nm_secret_agent_unregister (NM_SECRET_AGENT (agent)); + } +} + +/*****************************************************************************/ + +static void +nma_clear_icon (GdkPixbuf **icon, NMApplet *applet) +{ + g_return_if_fail (icon != NULL); + g_return_if_fail (applet != NULL); + + if (*icon && (*icon != applet->fallback_icon)) { + g_object_unref (*icon); + *icon = NULL; + } +} + +static void nma_icons_free (NMApplet *applet) +{ + int i, j; + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); + + nma_clear_icon (&applet->no_connection_icon, applet); + nma_clear_icon (&applet->ethernet_icon, applet); + nma_clear_icon (&applet->adhoc_icon, applet); + nma_clear_icon (&applet->wwan_icon, applet); + nma_clear_icon (&applet->wwan_tower_icon, applet); + nma_clear_icon (&applet->vpn_lock_icon, applet); + nma_clear_icon (&applet->wifi_00_icon, applet); + nma_clear_icon (&applet->wifi_25_icon, applet); + nma_clear_icon (&applet->wifi_50_icon, applet); + nma_clear_icon (&applet->wifi_75_icon, applet); + nma_clear_icon (&applet->wifi_100_icon, applet); + nma_clear_icon (&applet->secure_lock_icon, applet); + + nma_clear_icon (&applet->mb_tech_1x_icon, applet); + nma_clear_icon (&applet->mb_tech_evdo_icon, applet); + nma_clear_icon (&applet->mb_tech_gprs_icon, applet); + nma_clear_icon (&applet->mb_tech_edge_icon, applet); + nma_clear_icon (&applet->mb_tech_umts_icon, applet); + nma_clear_icon (&applet->mb_tech_hspa_icon, applet); + nma_clear_icon (&applet->mb_tech_lte_icon, applet); + nma_clear_icon (&applet->mb_roaming_icon, applet); + nma_clear_icon (&applet->mb_tech_3g_icon, applet); + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) + nma_clear_icon (&applet->network_connecting_icons[i][j], applet); + } + + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) + nma_clear_icon (&applet->vpn_connecting_icons[i], applet); + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); +} + +GdkPixbuf * +nma_icon_check_and_load (const char *name, GdkPixbuf **icon, NMApplet *applet) +{ + GError *error = NULL; + + g_return_val_if_fail (name != NULL, NULL); + g_return_val_if_fail (icon != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + /* icon already loaded successfully */ + if (*icon && (*icon != applet->fallback_icon)) + return *icon; + + /* Try to load the icon; if the load fails, log the problem, and set + * the icon to the fallback icon if requested. + */ + *icon = gtk_icon_theme_load_icon (applet->icon_theme, name, applet->icon_size, 0, &error); + if (!*icon) { + g_warning ("Icon %s missing: (%d) %s", + name, + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + + *icon = applet->fallback_icon; + } + return *icon; +} + +#include "fallback-icon.h" + +static gboolean +nma_icons_reload (NMApplet *applet) +{ + GError *error = NULL; + GdkPixbufLoader *loader; + + g_return_val_if_fail (applet->icon_size > 0, FALSE); + + nma_icons_free (applet); + + loader = gdk_pixbuf_loader_new_with_type ("png", &error); + if (!loader) + goto error; + + if (!gdk_pixbuf_loader_write (loader, + fallback_icon_data, + sizeof (fallback_icon_data), + &error)) + goto error; + + if (!gdk_pixbuf_loader_close (loader, &error)) + goto error; + + applet->fallback_icon = gdk_pixbuf_loader_get_pixbuf (loader); + g_object_ref (applet->fallback_icon); + g_assert (applet->fallback_icon); + g_object_unref (loader); + + return TRUE; + +error: + g_warning ("Could not load fallback icon: (%d) %s", + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + /* Die if we can't get a fallback icon */ + g_assert (FALSE); + return FALSE; +} + +static void nma_icon_theme_changed (GtkIconTheme *icon_theme, NMApplet *applet) +{ + nma_icons_reload (applet); +} + +static void nma_icons_init (NMApplet *applet) +{ + GdkScreen *screen; + gboolean path_appended; + + if (applet->icon_theme) { + g_signal_handlers_disconnect_by_func (applet->icon_theme, + G_CALLBACK (nma_icon_theme_changed), + applet); + g_object_unref (G_OBJECT (applet->icon_theme)); + } + + screen = gtk_status_icon_get_screen (applet->status_icon); + g_assert (screen); + applet->icon_theme = gtk_icon_theme_get_for_screen (screen); + + /* If not done yet, append our search path */ + path_appended = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended")); + if (path_appended == FALSE) { + gtk_icon_theme_append_search_path (applet->icon_theme, ICONDIR); + g_object_set_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended", + GINT_TO_POINTER (TRUE)); + } + + g_signal_connect (applet->icon_theme, "changed", G_CALLBACK (nma_icon_theme_changed), applet); +} + +static void +status_icon_screen_changed_cb (GtkStatusIcon *icon, + GParamSpec *pspec, + NMApplet *applet) +{ + nma_icons_init (applet); + nma_icon_theme_changed (NULL, applet); +} + +static gboolean +status_icon_size_changed_cb (GtkStatusIcon *icon, + gint size, + NMApplet *applet) +{ + if (getenv ("NMA_SIZE_DEBUG")) { + g_message ("%s(): status icon size now %d", __func__, size); + } + + /* icon_size may be 0 if for example the panel hasn't given us any space + * yet. We'll get resized later, but for now just load the 16x16 icons. + */ + applet->icon_size = MAX (16, size); + + nma_icons_reload (applet); + + applet_schedule_update_icon (applet); + + return TRUE; +} + +static void +status_icon_activate_cb (GtkStatusIcon *icon, NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + + /* Kill any old menu */ + if (applet->menu) + g_object_unref (applet->menu); + + /* And make a fresh new one */ + applet->menu = gtk_menu_new (); + /* Sink the ref so we can explicitly destroy the menu later */ + g_object_ref_sink (G_OBJECT (applet->menu)); + + gtk_container_set_border_width (GTK_CONTAINER (applet->menu), 0); + g_signal_connect (applet->menu, "show", G_CALLBACK (nma_menu_show_cb), applet); + g_signal_connect (applet->menu, "deactivate", G_CALLBACK (nma_menu_deactivate_cb), applet); + + /* Display the new menu */ + gtk_menu_popup (GTK_MENU (applet->menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + 1, gtk_get_current_event_time ()); +} + +static void +status_icon_popup_menu_cb (GtkStatusIcon *icon, + guint button, + guint32 activate_time, + NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + + nma_context_menu_update (applet); + gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + button, activate_time); +} + +static gboolean +setup_widgets (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->status_icon = gtk_status_icon_new (); + if (!applet->status_icon) + return FALSE; + if (shell_debug) + gtk_status_icon_set_name (applet->status_icon, "adsfasdfasdfadfasdf"); + + g_signal_connect (applet->status_icon, "notify::screen", + G_CALLBACK (status_icon_screen_changed_cb), applet); + g_signal_connect (applet->status_icon, "size-changed", + G_CALLBACK (status_icon_size_changed_cb), applet); + g_signal_connect (applet->status_icon, "activate", + G_CALLBACK (status_icon_activate_cb), applet); + g_signal_connect (applet->status_icon, "popup-menu", + G_CALLBACK (status_icon_popup_menu_cb), applet); + + applet->context_menu = nma_context_menu_create (applet); + if (!applet->context_menu) + return FALSE; + + return TRUE; +} + +static void +applet_embedded_cb (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + gboolean embedded = gtk_status_icon_is_embedded (GTK_STATUS_ICON (object)); + + g_message ("applet now %s the notification area", + embedded ? "embedded in" : "removed from"); +} + +#if GLIB_CHECK_VERSION(2,26,0) +static gboolean +delayed_start_agent (gpointer user_data) +{ + NMApplet *applet = user_data; + + applet->agent_start_id = 0; + + g_assert (applet->agent); + + /* If the agent is already running, there's nothing to do. */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent)) == TRUE) + return FALSE; + + if (nm_secret_agent_register (NM_SECRET_AGENT (applet->agent))) + g_message ("Starting applet secret agent because GNOME Shell disappeared"); + else + g_warning ("Failed to start applet secret agent!"); + return FALSE; +} + +static void +shell_version_changed_cb (NMShellWatcher *watcher, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = user_data; + + if (applet->agent_start_id) { + g_source_remove (applet->agent_start_id); + applet->agent_start_id = 0; + } + + if (!applet->agent) + return; + + if (nm_shell_watcher_version_at_least (watcher, 3, 4)) { + /* GNOME Shell handles all secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) { + g_message ("Stopping applet secret agent because GNOME Shell appeared"); + nm_secret_agent_unregister (NM_SECRET_AGENT (applet->agent)); + } + } else if (nm_shell_watcher_version_at_least (watcher, 3, 2)) { + /* GNOME Shell handles everything except VPN secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + g_message ("Applet secret agent handling only VPN secrets because GNOME Shell appeared"); + applet_agent_handle_vpn_only (applet->agent, TRUE); + } else { + /* If the shell quit and our agent wasn't already registered, do it + * now on a delay (just in case the shell is restarting). + */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + applet->agent_start_id = g_timeout_add_seconds (4, delayed_start_agent, applet); + applet_agent_handle_vpn_only (applet->agent, FALSE); + } +} +#endif + +static gboolean +dbus_setup (NMApplet *applet, GError **error) +{ + DBusConnection *connection; + DBusGProxy *proxy; + guint result; + gboolean success; + + applet->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, error); + if (!applet->bus) + return FALSE; + + connection = dbus_g_connection_get_connection (applet->bus); + dbus_connection_set_exit_on_disconnect (connection, FALSE); + + applet->session_bus = dbus_g_bus_get (DBUS_BUS_SESSION, error); + if (!applet->session_bus) + return FALSE; + + dbus_g_connection_register_g_object (applet->session_bus, + "/org/gnome/network_manager_applet", + G_OBJECT (applet)); + + proxy = dbus_g_proxy_new_for_name (applet->session_bus, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + success = dbus_g_proxy_call (proxy, "RequestName", error, + G_TYPE_STRING, "org.gnome.network_manager_applet", + G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE, + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID); + g_object_unref (proxy); + + return success; +} + +static GObject * +constructor (GType type, + guint n_props, + GObjectConstructParam *construct_props) +{ + NMApplet *applet; + GError* error = NULL; + + applet = NM_APPLET (G_OBJECT_CLASS (nma_parent_class)->constructor (type, n_props, construct_props)); + + g_set_application_name (_("NetworkManager Applet")); + gtk_window_set_default_icon_name (GTK_STOCK_NETWORK); + + applet->info_dialog_ui = gtk_builder_new (); + + if (!gtk_builder_add_from_file (applet->info_dialog_ui, UIDIR "/info.ui", &error)) { + g_warning ("Couldn't load info dialog ui file: %s", error->message); + g_error_free (error); + goto error; + } + + applet->gsettings = g_settings_new (APPLET_PREFS_SCHEMA); + + /* Load pixmaps and create applet widgets */ + if (!setup_widgets (applet)) + goto error; + nma_icons_init (applet); + + if (!notify_is_initted ()) + notify_init ("NetworkManager"); + + if (!dbus_setup (applet, &error)) { + g_warning ("Failed to initialize D-Bus: %s", error->message); + g_error_free (error); + goto error; + } + applet->settings = nm_remote_settings_new (applet->bus); + +#ifdef BUILD_MIGRATION_TOOL + { + char *argv[2] = { LIBEXECDIR "/nm-applet-migration-tool", NULL }; + int status; + + /* Move user connections to the system */ + if (!g_spawn_sync (NULL, argv, NULL, 0, NULL, NULL, + NULL, NULL, &status, &error)) { + g_warning ("Could not run nm-applet-migration-tool: %s", + error->message); + g_error_free (error); + } else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { + g_warning ("nm-applet-migration-tool exited with error"); + } + } +#endif + + applet->agent = applet_agent_new (); + g_assert (applet->agent); + g_signal_connect (applet->agent, APPLET_AGENT_GET_SECRETS, + G_CALLBACK (applet_agent_get_secrets_cb), applet); + g_signal_connect (applet->agent, APPLET_AGENT_CANCEL_SECRETS, + G_CALLBACK (applet_agent_cancel_secrets_cb), applet); + g_signal_connect (applet->agent, "notify::" NM_SECRET_AGENT_REGISTERED, + G_CALLBACK (applet_agent_registered_cb), applet); + + /* Initialize device classes */ + applet->ethernet_class = applet_device_ethernet_get_class (applet); + g_assert (applet->ethernet_class); + + applet->wifi_class = applet_device_wifi_get_class (applet); + g_assert (applet->wifi_class); + + applet->gsm_class = applet_device_gsm_get_class (applet); + g_assert (applet->gsm_class); + + applet->cdma_class = applet_device_cdma_get_class (applet); + g_assert (applet->cdma_class); + + applet->bt_class = applet_device_bt_get_class (applet); + g_assert (applet->bt_class); + + applet->wimax_class = applet_device_wimax_get_class (applet); + g_assert (applet->wimax_class); + + foo_client_setup (applet); + + /* Track embedding to help debug issues where user has removed the + * notification area applet from the panel, and thus nm-applet too. + */ + g_signal_connect (applet->status_icon, "notify::embedded", + G_CALLBACK (applet_embedded_cb), NULL); + applet_embedded_cb (G_OBJECT (applet->status_icon), NULL, NULL); + +#if GLIB_CHECK_VERSION(2,26,0) + /* Watch GNOME Shell so we can unregister our applet agent if it appears */ + applet->shell_watcher = nm_shell_watcher_new (); + g_signal_connect (applet->shell_watcher, + "notify::shell-version", + G_CALLBACK (shell_version_changed_cb), + applet); +#endif + + return G_OBJECT (applet); + +error: + g_object_unref (applet); + return NULL; +} + +static void finalize (GObject *object) +{ + NMApplet *applet = NM_APPLET (object); + + g_slice_free (NMADeviceClass, applet->ethernet_class); + g_slice_free (NMADeviceClass, applet->wifi_class); + g_slice_free (NMADeviceClass, applet->gsm_class); + g_slice_free (NMADeviceClass, applet->cdma_class); + g_slice_free (NMADeviceClass, applet->bt_class); + g_slice_free (NMADeviceClass, applet->wimax_class); + + if (applet->update_icon_id) + g_source_remove (applet->update_icon_id); + + if (applet->menu) + g_object_unref (applet->menu); + nma_icons_free (applet); + + g_free (applet->tip); + + while (g_slist_length (applet->secrets_reqs)) + applet_secrets_request_free ((SecretsRequest *) applet->secrets_reqs->data); + + if (applet->notification) { + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + } + + if (applet->info_dialog_ui) + g_object_unref (applet->info_dialog_ui); + + if (applet->gsettings) + g_object_unref (applet->gsettings); + + if (applet->status_icon) + g_object_unref (applet->status_icon); + + if (applet->nm_client) + g_object_unref (applet->nm_client); + + if (applet->fallback_icon) + g_object_unref (applet->fallback_icon); + + if (applet->agent) + g_object_unref (applet->agent); + + if (applet->settings) + g_object_unref (applet->settings); + + if (applet->bus) + dbus_g_connection_unref (applet->bus); + + if (applet->session_bus) + dbus_g_connection_unref (applet->session_bus); + +#if GLIB_CHECK_VERSION(2,26,0) + if (applet->shell_watcher) + g_object_unref (applet->shell_watcher); +#endif + if (applet->agent_start_id) + g_source_remove (applet->agent_start_id); + + G_OBJECT_CLASS (nma_parent_class)->finalize (object); +} + +static void nma_init (NMApplet *applet) +{ + applet->animation_id = 0; + applet->animation_step = 0; + applet->icon_theme = NULL; + applet->notification = NULL; + applet->icon_size = 16; +} + +enum { + PROP_0, + PROP_LOOP, + LAST_PROP +}; + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMApplet *applet = NM_APPLET (object); + + switch (prop_id) { + case PROP_LOOP: + applet->loop = g_value_get_pointer (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void nma_class_init (NMAppletClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GParamSpec *pspec; + + oclass->set_property = set_property; + oclass->constructor = constructor; + oclass->finalize = finalize; + + pspec = g_param_spec_pointer ("loop", "Loop", "Applet mainloop", G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); + g_object_class_install_property (oclass, PROP_LOOP, pspec); + + dbus_g_object_type_install_info (NM_TYPE_APPLET, &dbus_glib_nma_object_info); +} + +NMApplet * +nm_applet_new (GMainLoop *loop) +{ + return g_object_new (NM_TYPE_APPLET, "loop", loop, NULL); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/lp829673_gconf_hide_applet.patch/src/applet.h network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp829673_gconf_hide_applet.patch/src/applet.h --- network-manager-applet-0.9.4.1/.pc/lp829673_gconf_hide_applet.patch/src/applet.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp829673_gconf_hide_applet.patch/src/applet.h 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,326 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2011 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + */ + +#ifndef APPLET_H +#define APPLET_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include +#include + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include "applet-agent.h" +#include "shell-watcher.h" + +#define NM_TYPE_APPLET (nma_get_type()) +#define NM_APPLET(object) (G_TYPE_CHECK_INSTANCE_CAST((object), NM_TYPE_APPLET, NMApplet)) +#define NM_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_APPLET, NMAppletClass)) +#define NM_IS_APPLET(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), NM_TYPE_APPLET)) +#define NM_IS_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_APPLET)) +#define NM_APPLET_GET_CLASS(object)(G_TYPE_INSTANCE_GET_CLASS((object), NM_TYPE_APPLET, NMAppletClass)) + +typedef struct +{ + GObjectClass parent_class; +} NMAppletClass; + +#define APPLET_PREFS_SCHEMA "org.gnome.nm-applet" +#define PREF_DISABLE_CONNECTED_NOTIFICATIONS "disable-connected-notifications" +#define PREF_DISABLE_DISCONNECTED_NOTIFICATIONS "disable-disconnected-notifications" +#define PREF_DISABLE_VPN_NOTIFICATIONS "disable-vpn-notifications" +#define PREF_DISABLE_WIFI_CREATE "disable-wifi-create" +#define PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE "suppress-wireless-networks-available" + +#define ICON_LAYER_LINK 0 +#define ICON_LAYER_VPN 1 +#define ICON_LAYER_MAX ICON_LAYER_VPN + +typedef struct NMADeviceClass NMADeviceClass; + +/* + * Applet instance data + * + */ +typedef struct +{ + GObject parent_instance; + + GMainLoop *loop; + DBusGConnection *bus; + DBusGConnection *session_bus; + +#if GLIB_CHECK_VERSION(2,26,0) + NMShellWatcher *shell_watcher; +#endif + guint agent_start_id; + + NMClient *nm_client; + NMRemoteSettings *settings; + AppletAgent *agent; + + GSettings *gsettings; + + /* Permissions */ + NMClientPermissionResult permissions[NM_CLIENT_PERMISSION_LAST + 1]; + + /* Device classes */ + NMADeviceClass *ethernet_class; + NMADeviceClass *wifi_class; + NMADeviceClass *gsm_class; + NMADeviceClass *cdma_class; + NMADeviceClass *bt_class; + NMADeviceClass *wimax_class; + + /* Data model elements */ + guint update_icon_id; + + GtkIconTheme * icon_theme; + GdkPixbuf * no_connection_icon; + GdkPixbuf * ethernet_icon; + GdkPixbuf * adhoc_icon; + GdkPixbuf * wwan_icon; + GdkPixbuf * wifi_00_icon; + GdkPixbuf * wifi_25_icon; + GdkPixbuf * wifi_50_icon; + GdkPixbuf * wifi_75_icon; + GdkPixbuf * wifi_100_icon; + GdkPixbuf * secure_lock_icon; +#define NUM_CONNECTING_STAGES 3 +#define NUM_CONNECTING_FRAMES 11 + GdkPixbuf * network_connecting_icons[NUM_CONNECTING_STAGES][NUM_CONNECTING_FRAMES]; +#define NUM_VPN_CONNECTING_FRAMES 14 + GdkPixbuf * vpn_connecting_icons[NUM_VPN_CONNECTING_FRAMES]; + GdkPixbuf * vpn_lock_icon; + GdkPixbuf * fallback_icon; + + /* Mobiel Broadband icons */ + GdkPixbuf * wwan_tower_icon; + GdkPixbuf * mb_tech_1x_icon; + GdkPixbuf * mb_tech_evdo_icon; + GdkPixbuf * mb_tech_gprs_icon; + GdkPixbuf * mb_tech_edge_icon; + GdkPixbuf * mb_tech_umts_icon; + GdkPixbuf * mb_tech_hspa_icon; + GdkPixbuf * mb_tech_lte_icon; + GdkPixbuf * mb_roaming_icon; + GdkPixbuf * mb_tech_3g_icon; + + /* Active status icon pixbufs */ + GdkPixbuf * icon_layers[ICON_LAYER_MAX + 1]; + + /* Animation stuff */ + int animation_step; + guint animation_id; + + /* Direct UI elements */ + GtkStatusIcon * status_icon; + int icon_size; + + GtkWidget * menu; + char * tip; + + GtkWidget * context_menu; + GtkWidget * networking_enabled_item; + guint networking_enabled_toggled_id; + GtkWidget * wifi_enabled_item; + guint wifi_enabled_toggled_id; + GtkWidget * wwan_enabled_item; + guint wwan_enabled_toggled_id; + GtkWidget * wimax_enabled_item; + guint wimax_enabled_toggled_id; + + GtkWidget * notifications_enabled_item; + guint notifications_enabled_toggled_id; + + GtkWidget * info_menu_item; + GtkWidget * connections_menu_item; + + GtkBuilder * info_dialog_ui; + NotifyNotification* notification; + + /* Tracker objects for secrets requests */ + GSList * secrets_reqs; + + gpointer notification_queue_data; + guint deferred_id; +} NMApplet; + +typedef void (*AppletNewAutoConnectionCallback) (NMConnection *connection, + gboolean created, + gboolean canceled, + gpointer user_data); + +typedef struct _SecretsRequest SecretsRequest; +typedef void (*SecretsRequestFreeFunc) (SecretsRequest *req); + +struct _SecretsRequest { + size_t totsize; + gpointer reqid; + char *setting_name; + char **hints; + guint32 flags; + NMApplet *applet; + AppletAgentSecretsCallback callback; + gpointer callback_data; + + NMConnection *connection; + + /* Class-specific stuff */ + SecretsRequestFreeFunc free_func; +}; + +void applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func); +void applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error); +void applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error); +void applet_secrets_request_free (SecretsRequest *req); + +struct NMADeviceClass { + gboolean (*new_auto_connection) (NMDevice *device, + gpointer user_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data); + + void (*add_menu_item) (NMDevice *device, + guint32 num_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet); + + void (*device_added) (NMDevice *device, NMApplet *applet); + + void (*device_state_changed) (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet); + + /* Device class is expected to return a *referenced* pixbuf, which will + * be unrefed by the icon code. This allows the device class to create + * a composited pixbuf if necessary and pass the reference to the caller. + */ + GdkPixbuf * (*get_icon) (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet); + + size_t secrets_request_size; + gboolean (*get_secrets) (SecretsRequest *req, + GError **error); +}; + +GType nma_get_type (void); + +NMApplet *nm_applet_new (GMainLoop *loop); + +void applet_schedule_update_icon (NMApplet *applet); + +NMRemoteSettings *applet_get_settings (NMApplet *applet); + +GSList *applet_get_all_connections (NMApplet *applet); + +gboolean nma_menu_device_check_unusable (NMDevice *device); + +GtkWidget * nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg); + +void applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data); + +void applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet); + +void applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos); + +GtkWidget* +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text); + +NMRemoteConnection *applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet); + +NMDevice *applet_get_device_for_connection (NMApplet *applet, NMConnection *connection); + +void applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data); + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref); + +NMConnection * applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active); + +GtkWidget * applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active); + +GdkPixbuf * nma_icon_check_and_load (const char *name, + GdkPixbuf **icon, + NMApplet *applet); + +gboolean applet_wifi_connect_to_hidden_network (NMApplet *applet); +gboolean applet_wifi_connect_to_8021x_network (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap); +gboolean applet_wifi_create_wifi_network (NMApplet *applet); +gboolean applet_wifi_can_create_wifi_network (NMApplet *applet); + +#endif diff -Nru network-manager-applet-0.9.4.1/.pc/lp830178_adhoc_ip6_ignore.patch/src/libnm-gtk/nm-wifi-dialog.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp830178_adhoc_ip6_ignore.patch/src/libnm-gtk/nm-wifi-dialog.c --- network-manager-applet-0.9.4.1/.pc/lp830178_adhoc_ip6_ignore.patch/src/libnm-gtk/nm-wifi-dialog.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/lp830178_adhoc_ip6_ignore.patch/src/libnm-gtk/nm-wifi-dialog.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,1443 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2007 - 2012 Red Hat, Inc. + */ + +#include + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "nm-wifi-dialog.h" +#include "wireless-security.h" +#include "nm-ui-utils.h" + +G_DEFINE_TYPE (NMAWifiDialog, nma_wifi_dialog, GTK_TYPE_DIALOG) + +#define NMA_WIFI_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ + NMA_TYPE_WIFI_DIALOG, \ + NMAWifiDialogPrivate)) + +typedef struct { + NMAWifiDialog *self; + NMConnection *connection; + gboolean canceled; +} GetSecretsInfo; + +typedef struct { + NMClient *client; + NMRemoteSettings *settings; + + GtkBuilder *builder; + + NMConnection *connection; + NMDevice *device; + NMAccessPoint *ap; + gboolean adhoc_create; + + GtkTreeModel *device_model; + GtkTreeModel *connection_model; + GtkSizeGroup *group; + GtkWidget *sec_combo; + + gboolean nag_ignored; + gboolean network_name_focus; + + gboolean secrets_only; + + guint revalidate_id; + + GetSecretsInfo *secrets_info; + + gboolean disposed; +} NMAWifiDialogPrivate; + +#define D_NAME_COLUMN 0 +#define D_DEV_COLUMN 1 + +#define S_NAME_COLUMN 0 +#define S_SEC_COLUMN 1 + +#define C_NAME_COLUMN 0 +#define C_CON_COLUMN 1 +#define C_SEP_COLUMN 2 +#define C_NEW_COLUMN 3 + +static gboolean security_combo_init (NMAWifiDialog *self, gboolean secrets_only); +static void ssid_entry_changed (GtkWidget *entry, gpointer user_data); + +void +nma_wifi_dialog_set_nag_ignored (NMAWifiDialog *self, gboolean ignored) +{ + g_return_if_fail (self != NULL); + + NMA_WIFI_DIALOG_GET_PRIVATE (self)->nag_ignored = ignored; +} + +gboolean +nma_wifi_dialog_get_nag_ignored (NMAWifiDialog *self) +{ + g_return_val_if_fail (self != NULL, FALSE); + + return NMA_WIFI_DIALOG_GET_PRIVATE (self)->nag_ignored; +} + +static void +size_group_clear (GtkSizeGroup *group) +{ + GSList *iter; + + g_return_if_fail (group != NULL); + + iter = gtk_size_group_get_widgets (group); + while (iter) { + gtk_size_group_remove_widget (group, GTK_WIDGET (iter->data)); + iter = gtk_size_group_get_widgets (group); + } +} + +static void +size_group_add_permanent (GtkSizeGroup *group, + GtkBuilder *builder) +{ + GtkWidget *widget; + + g_return_if_fail (group != NULL); + g_return_if_fail (builder != NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "network_name_label")); + gtk_size_group_add_widget (group, widget); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "security_combo_label")); + gtk_size_group_add_widget (group, widget); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "device_label")); + gtk_size_group_add_widget (group, widget); +} + +static void +security_combo_changed (GtkWidget *combo, + gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkWidget *vbox, *sec_widget, *def_widget; + GList *elt, *children; + GtkTreeIter iter; + GtkTreeModel *model; + WirelessSecurity *sec = NULL; + + vbox = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_vbox")); + g_assert (vbox); + + size_group_clear (priv->group); + + /* Remove any previous wireless security widgets */ + children = gtk_container_get_children (GTK_CONTAINER (vbox)); + for (elt = children; elt; elt = g_list_next (elt)) + gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); + g_list_free (children); + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + g_warning ("%s: no active security combo box item.", __func__); + return; + } + + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + if (!sec) { + /* Revalidate dialog if the user picked "None" so the OK button + * gets enabled if there's already a valid SSID. + */ + ssid_entry_changed (NULL, self); + return; + } + + sec_widget = wireless_security_get_widget (sec); + g_assert (sec_widget); + gtk_widget_unparent (sec_widget); + + size_group_add_permanent (priv->group, priv->builder); + wireless_security_add_to_size_group (sec, priv->group); + + gtk_container_add (GTK_CONTAINER (vbox), sec_widget); + + /* Re-validate */ + wireless_security_changed_cb (NULL, sec); + + /* Set focus to the security method's default widget, but only if the + * network name entry should not be focused. + */ + if (!priv->network_name_focus && sec->default_field) { + def_widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, sec->default_field)); + if (def_widget) + gtk_widget_grab_focus (def_widget); + } + + wireless_security_unref (sec); +} + +static void +security_combo_changed_manually (GtkWidget *combo, + gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + /* Flag that the combo was changed manually to allow focus to move + * to the security method's default widget instead of the network name. + */ + priv->network_name_focus = FALSE; + security_combo_changed (combo, user_data); +} + +static GByteArray * +validate_dialog_ssid (NMAWifiDialog *self) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkWidget *widget; + const char *ssid; + guint32 ssid_len; + GByteArray *ssid_ba; + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + + ssid = gtk_entry_get_text (GTK_ENTRY (widget)); + + if (!ssid || strlen (ssid) == 0 || strlen (ssid) > 32) + return NULL; + + ssid_len = strlen (ssid); + ssid_ba = g_byte_array_sized_new (ssid_len); + g_byte_array_append (ssid_ba, (unsigned char *) ssid, ssid_len); + return ssid_ba; +} + +static void +stuff_changed_cb (WirelessSecurity *sec, gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GByteArray *ssid = NULL; + gboolean free_ssid = TRUE; + gboolean valid = FALSE; + + if (priv->connection) { + NMSettingWireless *s_wireless; + s_wireless = nm_connection_get_setting_wireless (priv->connection); + g_assert (s_wireless); + ssid = (GByteArray *) nm_setting_wireless_get_ssid (s_wireless); + free_ssid = FALSE; + } else { + ssid = validate_dialog_ssid (self); + } + + if (ssid) { + valid = wireless_security_validate (sec, ssid); + if (free_ssid) + g_byte_array_free (ssid, TRUE); + } + + /* But if there's an in-progress secrets call (which might require authorization) + * then we don't want to enable the OK button because we don't have all the + * connection details yet. + */ + if (priv->secrets_info) + valid = FALSE; + + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, valid); +} + +static void +ssid_entry_changed (GtkWidget *entry, gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkTreeIter iter; + WirelessSecurity *sec = NULL; + GtkTreeModel *model; + gboolean valid = FALSE; + GByteArray *ssid; + + /* If the network name entry was touched at all, allow focus to go to + * the default widget of the security method now. + */ + priv->network_name_focus = FALSE; + + ssid = validate_dialog_ssid (self); + if (!ssid) + goto out; + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->sec_combo)); + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->sec_combo), &iter)) + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + + if (sec) { + valid = wireless_security_validate (sec, ssid); + wireless_security_unref (sec); + } else { + valid = TRUE; + } + +out: + /* But if there's an in-progress secrets call (which might require authorization) + * then we don't want to enable the OK button because we don't have all the + * connection details yet. + */ + if (priv->secrets_info) + valid = FALSE; + + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, valid); +} + +static void +connection_combo_changed (GtkWidget *combo, + gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkTreeIter iter; + GtkTreeModel *model; + gboolean is_new = FALSE; + NMSettingWireless *s_wireless; + char *utf8_ssid; + GtkWidget *widget; + + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + g_warning ("%s: no active connection combo box item.", __func__); + return; + } + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + + if (priv->connection) + g_object_unref (priv->connection); + + gtk_tree_model_get (model, &iter, + C_CON_COLUMN, &priv->connection, + C_NEW_COLUMN, &is_new, -1); + + if (!security_combo_init (self, priv->secrets_only)) { + g_warning ("Couldn't change Wi-Fi security combo box."); + return; + } + security_combo_changed (priv->sec_combo, self); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + if (priv->connection) { + const GByteArray *ssid; + + s_wireless = nm_connection_get_setting_wireless (priv->connection); + ssid = nm_setting_wireless_get_ssid (s_wireless); + utf8_ssid = nm_utils_ssid_to_utf8 (ssid); + gtk_entry_set_text (GTK_ENTRY (widget), utf8_ssid); + g_free (utf8_ssid); + } else { + gtk_entry_set_text (GTK_ENTRY (widget), ""); + } + + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")), is_new); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_label")), is_new); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")), is_new); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo_label")), is_new); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_vbox")), is_new); +} + +static gboolean +connection_combo_separator_cb (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) +{ + gboolean is_separator = FALSE; + + gtk_tree_model_get (model, iter, C_SEP_COLUMN, &is_separator, -1); + return is_separator; +} + +static gint +alphabetize_connections (NMConnection *a, NMConnection *b) +{ + NMSettingConnection *asc, *bsc; + + asc = nm_connection_get_setting_connection (a); + bsc = nm_connection_get_setting_connection (b); + + return strcmp (nm_setting_connection_get_id (asc), + nm_setting_connection_get_id (bsc)); +} + +static gboolean +connection_combo_init (NMAWifiDialog *self, NMConnection *connection) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkListStore *store; + int num_added = 0; + GtkTreeIter tree_iter; + GtkWidget *widget; + NMSettingConnection *s_con; + GtkCellRenderer *renderer; + const char *id; + + g_return_val_if_fail (priv->connection == NULL, FALSE); + + /* Clear any old model */ + if (priv->connection_model) + g_object_unref (priv->connection_model); + + /* New model */ + store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_OBJECT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); + priv->connection_model = GTK_TREE_MODEL (store); + + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + id = nm_setting_connection_get_id (s_con); + if (id == NULL) { + /* New connections which will be completed by NM won't have an ID + * yet, but that doesn't matter because we don't show the connection + * combo anyway when there's a predefined connection. + */ + id = "blahblah"; + } + + gtk_list_store_append (store, &tree_iter); + gtk_list_store_set (store, &tree_iter, + C_NAME_COLUMN, id, + C_CON_COLUMN, connection, -1); + } else { + GSList *connections, *iter, *to_add = NULL; + + gtk_list_store_append (store, &tree_iter); + gtk_list_store_set (store, &tree_iter, + C_NAME_COLUMN, _("New..."), + C_NEW_COLUMN, TRUE, -1); + + gtk_list_store_append (store, &tree_iter); + gtk_list_store_set (store, &tree_iter, C_SEP_COLUMN, TRUE, -1); + + connections = nm_remote_settings_list_connections (priv->settings); + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingWireless *s_wireless; + const char *connection_type; + const char *mode; + const GByteArray *setting_mac; + + s_con = nm_connection_get_setting_connection (candidate); + connection_type = s_con ? nm_setting_connection_get_connection_type (s_con) : NULL; + if (!connection_type) + continue; + + if (strcmp (connection_type, NM_SETTING_WIRELESS_SETTING_NAME)) + continue; + + s_wireless = nm_connection_get_setting_wireless (candidate); + if (!s_wireless) + continue; + + /* If creating a new Ad-Hoc network, only show shared network connections */ + if (priv->adhoc_create) { + NMSettingIP4Config *s_ip4; + const char *method = NULL; + + s_ip4 = nm_connection_get_setting_ip4_config (candidate); + if (s_ip4) + method = nm_setting_ip4_config_get_method (s_ip4); + + if (!s_ip4 || strcmp (method, "shared")) + continue; + + /* Ignore non-Ad-Hoc connections too */ + mode = nm_setting_wireless_get_mode (s_wireless); + if (!mode || strcmp (mode, "adhoc")) + continue; + } + + /* Ignore connections that don't apply to the selected device */ + setting_mac = nm_setting_wireless_get_mac_address (s_wireless); + if (setting_mac) { + const char *hw_addr; + + hw_addr = nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (priv->device)); + if (hw_addr) { + struct ether_addr *ether; + + ether = ether_aton (hw_addr); + if (ether && memcmp (setting_mac->data, ether->ether_addr_octet, ETH_ALEN)) + continue; + } + } + + to_add = g_slist_append (to_add, candidate); + } + g_slist_free (connections); + + /* Alphabetize the list then add the connections */ + to_add = g_slist_sort (to_add, (GCompareFunc) alphabetize_connections); + for (iter = to_add; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + s_con = nm_connection_get_setting_connection (candidate); + gtk_list_store_append (store, &tree_iter); + gtk_list_store_set (store, &tree_iter, + C_NAME_COLUMN, nm_setting_connection_get_id (s_con), + C_CON_COLUMN, candidate, -1); + num_added++; + } + g_slist_free (to_add); + } + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "connection_combo")); + + gtk_cell_layout_clear (GTK_CELL_LAYOUT (widget)); + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (widget), renderer, TRUE); + gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (widget), renderer, + "text", C_NAME_COLUMN); + gtk_combo_box_set_wrap_width (GTK_COMBO_BOX (widget), 1); + + gtk_combo_box_set_model (GTK_COMBO_BOX (widget), priv->connection_model); + + gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (widget), + connection_combo_separator_cb, + NULL, + NULL); + + gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); + g_signal_connect (G_OBJECT (widget), "changed", + G_CALLBACK (connection_combo_changed), self); + if (connection || !num_added) { + gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (priv->builder, "connection_label"))); + gtk_widget_hide (widget); + } + gtk_tree_model_get_iter_first (priv->connection_model, &tree_iter); + gtk_tree_model_get (priv->connection_model, &tree_iter, C_CON_COLUMN, &priv->connection, -1); + + return TRUE; +} + +static void +device_combo_changed (GtkWidget *combo, + gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkTreeIter iter; + GtkTreeModel *model; + + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + g_warning ("%s: no active device combo box item.", __func__); + return; + } + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + + g_object_unref (priv->device); + gtk_tree_model_get (model, &iter, D_DEV_COLUMN, &priv->device, -1); + + if (!connection_combo_init (self, NULL)) { + g_warning ("Couldn't change connection combo box."); + return; + } + + if (!security_combo_init (self, priv->secrets_only)) { + g_warning ("Couldn't change Wi-Fi security combo box."); + return; + } + + security_combo_changed (priv->sec_combo, self); +} + +static void +add_device_to_model (GtkListStore *model, NMDevice *device) +{ + GtkTreeIter iter; + const char *desc; + + desc = nma_utils_get_device_description (device); + gtk_list_store_append (model, &iter); + gtk_list_store_set (model, &iter, D_NAME_COLUMN, desc, D_DEV_COLUMN, device, -1); +} + +static gboolean +can_use_device (NMDevice *device) +{ + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + return FALSE; + + if (!NM_IS_DEVICE_WIFI (device)) + return FALSE; + + if (nm_device_get_state (device) < NM_DEVICE_STATE_DISCONNECTED) + return FALSE; + + return TRUE; +} + +static gboolean +device_combo_init (NMAWifiDialog *self, NMDevice *device) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + const GPtrArray *devices; + GtkListStore *store; + int i, num_added = 0; + + g_return_val_if_fail (priv->device == NULL, FALSE); + + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_OBJECT); + priv->device_model = GTK_TREE_MODEL (store); + + if (device) { + if (!can_use_device (device)) + return FALSE; + add_device_to_model (store, device); + num_added++; + } else { + devices = nm_client_get_devices (priv->client); + if (!devices) + return FALSE; + + for (i = 0; devices && (i < devices->len); i++) { + device = NM_DEVICE (g_ptr_array_index (devices, i)); + if (can_use_device (device)) { + add_device_to_model (store, device); + num_added++; + } + } + } + + if (num_added > 0) { + GtkWidget *widget; + GtkTreeIter iter; + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_combo")); + gtk_combo_box_set_model (GTK_COMBO_BOX (widget), priv->device_model); + gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); + g_signal_connect (G_OBJECT (widget), "changed", + G_CALLBACK (device_combo_changed), self); + if (num_added == 1) { + gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_label"))); + gtk_widget_hide (widget); + } + gtk_tree_model_get_iter_first (priv->device_model, &iter); + gtk_tree_model_get (priv->device_model, &iter, D_DEV_COLUMN, &priv->device, -1); + } + + return num_added > 0 ? TRUE : FALSE; +} + +static gboolean +find_proto (NMSettingWirelessSecurity *sec, const char *item) +{ + guint32 i; + + for (i = 0; i < nm_setting_wireless_security_get_num_protos (sec); i++) { + if (!strcmp (item, nm_setting_wireless_security_get_proto (sec, i))) + return TRUE; + } + return FALSE; +} + +static NMUtilsSecurityType +get_default_type_for_security (NMSettingWirelessSecurity *sec, + gboolean have_ap, + guint32 ap_flags, + guint32 dev_caps) +{ + const char *key_mgmt, *auth_alg; + + g_return_val_if_fail (sec != NULL, NMU_SEC_NONE); + + key_mgmt = nm_setting_wireless_security_get_key_mgmt (sec); + auth_alg = nm_setting_wireless_security_get_auth_alg (sec); + + /* No IEEE 802.1x */ + if (!strcmp (key_mgmt, "none")) + return NMU_SEC_STATIC_WEP; + + if ( !strcmp (key_mgmt, "ieee8021x") + && (!have_ap || (ap_flags & NM_802_11_AP_FLAGS_PRIVACY))) { + if (auth_alg && !strcmp (auth_alg, "leap")) + return NMU_SEC_LEAP; + return NMU_SEC_DYNAMIC_WEP; + } + + if ( !strcmp (key_mgmt, "wpa-none") + || !strcmp (key_mgmt, "wpa-psk")) { + if (!have_ap || (ap_flags & NM_802_11_AP_FLAGS_PRIVACY)) { + if (find_proto (sec, "rsn")) + return NMU_SEC_WPA2_PSK; + else if (find_proto (sec, "wpa")) + return NMU_SEC_WPA_PSK; + else + return NMU_SEC_WPA_PSK; + } + } + + if ( !strcmp (key_mgmt, "wpa-eap") + && (!have_ap || (ap_flags & NM_802_11_AP_FLAGS_PRIVACY))) { + if (find_proto (sec, "rsn")) + return NMU_SEC_WPA2_ENTERPRISE; + else if (find_proto (sec, "wpa")) + return NMU_SEC_WPA_ENTERPRISE; + else + return NMU_SEC_WPA_ENTERPRISE; + } + + return NMU_SEC_INVALID; +} + +static void +add_security_item (NMAWifiDialog *self, + WirelessSecurity *sec, + GtkListStore *model, + GtkTreeIter *iter, + const char *text) +{ + wireless_security_set_changed_notify (sec, stuff_changed_cb, self); + gtk_list_store_append (model, iter); + gtk_list_store_set (model, iter, S_NAME_COLUMN, text, S_SEC_COLUMN, sec, -1); + wireless_security_unref (sec); +} + +static void +get_secrets_cb (NMRemoteConnection *connection, + GHashTable *secrets, + GError *error, + gpointer user_data) +{ + GetSecretsInfo *info = user_data; + NMAWifiDialogPrivate *priv; + GHashTableIter hash_iter; + gpointer key, value; + GtkTreeModel *model; + GtkTreeIter iter; + + if (info->canceled) + goto out; + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (info->self); + if (priv->secrets_info == info) { + priv->secrets_info = NULL; + + /* Buttons should only be re-enabled if this secrets response is the + * in-progress one. + */ + gtk_dialog_set_response_sensitive (GTK_DIALOG (info->self), GTK_RESPONSE_CANCEL, TRUE); + gtk_dialog_set_response_sensitive (GTK_DIALOG (info->self), GTK_RESPONSE_OK, TRUE); + } + + if (error) { + g_warning ("%s: error getting connection secrets: (%d) %s", + __func__, + error ? error->code : -1, + error && error->message ? error->message : "(unknown)"); + goto out; + } + + /* User might have changed the connection while the secrets call was in + * progress, so don't try to update the wrong connection with the secrets + * we just received. + */ + if ( (priv->connection != info->connection) + || !secrets + || !g_hash_table_size (secrets)) + goto out; + + /* Try to update the connection's secrets; log errors but we don't care */ + g_hash_table_iter_init (&hash_iter, secrets); + while (g_hash_table_iter_next (&hash_iter, &key, &value)) { + GError *update_error = NULL; + const char *setting_name = key; + GHashTable *setting_hash = value; + + if (!nm_connection_update_secrets (priv->connection, + setting_name, + setting_hash, + &update_error)) { + g_warning ("%s: error updating connection secrets: (%d) %s", + __func__, + update_error ? update_error->code : -1, + update_error && update_error->message ? update_error->message : "(unknown)"); + g_clear_error (&update_error); + } + } + + /* Update each security method's UI elements with the new secrets */ + model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->sec_combo)); + if (gtk_tree_model_get_iter_first (model, &iter)) { + do { + WirelessSecurity *sec = NULL; + + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + if (sec) { + wireless_security_update_secrets (sec, priv->connection); + wireless_security_unref (sec); + } + } while (gtk_tree_model_iter_next (model, &iter)); + } + +out: + g_object_unref (info->connection); + g_free (info); +} + +static gboolean +security_combo_init (NMAWifiDialog *self, gboolean secrets_only) +{ + NMAWifiDialogPrivate *priv; + GtkListStore *sec_model; + GtkTreeIter iter; + guint32 ap_flags = 0; + guint32 ap_wpa = 0; + guint32 ap_rsn = 0; + guint32 dev_caps; + NMSettingWirelessSecurity *wsec = NULL; + NMUtilsSecurityType default_type = NMU_SEC_NONE; + NMWepKeyType wep_type = NM_WEP_KEY_TYPE_KEY; + int active = -1; + int item = 0; + NMSettingWireless *s_wireless = NULL; + gboolean is_adhoc; + const char *setting_name; + + g_return_val_if_fail (self != NULL, FALSE); + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + g_return_val_if_fail (priv->device != NULL, FALSE); + g_return_val_if_fail (priv->sec_combo != NULL, FALSE); + + is_adhoc = priv->adhoc_create; + + /* The security options displayed are filtered based on device + * capabilities, and if provided, additionally by access point capabilities. + * If a connection is given, that connection's options should be selected + * by default. + */ + dev_caps = nm_device_wifi_get_capabilities (NM_DEVICE_WIFI (priv->device)); + if (priv->ap != NULL) { + ap_flags = nm_access_point_get_flags (priv->ap); + ap_wpa = nm_access_point_get_wpa_flags (priv->ap); + ap_rsn = nm_access_point_get_rsn_flags (priv->ap); + } + + if (priv->connection) { + const char *mode; + const char *security; + + s_wireless = nm_connection_get_setting_wireless (priv->connection); + + mode = nm_setting_wireless_get_mode (s_wireless); + if (mode && !strcmp (mode, "adhoc")) + is_adhoc = TRUE; + + wsec = nm_connection_get_setting_wireless_security (priv->connection); + + security = nm_setting_wireless_get_security (s_wireless); + if (!security || strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)) + wsec = NULL; + if (wsec) { + default_type = get_default_type_for_security (wsec, !!priv->ap, ap_flags, dev_caps); + if (default_type == NMU_SEC_STATIC_WEP) + wep_type = nm_setting_wireless_security_get_wep_key_type (wsec); + if (wep_type == NM_WEP_KEY_TYPE_UNKNOWN) + wep_type = NM_WEP_KEY_TYPE_KEY; + } + } else if (is_adhoc) { + default_type = NMU_SEC_STATIC_WEP; + wep_type = NM_WEP_KEY_TYPE_PASSPHRASE; + } + + sec_model = gtk_list_store_new (2, G_TYPE_STRING, wireless_security_get_g_type ()); + + if (nm_utils_security_valid (NMU_SEC_NONE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + gtk_list_store_append (sec_model, &iter); + gtk_list_store_set (sec_model, &iter, + S_NAME_COLUMN, C_("Wifi/wired security", "None"), + -1); + if (default_type == NMU_SEC_NONE) + active = item; + item++; + } + + /* Don't show Static WEP if both the AP and the device are capable of WPA, + * even though technically it's possible to have this configuration. + */ + if ( nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && ((!ap_wpa && !ap_rsn) || !(dev_caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN)))) { + WirelessSecurityWEPKey *ws_wep; + + ws_wep = ws_wep_key_new (priv->connection, NM_WEP_KEY_TYPE_KEY, priv->adhoc_create, secrets_only); + if (ws_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, + &iter, _("WEP 40/128-bit Key (Hex or ASCII)")); + if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_KEY)) + active = item; + item++; + } + + ws_wep = ws_wep_key_new (priv->connection, NM_WEP_KEY_TYPE_PASSPHRASE, priv->adhoc_create, secrets_only); + if (ws_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, + &iter, _("WEP 128-bit Passphrase")); + if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_PASSPHRASE)) + active = item; + item++; + } + } + + /* Don't show LEAP if both the AP and the device are capable of WPA, + * even though technically it's possible to have this configuration. + */ + if ( nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && ((!ap_wpa && !ap_rsn) || !(dev_caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN)))) { + WirelessSecurityLEAP *ws_leap; + + ws_leap = ws_leap_new (priv->connection, secrets_only); + if (ws_leap) { + add_security_item (self, WIRELESS_SECURITY (ws_leap), sec_model, + &iter, _("LEAP")); + if ((active < 0) && (default_type == NMU_SEC_LEAP)) + active = item; + item++; + } + } + + if (nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + WirelessSecurityDynamicWEP *ws_dynamic_wep; + + ws_dynamic_wep = ws_dynamic_wep_new (priv->connection, FALSE, secrets_only); + if (ws_dynamic_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_dynamic_wep), sec_model, + &iter, _("Dynamic WEP (802.1x)")); + if ((active < 0) && (default_type == NMU_SEC_DYNAMIC_WEP)) + active = item; + item++; + } + } + + if ( nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) + || nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + WirelessSecurityWPAPSK *ws_wpa_psk; + + ws_wpa_psk = ws_wpa_psk_new (priv->connection, secrets_only); + if (ws_wpa_psk) { + add_security_item (self, WIRELESS_SECURITY (ws_wpa_psk), sec_model, + &iter, _("WPA & WPA2 Personal")); + if ((active < 0) && ((default_type == NMU_SEC_WPA_PSK) || (default_type == NMU_SEC_WPA2_PSK))) + active = item; + item++; + } + } + + if ( nm_utils_security_valid (NMU_SEC_WPA_ENTERPRISE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) + || nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + WirelessSecurityWPAEAP *ws_wpa_eap; + + ws_wpa_eap = ws_wpa_eap_new (priv->connection, FALSE, secrets_only); + if (ws_wpa_eap) { + add_security_item (self, WIRELESS_SECURITY (ws_wpa_eap), sec_model, + &iter, _("WPA & WPA2 Enterprise")); + if ((active < 0) && ((default_type == NMU_SEC_WPA_ENTERPRISE) || (default_type == NMU_SEC_WPA2_ENTERPRISE))) + active = item; + item++; + } + } + + gtk_combo_box_set_model (GTK_COMBO_BOX (priv->sec_combo), GTK_TREE_MODEL (sec_model)); + gtk_combo_box_set_active (GTK_COMBO_BOX (priv->sec_combo), active < 0 ? 0 : (guint32) active); + g_object_unref (G_OBJECT (sec_model)); + + /* If the dialog was given a connection when it was created, that connection + * will already be populated with secrets. If no connection was given, + * then we need to get any existing secrets to populate the dialog with. + */ + setting_name = priv->connection ? nm_connection_need_secrets (priv->connection, NULL) : NULL; + if (setting_name && NM_IS_REMOTE_CONNECTION (priv->connection)) { + GetSecretsInfo *info; + + /* Desensitize the dialog's buttons while we wait for the secrets + * operation to complete. + */ + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, FALSE); + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_CANCEL, FALSE); + + info = g_malloc0 (sizeof (GetSecretsInfo)); + info->self = self; + info->connection = g_object_ref (priv->connection); + priv->secrets_info = info; + + nm_remote_connection_get_secrets (NM_REMOTE_CONNECTION (priv->connection), + setting_name, + get_secrets_cb, + info); + } + + return TRUE; +} + +static gboolean +revalidate (gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + priv->revalidate_id = 0; + security_combo_changed (priv->sec_combo, self); + return FALSE; +} + +static gboolean +internal_init (NMAWifiDialog *self, + NMConnection *specific_connection, + NMDevice *specific_device, + gboolean secrets_only, + gboolean create) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkWidget *widget; + char *label, *icon_name = "network-wireless"; + gboolean security_combo_focus = FALSE; + + gtk_window_set_position (GTK_WINDOW (self), GTK_WIN_POS_CENTER_ALWAYS); + gtk_container_set_border_width (GTK_CONTAINER (self), 6); + gtk_window_set_default_size (GTK_WINDOW (self), 488, -1); + gtk_window_set_resizable (GTK_WINDOW (self), FALSE); + + priv->secrets_only = secrets_only; + if (secrets_only) + icon_name = "dialog-password"; + else + icon_name = "network-wireless"; + + gtk_window_set_icon_name (GTK_WINDOW (self), icon_name); + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "image1")); + gtk_image_set_from_icon_name (GTK_IMAGE (widget), icon_name, GTK_ICON_SIZE_DIALOG); + + gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), 2); + + widget = gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); + gtk_box_set_child_packing (GTK_BOX (gtk_dialog_get_action_area (GTK_DIALOG (self))), widget, + FALSE, TRUE, 0, GTK_PACK_END); + + /* Connect/Create button */ + if (create) { + GtkWidget *image; + + widget = gtk_button_new_with_mnemonic (_("C_reate")); + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_BUTTON); + gtk_button_set_image (GTK_BUTTON (widget), image); + + gtk_widget_show (widget); + gtk_dialog_add_action_widget (GTK_DIALOG (self), widget, GTK_RESPONSE_OK); + } else + widget = gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CONNECT, GTK_RESPONSE_OK); + + gtk_box_set_child_packing (GTK_BOX (gtk_dialog_get_action_area (GTK_DIALOG (self))), widget, + FALSE, TRUE, 0, GTK_PACK_END); + g_object_set (G_OBJECT (widget), "can-default", TRUE, NULL); + gtk_widget_grab_default (widget); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "hbox1")); + if (!widget) { + g_warning ("Couldn't find Wi-Fi_dialog widget."); + return FALSE; + } + gtk_widget_unparent (widget); + + gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (self))), widget); + + /* If given a valid connection, hide the SSID bits and connection combo */ + if (specific_connection) { + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_label")); + gtk_widget_hide (widget); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + gtk_widget_hide (widget); + + security_combo_focus = TRUE; + priv->network_name_focus = FALSE; + } else { + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + g_signal_connect (G_OBJECT (widget), "changed", (GCallback) ssid_entry_changed, self); + priv->network_name_focus = TRUE; + } + + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, FALSE); + + if (!device_combo_init (self, specific_device)) { + g_warning ("No Wi-Fi devices available."); + return FALSE; + } + + if (!connection_combo_init (self, specific_connection)) { + g_warning ("Couldn't set up connection combo box."); + return FALSE; + } + + if (!security_combo_init (self, priv->secrets_only)) { + g_warning ("Couldn't set up Wi-Fi security combo box."); + return FALSE; + } + + security_combo_changed (priv->sec_combo, self); + g_signal_connect (G_OBJECT (priv->sec_combo), "changed", + G_CALLBACK (security_combo_changed_manually), self); + + if (secrets_only) { + gtk_widget_hide (priv->sec_combo); + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo_label")); + gtk_widget_hide (widget); + } + + if (security_combo_focus) + gtk_widget_grab_focus (priv->sec_combo); + else if (priv->network_name_focus) { + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + gtk_widget_grab_focus (widget); + } + + if (priv->connection) { + char *tmp; + char *esc_ssid = NULL; + NMSettingWireless *s_wireless; + const GByteArray *ssid; + + s_wireless = nm_connection_get_setting_wireless (priv->connection); + ssid = s_wireless ? nm_setting_wireless_get_ssid (s_wireless) : NULL; + if (ssid) + esc_ssid = nm_utils_ssid_to_utf8 (ssid); + + tmp = g_strdup_printf (_("Passwords or encryption keys are required to access the Wi-Fi network '%s'."), + esc_ssid ? esc_ssid : ""); + gtk_window_set_title (GTK_WINDOW (self), _("Wi-Fi Network Authentication Required")); + label = g_strdup_printf ("%s\n\n%s", + _("Authentication required by Wi-Fi network"), + tmp); + g_free (esc_ssid); + g_free (tmp); + } else if (priv->adhoc_create) { + gtk_window_set_title (GTK_WINDOW (self), _("Create New Wi-Fi Network")); + label = g_strdup_printf ("%s\n\n%s", + _("New Wi-Fi network"), + _("Enter a name for the Wi-Fi network you wish to create.")); + } else { + gtk_window_set_title (GTK_WINDOW (self), _("Connect to Hidden Wi-Fi Network")); + label = g_strdup_printf ("%s\n\n%s", + _("Hidden Wi-Fi network"), + _("Enter the name and security details of the hidden Wi-Fi network you wish to connect to.")); + } + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "caption_label")); + gtk_label_set_markup (GTK_LABEL (widget), label); + g_free (label); + + /* Re-validate from an idle handler so that widgets like file choosers + * have had time to find their files. + */ + priv->revalidate_id = g_idle_add (revalidate, self); + + return TRUE; +} + +/** + * nma_wifi_dialog_get_connection: + * @self: an #NMAWifiDialog + * @device: (out): + * @ap: (out): + * + * Returns: (transfer full): + */ +NMConnection * +nma_wifi_dialog_get_connection (NMAWifiDialog *self, + NMDevice **device, + NMAccessPoint **ap) +{ + NMAWifiDialogPrivate *priv; + GtkWidget *combo; + GtkTreeModel *model; + WirelessSecurity *sec = NULL; + GtkTreeIter iter; + NMConnection *connection; + NMSettingWireless *s_wireless; + + g_return_val_if_fail (self != NULL, NULL); + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + if (!priv->connection) { + NMSettingConnection *s_con; + char *uuid; + + connection = nm_connection_new (); + + s_con = (NMSettingConnection *) nm_setting_connection_new (); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRELESS_SETTING_NAME, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + nm_connection_add_setting (connection, (NMSetting *) s_con); + + s_wireless = (NMSettingWireless *) nm_setting_wireless_new (); + g_object_set (s_wireless, NM_SETTING_WIRELESS_SSID, validate_dialog_ssid (self), NULL); + + if (priv->adhoc_create) { + NMSettingIP4Config *s_ip4; + + g_object_set (s_wireless, NM_SETTING_WIRELESS_MODE, "adhoc", NULL); + + s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new (); + g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_SHARED, NULL); + nm_connection_add_setting (connection, (NMSetting *) s_ip4); + } + + nm_connection_add_setting (connection, (NMSetting *) s_wireless); + } else + connection = g_object_ref (priv->connection); + + /* Fill security */ + model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->sec_combo)); + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->sec_combo), &iter)) + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + if (sec) { + wireless_security_fill_connection (sec, connection); + wireless_security_unref (sec); + } else { + /* Unencrypted */ + s_wireless = nm_connection_get_setting_wireless (connection); + g_assert (s_wireless); + + g_object_set (s_wireless, NM_SETTING_WIRELESS_SEC, NULL, NULL); + } + + /* Fill device */ + if (device) { + combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_combo")); + gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter); + gtk_tree_model_get (priv->device_model, &iter, D_DEV_COLUMN, device, -1); + g_object_unref (*device); + } + + if (ap) + *ap = priv->ap; + + return connection; +} + +GtkWidget * +nma_wifi_dialog_new (NMClient *client, + NMRemoteSettings *settings, + NMConnection *connection, + NMDevice *device, + NMAccessPoint *ap, + gboolean secrets_only) +{ + NMAWifiDialog *self; + NMAWifiDialogPrivate *priv; + guint32 dev_caps; + + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); + g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + /* Ensure device validity */ + if (device) { + dev_caps = nm_device_get_capabilities (device); + g_return_val_if_fail (dev_caps & NM_DEVICE_CAP_NM_SUPPORTED, NULL); + g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); + } + + self = NMA_WIFI_DIALOG (g_object_new (NMA_TYPE_WIFI_DIALOG, NULL)); + if (self) { + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + priv->client = g_object_ref (client); + priv->settings = g_object_ref (settings); + if (ap) + priv->ap = g_object_ref (ap); + + priv->sec_combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")); + priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + + if (!internal_init (self, connection, device, secrets_only, FALSE)) { + g_warning ("Couldn't create Wi-Fi security dialog."); + gtk_widget_destroy (GTK_WIDGET (self)); + self = NULL; + } + } + + return GTK_WIDGET (self); +} + +static GtkWidget * +internal_new_other (NMClient *client, NMRemoteSettings *settings, gboolean create) +{ + NMAWifiDialog *self; + NMAWifiDialogPrivate *priv; + + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); + g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), NULL); + + self = NMA_WIFI_DIALOG (g_object_new (NMA_TYPE_WIFI_DIALOG, NULL)); + if (!self) + return NULL; + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + priv->client = g_object_ref (client); + priv->settings = g_object_ref (settings); + priv->sec_combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")); + priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + priv->adhoc_create = create; + + if (!internal_init (self, NULL, NULL, FALSE, create)) { + g_warning ("Couldn't create Wi-Fi security dialog."); + gtk_widget_destroy (GTK_WIDGET (self)); + return NULL; + } + + return GTK_WIDGET (self); +} + +GtkWidget * +nma_wifi_dialog_new_for_other (NMClient *client, NMRemoteSettings *settings) +{ + return internal_new_other (client, settings, FALSE); +} + +GtkWidget * +nma_wifi_dialog_new_for_create (NMClient *client, NMRemoteSettings *settings) +{ + return internal_new_other (client, settings, TRUE); +} + +/** + * nma_wifi_dialog_nag_user: + * @self: + * + * Returns: (transfer full): + */ +GtkWidget * +nma_wifi_dialog_nag_user (NMAWifiDialog *self) +{ + NMAWifiDialogPrivate *priv; + GtkWidget *combo, *nag; + GtkTreeModel *model; + GtkTreeIter iter; + WirelessSecurity *sec = NULL; + + g_return_val_if_fail (self != NULL, NULL); + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")); + g_return_val_if_fail (combo != NULL, NULL); + + /* Ask the security method if it wants to nag the user. */ + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + g_warning ("%s: no active security combo box item.", __func__); + return NULL; + } + + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + if (sec) { + nag = wireless_security_nag_user (sec); + wireless_security_unref (sec); + return nag; + } + + return NULL; +} + +static void +nma_wifi_dialog_init (NMAWifiDialog *self) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GError *error = NULL; + + priv->builder = gtk_builder_new (); + + if (!gtk_builder_add_from_file (priv->builder, UIDIR "/wifi.ui", &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); + } +} + +static void +dispose (GObject *object) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (object); + + if (priv->disposed) { + G_OBJECT_CLASS (nma_wifi_dialog_parent_class)->dispose (object); + return; + } + + priv->disposed = TRUE; + + if (priv->secrets_info) + priv->secrets_info->canceled = TRUE; + + g_object_unref (priv->client); + g_object_unref (priv->settings); + g_object_unref (priv->builder); + + g_object_unref (priv->device_model); + g_object_unref (priv->connection_model); + + if (priv->group) + g_object_unref (priv->group); + + if (priv->connection) + g_object_unref (priv->connection); + + if (priv->device) + g_object_unref (priv->device); + + if (priv->ap) + g_object_unref (priv->ap); + + if (priv->revalidate_id) + g_source_remove (priv->revalidate_id); + + G_OBJECT_CLASS (nma_wifi_dialog_parent_class)->dispose (object); +} + +static void +nma_wifi_dialog_class_init (NMAWifiDialogClass *nmad_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (nmad_class); + + g_type_class_add_private (nmad_class, sizeof (NMAWifiDialogPrivate)); + + /* virtual methods */ + object_class->dispose = dispose; +} diff -Nru network-manager-applet-0.9.4.1/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet-device-cdma.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet-device-cdma.c --- network-manager-applet-0.9.4.1/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet-device-cdma.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet-device-cdma.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1065 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-cdma.h" +#include "utils.h" +#include "nm-mobile-wizard.h" +#include "applet-dialogs.h" +#include "nma-marshal.h" +#include "nmn-mobile-providers.h" +#include "mb-menu-item.h" +#include "nm-ui-utils.h" + +typedef struct { + NMApplet *applet; + NMDevice *device; + + DBusGConnection *bus; + DBusGProxy *props_proxy; + DBusGProxy *cdma_proxy; + gboolean quality_valid; + guint32 quality; + guint32 cdma1x_state; + guint32 evdo_state; + gboolean evdo_capable; + guint32 sid; + gboolean modem_enabled; + + GHashTable *providers; + char *provider_name; + + guint32 poll_id; + gboolean skip_reg_poll; + gboolean skip_signal_poll; +} CdmaDeviceInfo; + +static void check_start_polling (CdmaDeviceInfo *info); + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} CdmaMenuItemInfo; + +static void +cdma_menu_item_info_destroy (gpointer data) +{ + CdmaMenuItemInfo *info = data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (info->connection); + + g_slice_free (CdmaMenuItemInfo, data); +} + +typedef struct { + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} AutoCdmaWizardInfo; + +static void +mobile_wizard_done (NMAMobileWizard *wizard, + gboolean canceled, + NMAMobileWizardAccessMethod *method, + gpointer user_data) +{ + AutoCdmaWizardInfo *info = user_data; + NMConnection *connection = NULL; + + if (!canceled && method) { + NMSetting *setting; + char *uuid, *id; + + if (method->devtype != NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + g_warning ("Unexpected device type (not CDMA)."); + canceled = TRUE; + goto done; + } + + connection = nm_connection_new (); + + setting = nm_setting_cdma_new (); + g_object_set (setting, + NM_SETTING_CDMA_NUMBER, "#777", + NM_SETTING_CDMA_USERNAME, method->username, + NM_SETTING_CDMA_PASSWORD, method->password, + NULL); + nm_connection_add_setting (connection, setting); + + /* Serial setting */ + setting = nm_setting_serial_new (); + g_object_set (setting, + NM_SETTING_SERIAL_BAUD, 115200, + NM_SETTING_SERIAL_BITS, 8, + NM_SETTING_SERIAL_PARITY, 'n', + NM_SETTING_SERIAL_STOPBITS, 1, + NULL); + nm_connection_add_setting (connection, setting); + + nm_connection_add_setting (connection, nm_setting_ppp_new ()); + + setting = nm_setting_connection_new (); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); + uuid = nm_utils_uuid_generate (); + g_object_set (setting, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_CDMA_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + g_free (id); + nm_connection_add_setting (connection, setting); + } + +done: + (*(info->callback)) (connection, TRUE, canceled, info->callback_data); + + if (wizard) + nma_mobile_wizard_destroy (wizard); + g_free (info); +} + +static gboolean +do_mobile_wizard (AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMAMobileWizard *wizard; + AutoCdmaWizardInfo *info; + NMAMobileWizardAccessMethod *method; + + info = g_malloc0 (sizeof (AutoCdmaWizardInfo)); + info->callback = callback; + info->callback_data = callback_data; + + wizard = nma_mobile_wizard_new (NULL, NULL, NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO, FALSE, + mobile_wizard_done, info); + if (wizard) { + nma_mobile_wizard_present (wizard); + return TRUE; + } + + /* Fall back to something */ + method = g_malloc0 (sizeof (NMAMobileWizardAccessMethod)); + method->devtype = NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO; + method->provider_name = _("CDMA"); + mobile_wizard_done (NULL, FALSE, method, info); + g_free (method); + + return TRUE; +} + +static gboolean +cdma_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + return do_mobile_wizard (callback, callback_data); +} + +static void +dbus_3g_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; +} Dbus3gInfo; + +static void +dbus_connect_3g_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus3gInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + "/", + dbus_3g_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +void +applet_cdma_connect_network (NMApplet *applet, NMDevice *device) +{ + Dbus3gInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + + do_mobile_wizard (dbus_connect_3g_cb, info); +} + +static void +cdma_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + CdmaMenuItemInfo *info = (CdmaMenuItemInfo *) user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + +static void +add_connection_item (NMDevice *device, + NMConnection *connection, + GtkWidget *item, + GtkWidget *menu, + NMApplet *applet) +{ + CdmaMenuItemInfo *info; + + info = g_slice_new0 (CdmaMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = connection ? g_object_ref (connection) : NULL; + + g_signal_connect_data (item, "activate", + G_CALLBACK (cdma_menu_item_activate), + info, + (GClosureNotify) cdma_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); +} + +static guint32 +cdma_state_to_mb_state (CdmaDeviceInfo *info) +{ + if (!info->modem_enabled) + return MB_STATE_UNKNOWN; + + /* EVDO state overrides 1X state for now */ + if (info->evdo_state) { + if (info->evdo_state == 3) + return MB_STATE_ROAMING; + return MB_STATE_HOME; + } else if (info->cdma1x_state) { + if (info->cdma1x_state == 3) + return MB_STATE_ROAMING; + return MB_STATE_HOME; + } + + return MB_STATE_UNKNOWN; +} + +static guint32 +cdma_act_to_mb_act (CdmaDeviceInfo *info) +{ + if (info->evdo_state) + return MB_TECH_EVDO_REVA; /* Always rA until we get CDMA AcT from MM */ + else if (info->cdma1x_state) + return MB_TECH_1XRTT; + return MB_TECH_UNKNOWN; +} + +static void +cdma_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + CdmaDeviceInfo *info; + char *text; + GtkWidget *item; + GSList *connections, *all, *iter; +#ifdef ENABLE_INDICATOR + GtkWidget *signal_icon; +#endif + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + text = g_strdup_printf (_("Mobile Broadband (%s)"), desc); + } else { + text = g_strdup (_("Mobile Broadband")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); +#ifndef ENABLE_INDICATOR + gtk_widget_set_sensitive (item, FALSE); +#endif + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + g_free (text); + + /* Add the active connection */ + if (active) { + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (active); + g_assert (s_con); + +#ifndef ENABLE_INDICATOR + item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), + info->quality_valid ? info->quality : 0, + info->provider_name, + TRUE, + cdma_act_to_mb_act (info), + cdma_state_to_mb_state (info), + info->modem_enabled, + applet); +#else + text = mobile_helper_get_connection_label (nm_setting_connection_get_id (s_con), + info->provider_name, + cdma_act_to_mb_act (info), + cdma_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#endif + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + add_connection_item (device, active, item, menu, applet); + } + + /* Get the "disconnect" item if connected */ + if (nm_device_get_state (device) > NM_DEVICE_STATE_DISCONNECTED) { + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + } else { + /* Otherwise show idle registration state or disabled */ +#ifndef ENABLE_INDICATOR + item = nm_mb_menu_item_new (NULL, + info->quality_valid ? info->quality : 0, + info->provider_name, + FALSE, + cdma_act_to_mb_act (info), + cdma_state_to_mb_state (info), + info->modem_enabled, + applet); +#else + text = mobile_helper_get_connection_label (NULL, + info->provider_name, + cdma_act_to_mb_act (info), + cdma_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#endif + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + + /* Add the default / inactive connection items */ + if (!nma_menu_device_check_unusable (device)) { + if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (connections)) { + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (connection != active) { + item = applet_new_menu_item_helper (connection, NULL, FALSE); + add_connection_item (device, connection, item, menu, applet); + } + } + } else { + /* Default connection item */ + item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (CDMA) connection...")); + add_connection_item (device, NULL, item, menu, applet); + } + } + + g_slist_free (connections); +} + +static void +cdma_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + CdmaDeviceInfo *info; + + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + const char *id; + + s_con = nm_connection_get_setting_connection (connection); + id = s_con ? nm_setting_connection_get_id (s_con) : NULL; + if (id) + str = g_strdup_printf (_("You are now connected to '%s'."), id); + } + + applet_do_notify_with_pref (applet, + _("Connection Established"), + str ? str : _("You are now connected to the CDMA network."), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (str); + } + + /* Start/stop polling of quality and registration when device state changes */ + info = g_object_get_data (G_OBJECT (device), "devinfo"); + check_start_polling (info); +} + +static void +cdma_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *id; + CdmaDeviceInfo *info; + gboolean mb_state; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (info); + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + mb_state = cdma_state_to_mb_state (info); + *out_pixbuf = mobile_helper_get_status_pixbuf (info->quality, + info->quality_valid, + mb_state, + cdma_act_to_mb_act (info), + applet); + *out_indicator_icon = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + + if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { + gboolean roaming = (mb_state == MB_STATE_ROAMING); + + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active: (%d%%%s%s)"), + id, info->quality, + roaming ? ", " : "", + roaming ? _("roaming") : ""); + } else + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active"), id); + break; + default: + break; + } +} + +typedef struct { + SecretsRequest req; + GtkWidget *dialog; + GtkEntry *secret_entry; + char *secret_name; +} NMCdmaSecretsInfo; + +static void +free_cdma_secrets_info (SecretsRequest *req) +{ + NMCdmaSecretsInfo *info = (NMCdmaSecretsInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } + g_free (info->secret_name); +} + +static void +get_cdma_secrets_cb (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMCdmaSecretsInfo *info = (NMCdmaSecretsInfo *) req; + NMSettingCdma *setting; + GError *error = NULL; + + if (response == GTK_RESPONSE_OK) { + setting = nm_connection_get_setting_cdma (req->connection); + if (setting) { + g_object_set (G_OBJECT (setting), + info->secret_name, gtk_entry_get_text (info->secret_entry), + NULL); + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): no GSM setting", + __FILE__, __LINE__, __func__); + } + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + } + + applet_secrets_request_complete_setting (req, NM_SETTING_CDMA_SETTING_NAME, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static gboolean +cdma_get_secrets (SecretsRequest *req, GError **error) +{ + NMCdmaSecretsInfo *info = (NMCdmaSecretsInfo *) req; + GtkWidget *widget; + GtkEntry *secret_entry = NULL; + + applet_secrets_request_set_free_func (req, free_cdma_secrets_info); + + if (!req->hints || !g_strv_length (req->hints)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): missing secrets hints.", + __FILE__, __LINE__, __func__); + return FALSE; + } + info->secret_name = g_strdup (req->hints[0]); + + if (!strcmp (info->secret_name, NM_SETTING_CDMA_PASSWORD)) + widget = applet_mobile_password_dialog_new (req->connection, &secret_entry); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unknown secrets hint '%s'.", + __FILE__, __LINE__, __func__, info->secret_name); + return FALSE; + } + info->dialog = widget; + info->secret_entry = secret_entry; + + if (!widget || !secret_entry) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): error asking for CDMA secrets.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (widget, "response", G_CALLBACK (get_cdma_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (GTK_WIDGET (widget)); + gtk_window_present (GTK_WINDOW (widget)); + + return TRUE; +} + +static void +cdma_device_info_free (gpointer data) +{ + CdmaDeviceInfo *info = data; + + if (info->props_proxy) + g_object_unref (info->props_proxy); + if (info->cdma_proxy) + g_object_unref (info->cdma_proxy); + if (info->bus) + dbus_g_connection_unref (info->bus); + if (info->poll_id) + g_source_remove (info->poll_id); + if (info->providers) + g_hash_table_destroy (info->providers); + g_free (info->provider_name); + memset (info, 0, sizeof (CdmaDeviceInfo)); + g_free (info); +} + +static void +notify_user_of_cdma_reg_change (CdmaDeviceInfo *info) +{ + guint32 mb_state = cdma_state_to_mb_state (info); + + if (mb_state == MB_STATE_HOME) { + applet_do_notify_with_pref (info->applet, + _("CDMA network."), + _("You are now registered on the home network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } else if (mb_state == MB_STATE_ROAMING) { + applet_do_notify_with_pref (info->applet, + _("CDMA network."), + _("You are now registered on a roaming network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } +} + +static void +update_registration_state (CdmaDeviceInfo *info, + guint32 new_cdma1x_state, + guint32 new_evdo_state) +{ + guint32 old_mb_state = cdma_state_to_mb_state (info); + + if ( (info->cdma1x_state != new_cdma1x_state) + || (info->evdo_state != new_evdo_state)) { + info->cdma1x_state = new_cdma1x_state; + info->evdo_state = new_evdo_state; + } + + /* Use the composite state to notify of home/roaming changes */ + if (cdma_state_to_mb_state (info) != old_mb_state) + notify_user_of_cdma_reg_change (info); +} + +static void +reg_state_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GError *error = NULL; + guint32 cdma1x_state = 0, evdo_state = 0; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_UINT, &cdma1x_state, + G_TYPE_UINT, &evdo_state, + G_TYPE_INVALID)) { + update_registration_state (info, cdma1x_state, evdo_state); + applet_schedule_update_icon (info->applet); + } + + g_clear_error (&error); +} + +static void +signal_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GError *error = NULL; + guint32 quality = 0; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_UINT, &quality, + G_TYPE_INVALID)) { + info->quality = quality; + info->quality_valid = TRUE; + applet_schedule_update_icon (info->applet); + } + + g_clear_error (&error); +} + +#define SERVING_SYSTEM_TYPE (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID)) + +static char * +find_provider_for_sid (GHashTable *table, guint32 sid) +{ + GHashTableIter iter; + gpointer value; + GSList *piter, *siter; + char *name = NULL; + + if (sid == 0) + return NULL; + + g_hash_table_iter_init (&iter, table); + /* Search through each country */ + while (g_hash_table_iter_next (&iter, NULL, &value) && !name) { + GSList *providers = value; + + /* Search through each country's providers */ + for (piter = providers; piter && !name; piter = g_slist_next (piter)) { + NmnMobileProvider *provider = piter->data; + + /* Search through CDMA SID list */ + for (siter = provider->cdma_sid; siter; siter = g_slist_next (siter)) { + if (GPOINTER_TO_UINT (siter->data) == sid) { + name = g_strdup (provider->name); + break; + } + } + } + } + + return name; +} + +static void +serving_system_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GError *error = NULL; + GValueArray *array = NULL; + guint32 new_sid = 0; + GValue *value; + + if (dbus_g_proxy_end_call (proxy, call, &error, + SERVING_SYSTEM_TYPE, &array, + G_TYPE_INVALID)) { + if (array->n_values == 3) { + value = g_value_array_get_nth (array, 2); + if (G_VALUE_HOLDS_UINT (value)) + new_sid = g_value_get_uint (value); + } + + g_value_array_free (array); + } + + if (new_sid && (new_sid != info->sid)) { + info->sid = new_sid; + if (info->providers) { + g_free (info->provider_name); + info->provider_name = NULL; + info->provider_name = find_provider_for_sid (info->providers, new_sid); + } + } else if (!new_sid) { + info->sid = 0; + g_free (info->provider_name); + info->provider_name = NULL; + } + + g_clear_error (&error); +} + +static void +enabled_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_BOOLEAN (&value)) + info->modem_enabled = g_value_get_boolean (&value); + g_value_unset (&value); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static gboolean +cdma_poll_cb (gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + + /* Kick off calls to get registration state and signal quality */ + if (!info->skip_reg_poll) { + dbus_g_proxy_begin_call (info->cdma_proxy, "GetRegistrationState", + reg_state_reply, info, NULL, + G_TYPE_INVALID); + info->skip_reg_poll = FALSE; + } + + if (!info->skip_signal_poll) { + dbus_g_proxy_begin_call (info->cdma_proxy, "GetSignalQuality", + signal_reply, info, NULL, + G_TYPE_INVALID); + info->skip_signal_poll = FALSE; + } + + dbus_g_proxy_begin_call (info->cdma_proxy, "GetServingSystem", + serving_system_reply, info, NULL, + G_TYPE_INVALID); + + return TRUE; /* keep running until we're told to stop */ +} + +static void +check_start_polling (CdmaDeviceInfo *info) +{ + NMDeviceState state; + gboolean poll = TRUE; + + g_return_if_fail (info != NULL); + + /* Don't poll if any of the following are true: + * + * 1) NM says the device is not available + * 3) the modem isn't enabled + */ + + state = nm_device_get_state (info->device); + if ( (state <= NM_DEVICE_STATE_UNAVAILABLE) + || (info->modem_enabled == FALSE)) + poll = FALSE; + + if (poll) { + if (!info->poll_id) { + /* 33 seconds to be just a bit more than MM's poll interval, so + * that if we get an unsolicited update from MM between polls we'll + * skip the next poll. + */ + info->poll_id = g_timeout_add_seconds (33, cdma_poll_cb, info); + } + cdma_poll_cb (info); + } else { + if (info->poll_id) + g_source_remove (info->poll_id); + info->poll_id = 0; + info->skip_reg_poll = FALSE; + info->skip_signal_poll = FALSE; + } +} + +static void +reg_state_changed_cb (DBusGProxy *proxy, + guint32 cdma1x_state, + guint32 evdo_state, + gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + + update_registration_state (info, cdma1x_state, evdo_state); + info->skip_reg_poll = TRUE; + applet_schedule_update_icon (info->applet); +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (info->applet); +#endif /* ENABLE_INDICATOR */ +} + +static void +signal_quality_changed_cb (DBusGProxy *proxy, + guint32 quality, + gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + + info->quality = quality; + info->quality_valid = TRUE; + info->skip_signal_poll = TRUE; + + applet_schedule_update_icon (info->applet); +} + +#define MM_DBUS_INTERFACE_MODEM "org.freedesktop.ModemManager.Modem" +#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)) + +static void +modem_properties_changed (DBusGProxy *proxy, + const char *interface, + GHashTable *props, + gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GValue *value; + + if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM)) { + value = g_hash_table_lookup (props, "Enabled"); + if (value && G_VALUE_HOLDS_BOOLEAN (value)) { + info->modem_enabled = g_value_get_boolean (value); + if (!info->modem_enabled) { + info->quality = 0; + info->quality_valid = 0; + info->cdma1x_state = 0; + info->evdo_state = 0; + info->sid = 0; + g_free (info->provider_name); + info->provider_name = NULL; + } + check_start_polling (info); + } + } +} + +static void +cdma_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceModem *modem = NM_DEVICE_MODEM (device); + CdmaDeviceInfo *info; + DBusGConnection *bus; + const char *udi; + GError *error = NULL; + + udi = nm_device_get_udi (device); + if (!udi) + return; + + bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); + if (!bus) { + g_warning ("%s: failed to connect to D-Bus: (%d) %s", __func__, error->code, error->message); + g_clear_error (&error); + return; + } + + info = g_malloc0 (sizeof (CdmaDeviceInfo)); + info->applet = applet; + info->device = device; + info->bus = bus; + info->quality_valid = FALSE; + + info->providers = nmn_mobile_providers_parse (NULL); + + info->props_proxy = dbus_g_proxy_new_for_name (bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.DBus.Properties"); + if (!info->props_proxy) { + g_message ("%s: failed to create D-Bus properties proxy.", __func__); + cdma_device_info_free (info); + return; + } + + info->cdma_proxy = dbus_g_proxy_new_for_name (bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.ModemManager.Modem.Cdma"); + if (!info->cdma_proxy) { + g_message ("%s: failed to create CDMA proxy.", __func__); + cdma_device_info_free (info); + return; + } + + g_object_set_data_full (G_OBJECT (modem), "devinfo", info, cdma_device_info_free); + + /* Registration state change signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__UINT_UINT, + G_TYPE_NONE, + G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->cdma_proxy, "RegistrationStateChanged", + G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->cdma_proxy, "RegistrationStateChanged", + G_CALLBACK (reg_state_changed_cb), info, NULL); + + /* Signal quality change signal */ + dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->cdma_proxy, "SignalQuality", G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->cdma_proxy, "SignalQuality", + G_CALLBACK (signal_quality_changed_cb), info, NULL); + + /* Modem property change signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__STRING_BOXED, + G_TYPE_NONE, G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, + G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->props_proxy, "MmPropertiesChanged", + G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->props_proxy, "MmPropertiesChanged", + G_CALLBACK (modem_properties_changed), + info, NULL); + + /* Ask whether the device is enabled */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + enabled_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_STRING, "Enabled", + G_TYPE_INVALID); +} + +NMADeviceClass * +applet_device_cdma_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = cdma_new_auto_connection; + dclass->add_menu_item = cdma_add_menu_item; + dclass->device_state_changed = cdma_device_state_changed; + dclass->get_icon = cdma_get_icon; + dclass->get_secrets = cdma_get_secrets; + dclass->secrets_request_size = sizeof (NMCdmaSecretsInfo); + dclass->device_added = cdma_device_added; + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet-device-gsm.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet-device-gsm.c --- network-manager-applet-0.9.4.1/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet-device-gsm.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet-device-gsm.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1786 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + * (C) Copyright 2008 Novell, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-gsm.h" +#include "utils.h" +#include "nm-mobile-wizard.h" +#include "mobile-helpers.h" +#include "applet-dialogs.h" +#include "mb-menu-item.h" +#include "nma-marshal.h" +#include "nmn-mobile-providers.h" +#include "nm-ui-utils.h" + +typedef enum { + MM_MODEM_GSM_ACCESS_TECH_UNKNOWN = 0, + MM_MODEM_GSM_ACCESS_TECH_GSM = 1, + MM_MODEM_GSM_ACCESS_TECH_GSM_COMPACT = 2, + MM_MODEM_GSM_ACCESS_TECH_GPRS = 3, + MM_MODEM_GSM_ACCESS_TECH_EDGE = 4, /* GSM w/EGPRS */ + MM_MODEM_GSM_ACCESS_TECH_UMTS = 5, /* UTRAN */ + MM_MODEM_GSM_ACCESS_TECH_HSDPA = 6, /* UTRAN w/HSDPA */ + MM_MODEM_GSM_ACCESS_TECH_HSUPA = 7, /* UTRAN w/HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA = 8, /* UTRAN w/HSDPA and HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS = 9, + MM_MODEM_GSM_ACCESS_TECH_LTE = 10, + + MM_MODEM_GSM_ACCESS_TECH_LAST = MM_MODEM_GSM_ACCESS_TECH_LTE +} MMModemGsmAccessTech; + +typedef struct { + NMApplet *applet; + NMDevice *device; + + DBusGConnection *bus; + DBusGProxy *props_proxy; + DBusGProxy *card_proxy; + DBusGProxy *net_proxy; + + gboolean quality_valid; + guint32 quality; + char *unlock_required; + char *devid; + char *simid; + gboolean modem_enabled; + MMModemGsmAccessTech act; + + /* reg_state is (1 + MM reg state) so that 0 means we haven't gotten a + * value from MM yet. 0 is a valid MM GSM reg state. + */ + guint reg_state; + char *op_code; + char *op_name; + GHashTable *providers; + + guint32 poll_id; + gboolean skip_reg_poll; + gboolean skip_signal_poll; + + /* Unlock dialog stuff */ + GtkWidget *dialog; + gpointer keyring_id; +} GsmDeviceInfo; + +static void unlock_dialog_destroy (GsmDeviceInfo *info); +static void check_start_polling (GsmDeviceInfo *info); + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} GSMMenuItemInfo; + +static void +gsm_menu_item_info_destroy (gpointer data) +{ + GSMMenuItemInfo *info = data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (info->connection); + + g_slice_free (GSMMenuItemInfo, data); +} + +typedef struct { + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} AutoGsmWizardInfo; + +static void +mobile_wizard_done (NMAMobileWizard *wizard, + gboolean canceled, + NMAMobileWizardAccessMethod *method, + gpointer user_data) +{ + AutoGsmWizardInfo *info = user_data; + NMConnection *connection = NULL; + + if (!canceled && method) { + NMSetting *setting; + char *uuid, *id; + + if (method->devtype != NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + g_warning ("Unexpected device type (not GSM)."); + canceled = TRUE; + goto done; + } + + connection = nm_connection_new (); + + setting = nm_setting_gsm_new (); + g_object_set (setting, + NM_SETTING_GSM_NUMBER, "*99#", + NM_SETTING_GSM_USERNAME, method->username, + NM_SETTING_GSM_PASSWORD, method->password, + NM_SETTING_GSM_APN, method->gsm_apn, + NULL); + nm_connection_add_setting (connection, setting); + + /* Serial setting */ + setting = nm_setting_serial_new (); + g_object_set (setting, + NM_SETTING_SERIAL_BAUD, 115200, + NM_SETTING_SERIAL_BITS, 8, + NM_SETTING_SERIAL_PARITY, 'n', + NM_SETTING_SERIAL_STOPBITS, 1, + NULL); + nm_connection_add_setting (connection, setting); + + nm_connection_add_setting (connection, nm_setting_ppp_new ()); + + setting = nm_setting_connection_new (); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); + uuid = nm_utils_uuid_generate (); + g_object_set (setting, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_GSM_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + g_free (id); + nm_connection_add_setting (connection, setting); + } + +done: + (*(info->callback)) (connection, TRUE, canceled, info->callback_data); + + if (wizard) + nma_mobile_wizard_destroy (wizard); + g_free (info); +} + +static gboolean +do_mobile_wizard (AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMAMobileWizard *wizard; + AutoGsmWizardInfo *info; + NMAMobileWizardAccessMethod *method; + + info = g_malloc0 (sizeof (AutoGsmWizardInfo)); + info->callback = callback; + info->callback_data = callback_data; + + wizard = nma_mobile_wizard_new (NULL, NULL, NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS, FALSE, + mobile_wizard_done, info); + if (wizard) { + nma_mobile_wizard_present (wizard); + return TRUE; + } + + /* Fall back to something */ + method = g_malloc0 (sizeof (NMAMobileWizardAccessMethod)); + method->devtype = NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS; + method->provider_name = _("GSM"); + mobile_wizard_done (NULL, FALSE, method, info); + g_free (method); + + return TRUE; +} + +static gboolean +gsm_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + return do_mobile_wizard (callback, callback_data); +} + +static void +dbus_3g_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; +} Dbus3gInfo; + +static void +dbus_connect_3g_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus3gInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + "/", + dbus_3g_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +void +applet_gsm_connect_network (NMApplet *applet, NMDevice *device) +{ + Dbus3gInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + + do_mobile_wizard (dbus_connect_3g_cb, info); +} + +static void +gsm_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + GSMMenuItemInfo *info = (GSMMenuItemInfo *) user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + +static void +add_connection_item (NMDevice *device, + NMConnection *connection, + GtkWidget *item, + GtkWidget *menu, + NMApplet *applet) +{ + GSMMenuItemInfo *info; + + info = g_slice_new0 (GSMMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = connection ? g_object_ref (connection) : NULL; + + g_signal_connect_data (item, "activate", + G_CALLBACK (gsm_menu_item_activate), + info, + (GClosureNotify) gsm_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); +} + +static guint32 +gsm_state_to_mb_state (GsmDeviceInfo *info) +{ + if (!info->modem_enabled) + return MB_STATE_UNKNOWN; + + switch (info->reg_state) { + case 1: /* IDLE */ + return MB_STATE_IDLE; + case 2: /* HOME */ + return MB_STATE_HOME; + case 3: /* SEARCHING */ + return MB_STATE_SEARCHING; + case 4: /* DENIED */ + return MB_STATE_DENIED; + case 6: /* ROAMING */ + return MB_STATE_ROAMING; + case 5: /* UNKNOWN */ + default: + break; + } + + return MB_STATE_UNKNOWN; +} + +static guint32 +gsm_act_to_mb_act (GsmDeviceInfo *info) +{ + switch (info->act) { + case MM_MODEM_GSM_ACCESS_TECH_GPRS: + return MB_TECH_GPRS; + case MM_MODEM_GSM_ACCESS_TECH_EDGE: + return MB_TECH_EDGE; + case MM_MODEM_GSM_ACCESS_TECH_UMTS: + return MB_TECH_UMTS; + case MM_MODEM_GSM_ACCESS_TECH_HSDPA: + return MB_TECH_HSDPA; + case MM_MODEM_GSM_ACCESS_TECH_HSUPA: + return MB_TECH_HSUPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA: + return MB_TECH_HSPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS: + return MB_TECH_HSPA_PLUS; + case MM_MODEM_GSM_ACCESS_TECH_LTE: + return MB_TECH_LTE; + default: + break; + } + + return MB_TECH_GSM; +} + +static void +gsm_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + GsmDeviceInfo *info; + char *text; + GtkWidget *item; + GSList *connections, *all, *iter; +#ifdef ENABLE_INDICATOR + GtkWidget *signal_icon; +#endif + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + text = g_strdup_printf (_("Mobile Broadband (%s)"), desc); + } else { + text = g_strdup (_("Mobile Broadband")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); +#ifndef ENABLE_INDICATOR + gtk_widget_set_sensitive (item, FALSE); +#endif + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + g_free (text); + + /* Add the active connection */ + if (active) { + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (active); + g_assert (s_con); + +#ifndef ENABLE_INDICATOR + item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), + info->quality_valid ? info->quality : 0, + info->op_name, + TRUE, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info), + info->modem_enabled, + applet); +#else + text = mobile_helper_get_connection_label (nm_setting_connection_get_id (s_con), + info->op_name, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#endif + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + add_connection_item (device, active, item, menu, applet); + } + + /* Notify user of unmanaged or unavailable device */ + if (nm_device_get_state (device) > NM_DEVICE_STATE_DISCONNECTED) { + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + } else { + /* Otherwise show idle registration state or disabled */ +#ifndef ENABLE_INDICATOR + item = nm_mb_menu_item_new (NULL, + info->quality_valid ? info->quality : 0, + info->op_name, + FALSE, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info), + info->modem_enabled, + applet); +#else + text = mobile_helper_get_connection_label (NULL, + info->op_name, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + gtk_widget_set_sensitive (item, FALSE); +#endif + + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + + /* Add the default / inactive connection items */ + if (!nma_menu_device_check_unusable (device)) { + if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (connections)) { + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (connection != active) { + item = applet_new_menu_item_helper (connection, NULL, FALSE); + add_connection_item (device, connection, item, menu, applet); + } + } + } else { + /* Default connection item */ + item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (GSM) connection...")); + add_connection_item (device, NULL, item, menu, applet); + } + } + + g_slist_free (connections); +} + +static void +gsm_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + GsmDeviceInfo *info; + + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + const char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, + str ? str : _("GSM network."), + _("Connection Established"), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } + + /* Start/stop polling of quality and registration when device state changes */ + info = g_object_get_data (G_OBJECT (device), "devinfo"); + check_start_polling (info); +} + +static void +gsm_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *id; + GsmDeviceInfo *info; + guint32 mb_state; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (info); + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + mb_state = gsm_state_to_mb_state (info); + *out_pixbuf = mobile_helper_get_status_pixbuf (info->quality, + info->quality_valid, + mb_state, + gsm_act_to_mb_act (info), + applet); + *out_indicator_icon = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + + if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { + gboolean roaming = (mb_state == MB_STATE_ROAMING); + + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active: (%d%%%s%s)"), + id, info->quality, + roaming ? ", " : "", + roaming ? _("roaming") : ""); + } else + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active"), id); + break; + default: + break; + } +} + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkEntry *secret_entry; + char *secret_name; +} NMGsmSecretsInfo; + +static void +free_gsm_secrets_info (SecretsRequest *req) +{ + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } + + g_free (info->secret_name); +} + +static void +get_gsm_secrets_cb (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + NMSettingGsm *setting; + GError *error = NULL; + + if (response == GTK_RESPONSE_OK) { + setting = nm_connection_get_setting_gsm (req->connection); + if (setting) { + g_object_set (G_OBJECT (setting), + info->secret_name, gtk_entry_get_text (info->secret_entry), + NULL); + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): no GSM setting", + __FILE__, __LINE__, __func__); + } + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + } + + applet_secrets_request_complete_setting (req, NM_SETTING_GSM_SETTING_NAME, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static void +pin_entry_changed (GtkEditable *editable, gpointer user_data) +{ + GtkWidget *ok_button = GTK_WIDGET (user_data); + const char *s; + int i; + gboolean valid = FALSE; + guint32 len; + + s = gtk_entry_get_text (GTK_ENTRY (editable)); + if (s) { + len = strlen (s); + if ((len >= 4) && (len <= 8)) { + valid = TRUE; + for (i = 0; i < len; i++) { + if (!g_ascii_isdigit (s[i])) { + valid = FALSE; + break; + } + } + } + } + + gtk_widget_set_sensitive (ok_button, valid); +} + +static GtkWidget * +ask_for_pin (GtkEntry **out_secret_entry) +{ + GtkDialog *dialog; + GtkWidget *w = NULL, *ok_button = NULL; + GtkBox *box = NULL, *vbox = NULL; + + dialog = GTK_DIALOG (gtk_dialog_new ()); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_title (GTK_WINDOW (dialog), _("PIN code required")); + + ok_button = gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); + ok_button = gtk_dialog_add_button (dialog, GTK_STOCK_OK, GTK_RESPONSE_OK); + gtk_window_set_default (GTK_WINDOW (dialog), ok_button); + + vbox = GTK_BOX (gtk_dialog_get_content_area (dialog)); + + w = gtk_label_new (_("PIN code is needed for the mobile broadband device")); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + + w = gtk_alignment_new (0.5, 0.5, 0, 1.0); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + +#if GTK_CHECK_VERSION(3,1,6) + box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6)); +#else + box = GTK_BOX (gtk_hbox_new (FALSE, 6)); +#endif + gtk_container_set_border_width (GTK_CONTAINER (box), 6); + gtk_container_add (GTK_CONTAINER (w), GTK_WIDGET (box)); + + gtk_box_pack_start (box, gtk_label_new ("PIN:"), FALSE, FALSE, 0); + + w = gtk_entry_new (); + *out_secret_entry = GTK_ENTRY (w); + gtk_entry_set_max_length (GTK_ENTRY (w), 8); + gtk_entry_set_width_chars (GTK_ENTRY (w), 8); + gtk_entry_set_activates_default (GTK_ENTRY (w), TRUE); + gtk_entry_set_visibility (GTK_ENTRY (w), FALSE); + gtk_box_pack_start (box, w, FALSE, FALSE, 0); + g_signal_connect (w, "changed", G_CALLBACK (pin_entry_changed), ok_button); + pin_entry_changed (GTK_EDITABLE (w), ok_button); + + gtk_widget_show_all (GTK_WIDGET (vbox)); + return GTK_WIDGET (dialog); +} + +static gboolean +gsm_get_secrets (SecretsRequest *req, GError **error) +{ + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + GtkWidget *widget; + GtkEntry *secret_entry = NULL; + + applet_secrets_request_set_free_func (req, free_gsm_secrets_info); + + if (!req->hints || !g_strv_length (req->hints)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): missing secrets hints.", + __FILE__, __LINE__, __func__); + return FALSE; + } + info->secret_name = g_strdup (req->hints[0]); + + if (!strcmp (info->secret_name, NM_SETTING_GSM_PIN)) { + NMDevice *device; + GsmDeviceInfo *devinfo; + + device = applet_get_device_for_connection (req->applet, req->connection); + if (!device) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to find device for active connection.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + devinfo = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (devinfo); + + /* A GetSecrets PIN dialog overrides the initial unlock dialog */ + if (devinfo->dialog) + unlock_dialog_destroy (devinfo); + + widget = ask_for_pin (&secret_entry); + } else if (!strcmp (info->secret_name, NM_SETTING_GSM_PASSWORD)) + widget = applet_mobile_password_dialog_new (req->connection, &secret_entry); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unknown secrets hint '%s'.", + __FILE__, __LINE__, __func__, info->secret_name); + return FALSE; + } + info->dialog = widget; + info->secret_entry = secret_entry; + + if (!widget || !secret_entry) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): error asking for GSM secrets.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (widget, "response", G_CALLBACK (get_gsm_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (GTK_WIDGET (widget)); + gtk_window_present (GTK_WINDOW (widget)); + + return TRUE; +} + +/********************************************************************/ + +static void +save_pin_cb (GnomeKeyringResult result, guint32 val, gpointer user_data) +{ + if (result != GNOME_KEYRING_RESULT_OK) + g_warning ("%s: result %d", (const char *) user_data, result); +} + +static void +set_pin_in_keyring (const char *devid, + const char *simid, + const char *pin) +{ + GnomeKeyringAttributeList *attributes; + GnomeKeyringAttribute attr; + const char *name; + char *error_msg; + + name = g_strdup_printf (_("PIN code for SIM card '%s' on '%s'"), + simid ? simid : "unknown", + devid); + + attributes = gnome_keyring_attribute_list_new (); + attr.name = g_strdup ("devid"); + attr.type = GNOME_KEYRING_ATTRIBUTE_TYPE_STRING; + attr.value.string = g_strdup (devid); + g_array_append_val (attributes, attr); + + if (simid) { + attr.name = g_strdup ("simid"); + attr.type = GNOME_KEYRING_ATTRIBUTE_TYPE_STRING; + attr.value.string = g_strdup (simid); + g_array_append_val (attributes, attr); + } + + error_msg = g_strdup_printf ("Saving PIN code in keyring for devid:%s simid:%s failed", + devid, simid ? simid : "(unknown)"); + + gnome_keyring_item_create (NULL, + GNOME_KEYRING_ITEM_GENERIC_SECRET, + name, + attributes, + pin, + TRUE, + save_pin_cb, + error_msg, + (GDestroyNotify) g_free); + + gnome_keyring_attribute_list_free (attributes); +} + +static void +delete_pin_cb (GnomeKeyringResult result, gpointer user_data) +{ + /* nothing to do */ +} + +static void +delete_pins_find_cb (GnomeKeyringResult result, GList *list, gpointer user_data) +{ + GList *iter; + + if (result == GNOME_KEYRING_RESULT_OK) { + for (iter = list; iter; iter = g_list_next (iter)) { + GnomeKeyringFound *found = iter->data; + + gnome_keyring_item_delete (found->keyring, found->item_id, delete_pin_cb, NULL, NULL); + } + } +} + +static void +delete_pins_in_keyring (const char *devid) +{ + gnome_keyring_find_itemsv (GNOME_KEYRING_ITEM_GENERIC_SECRET, + delete_pins_find_cb, + NULL, + NULL, + "devid", + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + devid, + NULL); +} + +static void +unlock_dialog_destroy (GsmDeviceInfo *info) +{ + applet_mobile_pin_dialog_destroy (info->dialog); + info->dialog = NULL; +} + +static void +unlock_pin_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + const char *dbus_error, *msg = NULL, *code1; + + if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + if (applet_mobile_pin_dialog_get_auto_unlock (info->dialog)) { + code1 = applet_mobile_pin_dialog_get_entry1 (info->dialog); + set_pin_in_keyring (info->devid, info->simid, code1); + } else + delete_pins_in_keyring (info->devid); + unlock_dialog_destroy (info); + return; + } + + dbus_error = dbus_g_error_get_name (error); + if (dbus_error && !strcmp (dbus_error, "org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword")) + msg = _("Wrong PIN code; please contact your provider."); + else + msg = error ? error->message : NULL; + + applet_mobile_pin_dialog_stop_spinner (info->dialog, msg); + g_warning ("%s: error unlocking with PIN: %s", __func__, error->message); + g_clear_error (&error); +} + +static void +unlock_puk_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + const char *dbus_error, *msg = NULL; + + if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + unlock_dialog_destroy (info); + return; + } + + dbus_error = dbus_g_error_get_name (error); + if (dbus_error && !strcmp (dbus_error, "org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword")) + msg = _("Wrong PUK code; please contact your provider."); + else + msg = error ? error->message : NULL; + + applet_mobile_pin_dialog_stop_spinner (info->dialog, msg); + g_warning ("%s: error unlocking with PIN: %s", __func__, error->message); + g_clear_error (&error); +} + +#define UNLOCK_CODE_PIN 1 +#define UNLOCK_CODE_PUK 2 + +static void +unlock_dialog_response (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + const char *code1, *code2; + guint32 unlock_code; + + if (response == GTK_RESPONSE_CANCEL || response == GTK_RESPONSE_DELETE_EVENT) { + unlock_dialog_destroy (info); + return; + } + + /* Start the spinner to show the progress of the unlock */ + applet_mobile_pin_dialog_start_spinner (info->dialog, _("Sending unlock code...")); + + unlock_code = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (info->dialog), "unlock-code")); + if (!unlock_code) { + g_warn_if_fail (unlock_code != 0); + unlock_dialog_destroy (info); + return; + } + + code1 = applet_mobile_pin_dialog_get_entry1 (info->dialog); + if (!code1 || !strlen (code1)) { + g_warn_if_fail (code1 != NULL); + g_warn_if_fail (strlen (code1)); + unlock_dialog_destroy (info); + return; + } + + /* Send the code to ModemManager */ + if (unlock_code == UNLOCK_CODE_PIN) { + dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPin", + unlock_pin_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, code1, + G_TYPE_INVALID); + } else if (unlock_code == UNLOCK_CODE_PUK) { + code2 = applet_mobile_pin_dialog_get_entry2 (info->dialog); + if (!code2) { + g_warn_if_fail (code2 != NULL); + unlock_dialog_destroy (info); + return; + } + + dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPuk", + unlock_puk_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, code1, + G_TYPE_STRING, code2, + G_TYPE_INVALID); + } +} + +static void +unlock_dialog_new (NMDevice *device, GsmDeviceInfo *info) +{ + const char *header = NULL; + const char *title = NULL; + const char *show_pass_label = NULL; + char *desc = NULL; + const char *label1 = NULL, *label2 = NULL, *label3 = NULL; + const char *device_desc; + gboolean match23 = FALSE; + guint32 label1_min = 0, label2_min = 0, label3_min = 0; + guint32 label1_max = 0, label2_max = 0, label3_max = 0; + guint32 unlock_code = 0; + + g_return_if_fail (info->unlock_required != NULL); + + if (info->dialog) + return; + + /* Figure out the dialog text based on the required unlock code */ + device_desc = nma_utils_get_device_description (device); + if (!strcmp (info->unlock_required, "sim-pin")) { + title = _("SIM PIN unlock required"); + header = _("SIM PIN Unlock Required"); + /* FIXME: some warning about # of times you can enter incorrect PIN */ + desc = g_strdup_printf (_("The mobile broadband device '%s' requires a SIM PIN code before it can be used."), device_desc); + /* Translators: PIN code entry label */ + label1 = _("PIN code:"); + label1_min = 4; + label1_max = 8; + /* Translators: Show/obscure PIN checkbox label */ + show_pass_label = _("Show PIN code"); + unlock_code = UNLOCK_CODE_PIN; + } else if (!strcmp (info->unlock_required, "sim-puk")) { + title = _("SIM PUK unlock required"); + header = _("SIM PUK Unlock Required"); + /* FIXME: some warning about # of times you can enter incorrect PUK */ + desc = g_strdup_printf (_("The mobile broadband device '%s' requires a SIM PUK code before it can be used."), device_desc); + /* Translators: PUK code entry label */ + label1 = _("PUK code:"); + label1_min = label1_max = 8; + /* Translators: New PIN entry label */ + label2 = _("New PIN code:"); + /* Translators: New PIN verification entry label */ + label3 = _("Re-enter new PIN code:"); + label2_min = label3_min = 4; + label2_max = label3_max = 8; + match23 = TRUE; + /* Translators: Show/obscure PIN/PUK checkbox label */ + show_pass_label = _("Show PIN/PUK codes"); + unlock_code = UNLOCK_CODE_PUK; + } else { + g_warning ("Unhandled unlock request for '%s'", info->unlock_required); + return; + } + + /* Construct and run the dialog */ + info->dialog = applet_mobile_pin_dialog_new (title, + header, + desc, + show_pass_label, + (unlock_code == UNLOCK_CODE_PIN) ? TRUE : FALSE); + g_free (desc); + g_return_if_fail (info->dialog != NULL); + + g_object_set_data (G_OBJECT (info->dialog), "unlock-code", GUINT_TO_POINTER (unlock_code)); + applet_mobile_pin_dialog_match_23 (info->dialog, match23); + + applet_mobile_pin_dialog_set_entry1 (info->dialog, label1, label1_min, label1_max); + if (label2) + applet_mobile_pin_dialog_set_entry2 (info->dialog, label2, label2_min, label2_max); + if (label3) + applet_mobile_pin_dialog_set_entry3 (info->dialog, label3, label3_min, label3_max); + + g_signal_connect (info->dialog, "response", G_CALLBACK (unlock_dialog_response), info); + applet_mobile_pin_dialog_present (info->dialog, FALSE); +} + +/********************************************************************/ + +static void +gsm_device_info_free (gpointer data) +{ + GsmDeviceInfo *info = data; + + if (info->props_proxy) + g_object_unref (info->props_proxy); + if (info->card_proxy) + g_object_unref (info->card_proxy); + if (info->net_proxy) + g_object_unref (info->net_proxy); + if (info->bus) + dbus_g_connection_unref (info->bus); + + if (info->keyring_id) + gnome_keyring_cancel_request (info->keyring_id); + + if (info->providers) + g_hash_table_destroy (info->providers); + + if (info->poll_id) + g_source_remove (info->poll_id); + + if (info->dialog) + unlock_dialog_destroy (info); + + g_free (info->devid); + g_free (info->simid); + g_free (info->op_code); + g_free (info->op_name); + memset (info, 0, sizeof (GsmDeviceInfo)); + g_free (info); +} + +static void +signal_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + guint32 quality = 0; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_UINT, &quality, + G_TYPE_INVALID)) { + info->quality = quality; + info->quality_valid = TRUE; + applet_schedule_update_icon (info->applet); + } + + g_clear_error (&error); +} + +static char * +find_provider_for_mcc_mnc (GHashTable *table, const char *mccmnc) +{ + GHashTableIter iter; + gpointer value; + GSList *piter, *siter; + const char *name2 = NULL, *name3 = NULL; + gboolean done = FALSE; + + if (!mccmnc) + return NULL; + + g_hash_table_iter_init (&iter, table); + /* Search through each country */ + while (g_hash_table_iter_next (&iter, NULL, &value) && !done) { + GSList *providers = value; + + /* Search through each country's providers */ + for (piter = providers; piter && !done; piter = g_slist_next (piter)) { + NmnMobileProvider *provider = piter->data; + + /* Search through MCC/MNC list */ + for (siter = provider->gsm_mcc_mnc; siter; siter = g_slist_next (siter)) { + NmnGsmMccMnc *mcc = siter->data; + + /* Match both 2-digit and 3-digit MNC; prefer a + * 3-digit match if found, otherwise a 2-digit one. + */ + if (strncmp (mcc->mcc, mccmnc, 3)) + continue; /* MCC was wrong */ + + if ( !name3 + && (strlen (mccmnc) == 6) + && !strncmp (mccmnc + 3, mcc->mnc, 3)) + name3 = provider->name; + + if ( !name2 + && !strncmp (mccmnc + 3, mcc->mnc, 2)) + name2 = provider->name; + + if (name2 && name3) { + done = TRUE; + break; + } + } + } + } + + if (name3) + return g_strdup (name3); + return g_strdup (name2); +} + +static char * +parse_op_name (GsmDeviceInfo *info, const char *orig, const char *op_code) +{ + guint i, orig_len; + + /* Some devices return the MCC/MNC if they haven't fully initialized + * or gotten all the info from the network yet. Handle that. + */ + + orig_len = orig ? strlen (orig) : 0; + if (orig_len == 0) { + /* If the operator name isn't valid, maybe we can look up the MCC/MNC + * from the operator code instead. + */ + if (op_code && strlen (op_code)) { + orig = op_code; + orig_len = strlen (orig); + } else + return NULL; + } else if (orig_len < 5 || orig_len > 6) + return g_strdup (orig); /* not an MCC/MNC */ + + for (i = 0; i < orig_len; i++) { + if (!isdigit (orig[i])) + return strdup (orig); + } + + /* At this point we have a 5 or 6 character all-digit string; that's + * probably an MCC/MNC. Look that up. + */ + + if (!info->providers) + info->providers = nmn_mobile_providers_parse (NULL); + if (!info->providers) + return strdup (orig); + + return find_provider_for_mcc_mnc (info->providers, orig); +} + +static void +notify_user_of_gsm_reg_change (GsmDeviceInfo *info) +{ + guint32 mb_state = gsm_state_to_mb_state (info); + + if (mb_state == MB_STATE_HOME) { + applet_do_notify_with_pref (info->applet, + _("GSM network."), + _("You are now registered on the home network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } else if (mb_state == MB_STATE_ROAMING) { + applet_do_notify_with_pref (info->applet, + _("GSM network."), + _("You are now registered on a roaming network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } +} + +#define REG_INFO_TYPE (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID)) +#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)) + +static void +reg_info_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValueArray *array = NULL; + guint32 new_state = 0; + char *new_op_code = NULL; + char *new_op_name = NULL; + GValue *value; + + if (dbus_g_proxy_end_call (proxy, call, &error, REG_INFO_TYPE, &array, G_TYPE_INVALID)) { + if (array->n_values == 3) { + value = g_value_array_get_nth (array, 0); + if (G_VALUE_HOLDS_UINT (value)) + new_state = g_value_get_uint (value) + 1; + + value = g_value_array_get_nth (array, 1); + if (G_VALUE_HOLDS_STRING (value)) { + new_op_code = g_value_dup_string (value); + if (new_op_code && !strlen (new_op_code)) { + g_free (new_op_code); + new_op_code = NULL; + } + } + + value = g_value_array_get_nth (array, 2); + if (G_VALUE_HOLDS_STRING (value)) + new_op_name = parse_op_name (info, g_value_get_string (value), new_op_code); + } + + g_value_array_free (array); + } + + if (info->reg_state != new_state) { + info->reg_state = new_state; + notify_user_of_gsm_reg_change (info); + } + + g_free (info->op_code); + info->op_code = new_op_code; + g_free (info->op_name); + info->op_name = new_op_name; + + g_clear_error (&error); +} + +static void +enabled_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_BOOLEAN (&value)) + info->modem_enabled = g_value_get_boolean (&value); + g_value_unset (&value); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static char * +parse_unlock_required (GValue *value) +{ + const char *new_val; + + /* Empty string means NULL */ + new_val = g_value_get_string (value); + if (new_val && strlen (new_val)) { + /* PIN2/PUK2 only required for various dialing things that we don't care + * about; it doesn't inhibit normal operation. + */ + if (strcmp (new_val, "sim-puk2") && strcmp (new_val, "sim-pin2")) + return g_strdup (new_val); + } + + return NULL; +} + +static void +keyring_unlock_pin_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + + if (!dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + g_warning ("Failed to auto-unlock devid:%s simid:%s : (%s) %s", + info->devid ? info->devid : "(unknown)", + info->simid ? info->simid : "(unknown)", + dbus_g_error_get_name (error), + error->message); + /* Ask the user */ + unlock_dialog_new (info->device, info); + g_clear_error (&error); + } +} + +static void +keyring_pin_check_cb (GnomeKeyringResult result, GList *list, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GList *iter; + const char *pin = NULL; + + info->keyring_id = NULL; + + if (result != GNOME_KEYRING_RESULT_OK) { + /* No saved PIN, just ask the user */ + unlock_dialog_new (info->device, info); + return; + } + + /* Look for a result with a matching "simid" attribute since that's + * better than just using a matching "devid". The PIN is really tied + * to the SIM, not the modem itself. + */ + for (iter = list; + info->simid && (pin == NULL) && iter; + iter = g_list_next (iter)) { + GnomeKeyringFound *found = iter->data; + int i; + + /* Look for a matching "simid" attribute */ + for (i = 0; (pin == NULL) && i < found->attributes->len; i++) { + GnomeKeyringAttribute attr = gnome_keyring_attribute_list_index (found->attributes, i); + + if ( g_strcmp0 (attr.name, "simid") == 0 + && attr.type == GNOME_KEYRING_ATTRIBUTE_TYPE_STRING + && g_strcmp0 (attr.value.string, info->simid) == 0) { + pin = found->secret; + break; + } + } + } + + if (pin == NULL) { + /* Fall back to the first result's PIN */ + pin = ((GnomeKeyringFound *) list->data)->secret; + if (pin == NULL) { + /* Should never get here */ + g_warn_if_fail (pin != NULL); + unlock_dialog_new (info->device, info); + return; + } + } + + /* Send the PIN code to ModemManager */ + if (!dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPin", + keyring_unlock_pin_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, pin, + G_TYPE_INVALID)) { + g_warning ("Failed to auto-unlock devid:%s simid:%s", + info->devid ? info->devid : "(unknown)", + info->simid ? info->simid : "(unknown)"); + } +} + +static void +simid_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_STRING (&value)) { + g_free (info->simid); + info->simid = g_value_dup_string (&value); + } + g_value_unset (&value); + } + g_clear_error (&error); + + /* Procure unlock code and apply it if an unlock is now required. */ + if (info->unlock_required) { + /* If we have a device ID ask the keyring for any saved SIM-PIN codes */ + if (info->devid && (g_strcmp0 (info->unlock_required, "sim-pin") == 0)) { + g_warn_if_fail (info->keyring_id == NULL); + info->keyring_id = gnome_keyring_find_itemsv (GNOME_KEYRING_ITEM_GENERIC_SECRET, + keyring_pin_check_cb, + info, + NULL, + "devid", + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + info->devid, + NULL); + } else { + /* Couldn't get a device ID, but unlock required; present dialog */ + unlock_dialog_new (info->device, info); + } + } + + check_start_polling (info); +} + +#define MM_DBUS_INTERFACE_MODEM_GSM_CARD "org.freedesktop.ModemManager.Modem.Gsm.Card" + +static void +unlock_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GHashTable *props = NULL; + + if (dbus_g_proxy_end_call (proxy, call, &error, + DBUS_TYPE_G_MAP_OF_VARIANT, &props, + G_TYPE_INVALID)) { + GHashTableIter iter; + const char *prop_name; + GValue *value; + + g_hash_table_iter_init (&iter, props); + while (g_hash_table_iter_next (&iter, (gpointer) &prop_name, (gpointer) &value)) { + if ((strcmp (prop_name, "UnlockRequired") == 0) && G_VALUE_HOLDS_STRING (value)) { + g_free (info->unlock_required); + info->unlock_required = parse_unlock_required (value); + } + + if ((strcmp (prop_name, "DeviceIdentifier") == 0) && G_VALUE_HOLDS_STRING (value)) { + g_free (info->devid); + info->devid = g_value_dup_string (value); + } + } + g_hash_table_destroy (props); + + /* Get SIM card identifier */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + simid_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM_GSM_CARD, + G_TYPE_STRING, "SimIdentifier", + G_TYPE_INVALID); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static void +access_tech_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_UINT (&value)) { + info->act = g_value_get_uint (&value); + applet_schedule_update_icon (info->applet); + } + g_value_unset (&value); + } + g_clear_error (&error); +} + +static gboolean +gsm_poll_cb (gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + + /* MM might have just sent an unsolicited update, in which case we just + * skip this poll and wait till the next one. + */ + + if (!info->skip_reg_poll) { + dbus_g_proxy_begin_call (info->net_proxy, "GetRegistrationInfo", + reg_info_reply, info, NULL, + G_TYPE_INVALID); + info->skip_reg_poll = FALSE; + } + + if (!info->skip_signal_poll) { + dbus_g_proxy_begin_call (info->net_proxy, "GetSignalQuality", + signal_reply, info, NULL, + G_TYPE_INVALID); + info->skip_signal_poll = FALSE; + } + + return TRUE; /* keep running until we're told to stop */ +} + +static void +check_start_polling (GsmDeviceInfo *info) +{ + NMDeviceState state; + gboolean poll = TRUE; + + g_return_if_fail (info != NULL); + + /* Don't poll if any of the following are true: + * + * 1) NM says the device is not available + * 2) the modem requires an unlock code + * 3) the modem isn't enabled + */ + + state = nm_device_get_state (info->device); + if ( (state <= NM_DEVICE_STATE_UNAVAILABLE) + || info->unlock_required + || (info->modem_enabled == FALSE)) + poll = FALSE; + + if (poll) { + if (!info->poll_id) { + /* 33 seconds to be just a bit more than MM's poll interval, so + * that if we get an unsolicited update from MM between polls we'll + * skip the next poll. + */ + info->poll_id = g_timeout_add_seconds (33, gsm_poll_cb, info); + } + gsm_poll_cb (info); + } else { + if (info->poll_id) + g_source_remove (info->poll_id); + info->poll_id = 0; + info->skip_reg_poll = FALSE; + info->skip_signal_poll = FALSE; + } +} + +static void +reg_info_changed_cb (DBusGProxy *proxy, + guint32 reg_state, + const char *op_code, + const char *op_name, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + guint32 new_state = reg_state + 1; + + if (info->reg_state != new_state) { + info->reg_state = new_state; + notify_user_of_gsm_reg_change (info); + } + + g_free (info->op_code); + info->op_code = strlen (op_code) ? g_strdup (op_code) : NULL; + g_free (info->op_name); + info->op_name = parse_op_name (info, op_name, info->op_code); + info->skip_reg_poll = TRUE; + +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (info->applet); +#endif /* ENABLE_INDICATOR */ +} + +static void +signal_quality_changed_cb (DBusGProxy *proxy, + guint32 quality, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + + info->quality = quality; + info->quality_valid = TRUE; + info->skip_signal_poll = TRUE; + + applet_schedule_update_icon (info->applet); +} + +#define MM_DBUS_INTERFACE_MODEM "org.freedesktop.ModemManager.Modem" +#define MM_DBUS_INTERFACE_MODEM_GSM_NETWORK "org.freedesktop.ModemManager.Modem.Gsm.Network" + +static void +modem_properties_changed (DBusGProxy *proxy, + const char *interface, + GHashTable *props, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GValue *value; + + if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM)) { + value = g_hash_table_lookup (props, "UnlockRequired"); + if (value && G_VALUE_HOLDS_STRING (value)) { + g_free (info->unlock_required); + info->unlock_required = parse_unlock_required (value); + check_start_polling (info); + } + + value = g_hash_table_lookup (props, "Enabled"); + if (value && G_VALUE_HOLDS_BOOLEAN (value)) { + info->modem_enabled = g_value_get_boolean (value); + if (!info->modem_enabled) { + info->quality = 0; + info->quality_valid = 0; + info->reg_state = 0; + info->act = 0; + g_free (info->op_code); + info->op_code = NULL; + g_free (info->op_name); + info->op_name = NULL; + } + check_start_polling (info); + } + } else if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM_GSM_NETWORK)) { + value = g_hash_table_lookup (props, "AccessTechnology"); + if (value && G_VALUE_HOLDS_UINT (value)) { + info->act = g_value_get_uint (value); + applet_schedule_update_icon (info->applet); + } + } +} + +static void +gsm_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceModem *modem = NM_DEVICE_MODEM (device); + GsmDeviceInfo *info; + const char *udi; + DBusGConnection *bus; + GError *error = NULL; + + udi = nm_device_get_udi (device); + if (!udi) + return; + + bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); + if (!bus) { + g_warning ("%s: failed to connect to D-Bus: (%d) %s", __func__, error->code, error->message); + g_clear_error (&error); + return; + } + + info = g_malloc0 (sizeof (GsmDeviceInfo)); + info->applet = applet; + info->device = device; + info->bus = bus; + + info->props_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.DBus.Properties"); + if (!info->props_proxy) { + g_message ("%s: failed to create D-Bus properties proxy.", __func__); + gsm_device_info_free (info); + return; + } + + info->card_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.ModemManager.Modem.Gsm.Card"); + if (!info->card_proxy) { + g_message ("%s: failed to create GSM Card proxy.", __func__); + gsm_device_info_free (info); + return; + } + + info->net_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + MM_DBUS_INTERFACE_MODEM_GSM_NETWORK); + if (!info->net_proxy) { + g_message ("%s: failed to create GSM Network proxy.", __func__); + gsm_device_info_free (info); + return; + } + + g_object_set_data_full (G_OBJECT (modem), "devinfo", info, gsm_device_info_free); + + /* Registration info signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__UINT_STRING_STRING, + G_TYPE_NONE, + G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->net_proxy, "RegistrationInfo", + G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->net_proxy, "RegistrationInfo", + G_CALLBACK (reg_info_changed_cb), info, NULL); + + /* Signal quality change signal */ + dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->net_proxy, "SignalQuality", G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->net_proxy, "SignalQuality", + G_CALLBACK (signal_quality_changed_cb), info, NULL); + + /* Modem property change signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__STRING_BOXED, + G_TYPE_NONE, G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, + G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->props_proxy, "MmPropertiesChanged", + G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->props_proxy, "MmPropertiesChanged", + G_CALLBACK (modem_properties_changed), + info, NULL); + + /* Ask whether the device needs to be unlocked */ + dbus_g_proxy_begin_call (info->props_proxy, "GetAll", + unlock_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_INVALID); + + /* Ask whether the device is enabled */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + enabled_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_STRING, "Enabled", + G_TYPE_INVALID); + + dbus_g_proxy_begin_call (info->props_proxy, "Get", + access_tech_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM_GSM_NETWORK, + G_TYPE_STRING, "AccessTechnology", + G_TYPE_INVALID); +} + +NMADeviceClass * +applet_device_gsm_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = gsm_new_auto_connection; + dclass->add_menu_item = gsm_add_menu_item; + dclass->device_state_changed = gsm_device_state_changed; + dclass->get_icon = gsm_get_icon; + dclass->get_secrets = gsm_get_secrets; + dclass->secrets_request_size = sizeof (NMGsmSecretsInfo); + dclass->device_added = gsm_device_added; + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet-device-wifi.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet-device-wifi.c --- network-manager-applet-0.9.4.1/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet-device-wifi.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet-device-wifi.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,2012 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-wifi.h" +#include "ap-menu-item.h" +#include "utils.h" +#include "nm-wifi-dialog.h" +#include "nm-ui-utils.h" + +#define ACTIVE_AP_TAG "active-ap" + +static void wifi_dialog_response_cb (GtkDialog *dialog, gint response, gpointer user_data); + +static void nag_dialog_response_cb (GtkDialog *nag_dialog, gint response, gpointer user_data); + +static NMAccessPoint *update_active_ap (NMDevice *device, NMDeviceState state, NMApplet *applet); + +static void _do_new_auto_connection (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap, + AppletNewAutoConnectionCallback callback, + gpointer callback_data); + +static void +show_ignore_focus_stealing_prevention (GtkWidget *widget) +{ + GdkWindow *window; + + gtk_widget_realize (widget); + gtk_widget_show (widget); + window = gtk_widget_get_window (widget); + gtk_window_present_with_time (GTK_WINDOW (widget), gdk_x11_get_server_time (window)); +} + +gboolean +applet_wifi_connect_to_hidden_network (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = nma_wifi_dialog_new_for_other (applet->nm_client, applet->settings); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (wifi_dialog_response_cb), + applet); + show_ignore_focus_stealing_prevention (dialog); + } + return !!dialog; +} + +void +nma_menu_add_hidden_network_item (GtkWidget *menu, NMApplet *applet) +{ + GtkWidget *menu_item; + GtkWidget *label; + + menu_item = gtk_menu_item_new (); + label = gtk_label_new_with_mnemonic (_("_Connect to Hidden Wi-Fi Network...")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_container_add (GTK_CONTAINER (menu_item), label); + gtk_widget_show_all (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_swapped (menu_item, "activate", + G_CALLBACK (applet_wifi_connect_to_hidden_network), + applet); +} + +gboolean +applet_wifi_can_create_wifi_network (NMApplet *applet) +{ + gboolean disabled, allowed = FALSE; + NMClientPermissionResult perm; + + /* FIXME: check WIFI_SHARE_PROTECTED too, and make the wifi dialog + * handle the permissions as well so that admins can restrict open network + * creation separately from protected network creation. + */ + perm = nm_client_get_permission_result (applet->nm_client, NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN); + if (perm == NM_CLIENT_PERMISSION_RESULT_YES || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + disabled = g_settings_get_boolean (applet->gsettings, PREF_DISABLE_WIFI_CREATE); + if (!disabled) + allowed = TRUE; + } + return allowed; +} + +gboolean +applet_wifi_create_wifi_network (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = nma_wifi_dialog_new_for_create (applet->nm_client, applet->settings); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (wifi_dialog_response_cb), + applet); + show_ignore_focus_stealing_prevention (dialog); + } + return !!dialog; +} + +void +nma_menu_add_create_network_item (GtkWidget *menu, NMApplet *applet) +{ + GtkWidget *menu_item; + GtkWidget *label; + + menu_item = gtk_menu_item_new (); + label = gtk_label_new_with_mnemonic (_("Create _New Wi-Fi Network...")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_container_add (GTK_CONTAINER (menu_item), label); + gtk_widget_show_all (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_swapped (menu_item, "activate", + G_CALLBACK (applet_wifi_create_wifi_network), + applet); + + if (!applet_wifi_can_create_wifi_network (applet)) + gtk_widget_set_sensitive (GTK_WIDGET (menu_item), FALSE); +} + +static void +dbus_8021x_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMAccessPoint *ap; +} Dbus8021xInfo; + +static void +dbus_connect_8021x_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus8021xInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + nm_object_get_path (NM_OBJECT (info->ap)), + dbus_8021x_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + g_object_unref (info->ap); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +gboolean +applet_wifi_connect_to_8021x_network (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap) +{ + Dbus8021xInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + info->ap = g_object_ref (ap); + + _do_new_auto_connection (applet, device, ap, dbus_connect_8021x_cb, info); + return TRUE; +} + + +typedef struct { + NMApplet *applet; + NMDeviceWifi *device; + NMAccessPoint *ap; + NMConnection *connection; +} WifiMenuItemInfo; + +static void +wifi_menu_item_info_destroy (gpointer data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) data; + + g_object_unref (G_OBJECT (info->device)); + g_object_unref (G_OBJECT (info->ap)); + + if (info->connection) + g_object_unref (G_OBJECT (info->connection)); + + g_slice_free (WifiMenuItemInfo, data); +} + +/* + * NOTE: this list should *not* contain networks that you would like to + * automatically roam to like "Starbucks" or "AT&T" or "T-Mobile HotSpot". + */ +static const char *manf_default_ssids[] = { + "linksys", + "linksys-a", + "linksys-g", + "default", + "belkin54g", + "NETGEAR", + "o2DSL", + "WLAN", + "ALICE-WLAN", + NULL +}; + +static gboolean +is_ssid_in_list (const GByteArray *ssid, const char **list) +{ + while (*list) { + if (ssid->len == strlen (*list)) { + if (!memcmp (*list, ssid->data, ssid->len)) + return TRUE; + } + list++; + } + return FALSE; +} + +static gboolean +is_manufacturer_default_ssid (const GByteArray *ssid) +{ + return is_ssid_in_list (ssid, manf_default_ssids); +} + +static char * +get_ssid_utf8 (NMAccessPoint *ap) +{ + char *ssid_utf8 = NULL; + const GByteArray *ssid; + + if (ap) { + ssid = nm_access_point_get_ssid (ap); + if (ssid) + ssid_utf8 = nm_utils_ssid_to_utf8 (ssid); + } + if (!ssid_utf8) + ssid_utf8 = g_strdup (_("(none)")); + + return ssid_utf8; +} + +/* List known trojan networks that should never be shown to the user */ +static const char *blacklisted_ssids[] = { + /* http://www.npr.org/templates/story/story.php?storyId=130451369 */ + "Free Public WiFi", + NULL +}; + +static gboolean +is_blacklisted_ssid (const GByteArray *ssid) +{ + return is_ssid_in_list (ssid, blacklisted_ssids); +} + +#ifdef ENABLE_INDICATOR +static void +clear_dupes_list (GSList *list) +{ + g_slist_foreach (list, (GFunc) g_free, NULL); + g_slist_free (list); +} + +static gboolean +get_ap_is_encrypted (NMAccessPoint *ap) +{ + guint32 ap_flags, ap_wpa, ap_rsn; + + ap_flags = nm_access_point_get_flags (ap); + ap_wpa = nm_access_point_get_wpa_flags (ap); + ap_rsn = nm_access_point_get_rsn_flags (ap); + + if ((ap_flags & NM_802_11_AP_FLAGS_PRIVACY) || ap_wpa || ap_rsn) + return TRUE; + + return FALSE; +} + +static void +ap_menu_item_set_sensitive (GtkWidget *item, NMAccessPoint *ap, guint32 dev_caps) +{ + gboolean is_adhoc = FALSE; + guint32 ap_flags, ap_wpa, ap_rsn; + + ap_flags = nm_access_point_get_flags (ap); + ap_wpa = nm_access_point_get_wpa_flags (ap); + ap_rsn = nm_access_point_get_rsn_flags (ap); + + if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) + is_adhoc = TRUE; + + /* Don't enable the menu item the device can't even connect to the AP */ + if ( !nm_utils_security_valid (NMU_SEC_NONE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_WPA_ENTERPRISE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + } +} + +static gchar * +get_best_icon_name_for_ap (NMAccessPoint *ap, gboolean need_sec, gboolean encrypted) +{ + GString *icon_name = NULL; + gchar *tmp = NULL; + guint32 strength; + + g_return_val_if_fail (NM_IS_ACCESS_POINT (ap), NULL); + + strength = nm_access_point_get_strength (ap); + strength = CLAMP (strength, 0, 100); + + icon_name = g_string_new (""); + if (strength > 80) + icon_name = g_string_assign (icon_name, "nm-signal-100"); + else if (strength > 55) + icon_name = g_string_assign (icon_name, "nm-signal-75"); + else if (strength > 30) + icon_name = g_string_assign (icon_name, "nm-signal-50"); + else if (strength > 5) + icon_name = g_string_assign (icon_name, "nm-signal-25"); + else + icon_name = g_string_assign (icon_name, "nm-signal-00"); + + if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) { + icon_name = g_string_assign (icon_name, "nm-adhoc"); + goto out; + } + + if (need_sec && encrypted) + icon_name = g_string_append (icon_name, "-secure"); + +out: + tmp = icon_name->str; + g_string_free (icon_name, FALSE); + + return tmp; +} + +static void +set_menu_item_accessible_desc (NMAccessPoint *ap, + GtkMenuItem *item, + gboolean is_encrypted) +{ + guint32 strength; + gchar *ssid = NULL; + GString *icon_desc = NULL; + + g_return_if_fail (NM_IS_ACCESS_POINT (ap)); + + strength = nm_access_point_get_strength (ap); + strength = CLAMP (strength, 0, 100); + + ssid = g_strdup (gtk_menu_item_get_label (item)); + + if (ssid == NULL) + return; + + icon_desc = g_string_new (""); + g_string_append_printf (icon_desc, "%s: ", ssid); + + if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) { + icon_desc = g_string_append (icon_desc, _("ad-hoc")); + goto out; + } + + g_string_append_printf (icon_desc, "%d%%", strength); + + if (is_encrypted) { + icon_desc = g_string_append (icon_desc, ", "); + icon_desc = g_string_append (icon_desc, _("secure.")); + } + +out: + atk_object_set_name (gtk_widget_get_accessible (GTK_WIDGET (item)), icon_desc->str); + g_free (ssid); + g_string_free (icon_desc, TRUE); +} +#endif + +static void +clamp_ap_to_bssid (NMAccessPoint *ap, NMSettingWireless *s_wifi) +{ + const char *str_bssid; + struct ether_addr *eth_addr; + GByteArray *bssid; + + /* For a certain list of known ESSIDs which are commonly preset by ISPs + * and manufacturers and often unchanged by users, lock the connection + * to the BSSID so that we don't try to auto-connect to your grandma's + * neighbor's WiFi. + */ + + str_bssid = nm_access_point_get_hw_address (ap); + if (str_bssid) { + eth_addr = ether_aton (str_bssid); + if (eth_addr) { + bssid = g_byte_array_sized_new (ETH_ALEN); + g_byte_array_append (bssid, eth_addr->ether_addr_octet, ETH_ALEN); + g_object_set (G_OBJECT (s_wifi), + NM_SETTING_WIRELESS_BSSID, bssid, + NULL); + g_byte_array_free (bssid, TRUE); + } + } +} + +typedef struct { + NMApplet *applet; + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} MoreInfo; + +static void +more_info_wifi_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (foo); + MoreInfo *info = user_data; + NMConnection *connection = NULL; + NMDevice *device = NULL; + NMAccessPoint *ap = NULL; + + if (response != GTK_RESPONSE_OK) { + info->callback (NULL, FALSE, TRUE, info->callback_data); + goto done; + } + + if (!nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *nag_dialog; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + nag_dialog = nma_wifi_dialog_nag_user (dialog); + if (nag_dialog) { + gtk_window_set_transient_for (GTK_WINDOW (nag_dialog), GTK_WINDOW (dialog)); + g_signal_connect (nag_dialog, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + /* nma_wifi_dialog_get_connection() returns a connection with the + * refcount incremented, so the caller must remember to unref it. + */ + connection = nma_wifi_dialog_get_connection (dialog, &device, &ap); + g_assert (connection); + g_assert (device); + + info->callback (connection, TRUE, FALSE, info->callback_data); + + /* Balance nma_wifi_dialog_get_connection() */ + g_object_unref (connection); + +done: + g_free (info); + gtk_widget_hide (GTK_WIDGET (dialog)); + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static void +_do_new_auto_connection (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMConnection *connection = NULL; + NMSettingConnection *s_con = NULL; + NMSettingWireless *s_wifi = NULL; + NMSettingWirelessSecurity *s_wsec = NULL; + NMSetting8021x *s_8021x = NULL; + const GByteArray *ssid; + NM80211ApSecurityFlags wpa_flags, rsn_flags; + GtkWidget *dialog; + MoreInfo *more_info; + char *uuid; + + g_assert (applet); + g_assert (device); + g_assert (ap); + + connection = nm_connection_new (); + + ssid = nm_access_point_get_ssid (ap); + if ( (nm_access_point_get_mode (ap) == NM_802_11_MODE_INFRA) + && (is_manufacturer_default_ssid (ssid) == TRUE)) { + + /* Lock connection to this AP if it's a manufacturer-default SSID + * so that we don't randomly connect to some other 'linksys' + */ + s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); + clamp_ap_to_bssid (ap, s_wifi); + nm_connection_add_setting (connection, NM_SETTING (s_wifi)); + } + + /* If the AP is WPA[2]-Enterprise then we need to set up a minimal 802.1x + * setting and ask the user for more information. + */ + rsn_flags = nm_access_point_get_rsn_flags (ap); + wpa_flags = nm_access_point_get_wpa_flags (ap); + if ( (rsn_flags & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + || (wpa_flags & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + + /* Need a UUID for the "always ask" stuff in the Dialog of Doom */ + s_con = (NMSettingConnection *) nm_setting_connection_new (); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, NM_SETTING_CONNECTION_UUID, uuid, NULL); + g_free (uuid); + nm_connection_add_setting (connection, NM_SETTING (s_con)); + + if (!s_wifi) { + s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); + nm_connection_add_setting (connection, NM_SETTING (s_wifi)); + } + g_object_set (s_wifi, + NM_SETTING_WIRELESS_SSID, ssid, + NM_SETTING_WIRELESS_SEC, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, + NULL); + + s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new (); + g_object_set (s_wsec, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-eap", NULL); + nm_connection_add_setting (connection, NM_SETTING (s_wsec)); + + s_8021x = (NMSetting8021x *) nm_setting_802_1x_new (); + nm_setting_802_1x_add_eap_method (s_8021x, "ttls"); + g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_AUTH, "mschapv2", NULL); + nm_connection_add_setting (connection, NM_SETTING (s_8021x)); + } + + /* If it's an 802.1x connection, we need more information, so pop up the + * Dialog Of Doom. + */ + if (s_8021x) { + more_info = g_malloc0 (sizeof (*more_info)); + more_info->applet = applet; + more_info->callback = callback; + more_info->callback_data = callback_data; + + dialog = nma_wifi_dialog_new (applet->nm_client, applet->settings, connection, device, ap, FALSE); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (more_info_wifi_dialog_response_cb), + more_info); + show_ignore_focus_stealing_prevention (dialog); + } + } else { + /* Everything else can just get activated right away */ + callback (connection, TRUE, FALSE, callback_data); + } +} + +static gboolean +wifi_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) dclass_data; + + g_return_val_if_fail (device != NULL, FALSE); + g_return_val_if_fail (info->ap != NULL, FALSE); + + _do_new_auto_connection (info->applet, device, info->ap, callback, callback_data); + return TRUE; +} + + +static void +wifi_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) user_data; + const char *specific_object = NULL; + + if (info->ap) + specific_object = nm_object_get_path (NM_OBJECT (info->ap)); + applet_menu_item_activate_helper (NM_DEVICE (info->device), + info->connection, + specific_object ? specific_object : "/", + info->applet, + user_data); +} + +struct dup_data { + NMDevice *device; +#ifndef ENABLE_INDICATOR + NMNetworkMenuItem *found; +#else + GtkWidget *found; +#endif + char *hash; +}; + +static void +find_duplicate (gpointer d, gpointer user_data) +{ + struct dup_data * data = (struct dup_data *) user_data; + NMDevice *device; + const char *hash; + GtkWidget *widget = GTK_WIDGET (d); + + g_assert (d && widget); + g_return_if_fail (data); + g_return_if_fail (data->hash); + +#ifndef ENABLE_INDICATOR + if (data->found || !NM_IS_NETWORK_MENU_ITEM (widget)) + return; +#else + if (data->found || !GTK_IS_IMAGE_MENU_ITEM (widget)) + return; +#endif + + device = g_object_get_data (G_OBJECT (widget), "device"); + if (NM_DEVICE (device) != data->device) + return; + +#ifndef ENABLE_INDICATOR + hash = nm_network_menu_item_get_hash (NM_NETWORK_MENU_ITEM (widget)); + if (hash && (strcmp (hash, data->hash) == 0)) + data->found = NM_NETWORK_MENU_ITEM (widget); +#else + hash = g_object_get_data (G_OBJECT (widget), "hash"); + if (hash && (strcmp (hash, data->hash) == 0)) + data->found = widget; +#endif /* ENABLE_INDICATOR */ +} + +#ifndef ENABLE_INDICATOR +static NMNetworkMenuItem * +#else +static GtkImageMenuItem * +#endif +create_new_ap_item (NMDeviceWifi *device, + NMAccessPoint *ap, + struct dup_data *dup_data, + GSList *connections, + NMApplet *applet) +{ + WifiMenuItemInfo *info; + GSList *iter; +#ifndef ENABLE_INDICATOR + NMNetworkMenuItem *item = NULL; +#else + GtkWidget *item = NULL; + char *text, *best_icon_name; + const char *path; + GtkWidget *icon_image; + gboolean encrypted, ad_hoc; + GSList *dupes; +#endif /* ENABLE_INDICATOR */ + GSList *dev_connections = NULL; + GSList *ap_connections = NULL; + const GByteArray *ssid; + guint32 dev_caps; + + dev_connections = nm_device_filter_connections (NM_DEVICE (device), connections); + ap_connections = nm_access_point_filter_connections (ap, dev_connections); + g_slist_free (dev_connections); + dev_connections = NULL; + + ssid = nm_access_point_get_ssid (ap); + dev_caps = nm_device_wifi_get_capabilities (device); + +#ifndef ENABLE_INDICATOR + item = NM_NETWORK_MENU_ITEM (nm_network_menu_item_new (dup_data->hash, + !!g_slist_length (ap_connections))); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + + nm_network_menu_item_set_ssid (item, (GByteArray *) ssid); + + nma_icon_check_and_load ("nm-adhoc", &applet->adhoc_icon, applet); + nm_network_menu_item_set_detail (item, ap, applet->adhoc_icon, dev_caps); + nm_network_menu_item_best_strength (item, nm_access_point_get_strength (ap), applet); + nm_network_menu_item_add_dupe (item, ap); +#else + text = nm_utils_ssid_to_utf8 (ssid); + if (!text) { + // Avoid any cases where the SSID could possibly end up undefined. + text = g_strdup (""); + } + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + + encrypted = get_ap_is_encrypted (ap); + ad_hoc = nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC; + + best_icon_name = get_best_icon_name_for_ap (ap, TRUE, encrypted); + icon_image = gtk_image_new_from_icon_name (best_icon_name, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (best_icon_name); + + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), icon_image); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + + path = nm_object_get_path (NM_OBJECT (ap)); + dupes = g_slist_append (dupes, g_strdup (path)); + g_object_set_data_full (G_OBJECT (item), "dupes", (gpointer) dupes, (GDestroyNotify) clear_dupes_list); + g_object_set_data (G_OBJECT (item), "encrypted", (gpointer) encrypted); + g_object_set_data (G_OBJECT (item), "ad-hoc", (gpointer) ad_hoc); + g_object_set_data (G_OBJECT (item), "hash", (gpointer) dup_data->hash); + g_object_set_data (G_OBJECT (item), "has_connections", (gpointer) !!g_slist_length (ap_connections)); + + set_menu_item_accessible_desc (ap, GTK_MENU_ITEM (item), encrypted); + + ap_menu_item_set_sensitive (item, ap, dev_caps); +#endif /* ENABLE_INDICATOR */ + + g_object_set_data (G_OBJECT (item), "device", NM_DEVICE (device)); + + /* If there's only one connection, don't show the submenu */ + if (g_slist_length (ap_connections) > 1) { + GtkWidget *submenu; + + submenu = gtk_menu_new (); + + for (iter = ap_connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + GtkWidget *subitem; + + s_con = nm_connection_get_setting_connection (connection); + subitem = gtk_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); + + info = g_slice_new0 (WifiMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->ap = g_object_ref (G_OBJECT (ap)); + info->connection = g_object_ref (G_OBJECT (connection)); + + g_signal_connect_data (subitem, "activate", + G_CALLBACK (wifi_menu_item_activate), + info, + (GClosureNotify) wifi_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), GTK_WIDGET (subitem)); + } + + gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu); + } else { + NMConnection *connection; + + info = g_slice_new0 (WifiMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->ap = g_object_ref (G_OBJECT (ap)); + + if (g_slist_length (ap_connections) == 1) { + connection = NM_CONNECTION (g_slist_nth_data (ap_connections, 0)); + info->connection = g_object_ref (G_OBJECT (connection)); + } + + g_signal_connect_data (GTK_WIDGET (item), + "activate", + G_CALLBACK (wifi_menu_item_activate), + info, + (GClosureNotify) wifi_menu_item_info_destroy, + 0); + } + + g_slist_free (ap_connections); + return item; +} + +#ifndef ENABLE_INDICATOR +static NMNetworkMenuItem * +#else +static GtkImageMenuItem * +#endif /* ENABLE_INDICATOR */ +get_menu_item_for_ap (NMDeviceWifi *device, + NMAccessPoint *ap, + GSList *connections, + GSList *menu_list, + NMApplet *applet) +{ + const GByteArray *ssid; + struct dup_data dup_data = { NULL, NULL }; + + /* Don't add BSSs that hide their SSID or are blacklisted */ + ssid = nm_access_point_get_ssid (ap); + if ( !ssid + || nm_utils_is_empty_ssid (ssid->data, ssid->len) + || is_blacklisted_ssid (ssid)) + return NULL; + + /* Find out if this AP is a member of a larger network that all uses the + * same SSID and security settings. If so, we'll already have a menu item + * for this SSID, so just update that item's strength and add this AP to + * menu item's duplicate list. + */ + dup_data.found = NULL; + dup_data.hash = g_object_get_data (G_OBJECT (ap), "hash"); +#ifndef ENABLE_INDICATOR + g_return_val_if_fail (dup_data.hash != NULL, NULL); +#else + /* heh, not much choice here, otherwise on startup we get tons of errors + * because g_return_val_if_fail prints assertion errors. + */ + if (dup_data.hash == NULL) + return NULL; +#endif + + dup_data.device = NM_DEVICE (device); + g_slist_foreach (menu_list, find_duplicate, &dup_data); + + if (dup_data.found) { +#ifndef ENABLE_INDICATOR + nm_network_menu_item_best_strength (dup_data.found, nm_access_point_get_strength (ap), applet); + nm_network_menu_item_add_dupe (dup_data.found, ap); +#else + GSList *dupes = NULL; + const char *path; + + dupes = g_object_steal_data (G_OBJECT (dup_data.found), "dupes"); + path = nm_object_get_path (NM_OBJECT (ap)); + dupes = g_slist_prepend (dupes, g_strdup (path)); + g_object_set_data_full (G_OBJECT (dup_data.found), "dupes", (gpointer) dupes, (GDestroyNotify) clear_dupes_list); +#endif + return NULL; + } + + return create_new_ap_item (device, ap, &dup_data, connections, applet); +} + +static gint +sort_by_name (gconstpointer tmpa, gconstpointer tmpb) +{ +#ifndef ENABLE_INDICATOR + NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); + NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); + const char *a_ssid, *b_ssid; + gboolean a_adhoc, b_adhoc; + int i; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_ssid = nm_network_menu_item_get_ssid (a); + b_ssid = nm_network_menu_item_get_ssid (b); + + if (a_ssid && !b_ssid) + return 1; + if (b_ssid && !a_ssid) + return -1; + + if (a_ssid && b_ssid) { + i = g_ascii_strcasecmp (a_ssid, b_ssid); + if (i != 0) + return i; + } + + /* If the names are the same, sort infrastructure APs first */ + a_adhoc = nm_network_menu_item_get_is_adhoc (a); + b_adhoc = nm_network_menu_item_get_is_adhoc (b); + if (a_adhoc && !b_adhoc) + return 1; + else if (!a_adhoc && b_adhoc) + return -1; + + return 0; +#else + GtkImageMenuItem *a = GTK_IMAGE_MENU_ITEM (tmpa); + GtkImageMenuItem *b = GTK_IMAGE_MENU_ITEM (tmpb); + const char *a_ssid, *b_ssid; + gboolean a_adhoc, b_adhoc; + int i; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_ssid = gtk_menu_item_get_label (GTK_MENU_ITEM (a)); + b_ssid = gtk_menu_item_get_label (GTK_MENU_ITEM (b)); + + if (a_ssid && !b_ssid) + return 1; + if (b_ssid && !a_ssid) + return -1; + + if (a_ssid && b_ssid) { + i = g_ascii_strcasecmp (a_ssid, b_ssid); + if (i != 0) + return i; + } + + /* If the names are the same, sort infrastructure APs first */ + a_adhoc = g_object_get_data (G_OBJECT (a), "ad-hoc"); + b_adhoc = g_object_get_data (G_OBJECT (b), "ad-hoc"); + if (a_adhoc && !b_adhoc) + return 1; + else if (!a_adhoc && b_adhoc) + return -1; + + return 0; +#endif /* ENABLE_INDICATOR */ +} + +/* Sort menu items for the top-level menu: + * 1) whether there's a saved connection or not + * a) sort alphabetically within #1 + * 2) encrypted without a saved connection + * 3) unencrypted without a saved connection + */ +static gint +sort_toplevel (gconstpointer tmpa, gconstpointer tmpb) +{ +#ifndef ENABLE_INDICATOR + NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); + NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); + gboolean a_fave, b_fave; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_fave = nm_network_menu_item_get_has_connections (a); + b_fave = nm_network_menu_item_get_has_connections (b); + + /* Items with a saved connection first */ + if (a_fave && !b_fave) + return -1; + else if (!a_fave && b_fave) + return 1; + else if (!a_fave && !b_fave) { + gboolean a_enc = nm_network_menu_item_get_is_encrypted (a); + gboolean b_enc = nm_network_menu_item_get_is_encrypted (b); + + /* If neither item has a saved connection, sort by encryption */ + if (a_enc && !b_enc) + return -1; + else if (!a_enc && b_enc) + return 1; + } + + /* For all other cases (both have saved connections, both are encrypted, or + * both are unencrypted) just sort by name. + */ + return sort_by_name (a, b); +#else + GtkImageMenuItem *a = GTK_IMAGE_MENU_ITEM (tmpa); + GtkImageMenuItem *b = GTK_IMAGE_MENU_ITEM (tmpb); + gboolean a_fave, b_fave; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_fave = g_object_get_data (G_OBJECT (a), "has_connections"); + b_fave = g_object_get_data (G_OBJECT (b), "has_connections"); + + /* Items with a saved connection first */ + if (a_fave && !b_fave) + return -1; + else if (!a_fave && b_fave) + return 1; + else if (!a_fave && !b_fave) { + gboolean a_enc = g_object_get_data (G_OBJECT (a), "encrypted"); + gboolean b_enc = g_object_get_data (G_OBJECT (b), "encrypted"); + + /* If neither item has a saved connection, sort by encryption */ + if (a_enc && !b_enc) + return -1; + else if (!a_enc && b_enc) + return 1; + } + + /* For all other cases (both have saved connections, both are encrypted, or + * both are unencrypted) just sort by name. + */ + return sort_by_name (a, b); +#endif /* ENABLE_INDICATOR */ +} + +static void +wifi_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + NMDeviceWifi *wdev; + char *text; + const GPtrArray *aps; + int i; + NMAccessPoint *active_ap = NULL; + GSList *connections = NULL, *all, *iter; + gboolean wifi_enabled = TRUE; + gboolean wifi_hw_enabled = TRUE; + GSList *menu_items = NULL; /* All menu items we'll be adding */ +#ifndef ENABLE_INDICATOR + NMNetworkMenuItem *item, *active_item = NULL; +#else + GtkImageMenuItem *item, *active_item = NULL; +#endif /* ENABLE_INDICATOR */ + GtkWidget *widget; + + wdev = NM_DEVICE_WIFI (device); + aps = nm_device_wifi_get_access_points (wdev); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + if (aps && aps->len > 1) + text = g_strdup_printf (_("Wi-Fi Networks (%s)"), desc); + else + text = g_strdup_printf (_("Wi-Fi Network (%s)"), desc); + } else + text = g_strdup (ngettext ("Wi-Fi Network", "Wi-Fi Networks", aps ? aps->len : 0)); + + widget = applet_menu_item_create_device_item_helper (device, applet, text); + g_free (text); + + gtk_widget_set_sensitive (widget, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); + gtk_widget_show (widget); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + /* Add the active AP if we're connected to something and the device is available */ + if (!nma_menu_device_check_unusable (device)) { + active_ap = nm_device_wifi_get_active_access_point (wdev); + if (active_ap) { + active_item = item = get_menu_item_for_ap (wdev, active_ap, connections, NULL, applet); + if (item) { +#ifndef ENABLE_INDICATOR + nm_network_menu_item_set_active (item, TRUE); +#endif + menu_items = g_slist_append (menu_items, item); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + gtk_widget_show_all (GTK_WIDGET (item)); + } + } + } + + /* Notify user of unmanaged or unavailable device */ + wifi_enabled = nm_client_wireless_get_enabled (applet->nm_client); + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + widget = nma_menu_device_get_menu_item (device, applet, + wifi_hw_enabled ? + (wifi_enabled ? NULL : _("Wi-Fi is disabled")) : + _("Wi-Fi is disabled by hardware switch")); + if (widget) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); + gtk_widget_show (widget); + } + + /* If disabled or rfkilled or whatever, nothing left to do */ + if (nma_menu_device_check_unusable (device)) + goto out; + + /* Create menu items for the rest of the APs */ + for (i = 0; aps && (i < aps->len); i++) { + NMAccessPoint *ap = g_ptr_array_index (aps, i); + + item = get_menu_item_for_ap (wdev, ap, connections, menu_items, applet); + if (item) + menu_items = g_slist_append (menu_items, item); + } + + /* Now remove the active AP item from the list, as we've already dealt with + * it. (Needed it when creating menu items for the rest of the APs though + * to ensure duplicate APs are handled correctly) + */ + if (active_item) + menu_items = g_slist_remove (menu_items, active_item); + + /* Sort all the rest of the menu items for the top-level menu */ + menu_items = g_slist_sort (menu_items, sort_toplevel); + + if (g_slist_length (menu_items)) { + GSList *submenu_items = NULL; + GSList *topmenu_items = NULL; + guint32 num_for_toplevel = 5; + + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (menu_items) == (num_for_toplevel + 1)) + num_for_toplevel++; + + /* Add the first 5 APs (or 6 if there are only 6 total) from the sorted + * toplevel list. + */ + for (iter = menu_items; iter && num_for_toplevel; iter = g_slist_next (iter)) { + topmenu_items = g_slist_append (topmenu_items, iter->data); + num_for_toplevel--; + submenu_items = iter->next; + } + topmenu_items = g_slist_sort (topmenu_items, sort_by_name); + + for (iter = topmenu_items; iter; iter = g_slist_next (iter)) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (iter->data)); + gtk_widget_show_all (GTK_WIDGET (iter->data)); + } + g_slist_free (topmenu_items); + topmenu_items = NULL; + + /* If there are any submenu items, make a submenu for those */ + if (submenu_items) { + GtkWidget *subitem, *submenu; + GSList *sorted_subitems; + + subitem = gtk_menu_item_new_with_mnemonic (_("More networks")); + submenu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (subitem), submenu); + + /* Sort the subitems alphabetically */ + sorted_subitems = g_slist_copy (submenu_items); + sorted_subitems = g_slist_sort (sorted_subitems, sort_by_name); + + /* And add the rest to the submenu */ + for (iter = sorted_subitems; iter; iter = g_slist_next (iter)) + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), GTK_WIDGET (iter->data)); + g_slist_free (sorted_subitems); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), subitem); + gtk_widget_show_all (subitem); + } + } + +out: + g_slist_free (menu_items); + g_slist_free (connections); +} + +static void +notify_active_ap_changed_cb (NMDeviceWifi *device, + GParamSpec *pspec, + NMApplet *applet) +{ + NMRemoteConnection *connection; + NMSettingWireless *s_wireless; + NMAccessPoint *new; + const GByteArray *ssid; + NMDeviceState state; + + state = nm_device_get_state (NM_DEVICE (device)); + + new = update_active_ap (NM_DEVICE (device), state, applet); + if (!new || (state != NM_DEVICE_STATE_ACTIVATED)) + return; + + connection = applet_get_exported_connection_for_device (NM_DEVICE (device), applet); + if (!connection) + return; + + s_wireless = nm_connection_get_setting_wireless (NM_CONNECTION (connection)); + if (!s_wireless) + return; + + ssid = nm_access_point_get_ssid (new); + if (!ssid || !nm_utils_same_ssid (nm_setting_wireless_get_ssid (s_wireless), ssid, TRUE)) + return; + + applet_schedule_update_icon (applet); +} + +static void +add_hash_to_ap (NMAccessPoint *ap) +{ + char *hash; + + hash = utils_hash_ap (nm_access_point_get_ssid (ap), + nm_access_point_get_mode (ap), + nm_access_point_get_flags (ap), + nm_access_point_get_wpa_flags (ap), + nm_access_point_get_rsn_flags (ap)); + g_object_set_data_full (G_OBJECT (ap), "hash", hash, (GDestroyNotify) g_free); +} + +static void +notify_ap_prop_changed_cb (NMAccessPoint *ap, + GParamSpec *pspec, + NMApplet *applet) +{ + const char *prop = g_param_spec_get_name (pspec); + + if ( !strcmp (prop, NM_ACCESS_POINT_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_WPA_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_RSN_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_SSID) + || !strcmp (prop, NM_ACCESS_POINT_FREQUENCY) + || !strcmp (prop, NM_ACCESS_POINT_MODE)) { + add_hash_to_ap (ap); + } +} + +static void +wifi_available_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id || strcmp (id, "dont-show")) + return; + + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + TRUE); +} + + +struct ap_notification_data +{ + NMApplet *applet; + NMDeviceWifi *device; + guint id; + gulong last_notification_time; + guint new_con_id; +}; + +/* Scan the list of access points, looking for the case where we have no + * known (i.e. autoconnect) access points, but we do have unknown ones. + * + * If we find one, notify the user. + */ +static gboolean +idle_check_avail_access_point_notification (gpointer datap) +{ + struct ap_notification_data *data = datap; + NMApplet *applet = data->applet; + NMDeviceWifi *device = data->device; + int i; + const GPtrArray *aps; + GSList *all_connections; + GSList *connections; + GTimeVal timeval; + gboolean have_unused_access_point = FALSE; + gboolean have_no_autoconnect_points = TRUE; + + if (nm_client_get_state (data->applet->nm_client) != NM_STATE_DISCONNECTED) + return FALSE; + + if (nm_device_get_state (NM_DEVICE (device)) != NM_DEVICE_STATE_DISCONNECTED) + return FALSE; + + g_get_current_time (&timeval); + if ((timeval.tv_sec - data->last_notification_time) < 60*60) /* Notify at most once an hour */ + return FALSE; + + all_connections = applet_get_all_connections (applet); + connections = nm_device_filter_connections (NM_DEVICE (device), all_connections); + g_slist_free (all_connections); + all_connections = NULL; + + aps = nm_device_wifi_get_access_points (device); + for (i = 0; aps && (i < aps->len); i++) { + NMAccessPoint *ap = aps->pdata[i]; + GSList *ap_connections = nm_access_point_filter_connections (ap, connections); + GSList *iter; + gboolean is_autoconnect = FALSE; + + for (iter = ap_connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (nm_setting_connection_get_autoconnect (s_con)) { + is_autoconnect = TRUE; + break; + } + } + g_slist_free (ap_connections); + + if (!is_autoconnect) + have_unused_access_point = TRUE; + else + have_no_autoconnect_points = FALSE; + } + g_slist_free (connections); + + if (!(have_unused_access_point && have_no_autoconnect_points)) + return FALSE; + + /* Avoid notifying too often */ + g_get_current_time (&timeval); + data->last_notification_time = timeval.tv_sec; + + applet_do_notify (applet, + NOTIFY_URGENCY_LOW, + _("Wi-Fi Networks Available"), + _("Use the network menu to connect to a Wi-Fi network"), + "nm-device-wireless", + "dont-show", + _("Don't show this message again"), + wifi_available_dont_show_cb, + applet); + return FALSE; +} + +static void +queue_avail_access_point_notification (NMDevice *device) +{ + struct ap_notification_data *data; + + data = g_object_get_data (G_OBJECT (device), "notify-wifi-avail-data"); + if (data->id != 0) + return; + + if (g_settings_get_boolean (data->applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + return; + + data->id = g_timeout_add_seconds (3, idle_check_avail_access_point_notification, data); +} + +static void +access_point_added_cb (NMDeviceWifi *device, + NMAccessPoint *ap, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + add_hash_to_ap (ap); + g_signal_connect (G_OBJECT (ap), + "notify", + G_CALLBACK (notify_ap_prop_changed_cb), + applet); + + queue_avail_access_point_notification (NM_DEVICE (device)); +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (applet); +#endif /* ENABLE_INDICATOR */ +} + +static void +access_point_removed_cb (NMDeviceWifi *device, + NMAccessPoint *ap, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMAccessPoint *old; + + /* If this AP was the active AP, make sure ACTIVE_AP_TAG gets cleared from + * its device. + */ + old = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + if (old == ap) { + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); + applet_schedule_update_icon (applet); +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (applet); +#endif /* ENABLE_INDICATOR */ + } +} + +static void +on_new_connection (NMRemoteSettings *settings, + NMRemoteConnection *connection, + gpointer datap) +{ + struct ap_notification_data *data = datap; + queue_avail_access_point_notification (NM_DEVICE (data->device)); +} + +static void +free_ap_notification_data (gpointer user_data) +{ + struct ap_notification_data *data = user_data; + NMRemoteSettings *settings = applet_get_settings (data->applet); + + if (data->id) + g_source_remove (data->id); + + if (settings) + g_signal_handler_disconnect (settings, data->new_con_id); + memset (data, 0, sizeof (*data)); + g_free (data); +} + +static void +wifi_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceWifi *wdev = NM_DEVICE_WIFI (device); + const GPtrArray *aps; + int i; + struct ap_notification_data *data; + guint id; + + g_signal_connect (wdev, + "notify::" NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT, + G_CALLBACK (notify_active_ap_changed_cb), + applet); + + g_signal_connect (wdev, + "access-point-added", + G_CALLBACK (access_point_added_cb), + applet); + + g_signal_connect (wdev, + "access-point-removed", + G_CALLBACK (access_point_removed_cb), + applet); + + /* Now create the per-device hooks for watching for available wifi + * connections. + */ + data = g_new0 (struct ap_notification_data, 1); + data->applet = applet; + data->device = wdev; + /* We also need to hook up to the settings to find out when we have new connections + * that might be candididates. Keep the ID around so we can disconnect + * when the device is destroyed. + */ + id = g_signal_connect (applet_get_settings (applet), + NM_REMOTE_SETTINGS_NEW_CONNECTION, + G_CALLBACK (on_new_connection), + data); + data->new_con_id = id; + g_object_set_data_full (G_OBJECT (wdev), "notify-wifi-avail-data", + data, free_ap_notification_data); + + queue_avail_access_point_notification (device); + + /* Hash all APs this device knows about */ + aps = nm_device_wifi_get_access_points (wdev); + for (i = 0; aps && (i < aps->len); i++) + add_hash_to_ap (g_ptr_array_index (aps, i)); +} + +static void +bssid_strength_changed (NMAccessPoint *ap, GParamSpec *pspec, gpointer user_data) +{ + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static NMAccessPoint * +update_active_ap (NMDevice *device, NMDeviceState state, NMApplet *applet) +{ + NMAccessPoint *new = NULL, *old; + + if (state == NM_DEVICE_STATE_PREPARE || + state == NM_DEVICE_STATE_CONFIG || + state == NM_DEVICE_STATE_IP_CONFIG || + state == NM_DEVICE_STATE_NEED_AUTH || + state == NM_DEVICE_STATE_ACTIVATED) { + new = nm_device_wifi_get_active_access_point (NM_DEVICE_WIFI (device)); + } + + old = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + if (new && (new == old)) + return new; /* no change */ + + if (old) { + g_signal_handlers_disconnect_by_func (old, G_CALLBACK (bssid_strength_changed), applet); + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); + } + + if (new) { + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, new); + + /* monitor this AP's signal strength for updating the applet icon */ + g_signal_connect (new, + "notify::" NM_ACCESS_POINT_STRENGTH, + G_CALLBACK (bssid_strength_changed), + applet); + } + + return new; +} + +static void +wifi_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + NMAccessPoint *new = NULL; + char *esc_ssid = NULL; + + new = update_active_ap (device, new_state, applet); + + if (new_state == NM_DEVICE_STATE_DISCONNECTED) + queue_avail_access_point_notification (device); + + if (new_state != NM_DEVICE_STATE_ACTIVATED) + return; + + esc_ssid = get_ssid_utf8 (new); + g_object_set_data_full (G_OBJECT(device), "canonical-last-essid", g_strdup (esc_ssid), (GDestroyNotify) g_free); + applet_do_notify_with_pref (applet, + esc_ssid ? esc_ssid : _("(none)"), + _("Connection Established"), + "nm-device-wireless", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (esc_ssid); +} + +static void +wifi_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + NMAccessPoint *ap; + const char *id; + char *ssid = NULL; + + ap = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing Wi-Fi network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring Wi-Fi network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for Wi-Fi network '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a Wi-Fi network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + if (ap) { + guint32 strength; + + strength = nm_access_point_get_strength (ap); + strength = CLAMP (strength, 0, 100); + + if (strength > 80) + *out_pixbuf = nma_icon_check_and_load ("nm-signal-100", &applet->wifi_100_icon, applet); + else if (strength > 55) + *out_pixbuf = nma_icon_check_and_load ("nm-signal-75", &applet->wifi_75_icon, applet); + else if (strength > 30) + *out_pixbuf = nma_icon_check_and_load ("nm-signal-50", &applet->wifi_50_icon, applet); + else if (strength > 5) + *out_pixbuf = nma_icon_check_and_load ("nm-signal-25", &applet->wifi_25_icon, applet); + else + *out_pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); + + *out_indicator_icon = get_best_icon_name_for_ap (ap, FALSE, FALSE); + + ssid = get_ssid_utf8 (ap); + *tip = g_strdup_printf (_("Wi-Fi network connection '%s' active: %s (%d%%)"), + id, ssid, strength); + g_free (ssid); + } else { + *out_indicator_icon = g_strdup_printf ("nm-signal-00"); + *out_pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); + *tip = g_strdup_printf (_("Wi-Fi network connection '%s' active"), id); + } + break; + default: + break; + } + + if (out_pixbuf && *out_pixbuf) + g_object_ref (*out_pixbuf); +} + +static gboolean +wifi_dialog_close (gpointer user_data) +{ + GtkWidget *dialog = GTK_WIDGET (user_data); + + gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); + return FALSE; +} + +static void +wifi_dialog_destroyed (gpointer data, GObject *dialog_ptr) +{ + /* remove the idle function; for not to call wifi_dialog_close() on invalid pointer */ + g_idle_remove_by_data (dialog_ptr); +} + +static void +nag_dialog_response_cb (GtkDialog *nag_dialog, + gint response, + gpointer user_data) +{ + NMAWifiDialog *wifi_dialog = NMA_WIFI_DIALOG (user_data); + + if (response == GTK_RESPONSE_NO) { /* user opted not to correct the warning */ + nma_wifi_dialog_set_nag_ignored (wifi_dialog, TRUE); + g_idle_add (wifi_dialog_close, wifi_dialog); + g_object_weak_ref (G_OBJECT (wifi_dialog), wifi_dialog_destroyed, NULL); + } +} + + +static void +activate_existing_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +activate_new_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add new connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +wifi_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (foo); + NMApplet *applet = NM_APPLET (user_data); + NMConnection *connection = NULL, *fuzzy_match = NULL; + NMDevice *device = NULL; + NMAccessPoint *ap = NULL; + GSList *all, *iter; + + if (response != GTK_RESPONSE_OK) + goto done; + + if (!nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *nag_dialog; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + nag_dialog = nma_wifi_dialog_nag_user (dialog); + if (nag_dialog) { + gtk_window_set_transient_for (GTK_WINDOW (nag_dialog), GTK_WINDOW (dialog)); + g_signal_connect (nag_dialog, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + /* nma_wifi_dialog_get_connection() returns a connection with the + * refcount incremented, so the caller must remember to unref it. + */ + connection = nma_wifi_dialog_get_connection (dialog, &device, &ap); + g_assert (connection); + g_assert (device); + + /* Find a similar connection and use that instead */ + all = applet_get_all_connections (applet); + for (iter = all; iter; iter = g_slist_next (iter)) { + if (nm_connection_compare (connection, + NM_CONNECTION (iter->data), + (NM_SETTING_COMPARE_FLAG_FUZZY | NM_SETTING_COMPARE_FLAG_IGNORE_ID))) { + fuzzy_match = NM_CONNECTION (iter->data); + break; + } + } + g_slist_free (all); + + if (fuzzy_match) { + nm_client_activate_connection (applet->nm_client, + fuzzy_match, + device, + ap ? nm_object_get_path (NM_OBJECT (ap)) : NULL, + activate_existing_cb, + applet); + } else { + NMSetting *s_con; + NMSettingWireless *s_wifi = NULL; + const char *mode = NULL; + + /* Entirely new connection */ + + /* Don't autoconnect adhoc networks by default for now */ + s_wifi = nm_connection_get_setting_wireless (connection); + if (s_wifi) + mode = nm_setting_wireless_get_mode (s_wifi); + if (g_strcmp0 (mode, "adhoc") == 0) { + s_con = nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION); + if (!s_con) { + s_con = nm_setting_connection_new (); + nm_connection_add_setting (connection, s_con); + } + g_object_set (G_OBJECT (s_con), NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, NULL); + } + + nm_client_add_and_activate_connection (applet->nm_client, + connection, + device, + ap ? nm_object_get_path (NM_OBJECT (ap)) : NULL, + activate_new_cb, + applet); + } + + /* Balance nma_wifi_dialog_get_connection() */ + g_object_unref (connection); + +done: + gtk_widget_hide (GTK_WIDGET (dialog)); + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static gboolean +add_one_setting (GHashTable *settings, + NMConnection *connection, + NMSetting *setting, + GError **error) +{ + GHashTable *secrets; + + g_return_val_if_fail (settings != NULL, FALSE); + g_return_val_if_fail (connection != NULL, FALSE); + g_return_val_if_fail (setting != NULL, FALSE); + g_return_val_if_fail (error != NULL, FALSE); + g_return_val_if_fail (*error == NULL, FALSE); + + secrets = nm_setting_to_hash (setting, NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + g_hash_table_insert (settings, g_strdup (nm_setting_get_name (setting)), secrets); + } else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, nm_setting_get_name (setting)); + } + + return secrets ? TRUE : FALSE; +} + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkWidget *nag_dialog; +} NMWifiInfo; + +static void +free_wifi_info (SecretsRequest *req) +{ + NMWifiInfo *info = (NMWifiInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } +} + +static void +get_secrets_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMWifiInfo *info = (NMWifiInfo *) req; + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (info->dialog); + NMConnection *connection = NULL; + NMSettingWirelessSecurity *s_wireless_sec; + GHashTable *settings = NULL; + const char *key_mgmt, *auth_alg; + GError *error = NULL; + + /* Handle the nag dialog specially; don't want to clear the NMActiveConnection + * destroy handler yet if the main dialog isn't going away. + */ + if ((response == GTK_RESPONSE_OK) && !nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *widget; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + widget = nma_wifi_dialog_nag_user (dialog); + if (widget) { + gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (dialog)); + g_signal_connect (widget, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + if (response != GTK_RESPONSE_OK) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + goto done; + } + + connection = nma_wifi_dialog_get_connection (dialog, NULL, NULL); + if (!connection) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't get connection from Wi-Fi dialog.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* Second-guess which setting NM wants secrets for. */ + s_wireless_sec = nm_connection_get_setting_wireless_security (connection); + if (!s_wireless_sec) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): requested setting '802-11-wireless-security'" + " didn't exist in the connection.", + __FILE__, __LINE__, __func__); + goto done; /* Unencrypted */ + } + + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, (GDestroyNotify) g_hash_table_destroy); + if (!settings) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): not enough memory to return secrets.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* If the user chose an 802.1x-based auth method, return 802.1x secrets, + * not wireless secrets. Can happen with Dynamic WEP, because NM doesn't + * know the capabilities of the AP (since Dynamic WEP APs don't broadcast + * beacons), and therefore defaults to requesting WEP secrets from the + * wireless-security setting, not the 802.1x setting. + */ + key_mgmt = nm_setting_wireless_security_get_key_mgmt (s_wireless_sec); + if (!strcmp (key_mgmt, "ieee8021x") || !strcmp (key_mgmt, "wpa-eap")) { + /* LEAP secrets aren't in the 802.1x setting */ + auth_alg = nm_setting_wireless_security_get_auth_alg (s_wireless_sec); + if (!auth_alg || strcmp (auth_alg, "leap")) { + NMSetting8021x *s_8021x; + + s_8021x = nm_connection_get_setting_802_1x (connection); + if (!s_8021x) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): requested setting '802-1x' didn't" + " exist in the connection.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* Add the 802.1x setting */ + if (!add_one_setting (settings, connection, NM_SETTING (s_8021x), &error)) + goto done; + } + } + + /* Add the 802-11-wireless-security setting no matter what */ + add_one_setting (settings, connection, NM_SETTING (s_wireless_sec), &error); + +done: + applet_secrets_request_complete (req, settings, error); + applet_secrets_request_free (req); + + if (settings) + g_hash_table_destroy (settings); + if (connection) + nm_connection_clear_secrets (connection); +} + +static gboolean +wifi_get_secrets (SecretsRequest *req, GError **error) +{ + NMWifiInfo *info = (NMWifiInfo *) req; + + applet_secrets_request_set_free_func (req, free_wifi_info); + + info->dialog = nma_wifi_dialog_new (req->applet->nm_client, req->applet->settings, req->connection, NULL, NULL, TRUE); + if (info->dialog) { + g_signal_connect (info->dialog, "response", + G_CALLBACK (get_secrets_dialog_response_cb), + info); + show_ignore_focus_stealing_prevention (info->dialog); + } else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't display secrets UI", + __FILE__, __LINE__, __func__); + } + return !!info->dialog; +} + +NMADeviceClass * +applet_device_wifi_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = wifi_new_auto_connection; + dclass->add_menu_item = wifi_add_menu_item; + dclass->device_added = wifi_device_added; + dclass->device_state_changed = wifi_device_state_changed; + dclass->get_icon = wifi_get_icon; + dclass->get_secrets = wifi_get_secrets; + dclass->secrets_request_size = sizeof (NMWifiInfo); + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet.c --- network-manager-applet-0.9.4.1/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/make_menu_items_insensitive_based_on_permissions.patch/src/applet.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,4033 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2012 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + * + * This applet used the GNOME Wireless Applet as a skeleton to build from. + * + * GNOME Wireless Applet Authors: + * Eskil Heyn Olsen + * Bastien Nocera (Gnome2 port) + * + * (C) Copyright 2001, 2002 Free Software Foundation + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "applet-device-wifi.h" +#include "applet-device-gsm.h" +#include "applet-device-cdma.h" +#include "applet-device-bt.h" +#include "applet-device-wimax.h" +#include "applet-dialogs.h" +#include "nm-wifi-dialog.h" +#include "applet-vpn-request.h" +#include "utils.h" +#include "shell-watcher.h" +#include "nm-ui-utils.h" + +#define NOTIFY_CAPS_ACTIONS_KEY "actions" + +extern gboolean shell_debug; + +G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) + +/********************************************************************/ +/* Temporary dbus interface stuff */ + +static gboolean +impl_dbus_connect_to_hidden_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_connect_to_hidden_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_create_wifi_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_can_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NOT_AUTHORIZED, + "Creation of Wi-Fi networks has been disabled by system policy."); + return FALSE; + } + + if (!applet_wifi_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_8021x_network (NMApplet *applet, + const char *device_path, + const char *ap_path, + GError **error) +{ + NMDevice *device; + NMAccessPoint *ap; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_WIFI (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + ap = nm_device_wifi_get_access_point_by_path (NM_DEVICE_WIFI (device), ap_path); + if (!ap) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point could not be found."); + return FALSE; + } + + /* FIXME: this doesn't account for Dynamic WEP */ + if ( !(nm_access_point_get_wpa_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + && !(nm_access_point_get_rsn_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point had no 802.1x capabilities"); + return FALSE; + } + + if (!applet_wifi_connect_to_8021x_network (applet, device, ap)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_3g_network (NMApplet *applet, + const char *device_path, + GError **error) +{ + NMDevice *device; + NMDeviceModemCapabilities caps; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_MODEM (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + applet_gsm_connect_network (applet, device); + } else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + applet_cdma_connect_network (applet, device); + } else { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device had no GSM or CDMA capabilities."); + return FALSE; + } + + return TRUE; +} + +#include "applet-dbus-bindings.h" + +/********************************************************************/ + +static inline NMADeviceClass * +get_device_class (NMDevice *device, NMApplet *applet) +{ + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + if (NM_IS_DEVICE_ETHERNET (device)) + return applet->ethernet_class; + else if (NM_IS_DEVICE_WIFI (device)) + return applet->wifi_class; + else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + return applet->gsm_class; + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + return applet->cdma_class; + else + g_message ("%s: unhandled modem capabilities 0x%X", __func__, caps); + } else if (NM_IS_DEVICE_BT (device)) + return applet->bt_class; + else if (NM_IS_DEVICE_WIMAX (device)) + return applet->wimax_class; + else + g_debug ("%s: Unknown device type '%s'", __func__, G_OBJECT_TYPE_NAME (device)); + return NULL; +} + +static inline NMADeviceClass * +get_device_class_from_connection (NMConnection *connection, NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *ctype; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + ctype = nm_setting_connection_get_connection_type (s_con); + g_return_val_if_fail (ctype != NULL, NULL); + + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME) || !strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return applet->ethernet_class; + else if (!strcmp (ctype, NM_SETTING_WIRELESS_SETTING_NAME)) + return applet->wifi_class; + else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME)) + return applet->gsm_class; + else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME)) + return applet->cdma_class; + else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) + return applet->bt_class; + else + g_warning ("%s: unhandled connection type '%s'", __func__, ctype); + return NULL; +} + +struct _OfflineNotificationContextInfo { + NMState state; + NMDeviceState device_state; + NMDeviceStateReason device_state_reason; + NMDeviceType device_type; + gchar* title; + const gchar* text; + const gchar* icon; + NotifyUrgency urgency; +}; + +typedef struct _OfflineNotificationContextInfo OfflineNotificationContextInfo; + +static NMActiveConnection * +applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *best = NULL; + NMDevice *best_dev = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const GPtrArray *devices; + NMDevice *candidate_dev; + + if (nm_active_connection_get_state (candidate) != NM_ACTIVE_CONNECTION_STATE_ACTIVATING) + continue; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (!best_dev) { + best_dev = candidate_dev; + best = candidate; + continue; + } + + if (NM_IS_DEVICE_WIFI (best_dev)) { + if (NM_IS_DEVICE_ETHERNET (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (NM_IS_DEVICE_MODEM (best_dev)) { + NMDeviceModemCapabilities best_caps; + NMDeviceModemCapabilities candidate_caps = NM_DEVICE_MODEM_CAPABILITY_NONE; + + best_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (best_dev)); + if (NM_IS_DEVICE_MODEM (candidate_dev)) + candidate_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (candidate_dev)); + + if (best_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (best_caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev) + || (candidate_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { + best_dev = candidate_dev; + best = candidate; + } + } + } + } + + *device = best_dev; + return best; +} + +static NMActiveConnection * +applet_get_default_active_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *default_ac = NULL; + NMDevice *non_default_device = NULL; + NMActiveConnection *non_default_ac = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + NMDevice *candidate_dev; + const GPtrArray *devices; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (nm_active_connection_get_default (candidate)) { + if (!default_ac) { + *device = candidate_dev; + default_ac = candidate; + } + } else { + if (!non_default_ac) { + non_default_device = candidate_dev; + non_default_ac = candidate; + } + } + } + + /* Prefer the default connection if one exists, otherwise return the first + * non-default connection. + */ + if (!default_ac && non_default_ac) { + default_ac = non_default_ac; + *device = non_default_device; + } + return default_ac; +} + +NMRemoteSettings * +applet_get_settings (NMApplet *applet) +{ + return applet->settings; +} + +GSList * +applet_get_all_connections (NMApplet *applet) +{ + GSList *connections, *iter, *next; + NMConnection *connection; + NMSettingConnection *s_con; + + connections = nm_remote_settings_list_connections (applet->settings); + + /* Ignore slave connections */ + for (iter = connections; iter; iter = next) { + connection = iter->data; + next = iter->next; + + s_con = nm_connection_get_setting_connection (connection); + if (s_con && nm_setting_connection_get_master (s_con)) + connections = g_slist_delete_link (connections, iter); + } + + return connections; +} + +static NMConnection * +applet_get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMActiveConnection * +applet_get_active_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + int i; + const char *cpath; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + const char *active_cpath = nm_active_connection_get_connection (active); + + if (active_cpath && !strcmp (active_cpath, cpath)) + return active; + } + return NULL; +} + +NMDevice * +applet_get_device_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + const char *cpath; + int i; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + + if (!g_strcmp0 (nm_active_connection_get_connection (active), cpath)) + return g_ptr_array_index (nm_active_connection_get_devices (active), 0); + } + return NULL; +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + char *specific_object; + NMConnection *connection; +} AppletItemActivateInfo; + +static void +applet_item_activate_info_destroy (AppletItemActivateInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + g_free (info->specific_object); + if (info->connection) + g_object_unref (info->connection); + memset (info, 0, sizeof (AppletItemActivateInfo)); + g_free (info); +} + +static void +add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (error) { + const char *text = _("Failed to add/activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +static void +applet_menu_item_activate_helper_new_connection (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + AppletItemActivateInfo *info = user_data; + + if (canceled) { + applet_item_activate_info_destroy (info); + return; + } + + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + info->specific_object, + add_and_activate_cb, + info->applet); + + applet_item_activate_info_destroy (info); +} + +static void +disconnect_cb (NMDevice *device, GError *error, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (error) { + const char *text = _("Device disconnect failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s: %s", __func__, text, err_text); + utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +void +applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet) +{ + g_return_if_fail (NM_IS_DEVICE (device)); + + nm_device_disconnect (device, disconnect_cb, applet); +} + +static void +activate_connection_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Connection activation failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +void +applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data) +{ + AppletItemActivateInfo *info; + NMADeviceClass *dclass; + + g_return_if_fail (NM_IS_DEVICE (device)); + + if (connection) { + /* If the menu item had an associated connection already, just tell + * NM to activate that connection. + */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + specific_object, + activate_connection_cb, + applet); + return; + } + + /* If no connection was given, ask the device class to create a new + * default connection for this device type. This could be a wizard, + * and thus take a while. + */ + + info = g_malloc0 (sizeof (AppletItemActivateInfo)); + info->applet = applet; + info->specific_object = g_strdup (specific_object); + info->device = g_object_ref (device); + + dclass = get_device_class (device, applet); + g_assert (dclass); + if (!dclass->new_auto_connection (device, dclass_data, + applet_menu_item_activate_helper_new_connection, + info)) { + g_warning ("Couldn't create default connection."); + applet_item_activate_info_destroy (info); + } +} + +void +applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos) +{ + GtkWidget *menu_item = NULL; +#ifndef ENABLE_INDICATOR +#if GTK_CHECK_VERSION(3,1,6) + GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); +#else + GtkWidget *box = gtk_hbox_new (FALSE, 0); +#endif + GtkWidget *xlabel = NULL; + + menu_item = gtk_image_menu_item_new (); + + if (label) { + xlabel = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (xlabel), label); + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2); + } + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + + g_object_set (G_OBJECT (menu_item), + "child", box, + "sensitive", FALSE, + NULL); +#else + menu_item = gtk_separator_menu_item_new (); +#endif /* ENABLE_INDICATOR */ + if (pos < 0) + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + else + gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, pos); + return; +} + +GtkWidget * +applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active) +{ + GtkWidget *item; + NMSettingConnection *s_con; +#ifndef ENABLE_INDICATOR + char *markup; + GtkWidget *label; +#endif /* ENABLE_INDICATOR */ + + s_con = nm_connection_get_setting_connection (connection); +#ifndef ENABLE_INDICATOR + item = gtk_image_menu_item_new_with_label (""); + if (add_active && (active == connection)) { + /* Pure evil */ + label = gtk_bin_get_child (GTK_BIN (item)); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + markup = g_markup_printf_escaped ("%s", nm_setting_connection_get_id (s_con)); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + } else + gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); + + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#else + item = gtk_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); +#endif /* ENABLE_INDICATOR */ + return item; +} + +#ifndef ENABLE_INDICATOR +#define TITLE_TEXT_R ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_G ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_B ((double) 0x5e / 255.0 ) + +static void +menu_item_draw_generic (GtkWidget *widget, cairo_t *cr) +{ + GtkWidget *label; + PangoFontDescription *desc; + PangoLayout *layout; + int width = 0, height = 0, owidth, oheight; + gdouble extraheight = 0, extrawidth = 0; + const char *text; + gdouble xpadding = 10.0; + gdouble ypadding = 5.0; + gdouble postpadding = 0.0; + + label = gtk_bin_get_child (GTK_BIN (widget)); + text = gtk_label_get_text (GTK_LABEL (label)); + + layout = pango_cairo_create_layout (cr); +#if GTK_CHECK_VERSION(2,20,0) && !GTK_CHECK_VERSION(2,91,6) + { + GtkStyle *style; + style = gtk_widget_get_style (widget); + desc = pango_font_description_copy (style->font_desc); + } +#else + { + GtkStyleContext *style; + style = gtk_widget_get_style_context (widget); + gtk_style_context_get (style, gtk_style_context_get_state (style), + "font", &desc, + NULL); + } +#endif + pango_font_description_set_variant (desc, PANGO_VARIANT_SMALL_CAPS); + pango_font_description_set_weight (desc, PANGO_WEIGHT_SEMIBOLD); + pango_layout_set_font_description (layout, desc); + pango_layout_set_text (layout, text, -1); + pango_cairo_update_layout (cr, layout); + pango_layout_get_size (layout, &owidth, &oheight); + width = owidth / PANGO_SCALE; + height += oheight / PANGO_SCALE; + + cairo_save (cr); + + cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); + cairo_rectangle (cr, 0, 0, + (double) (width + 2 * xpadding), + (double) (height + ypadding + postpadding)); + cairo_fill (cr); + + /* now the in-padding content */ + cairo_translate (cr, xpadding , ypadding); + cairo_set_source_rgb (cr, TITLE_TEXT_R, TITLE_TEXT_G, TITLE_TEXT_B); + cairo_move_to (cr, extrawidth, extraheight); + pango_cairo_show_layout (cr, layout); + + cairo_restore(cr); + + pango_font_description_free (desc); + g_object_unref (layout); + + gtk_widget_set_size_request (widget, width + 2 * xpadding, height + ypadding + postpadding); +} + +#if GTK_CHECK_VERSION(2,90,7) +static gboolean +menu_title_item_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) +{ + menu_item_draw_generic (widget, cr); + return TRUE; +} +#else +static gboolean +menu_title_item_expose (GtkWidget *widget, GdkEventExpose *event) +{ + GtkAllocation allocation; + cairo_t *cr; + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + /* The drawing area we get is the whole menu; clip the drawing to the + * event area, which should just be our menu item. + */ + cairo_rectangle (cr, + event->area.x, event->area.y, + event->area.width, event->area.height); + cairo_clip (cr); + + /* We also need to reposition the cairo context so that (0, 0) is the + * top-left of where we're supposed to start drawing. + */ + gtk_widget_get_allocation (widget, &allocation); + cairo_translate (cr, allocation.x, allocation.y); + + menu_item_draw_generic (widget, cr); + + cairo_destroy (cr); + return TRUE; +} +#endif + +#endif /* ENABLE_INDICATOR */ + +GtkWidget * +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text) +{ + GtkWidget *item; + + item = gtk_menu_item_new_with_mnemonic (text); + gtk_widget_set_sensitive (item, FALSE); +#ifndef ENABLE_INDICATOR +#if GTK_CHECK_VERSION(2,90,7) + g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL); +#else + g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); +#endif +#endif /* ENABLE_INDICATOR */ + return item; +} + +static gboolean +applet_notify_server_has_actions (void) +{ + static gboolean has_actions = FALSE; + static gboolean initialized = FALSE; + GList *server_caps, *iter; + + if (initialized) + return has_actions; + initialized = TRUE; + + server_caps = notify_get_server_caps(); + for (iter = server_caps; iter; iter = g_list_next (iter)) { + if (!strcmp ((const char *) iter->data, NOTIFY_CAPS_ACTIONS_KEY)) { + has_actions = TRUE; + break; + } + } + g_list_foreach (server_caps, (GFunc) g_free, NULL); + g_list_free (server_caps); + + return has_actions; +} + +void +applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data) +{ + NotifyNotification *notify; + GError *error = NULL; + char *escaped; + + g_return_if_fail (applet != NULL); + g_return_if_fail (summary != NULL); + g_return_if_fail (message != NULL); + +#ifndef ENABLE_INDICATOR + if (!gtk_status_icon_is_embedded (applet->status_icon)) +#else + if (!gtk_status_icon_is_embedded (applet->status_icon) && + app_indicator_get_status (applet->app_indicator) == APP_INDICATOR_STATUS_PASSIVE) +#endif /* ENABLE_INDICATOR */ + return; + + /* if we're not registered, don't notify either */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + return; + + escaped = utils_escape_notify_message (message); + + if (applet->notification == NULL) { + notify = notify_notification_new (summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK +#if HAVE_LIBNOTIFY_07 + ); +#else + , NULL); +#endif + + applet->notification = notify; + } else { + notify = applet->notification; + notify_notification_update (notify, + summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK); + } + + g_free (escaped); + +#if HAVE_LIBNOTIFY_07 + notify_notification_set_hint (notify, "transient", g_variant_new_boolean (TRUE)); +#else + notify_notification_attach_to_status_icon (notify, applet->status_icon); +#endif + notify_notification_set_urgency (notify, urgency); + notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT); + + if (applet_notify_server_has_actions () && action1) { + notify_notification_clear_actions (notify); + notify_notification_add_action (notify, action1, action1_label, + action1_cb, action1_user_data, NULL); + } + + if (!notify_notification_show (notify, &error)) { + g_warning ("Failed to show notification: %s", + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + } +} + +static void +notify_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id) + return; + + if ( strcmp (id, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_VPN_NOTIFICATIONS)) + return; + + g_settings_set_boolean (applet->gsettings, id, TRUE); +} + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref) +{ + if (g_settings_get_boolean (applet->gsettings, pref)) + return; + + applet_do_notify (applet, NOTIFY_URGENCY_LOW, summary, message, icon, pref, + _("Don't show this message again"), + notify_dont_show_cb, + applet); +} + +static gboolean +animation_timeout (gpointer data) +{ + applet_schedule_update_icon (NM_APPLET (data)); + return TRUE; +} + +static void +start_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id == 0) { + applet->animation_step = 0; + applet->animation_id = g_timeout_add (100, animation_timeout, applet); + } +} + +static void +clear_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id) { + g_source_remove (applet->animation_id); + applet->animation_id = 0; + applet->animation_step = 0; + } +} + +static gboolean +applet_is_any_device_activating (NMApplet *applet) +{ + const GPtrArray *devices; + int i; + + /* Check for activating devices */ + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = NM_DEVICE (g_ptr_array_index (devices, i)); + NMDeviceState state; + + state = nm_device_get_state (candidate); + if (state > NM_DEVICE_STATE_DISCONNECTED && state < NM_DEVICE_STATE_ACTIVATED) + return TRUE; + } + return FALSE; +} + +static gboolean +applet_is_any_vpn_activating (NMApplet *applet) +{ + const GPtrArray *connections; + int i; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (connections, i)); + NMVPNConnectionState vpn_state; + + if (NM_IS_VPN_CONNECTION (candidate)) { + vpn_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + if ( vpn_state == NM_VPN_CONNECTION_STATE_PREPARE + || vpn_state == NM_VPN_CONNECTION_STATE_NEED_AUTH + || vpn_state == NM_VPN_CONNECTION_STATE_CONNECT + || vpn_state == NM_VPN_CONNECTION_STATE_IP_CONFIG_GET) { + return TRUE; + } + } + } + return FALSE; +} + +static char * +make_vpn_failure_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service stopped unexpectedly."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service returned invalid configuration."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the connection attempt timed out."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service did not start in time."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because there were no valid VPN secrets."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because of invalid VPN secrets."), + nm_setting_connection_get_id (s_con)); + + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' failed."), nm_setting_connection_get_id (s_con)); +} + +static char * +make_vpn_disconnection_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the VPN service stopped."), + nm_setting_connection_get_id (s_con)); + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected."), nm_setting_connection_get_id (s_con)); +} + +static void +vpn_connection_state_changed (NMVPNConnection *vpn, + NMVPNConnectionState state, + NMVPNConnectionStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const char *banner; + char *title = NULL, *msg; + gboolean device_activating, vpn_activating; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (state) { + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections might not have come through yet. + */ + vpn_activating = TRUE; + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + banner = nm_vpn_connection_get_banner (vpn); + if (banner && strlen (banner)) + msg = g_strdup_printf (_("VPN connection has been successfully established.\n\n%s\n"), banner); + else + msg = g_strdup (_("VPN connection has been successfully established.\n")); + + title = _("VPN Login Message"); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_FAILED: + title = _("VPN Connection Failed"); + msg = make_vpn_failure_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_DISCONNECTED: + if (reason != NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED) { + title = _("VPN Connection Failed"); + msg = make_vpn_disconnection_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + } + break; + default: + break; + } + + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +static const char * +get_connection_id (NMConnection *connection) +{ + NMSettingConnection *s_con; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + return nm_setting_connection_get_id (s_con); +} + +typedef struct { + NMApplet *applet; + char *vpn_name; +} VPNActivateInfo; + +static void +activate_vpn_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + VPNActivateInfo *info = (VPNActivateInfo *) user_data; + char *title, *msg, *name; + + if (error) { + clear_animation_timeout (info->applet); + + title = _("VPN Connection Failed"); + + /* dbus-glib GError messages _always_ have two NULLs, the D-Bus error + * name comes after the first NULL. Find it. + */ + name = error->message + strlen (error->message) + 1; + if (strstr (name, "ServiceStartFailed")) { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start.\n\n%s"), + info->vpn_name, error->message); + } else { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed to start.\n\n%s"), + info->vpn_name, error->message); + } + + applet_do_notify_with_pref (info->applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + + g_warning ("VPN Connection activation failed: (%s) %s", name, error->message); + } + + applet_schedule_update_icon (info->applet); + applet_schedule_update_menu (info->applet); + g_free (info->vpn_name); + g_free (info); +} + +static void nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data); + +static void +nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + VPNActivateInfo *info; + NMConnection *connection; + NMSettingConnection *s_con; + NMActiveConnection *active; + NMDevice *device = NULL; + + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) { + g_warning ("%s: no active connection or device.", __func__); + return; + } + + connection = NM_CONNECTION (g_object_get_data (G_OBJECT (item), "connection")); + if (!connection) { + g_warning ("%s: no connection associated with menu item!", __func__); + return; + } + + if (applet_get_active_for_connection (applet, connection)) { +#ifndef ENABLE_INDICATOR + /* Connection already active; do nothing */ +#else + nma_menu_disconnect_vpn_item_activate (item, applet); +#endif /* ENABLE_INDICATOR */ + return; + } + + s_con = nm_connection_get_setting_connection (connection); + info = g_malloc0 (sizeof (VPNActivateInfo)); + info->applet = applet; + info->vpn_name = g_strdup (nm_setting_connection_get_id (s_con)); + + /* Connection inactive, activate */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + nm_object_get_path (NM_OBJECT (active)), + activate_vpn_cb, + info); + start_animation_timeout (applet); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + + +/* + * nma_menu_configure_vpn_item_activate + * + * Signal function called when user clicks "Configure VPN..." + * + */ +static void +nma_menu_configure_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + const char *argv[] = { BINDIR "/nm-connection-editor", "--show", "--type", NM_SETTING_VPN_SETTING_NAME, NULL}; + + g_spawn_async (NULL, (gchar **) argv, NULL, 0, NULL, NULL, NULL, NULL); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static NMActiveConnection * +applet_get_first_active_vpn_connection (NMApplet *applet, + NMVPNConnectionState *out_state) +{ + const GPtrArray *active_list; + int i; + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate; + NMConnection *connection; + NMSettingConnection *s_con; + + candidate = g_ptr_array_index (active_list, i); + + connection = applet_get_connection_for_active (applet, candidate); + if (!connection) + continue; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + if (out_state) + *out_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + return candidate; + } + } + + return NULL; +} + +/* + * nma_menu_disconnect_vpn_item_activate + * + * Signal function called when user clicks "Disconnect VPN" + * + */ +static void +nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMActiveConnection *active_vpn = NULL; + NMVPNConnectionState state = NM_VPN_CONNECTION_STATE_UNKNOWN; + + active_vpn = applet_get_first_active_vpn_connection (applet, &state); + if (active_vpn) + nm_client_deactivate_connection (applet->nm_client, active_vpn); + else + g_warning ("%s: deactivate clicked but no active VPN connection could be found.", __func__); +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +/* + * nma_menu_add_separator_item + * + */ +static void +nma_menu_add_separator_item (GtkWidget *menu) +{ + GtkWidget *menu_item; + + menu_item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + + +/* + * nma_menu_add_text_item + * + * Add a non-clickable text item to a menu + * + */ +static void nma_menu_add_text_item (GtkWidget *menu, char *text) +{ + GtkWidget *menu_item; + + g_return_if_fail (text != NULL); + g_return_if_fail (menu != NULL); + + menu_item = gtk_menu_item_new_with_label (text); + gtk_widget_set_sensitive (menu_item, FALSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + +static gint +sort_devices (gconstpointer a, gconstpointer b) +{ + NMDevice *aa = NM_DEVICE (a); + NMDevice *bb = NM_DEVICE (b); + GType aa_type = G_OBJECT_TYPE (G_OBJECT (aa)); + GType bb_type = G_OBJECT_TYPE (G_OBJECT (bb)); + + if (aa_type == bb_type) { + const char *aa_desc = NULL; + const char *bb_desc = NULL; + + aa_desc = nma_utils_get_device_description (aa); + bb_desc = nma_utils_get_device_description (bb); + + return g_strcmp0 (aa_desc, bb_desc); + } + + /* Ethernet always first */ + if (aa_type == NM_TYPE_DEVICE_ETHERNET) + return -1; + if (bb_type == NM_TYPE_DEVICE_ETHERNET) + return 1; + + /* Modems next */ + if (aa_type == NM_TYPE_DEVICE_MODEM) + return -1; + if (bb_type == NM_TYPE_DEVICE_MODEM) + return 1; + + /* Bluetooth next */ + if (aa_type == NM_TYPE_DEVICE_BT) + return -1; + if (bb_type == NM_TYPE_DEVICE_BT) + return 1; + + /* WiMAX next */ + if (aa_type == NM_TYPE_DEVICE_WIMAX) + return -1; + if (bb_type == NM_TYPE_DEVICE_WIMAX) + return 1; + + /* WiFi last because it has many menu items */ + return 1; +} + +static gboolean +nm_g_ptr_array_contains (const GPtrArray *haystack, gpointer needle) +{ + int i; + + for (i = 0; haystack && (i < haystack->len); i++) { + if (g_ptr_array_index (haystack, i) == needle) + return TRUE; + } + return FALSE; +} + +NMConnection * +applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active) +{ + const GPtrArray *active_connections; + NMConnection *connection = NULL; + int i; + + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + if (out_active) + g_return_val_if_fail (*out_active == NULL, NULL); + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMRemoteConnection *tmp; + NMActiveConnection *active; + const char *connection_path; + const GPtrArray *devices; + + active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_connections, i)); + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + tmp = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (tmp) { + connection = NM_CONNECTION (tmp); + if (out_active) + *out_active = active; + break; + } + } + + return connection; +} + +gboolean +nma_menu_device_check_unusable (NMDevice *device) +{ + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + case NM_DEVICE_STATE_UNMANAGED: + return TRUE; + default: + break; + } + return FALSE; +} + + +struct AppletDeviceMenuInfo { + NMDevice *device; + NMApplet *applet; +}; + +static void +applet_device_info_destroy (struct AppletDeviceMenuInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + memset (info, 0, sizeof (struct AppletDeviceMenuInfo)); + g_free (info); +} + +static void +applet_device_disconnect_db (GtkMenuItem *item, gpointer user_data) +{ + struct AppletDeviceMenuInfo *info = user_data; + + applet_menu_item_disconnect_helper (info->device, + info->applet); +} + +GtkWidget * +nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg) +{ + GtkWidget *item = NULL; + gboolean managed = TRUE; + + if (!unavailable_msg) { + if (nm_device_get_firmware_missing (device)) + unavailable_msg = _("device not ready (firmware missing)"); + else + unavailable_msg = _("device not ready"); + } + + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_DISCONNECTED: + unavailable_msg = _("disconnected"); + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_UNMANAGED: + managed = FALSE; + break; + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + case NM_DEVICE_STATE_ACTIVATED: + { + struct AppletDeviceMenuInfo *info = g_new0 (struct AppletDeviceMenuInfo, 1); + info->device = g_object_ref (device); + info->applet = applet; + item = gtk_menu_item_new_with_label (_("Disconnect")); + g_signal_connect_data (item, "activate", + G_CALLBACK (applet_device_disconnect_db), + info, + (GClosureNotify) applet_device_info_destroy, 0); + gtk_widget_set_sensitive (item, TRUE); + break; + } + default: + managed = nm_device_get_managed (device); + break; + } + + if (!managed) { + item = gtk_menu_item_new_with_label (_("device not managed")); + gtk_widget_set_sensitive (item, FALSE); + } + + return item; +} + +static guint32 +nma_menu_add_devices (GtkWidget *menu, NMApplet *applet) +{ + const GPtrArray *temp = NULL; + GSList *devices = NULL, *iter = NULL; + gint n_wifi_devices = 0; + gint n_usable_wifi_devices = 0; + gint n_ethernet_devices = 0; + gint n_mb_devices = 0; + gint n_bt_devices = 0; + int i; + + temp = nm_client_get_devices (applet->nm_client); + for (i = 0; temp && (i < temp->len); i++) + devices = g_slist_insert_sorted (devices, g_ptr_array_index (temp, i), sort_devices); + + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) { + n_wifi_devices++; + if ( nm_client_wireless_get_enabled (applet->nm_client) + && (nm_device_get_state (device) >= NM_DEVICE_STATE_DISCONNECTED)) + n_usable_wifi_devices++; + } else if (NM_IS_DEVICE_ETHERNET (device)) + n_ethernet_devices++; + else if (NM_IS_DEVICE_MODEM (device)) + n_mb_devices++; + else if (NM_IS_DEVICE_BT (device)) + n_bt_devices++; + } + + if (!n_ethernet_devices && !n_wifi_devices && !n_mb_devices && !n_bt_devices) { + nma_menu_add_text_item (menu, _("No network devices available")); + goto out; + } + + /* Add all devices in our device list to the menu */ + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + gint n_devices = 0; + NMADeviceClass *dclass; + NMConnection *active; + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) + n_devices = n_wifi_devices; + else if (NM_IS_DEVICE_ETHERNET (device)) + n_devices = n_ethernet_devices; + else if (NM_IS_DEVICE_MODEM (device)) + n_devices = n_mb_devices; + + active = applet_find_active_connection_for_device (device, applet, NULL); + + dclass = get_device_class (device, applet); + if (dclass) + dclass->add_menu_item (device, n_devices, active, menu, applet); + + nma_menu_add_separator_item (menu); + } + + out: + g_slist_free (devices); + + /* Return # of usable wifi devices here for correct enable/disable state + * of things like Enable Wi-Fi, "Connect to other..." and such. + */ + return n_usable_wifi_devices; +} + +static int +sort_vpn_connections (gconstpointer a, gconstpointer b) +{ + return strcmp (get_connection_id (NM_CONNECTION (a)), get_connection_id (NM_CONNECTION (b))); +} + +static GSList * +get_vpn_connections (NMApplet *applet) +{ + GSList *all_connections; + GSList *iter; + GSList *list = NULL; + + all_connections = applet_get_all_connections (applet); + + for (iter = all_connections; iter; iter = iter->next) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) + /* Not a VPN connection */ + continue; + + if (!nm_connection_get_setting_vpn (connection)) { + g_warning ("%s: VPN connection '%s' didn't have required vpn setting.", __func__, + nm_setting_connection_get_id (s_con)); + continue; + } + + list = g_slist_prepend (list, connection); + } + + g_slist_free (all_connections); + + return g_slist_sort (list, sort_vpn_connections); +} + +static void +nma_menu_add_vpn_submenu (GtkWidget *menu, NMApplet *applet) +{ + GtkMenu *vpn_menu; + GtkMenuItem *item; + GSList *list, *iter; + int num_vpn_active = 0; + + vpn_menu = GTK_MENU (gtk_menu_new ()); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_VPN Connections"))); + gtk_menu_item_set_submenu (item, GTK_WIDGET (vpn_menu)); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + + list = get_vpn_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (applet_get_active_for_connection (applet, connection)) + num_vpn_active++; + } + + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMActiveConnection *active; + const char *name; +#ifndef ENABLE_INDICATOR + GtkWidget *image; +#endif /* ENABLE_INDICATOR */ + NMState state; + + name = get_connection_id (connection); + +#ifndef ENABLE_INDICATOR + item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); + gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); +#else + item = GTK_MENU_ITEM (gtk_check_menu_item_new_with_label (name)); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(item), FALSE); +#endif /* ENABLE_INDICATOR */ + + /* If no VPN connections are active, draw all menu items enabled. If + * >= 1 VPN connections are active, only the active VPN menu item is + * drawn enabled. + */ + active = applet_get_active_for_connection (applet, connection); + + state = nm_client_get_state (applet->nm_client); + if ( state != NM_STATE_CONNECTED_LOCAL + && state != NM_STATE_CONNECTED_SITE + && state != NM_STATE_CONNECTED_GLOBAL) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + else if ((num_vpn_active == 0) || active) + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + else + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + if (active) { +#ifndef ENABLE_INDICATOR + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); +#else + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(item), TRUE); +#endif /* ENABLE_INDICATOR */ + } + + g_object_set_data_full (G_OBJECT (item), "connection", + g_object_ref (connection), + (GDestroyNotify) g_object_unref); + + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_vpn_item_clicked), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } + + /* Draw a seperator, but only if we have VPN connections above it */ + if (list) + nma_menu_add_separator_item (GTK_WIDGET (vpn_menu)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Configure VPN..."))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_configure_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Disconnect VPN"))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_disconnect_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + if (num_vpn_active == 0) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + g_slist_free (list); +} + + +static void +nma_set_wifi_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wireless_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wwan_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wwan_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wimax_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wimax_set_enabled (applet->nm_client, state); +} + +static void +nma_set_networking_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_networking_set_enabled (applet->nm_client, state); +} + + +#ifndef ENABLE_INDICATOR +static void +nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_CONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_VPN_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + !state); +} +#endif /* ENABLE_INDICATOR */ + +/* + * nma_menu_show_cb + * + * Pop up the wifi networks menu + * + */ +static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet) +{ + guint32 n_wifi; + + g_return_if_fail (menu != NULL); + g_return_if_fail (applet != NULL); + + gtk_status_icon_set_tooltip_text (applet->status_icon, NULL); + + if (!nm_client_get_manager_running (applet->nm_client)) { + nma_menu_add_text_item (menu, _("NetworkManager is not running...")); + return; + } + + if (nm_client_get_state (applet->nm_client) == NM_STATE_ASLEEP) { + nma_menu_add_text_item (menu, _("Networking disabled")); + return; + } + + n_wifi = nma_menu_add_devices (menu, applet); + + if (n_wifi > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { + /* Add the "Hidden Wi-Fi network..." entry */ + nma_menu_add_hidden_network_item (menu, applet); + nma_menu_add_create_network_item (menu, applet); + nma_menu_add_separator_item (menu); + } + + nma_menu_add_vpn_submenu (menu, applet); + gtk_widget_show_all (menu); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static gboolean +destroy_old_menu (gpointer user_data) +{ + g_object_unref (user_data); + return FALSE; +} + +static void +nma_menu_deactivate_cb (GtkWidget *widget, NMApplet *applet) +{ + /* Must punt the destroy to a low-priority idle to ensure that + * the menu items don't get destroyed before any 'activate' signal + * fires for an item. + */ + g_signal_handlers_disconnect_by_func (applet->menu, G_CALLBACK (nma_menu_deactivate_cb), applet); + g_idle_add_full (G_PRIORITY_LOW, destroy_old_menu, applet->menu, NULL); + applet->menu = NULL; + + /* Re-set the tooltip */ + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +} + +static gboolean +is_permission_yes (NMApplet *applet, NMClientPermission perm) +{ + if ( applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_YES + || applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_AUTH) + return TRUE; + return FALSE; +} + +/* + * nma_context_menu_update + * + */ +static void +nma_context_menu_update (NMApplet *applet) +{ + NMState state; + gboolean net_enabled = TRUE; + gboolean have_wifi = FALSE; + gboolean have_wwan = FALSE; + gboolean have_wimax = FALSE; + gboolean wifi_hw_enabled; + gboolean wwan_hw_enabled; + gboolean wimax_hw_enabled; +#ifndef ENABLE_INDICATOR + gboolean notifications_enabled = TRUE; +#endif /* ENABLE_INDICATOR */ + gboolean sensitive = FALSE; + + state = nm_client_get_state (applet->nm_client); + sensitive = ( state == NM_STATE_CONNECTED_LOCAL + || state == NM_STATE_CONNECTED_SITE + || state == NM_STATE_CONNECTED_GLOBAL); + gtk_widget_set_sensitive (applet->info_menu_item, sensitive); + + /* Update checkboxes, and block 'toggled' signal when updating so that the + * callback doesn't get triggered. + */ + + /* Enabled Networking */ + g_signal_handler_block (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + net_enabled = nm_client_networking_get_enabled (applet->nm_client); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->networking_enabled_item), + net_enabled && (state != NM_STATE_ASLEEP)); + g_signal_handler_unblock (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + gtk_widget_set_sensitive (applet->networking_enabled_item, + is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK)); + + /* Enabled Wi-Fi */ + g_signal_handler_block (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wifi_enabled_item), + nm_client_wireless_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wifi_enabled_item), + wifi_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI)); + + /* Enabled Mobile Broadband */ + g_signal_handler_block (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wwan_enabled_item), + nm_client_wwan_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + + wwan_hw_enabled = nm_client_wwan_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wwan_enabled_item), + wwan_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN)); + + /* Enable WiMAX */ + g_signal_handler_block (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wimax_enabled_item), + nm_client_wimax_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + + wimax_hw_enabled = nm_client_wimax_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), + wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); + +#ifndef ENABLE_INDICATOR + /* Enabled notifications */ + g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + if ( g_settings_get_boolean (applet->gsettings, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_VPN_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + notifications_enabled = FALSE; + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); + g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); +#endif /* ENABLE_INDICATOR */ + + /* Don't show wifi-specific stuff if wifi is off */ + if (state != NM_STATE_ASLEEP) { + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = g_ptr_array_index (devices, i); + + if (NM_IS_DEVICE_WIFI (candidate)) + have_wifi = TRUE; + else if (NM_IS_DEVICE_MODEM (candidate)) + have_wwan = TRUE; + else if (NM_IS_DEVICE_WIMAX (candidate)) + have_wimax = TRUE; + } + } + + if (have_wifi) + gtk_widget_show_all (applet->wifi_enabled_item); + else + gtk_widget_hide (applet->wifi_enabled_item); + + if (have_wwan) + gtk_widget_show_all (applet->wwan_enabled_item); + else + gtk_widget_hide (applet->wwan_enabled_item); + + if (have_wimax) + gtk_widget_show_all (applet->wimax_enabled_item); + else + gtk_widget_hide (applet->wimax_enabled_item); +} + +static void +ce_child_setup (gpointer user_data G_GNUC_UNUSED) +{ + /* We are in the child process at this point */ + pid_t pid = getpid (); + setpgid (pid, pid); +} + +static void +nma_edit_connections_cb (GtkMenuItem *mi, NMApplet *applet) +{ + char *argv[2]; + GError *error = NULL; + gboolean success; + + argv[0] = BINDIR "/nm-connection-editor"; + argv[1] = NULL; + + success = g_spawn_async ("/", argv, NULL, 0, &ce_child_setup, NULL, NULL, &error); + if (!success) { + g_warning ("Error launching connection editor: %s", error->message); + g_error_free (error); + } +} + +static void +applet_connection_info_cb (NMApplet *applet) +{ + applet_info_dialog_show (applet); +} + +/* + * nma_context_menu_create + * + * Generate the contextual popup menu. + * + */ +static GtkWidget *nma_context_menu_create (NMApplet *applet, GtkMenuShell *menu) +{ +#ifndef ENABLE_INDICATOR + GtkMenuShell *menu; + GtkWidget *menu_item; +#endif + GtkWidget *image; + guint id; + + g_return_val_if_fail (applet != NULL, NULL); + +#ifndef ENABLE_INDICATOR + menu = GTK_MENU_SHELL (gtk_menu_new ()); +#endif + + /* 'Enable Networking' item */ + applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); + id = g_signal_connect (applet->networking_enabled_item, + "toggled", + G_CALLBACK (nma_set_networking_enabled_cb), + applet); + applet->networking_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->networking_enabled_item); + + /* 'Enable Wi-Fi' item */ + applet->wifi_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Wi-Fi")); + id = g_signal_connect (applet->wifi_enabled_item, + "toggled", + G_CALLBACK (nma_set_wifi_enabled_cb), + applet); + applet->wifi_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wifi_enabled_item); + + /* 'Enable Mobile Broadband' item */ + applet->wwan_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Mobile Broadband")); + id = g_signal_connect (applet->wwan_enabled_item, + "toggled", + G_CALLBACK (nma_set_wwan_enabled_cb), + applet); + applet->wwan_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wwan_enabled_item); + + /* 'Enable WiMAX Mobile Broadband' item */ + applet->wimax_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable WiMA_X Mobile Broadband")); + id = g_signal_connect (applet->wimax_enabled_item, + "toggled", + G_CALLBACK (nma_set_wimax_enabled_cb), + applet); + applet->wimax_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wimax_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + +#ifndef ENABLE_INDICATOR + /* Toggle notifications item */ + applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); + id = g_signal_connect (applet->notifications_enabled_item, + "toggled", + G_CALLBACK (nma_set_notifications_enabled_cb), + applet); + applet->notifications_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->notifications_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); +#endif /* ENABLE_INDICATOR */ + + /* 'Connection Information' item */ + applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); + g_signal_connect_swapped (applet->info_menu_item, + "activate", + G_CALLBACK (applet_connection_info_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->info_menu_item), image); + gtk_menu_shell_append (menu, applet->info_menu_item); + + /* 'Edit Connections...' item */ + applet->connections_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Edit Connections...")); + g_signal_connect (applet->connections_menu_item, + "activate", + G_CALLBACK (nma_edit_connections_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); + gtk_menu_shell_append (menu, applet->connections_menu_item); + +#ifndef ENABLE_INDICATOR + /* Separator */ + nma_menu_add_separator_item (GTK_WIDGET (menu)); + +#if 0 /* FIXME: Implement the help callback, nma_help_cb()! */ + /* Help item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Help")); + g_signal_connect (menu_item, "activate", G_CALLBACK (nma_help_cb), applet); + image = gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); +#endif + + /* About item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_About")); + g_signal_connect_swapped (menu_item, "activate", G_CALLBACK (applet_about_dialog_show), applet); + image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); +#endif /* ENABLE_INDICATOR */ + + gtk_widget_show_all (GTK_WIDGET (menu)); + + return GTK_WIDGET (menu); +} + +#ifdef ENABLE_INDICATOR +static void +indicator_update_menu (NMApplet *applet) +{ + if (!applet->in_fallback) { + if (applet->menu) + g_object_unref (applet->menu); + + applet->menu = gtk_menu_new (); + g_object_ref_sink (G_OBJECT (applet->menu)); + nma_menu_show_cb (applet->menu, applet); + nma_menu_add_separator_item (applet->menu); + applet->menu = nma_context_menu_create (applet, GTK_MENU_SHELL(applet->menu)); + + app_indicator_set_menu (applet->app_indicator, GTK_MENU (applet->menu)); + + nma_context_menu_update (applet); + } + + applet->update_menu_id = 0; +} + +static gboolean +applet_update_indicator_menu (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + indicator_update_menu (applet); + + return FALSE; +} + +void +applet_schedule_update_menu (NMApplet *applet) +{ + if (!applet->update_menu_id) + applet->update_menu_id = g_idle_add (applet_update_indicator_menu, applet); +} + +static void +new_connection_cb (NMRemoteSettings *settings, NMRemoteConnection *connection, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + //if (nm_connection_is_type (NM_CONNECTION (connection), NM_SETTING_VPN_SETTING_NAME)) + applet_schedule_update_menu (applet); +} +#endif /* ENABLE_INDICATOR */ + + +/*****************************************************************************/ + +static void +foo_set_icon (NMApplet *applet, guint32 layer, GdkPixbuf *pixbuf, char *icon_name, char *new_tip) +{ + GString *tip = NULL; + int i; + + switch (layer) { + case ICON_LAYER_LINK: + if (new_tip == NULL) + new_tip = g_strdup (_("No network connection")); + tip = g_string_new (new_tip); + break; + case ICON_LAYER_VPN: + tip = g_string_new (applet->tip); + + if (new_tip) + g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", new_tip); + break; + default: + tip = g_string_new (""); + if (layer > ICON_LAYER_MAX) { + g_string_free (tip, TRUE); + g_warning ("Tried to icon to invalid layer %d", layer); + return; + } + break; + } + + if (tip->len) { + g_free (applet->tip); + applet->tip = tip->str; + } + + g_free (new_tip); + g_string_free (tip, FALSE); + +#ifdef ENABLE_INDICATOR + if (icon_name == NULL && layer == ICON_LAYER_LINK) { + icon_name = g_strdup ("nm-no-connection"); + } + + if (icon_name != NULL && + g_strcmp0 (app_indicator_get_icon (applet->app_indicator), icon_name) != 0) { + app_indicator_set_icon_full (applet->app_indicator, icon_name, applet->tip); + } +#endif /* ENABLE_INDICATOR */ + + /* Ignore setting of the same icon as is already displayed */ + if (applet->icon_layers[layer] == pixbuf) + return; + + if (applet->icon_layers[layer]) { + g_object_unref (applet->icon_layers[layer]); + applet->icon_layers[layer] = NULL; + } + + if (pixbuf) + applet->icon_layers[layer] = g_object_ref (pixbuf); + + if (!applet->icon_layers[0]) { + nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + pixbuf = g_object_ref (applet->no_connection_icon); + } else { + pixbuf = gdk_pixbuf_copy (applet->icon_layers[0]); + + for (i = ICON_LAYER_LINK + 1; i <= ICON_LAYER_MAX; i++) { + GdkPixbuf *top = applet->icon_layers[i]; + + if (!top) + continue; + + gdk_pixbuf_composite (top, pixbuf, 0, 0, gdk_pixbuf_get_width (top), + gdk_pixbuf_get_height (top), + 0, 0, 1.0, 1.0, + GDK_INTERP_NEAREST, 255); + } + } + + gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); + g_object_unref (pixbuf); +#if GTK_CHECK_VERSION(2, 15, 0) + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +#else + gtk_status_icon_set_tooltip (applet->status_icon, applet->tip); +#endif + +} + +NMRemoteConnection * +applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) +{ + const GPtrArray *active_connections; + int i; + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMActiveConnection *active; + NMRemoteConnection *connection; + const char *connection_path; + const GPtrArray *devices; + + active = g_ptr_array_index (active_connections, i); + if (!active) + continue; + + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + connection = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (connection) + return connection; + } + return NULL; +} + +static gboolean +select_merged_notification_text (OfflineNotificationContextInfo *info) +{ + info->urgency = NOTIFY_URGENCY_LOW; + /* only do something if this is about full offline state */ + if(info->state != NM_STATE_UNKNOWN || info->device_state != NM_DEVICE_STATE_UNKNOWN) { + info->urgency = NOTIFY_URGENCY_NORMAL; + if (!info->title) + info->title = g_strdup (_("Network")); + if (info->state == NM_STATE_DISCONNECTED || info->state == NM_STATE_ASLEEP) { + info->text = _("Disconnected - you are now offline"); + } else + info->text = _("Disconnected"); + + switch (info->device_type) { + case NM_DEVICE_TYPE_ETHERNET: + info->icon = "notification-network-ethernet-disconnected"; + break; + case NM_DEVICE_TYPE_WIFI: + info->icon = "notification-network-wireless-disconnected"; + break; + case NM_DEVICE_TYPE_MODEM: + info->icon = "notification-gsm-disconnected"; + break; + default: + info->icon = "notification-network-disconnected"; + break; + } + g_debug("going for offline with icon: %s", info->icon); + return TRUE; + } + return FALSE; +} + +static gboolean +foo_online_offline_deferred_notify (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if(select_merged_notification_text (info)) + if (!g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS)) + applet_do_notify (applet, info->urgency, info->title, + info->text, info->icon, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + _("Don't show this message again"), + notify_dont_show_cb, + applet); + else + g_debug("no notification because merged found that we have nothing to say (e.g. not offline)"); + if (info->title) + g_free (info->title); + info->title = NULL; + g_free (applet->notification_queue_data); + applet->notification_queue_data = NULL; + applet->deferred_id = 0; + return FALSE; +} + +static void +applet_common_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + gboolean device_activating = FALSE, vpn_activating = FALSE; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (new_state) { + case NM_DEVICE_STATE_FAILED: + case NM_DEVICE_STATE_DISCONNECTED: + case NM_DEVICE_STATE_UNMANAGED: + case NM_DEVICE_STATE_UNAVAILABLE: + { + if (old_state != NM_DEVICE_STATE_FAILED && + old_state != NM_DEVICE_STATE_UNKNOWN && + old_state != NM_DEVICE_STATE_DISCONNECTED && + old_state != NM_DEVICE_STATE_UNMANAGED && + old_state != NM_DEVICE_STATE_UNAVAILABLE) { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->device_state = new_state; + info->device_state_reason = reason; + if (info->title) { + g_free(info->title); + info->title = NULL; + } + if (NM_IS_DEVICE_WIFI (device)) { + info->device_type = NM_DEVICE_TYPE_WIFI; + info->title = g_strdup(g_object_get_data (G_OBJECT(device), "canonical-last-essid")); + if (!info->title) + info->title = g_strdup (_("Wireless network")); + } else if (NM_IS_DEVICE_ETHERNET (device)) { + info->device_type = NM_DEVICE_TYPE_ETHERNET; + info->title = g_strdup(_("Wired network")); + } else if (NM_IS_DEVICE_MODEM (device)) { + info->device_type = NM_DEVICE_TYPE_MODEM; + info->title = g_strdup (_("Modem network")); + } else { + info->device_type = NM_DEVICE_TYPE_UNKNOWN; + info->title = g_strdup (_("Network")); + } + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + clear_animation_timeout (applet); + } else { + g_debug ("old state indicates that this was not a disconnect %d", old_state); + } + break; + } + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections or devices might not have come through yet. + */ + device_activating = TRUE; + break; + case NM_DEVICE_STATE_ACTIVATED: + default: + break; + } + + /* If there's an activating device but we're not animating, start animation. + * If we're animating, but there's no activating device or VPN, stop animating. + */ + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); +} + +static void +foo_device_state_changed_cb (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + g_assert (dclass); + + dclass->device_state_changed (device, new_state, old_state, reason, applet); + applet_common_device_state_changed (device, new_state, old_state, reason, applet); + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +static void +foo_device_added_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + if (!dclass) + return; + + if (dclass->device_added) + dclass->device_added (device, applet); + + g_signal_connect (device, "state-changed", + G_CALLBACK (foo_device_state_changed_cb), + user_data); + + foo_device_state_changed_cb (device, + nm_device_get_state (device), + NM_DEVICE_STATE_UNKNOWN, + NM_DEVICE_STATE_REASON_NONE, + applet); +} + +static void +foo_client_state_changed_cb (NMClient *client, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + g_debug("foo_client_state_changed_cb"); + switch (nm_client_get_state (client)) { + case NM_STATE_DISCONNECTED: + case NM_STATE_ASLEEP: + { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->state = nm_client_get_state (client); + select_merged_notification_text (info); + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + /* Fall through */ + } + default: + break; + } + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +#ifdef ENABLE_INDICATOR +static void +foo_device_removed_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} +#endif + +static void +foo_manager_running_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (nm_client_get_manager_running (client)) { + g_message ("NM appeared"); + } else { + g_message ("NM disappeared"); + clear_animation_timeout (applet); + } + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +#define VPN_STATE_ID_TAG "vpn-state-id" + +static void +foo_active_connections_changed_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const GPtrArray *active_list; + int i; + + /* Track the state of new VPN connections */ + active_list = nm_client_get_active_connections (client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + guint id; + + if ( !NM_IS_VPN_CONNECTION (candidate) + || g_object_get_data (G_OBJECT (candidate), VPN_STATE_ID_TAG)) + continue; + + id = g_signal_connect (G_OBJECT (candidate), "vpn-state-changed", + G_CALLBACK (vpn_connection_state_changed), applet); + g_object_set_data (G_OBJECT (candidate), VPN_STATE_ID_TAG, GUINT_TO_POINTER (id)); + } + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} + +static void +foo_manager_permission_changed (NMClient *client, + NMClientPermission permission, + NMClientPermissionResult result, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (permission <= NM_CLIENT_PERMISSION_LAST) + applet->permissions[permission] = result; +} + +static gboolean +foo_set_initial_state (gpointer data) +{ + NMApplet *applet = NM_APPLET (data); + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) + foo_device_added_cb (applet->nm_client, NM_DEVICE (g_ptr_array_index (devices, i)), applet); + + foo_active_connections_changed_cb (applet->nm_client, NULL, applet); + + applet_schedule_update_icon (applet); + + return FALSE; +} + +static gboolean setup_widgets (NMApplet *applet); +static void nma_icons_init (NMApplet *applet); + +static void +foo_client_setup (NMApplet *applet) +{ + NMClientPermission perm; + + applet->nm_client = nm_client_new (); + if (!applet->nm_client) + return; + + g_signal_connect (applet->nm_client, "notify::state", + G_CALLBACK (foo_client_state_changed_cb), + applet); + g_signal_connect (applet->nm_client, "notify::active-connections", + G_CALLBACK (foo_active_connections_changed_cb), + applet); + g_signal_connect (applet->nm_client, "device-added", + G_CALLBACK (foo_device_added_cb), + applet); +#ifdef ENABLE_INDICATOR + g_signal_connect (applet->nm_client, "device-removed", + G_CALLBACK (foo_device_removed_cb), + applet); +#endif /* ENABLE_INDICATOR */ + g_signal_connect (applet->nm_client, "notify::manager-running", + G_CALLBACK (foo_manager_running_cb), + applet); + + g_signal_connect (applet->nm_client, "permission-changed", + G_CALLBACK (foo_manager_permission_changed), + applet); + + /* Initialize permissions - the initial 'permission-changed' signal is emitted from NMClient constructor, and thus not caught */ + for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { + applet->permissions[perm] = nm_client_get_permission_result (applet->nm_client, perm); + } + + if (nm_client_get_manager_running (applet->nm_client)) + g_idle_add (foo_set_initial_state, applet); + + applet_schedule_update_icon (applet); +} + +static void +applet_common_get_device_icon (NMDeviceState state, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + NMApplet *applet) +{ + int stage = -1; + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + stage = 0; + break; + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + stage = 1; + break; + case NM_DEVICE_STATE_IP_CONFIG: + stage = 2; + break; + default: + break; + } + + if (stage >= 0) { + /* Don't overwrite pixbufs or names given by specific device classes */ + if (out_pixbuf && !*out_pixbuf) { + int i, j; + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { + char *name; + + name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); + nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); + g_free (name); + } + } + *out_pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; + if (out_pixbuf && *out_pixbuf) + g_object_ref (*out_pixbuf); + } + if (out_indicator_icon && !*out_indicator_icon) { + *out_indicator_icon = g_strdup_printf ("nm-stage%02d-connecting%02d", + stage + 1, + applet->animation_step + 1); + } + + applet->animation_step++; + if (applet->animation_step >= NUM_CONNECTING_FRAMES) + applet->animation_step = 0; + } +} + +static char * +get_tip_for_device_state (NMDevice *device, + NMDeviceState state, + NMConnection *connection) +{ + NMSettingConnection *s_con; + char *tip = NULL; + const char *id = NULL; + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + tip = g_strdup_printf (_("Preparing network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + tip = g_strdup_printf (_("Network connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static void +applet_get_device_icon_for_state (NMApplet *applet, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **out_tip) +{ + NMActiveConnection *active; + NMDevice *device = NULL; + NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; + NMADeviceClass *dclass; + + // FIXME: handle multiple device states here + + /* First show the best activating device's state */ + active = applet_get_best_activating_connection (applet, &device); + if (!active || !device) { + /* If there aren't any activating devices, then show the state of + * the default active connection instead. + */ + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) + goto out; + } + + state = nm_device_get_state (device); + + dclass = get_device_class (device, applet); + if (dclass) { + NMConnection *connection; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + /* device class returns a referenced pixbuf */ + dclass->get_icon (device, state, connection, out_pixbuf, out_indicator_icon, out_tip, applet); + if (out_tip && !*out_tip) + *out_tip = get_tip_for_device_state (device, state, connection); + } + +out: + applet_common_get_device_icon (state, out_pixbuf, out_indicator_icon, applet); +} + +static char * +get_tip_for_vpn (NMActiveConnection *active, NMVPNConnectionState state, NMApplet *applet) +{ + char *tip = NULL; + const char *path, *id = NULL; + GSList *iter, *list; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + if (!strcmp (nm_connection_get_path (candidate), path)) { + s_con = nm_connection_get_setting_connection (candidate); + id = nm_setting_connection_get_id (s_con); + break; + } + } + g_slist_free (list); + + if (!id) + return NULL; + + switch (state) { + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_PREPARE: + tip = g_strdup_printf (_("Starting VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + tip = g_strdup_printf (_("Requesting a VPN address for '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + tip = g_strdup_printf (_("VPN connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static gboolean +applet_update_icon (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GdkPixbuf *pixbuf = NULL; + NMState state; + char *dev_tip = NULL, *vpn_tip = NULL, *icon_name = NULL; + NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; + gboolean nm_running; + NMActiveConnection *active_vpn = NULL; + + applet->update_icon_id = 0; + + nm_running = nm_client_get_manager_running (applet->nm_client); + + /* Handle device state first */ + + state = nm_client_get_state (applet->nm_client); + if (!nm_running) + state = NM_STATE_UNKNOWN; + + +#ifdef ENABLE_INDICATOR + if (applet->in_fallback) + gtk_status_icon_set_visible (applet->status_icon, applet->visible); + else + gtk_status_icon_set_visible (applet->status_icon, FALSE); + + if (nm_running && applet->visible) + app_indicator_set_status (applet->app_indicator, APP_INDICATOR_STATUS_ACTIVE); + else + app_indicator_set_status (applet->app_indicator, APP_INDICATOR_STATUS_PASSIVE); +#else + gtk_status_icon_set_visible (applet->status_icon, applet->visible); +#endif + + switch (state) { + case NM_STATE_UNKNOWN: + case NM_STATE_ASLEEP: + icon_name = g_strdup ("nm-no-connection"); + pixbuf = nma_icon_check_and_load (icon_name, &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("Networking disabled")); + break; + case NM_STATE_DISCONNECTED: + icon_name = g_strdup ("nm-no-connection"); + pixbuf = nma_icon_check_and_load (icon_name, &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("No network connection")); + break; + default: + applet_get_device_icon_for_state (applet, &pixbuf, &icon_name, &dev_tip); + break; + } + + foo_set_icon (applet, ICON_LAYER_LINK, pixbuf, icon_name, dev_tip); + if (pixbuf) + g_object_unref (pixbuf); + if (icon_name) + g_free (icon_name); + + /* VPN state next */ + pixbuf = NULL; + icon_name = NULL; + active_vpn = applet_get_first_active_vpn_connection (applet, &vpn_state); + if (active_vpn) { + int i; + + switch (vpn_state) { + case NM_VPN_CONNECTION_STATE_ACTIVATED: +#ifndef ENABLE_INDICATOR + icon_name = g_strdup_printf ("nm-vpn-active-lock"); +#else + icon_name = g_strdup_printf ("%s-secure", app_indicator_get_icon (applet->app_indicator)); +#endif /* ENABLE_INDICATOR */ + pixbuf = nma_icon_check_and_load (icon_name, &applet->vpn_lock_icon, applet); + break; + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) { + char *name; + + name = g_strdup_printf ("nm-vpn-connecting%02d", i+1); + nma_icon_check_and_load (name, &applet->vpn_connecting_icons[i], applet); + g_free (name); + } + + pixbuf = applet->vpn_connecting_icons[applet->animation_step]; +#ifdef ENABLE_INDICATOR + icon_name = g_strdup_printf ("nm-vpn-connecting%02d", applet->animation_step+1); +#endif + applet->animation_step++; + if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) + applet->animation_step = 0; + break; + default: + break; + } + + vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); + } + foo_set_icon (applet, ICON_LAYER_VPN, pixbuf, icon_name, vpn_tip); + if (icon_name) + g_free (icon_name); + + return FALSE; +} + +void +applet_schedule_update_icon (NMApplet *applet) +{ + if (!applet->update_icon_id) + applet->update_icon_id = g_idle_add (applet_update_icon, applet); +} + +/*****************************************************************************/ + +static SecretsRequest * +applet_secrets_request_new (size_t totsize, + NMConnection *connection, + gpointer request_id, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + NMApplet *applet) +{ + SecretsRequest *req; + + g_return_val_if_fail (totsize >= sizeof (SecretsRequest), NULL); + g_return_val_if_fail (connection != NULL, NULL); + + req = g_malloc0 (totsize); + req->totsize = totsize; + req->connection = g_object_ref (connection); + req->reqid = request_id; + req->setting_name = g_strdup (setting_name); + req->hints = g_strdupv ((char **) hints); + req->flags = flags; + req->callback = callback; + req->callback_data = callback_data; + req->applet = applet; + return req; +} + +void +applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func) +{ + req->free_func = free_func; +} + +void +applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error) +{ + req->callback (req->applet->agent, error ? NULL : settings, error, req->callback_data); +} + +void +applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error) +{ + NMSetting *setting; + GHashTable *settings = NULL, *secrets; + + if (setting_name && !error) { + setting = nm_connection_get_setting_by_name (req->connection, setting_name); + if (setting) { + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, g_strdup (setting_name), secrets); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, setting_name); + } + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled setting '%s'", + __FILE__, __LINE__, __func__, setting_name); + } + } + + req->callback (req->applet->agent, settings, error, req->callback_data); +} + +void +applet_secrets_request_free (SecretsRequest *req) +{ + g_return_if_fail (req != NULL); + + if (req->free_func) + req->free_func (req); + + req->applet->secrets_reqs = g_slist_remove (req->applet->secrets_reqs, req); + + g_object_unref (req->connection); + g_free (req->setting_name); + g_strfreev (req->hints); + memset (req, 0, req->totsize); + g_free (req); +} + +static void +get_existing_secrets_cb (NMSecretAgent *agent, + NMConnection *connection, + GHashTable *secrets, + GError *secrets_error, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMADeviceClass *dclass; + GError *error = NULL; + + /* Merge existing secrets into connection; ignore errors */ + nm_connection_update_secrets (connection, req->setting_name, secrets, NULL); + + dclass = get_device_class_from_connection (connection, req->applet); + g_assert (dclass); + + /* Let the device class handle secrets */ + if (!dclass->get_secrets (req, &error)) { + g_warning ("%s:%d - %s", __func__, __LINE__, error ? error->message : "(unknown)"); + applet_secrets_request_complete (req, NULL, error); + applet_secrets_request_free (req); + g_error_free (error); + } + /* Otherwise success; wait for the secrets callback */ +} + +static void +applet_agent_get_secrets_cb (AppletAgent *agent, + gpointer request_id, + NMConnection *connection, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMSettingConnection *s_con; + NMADeviceClass *dclass; + GError *error = NULL; + SecretsRequest *req = NULL; + + s_con = nm_connection_get_setting_connection (connection); + g_return_if_fail (s_con != NULL); + + /* VPN secrets get handled a bit differently */ + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + req = applet_secrets_request_new (applet_vpn_request_get_secrets_size (), + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + if (!applet_vpn_request_get_secrets (req, &error)) + goto error; + + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + return; + } + + dclass = get_device_class_from_connection (connection, applet); + if (!dclass) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): device type unknown", + __FILE__, __LINE__, __func__); + goto error; + } + + if (!dclass->get_secrets) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NO_SECRETS, + "%s.%d (%s): no secrets found", + __FILE__, __LINE__, __func__); + goto error; + } + + g_assert (dclass->secrets_request_size); + req = applet_secrets_request_new (dclass->secrets_request_size, + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + + /* Get existing secrets, if any */ + nm_secret_agent_get_secrets (NM_SECRET_AGENT (applet->agent), + connection, + setting_name, + hints, + NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE, + get_existing_secrets_cb, + req); + return; + +error: + g_warning ("%s", error->message); + callback (agent, NULL, error, callback_data); + g_error_free (error); + + if (req) + applet_secrets_request_free (req); +} + +static void +applet_agent_cancel_secrets_cb (AppletAgent *agent, + gpointer request_id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GSList *iter; + + for (iter = applet->secrets_reqs; iter; iter = g_slist_next (iter)) { + SecretsRequest *req = iter->data; + + if (req->reqid == request_id) { + /* cancel and free this password request */ + applet_secrets_request_free (req); + } + } +} + +static void +applet_agent_registered_cb (AppletAgent *agent, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + /* If the shell is running and the agent just got registered, unregister it */ + if ( (nm_shell_watcher_version_at_least (applet->shell_watcher, 3, 4)) + && nm_secret_agent_get_registered (NM_SECRET_AGENT (agent))) { + g_message ("Stopping registered applet secret agent because GNOME Shell is running"); + nm_secret_agent_unregister (NM_SECRET_AGENT (agent)); + } +} + +/*****************************************************************************/ + +static void +nma_clear_icon (GdkPixbuf **icon, NMApplet *applet) +{ + g_return_if_fail (icon != NULL); + g_return_if_fail (applet != NULL); + + if (*icon && (*icon != applet->fallback_icon)) { + g_object_unref (*icon); + *icon = NULL; + } +} + +static void nma_icons_free (NMApplet *applet) +{ + int i, j; + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); + + nma_clear_icon (&applet->no_connection_icon, applet); + nma_clear_icon (&applet->ethernet_icon, applet); + nma_clear_icon (&applet->adhoc_icon, applet); + nma_clear_icon (&applet->wwan_icon, applet); + nma_clear_icon (&applet->wwan_tower_icon, applet); + nma_clear_icon (&applet->vpn_lock_icon, applet); + nma_clear_icon (&applet->wifi_00_icon, applet); + nma_clear_icon (&applet->wifi_25_icon, applet); + nma_clear_icon (&applet->wifi_50_icon, applet); + nma_clear_icon (&applet->wifi_75_icon, applet); + nma_clear_icon (&applet->wifi_100_icon, applet); + nma_clear_icon (&applet->secure_lock_icon, applet); + + nma_clear_icon (&applet->mb_tech_1x_icon, applet); + nma_clear_icon (&applet->mb_tech_evdo_icon, applet); + nma_clear_icon (&applet->mb_tech_gprs_icon, applet); + nma_clear_icon (&applet->mb_tech_edge_icon, applet); + nma_clear_icon (&applet->mb_tech_umts_icon, applet); + nma_clear_icon (&applet->mb_tech_hspa_icon, applet); + nma_clear_icon (&applet->mb_tech_lte_icon, applet); + nma_clear_icon (&applet->mb_roaming_icon, applet); + nma_clear_icon (&applet->mb_tech_3g_icon, applet); + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) + nma_clear_icon (&applet->network_connecting_icons[i][j], applet); + } + + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) + nma_clear_icon (&applet->vpn_connecting_icons[i], applet); + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); +} + +GdkPixbuf * +nma_icon_check_and_load (const char *name, GdkPixbuf **icon, NMApplet *applet) +{ + GError *error = NULL; + + g_return_val_if_fail (name != NULL, NULL); + g_return_val_if_fail (icon != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + /* icon already loaded successfully */ + if (*icon && (*icon != applet->fallback_icon)) + return *icon; + + /* Try to load the icon; if the load fails, log the problem, and set + * the icon to the fallback icon if requested. + */ + *icon = gtk_icon_theme_load_icon (applet->icon_theme, name, applet->icon_size, 0, &error); + if (!*icon) { + g_warning ("Icon %s missing: (%d) %s", + name, + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + + *icon = applet->fallback_icon; + } + return *icon; +} + +#include "fallback-icon.h" + +static gboolean +nma_icons_reload (NMApplet *applet) +{ + GError *error = NULL; + GdkPixbufLoader *loader; + + g_return_val_if_fail (applet->icon_size > 0, FALSE); + + nma_icons_free (applet); + + loader = gdk_pixbuf_loader_new_with_type ("png", &error); + if (!loader) + goto error; + + if (!gdk_pixbuf_loader_write (loader, + fallback_icon_data, + sizeof (fallback_icon_data), + &error)) + goto error; + + if (!gdk_pixbuf_loader_close (loader, &error)) + goto error; + + applet->fallback_icon = gdk_pixbuf_loader_get_pixbuf (loader); + g_object_ref (applet->fallback_icon); + g_assert (applet->fallback_icon); + g_object_unref (loader); + + return TRUE; + +error: + g_warning ("Could not load fallback icon: (%d) %s", + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + /* Die if we can't get a fallback icon */ + g_assert (FALSE); + return FALSE; +} + +static void nma_icon_theme_changed (GtkIconTheme *icon_theme, NMApplet *applet) +{ + nma_icons_reload (applet); +} + +static void nma_icons_init (NMApplet *applet) +{ + GdkScreen *screen; + gboolean path_appended; + + if (applet->icon_theme) { + g_signal_handlers_disconnect_by_func (applet->icon_theme, + G_CALLBACK (nma_icon_theme_changed), + applet); + g_object_unref (G_OBJECT (applet->icon_theme)); + } + + screen = gtk_status_icon_get_screen (applet->status_icon); + g_assert (screen); + applet->icon_theme = gtk_icon_theme_get_for_screen (screen); + + /* If not done yet, append our search path */ + path_appended = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended")); + if (path_appended == FALSE) { + gtk_icon_theme_append_search_path (applet->icon_theme, ICONDIR); + g_object_set_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended", + GINT_TO_POINTER (TRUE)); + } + + g_signal_connect (applet->icon_theme, "changed", G_CALLBACK (nma_icon_theme_changed), applet); +} + +static void +status_icon_screen_changed_cb (GtkStatusIcon *icon, + GParamSpec *pspec, + NMApplet *applet) +{ + nma_icons_init (applet); + nma_icon_theme_changed (NULL, applet); +} + +static gboolean +status_icon_size_changed_cb (GtkStatusIcon *icon, + gint size, + NMApplet *applet) +{ + if (getenv ("NMA_SIZE_DEBUG")) { + g_message ("%s(): status icon size now %d", __func__, size); + } + + /* icon_size may be 0 if for example the panel hasn't given us any space + * yet. We'll get resized later, but for now just load the 16x16 icons. + */ + applet->icon_size = MAX (16, size); + + nma_icons_reload (applet); + + applet_schedule_update_icon (applet); + + return TRUE; +} + +static void +status_icon_activate_cb (GtkStatusIcon *icon, NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + + /* Kill any old menu */ + if (applet->menu) + g_object_unref (applet->menu); + + /* And make a fresh new one */ + applet->menu = gtk_menu_new (); + /* Sink the ref so we can explicitly destroy the menu later */ + g_object_ref_sink (G_OBJECT (applet->menu)); + + gtk_container_set_border_width (GTK_CONTAINER (applet->menu), 0); + g_signal_connect (applet->menu, "show", G_CALLBACK (nma_menu_show_cb), applet); + g_signal_connect (applet->menu, "deactivate", G_CALLBACK (nma_menu_deactivate_cb), applet); + + /* Display the new menu */ + gtk_menu_popup (GTK_MENU (applet->menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + 1, gtk_get_current_event_time ()); +} + +static void +status_icon_popup_menu_cb (GtkStatusIcon *icon, + guint button, + guint32 activate_time, + NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + + /* Kill the old menu */ + if (applet->context_menu) + g_object_unref (applet->context_menu); + + /* And make a fresh new one */ + applet->context_menu = gtk_menu_new (); + g_object_ref_sink (G_OBJECT (applet->context_menu)); + applet->context_menu = nma_context_menu_create (applet, GTK_MENU_SHELL (applet->context_menu)); + nma_context_menu_update (applet); + gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + button, activate_time); +} + +#ifdef ENABLE_INDICATOR +static GtkStatusIcon * +indicator_fallback (AppIndicator *indicator) +{ + NMApplet *applet; + + applet = NM_APPLET(g_object_get_data (G_OBJECT (indicator), "applet")); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (applet->status_icon, NULL); + + g_message ("using fallback from indicator to GtkStatusIcon"); + gtk_status_icon_set_visible (applet->status_icon, applet->visible); + + applet->in_fallback = TRUE; + + return applet->status_icon; +} + +static void +indicator_unfallback (AppIndicator *indicator, GtkStatusIcon *status_icon) +{ + NMApplet *applet; + + applet = NM_APPLET(g_object_get_data (G_OBJECT (indicator), "applet")); + g_return_if_fail (NM_IS_APPLET (applet)); + g_return_if_fail (applet->status_icon); + + g_message ("moving back from GtkStatusIcon to indicator"); + gtk_status_icon_set_visible (applet->status_icon, FALSE); + + applet->in_fallback = FALSE; +} + +static gboolean +setup_indicator_menu (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->in_fallback = FALSE; + + applet->app_indicator = app_indicator_new + ("nm-applet", "nm-no-connection", + APP_INDICATOR_CATEGORY_SYSTEM_SERVICES); + + app_indicator_set_title(applet->app_indicator, _("Network")); + + g_object_set_data (G_OBJECT (applet->app_indicator), "applet", (gpointer) applet); + + APP_INDICATOR_GET_CLASS(applet->app_indicator)->fallback = indicator_fallback; + APP_INDICATOR_GET_CLASS(applet->app_indicator)->unfallback = indicator_unfallback; + + applet->menu = gtk_menu_new (); + + g_object_ref_sink (G_OBJECT (applet->menu)); + + applet->menu = nma_context_menu_create (applet, GTK_MENU_SHELL(applet->menu)); + nma_context_menu_update(applet); + + app_indicator_set_menu(applet->app_indicator, GTK_MENU(applet->menu)); + + return TRUE; +} +#endif /* ENABLE_INDICATOR */ + +static gboolean +setup_statusicon_menu (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->status_icon = gtk_status_icon_new (); + +#ifdef ENABLE_INDICATOR + gtk_status_icon_set_visible (applet->status_icon, FALSE); +#endif + + if (!applet->status_icon) + return FALSE; + if (shell_debug) + gtk_status_icon_set_name (applet->status_icon, "adsfasdfasdfadfasdf"); + + g_signal_connect (applet->status_icon, "notify::screen", + G_CALLBACK (status_icon_screen_changed_cb), applet); + g_signal_connect (applet->status_icon, "size-changed", + G_CALLBACK (status_icon_size_changed_cb), applet); + g_signal_connect (applet->status_icon, "activate", + G_CALLBACK (status_icon_activate_cb), applet); + g_signal_connect (applet->status_icon, "popup-menu", + G_CALLBACK (status_icon_popup_menu_cb), applet); + + applet->context_menu = gtk_menu_new (); + applet->context_menu = nma_context_menu_create (applet, GTK_MENU_SHELL (applet->context_menu)); + g_object_ref_sink (G_OBJECT (applet->context_menu)); + if (!applet->context_menu) + return FALSE; + + return TRUE; +} + +static gboolean +setup_widgets (NMApplet *applet) +{ + gboolean success = FALSE; + gboolean indicator_success = FALSE; + + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + success = setup_statusicon_menu (applet); + +#ifdef ENABLE_INDICATOR + indicator_success = setup_indicator_menu (applet); +#endif + +#ifndef ENABLE_INDICATOR + return success; +#else + return success || indicator_success; +#endif +} + +static void +applet_embedded_cb (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + gboolean embedded = gtk_status_icon_is_embedded (GTK_STATUS_ICON (object)); + + g_message ("applet now %s the notification area", + embedded ? "embedded in" : "removed from"); +} + +#if GLIB_CHECK_VERSION(2,26,0) +static gboolean +delayed_start_agent (gpointer user_data) +{ + NMApplet *applet = user_data; + + applet->agent_start_id = 0; + + g_assert (applet->agent); + + /* If the agent is already running, there's nothing to do. */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent)) == TRUE) + return FALSE; + + if (nm_secret_agent_register (NM_SECRET_AGENT (applet->agent))) + g_message ("Starting applet secret agent because GNOME Shell disappeared"); + else + g_warning ("Failed to start applet secret agent!"); + return FALSE; +} + +static void +shell_version_changed_cb (NMShellWatcher *watcher, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = user_data; + + if (applet->agent_start_id) { + g_source_remove (applet->agent_start_id); + applet->agent_start_id = 0; + } + + if (!applet->agent) + return; + + if (nm_shell_watcher_version_at_least (watcher, 3, 4)) { + /* GNOME Shell handles all secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) { + g_message ("Stopping applet secret agent because GNOME Shell appeared"); + nm_secret_agent_unregister (NM_SECRET_AGENT (applet->agent)); + } + } else if (nm_shell_watcher_version_at_least (watcher, 3, 2)) { + /* GNOME Shell handles everything except VPN secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + g_message ("Applet secret agent handling only VPN secrets because GNOME Shell appeared"); + applet_agent_handle_vpn_only (applet->agent, TRUE); + } else { + /* If the shell quit and our agent wasn't already registered, do it + * now on a delay (just in case the shell is restarting). + */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + applet->agent_start_id = g_timeout_add_seconds (4, delayed_start_agent, applet); + applet_agent_handle_vpn_only (applet->agent, FALSE); + } +} +#endif + +static gboolean +dbus_setup (NMApplet *applet, GError **error) +{ + DBusConnection *connection; + DBusGProxy *proxy; + guint result; + gboolean success; + + applet->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, error); + if (!applet->bus) + return FALSE; + + connection = dbus_g_connection_get_connection (applet->bus); + dbus_connection_set_exit_on_disconnect (connection, FALSE); + + applet->session_bus = dbus_g_bus_get (DBUS_BUS_SESSION, error); + if (!applet->session_bus) + return FALSE; + + dbus_g_connection_register_g_object (applet->session_bus, + "/org/gnome/network_manager_applet", + G_OBJECT (applet)); + + proxy = dbus_g_proxy_new_for_name (applet->session_bus, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + success = dbus_g_proxy_call (proxy, "RequestName", error, + G_TYPE_STRING, "org.gnome.network_manager_applet", + G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE, + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID); + g_object_unref (proxy); + + return success; +} + +static void +applet_gsettings_show_changed (GSettings *settings, + gchar *key, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + g_return_if_fail (NM_IS_APPLET(applet)); + g_return_if_fail (key != NULL); + + applet->visible = g_settings_get_boolean (settings, key); + + gtk_status_icon_set_visible (applet->status_icon, applet->visible); +} + +static GObject * +constructor (GType type, + guint n_props, + GObjectConstructParam *construct_props) +{ + NMApplet *applet; + GError* error = NULL; + + applet = NM_APPLET (G_OBJECT_CLASS (nma_parent_class)->constructor (type, n_props, construct_props)); + + g_set_application_name (_("NetworkManager Applet")); + gtk_window_set_default_icon_name (GTK_STOCK_NETWORK); + + applet->info_dialog_ui = gtk_builder_new (); + + if (!gtk_builder_add_from_file (applet->info_dialog_ui, UIDIR "/info.ui", &error)) { + g_warning ("Couldn't load info dialog ui file: %s", error->message); + g_error_free (error); + goto error; + } + + applet->gsettings = g_settings_new (APPLET_PREFS_SCHEMA); + applet->visible = g_settings_get_boolean (applet->gsettings, PREF_SHOW_APPLET); + g_signal_connect (applet->gsettings, "changed::show-applet", + G_CALLBACK (applet_gsettings_show_changed), applet); + + foo_client_setup (applet); + + /* Load pixmaps and create applet widgets */ + if (!setup_widgets (applet)) + goto error; + nma_icons_init (applet); + + if (!notify_is_initted ()) + notify_init ("NetworkManager"); + + if (!dbus_setup (applet, &error)) { + g_warning ("Failed to initialize D-Bus: %s", error->message); + g_error_free (error); + goto error; + } + applet->settings = nm_remote_settings_new (applet->bus); + +#ifdef BUILD_MIGRATION_TOOL + { + char *argv[2] = { LIBEXECDIR "/nm-applet-migration-tool", NULL }; + int status; + + /* Move user connections to the system */ + if (!g_spawn_sync (NULL, argv, NULL, 0, NULL, NULL, + NULL, NULL, &status, &error)) { + g_warning ("Could not run nm-applet-migration-tool: %s", + error->message); + g_error_free (error); + } else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { + g_warning ("nm-applet-migration-tool exited with error"); + } + } +#endif + +#ifdef ENABLE_INDICATOR + /* Watch for new connections */ + g_signal_connect (applet->settings, "new-connection", + G_CALLBACK (new_connection_cb), + applet); +#endif /* ENABLE_INDICATOR */ + + applet->agent = applet_agent_new (); + g_assert (applet->agent); + g_signal_connect (applet->agent, APPLET_AGENT_GET_SECRETS, + G_CALLBACK (applet_agent_get_secrets_cb), applet); + g_signal_connect (applet->agent, APPLET_AGENT_CANCEL_SECRETS, + G_CALLBACK (applet_agent_cancel_secrets_cb), applet); + g_signal_connect (applet->agent, "notify::" NM_SECRET_AGENT_REGISTERED, + G_CALLBACK (applet_agent_registered_cb), applet); + + /* Initialize device classes */ + applet->ethernet_class = applet_device_ethernet_get_class (applet); + g_assert (applet->ethernet_class); + + applet->wifi_class = applet_device_wifi_get_class (applet); + g_assert (applet->wifi_class); + + applet->gsm_class = applet_device_gsm_get_class (applet); + g_assert (applet->gsm_class); + + applet->cdma_class = applet_device_cdma_get_class (applet); + g_assert (applet->cdma_class); + + applet->bt_class = applet_device_bt_get_class (applet); + g_assert (applet->bt_class); + + applet->wimax_class = applet_device_wimax_get_class (applet); + g_assert (applet->wimax_class); + + /* Track embedding to help debug issues where user has removed the + * notification area applet from the panel, and thus nm-applet too. + */ + g_signal_connect (applet->status_icon, "notify::embedded", + G_CALLBACK (applet_embedded_cb), NULL); + applet_embedded_cb (G_OBJECT (applet->status_icon), NULL, NULL); + +#if GLIB_CHECK_VERSION(2,26,0) + /* Watch GNOME Shell so we can unregister our applet agent if it appears */ + applet->shell_watcher = nm_shell_watcher_new (); + g_signal_connect (applet->shell_watcher, + "notify::shell-version", + G_CALLBACK (shell_version_changed_cb), + applet); +#endif + + return G_OBJECT (applet); + +error: + g_object_unref (applet); + return NULL; +} + +static void finalize (GObject *object) +{ + NMApplet *applet = NM_APPLET (object); + + g_slice_free (NMADeviceClass, applet->ethernet_class); + g_slice_free (NMADeviceClass, applet->wifi_class); + g_slice_free (NMADeviceClass, applet->gsm_class); + g_slice_free (NMADeviceClass, applet->cdma_class); + g_slice_free (NMADeviceClass, applet->bt_class); + g_slice_free (NMADeviceClass, applet->wimax_class); + + if (applet->update_icon_id) + g_source_remove (applet->update_icon_id); + +#ifdef ENABLE_INDICATOR + if (applet->update_menu_id) + g_source_remove (applet->update_menu_id); +#endif /* ENABLE_INDICATOR */ + + if (applet->menu) + g_object_unref (applet->menu); + nma_icons_free (applet); + + g_free (applet->tip); + + while (g_slist_length (applet->secrets_reqs)) + applet_secrets_request_free ((SecretsRequest *) applet->secrets_reqs->data); + + if (applet->notification) { + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + } + + if (applet->info_dialog_ui) + g_object_unref (applet->info_dialog_ui); + + if (applet->gsettings) + g_object_unref (applet->gsettings); + + if (applet->status_icon) + g_object_unref (applet->status_icon); + +#ifdef ENABLE_INDICATOR + if (applet->app_indicator) + g_object_unref (applet->app_indicator); +#endif + + if (applet->nm_client) + g_object_unref (applet->nm_client); + + if (applet->fallback_icon) + g_object_unref (applet->fallback_icon); + + if (applet->agent) + g_object_unref (applet->agent); + + if (applet->settings) + g_object_unref (applet->settings); + + if (applet->bus) + dbus_g_connection_unref (applet->bus); + + if (applet->session_bus) + dbus_g_connection_unref (applet->session_bus); + +#if GLIB_CHECK_VERSION(2,26,0) + if (applet->shell_watcher) + g_object_unref (applet->shell_watcher); +#endif + if (applet->agent_start_id) + g_source_remove (applet->agent_start_id); + + G_OBJECT_CLASS (nma_parent_class)->finalize (object); +} + +static void nma_init (NMApplet *applet) +{ + applet->animation_id = 0; + applet->animation_step = 0; + applet->icon_theme = NULL; + applet->notification = NULL; + applet->icon_size = 16; +} + +enum { + PROP_0, + PROP_LOOP, + LAST_PROP +}; + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMApplet *applet = NM_APPLET (object); + + switch (prop_id) { + case PROP_LOOP: + applet->loop = g_value_get_pointer (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void nma_class_init (NMAppletClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GParamSpec *pspec; + + oclass->set_property = set_property; + oclass->constructor = constructor; + oclass->finalize = finalize; + + pspec = g_param_spec_pointer ("loop", "Loop", "Applet mainloop", G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); + g_object_class_install_property (oclass, PROP_LOOP, pspec); + + dbus_g_object_type_install_info (NM_TYPE_APPLET, &dbus_glib_nma_object_info); +} + +NMApplet * +nm_applet_new (GMainLoop *loop) +{ + return g_object_new (NM_TYPE_APPLET, "loop", loop, NULL); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/mobile-wizard.patch/src/libnm-gtk/nm-mobile-wizard.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/mobile-wizard.patch/src/libnm-gtk/nm-mobile-wizard.c --- network-manager-applet-0.9.4.1/.pc/mobile-wizard.patch/src/libnm-gtk/nm-mobile-wizard.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/mobile-wizard.patch/src/libnm-gtk/nm-mobile-wizard.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,1705 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#include "config.h" + +#include +#include + +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include "nm-mobile-wizard.h" +#include "nmn-mobile-providers.h" +#include "nm-ui-utils.h" + +#define DEVICE_TAG "device" +#define TYPE_TAG "setting-type" + +static char *get_selected_country (NMAMobileWizard *self, gboolean *unlisted); +static NmnMobileProvider *get_selected_provider (NMAMobileWizard *self); +static NmnMobileAccessMethodType get_provider_unlisted_type (NMAMobileWizard *self); +static NmnMobileAccessMethod *get_selected_method (NMAMobileWizard *self, gboolean *manual); + +struct NMAMobileWizard { + GtkWidget *assistant; + NMAMobileWizardCallback callback; + gpointer user_data; + GHashTable *providers; + GHashTable *country_codes; + NmnMobileAccessMethodType method_type; + gboolean initial_method_type; + gboolean will_connect_after; + + /* Intro page */ + GtkWidget *dev_combo; + GtkTreeStore *dev_store; + char *dev_desc; + NMClient *client; + + /* Country page */ + guint32 country_idx; + const char *country; + GtkWidget *country_page; + GtkWidget *country_view; + GtkTreeStore *country_store; + GtkTreeModelSort *country_sort; + guint32 country_focus_id; + + /* Providers page */ + guint32 providers_idx; + GtkWidget *providers_page; + GtkWidget *providers_view; + GtkTreeStore *providers_store; + GtkTreeModelSort *providers_sort; + guint32 providers_focus_id; + GtkWidget *providers_view_radio; + + GtkWidget *provider_unlisted_radio; + GtkWidget *provider_unlisted_entry; + GtkWidget *provider_unlisted_type_combo; + + gboolean provider_only_cdma; + + /* Plan page */ + guint32 plan_idx; + GtkWidget *plan_page; + GtkWidget *plan_combo; + GtkTreeStore *plan_store; + guint32 plan_focus_id; + + GtkWidget *plan_unlisted_entry; + + /* Confirm page */ + GtkWidget *confirm_page; + GtkWidget *confirm_provider; + GtkWidget *confirm_plan; + GtkWidget *confirm_apn; + GtkWidget *confirm_plan_label; + GtkWidget *confirm_device; + GtkWidget *confirm_device_label; + guint32 confirm_idx; +}; + +static void +assistant_closed (GtkButton *button, gpointer user_data) +{ + NMAMobileWizard *self = user_data; + NmnMobileProvider *provider; + NmnMobileAccessMethod *method; + NMAMobileWizardAccessMethod *wiz_method; + NmnMobileAccessMethodType method_type = self->method_type; + + wiz_method = g_malloc0 (sizeof (NMAMobileWizardAccessMethod)); + + provider = get_selected_provider (self); + if (!provider) { + if (method_type == NMN_MOBILE_ACCESS_METHOD_TYPE_UNKNOWN) + method_type = get_provider_unlisted_type (self); + + wiz_method->provider_name = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->provider_unlisted_entry))); + if (method_type == NMN_MOBILE_ACCESS_METHOD_TYPE_GSM) + wiz_method->gsm_apn = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->plan_unlisted_entry))); + } else { + gboolean manual = FALSE; + + wiz_method->provider_name = g_strdup (provider->name); + method = get_selected_method (self, &manual); + if (method) { + if (method->name) + wiz_method->plan_name = g_strdup (method->name); + method_type = method->type; + if (method_type == NMN_MOBILE_ACCESS_METHOD_TYPE_GSM) + wiz_method->gsm_apn = g_strdup (method->gsm_apn); + wiz_method->username = method->username ? g_strdup (method->username) : NULL; + wiz_method->password = method->password ? g_strdup (method->password) : NULL; + } else { + if (self->provider_only_cdma) { + method_type = NMN_MOBILE_ACCESS_METHOD_TYPE_CDMA; + /* Take username and password from the first (only) method for CDMA only provider */ + if (provider->methods) { + method = provider->methods->data; + wiz_method->username = method->username ? g_strdup (method->username) : NULL; + wiz_method->password = method->password ? g_strdup (method->password) : NULL; + } + } + else { + method_type = NMN_MOBILE_ACCESS_METHOD_TYPE_GSM; + wiz_method->gsm_apn = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->plan_unlisted_entry))); + } + } + } + + switch (method_type) { + case NMN_MOBILE_ACCESS_METHOD_TYPE_GSM: + wiz_method->devtype = NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS; + break; + case NMN_MOBILE_ACCESS_METHOD_TYPE_CDMA: + wiz_method->devtype = NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO; + break; + default: + g_assert_not_reached (); + break; + } + + (*(self->callback)) (self, FALSE, wiz_method, self->user_data); + + if (provider) + nmn_mobile_provider_unref (provider); + g_free (wiz_method->provider_name); + g_free (wiz_method->plan_name); + g_free (wiz_method->username); + g_free (wiz_method->password); + g_free (wiz_method->gsm_apn); + g_free (wiz_method); +} + +static void +assistant_cancel (GtkButton *button, gpointer user_data) +{ + NMAMobileWizard *self = user_data; + + (*(self->callback)) (self, TRUE, NULL, self->user_data); +} + +/**********************************************************/ +/* Confirm page */ +/**********************************************************/ + +static void +confirm_setup (NMAMobileWizard *self) +{ + GtkWidget *vbox, *label, *alignment, *pbox; + +#if GTK_CHECK_VERSION(3,1,6) + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); +#else + vbox = gtk_vbox_new (FALSE, 6); +#endif + gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); + label = gtk_label_new (_("Your mobile broadband connection is configured with the following settings:")); + gtk_widget_set_size_request (label, 500, -1); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 6); + + /* Device */ + self->confirm_device_label = gtk_label_new (_("Your Device:")); + gtk_misc_set_alignment (GTK_MISC (self->confirm_device_label), 0, 0.5); + gtk_box_pack_start (GTK_BOX (vbox), self->confirm_device_label, FALSE, FALSE, 0); + + alignment = gtk_alignment_new (0, 0.5, 0, 0); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 12, 25, 0); + self->confirm_device = gtk_label_new (NULL); + gtk_container_add (GTK_CONTAINER (alignment), self->confirm_device); + gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0); + + /* Provider */ + label = gtk_label_new (_("Your Provider:")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); + + alignment = gtk_alignment_new (0, 0.5, 0, 0); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 12, 25, 0); + self->confirm_provider = gtk_label_new (NULL); + gtk_container_add (GTK_CONTAINER (alignment), self->confirm_provider); + gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0); + + /* Plan and APN */ + self->confirm_plan_label = gtk_label_new (_("Your Plan:")); + gtk_misc_set_alignment (GTK_MISC (self->confirm_plan_label), 0, 0.5); + gtk_box_pack_start (GTK_BOX (vbox), self->confirm_plan_label, FALSE, FALSE, 0); + + alignment = gtk_alignment_new (0, 0.5, 0, 0); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 25, 0); +#if GTK_CHECK_VERSION(3,1,6) + pbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); +#else + pbox = gtk_vbox_new (FALSE, 0); +#endif + gtk_container_add (GTK_CONTAINER (alignment), pbox); + gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0); + + self->confirm_plan = gtk_label_new (NULL); + gtk_misc_set_alignment (GTK_MISC (self->confirm_plan), 0, 0.5); + gtk_box_pack_start (GTK_BOX (pbox), self->confirm_plan, FALSE, FALSE, 0); + + self->confirm_apn = gtk_label_new (NULL); + gtk_misc_set_alignment (GTK_MISC (self->confirm_apn), 0, 0.5); + gtk_misc_set_padding (GTK_MISC (self->confirm_apn), 0, 6); + gtk_box_pack_start (GTK_BOX (pbox), self->confirm_apn, FALSE, FALSE, 0); + + if (self->will_connect_after) { + alignment = gtk_alignment_new (0, 0.5, 1, 0); + label = gtk_label_new (_("A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose \"Network Connections\" from the System >> Preferences menu.")); + gtk_widget_set_size_request (label, 500, -1); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_misc_set_padding (GTK_MISC (label), 0, 6); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_container_add (GTK_CONTAINER (alignment), label); + gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 6); + } + + gtk_widget_show_all (vbox); + self->confirm_idx = gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); + gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), + vbox, _("Confirm Mobile Broadband Settings")); + + gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); + gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_CONFIRM); + + self->confirm_page = vbox; +} + +static void +confirm_prepare (NMAMobileWizard *self) +{ + NmnMobileProvider *provider = NULL; + NmnMobileAccessMethod *method = NULL; + char *country = NULL; + gboolean manual = FALSE; + GString *str; + + country = get_selected_country (self, NULL); + provider = get_selected_provider (self); + if (provider) + method = get_selected_method (self, &manual); + + /* Provider */ + str = g_string_new (NULL); + if (provider) { + g_string_append (str, provider->name); + nmn_mobile_provider_unref (provider); + } else { + const char *unlisted_provider; + + unlisted_provider = gtk_entry_get_text (GTK_ENTRY (self->provider_unlisted_entry)); + g_string_append (str, unlisted_provider); + } + + if (country) { + g_string_append_printf (str, ", %s", country); + g_free (country); + } + gtk_label_set_text (GTK_LABEL (self->confirm_provider), str->str); + g_string_free (str, TRUE); + + if (self->dev_desc) + gtk_label_set_text (GTK_LABEL (self->confirm_device), self->dev_desc); + else { + gtk_widget_hide (self->confirm_device_label); + gtk_widget_hide (self->confirm_device); + } + + if (self->provider_only_cdma) { + gtk_widget_hide (self->confirm_plan_label); + gtk_widget_hide (self->confirm_plan); + gtk_widget_hide (self->confirm_apn); + } else { + const char *apn = NULL; + + /* Plan */ + gtk_widget_show (self->confirm_plan_label); + gtk_widget_show (self->confirm_plan); + gtk_widget_show (self->confirm_apn); + + if (method) { + gtk_label_set_text (GTK_LABEL (self->confirm_plan), method->name); + apn = method->gsm_apn; + } else { + gtk_label_set_text (GTK_LABEL (self->confirm_plan), _("Unlisted")); + apn = gtk_entry_get_text (GTK_ENTRY (self->plan_unlisted_entry)); + } + + str = g_string_new (NULL); + g_string_append_printf (str, "APN: %s", apn); + gtk_label_set_markup (GTK_LABEL (self->confirm_apn), str->str); + g_string_free (str, TRUE); + } +} + +/**********************************************************/ +/* Plan page */ +/**********************************************************/ + +#define PLAN_COL_NAME 0 +#define PLAN_COL_METHOD 1 +#define PLAN_COL_MANUAL 2 + +static NmnMobileAccessMethod * +get_selected_method (NMAMobileWizard *self, gboolean *manual) +{ + GtkTreeModel *model; + NmnMobileAccessMethod *method = NULL; + GtkTreeIter iter; + gboolean is_manual = FALSE; + + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (self->plan_combo), &iter)) + return NULL; + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (self->plan_combo)); + if (!model) + return NULL; + + gtk_tree_model_get (model, &iter, + PLAN_COL_METHOD, &method, + PLAN_COL_MANUAL, &is_manual, + -1); + if (is_manual) { + if (manual) + *manual = is_manual; + if (method) + nmn_mobile_access_method_unref (method); + method = NULL; + } + + return method; +} + +static void +plan_update_complete (NMAMobileWizard *self) +{ + GtkAssistant *assistant = GTK_ASSISTANT (self->assistant); + gboolean is_manual = FALSE; + NmnMobileAccessMethod *method; + + method = get_selected_method (self, &is_manual); + if (method) { + gtk_assistant_set_page_complete (assistant, self->plan_page, TRUE); + nmn_mobile_access_method_unref (method); + } else { + const char *manual_apn; + + manual_apn = gtk_entry_get_text (GTK_ENTRY (self->plan_unlisted_entry)); + gtk_assistant_set_page_complete (assistant, self->plan_page, + (manual_apn && strlen (manual_apn))); + } +} + +static void +plan_combo_changed (NMAMobileWizard *self) +{ + NmnMobileAccessMethod *method = NULL; + gboolean is_manual = FALSE; + + method = get_selected_method (self, &is_manual); + if (method) { + gtk_entry_set_text (GTK_ENTRY (self->plan_unlisted_entry), method->gsm_apn); + gtk_widget_set_sensitive (self->plan_unlisted_entry, FALSE); + } else { + gtk_entry_set_text (GTK_ENTRY (self->plan_unlisted_entry), ""); + gtk_widget_set_sensitive (self->plan_unlisted_entry, TRUE); + gtk_widget_grab_focus (self->plan_unlisted_entry); + } + + if (method) + nmn_mobile_access_method_unref (method); + + plan_update_complete (self); +} + +static gboolean +plan_row_separator_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) +{ + NmnMobileAccessMethod *method = NULL; + gboolean is_manual = FALSE; + gboolean draw_separator = FALSE; + + gtk_tree_model_get (model, iter, + PLAN_COL_METHOD, &method, + PLAN_COL_MANUAL, &is_manual, + -1); + if (!method && !is_manual) + draw_separator = TRUE; + if (method) + nmn_mobile_access_method_unref (method); + return draw_separator; +} + +static void +apn_filter_cb (GtkEntry * entry, + const gchar *text, + gint length, + gint * position, + gpointer user_data) +{ + GtkEditable *editable = GTK_EDITABLE (entry); + int i, count = 0; + gchar *result = g_new0 (gchar, length); + + for (i = 0; i < length; i++) { + if ( isalnum (text[i]) + || (text[i] == '.') + || (text[i] == '_') + || (text[i] == '-')) + result[count++] = text[i]; + } + + if (count > 0) { + g_signal_handlers_block_by_func (G_OBJECT (editable), + G_CALLBACK (apn_filter_cb), + user_data); + gtk_editable_insert_text (editable, result, count, position); + g_signal_handlers_unblock_by_func (G_OBJECT (editable), + G_CALLBACK (apn_filter_cb), + user_data); + } + + g_signal_stop_emission_by_name (G_OBJECT (editable), "insert-text"); + g_free (result); +} + +static void +plan_setup (NMAMobileWizard *self) +{ + GtkWidget *vbox, *label, *alignment, *hbox, *image; + GtkCellRenderer *renderer; + +#if GTK_CHECK_VERSION(3,1,6) + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); +#else + vbox = gtk_vbox_new (FALSE, 6); +#endif + gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); + + label = gtk_label_new_with_mnemonic (_("_Select your plan:")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); + + self->plan_store = gtk_tree_store_new (3, G_TYPE_STRING, NMN_TYPE_MOBILE_ACCESS_METHOD, G_TYPE_BOOLEAN); + + self->plan_combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (self->plan_store)); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), self->plan_combo); + gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (self->plan_combo), + plan_row_separator_func, + NULL, + NULL); + + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (self->plan_combo), renderer, TRUE); + gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (self->plan_combo), renderer, "text", PLAN_COL_NAME); + + g_signal_connect_swapped (self->plan_combo, "changed", G_CALLBACK (plan_combo_changed), self); + + alignment = gtk_alignment_new (0, 0.5, 0.5, 0); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 12, 0, 0); + gtk_container_add (GTK_CONTAINER (alignment), self->plan_combo); + gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0); + + label = gtk_label_new_with_mnemonic (_("Selected plan _APN (Access Point Name):")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); + + self->plan_unlisted_entry = gtk_entry_new (); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), self->plan_unlisted_entry); + gtk_entry_set_max_length (GTK_ENTRY (self->plan_unlisted_entry), 64); + g_signal_connect (self->plan_unlisted_entry, "insert-text", G_CALLBACK (apn_filter_cb), self); + g_signal_connect_swapped (self->plan_unlisted_entry, "changed", G_CALLBACK (plan_update_complete), self); + + alignment = gtk_alignment_new (0, 0.5, 0.5, 0); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 24, 0, 0); + gtk_container_add (GTK_CONTAINER (alignment), self->plan_unlisted_entry); + gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0); + +#if GTK_CHECK_VERSION(3,1,6) + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); +#else + hbox = gtk_hbox_new (FALSE, 6); +#endif + image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG); + gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0); + gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); + + label = gtk_label_new (_("Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity.\n\nIf you are unsure of your plan please ask your provider for your plan's APN.")); + gtk_widget_set_size_request (label, 500, -1); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + + self->plan_idx = gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); + gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), vbox, _("Choose your Billing Plan")); + gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_CONTENT); + gtk_widget_show_all (vbox); + + self->plan_page = vbox; +} + +static void +plan_prepare (NMAMobileWizard *self) +{ + NmnMobileProvider *provider; + GtkTreeIter method_iter; + + gtk_tree_store_clear (self->plan_store); + + provider = get_selected_provider (self); + if (provider) { + GSList *iter; + guint32 count = 0; + + for (iter = provider->methods; iter; iter = g_slist_next (iter)) { + NmnMobileAccessMethod *method = iter->data; + + if ( (self->method_type != NMN_MOBILE_ACCESS_METHOD_TYPE_UNKNOWN) + && (method->type != self->method_type)) + continue; + + gtk_tree_store_append (GTK_TREE_STORE (self->plan_store), &method_iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (self->plan_store), + &method_iter, + PLAN_COL_NAME, + method->name, + PLAN_COL_METHOD, + method, + -1); + count++; + } + nmn_mobile_provider_unref (provider); + + /* Draw the separator */ + if (count) + gtk_tree_store_append (GTK_TREE_STORE (self->plan_store), &method_iter, NULL); + } + + /* Add the "My plan is not listed..." item */ + gtk_tree_store_append (GTK_TREE_STORE (self->plan_store), &method_iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (self->plan_store), + &method_iter, + PLAN_COL_NAME, + _("My plan is not listed..."), + PLAN_COL_MANUAL, + TRUE, + -1); + + /* Select the first item by default if nothing is yet selected */ + if (gtk_combo_box_get_active (GTK_COMBO_BOX (self->plan_combo)) < 0) + gtk_combo_box_set_active (GTK_COMBO_BOX (self->plan_combo), 0); + + plan_combo_changed (self); +} + +/**********************************************************/ +/* Providers page */ +/**********************************************************/ + +#define PROVIDER_COL_NAME 0 +#define PROVIDER_COL_PROVIDER 1 + +static gboolean +providers_search_func (GtkTreeModel *model, + gint column, + const char *key, + GtkTreeIter *iter, + gpointer search_data) +{ + gboolean unmatched = TRUE; + char *provider = NULL; + + if (!key) + return TRUE; + + gtk_tree_model_get (model, iter, column, &provider, -1); + if (!provider) + return TRUE; + + unmatched = !!g_ascii_strncasecmp (provider, key, strlen (key)); + g_free (provider); + return unmatched; +} + +static NmnMobileProvider * +get_selected_provider (NMAMobileWizard *self) +{ + GtkTreeSelection *selection; + GtkTreeModel *model = NULL; + GtkTreeIter iter; + NmnMobileProvider *provider = NULL; + + if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->providers_view_radio))) + return NULL; + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (self->providers_view)); + g_assert (selection); + + if (!gtk_tree_selection_get_selected (GTK_TREE_SELECTION (selection), &model, &iter)) + return NULL; + + gtk_tree_model_get (model, &iter, PROVIDER_COL_PROVIDER, &provider, -1); + return provider; +} + +static void +providers_update_complete (NMAMobileWizard *self) +{ + GtkAssistant *assistant = GTK_ASSISTANT (self->assistant); + gboolean use_view; + + use_view = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->providers_view_radio)); + if (use_view) { + NmnMobileProvider *provider; + + provider = get_selected_provider (self); + gtk_assistant_set_page_complete (assistant, self->providers_page, !!provider); + if (provider) + nmn_mobile_provider_unref (provider); + } else { + const char *manual_provider; + + manual_provider = gtk_entry_get_text (GTK_ENTRY (self->provider_unlisted_entry)); + gtk_assistant_set_page_complete (assistant, self->providers_page, + (manual_provider && strlen (manual_provider))); + } +} + +static gboolean +focus_providers_view (gpointer user_data) +{ + NMAMobileWizard *self = user_data; + + self->providers_focus_id = 0; + gtk_widget_grab_focus (self->providers_view); + return FALSE; +} + +static gboolean +focus_provider_unlisted_entry (gpointer user_data) +{ + NMAMobileWizard *self = user_data; + + self->providers_focus_id = 0; + gtk_widget_grab_focus (self->provider_unlisted_entry); + return FALSE; +} + +static void +providers_radio_toggled (GtkToggleButton *button, gpointer user_data) +{ + NMAMobileWizard *self = user_data; + gboolean use_view; + + use_view = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->providers_view_radio)); + if (use_view) { + if (!self->providers_focus_id) + self->providers_focus_id = g_idle_add (focus_providers_view, self); + gtk_widget_set_sensitive (self->providers_view, TRUE); + gtk_widget_set_sensitive (self->provider_unlisted_entry, FALSE); + gtk_widget_set_sensitive (self->provider_unlisted_type_combo, FALSE); + } else { + if (!self->providers_focus_id) + self->providers_focus_id = g_idle_add (focus_provider_unlisted_entry, self); + gtk_widget_set_sensitive (self->providers_view, FALSE); + gtk_widget_set_sensitive (self->provider_unlisted_entry, TRUE); + gtk_widget_set_sensitive (self->provider_unlisted_type_combo, TRUE); + } + + providers_update_complete (self); +} + +static NmnMobileAccessMethodType +get_provider_unlisted_type (NMAMobileWizard *self) +{ + switch (gtk_combo_box_get_active (GTK_COMBO_BOX (self->provider_unlisted_type_combo))) { + case 0: + return NMN_MOBILE_ACCESS_METHOD_TYPE_GSM; + case 1: + return NMN_MOBILE_ACCESS_METHOD_TYPE_CDMA; + default: + return NMN_MOBILE_ACCESS_METHOD_TYPE_UNKNOWN; + } +} + +static void +providers_setup (NMAMobileWizard *self) +{ + GtkWidget *vbox, *scroll, *alignment, *unlisted_table, *label; + GtkCellRenderer *renderer; + GtkTreeViewColumn *column; + GtkTreeSelection *selection; + +#if GTK_CHECK_VERSION(3,1,6) + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); +#else + vbox = gtk_vbox_new (FALSE, 6); +#endif + gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); + + self->providers_view_radio = gtk_radio_button_new_with_mnemonic (NULL, _("Select your provider from a _list:")); + g_signal_connect (self->providers_view_radio, "toggled", G_CALLBACK (providers_radio_toggled), self); + gtk_box_pack_start (GTK_BOX (vbox), self->providers_view_radio, FALSE, TRUE, 0); + + self->providers_store = gtk_tree_store_new (2, G_TYPE_STRING, NMN_TYPE_MOBILE_PROVIDER); + + self->providers_sort = GTK_TREE_MODEL_SORT (gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (self->providers_store))); + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (self->providers_sort), + PROVIDER_COL_NAME, GTK_SORT_ASCENDING); + + self->providers_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (self->providers_sort)); + + renderer = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes (_("Provider"), + renderer, + "text", PROVIDER_COL_NAME, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (self->providers_view), column); + gtk_tree_view_column_set_clickable (column, TRUE); + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (self->providers_view)); + g_assert (selection); + g_signal_connect_swapped (selection, "changed", G_CALLBACK (providers_update_complete), self); + + scroll = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll), GTK_SHADOW_IN); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), + GTK_POLICY_NEVER, + GTK_POLICY_AUTOMATIC); + gtk_widget_set_size_request (scroll, -1, 140); + gtk_container_add (GTK_CONTAINER (scroll), self->providers_view); + + alignment = gtk_alignment_new (0, 0, 1, 1); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 12, 25, 0); + gtk_container_add (GTK_CONTAINER (alignment), scroll); + gtk_box_pack_start (GTK_BOX (vbox), alignment, TRUE, TRUE, 0); + + self->provider_unlisted_radio = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (self->providers_view_radio), + _("I can't find my provider and I wish to enter it _manually:")); + g_signal_connect (self->providers_view_radio, "toggled", G_CALLBACK (providers_radio_toggled), self); + gtk_box_pack_start (GTK_BOX (vbox), self->provider_unlisted_radio, FALSE, TRUE, 0); + + alignment = gtk_alignment_new (0, 0, 0, 0); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 15, 0); + gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0); + + unlisted_table = gtk_table_new (2, 2, FALSE); + gtk_container_add (GTK_CONTAINER (alignment), unlisted_table); + + label = gtk_label_new (_("Provider:")); + gtk_misc_set_alignment (GTK_MISC (label), 1, 0.5); + gtk_table_attach (GTK_TABLE (unlisted_table), label, 0, 1, 0, 1, 0, 0, 6, 6); + + self->provider_unlisted_entry = gtk_entry_new (); + gtk_entry_set_width_chars (GTK_ENTRY (self->provider_unlisted_entry), 40); + g_signal_connect_swapped (self->provider_unlisted_entry, "changed", G_CALLBACK (providers_update_complete), self); + + alignment = gtk_alignment_new (0, 0.5, 0.66, 0); + gtk_container_add (GTK_CONTAINER (alignment), self->provider_unlisted_entry); + gtk_table_attach (GTK_TABLE (unlisted_table), alignment, + 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, 0, 6, 6); + +#if GTK_CHECK_VERSION(2,23,0) + self->provider_unlisted_type_combo = gtk_combo_box_text_new (); +#else + self->provider_unlisted_type_combo = gtk_combo_box_new_text (); +#endif + gtk_label_set_mnemonic_widget (GTK_LABEL (label), self->provider_unlisted_type_combo); +#if GTK_CHECK_VERSION(2,23,0) + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (self->provider_unlisted_type_combo), +#else + gtk_combo_box_append_text (GTK_COMBO_BOX (self->provider_unlisted_type_combo), +#endif + _("My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)")); +#if GTK_CHECK_VERSION(2,23,0) + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (self->provider_unlisted_type_combo), +#else + gtk_combo_box_append_text (GTK_COMBO_BOX (self->provider_unlisted_type_combo), +#endif + _("My provider uses CDMA technology (1xRTT, EVDO)")); + gtk_combo_box_set_active (GTK_COMBO_BOX (self->provider_unlisted_type_combo), 0); + + gtk_table_attach (GTK_TABLE (unlisted_table), self->provider_unlisted_type_combo, + 1, 2, 1, 2, 0, 0, 6, 6); + + /* Only show the CDMA/GSM combo if we don't know the device type */ + if (self->method_type != NMN_MOBILE_ACCESS_METHOD_TYPE_UNKNOWN) + gtk_widget_hide (self->provider_unlisted_type_combo); + + self->providers_idx = gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); + gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), vbox, _("Choose your Provider")); + gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_CONTENT); + gtk_widget_show_all (vbox); + + self->providers_page = vbox; +} + +static void +providers_prepare (NMAMobileWizard *self) +{ + GtkTreeSelection *selection; + GSList *providers, *piter; + char *country; + + gtk_tree_store_clear (self->providers_store); + + country = get_selected_country (self, NULL); + if (!country) { + /* Unlisted country */ + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->provider_unlisted_radio), TRUE); + gtk_widget_set_sensitive (GTK_WIDGET (self->providers_view_radio), FALSE); + goto done; + } + gtk_widget_set_sensitive (GTK_WIDGET (self->providers_view_radio), TRUE); + + providers = g_hash_table_lookup (self->providers, country); + g_free (country); + + for (piter = providers; piter; piter = g_slist_next (piter)) { + NmnMobileProvider *provider = piter->data; + GtkTreeIter provider_iter; + + /* Ignore providers that don't match the current device type */ + if (self->method_type != NMN_MOBILE_ACCESS_METHOD_TYPE_UNKNOWN) { + GSList *miter; + guint32 count = 0; + + for (miter = provider->methods; miter; miter = g_slist_next (miter)) { + NmnMobileAccessMethod *method = miter->data; + + if (self->method_type == method->type) + count++; + } + + if (!count) + continue; + } + + gtk_tree_store_append (GTK_TREE_STORE (self->providers_store), &provider_iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (self->providers_store), + &provider_iter, + PROVIDER_COL_NAME, + provider->name, + PROVIDER_COL_PROVIDER, + provider, + -1); + } + + g_object_set (G_OBJECT (self->providers_view), "enable-search", TRUE, NULL); + + gtk_tree_view_set_search_column (GTK_TREE_VIEW (self->providers_view), PROVIDER_COL_NAME); + gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW (self->providers_view), + providers_search_func, self, NULL); + + /* If no row has focus yet, focus the first row so that the user can start + * incremental search without clicking. + */ + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (self->providers_view)); + g_assert (selection); + if (!gtk_tree_selection_count_selected_rows (selection)) { + GtkTreeIter first_iter; + GtkTreePath *first_path; + + if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->providers_sort), &first_iter)) { + first_path = gtk_tree_model_get_path (GTK_TREE_MODEL (self->providers_sort), &first_iter); + if (first_path) { + gtk_tree_selection_select_path (selection, first_path); + gtk_tree_path_free (first_path); + } + } + } + +done: + providers_radio_toggled (NULL, self); + + /* Initial completeness state */ + providers_update_complete (self); + + /* If there's already a selected device, hide the GSM/CDMA radios */ + if (self->method_type != NMN_MOBILE_ACCESS_METHOD_TYPE_UNKNOWN) + gtk_widget_hide (self->provider_unlisted_type_combo); + else + gtk_widget_show (self->provider_unlisted_type_combo); +} + +/**********************************************************/ +/* Country page */ +/**********************************************************/ + +static gboolean +country_search_func (GtkTreeModel *model, + gint column, + const char *key, + GtkTreeIter *iter, + gpointer search_data) +{ + gboolean unmatched = TRUE; + char *country = NULL; + + if (!key) + return TRUE; + + gtk_tree_model_get (model, iter, column, &country, -1); + if (!country) + return TRUE; + + unmatched = !!g_ascii_strncasecmp (country, key, strlen (key)); + g_free (country); + return unmatched; +} + +static void +add_one_country (gpointer key, gpointer value, gpointer user_data) +{ + NMAMobileWizard *self = user_data; + GtkTreeIter country_iter; + GtkTreePath *country_path, *country_view_path; + + g_assert (key); + + gtk_tree_store_append (GTK_TREE_STORE (self->country_store), &country_iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (self->country_store), &country_iter, 0, key, -1); + + /* If this country is the same country as the user's current locale, + * select it by default. + */ + if (!self->country || g_ascii_strcasecmp (self->country, key)) + return; + + country_path = gtk_tree_model_get_path (GTK_TREE_MODEL (self->country_store), &country_iter); + if (!country_path) + return; + + country_view_path = gtk_tree_model_sort_convert_child_path_to_path (self->country_sort, country_path); + if (country_view_path) { + GtkTreeSelection *selection; + + gtk_tree_view_expand_row (GTK_TREE_VIEW (self->country_view), country_view_path, TRUE); + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (self->country_view)); + g_assert (selection); + gtk_tree_selection_select_path (selection, country_view_path); + gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (self->country_view), + country_view_path, NULL, TRUE, 0, 0); + gtk_tree_path_free (country_view_path); + } + gtk_tree_path_free (country_path); +} + +static char * +get_selected_country (NMAMobileWizard *self, gboolean *out_unlisted) +{ + GtkTreeSelection *selection; + GtkTreeModel *model = NULL; + GtkTreeIter iter; + char *country = NULL; + gboolean unlisted = FALSE; + + if (!self->country_codes) + return NULL; + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (self->country_view)); + g_assert (selection); + + if (gtk_tree_selection_get_selected (GTK_TREE_SELECTION (selection), &model, &iter)) { + gtk_tree_model_get (model, &iter, 0, &country, 1, &unlisted, -1); + if (unlisted) { + g_free (country); + country = NULL; + if (out_unlisted) + *out_unlisted = unlisted; + } + } + + return country; +} + +static void +country_update_complete (NMAMobileWizard *self) +{ + char *country = NULL; + gboolean unlisted = FALSE; + + country = get_selected_country (self, &unlisted); + gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), + self->country_page, + (!!country || unlisted)); + g_free (country); +} + +static gint +country_sort_func (GtkTreeModel *model, + GtkTreeIter *a, + GtkTreeIter *b, + gpointer user_data) +{ + char *a_str = NULL, *b_str = NULL; + gboolean a_def = FALSE, b_def = FALSE; + gint ret = 0; + + gtk_tree_model_get (model, a, 0, &a_str, 1, &a_def, -1); + gtk_tree_model_get (model, b, 0, &b_str, 1, &b_def, -1); + + if (a_def) { + ret = -1; + goto out; + } else if (b_def) { + ret = 1; + goto out; + } + + if (a_str && !b_str) + ret = -1; + else if (!a_str && b_str) + ret = 1; + else if (!a_str && !b_str) + ret = 0; + else + ret = g_utf8_collate (a_str, b_str); + +out: + g_free (a_str); + g_free (b_str); + return ret; +} + +static void +country_setup (NMAMobileWizard *self) +{ + GtkWidget *vbox, *label, *scroll, *alignment; + GtkCellRenderer *renderer; + GtkTreeViewColumn *column; + GtkTreeSelection *selection; + GtkTreeIter unlisted_iter; + +#if GTK_CHECK_VERSION(3,1,6) + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); +#else + vbox = gtk_vbox_new (FALSE, 6); +#endif + gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); + label = gtk_label_new (_("Country or Region List:")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0); + + self->country_store = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN); + + self->country_sort = GTK_TREE_MODEL_SORT (gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (self->country_store))); + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (self->country_sort), 0, GTK_SORT_ASCENDING); + + self->country_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (self->country_sort)); + + renderer = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes (_("Country or region"), renderer, "text", 0, NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (self->country_view), column); + gtk_tree_view_column_set_clickable (column, TRUE); + + /* My country is not listed... */ + gtk_tree_store_append (GTK_TREE_STORE (self->country_store), &unlisted_iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (self->country_store), &unlisted_iter, + 0, _("My country is not listed"), + 1, TRUE, + -1); + gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (self->country_sort), + 0, + country_sort_func, + NULL, + NULL); + + /* Add the rest of the providers */ + if (self->providers) + g_hash_table_foreach (self->providers, add_one_country, self); + g_object_set (G_OBJECT (self->country_view), "enable-search", TRUE, NULL); + + /* If no row has focus yet, focus the first row so that the user can start + * incremental search without clicking. + */ + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (self->country_view)); + g_assert (selection); + if (!gtk_tree_selection_count_selected_rows (selection)) { + GtkTreeIter first_iter; + GtkTreePath *first_path; + + if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->country_sort), &first_iter)) { + first_path = gtk_tree_model_get_path (GTK_TREE_MODEL (self->country_sort), &first_iter); + if (first_path) { + gtk_tree_selection_select_path (selection, first_path); + gtk_tree_path_free (first_path); + } + } + } + + g_signal_connect_swapped (selection, "changed", G_CALLBACK (country_update_complete), self); + + scroll = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll), GTK_SHADOW_IN); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), + GTK_POLICY_NEVER, + GTK_POLICY_AUTOMATIC); + gtk_container_add (GTK_CONTAINER (scroll), self->country_view); + + alignment = gtk_alignment_new (0, 0, 1, 1); + gtk_container_add (GTK_CONTAINER (alignment), scroll); + gtk_box_pack_start (GTK_BOX (vbox), alignment, TRUE, TRUE, 6); + + self->country_idx = gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); + gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), vbox, _("Choose your Provider's Country or Region")); + gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_CONTENT); + gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); + gtk_widget_show_all (vbox); + + self->country_page = vbox; + + /* Initial completeness state */ + country_update_complete (self); +} + +static gboolean +focus_country_view (gpointer user_data) +{ + NMAMobileWizard *self = user_data; + + self->country_focus_id = 0; + gtk_widget_grab_focus (self->country_view); + return FALSE; +} + +static void +country_prepare (NMAMobileWizard *self) +{ + gtk_tree_view_set_search_column (GTK_TREE_VIEW (self->country_view), 0); + gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW (self->country_view), country_search_func, self, NULL); + + if (!self->country_focus_id) + self->country_focus_id = g_idle_add (focus_country_view, self); + + country_update_complete (self); +} + +/**********************************************************/ +/* Intro page */ +/**********************************************************/ + +#define INTRO_COL_NAME 0 +#define INTRO_COL_DEVICE 1 +#define INTRO_COL_SEPARATOR 2 + +static gboolean +__intro_device_added (NMAMobileWizard *self, NMDevice *device, gboolean select_it) +{ + GtkTreeIter iter; + const char *desc = nma_utils_get_device_description (device); + NMDeviceModemCapabilities caps; + + if (!NM_IS_DEVICE_MODEM (device)) + return FALSE; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + if (!desc) + desc = _("Installed GSM device"); + } else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + if (!desc) + desc = _("Installed CDMA device"); + } else + return FALSE; + + gtk_tree_store_append (GTK_TREE_STORE (self->dev_store), &iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (self->dev_store), + &iter, + INTRO_COL_NAME, desc, + INTRO_COL_DEVICE, device, + -1); + + /* Select the device just added */ + if (select_it) + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (self->dev_combo), &iter); + + gtk_widget_set_sensitive (self->dev_combo, TRUE); + return TRUE; +} + +static void +intro_device_added_cb (NMClient *client, NMDevice *device, NMAMobileWizard *self) +{ + __intro_device_added (self, device, TRUE); +} + +static void +intro_device_removed_cb (NMClient *client, NMDevice *device, NMAMobileWizard *self) +{ + GtkTreeIter iter; + gboolean have_device = FALSE, removed = FALSE; + + if (!gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->dev_store), &iter)) + return; + + do { + NMDevice *candidate = NULL; + + gtk_tree_model_get (GTK_TREE_MODEL (self->dev_store), &iter, + INTRO_COL_DEVICE, &candidate, -1); + if (candidate) { + if (candidate == device) { + gtk_tree_store_remove (GTK_TREE_STORE (self->dev_store), &iter); + removed = TRUE; + } + g_object_unref (candidate); + } + } while (!removed && gtk_tree_model_iter_next (GTK_TREE_MODEL (self->dev_store), &iter)); + + /* There's already a selected device item; nothing more to do */ + if (gtk_combo_box_get_active (GTK_COMBO_BOX (self->dev_combo)) > 1) + return; + + /* If there are no more devices, select the "Any" item and disable the + * combo box. If there is no selected item and there is at least one device + * item, select the first one. + */ + if (!gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->dev_store), &iter)) + return; + + do { + NMDevice *candidate = NULL; + + gtk_tree_model_get (GTK_TREE_MODEL (self->dev_store), &iter, + INTRO_COL_DEVICE, &candidate, -1); + if (candidate) { + have_device = TRUE; + g_object_unref (candidate); + } + } while (!have_device && gtk_tree_model_iter_next (GTK_TREE_MODEL (self->dev_store), &iter)); + + if (have_device) { + /* Iter should point to the last device item in the combo */ + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (self->dev_combo), &iter); + } else { + gtk_combo_box_set_active (GTK_COMBO_BOX (self->dev_combo), 0); + gtk_widget_set_sensitive (self->dev_combo, FALSE); + } +} + +static void +intro_add_initial_devices (NMAMobileWizard *self) +{ + const GPtrArray *devices; + gboolean selected_first = FALSE; + int i; + + devices = nm_client_get_devices (self->client); + for (i = 0; devices && (i < devices->len); i++) { + if (__intro_device_added (self, g_ptr_array_index (devices, i), !selected_first)) { + if (selected_first == FALSE) + selected_first = TRUE; + } + } + + /* Otherwise the "Any device" item */ + if (!selected_first) { + /* Select the first device item by default */ + gtk_combo_box_set_active (GTK_COMBO_BOX (self->dev_combo), 0); + gtk_widget_set_sensitive (self->dev_combo, FALSE); + } +} + +static void +intro_remove_all_devices (NMAMobileWizard *self) +{ + gtk_tree_store_clear (self->dev_store); + + /* Select the "Any device" item */ + gtk_combo_box_set_active (GTK_COMBO_BOX (self->dev_combo), 0); + gtk_widget_set_sensitive (self->dev_combo, FALSE); +} + +static void +intro_manager_running_cb (NMClient *client, GParamSpec *pspec, NMAMobileWizard *self) +{ + if (nm_client_get_manager_running (client)) + intro_add_initial_devices (self); + else + intro_remove_all_devices (self); +} + +static gboolean +intro_row_separator_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) +{ + gboolean separator = FALSE; + gtk_tree_model_get (model, iter, INTRO_COL_SEPARATOR, &separator, -1); + return separator; +} + +static void +intro_combo_changed (NMAMobileWizard *self) +{ + GtkTreeIter iter; + NMDevice *selected = NULL; + NMDeviceModemCapabilities caps; + + g_free (self->dev_desc); + self->dev_desc = NULL; + + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (self->dev_combo), &iter)) + return; + + gtk_tree_model_get (GTK_TREE_MODEL (self->dev_store), &iter, + INTRO_COL_DEVICE, &selected, -1); + if (selected) { + self->dev_desc = g_strdup (nma_utils_get_device_description (selected)); + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (selected)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + self->method_type = NMN_MOBILE_ACCESS_METHOD_TYPE_GSM; + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + self->method_type = NMN_MOBILE_ACCESS_METHOD_TYPE_CDMA; + else + g_warning ("%s: unknown modem capabilities 0x%X", __func__, caps); + + g_object_unref (selected); + } +} + +static void +intro_setup (NMAMobileWizard *self) +{ + GtkWidget *vbox, *label, *alignment, *info_vbox; + GtkCellRenderer *renderer; + char *s; + +#if GTK_CHECK_VERSION(3,1,6) + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); +#else + vbox = gtk_vbox_new (FALSE, 6); +#endif + gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); + + label = gtk_label_new (_("This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network.")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 6); + + label = gtk_label_new (_("You will need the following information:")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 6); + + alignment = gtk_alignment_new (0, 0, 1, 0); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 25, 25, 0); +#if GTK_CHECK_VERSION(3,1,6) + info_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); +#else + info_vbox = gtk_vbox_new (FALSE, 6); +#endif + gtk_container_add (GTK_CONTAINER (alignment), info_vbox); + gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 6); + + s = g_strdup_printf ("• %s", _("Your broadband provider's name")); + label = gtk_label_new (s); + g_free (s); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_box_pack_start (GTK_BOX (info_vbox), label, FALSE, TRUE, 0); + + s = g_strdup_printf ("• %s", _("Your broadband billing plan name")); + label = gtk_label_new (s); + g_free (s); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_box_pack_start (GTK_BOX (info_vbox), label, FALSE, TRUE, 0); + + s = g_strdup_printf ("• %s", _("(in some cases) Your broadband billing plan APN (Access Point Name)")); + label = gtk_label_new (s); + g_free (s); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_box_pack_start (GTK_BOX (info_vbox), label, FALSE, TRUE, 0); + + /* Device combo; only built if the wizard's caller didn't pass one in */ + if (!self->initial_method_type) { + GtkTreeIter iter; + + self->client = nm_client_new (); + g_signal_connect (self->client, "device-added", + G_CALLBACK (intro_device_added_cb), self); + g_signal_connect (self->client, "device-removed", + G_CALLBACK (intro_device_removed_cb), self); + g_signal_connect (self->client, "notify::manager-running", + G_CALLBACK (intro_manager_running_cb), self); + + self->dev_store = gtk_tree_store_new (3, G_TYPE_STRING, NM_TYPE_DEVICE, G_TYPE_BOOLEAN); + self->dev_combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (self->dev_store)); + gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (self->dev_combo), + intro_row_separator_func, NULL, NULL); + + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (self->dev_combo), renderer, TRUE); + gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (self->dev_combo), renderer, "text", INTRO_COL_NAME); + + label = gtk_label_new_with_mnemonic (_("Create a connection for _this mobile broadband device:")); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), self->dev_combo); + gtk_misc_set_alignment (GTK_MISC (label), 0, 1); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); + + alignment = gtk_alignment_new (0, 0, 0.5, 0); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 25, 0); + gtk_container_add (GTK_CONTAINER (alignment), self->dev_combo); + gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0); + + g_signal_connect_swapped (self->dev_combo, "changed", G_CALLBACK (intro_combo_changed), self); + + /* Any device */ + gtk_tree_store_append (GTK_TREE_STORE (self->dev_store), &iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (self->dev_store), &iter, + INTRO_COL_NAME, _("Any device"), -1); + + /* Separator */ + gtk_tree_store_append (GTK_TREE_STORE (self->dev_store), &iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (self->dev_store), &iter, + INTRO_COL_SEPARATOR, TRUE, -1); + + intro_add_initial_devices (self); + } + + gtk_widget_show_all (vbox); + gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); + gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), + vbox, _("Set up a Mobile Broadband Connection")); + + gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); + gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_INTRO); +} + +/**********************************************************/ +/* General assistant stuff */ +/**********************************************************/ + +static void +remove_provider_focus_idle (NMAMobileWizard *self) +{ + if (self->providers_focus_id) { + g_source_remove (self->providers_focus_id); + self->providers_focus_id = 0; + } +} + +static void +remove_country_focus_idle (NMAMobileWizard *self) +{ + if (self->country_focus_id) { + g_source_remove (self->country_focus_id); + self->country_focus_id = 0; + } +} + +static void +assistant_prepare (GtkAssistant *assistant, GtkWidget *page, gpointer user_data) +{ + NMAMobileWizard *self = user_data; + + if (page != self->providers_page) + remove_provider_focus_idle (self); + if (page != self->country_page) + remove_country_focus_idle (self); + + if (page == self->country_page) + country_prepare (self); + else if (page == self->providers_page) + providers_prepare (self); + else if (page == self->plan_page) + plan_prepare (self); + else if (page == self->confirm_page) + confirm_prepare (self); +} + +static gint +forward_func (gint current_page, gpointer user_data) +{ + NMAMobileWizard *self = user_data; + + if (current_page == self->providers_idx) { + NmnMobileAccessMethodType method_type = self->method_type; + + /* If the provider is unlisted, we can skip ahead of the user's + * access technology is CDMA. + */ + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->provider_unlisted_radio))) { + if (method_type == NMN_MOBILE_ACCESS_METHOD_TYPE_UNKNOWN) + method_type = get_provider_unlisted_type (self); + } else { + /* Or, if the provider is only CDMA, then we can also skip ahead */ + NmnMobileProvider *provider; + GSList *iter; + gboolean gsm = FALSE, cdma = FALSE; + + provider = get_selected_provider (self); + if (provider) { + for (iter = provider->methods; iter; iter = g_slist_next (iter)) { + NmnMobileAccessMethod *method = iter->data; + + if (method->type == NMN_MOBILE_ACCESS_METHOD_TYPE_CDMA) + cdma = TRUE; + else if (method->type == NMN_MOBILE_ACCESS_METHOD_TYPE_GSM) + gsm = TRUE; + } + nmn_mobile_provider_unref (provider); + + if (cdma && !gsm) + method_type = NMN_MOBILE_ACCESS_METHOD_TYPE_CDMA; + } + } + + /* Skip to the confirm page if we know its CDMA */ + if (method_type == NMN_MOBILE_ACCESS_METHOD_TYPE_CDMA) { + self->provider_only_cdma = TRUE; + return self->confirm_idx; + } else + self->provider_only_cdma = FALSE; + } + + return current_page + 1; +} + +static char * +get_country_from_locale (void) +{ + char *p, *m, *cc, *lang; + + lang = getenv ("LC_ALL"); + if (!lang) + lang = getenv ("LANG"); + if (!lang) + return NULL; + + p = strchr (lang, '_'); + if (!p || !strlen (p)) { + g_free (p); + return NULL; + } + + p = cc = g_strdup (++p); + m = strchr (cc, '.'); + if (m) + *m = '\0'; + + while (*p) { + *p = g_ascii_toupper (*p); + p++; + } + + return cc; +} + +/** + * nma_mobile_wizard_new: (skip) + * @cb: (scope async): + */ +NMAMobileWizard * +nma_mobile_wizard_new (GtkWindow *parent, + GtkWindowGroup *window_group, + NMDeviceModemCapabilities modem_caps, + gboolean will_connect_after, + NMAMobileWizardCallback cb, + gpointer user_data) +{ + NMAMobileWizard *self; + char *cc; + + self = g_malloc0 (sizeof (NMAMobileWizard)); + g_return_val_if_fail (self != NULL, NULL); + + self->providers = nmn_mobile_providers_parse (&(self->country_codes)); + if (!self->providers || !self->country_codes) { + nma_mobile_wizard_destroy (self); + return NULL; + } + + cc = get_country_from_locale (); + if (cc) + self->country = g_hash_table_lookup (self->country_codes, cc); + g_free (cc); + + self->will_connect_after = will_connect_after; + self->callback = cb; + self->user_data = user_data; + if (modem_caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + self->method_type = NMN_MOBILE_ACCESS_METHOD_TYPE_GSM; + else if (modem_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + self->method_type = NMN_MOBILE_ACCESS_METHOD_TYPE_CDMA; + if (self->method_type) + self->initial_method_type = TRUE; /* Skip device selection */ + + self->assistant = gtk_assistant_new (); + gtk_assistant_set_forward_page_func (GTK_ASSISTANT (self->assistant), + forward_func, self, NULL); + gtk_window_set_title (GTK_WINDOW (self->assistant), _("New Mobile Broadband Connection")); + gtk_window_set_position (GTK_WINDOW (self->assistant), GTK_WIN_POS_CENTER_ALWAYS); + + intro_setup (self); + country_setup (self); + providers_setup (self); + plan_setup (self); + confirm_setup (self); + + g_signal_connect (self->assistant, "close", G_CALLBACK (assistant_closed), self); + g_signal_connect (self->assistant, "cancel", G_CALLBACK (assistant_cancel), self); + g_signal_connect (self->assistant, "prepare", G_CALLBACK (assistant_prepare), self); + + /* Run the wizard */ + if (parent) + gtk_window_set_transient_for (GTK_WINDOW (self->assistant), parent); + gtk_window_set_modal (GTK_WINDOW (self->assistant), TRUE); + gtk_window_set_skip_taskbar_hint (GTK_WINDOW (self->assistant), TRUE); + gtk_window_set_type_hint (GTK_WINDOW (self->assistant), GDK_WINDOW_TYPE_HINT_DIALOG); + + if (window_group) + gtk_window_group_add_window (window_group, GTK_WINDOW (self->assistant)); + + return self; +} + +void +nma_mobile_wizard_present (NMAMobileWizard *self) +{ + g_return_if_fail (self != NULL); + + gtk_window_present (GTK_WINDOW (self->assistant)); + gtk_widget_show_all (self->assistant); +} + +void +nma_mobile_wizard_destroy (NMAMobileWizard *self) +{ + g_return_if_fail (self != NULL); + + g_free (self->dev_desc); + + if (self->assistant) { + gtk_widget_hide (self->assistant); + gtk_widget_destroy (self->assistant); + } + + if (self->client) + g_object_unref (self->client); + + remove_provider_focus_idle (self); + remove_country_focus_idle (self); + + if (self->providers) + g_hash_table_destroy (self->providers); + + if (self->country_codes) + g_hash_table_destroy (self->country_codes); + + g_free (self); +} + + diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/configure.ac network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/configure.ac --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/configure.ac 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/configure.ac 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,243 @@ +AC_PREREQ([2.63]) +AC_INIT([nm-applet], + [0.9.7.0], + [https://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager], + [network-manager-applet]) + +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_MACRO_DIR([m4]) + +AM_INIT_AUTOMAKE([1.10 subdir-objects no-dist-gzip dist-bzip2 -Wno-portability]) +AM_MAINTAINER_MODE([enable]) + +# Support silent build rules, requires at least automake-1.11. Disable +# by either passing --disable-silent-rules to configure or passing V=1 +# to make +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])]) + +dnl +dnl Require programs +dnl +AC_PROG_CC +AM_PROG_CC_C_O +AC_PROG_INSTALL +PKG_PROG_PKG_CONFIG + +dnl Define _GNU_SOURCE for various things like strcasestr() +AC_GNU_SOURCE + +dnl Initialize libtool +LT_PREREQ([2.2.6]) +LT_INIT + +dnl +dnl Required headers +dnl +AC_CHECK_HEADERS(fcntl.h paths.h sys/ioctl.h sys/time.h syslog.h unistd.h) + +dnl +dnl Checks for typedefs, structures, and compiler characteristics. +dnl +AC_TYPE_MODE_T +AC_TYPE_PID_T +AC_HEADER_TIME + +dnl +dnl Checks for library functions. +dnl +AC_PROG_GCC_TRADITIONAL +AC_FUNC_MEMCMP +AC_CHECK_FUNCS(select socket uname) + +dnl +dnl translation support +dnl +IT_PROG_INTLTOOL([0.40.0]) + +GETTEXT_PACKAGE=nm-applet +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package]) +AM_GLIB_GNU_GETTEXT + +# Check for iso-codes for country names translation +AC_MSG_CHECKING([whether to disable iso-codes at build-time]) +AC_ARG_ENABLE([iso-codes], + AS_HELP_STRING([--disable-iso-codes],[do not check for iso-codes at build-time]), + [],[disable_iso_codes_check=no]) +if test x$disable_iso_codes_check = xno ; then + AC_MSG_RESULT([no]) +else + AC_MSG_RESULT([yes]) +fi + +if test x$disable_iso_codes_check = "xno" ; then + AC_MSG_CHECKING([whether iso-codes has iso_3166 domain]) + if $PKG_CONFIG --variable=domains iso-codes | grep iso_3166 >/dev/null ; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + AC_DEFINE_UNQUOTED([ISO_CODES_PREFIX],["`$PKG_CONFIG --variable=prefix iso-codes`"],[ISO codes prefix]) + PKG_CHECK_MODULES(ISO_CODES, [iso-codes], + [], + [echo -e "\n$ISO_CODES_PKG_ERRORS.\n" + echo "Consider installing the package or adjusting the PKG_CONFIG_PATH environment variable." + echo "You can also disable build-time check for 'iso-codes' via --disable-iso-codes"; + exit 1;]) +else + AC_DEFINE_UNQUOTED([ISO_CODES_PREFIX],["$prefix"],[ISO codes prefix]) +fi + +dnl +dnl Make sha1.c happy on big endian systems +dnl +AC_C_BIGENDIAN + +PKG_CHECK_MODULES(GOBJECT, gobject-2.0) + +PKG_CHECK_MODULES(NMA, + [dbus-glib-1 >= 0.74 + gio-2.0 >= 2.26 + NetworkManager >= 0.9.6 + libnm-glib >= 0.9.6 + libnm-util >= 0.9.6 + libnm-glib-vpn >= 0.9.6 + gmodule-export-2.0]) + +# With recent glib, defining GLIB_VERSION_MIN_REQUIRED avoids +# deprecation warnings for recently-deprecated functions (eg, +# GValueArray stuff). We say GLIB_VERSION_2_26 because there +# aren't macros for any older versions. +NMA_CFLAGS="$NMA_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26" +# Likewise for Gtk; we don't want to port to GtkGrid, etc, until +# we can drop gtk2 support +NMA_CFLAGS="$NMA_CFLAGS -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_0" + +AC_MSG_CHECKING([whether to build nm-applet-migration-tool]) +AC_ARG_ENABLE([migration], + [AS_HELP_STRING([--disable-migration], [Don't build migration tool for NM <= 0.8 settings])], + [enable_migration="$enableval"], + [if test "$UNDER_JHBUILD" = "true"; then + enable_migration=no + else + enable_migration=yes + fi]) +AC_MSG_RESULT([$enable_migration]) +if test "$enable_migration" = "yes"; then + PKG_CHECK_MODULES(GCONF, [gconf-2.0], :, + [AC_MSG_ERROR([ +Could not find GConf devel files, which are needed for +nm-applet-migration-tool. You can configure with --disable-migration +if you want to build without the code to migrate GConf settings from +older (< 0.9) nm-applet releases.])]) + + AC_SUBST(GCONF_CFLAGS) + AC_SUBST(GCONF_LIBS) + + AC_DEFINE(BUILD_MIGRATION_TOOL, 1, [Define when building nm-applet-migration-tool]) +fi +AM_CONDITIONAL(BUILD_MIGRATION_TOOL, test "$enable_migration" = "yes") + +PKG_CHECK_MODULES(GNOME_KEYRING, [gnome-keyring-1]) +AC_SUBST(GNOME_KEYRING_CFLAGS) +AC_SUBST(GNOME_KEYRING_LIBS) + +# Check for libnotify >= 0.7 +PKG_CHECK_MODULES(LIBNOTIFY_07, [libnotify >= 0.7], [have_libnotify_07=yes],[have_libnotify_07=no]) +if test x"$have_libnotify_07" = "xyes"; then + AC_DEFINE(HAVE_LIBNOTIFY_07, 1, [Define if you have libnotify 0.7 or later]) +fi +PKG_CHECK_MODULES(NOTIFY, [libnotify >= 0.4.3]) +AC_SUBST(NOTIFY_CFLAGS) +AC_SUBST(NOTIFY_LIBS) + +gtk2_req=2.20 +gtk3_req=3.0 +AC_ARG_WITH([gtkver], AS_HELP_STRING([--with-gtkver], [The major version of GTK+ to build with]), + with_gtkver="$withval",with_gtkver=0) +case "${with_gtkver}" in + 0) PKG_CHECK_MODULES(GTK, gtk+-3.0 > $gtk3_req, , + [PKG_CHECK_MODULES(GTK, gtk+-2.0 > $gtk2_req)]) + ;; + 2) PKG_CHECK_MODULES(GTK, gtk+-2.0 >= $gtk2_req) + ;; + 3) PKG_CHECK_MODULES(GTK, gtk+-3.0 >= $gtk3_req) + ;; + *) AC_MSG_ERROR(unknown GTK+ version $with_gtkver!) + ;; +esac +AC_SUBST(GTK_CFLAGS) +AC_SUBST(GTK_LIBS) + +# Check for dbus-1.2.6 or later for deny-by-default rules +PKG_CHECK_MODULES(DBUS_126, [dbus-1 >= 1.2.6], [have_dbus_126=yes],[have_dbus_126=no]) +AM_CONDITIONAL(HAVE_DBUS_126, test x"$have_dbus_126" = "xyes") + +AC_ARG_WITH(dbus-sys, AS_HELP_STRING([--with-dbus-sys=DIR], [where D-BUS system.d directory is])) + +if ! test -z "$with_dbus_sys" ; then + DBUS_SYS_DIR="$with_dbus_sys" +else + DBUS_SYS_DIR="${sysconfdir}/dbus-1/system.d" +fi +AC_SUBST(DBUS_SYS_DIR) + +dnl Check for gnome-bluetooth +AC_ARG_WITH([bluetooth], + AS_HELP_STRING([--with-bluetooth|--without-bluetooth], [Enable Bluetooth support]), + with_bluetooth="$withval",with_bluetooth=yes) +have_gbt=no +case "${with_bluetooth}" in + no) AC_MSG_NOTICE(Bluetooth support disabled) + ;; + *) + AC_MSG_CHECKING(for gnome-bluetooth) + PKG_CHECK_MODULES(GNOME_BLUETOOTH, + gnome-bluetooth-1.0 >= 2.27.6 + libnm-util >= 0.9.4 + libnm-glib >= 0.9.4, + have_gbt=yes, have_gbt=no) + ;; +esac + +AM_CONDITIONAL(HAVE_GBT, test x"$have_gbt" = "xyes") + +PKG_CHECK_MODULES(GUDEV, gudev-1.0 >= 147) +AC_SUBST(GUDEV_CFLAGS) +AC_SUBST(GUDEV_LIBS) + +GOBJECT_INTROSPECTION_CHECK([0.9.6]) + +GLIB_CONFIG_NMA + +dnl +dnl Compiler flags +dnl +NM_COMPILER_WARNINGS +# Use --enable-maintainer-mode to disabled deprecated symbols +GNOME_MAINTAINER_MODE_DEFINES + + +AC_CONFIG_FILES([ +Makefile +src/Makefile +src/libnm-gtk/Makefile +src/libnm-gtk/libnm-gtk.pc +src/marshallers/Makefile +src/utils/Makefile +src/utils/tests/Makefile +src/gconf-helpers/Makefile +src/gconf-helpers/tests/Makefile +src/wireless-security/Makefile +src/connection-editor/Makefile +src/gnome-bluetooth/Makefile +icons/Makefile +icons/16/Makefile +icons/22/Makefile +icons/32/Makefile +icons/48/Makefile +icons/scalable/Makefile +po/Makefile.in +]) +AC_OUTPUT + diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/Makefile.am network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/Makefile.am --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/Makefile.am 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,104 @@ +SUBDIRS = marshallers utils wireless-security libnm-gtk connection-editor gnome-bluetooth + +bin_PROGRAMS = nm-applet + +nm_applet_CPPFLAGS = \ + $(GTK_CFLAGS) \ + $(NMA_CFLAGS) \ + $(GNOME_KEYRING_CFLAGS) \ + $(NOTIFY_CFLAGS) \ + -DICONDIR=\""$(datadir)/icons"\" \ + -DUIDIR=\""$(uidir)"\" \ + -DBINDIR=\""$(bindir)"\" \ + -DSYSCONFDIR=\""$(sysconfdir)"\" \ + -DLIBEXECDIR=\""$(libexecdir)"\" \ + -DAUTOSTARTDIR=\""$(sysconfdir)/xdg/autostart"\" \ + -DVPN_NAME_FILES_DIR=\""$(sysconfdir)/NetworkManager/VPN"\" \ + -DNMALOCALEDIR=\"$(datadir)/locale\" \ + $(DBUS_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + -I${top_builddir}/src/marshallers \ + -I${top_srcdir}/src/utils \ + -I${top_srcdir}/src/wireless-security \ + -I${top_srcdir}/src/libnm-gtk + +BUILT_SOURCES = applet-dbus-bindings.h + +applet-dbus-bindings.h: nm-applet-introspection.xml + $(AM_V_GEN) dbus-binding-tool --mode=glib-server --prefix=nma --output=$@ $< + +nm_applet_SOURCES = \ + main.c \ + applet.c \ + applet.h \ + applet-agent.c \ + applet-agent.h \ + applet-vpn-request.c \ + applet-vpn-request.h \ + ethernet-dialog.h \ + ethernet-dialog.c \ + applet-dialogs.h \ + applet-dialogs.c \ + applet-device-ethernet.h \ + applet-device-ethernet.c \ + applet-device-wifi.h \ + applet-device-wifi.c \ + ap-menu-item.h \ + ap-menu-item.c \ + mb-menu-item.h \ + mb-menu-item.c \ + applet-device-gsm.h \ + applet-device-gsm.c \ + applet-device-cdma.h \ + applet-device-cdma.c \ + mobile-helpers.c \ + mobile-helpers.h \ + applet-device-bt.h \ + applet-device-bt.c \ + applet-device-wimax.h \ + applet-device-wimax.c \ + fallback-icon.h \ + shell-watcher.h \ + shell-watcher.c + +nm_applet_LDADD = \ + -lm \ + $(GTK_LIBS) \ + $(NMA_LIBS) \ + $(GNOME_KEYRING_LIBS) \ + $(NOTIFY_LIBS) \ + ${top_builddir}/src/marshallers/libmarshallers.la \ + ${top_builddir}/src/utils/libutils.la \ + ${top_builddir}/src/wireless-security/libwireless-security.la \ + ${top_builddir}/src/libnm-gtk/libnm-gtk.la + + +if BUILD_MIGRATION_TOOL +SUBDIRS += gconf-helpers + +libexec_PROGRAMS = nm-applet-migration-tool +endif + +nm_applet_migration_tool_CPPFLAGS = \ + $(nm_applet_CPPFLAGS) \ + $(GCONF_CFLAGS) \ + -I${top_srcdir}/src/gconf-helpers + +nm_applet_migration_tool_SOURCES = \ + migration-tool.c + +nm_applet_migration_tool_LDADD = \ + $(nm_applet_LDADD) \ + $(GCONF_LIBS) \ + ${top_builddir}/src/gconf-helpers/libgconf-helpers.la + + +uidir = $(datadir)/nm-applet +ui_DATA = gsm-unlock.ui info.ui 8021x.ui keyring.png + +CLEANFILES = *.bak $(BUILT_SOURCES) + +EXTRA_DIST = \ + $(ui_DATA) \ + nm-applet-introspection.xml + diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet-device-bt.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet-device-bt.c --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet-device-bt.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet-device-bt.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,379 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + * (C) Copyright 2008 Novell, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-bt.h" +#include "applet-dialogs.h" +#include "nm-ui-utils.h" + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} BtMenuItemInfo; + +static void +bt_menu_item_info_destroy (gpointer data) +{ + BtMenuItemInfo *info = data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (G_OBJECT (info->connection)); + + g_slice_free (BtMenuItemInfo, data); +} + +static gboolean +bt_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + + // FIXME: call gnome-bluetooth setup wizard + return FALSE; +} + +static void +bt_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + BtMenuItemInfo *info = user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + + +typedef enum { + ADD_ACTIVE = 1, + ADD_INACTIVE = 2, +} AddActiveInactiveEnum; + +static void +add_connection_items (NMDevice *device, + GSList *connections, + NMConnection *active, + AddActiveInactiveEnum flag, + GtkWidget *menu, + NMApplet *applet) +{ + GSList *iter; + BtMenuItemInfo *info; + + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + GtkWidget *item; + + if (active == connection) { + if ((flag & ADD_ACTIVE) == 0) + continue; + } else { + if ((flag & ADD_INACTIVE) == 0) + continue; + } + + item = applet_new_menu_item_helper (connection, active, (flag & ADD_ACTIVE)); + + info = g_slice_new0 (BtMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = g_object_ref (connection); + + g_signal_connect_data (item, "activate", + G_CALLBACK (bt_menu_item_activate), + info, + (GClosureNotify) bt_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } +} + +static void +bt_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + const char *text; + GtkWidget *item; + GSList *connections, *all; + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + text = nm_device_bt_get_name (NM_DEVICE_BT (device)); + if (!text) + text = nma_utils_get_device_description (device); + + item = applet_menu_item_create_device_item_helper (device, applet, text); + + gtk_widget_set_sensitive (item, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + + if (g_slist_length (connections)) + add_connection_items (device, connections, active, ADD_ACTIVE, menu, applet); + + /* Notify user of unmanaged or unavailable device */ + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + + if (!nma_menu_device_check_unusable (device)) { + /* Add menu items for existing bluetooth connections for this device */ + if (g_slist_length (connections)) { + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + add_connection_items (device, connections, active, ADD_INACTIVE, menu, applet); + } + } + + g_slist_free (connections); +} + +static void +bt_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + const char *id; + s_con = nm_connection_get_setting_connection (connection); + id = s_con ? nm_setting_connection_get_id (s_con) : NULL; + if (id) + str = g_strdup_printf (_("You are now connected to '%s'."), id); + } + + applet_do_notify_with_pref (applet, + _("Connection Established"), + str ? str : _("You are now connected to the mobile broadband network."), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (str); + } +} + +static GdkPixbuf * +bt_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + GdkPixbuf *pixbuf = NULL; + const char *id; + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + pixbuf = nma_icon_check_and_load ("nm-device-wwan", &applet->wwan_icon, applet); + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active"), id); + break; + default: + break; + } + + return pixbuf ? g_object_ref (pixbuf) : NULL; +} + +typedef struct { + SecretsRequest req; + GtkWidget *dialog; + GtkEntry *secret_entry; + char *secret_name; +} NMBtSecretsInfo; + +static void +free_bt_secrets_info (SecretsRequest *req) +{ + NMBtSecretsInfo *info = (NMBtSecretsInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } + g_free (info->secret_name); +} + +static void +get_bt_secrets_cb (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMBtSecretsInfo *info = (NMBtSecretsInfo *) req; + NMSetting *setting; + GError *error = NULL; + + if (response == GTK_RESPONSE_OK) { + setting = nm_connection_get_setting_by_name (req->connection, req->setting_name); + if (setting) { + /* Normally we'd want to get all the settings's secrets and return those + * to NM too (since NM wants them), but since the only other secrets for 3G + * connections are PINs, and since the phone obviously has to be unlocked + * to even make the Bluetooth connection, we can skip doing that here for + * Bluetooth devices. + */ + + /* Update the password */ + g_object_set (G_OBJECT (setting), + info->secret_name, gtk_entry_get_text (info->secret_entry), + NULL); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled setting '%s'", + __FILE__, __LINE__, __func__, req->setting_name); + } + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + } + + applet_secrets_request_complete_setting (req, req->setting_name, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static gboolean +bt_get_secrets (SecretsRequest *req, GError **error) +{ + NMBtSecretsInfo *info = (NMBtSecretsInfo *) req; + GtkWidget *widget; + GtkEntry *secret_entry = NULL; + + applet_secrets_request_set_free_func (req, free_bt_secrets_info); + + if (!req->hints || !g_strv_length (req->hints)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): missing secrets hints.", + __FILE__, __LINE__, __func__); + return FALSE; + } + info->secret_name = g_strdup (req->hints[0]); + + if ( (!strcmp (req->setting_name, NM_SETTING_CDMA_SETTING_NAME) && !strcmp (info->secret_name, NM_SETTING_CDMA_PASSWORD)) + || (!strcmp (req->setting_name, NM_SETTING_GSM_SETTING_NAME) && !strcmp (info->secret_name, NM_SETTING_GSM_PASSWORD))) + widget = applet_mobile_password_dialog_new (req->connection, &secret_entry); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unknown secrets hint '%s'.", + __FILE__, __LINE__, __func__, info->secret_name); + return FALSE; + } + info->dialog = widget; + info->secret_entry = secret_entry; + + if (!widget || !secret_entry) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): error asking for CDMA secrets.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (widget, "response", G_CALLBACK (get_bt_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (GTK_WIDGET (widget)); + gtk_window_present (GTK_WINDOW (widget)); + + return TRUE; +} + +NMADeviceClass * +applet_device_bt_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = bt_new_auto_connection; + dclass->add_menu_item = bt_add_menu_item; + dclass->device_state_changed = bt_device_state_changed; + dclass->get_icon = bt_get_icon; + dclass->get_secrets = bt_get_secrets; + dclass->secrets_request_size = sizeof (NMBtSecretsInfo); + + return dclass; +} diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet-device-cdma.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet-device-cdma.c --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet-device-cdma.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet-device-cdma.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,1023 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-cdma.h" +#include "utils.h" +#include "nm-mobile-wizard.h" +#include "applet-dialogs.h" +#include "nma-marshal.h" +#include "nmn-mobile-providers.h" +#include "mb-menu-item.h" +#include "nm-ui-utils.h" + +typedef struct { + NMApplet *applet; + NMDevice *device; + + DBusGConnection *bus; + DBusGProxy *props_proxy; + DBusGProxy *cdma_proxy; + gboolean quality_valid; + guint32 quality; + guint32 cdma1x_state; + guint32 evdo_state; + gboolean evdo_capable; + guint32 sid; + gboolean modem_enabled; + + GHashTable *providers; + char *provider_name; + + guint32 poll_id; + gboolean skip_reg_poll; + gboolean skip_signal_poll; +} CdmaDeviceInfo; + +static void check_start_polling (CdmaDeviceInfo *info); + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} CdmaMenuItemInfo; + +static void +cdma_menu_item_info_destroy (gpointer data) +{ + CdmaMenuItemInfo *info = data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (info->connection); + + g_slice_free (CdmaMenuItemInfo, data); +} + +typedef struct { + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} AutoCdmaWizardInfo; + +static void +mobile_wizard_done (NMAMobileWizard *wizard, + gboolean canceled, + NMAMobileWizardAccessMethod *method, + gpointer user_data) +{ + AutoCdmaWizardInfo *info = user_data; + NMConnection *connection = NULL; + + if (!canceled && method) { + NMSetting *setting; + char *uuid, *id; + + if (method->devtype != NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + g_warning ("Unexpected device type (not CDMA)."); + canceled = TRUE; + goto done; + } + + connection = nm_connection_new (); + + setting = nm_setting_cdma_new (); + g_object_set (setting, + NM_SETTING_CDMA_NUMBER, "#777", + NM_SETTING_CDMA_USERNAME, method->username, + NM_SETTING_CDMA_PASSWORD, method->password, + NULL); + nm_connection_add_setting (connection, setting); + + /* Serial setting */ + setting = nm_setting_serial_new (); + g_object_set (setting, + NM_SETTING_SERIAL_BAUD, 115200, + NM_SETTING_SERIAL_BITS, 8, + NM_SETTING_SERIAL_PARITY, 'n', + NM_SETTING_SERIAL_STOPBITS, 1, + NULL); + nm_connection_add_setting (connection, setting); + + nm_connection_add_setting (connection, nm_setting_ppp_new ()); + + setting = nm_setting_connection_new (); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); + uuid = nm_utils_uuid_generate (); + g_object_set (setting, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_CDMA_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + g_free (id); + nm_connection_add_setting (connection, setting); + } + +done: + (*(info->callback)) (connection, TRUE, canceled, info->callback_data); + + if (wizard) + nma_mobile_wizard_destroy (wizard); + g_free (info); +} + +static gboolean +do_mobile_wizard (AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMAMobileWizard *wizard; + AutoCdmaWizardInfo *info; + NMAMobileWizardAccessMethod *method; + + info = g_malloc0 (sizeof (AutoCdmaWizardInfo)); + info->callback = callback; + info->callback_data = callback_data; + + wizard = nma_mobile_wizard_new (NULL, NULL, NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO, FALSE, + mobile_wizard_done, info); + if (wizard) { + nma_mobile_wizard_present (wizard); + return TRUE; + } + + /* Fall back to something */ + method = g_malloc0 (sizeof (NMAMobileWizardAccessMethod)); + method->devtype = NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO; + method->provider_name = _("CDMA"); + mobile_wizard_done (NULL, FALSE, method, info); + g_free (method); + + return TRUE; +} + +static gboolean +cdma_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + return do_mobile_wizard (callback, callback_data); +} + +static void +dbus_3g_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; +} Dbus3gInfo; + +static void +dbus_connect_3g_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus3gInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + "/", + dbus_3g_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +void +applet_cdma_connect_network (NMApplet *applet, NMDevice *device) +{ + Dbus3gInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + + do_mobile_wizard (dbus_connect_3g_cb, info); +} + +static void +cdma_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + CdmaMenuItemInfo *info = (CdmaMenuItemInfo *) user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + +static void +add_connection_item (NMDevice *device, + NMConnection *connection, + GtkWidget *item, + GtkWidget *menu, + NMApplet *applet) +{ + CdmaMenuItemInfo *info; + + info = g_slice_new0 (CdmaMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = connection ? g_object_ref (connection) : NULL; + + g_signal_connect_data (item, "activate", + G_CALLBACK (cdma_menu_item_activate), + info, + (GClosureNotify) cdma_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); +} + +static guint32 +cdma_state_to_mb_state (CdmaDeviceInfo *info) +{ + if (!info->modem_enabled) + return MB_STATE_UNKNOWN; + + /* EVDO state overrides 1X state for now */ + if (info->evdo_state) { + if (info->evdo_state == 3) + return MB_STATE_ROAMING; + return MB_STATE_HOME; + } else if (info->cdma1x_state) { + if (info->cdma1x_state == 3) + return MB_STATE_ROAMING; + return MB_STATE_HOME; + } + + return MB_STATE_UNKNOWN; +} + +static guint32 +cdma_act_to_mb_act (CdmaDeviceInfo *info) +{ + if (info->evdo_state) + return MB_TECH_EVDO_REVA; /* Always rA until we get CDMA AcT from MM */ + else if (info->cdma1x_state) + return MB_TECH_1XRTT; + return MB_TECH_UNKNOWN; +} + +static void +cdma_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + CdmaDeviceInfo *info; + char *text; + GtkWidget *item; + GSList *connections, *all, *iter; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + text = g_strdup_printf (_("Mobile Broadband (%s)"), desc); + } else { + text = g_strdup (_("Mobile Broadband")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); + gtk_widget_set_sensitive (item, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + g_free (text); + + /* Add the active connection */ + if (active) { + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (active); + g_assert (s_con); + + item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), + info->quality_valid ? info->quality : 0, + info->provider_name, + TRUE, + cdma_act_to_mb_act (info), + cdma_state_to_mb_state (info), + info->modem_enabled, + applet); + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + add_connection_item (device, active, item, menu, applet); + } + + /* Get the "disconnect" item if connected */ + if (nm_device_get_state (device) > NM_DEVICE_STATE_DISCONNECTED) { + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + } else { + /* Otherwise show idle registration state or disabled */ + item = nm_mb_menu_item_new (NULL, + info->quality_valid ? info->quality : 0, + info->provider_name, + FALSE, + cdma_act_to_mb_act (info), + cdma_state_to_mb_state (info), + info->modem_enabled, + applet); + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + + /* Add the default / inactive connection items */ + if (!nma_menu_device_check_unusable (device)) { + if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (connections)) { + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (connection != active) { + item = applet_new_menu_item_helper (connection, NULL, FALSE); + add_connection_item (device, connection, item, menu, applet); + } + } + } else { + /* Default connection item */ + item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (CDMA) connection...")); + add_connection_item (device, NULL, item, menu, applet); + } + } + + g_slist_free (connections); +} + +static void +cdma_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + CdmaDeviceInfo *info; + + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + const char *id; + + s_con = nm_connection_get_setting_connection (connection); + id = s_con ? nm_setting_connection_get_id (s_con) : NULL; + if (id) + str = g_strdup_printf (_("You are now connected to '%s'."), id); + } + + applet_do_notify_with_pref (applet, + _("Connection Established"), + str ? str : _("You are now connected to the CDMA network."), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (str); + } + + /* Start/stop polling of quality and registration when device state changes */ + info = g_object_get_data (G_OBJECT (device), "devinfo"); + check_start_polling (info); +} + +static GdkPixbuf * +cdma_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + GdkPixbuf *pixbuf = NULL; + const char *id; + CdmaDeviceInfo *info; + gboolean mb_state; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (info); + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + mb_state = cdma_state_to_mb_state (info); + pixbuf = mobile_helper_get_status_pixbuf (info->quality, + info->quality_valid, + mb_state, + cdma_act_to_mb_act (info), + applet); + + if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { + gboolean roaming = (mb_state == MB_STATE_ROAMING); + + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active: (%d%%%s%s)"), + id, info->quality, + roaming ? ", " : "", + roaming ? _("roaming") : ""); + } else + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active"), id); + break; + default: + break; + } + + return pixbuf; +} + +typedef struct { + SecretsRequest req; + GtkWidget *dialog; + GtkEntry *secret_entry; + char *secret_name; +} NMCdmaSecretsInfo; + +static void +free_cdma_secrets_info (SecretsRequest *req) +{ + NMCdmaSecretsInfo *info = (NMCdmaSecretsInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } + g_free (info->secret_name); +} + +static void +get_cdma_secrets_cb (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMCdmaSecretsInfo *info = (NMCdmaSecretsInfo *) req; + NMSettingCdma *setting; + GError *error = NULL; + + if (response == GTK_RESPONSE_OK) { + setting = nm_connection_get_setting_cdma (req->connection); + if (setting) { + g_object_set (G_OBJECT (setting), + info->secret_name, gtk_entry_get_text (info->secret_entry), + NULL); + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): no GSM setting", + __FILE__, __LINE__, __func__); + } + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + } + + applet_secrets_request_complete_setting (req, NM_SETTING_CDMA_SETTING_NAME, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static gboolean +cdma_get_secrets (SecretsRequest *req, GError **error) +{ + NMCdmaSecretsInfo *info = (NMCdmaSecretsInfo *) req; + GtkWidget *widget; + GtkEntry *secret_entry = NULL; + + applet_secrets_request_set_free_func (req, free_cdma_secrets_info); + + if (!req->hints || !g_strv_length (req->hints)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): missing secrets hints.", + __FILE__, __LINE__, __func__); + return FALSE; + } + info->secret_name = g_strdup (req->hints[0]); + + if (!strcmp (info->secret_name, NM_SETTING_CDMA_PASSWORD)) + widget = applet_mobile_password_dialog_new (req->connection, &secret_entry); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unknown secrets hint '%s'.", + __FILE__, __LINE__, __func__, info->secret_name); + return FALSE; + } + info->dialog = widget; + info->secret_entry = secret_entry; + + if (!widget || !secret_entry) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): error asking for CDMA secrets.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (widget, "response", G_CALLBACK (get_cdma_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (GTK_WIDGET (widget)); + gtk_window_present (GTK_WINDOW (widget)); + + return TRUE; +} + +static void +cdma_device_info_free (gpointer data) +{ + CdmaDeviceInfo *info = data; + + if (info->props_proxy) + g_object_unref (info->props_proxy); + if (info->cdma_proxy) + g_object_unref (info->cdma_proxy); + if (info->bus) + dbus_g_connection_unref (info->bus); + if (info->poll_id) + g_source_remove (info->poll_id); + if (info->providers) + g_hash_table_destroy (info->providers); + g_free (info->provider_name); + memset (info, 0, sizeof (CdmaDeviceInfo)); + g_free (info); +} + +static void +notify_user_of_cdma_reg_change (CdmaDeviceInfo *info) +{ + guint32 mb_state = cdma_state_to_mb_state (info); + + if (mb_state == MB_STATE_HOME) { + applet_do_notify_with_pref (info->applet, + _("CDMA network."), + _("You are now registered on the home network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } else if (mb_state == MB_STATE_ROAMING) { + applet_do_notify_with_pref (info->applet, + _("CDMA network."), + _("You are now registered on a roaming network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } +} + +static void +update_registration_state (CdmaDeviceInfo *info, + guint32 new_cdma1x_state, + guint32 new_evdo_state) +{ + guint32 old_mb_state = cdma_state_to_mb_state (info); + + if ( (info->cdma1x_state != new_cdma1x_state) + || (info->evdo_state != new_evdo_state)) { + info->cdma1x_state = new_cdma1x_state; + info->evdo_state = new_evdo_state; + } + + /* Use the composite state to notify of home/roaming changes */ + if (cdma_state_to_mb_state (info) != old_mb_state) + notify_user_of_cdma_reg_change (info); +} + +static void +reg_state_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GError *error = NULL; + guint32 cdma1x_state = 0, evdo_state = 0; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_UINT, &cdma1x_state, + G_TYPE_UINT, &evdo_state, + G_TYPE_INVALID)) { + update_registration_state (info, cdma1x_state, evdo_state); + applet_schedule_update_icon (info->applet); + } + + g_clear_error (&error); +} + +static void +signal_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GError *error = NULL; + guint32 quality = 0; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_UINT, &quality, + G_TYPE_INVALID)) { + info->quality = quality; + info->quality_valid = TRUE; + applet_schedule_update_icon (info->applet); + } + + g_clear_error (&error); +} + +#define SERVING_SYSTEM_TYPE (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID)) + +static char * +find_provider_for_sid (GHashTable *table, guint32 sid) +{ + GHashTableIter iter; + gpointer value; + GSList *piter, *siter; + char *name = NULL; + + if (sid == 0) + return NULL; + + g_hash_table_iter_init (&iter, table); + /* Search through each country */ + while (g_hash_table_iter_next (&iter, NULL, &value) && !name) { + GSList *providers = value; + + /* Search through each country's providers */ + for (piter = providers; piter && !name; piter = g_slist_next (piter)) { + NmnMobileProvider *provider = piter->data; + + /* Search through CDMA SID list */ + for (siter = provider->cdma_sid; siter; siter = g_slist_next (siter)) { + if (GPOINTER_TO_UINT (siter->data) == sid) { + name = g_strdup (provider->name); + break; + } + } + } + } + + return name; +} + +static void +serving_system_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GError *error = NULL; + GValueArray *array = NULL; + guint32 new_sid = 0; + GValue *value; + + if (dbus_g_proxy_end_call (proxy, call, &error, + SERVING_SYSTEM_TYPE, &array, + G_TYPE_INVALID)) { + if (array->n_values == 3) { + value = g_value_array_get_nth (array, 2); + if (G_VALUE_HOLDS_UINT (value)) + new_sid = g_value_get_uint (value); + } + + g_value_array_free (array); + } + + if (new_sid && (new_sid != info->sid)) { + info->sid = new_sid; + if (info->providers) { + g_free (info->provider_name); + info->provider_name = NULL; + info->provider_name = find_provider_for_sid (info->providers, new_sid); + } + } else if (!new_sid) { + info->sid = 0; + g_free (info->provider_name); + info->provider_name = NULL; + } + + g_clear_error (&error); +} + +static void +enabled_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_BOOLEAN (&value)) + info->modem_enabled = g_value_get_boolean (&value); + g_value_unset (&value); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static gboolean +cdma_poll_cb (gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + + /* Kick off calls to get registration state and signal quality */ + if (!info->skip_reg_poll) { + dbus_g_proxy_begin_call (info->cdma_proxy, "GetRegistrationState", + reg_state_reply, info, NULL, + G_TYPE_INVALID); + info->skip_reg_poll = FALSE; + } + + if (!info->skip_signal_poll) { + dbus_g_proxy_begin_call (info->cdma_proxy, "GetSignalQuality", + signal_reply, info, NULL, + G_TYPE_INVALID); + info->skip_signal_poll = FALSE; + } + + dbus_g_proxy_begin_call (info->cdma_proxy, "GetServingSystem", + serving_system_reply, info, NULL, + G_TYPE_INVALID); + + return TRUE; /* keep running until we're told to stop */ +} + +static void +check_start_polling (CdmaDeviceInfo *info) +{ + NMDeviceState state; + gboolean poll = TRUE; + + g_return_if_fail (info != NULL); + + /* Don't poll if any of the following are true: + * + * 1) NM says the device is not available + * 3) the modem isn't enabled + */ + + state = nm_device_get_state (info->device); + if ( (state <= NM_DEVICE_STATE_UNAVAILABLE) + || (info->modem_enabled == FALSE)) + poll = FALSE; + + if (poll) { + if (!info->poll_id) { + /* 33 seconds to be just a bit more than MM's poll interval, so + * that if we get an unsolicited update from MM between polls we'll + * skip the next poll. + */ + info->poll_id = g_timeout_add_seconds (33, cdma_poll_cb, info); + } + cdma_poll_cb (info); + } else { + if (info->poll_id) + g_source_remove (info->poll_id); + info->poll_id = 0; + info->skip_reg_poll = FALSE; + info->skip_signal_poll = FALSE; + } +} + +static void +reg_state_changed_cb (DBusGProxy *proxy, + guint32 cdma1x_state, + guint32 evdo_state, + gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + + update_registration_state (info, cdma1x_state, evdo_state); + info->skip_reg_poll = TRUE; + applet_schedule_update_icon (info->applet); +} + +static void +signal_quality_changed_cb (DBusGProxy *proxy, + guint32 quality, + gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + + info->quality = quality; + info->quality_valid = TRUE; + info->skip_signal_poll = TRUE; + + applet_schedule_update_icon (info->applet); +} + +#define MM_DBUS_INTERFACE_MODEM "org.freedesktop.ModemManager.Modem" +#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)) + +static void +modem_properties_changed (DBusGProxy *proxy, + const char *interface, + GHashTable *props, + gpointer user_data) +{ + CdmaDeviceInfo *info = user_data; + GValue *value; + + if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM)) { + value = g_hash_table_lookup (props, "Enabled"); + if (value && G_VALUE_HOLDS_BOOLEAN (value)) { + info->modem_enabled = g_value_get_boolean (value); + if (!info->modem_enabled) { + info->quality = 0; + info->quality_valid = 0; + info->cdma1x_state = 0; + info->evdo_state = 0; + info->sid = 0; + g_free (info->provider_name); + info->provider_name = NULL; + } + check_start_polling (info); + } + } +} + +static void +cdma_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceModem *modem = NM_DEVICE_MODEM (device); + CdmaDeviceInfo *info; + DBusGConnection *bus; + const char *udi; + GError *error = NULL; + + udi = nm_device_get_udi (device); + if (!udi) + return; + + bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); + if (!bus) { + g_warning ("%s: failed to connect to D-Bus: (%d) %s", __func__, error->code, error->message); + g_clear_error (&error); + return; + } + + info = g_malloc0 (sizeof (CdmaDeviceInfo)); + info->applet = applet; + info->device = device; + info->bus = bus; + info->quality_valid = FALSE; + + info->providers = nmn_mobile_providers_parse (NULL); + + info->props_proxy = dbus_g_proxy_new_for_name (bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.DBus.Properties"); + if (!info->props_proxy) { + g_message ("%s: failed to create D-Bus properties proxy.", __func__); + cdma_device_info_free (info); + return; + } + + info->cdma_proxy = dbus_g_proxy_new_for_name (bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.ModemManager.Modem.Cdma"); + if (!info->cdma_proxy) { + g_message ("%s: failed to create CDMA proxy.", __func__); + cdma_device_info_free (info); + return; + } + + g_object_set_data_full (G_OBJECT (modem), "devinfo", info, cdma_device_info_free); + + /* Registration state change signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__UINT_UINT, + G_TYPE_NONE, + G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->cdma_proxy, "RegistrationStateChanged", + G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->cdma_proxy, "RegistrationStateChanged", + G_CALLBACK (reg_state_changed_cb), info, NULL); + + /* Signal quality change signal */ + dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->cdma_proxy, "SignalQuality", G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->cdma_proxy, "SignalQuality", + G_CALLBACK (signal_quality_changed_cb), info, NULL); + + /* Modem property change signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__STRING_BOXED, + G_TYPE_NONE, G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, + G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->props_proxy, "MmPropertiesChanged", + G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->props_proxy, "MmPropertiesChanged", + G_CALLBACK (modem_properties_changed), + info, NULL); + + /* Ask whether the device is enabled */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + enabled_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_STRING, "Enabled", + G_TYPE_INVALID); +} + +NMADeviceClass * +applet_device_cdma_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = cdma_new_auto_connection; + dclass->add_menu_item = cdma_add_menu_item; + dclass->device_state_changed = cdma_device_state_changed; + dclass->get_icon = cdma_get_icon; + dclass->get_secrets = cdma_get_secrets; + dclass->secrets_request_size = sizeof (NMCdmaSecretsInfo); + dclass->device_added = cdma_device_added; + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet-device-ethernet.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet-device-ethernet.c --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet-device-ethernet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet-device-ethernet.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,651 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + * (C) Copyright 2008 Novell, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "ethernet-dialog.h" +#include "nm-ui-utils.h" + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} EthernetMenuItemInfo; + +static void +ethernet_menu_item_info_destroy (gpointer data) +{ + EthernetMenuItemInfo *info = (EthernetMenuItemInfo *) data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (G_OBJECT (info->connection)); + + g_slice_free (EthernetMenuItemInfo, data); +} + +#define DEFAULT_ETHERNET_NAME _("Auto Ethernet") + +static gboolean +ethernet_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMConnection *connection; + NMSettingWired *s_wired = NULL; + NMSettingConnection *s_con; + char *uuid; + + connection = nm_connection_new (); + + s_wired = NM_SETTING_WIRED (nm_setting_wired_new ()); + nm_connection_add_setting (connection, NM_SETTING (s_wired)); + + s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, + NM_SETTING_CONNECTION_ID, DEFAULT_ETHERNET_NAME, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRED_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, TRUE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + + nm_connection_add_setting (connection, NM_SETTING (s_con)); + + (*callback) (connection, TRUE, FALSE, callback_data); + return TRUE; +} + +static void +ethernet_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + EthernetMenuItemInfo *info = (EthernetMenuItemInfo *) user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + + +typedef enum { + ADD_ACTIVE = 1, + ADD_INACTIVE = 2, +} AddActiveInactiveEnum; + +static void +add_connection_items (NMDevice *device, + GSList *connections, + gboolean carrier, + NMConnection *active, + AddActiveInactiveEnum flag, + GtkWidget *menu, + NMApplet *applet) +{ + GSList *iter; + EthernetMenuItemInfo *info; + + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + GtkWidget *item; + + if (active == connection) { + if ((flag & ADD_ACTIVE) == 0) + continue; + } else { + if ((flag & ADD_INACTIVE) == 0) + continue; + } + + item = applet_new_menu_item_helper (connection, active, (flag & ADD_ACTIVE)); + gtk_widget_set_sensitive (item, carrier); + + info = g_slice_new0 (EthernetMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = g_object_ref (connection); + + g_signal_connect_data (item, "activate", + G_CALLBACK (ethernet_menu_item_activate), + info, + (GClosureNotify) ethernet_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } +} + +static void +add_default_connection_item (NMDevice *device, + gboolean carrier, + GtkWidget *menu, + NMApplet *applet) +{ + EthernetMenuItemInfo *info; + GtkWidget *item; + + item = gtk_check_menu_item_new_with_label (DEFAULT_ETHERNET_NAME); + gtk_widget_set_sensitive (GTK_WIDGET (item), carrier); + gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); + + info = g_slice_new0 (EthernetMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + + g_signal_connect_data (item, "activate", + G_CALLBACK (ethernet_menu_item_activate), + info, + (GClosureNotify) ethernet_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); +} + +static void +ethernet_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + char *text; + GtkWidget *item; + GSList *connections, *all; + gboolean carrier = TRUE; + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + + if (g_slist_length (connections) > 1) + text = g_strdup_printf (_("Ethernet Networks (%s)"), desc); + else + text = g_strdup_printf (_("Ethernet Network (%s)"), desc); + } else { + if (g_slist_length (connections) > 1) + text = g_strdup (_("Ethernet Networks")); + else + text = g_strdup (_("Ethernet Network")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); + g_free (text); + + /* Only dim the item if the device supports carrier detection AND + * we know it doesn't have a link. + */ + if (nm_device_get_capabilities (device) & NM_DEVICE_CAP_CARRIER_DETECT) + carrier = nm_device_ethernet_get_carrier (NM_DEVICE_ETHERNET (device)); + + gtk_widget_set_sensitive (item, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + + if (g_slist_length (connections)) + add_connection_items (device, connections, carrier, active, ADD_ACTIVE, menu, applet); + + /* Notify user of unmanaged or unavailable device */ + item = nma_menu_device_get_menu_item (device, applet, carrier ? NULL : _("disconnected")); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + + if (!nma_menu_device_check_unusable (device)) { + if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (connections)) + add_connection_items (device, connections, carrier, active, ADD_INACTIVE, menu, applet); + else + add_default_connection_item (device, carrier, menu, applet); + } + + g_slist_free (connections); +} + +static void +ethernet_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + const char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, + str ? str : _("Wired network"), + _("Connection Established"), + "nm-device-wired", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } +} + +static GdkPixbuf * +ethernet_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + GdkPixbuf *pixbuf = NULL; + const char *id; + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing ethernet network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring ethernet network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for ethernet network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting an ethernet network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + pixbuf = nma_icon_check_and_load ("nm-device-wired", &applet->ethernet_icon, applet); + *tip = g_strdup_printf (_("Ethernet network connection '%s' active"), id); + break; + default: + break; + } + + return pixbuf ? g_object_ref (pixbuf) : NULL; +} + +/* PPPoE */ + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkEntry *username_entry; + GtkEntry *service_entry; + GtkEntry *password_entry; + GtkWidget *ok_button; +} NMPppoeInfo; + +static void +pppoe_verify (GtkEditable *editable, gpointer user_data) +{ + NMPppoeInfo *info = (NMPppoeInfo *) user_data; + const char *s; + gboolean valid = TRUE; + + s = gtk_entry_get_text (info->username_entry); + if (!s || strlen (s) < 1) + valid = FALSE; + + if (valid) { + s = gtk_entry_get_text (info->password_entry); + if (!s || strlen (s) < 1) + valid = FALSE; + } + + gtk_widget_set_sensitive (info->ok_button, valid); +} + +static void +pppoe_update_setting (NMSettingPPPOE *pppoe, NMPppoeInfo *info) +{ + const char *s; + + s = gtk_entry_get_text (info->service_entry); + if (s && strlen (s) < 1) + s = NULL; + + g_object_set (pppoe, + NM_SETTING_PPPOE_USERNAME, gtk_entry_get_text (info->username_entry), + NM_SETTING_PPPOE_PASSWORD, gtk_entry_get_text (info->password_entry), + NM_SETTING_PPPOE_SERVICE, s, + NULL); +} + +static void +pppoe_update_ui (NMConnection *connection, NMPppoeInfo *info) +{ + NMSettingPPPOE *s_pppoe; + const char *s; + + g_return_if_fail (NM_IS_CONNECTION (connection)); + g_return_if_fail (info != NULL); + + s_pppoe = nm_connection_get_setting_pppoe (connection); + g_return_if_fail (s_pppoe != NULL); + + s = nm_setting_pppoe_get_username (s_pppoe); + if (s) + gtk_entry_set_text (info->username_entry, s); + + s = nm_setting_pppoe_get_service (s_pppoe); + if (s) + gtk_entry_set_text (info->service_entry, s); + + s = nm_setting_pppoe_get_password (s_pppoe); + if (s) + gtk_entry_set_text (info->password_entry, s); +} + +static void +free_pppoe_info (SecretsRequest *req) +{ + NMPppoeInfo *info = (NMPppoeInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } +} + +static void +get_pppoe_secrets_cb (GtkDialog *dialog, gint response, gpointer user_data) +{ + SecretsRequest *req = user_data; + NMPppoeInfo *info = (NMPppoeInfo *) req; + NMSettingPPPOE *setting; + GHashTable *settings = NULL; + GHashTable *secrets; + GError *error = NULL; + + if (response != GTK_RESPONSE_OK) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + goto done; + } + + setting = nm_connection_get_setting_pppoe (req->connection); + pppoe_update_setting (setting, info); + + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ONLY_SECRETS); + if (!secrets) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting " NM_SETTING_PPPOE_SETTING_NAME, + __FILE__, __LINE__, __func__); + } else { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, NM_SETTING_PPPOE_SETTING_NAME, secrets); + } + +done: + applet_secrets_request_complete (req, settings, error); + applet_secrets_request_free (req); + + if (settings) + g_hash_table_destroy (settings); +} + +static void +show_password_toggled (GtkToggleButton *button, gpointer user_data) +{ + NMPppoeInfo *info = (NMPppoeInfo *) user_data; + + if (gtk_toggle_button_get_active (button)) + gtk_entry_set_visibility (GTK_ENTRY (info->password_entry), TRUE); + else + gtk_entry_set_visibility (GTK_ENTRY (info->password_entry), FALSE); +} + +static gboolean +pppoe_get_secrets (SecretsRequest *req, GError **error) +{ + NMPppoeInfo *info = (NMPppoeInfo *) req; + GtkWidget *w; + GtkBuilder* builder; + GError *tmp_error = NULL; + + builder = gtk_builder_new (); + + if (!gtk_builder_add_from_file (builder, UIDIR "/ce-page-dsl.ui", &tmp_error)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't display secrets UI: %s", + __FILE__, __LINE__, __func__, tmp_error->message); + g_error_free (tmp_error); + return FALSE; + } + + applet_secrets_request_set_free_func (req, free_pppoe_info); + + info->username_entry = GTK_ENTRY (gtk_builder_get_object (builder, "dsl_username")); + g_signal_connect (info->username_entry, "changed", G_CALLBACK (pppoe_verify), info); + + info->service_entry = GTK_ENTRY (gtk_builder_get_object (builder, "dsl_service")); + + info->password_entry = GTK_ENTRY (gtk_builder_get_object (builder, "dsl_password")); + g_signal_connect (info->password_entry, "changed", G_CALLBACK (pppoe_verify), info); + + /* Create the dialog */ + info->dialog = gtk_dialog_new (); + gtk_window_set_title (GTK_WINDOW (info->dialog), _("DSL authentication")); + gtk_window_set_modal (GTK_WINDOW (info->dialog), TRUE); + + w = gtk_dialog_add_button (GTK_DIALOG (info->dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); + w = gtk_dialog_add_button (GTK_DIALOG (info->dialog), GTK_STOCK_OK, GTK_RESPONSE_OK); + info->ok_button = w; + + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (info->dialog))), + GTK_WIDGET (gtk_builder_get_object (builder, "DslPage")), + TRUE, TRUE, 0); + + pppoe_update_ui (req->connection, info); + + w = GTK_WIDGET (gtk_builder_get_object (builder, "dsl_show_password")); + g_signal_connect (w, "toggled", G_CALLBACK (show_password_toggled), info); + + g_signal_connect (info->dialog, "response", G_CALLBACK (get_pppoe_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (info->dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (info->dialog); + gtk_window_present (GTK_WINDOW (info->dialog)); + + return TRUE; +} + +/* 802.1x */ + +typedef struct { + SecretsRequest req; + GtkWidget *dialog; +} NM8021xInfo; + +static void +free_8021x_info (SecretsRequest *req) +{ + NM8021xInfo *info = (NM8021xInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } +} + +static void +get_8021x_secrets_cb (GtkDialog *dialog, gint response, gpointer user_data) +{ + SecretsRequest *req = user_data; + NM8021xInfo *info = (NM8021xInfo *) req; + NMConnection *connection = NULL; + NMSetting *setting; + GError *error = NULL; + + if (response != GTK_RESPONSE_OK) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + goto done; + } + + connection = nma_ethernet_dialog_get_connection (info->dialog); + if (!connection) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't get connection from ethernet dialog.", + __FILE__, __LINE__, __func__); + goto done; + } + + setting = nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X); + if (setting) { + nm_connection_add_setting (req->connection, g_object_ref (setting)); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): requested setting '802-1x' didn't" + " exist in the connection.", + __FILE__, __LINE__, __func__); + } + +done: + applet_secrets_request_complete_setting (req, NM_SETTING_802_1X_SETTING_NAME, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static gboolean +nm_8021x_get_secrets (SecretsRequest *req, GError **error) +{ + NM8021xInfo *info = (NM8021xInfo *) req; + + applet_secrets_request_set_free_func (req, free_8021x_info); + + info->dialog = nma_ethernet_dialog_new (g_object_ref (req->connection)); + if (!info->dialog) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't display secrets UI", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (info->dialog, "response", G_CALLBACK (get_8021x_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (info->dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (info->dialog); + gtk_window_present (GTK_WINDOW (info->dialog)); + + return TRUE; +} + +static gboolean +ethernet_get_secrets (SecretsRequest *req, GError **error) +{ + NMSettingConnection *s_con; + const char *ctype; + + s_con = nm_connection_get_setting_connection (req->connection); + if (!s_con) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): Invalid connection", + __FILE__, __LINE__, __func__); + return FALSE; + } + + ctype = nm_setting_connection_get_connection_type (s_con); + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME)) + return nm_8021x_get_secrets (req, error); + else if (!strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return pppoe_get_secrets (req, error); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled ethernet connection type '%s'", + __FILE__, __LINE__, __func__, ctype); + } + + return FALSE; +} + +NMADeviceClass * +applet_device_ethernet_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = ethernet_new_auto_connection; + dclass->add_menu_item = ethernet_add_menu_item; + dclass->device_state_changed = ethernet_device_state_changed; + dclass->get_icon = ethernet_get_icon; + dclass->get_secrets = ethernet_get_secrets; + dclass->secrets_request_size = MAX (sizeof (NM8021xInfo), sizeof (NMPppoeInfo)); + + return dclass; +} diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet-device-gsm.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet-device-gsm.c --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet-device-gsm.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet-device-gsm.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1740 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + * (C) Copyright 2008 Novell, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-gsm.h" +#include "utils.h" +#include "nm-mobile-wizard.h" +#include "applet-dialogs.h" +#include "mb-menu-item.h" +#include "nma-marshal.h" +#include "nmn-mobile-providers.h" +#include "nm-ui-utils.h" + +typedef enum { + MM_MODEM_GSM_ACCESS_TECH_UNKNOWN = 0, + MM_MODEM_GSM_ACCESS_TECH_GSM = 1, + MM_MODEM_GSM_ACCESS_TECH_GSM_COMPACT = 2, + MM_MODEM_GSM_ACCESS_TECH_GPRS = 3, + MM_MODEM_GSM_ACCESS_TECH_EDGE = 4, /* GSM w/EGPRS */ + MM_MODEM_GSM_ACCESS_TECH_UMTS = 5, /* UTRAN */ + MM_MODEM_GSM_ACCESS_TECH_HSDPA = 6, /* UTRAN w/HSDPA */ + MM_MODEM_GSM_ACCESS_TECH_HSUPA = 7, /* UTRAN w/HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA = 8, /* UTRAN w/HSDPA and HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS = 9, + MM_MODEM_GSM_ACCESS_TECH_LTE = 10, + + MM_MODEM_GSM_ACCESS_TECH_LAST = MM_MODEM_GSM_ACCESS_TECH_LTE +} MMModemGsmAccessTech; + +typedef struct { + NMApplet *applet; + NMDevice *device; + + DBusGConnection *bus; + DBusGProxy *props_proxy; + DBusGProxy *card_proxy; + DBusGProxy *net_proxy; + + gboolean quality_valid; + guint32 quality; + char *unlock_required; + char *devid; + char *simid; + gboolean modem_enabled; + MMModemGsmAccessTech act; + + /* reg_state is (1 + MM reg state) so that 0 means we haven't gotten a + * value from MM yet. 0 is a valid MM GSM reg state. + */ + guint reg_state; + char *op_code; + char *op_name; + GHashTable *providers; + + guint32 poll_id; + gboolean skip_reg_poll; + gboolean skip_signal_poll; + + /* Unlock dialog stuff */ + GtkWidget *dialog; + gpointer keyring_id; +} GsmDeviceInfo; + +static void unlock_dialog_destroy (GsmDeviceInfo *info); +static void check_start_polling (GsmDeviceInfo *info); + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} GSMMenuItemInfo; + +static void +gsm_menu_item_info_destroy (gpointer data) +{ + GSMMenuItemInfo *info = data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (info->connection); + + g_slice_free (GSMMenuItemInfo, data); +} + +typedef struct { + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} AutoGsmWizardInfo; + +static void +mobile_wizard_done (NMAMobileWizard *wizard, + gboolean canceled, + NMAMobileWizardAccessMethod *method, + gpointer user_data) +{ + AutoGsmWizardInfo *info = user_data; + NMConnection *connection = NULL; + + if (!canceled && method) { + NMSetting *setting; + char *uuid, *id; + + if (method->devtype != NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + g_warning ("Unexpected device type (not GSM)."); + canceled = TRUE; + goto done; + } + + connection = nm_connection_new (); + + setting = nm_setting_gsm_new (); + g_object_set (setting, + NM_SETTING_GSM_NUMBER, "*99#", + NM_SETTING_GSM_USERNAME, method->username, + NM_SETTING_GSM_PASSWORD, method->password, + NM_SETTING_GSM_APN, method->gsm_apn, + NULL); + nm_connection_add_setting (connection, setting); + + /* Serial setting */ + setting = nm_setting_serial_new (); + g_object_set (setting, + NM_SETTING_SERIAL_BAUD, 115200, + NM_SETTING_SERIAL_BITS, 8, + NM_SETTING_SERIAL_PARITY, 'n', + NM_SETTING_SERIAL_STOPBITS, 1, + NULL); + nm_connection_add_setting (connection, setting); + + nm_connection_add_setting (connection, nm_setting_ppp_new ()); + + setting = nm_setting_connection_new (); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); + uuid = nm_utils_uuid_generate (); + g_object_set (setting, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_GSM_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + g_free (id); + nm_connection_add_setting (connection, setting); + } + +done: + (*(info->callback)) (connection, TRUE, canceled, info->callback_data); + + if (wizard) + nma_mobile_wizard_destroy (wizard); + g_free (info); +} + +static gboolean +do_mobile_wizard (AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMAMobileWizard *wizard; + AutoGsmWizardInfo *info; + NMAMobileWizardAccessMethod *method; + + info = g_malloc0 (sizeof (AutoGsmWizardInfo)); + info->callback = callback; + info->callback_data = callback_data; + + wizard = nma_mobile_wizard_new (NULL, NULL, NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS, FALSE, + mobile_wizard_done, info); + if (wizard) { + nma_mobile_wizard_present (wizard); + return TRUE; + } + + /* Fall back to something */ + method = g_malloc0 (sizeof (NMAMobileWizardAccessMethod)); + method->devtype = NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS; + method->provider_name = _("GSM"); + mobile_wizard_done (NULL, FALSE, method, info); + g_free (method); + + return TRUE; +} + +static gboolean +gsm_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + return do_mobile_wizard (callback, callback_data); +} + +static void +dbus_3g_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; +} Dbus3gInfo; + +static void +dbus_connect_3g_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus3gInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + "/", + dbus_3g_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +void +applet_gsm_connect_network (NMApplet *applet, NMDevice *device) +{ + Dbus3gInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + + do_mobile_wizard (dbus_connect_3g_cb, info); +} + +static void +gsm_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + GSMMenuItemInfo *info = (GSMMenuItemInfo *) user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + +static void +add_connection_item (NMDevice *device, + NMConnection *connection, + GtkWidget *item, + GtkWidget *menu, + NMApplet *applet) +{ + GSMMenuItemInfo *info; + + info = g_slice_new0 (GSMMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = connection ? g_object_ref (connection) : NULL; + + g_signal_connect_data (item, "activate", + G_CALLBACK (gsm_menu_item_activate), + info, + (GClosureNotify) gsm_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); +} + +static guint32 +gsm_state_to_mb_state (GsmDeviceInfo *info) +{ + if (!info->modem_enabled) + return MB_STATE_UNKNOWN; + + switch (info->reg_state) { + case 1: /* IDLE */ + return MB_STATE_IDLE; + case 2: /* HOME */ + return MB_STATE_HOME; + case 3: /* SEARCHING */ + return MB_STATE_SEARCHING; + case 4: /* DENIED */ + return MB_STATE_DENIED; + case 6: /* ROAMING */ + return MB_STATE_ROAMING; + case 5: /* UNKNOWN */ + default: + break; + } + + return MB_STATE_UNKNOWN; +} + +static guint32 +gsm_act_to_mb_act (GsmDeviceInfo *info) +{ + switch (info->act) { + case MM_MODEM_GSM_ACCESS_TECH_GPRS: + return MB_TECH_GPRS; + case MM_MODEM_GSM_ACCESS_TECH_EDGE: + return MB_TECH_EDGE; + case MM_MODEM_GSM_ACCESS_TECH_UMTS: + return MB_TECH_UMTS; + case MM_MODEM_GSM_ACCESS_TECH_HSDPA: + return MB_TECH_HSDPA; + case MM_MODEM_GSM_ACCESS_TECH_HSUPA: + return MB_TECH_HSUPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA: + return MB_TECH_HSPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS: + return MB_TECH_HSPA_PLUS; + case MM_MODEM_GSM_ACCESS_TECH_LTE: + return MB_TECH_LTE; + default: + break; + } + + return MB_TECH_GSM; +} + +static void +gsm_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + GsmDeviceInfo *info; + char *text; + GtkWidget *item; + GSList *connections, *all, *iter; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + text = g_strdup_printf (_("Mobile Broadband (%s)"), desc); + } else { + text = g_strdup (_("Mobile Broadband")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); + gtk_widget_set_sensitive (item, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + g_free (text); + + /* Add the active connection */ + if (active) { + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (active); + g_assert (s_con); + + item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), + info->quality_valid ? info->quality : 0, + info->op_name, + TRUE, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info), + info->modem_enabled, + applet); + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + add_connection_item (device, active, item, menu, applet); + } + + /* Notify user of unmanaged or unavailable device */ + if (nm_device_get_state (device) > NM_DEVICE_STATE_DISCONNECTED) { + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + } else { + /* Otherwise show idle registration state or disabled */ + item = nm_mb_menu_item_new (NULL, + info->quality_valid ? info->quality : 0, + info->op_name, + FALSE, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info), + info->modem_enabled, + applet); + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + + /* Add the default / inactive connection items */ + if (!nma_menu_device_check_unusable (device)) { + if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (connections)) { + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (connection != active) { + item = applet_new_menu_item_helper (connection, NULL, FALSE); + add_connection_item (device, connection, item, menu, applet); + } + } + } else { + /* Default connection item */ + item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (GSM) connection...")); + add_connection_item (device, NULL, item, menu, applet); + } + } + + g_slist_free (connections); +} + +static void +gsm_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + GsmDeviceInfo *info; + + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + const char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, + str ? str : _("GSM network."), + _("Connection Established"), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } + + /* Start/stop polling of quality and registration when device state changes */ + info = g_object_get_data (G_OBJECT (device), "devinfo"); + check_start_polling (info); +} + +static GdkPixbuf * +gsm_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + GdkPixbuf *pixbuf = NULL; + const char *id; + GsmDeviceInfo *info; + guint32 mb_state; + + info = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (info); + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + mb_state = gsm_state_to_mb_state (info); + pixbuf = mobile_helper_get_status_pixbuf (info->quality, + info->quality_valid, + mb_state, + gsm_act_to_mb_act (info), + applet); + + if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { + gboolean roaming = (mb_state == MB_STATE_ROAMING); + + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active: (%d%%%s%s)"), + id, info->quality, + roaming ? ", " : "", + roaming ? _("roaming") : ""); + } else + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active"), id); + break; + default: + break; + } + + return pixbuf; +} + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkEntry *secret_entry; + char *secret_name; +} NMGsmSecretsInfo; + +static void +free_gsm_secrets_info (SecretsRequest *req) +{ + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } + + g_free (info->secret_name); +} + +static void +get_gsm_secrets_cb (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + NMSettingGsm *setting; + GError *error = NULL; + + if (response == GTK_RESPONSE_OK) { + setting = nm_connection_get_setting_gsm (req->connection); + if (setting) { + g_object_set (G_OBJECT (setting), + info->secret_name, gtk_entry_get_text (info->secret_entry), + NULL); + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): no GSM setting", + __FILE__, __LINE__, __func__); + } + } else { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + } + + applet_secrets_request_complete_setting (req, NM_SETTING_GSM_SETTING_NAME, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static void +pin_entry_changed (GtkEditable *editable, gpointer user_data) +{ + GtkWidget *ok_button = GTK_WIDGET (user_data); + const char *s; + int i; + gboolean valid = FALSE; + guint32 len; + + s = gtk_entry_get_text (GTK_ENTRY (editable)); + if (s) { + len = strlen (s); + if ((len >= 4) && (len <= 8)) { + valid = TRUE; + for (i = 0; i < len; i++) { + if (!g_ascii_isdigit (s[i])) { + valid = FALSE; + break; + } + } + } + } + + gtk_widget_set_sensitive (ok_button, valid); +} + +static GtkWidget * +ask_for_pin (GtkEntry **out_secret_entry) +{ + GtkDialog *dialog; + GtkWidget *w = NULL, *ok_button = NULL; + GtkBox *box = NULL, *vbox = NULL; + + dialog = GTK_DIALOG (gtk_dialog_new ()); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_title (GTK_WINDOW (dialog), _("PIN code required")); + + ok_button = gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); + ok_button = gtk_dialog_add_button (dialog, GTK_STOCK_OK, GTK_RESPONSE_OK); + gtk_window_set_default (GTK_WINDOW (dialog), ok_button); + + vbox = GTK_BOX (gtk_dialog_get_content_area (dialog)); + + w = gtk_label_new (_("PIN code is needed for the mobile broadband device")); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + + w = gtk_alignment_new (0.5, 0.5, 0, 1.0); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + +#if GTK_CHECK_VERSION(3,1,6) + box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6)); +#else + box = GTK_BOX (gtk_hbox_new (FALSE, 6)); +#endif + gtk_container_set_border_width (GTK_CONTAINER (box), 6); + gtk_container_add (GTK_CONTAINER (w), GTK_WIDGET (box)); + + gtk_box_pack_start (box, gtk_label_new ("PIN:"), FALSE, FALSE, 0); + + w = gtk_entry_new (); + *out_secret_entry = GTK_ENTRY (w); + gtk_entry_set_max_length (GTK_ENTRY (w), 8); + gtk_entry_set_width_chars (GTK_ENTRY (w), 8); + gtk_entry_set_activates_default (GTK_ENTRY (w), TRUE); + gtk_entry_set_visibility (GTK_ENTRY (w), FALSE); + gtk_box_pack_start (box, w, FALSE, FALSE, 0); + g_signal_connect (w, "changed", G_CALLBACK (pin_entry_changed), ok_button); + pin_entry_changed (GTK_EDITABLE (w), ok_button); + + gtk_widget_show_all (GTK_WIDGET (vbox)); + return GTK_WIDGET (dialog); +} + +static gboolean +gsm_get_secrets (SecretsRequest *req, GError **error) +{ + NMGsmSecretsInfo *info = (NMGsmSecretsInfo *) req; + GtkWidget *widget; + GtkEntry *secret_entry = NULL; + + applet_secrets_request_set_free_func (req, free_gsm_secrets_info); + + if (!req->hints || !g_strv_length (req->hints)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): missing secrets hints.", + __FILE__, __LINE__, __func__); + return FALSE; + } + info->secret_name = g_strdup (req->hints[0]); + + if (!strcmp (info->secret_name, NM_SETTING_GSM_PIN)) { + NMDevice *device; + GsmDeviceInfo *devinfo; + + device = applet_get_device_for_connection (req->applet, req->connection); + if (!device) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to find device for active connection.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + devinfo = g_object_get_data (G_OBJECT (device), "devinfo"); + g_assert (devinfo); + + /* A GetSecrets PIN dialog overrides the initial unlock dialog */ + if (devinfo->dialog) + unlock_dialog_destroy (devinfo); + + widget = ask_for_pin (&secret_entry); + } else if (!strcmp (info->secret_name, NM_SETTING_GSM_PASSWORD)) + widget = applet_mobile_password_dialog_new (req->connection, &secret_entry); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unknown secrets hint '%s'.", + __FILE__, __LINE__, __func__, info->secret_name); + return FALSE; + } + info->dialog = widget; + info->secret_entry = secret_entry; + + if (!widget || !secret_entry) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): error asking for GSM secrets.", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (widget, "response", G_CALLBACK (get_gsm_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (GTK_WIDGET (widget)); + gtk_window_present (GTK_WINDOW (widget)); + + return TRUE; +} + +/********************************************************************/ + +static void +save_pin_cb (GnomeKeyringResult result, guint32 val, gpointer user_data) +{ + if (result != GNOME_KEYRING_RESULT_OK) + g_warning ("%s: result %d", (const char *) user_data, result); +} + +static void +set_pin_in_keyring (const char *devid, + const char *simid, + const char *pin) +{ + GnomeKeyringAttributeList *attributes; + GnomeKeyringAttribute attr; + const char *name; + char *error_msg; + + name = g_strdup_printf (_("PIN code for SIM card '%s' on '%s'"), + simid ? simid : "unknown", + devid); + + attributes = gnome_keyring_attribute_list_new (); + attr.name = g_strdup ("devid"); + attr.type = GNOME_KEYRING_ATTRIBUTE_TYPE_STRING; + attr.value.string = g_strdup (devid); + g_array_append_val (attributes, attr); + + if (simid) { + attr.name = g_strdup ("simid"); + attr.type = GNOME_KEYRING_ATTRIBUTE_TYPE_STRING; + attr.value.string = g_strdup (simid); + g_array_append_val (attributes, attr); + } + + error_msg = g_strdup_printf ("Saving PIN code in keyring for devid:%s simid:%s failed", + devid, simid ? simid : "(unknown)"); + + gnome_keyring_item_create (NULL, + GNOME_KEYRING_ITEM_GENERIC_SECRET, + name, + attributes, + pin, + TRUE, + save_pin_cb, + error_msg, + (GDestroyNotify) g_free); + + gnome_keyring_attribute_list_free (attributes); +} + +static void +delete_pin_cb (GnomeKeyringResult result, gpointer user_data) +{ + /* nothing to do */ +} + +static void +delete_pins_find_cb (GnomeKeyringResult result, GList *list, gpointer user_data) +{ + GList *iter; + + if (result == GNOME_KEYRING_RESULT_OK) { + for (iter = list; iter; iter = g_list_next (iter)) { + GnomeKeyringFound *found = iter->data; + + gnome_keyring_item_delete (found->keyring, found->item_id, delete_pin_cb, NULL, NULL); + } + } +} + +static void +delete_pins_in_keyring (const char *devid) +{ + gnome_keyring_find_itemsv (GNOME_KEYRING_ITEM_GENERIC_SECRET, + delete_pins_find_cb, + NULL, + NULL, + "devid", + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + devid, + NULL); +} + +static void +unlock_dialog_destroy (GsmDeviceInfo *info) +{ + applet_mobile_pin_dialog_destroy (info->dialog); + info->dialog = NULL; +} + +static void +unlock_pin_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + const char *dbus_error, *msg = NULL, *code1; + + if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + if (applet_mobile_pin_dialog_get_auto_unlock (info->dialog)) { + code1 = applet_mobile_pin_dialog_get_entry1 (info->dialog); + set_pin_in_keyring (info->devid, info->simid, code1); + } else + delete_pins_in_keyring (info->devid); + unlock_dialog_destroy (info); + return; + } + + dbus_error = dbus_g_error_get_name (error); + if (dbus_error && !strcmp (dbus_error, "org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword")) + msg = _("Wrong PIN code; please contact your provider."); + else + msg = error ? error->message : NULL; + + applet_mobile_pin_dialog_stop_spinner (info->dialog, msg); + g_warning ("%s: error unlocking with PIN: %s", __func__, error->message); + g_clear_error (&error); +} + +static void +unlock_puk_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + const char *dbus_error, *msg = NULL; + + if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + unlock_dialog_destroy (info); + return; + } + + dbus_error = dbus_g_error_get_name (error); + if (dbus_error && !strcmp (dbus_error, "org.freedesktop.ModemManager.Modem.Gsm.IncorrectPassword")) + msg = _("Wrong PUK code; please contact your provider."); + else + msg = error ? error->message : NULL; + + applet_mobile_pin_dialog_stop_spinner (info->dialog, msg); + g_warning ("%s: error unlocking with PIN: %s", __func__, error->message); + g_clear_error (&error); +} + +#define UNLOCK_CODE_PIN 1 +#define UNLOCK_CODE_PUK 2 + +static void +unlock_dialog_response (GtkDialog *dialog, + gint response, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + const char *code1, *code2; + guint32 unlock_code; + + if (response == GTK_RESPONSE_CANCEL || response == GTK_RESPONSE_DELETE_EVENT) { + unlock_dialog_destroy (info); + return; + } + + /* Start the spinner to show the progress of the unlock */ + applet_mobile_pin_dialog_start_spinner (info->dialog, _("Sending unlock code...")); + + unlock_code = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (info->dialog), "unlock-code")); + if (!unlock_code) { + g_warn_if_fail (unlock_code != 0); + unlock_dialog_destroy (info); + return; + } + + code1 = applet_mobile_pin_dialog_get_entry1 (info->dialog); + if (!code1 || !strlen (code1)) { + g_warn_if_fail (code1 != NULL); + g_warn_if_fail (strlen (code1)); + unlock_dialog_destroy (info); + return; + } + + /* Send the code to ModemManager */ + if (unlock_code == UNLOCK_CODE_PIN) { + dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPin", + unlock_pin_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, code1, + G_TYPE_INVALID); + } else if (unlock_code == UNLOCK_CODE_PUK) { + code2 = applet_mobile_pin_dialog_get_entry2 (info->dialog); + if (!code2) { + g_warn_if_fail (code2 != NULL); + unlock_dialog_destroy (info); + return; + } + + dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPuk", + unlock_puk_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, code1, + G_TYPE_STRING, code2, + G_TYPE_INVALID); + } +} + +static void +unlock_dialog_new (NMDevice *device, GsmDeviceInfo *info) +{ + const char *header = NULL; + const char *title = NULL; + const char *show_pass_label = NULL; + char *desc = NULL; + const char *label1 = NULL, *label2 = NULL, *label3 = NULL; + const char *device_desc; + gboolean match23 = FALSE; + guint32 label1_min = 0, label2_min = 0, label3_min = 0; + guint32 label1_max = 0, label2_max = 0, label3_max = 0; + guint32 unlock_code = 0; + + g_return_if_fail (info->unlock_required != NULL); + + if (info->dialog) + return; + + /* Figure out the dialog text based on the required unlock code */ + device_desc = nma_utils_get_device_description (device); + if (!strcmp (info->unlock_required, "sim-pin")) { + title = _("SIM PIN unlock required"); + header = _("SIM PIN Unlock Required"); + /* FIXME: some warning about # of times you can enter incorrect PIN */ + desc = g_strdup_printf (_("The mobile broadband device '%s' requires a SIM PIN code before it can be used."), device_desc); + /* Translators: PIN code entry label */ + label1 = _("PIN code:"); + label1_min = 4; + label1_max = 8; + /* Translators: Show/obscure PIN checkbox label */ + show_pass_label = _("Show PIN code"); + unlock_code = UNLOCK_CODE_PIN; + } else if (!strcmp (info->unlock_required, "sim-puk")) { + title = _("SIM PUK unlock required"); + header = _("SIM PUK Unlock Required"); + /* FIXME: some warning about # of times you can enter incorrect PUK */ + desc = g_strdup_printf (_("The mobile broadband device '%s' requires a SIM PUK code before it can be used."), device_desc); + /* Translators: PUK code entry label */ + label1 = _("PUK code:"); + label1_min = label1_max = 8; + /* Translators: New PIN entry label */ + label2 = _("New PIN code:"); + /* Translators: New PIN verification entry label */ + label3 = _("Re-enter new PIN code:"); + label2_min = label3_min = 4; + label2_max = label3_max = 8; + match23 = TRUE; + /* Translators: Show/obscure PIN/PUK checkbox label */ + show_pass_label = _("Show PIN/PUK codes"); + unlock_code = UNLOCK_CODE_PUK; + } else { + g_warning ("Unhandled unlock request for '%s'", info->unlock_required); + return; + } + + /* Construct and run the dialog */ + info->dialog = applet_mobile_pin_dialog_new (title, + header, + desc, + show_pass_label, + (unlock_code == UNLOCK_CODE_PIN) ? TRUE : FALSE); + g_free (desc); + g_return_if_fail (info->dialog != NULL); + + g_object_set_data (G_OBJECT (info->dialog), "unlock-code", GUINT_TO_POINTER (unlock_code)); + applet_mobile_pin_dialog_match_23 (info->dialog, match23); + + applet_mobile_pin_dialog_set_entry1 (info->dialog, label1, label1_min, label1_max); + if (label2) + applet_mobile_pin_dialog_set_entry2 (info->dialog, label2, label2_min, label2_max); + if (label3) + applet_mobile_pin_dialog_set_entry3 (info->dialog, label3, label3_min, label3_max); + + g_signal_connect (info->dialog, "response", G_CALLBACK (unlock_dialog_response), info); + applet_mobile_pin_dialog_present (info->dialog, FALSE); +} + +/********************************************************************/ + +static void +gsm_device_info_free (gpointer data) +{ + GsmDeviceInfo *info = data; + + if (info->props_proxy) + g_object_unref (info->props_proxy); + if (info->card_proxy) + g_object_unref (info->card_proxy); + if (info->net_proxy) + g_object_unref (info->net_proxy); + if (info->bus) + dbus_g_connection_unref (info->bus); + + if (info->keyring_id) + gnome_keyring_cancel_request (info->keyring_id); + + if (info->providers) + g_hash_table_destroy (info->providers); + + if (info->poll_id) + g_source_remove (info->poll_id); + + if (info->dialog) + unlock_dialog_destroy (info); + + g_free (info->devid); + g_free (info->simid); + g_free (info->op_code); + g_free (info->op_name); + memset (info, 0, sizeof (GsmDeviceInfo)); + g_free (info); +} + +static void +signal_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + guint32 quality = 0; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_UINT, &quality, + G_TYPE_INVALID)) { + info->quality = quality; + info->quality_valid = TRUE; + applet_schedule_update_icon (info->applet); + } + + g_clear_error (&error); +} + +static char * +find_provider_for_mcc_mnc (GHashTable *table, const char *mccmnc) +{ + GHashTableIter iter; + gpointer value; + GSList *piter, *siter; + const char *name2 = NULL, *name3 = NULL; + gboolean done = FALSE; + + if (!mccmnc) + return NULL; + + g_hash_table_iter_init (&iter, table); + /* Search through each country */ + while (g_hash_table_iter_next (&iter, NULL, &value) && !done) { + GSList *providers = value; + + /* Search through each country's providers */ + for (piter = providers; piter && !done; piter = g_slist_next (piter)) { + NmnMobileProvider *provider = piter->data; + + /* Search through MCC/MNC list */ + for (siter = provider->gsm_mcc_mnc; siter; siter = g_slist_next (siter)) { + NmnGsmMccMnc *mcc = siter->data; + + /* Match both 2-digit and 3-digit MNC; prefer a + * 3-digit match if found, otherwise a 2-digit one. + */ + if (strncmp (mcc->mcc, mccmnc, 3)) + continue; /* MCC was wrong */ + + if ( !name3 + && (strlen (mccmnc) == 6) + && !strncmp (mccmnc + 3, mcc->mnc, 3)) + name3 = provider->name; + + if ( !name2 + && !strncmp (mccmnc + 3, mcc->mnc, 2)) + name2 = provider->name; + + if (name2 && name3) { + done = TRUE; + break; + } + } + } + } + + if (name3) + return g_strdup (name3); + return g_strdup (name2); +} + +static char * +parse_op_name (GsmDeviceInfo *info, const char *orig, const char *op_code) +{ + guint i, orig_len; + + /* Some devices return the MCC/MNC if they haven't fully initialized + * or gotten all the info from the network yet. Handle that. + */ + + orig_len = orig ? strlen (orig) : 0; + if (orig_len == 0) { + /* If the operator name isn't valid, maybe we can look up the MCC/MNC + * from the operator code instead. + */ + if (op_code && strlen (op_code)) { + orig = op_code; + orig_len = strlen (orig); + } else + return NULL; + } else if (orig_len < 5 || orig_len > 6) + return g_strdup (orig); /* not an MCC/MNC */ + + for (i = 0; i < orig_len; i++) { + if (!isdigit (orig[i])) + return strdup (orig); + } + + /* At this point we have a 5 or 6 character all-digit string; that's + * probably an MCC/MNC. Look that up. + */ + + if (!info->providers) + info->providers = nmn_mobile_providers_parse (NULL); + if (!info->providers) + return strdup (orig); + + return find_provider_for_mcc_mnc (info->providers, orig); +} + +static void +notify_user_of_gsm_reg_change (GsmDeviceInfo *info) +{ + guint32 mb_state = gsm_state_to_mb_state (info); + + if (mb_state == MB_STATE_HOME) { + applet_do_notify_with_pref (info->applet, + _("GSM network."), + _("You are now registered on the home network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } else if (mb_state == MB_STATE_ROAMING) { + applet_do_notify_with_pref (info->applet, + _("GSM network."), + _("You are now registered on a roaming network."), + "nm-signal-100", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } +} + +#define REG_INFO_TYPE (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID)) +#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)) + +static void +reg_info_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValueArray *array = NULL; + guint32 new_state = 0; + char *new_op_code = NULL; + char *new_op_name = NULL; + GValue *value; + + if (dbus_g_proxy_end_call (proxy, call, &error, REG_INFO_TYPE, &array, G_TYPE_INVALID)) { + if (array->n_values == 3) { + value = g_value_array_get_nth (array, 0); + if (G_VALUE_HOLDS_UINT (value)) + new_state = g_value_get_uint (value) + 1; + + value = g_value_array_get_nth (array, 1); + if (G_VALUE_HOLDS_STRING (value)) { + new_op_code = g_value_dup_string (value); + if (new_op_code && !strlen (new_op_code)) { + g_free (new_op_code); + new_op_code = NULL; + } + } + + value = g_value_array_get_nth (array, 2); + if (G_VALUE_HOLDS_STRING (value)) + new_op_name = parse_op_name (info, g_value_get_string (value), new_op_code); + } + + g_value_array_free (array); + } + + if (info->reg_state != new_state) { + info->reg_state = new_state; + notify_user_of_gsm_reg_change (info); + } + + g_free (info->op_code); + info->op_code = new_op_code; + g_free (info->op_name); + info->op_name = new_op_name; + + g_clear_error (&error); +} + +static void +enabled_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_BOOLEAN (&value)) + info->modem_enabled = g_value_get_boolean (&value); + g_value_unset (&value); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static char * +parse_unlock_required (GValue *value) +{ + const char *new_val; + + /* Empty string means NULL */ + new_val = g_value_get_string (value); + if (new_val && strlen (new_val)) { + /* PIN2/PUK2 only required for various dialing things that we don't care + * about; it doesn't inhibit normal operation. + */ + if (strcmp (new_val, "sim-puk2") && strcmp (new_val, "sim-pin2")) + return g_strdup (new_val); + } + + return NULL; +} + +static void +keyring_unlock_pin_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + + if (!dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) { + g_warning ("Failed to auto-unlock devid:%s simid:%s : (%s) %s", + info->devid ? info->devid : "(unknown)", + info->simid ? info->simid : "(unknown)", + dbus_g_error_get_name (error), + error->message); + /* Ask the user */ + unlock_dialog_new (info->device, info); + g_clear_error (&error); + } +} + +static void +keyring_pin_check_cb (GnomeKeyringResult result, GList *list, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GList *iter; + const char *pin = NULL; + + info->keyring_id = NULL; + + if (result != GNOME_KEYRING_RESULT_OK) { + /* No saved PIN, just ask the user */ + unlock_dialog_new (info->device, info); + return; + } + + /* Look for a result with a matching "simid" attribute since that's + * better than just using a matching "devid". The PIN is really tied + * to the SIM, not the modem itself. + */ + for (iter = list; + info->simid && (pin == NULL) && iter; + iter = g_list_next (iter)) { + GnomeKeyringFound *found = iter->data; + int i; + + /* Look for a matching "simid" attribute */ + for (i = 0; (pin == NULL) && i < found->attributes->len; i++) { + GnomeKeyringAttribute attr = gnome_keyring_attribute_list_index (found->attributes, i); + + if ( g_strcmp0 (attr.name, "simid") == 0 + && attr.type == GNOME_KEYRING_ATTRIBUTE_TYPE_STRING + && g_strcmp0 (attr.value.string, info->simid) == 0) { + pin = found->secret; + break; + } + } + } + + if (pin == NULL) { + /* Fall back to the first result's PIN */ + pin = ((GnomeKeyringFound *) list->data)->secret; + if (pin == NULL) { + /* Should never get here */ + g_warn_if_fail (pin != NULL); + unlock_dialog_new (info->device, info); + return; + } + } + + /* Send the PIN code to ModemManager */ + if (!dbus_g_proxy_begin_call_with_timeout (info->card_proxy, "SendPin", + keyring_unlock_pin_reply, info, NULL, + 15000, /* 15 seconds */ + G_TYPE_STRING, pin, + G_TYPE_INVALID)) { + g_warning ("Failed to auto-unlock devid:%s simid:%s", + info->devid ? info->devid : "(unknown)", + info->simid ? info->simid : "(unknown)"); + } +} + +static void +simid_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_STRING (&value)) { + g_free (info->simid); + info->simid = g_value_dup_string (&value); + } + g_value_unset (&value); + } + g_clear_error (&error); + + /* Procure unlock code and apply it if an unlock is now required. */ + if (info->unlock_required) { + /* If we have a device ID ask the keyring for any saved SIM-PIN codes */ + if (info->devid && (g_strcmp0 (info->unlock_required, "sim-pin") == 0)) { + g_warn_if_fail (info->keyring_id == NULL); + info->keyring_id = gnome_keyring_find_itemsv (GNOME_KEYRING_ITEM_GENERIC_SECRET, + keyring_pin_check_cb, + info, + NULL, + "devid", + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + info->devid, + NULL); + } else { + /* Couldn't get a device ID, but unlock required; present dialog */ + unlock_dialog_new (info->device, info); + } + } + + check_start_polling (info); +} + +#define MM_DBUS_INTERFACE_MODEM_GSM_CARD "org.freedesktop.ModemManager.Modem.Gsm.Card" + +static void +unlock_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GHashTable *props = NULL; + + if (dbus_g_proxy_end_call (proxy, call, &error, + DBUS_TYPE_G_MAP_OF_VARIANT, &props, + G_TYPE_INVALID)) { + GHashTableIter iter; + const char *prop_name; + GValue *value; + + g_hash_table_iter_init (&iter, props); + while (g_hash_table_iter_next (&iter, (gpointer) &prop_name, (gpointer) &value)) { + if ((strcmp (prop_name, "UnlockRequired") == 0) && G_VALUE_HOLDS_STRING (value)) { + g_free (info->unlock_required); + info->unlock_required = parse_unlock_required (value); + } + + if ((strcmp (prop_name, "DeviceIdentifier") == 0) && G_VALUE_HOLDS_STRING (value)) { + g_free (info->devid); + info->devid = g_value_dup_string (value); + } + } + g_hash_table_destroy (props); + + /* Get SIM card identifier */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + simid_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM_GSM_CARD, + G_TYPE_STRING, "SimIdentifier", + G_TYPE_INVALID); + } + + g_clear_error (&error); + check_start_polling (info); +} + +static void +access_tech_reply (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GError *error = NULL; + GValue value = { 0 }; + + if (dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_VALUE, &value, + G_TYPE_INVALID)) { + if (G_VALUE_HOLDS_UINT (&value)) { + info->act = g_value_get_uint (&value); + applet_schedule_update_icon (info->applet); + } + g_value_unset (&value); + } + g_clear_error (&error); +} + +static gboolean +gsm_poll_cb (gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + + /* MM might have just sent an unsolicited update, in which case we just + * skip this poll and wait till the next one. + */ + + if (!info->skip_reg_poll) { + dbus_g_proxy_begin_call (info->net_proxy, "GetRegistrationInfo", + reg_info_reply, info, NULL, + G_TYPE_INVALID); + info->skip_reg_poll = FALSE; + } + + if (!info->skip_signal_poll) { + dbus_g_proxy_begin_call (info->net_proxy, "GetSignalQuality", + signal_reply, info, NULL, + G_TYPE_INVALID); + info->skip_signal_poll = FALSE; + } + + return TRUE; /* keep running until we're told to stop */ +} + +static void +check_start_polling (GsmDeviceInfo *info) +{ + NMDeviceState state; + gboolean poll = TRUE; + + g_return_if_fail (info != NULL); + + /* Don't poll if any of the following are true: + * + * 1) NM says the device is not available + * 2) the modem requires an unlock code + * 3) the modem isn't enabled + */ + + state = nm_device_get_state (info->device); + if ( (state <= NM_DEVICE_STATE_UNAVAILABLE) + || info->unlock_required + || (info->modem_enabled == FALSE)) + poll = FALSE; + + if (poll) { + if (!info->poll_id) { + /* 33 seconds to be just a bit more than MM's poll interval, so + * that if we get an unsolicited update from MM between polls we'll + * skip the next poll. + */ + info->poll_id = g_timeout_add_seconds (33, gsm_poll_cb, info); + } + gsm_poll_cb (info); + } else { + if (info->poll_id) + g_source_remove (info->poll_id); + info->poll_id = 0; + info->skip_reg_poll = FALSE; + info->skip_signal_poll = FALSE; + } +} + +static void +reg_info_changed_cb (DBusGProxy *proxy, + guint32 reg_state, + const char *op_code, + const char *op_name, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + guint32 new_state = reg_state + 1; + + if (info->reg_state != new_state) { + info->reg_state = new_state; + notify_user_of_gsm_reg_change (info); + } + + g_free (info->op_code); + info->op_code = strlen (op_code) ? g_strdup (op_code) : NULL; + g_free (info->op_name); + info->op_name = parse_op_name (info, op_name, info->op_code); + info->skip_reg_poll = TRUE; +} + +static void +signal_quality_changed_cb (DBusGProxy *proxy, + guint32 quality, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + + info->quality = quality; + info->quality_valid = TRUE; + info->skip_signal_poll = TRUE; + + applet_schedule_update_icon (info->applet); +} + +#define MM_DBUS_INTERFACE_MODEM "org.freedesktop.ModemManager.Modem" +#define MM_DBUS_INTERFACE_MODEM_GSM_NETWORK "org.freedesktop.ModemManager.Modem.Gsm.Network" + +static void +modem_properties_changed (DBusGProxy *proxy, + const char *interface, + GHashTable *props, + gpointer user_data) +{ + GsmDeviceInfo *info = user_data; + GValue *value; + + if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM)) { + value = g_hash_table_lookup (props, "UnlockRequired"); + if (value && G_VALUE_HOLDS_STRING (value)) { + g_free (info->unlock_required); + info->unlock_required = parse_unlock_required (value); + check_start_polling (info); + } + + value = g_hash_table_lookup (props, "Enabled"); + if (value && G_VALUE_HOLDS_BOOLEAN (value)) { + info->modem_enabled = g_value_get_boolean (value); + if (!info->modem_enabled) { + info->quality = 0; + info->quality_valid = 0; + info->reg_state = 0; + info->act = 0; + g_free (info->op_code); + info->op_code = NULL; + g_free (info->op_name); + info->op_name = NULL; + } + check_start_polling (info); + } + } else if (!strcmp (interface, MM_DBUS_INTERFACE_MODEM_GSM_NETWORK)) { + value = g_hash_table_lookup (props, "AccessTechnology"); + if (value && G_VALUE_HOLDS_UINT (value)) { + info->act = g_value_get_uint (value); + applet_schedule_update_icon (info->applet); + } + } +} + +static void +gsm_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceModem *modem = NM_DEVICE_MODEM (device); + GsmDeviceInfo *info; + const char *udi; + DBusGConnection *bus; + GError *error = NULL; + + udi = nm_device_get_udi (device); + if (!udi) + return; + + bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); + if (!bus) { + g_warning ("%s: failed to connect to D-Bus: (%d) %s", __func__, error->code, error->message); + g_clear_error (&error); + return; + } + + info = g_malloc0 (sizeof (GsmDeviceInfo)); + info->applet = applet; + info->device = device; + info->bus = bus; + + info->props_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.DBus.Properties"); + if (!info->props_proxy) { + g_message ("%s: failed to create D-Bus properties proxy.", __func__); + gsm_device_info_free (info); + return; + } + + info->card_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + "org.freedesktop.ModemManager.Modem.Gsm.Card"); + if (!info->card_proxy) { + g_message ("%s: failed to create GSM Card proxy.", __func__); + gsm_device_info_free (info); + return; + } + + info->net_proxy = dbus_g_proxy_new_for_name (info->bus, + "org.freedesktop.ModemManager", + udi, + MM_DBUS_INTERFACE_MODEM_GSM_NETWORK); + if (!info->net_proxy) { + g_message ("%s: failed to create GSM Network proxy.", __func__); + gsm_device_info_free (info); + return; + } + + g_object_set_data_full (G_OBJECT (modem), "devinfo", info, gsm_device_info_free); + + /* Registration info signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__UINT_STRING_STRING, + G_TYPE_NONE, + G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->net_proxy, "RegistrationInfo", + G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->net_proxy, "RegistrationInfo", + G_CALLBACK (reg_info_changed_cb), info, NULL); + + /* Signal quality change signal */ + dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->net_proxy, "SignalQuality", G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->net_proxy, "SignalQuality", + G_CALLBACK (signal_quality_changed_cb), info, NULL); + + /* Modem property change signal */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__STRING_BOXED, + G_TYPE_NONE, G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, + G_TYPE_INVALID); + dbus_g_proxy_add_signal (info->props_proxy, "MmPropertiesChanged", + G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (info->props_proxy, "MmPropertiesChanged", + G_CALLBACK (modem_properties_changed), + info, NULL); + + /* Ask whether the device needs to be unlocked */ + dbus_g_proxy_begin_call (info->props_proxy, "GetAll", + unlock_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_INVALID); + + /* Ask whether the device is enabled */ + dbus_g_proxy_begin_call (info->props_proxy, "Get", + enabled_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM, + G_TYPE_STRING, "Enabled", + G_TYPE_INVALID); + + dbus_g_proxy_begin_call (info->props_proxy, "Get", + access_tech_reply, info, NULL, + G_TYPE_STRING, MM_DBUS_INTERFACE_MODEM_GSM_NETWORK, + G_TYPE_STRING, "AccessTechnology", + G_TYPE_INVALID); +} + +NMADeviceClass * +applet_device_gsm_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = gsm_new_auto_connection; + dclass->add_menu_item = gsm_add_menu_item; + dclass->device_state_changed = gsm_device_state_changed; + dclass->get_icon = gsm_get_icon; + dclass->get_secrets = gsm_get_secrets; + dclass->secrets_request_size = sizeof (NMGsmSecretsInfo); + dclass->device_added = gsm_device_added; + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet-device-wifi.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet-device-wifi.c --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet-device-wifi.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet-device-wifi.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1706 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-wifi.h" +#include "ap-menu-item.h" +#include "utils.h" +#include "nm-wifi-dialog.h" +#include "nm-ui-utils.h" + +#define ACTIVE_AP_TAG "active-ap" + +static void wifi_dialog_response_cb (GtkDialog *dialog, gint response, gpointer user_data); + +static void nag_dialog_response_cb (GtkDialog *nag_dialog, gint response, gpointer user_data); + +static NMAccessPoint *update_active_ap (NMDevice *device, NMDeviceState state, NMApplet *applet); + +static void _do_new_auto_connection (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap, + AppletNewAutoConnectionCallback callback, + gpointer callback_data); + +static void +show_ignore_focus_stealing_prevention (GtkWidget *widget) +{ + GdkWindow *window; + + gtk_widget_realize (widget); + gtk_widget_show (widget); + window = gtk_widget_get_window (widget); + gtk_window_present_with_time (GTK_WINDOW (widget), gdk_x11_get_server_time (window)); +} + +gboolean +applet_wifi_connect_to_hidden_network (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = nma_wifi_dialog_new_for_other (applet->nm_client, applet->settings); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (wifi_dialog_response_cb), + applet); + show_ignore_focus_stealing_prevention (dialog); + } + return !!dialog; +} + +void +nma_menu_add_hidden_network_item (GtkWidget *menu, NMApplet *applet) +{ + GtkWidget *menu_item; + GtkWidget *label; + + menu_item = gtk_menu_item_new (); + label = gtk_label_new_with_mnemonic (_("_Connect to Hidden Wi-Fi Network...")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_container_add (GTK_CONTAINER (menu_item), label); + gtk_widget_show_all (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_swapped (menu_item, "activate", + G_CALLBACK (applet_wifi_connect_to_hidden_network), + applet); +} + +gboolean +applet_wifi_can_create_wifi_network (NMApplet *applet) +{ + gboolean disabled, allowed = FALSE; + NMClientPermissionResult perm; + + /* FIXME: check WIFI_SHARE_PROTECTED too, and make the wifi dialog + * handle the permissions as well so that admins can restrict open network + * creation separately from protected network creation. + */ + perm = nm_client_get_permission_result (applet->nm_client, NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN); + if (perm == NM_CLIENT_PERMISSION_RESULT_YES || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + disabled = g_settings_get_boolean (applet->gsettings, PREF_DISABLE_WIFI_CREATE); + if (!disabled) + allowed = TRUE; + } + return allowed; +} + +gboolean +applet_wifi_create_wifi_network (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = nma_wifi_dialog_new_for_create (applet->nm_client, applet->settings); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (wifi_dialog_response_cb), + applet); + show_ignore_focus_stealing_prevention (dialog); + } + return !!dialog; +} + +void +nma_menu_add_create_network_item (GtkWidget *menu, NMApplet *applet) +{ + GtkWidget *menu_item; + GtkWidget *label; + + menu_item = gtk_menu_item_new (); + label = gtk_label_new_with_mnemonic (_("Create _New Wi-Fi Network...")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_container_add (GTK_CONTAINER (menu_item), label); + gtk_widget_show_all (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_swapped (menu_item, "activate", + G_CALLBACK (applet_wifi_create_wifi_network), + applet); + + if (!applet_wifi_can_create_wifi_network (applet)) + gtk_widget_set_sensitive (GTK_WIDGET (menu_item), FALSE); +} + +static void +dbus_8021x_add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) + g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMAccessPoint *ap; +} Dbus8021xInfo; + +static void +dbus_connect_8021x_cb (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + Dbus8021xInfo *info = user_data; + + if (canceled == FALSE) { + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + nm_object_get_path (NM_OBJECT (info->ap)), + dbus_8021x_add_and_activate_cb, + info->applet); + } + + g_object_unref (info->device); + g_object_unref (info->ap); + memset (info, 0, sizeof (*info)); + g_free (info); +} + +gboolean +applet_wifi_connect_to_8021x_network (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap) +{ + Dbus8021xInfo *info; + + info = g_malloc0 (sizeof (*info)); + info->applet = applet; + info->device = g_object_ref (device); + info->ap = g_object_ref (ap); + + _do_new_auto_connection (applet, device, ap, dbus_connect_8021x_cb, info); + return TRUE; +} + + +typedef struct { + NMApplet *applet; + NMDeviceWifi *device; + NMAccessPoint *ap; + NMConnection *connection; +} WifiMenuItemInfo; + +static void +wifi_menu_item_info_destroy (gpointer data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) data; + + g_object_unref (G_OBJECT (info->device)); + g_object_unref (G_OBJECT (info->ap)); + + if (info->connection) + g_object_unref (G_OBJECT (info->connection)); + + g_slice_free (WifiMenuItemInfo, data); +} + +/* + * NOTE: this list should *not* contain networks that you would like to + * automatically roam to like "Starbucks" or "AT&T" or "T-Mobile HotSpot". + */ +static const char *manf_default_ssids[] = { + "linksys", + "linksys-a", + "linksys-g", + "default", + "belkin54g", + "NETGEAR", + "o2DSL", + "WLAN", + "ALICE-WLAN", + NULL +}; + +static gboolean +is_ssid_in_list (const GByteArray *ssid, const char **list) +{ + while (*list) { + if (ssid->len == strlen (*list)) { + if (!memcmp (*list, ssid->data, ssid->len)) + return TRUE; + } + list++; + } + return FALSE; +} + +static gboolean +is_manufacturer_default_ssid (const GByteArray *ssid) +{ + return is_ssid_in_list (ssid, manf_default_ssids); +} + +static char * +get_ssid_utf8 (NMAccessPoint *ap) +{ + char *ssid_utf8 = NULL; + const GByteArray *ssid; + + if (ap) { + ssid = nm_access_point_get_ssid (ap); + if (ssid) + ssid_utf8 = nm_utils_ssid_to_utf8 (ssid); + } + if (!ssid_utf8) + ssid_utf8 = g_strdup (_("(none)")); + + return ssid_utf8; +} + +/* List known trojan networks that should never be shown to the user */ +static const char *blacklisted_ssids[] = { + /* http://www.npr.org/templates/story/story.php?storyId=130451369 */ + "Free Public WiFi", + NULL +}; + +static gboolean +is_blacklisted_ssid (const GByteArray *ssid) +{ + return is_ssid_in_list (ssid, blacklisted_ssids); +} + +static void +clamp_ap_to_bssid (NMAccessPoint *ap, NMSettingWireless *s_wifi) +{ + const char *str_bssid; + struct ether_addr *eth_addr; + GByteArray *bssid; + + /* For a certain list of known ESSIDs which are commonly preset by ISPs + * and manufacturers and often unchanged by users, lock the connection + * to the BSSID so that we don't try to auto-connect to your grandma's + * neighbor's WiFi. + */ + + str_bssid = nm_access_point_get_hw_address (ap); + if (str_bssid) { + eth_addr = ether_aton (str_bssid); + if (eth_addr) { + bssid = g_byte_array_sized_new (ETH_ALEN); + g_byte_array_append (bssid, eth_addr->ether_addr_octet, ETH_ALEN); + g_object_set (G_OBJECT (s_wifi), + NM_SETTING_WIRELESS_BSSID, bssid, + NULL); + g_byte_array_free (bssid, TRUE); + } + } +} + +typedef struct { + NMApplet *applet; + AppletNewAutoConnectionCallback callback; + gpointer callback_data; +} MoreInfo; + +static void +more_info_wifi_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (foo); + MoreInfo *info = user_data; + NMConnection *connection = NULL; + NMDevice *device = NULL; + NMAccessPoint *ap = NULL; + + if (response != GTK_RESPONSE_OK) { + info->callback (NULL, FALSE, TRUE, info->callback_data); + goto done; + } + + if (!nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *nag_dialog; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + nag_dialog = nma_wifi_dialog_nag_user (dialog); + if (nag_dialog) { + gtk_window_set_transient_for (GTK_WINDOW (nag_dialog), GTK_WINDOW (dialog)); + g_signal_connect (nag_dialog, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + /* nma_wifi_dialog_get_connection() returns a connection with the + * refcount incremented, so the caller must remember to unref it. + */ + connection = nma_wifi_dialog_get_connection (dialog, &device, &ap); + g_assert (connection); + g_assert (device); + + info->callback (connection, TRUE, FALSE, info->callback_data); + + /* Balance nma_wifi_dialog_get_connection() */ + g_object_unref (connection); + +done: + g_free (info); + gtk_widget_hide (GTK_WIDGET (dialog)); + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static void +_do_new_auto_connection (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMConnection *connection = NULL; + NMSettingConnection *s_con = NULL; + NMSettingWireless *s_wifi = NULL; + NMSettingWirelessSecurity *s_wsec = NULL; + NMSetting8021x *s_8021x = NULL; + const GByteArray *ssid; + NM80211ApSecurityFlags wpa_flags, rsn_flags; + GtkWidget *dialog; + MoreInfo *more_info; + char *uuid; + + g_assert (applet); + g_assert (device); + g_assert (ap); + + connection = nm_connection_new (); + + ssid = nm_access_point_get_ssid (ap); + if ( (nm_access_point_get_mode (ap) == NM_802_11_MODE_INFRA) + && (is_manufacturer_default_ssid (ssid) == TRUE)) { + + /* Lock connection to this AP if it's a manufacturer-default SSID + * so that we don't randomly connect to some other 'linksys' + */ + s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); + clamp_ap_to_bssid (ap, s_wifi); + nm_connection_add_setting (connection, NM_SETTING (s_wifi)); + } + + /* If the AP is WPA[2]-Enterprise then we need to set up a minimal 802.1x + * setting and ask the user for more information. + */ + rsn_flags = nm_access_point_get_rsn_flags (ap); + wpa_flags = nm_access_point_get_wpa_flags (ap); + if ( (rsn_flags & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + || (wpa_flags & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + + /* Need a UUID for the "always ask" stuff in the Dialog of Doom */ + s_con = (NMSettingConnection *) nm_setting_connection_new (); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, NM_SETTING_CONNECTION_UUID, uuid, NULL); + g_free (uuid); + nm_connection_add_setting (connection, NM_SETTING (s_con)); + + if (!s_wifi) { + s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); + nm_connection_add_setting (connection, NM_SETTING (s_wifi)); + } + g_object_set (s_wifi, + NM_SETTING_WIRELESS_SSID, ssid, + NM_SETTING_WIRELESS_SEC, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, + NULL); + + s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new (); + g_object_set (s_wsec, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-eap", NULL); + nm_connection_add_setting (connection, NM_SETTING (s_wsec)); + + s_8021x = (NMSetting8021x *) nm_setting_802_1x_new (); + nm_setting_802_1x_add_eap_method (s_8021x, "ttls"); + g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_AUTH, "mschapv2", NULL); + nm_connection_add_setting (connection, NM_SETTING (s_8021x)); + } + + /* If it's an 802.1x connection, we need more information, so pop up the + * Dialog Of Doom. + */ + if (s_8021x) { + more_info = g_malloc0 (sizeof (*more_info)); + more_info->applet = applet; + more_info->callback = callback; + more_info->callback_data = callback_data; + + dialog = nma_wifi_dialog_new (applet->nm_client, applet->settings, connection, device, ap, FALSE); + if (dialog) { + g_signal_connect (dialog, "response", + G_CALLBACK (more_info_wifi_dialog_response_cb), + more_info); + show_ignore_focus_stealing_prevention (dialog); + } + } else { + /* Everything else can just get activated right away */ + callback (connection, TRUE, FALSE, callback_data); + } +} + +static gboolean +wifi_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) dclass_data; + + g_return_val_if_fail (device != NULL, FALSE); + g_return_val_if_fail (info->ap != NULL, FALSE); + + _do_new_auto_connection (info->applet, device, info->ap, callback, callback_data); + return TRUE; +} + + +static void +wifi_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + WifiMenuItemInfo *info = (WifiMenuItemInfo *) user_data; + const char *specific_object = NULL; + + if (info->ap) + specific_object = nm_object_get_path (NM_OBJECT (info->ap)); + applet_menu_item_activate_helper (NM_DEVICE (info->device), + info->connection, + specific_object ? specific_object : "/", + info->applet, + user_data); +} + +struct dup_data { + NMDevice *device; + NMNetworkMenuItem *found; + char *hash; +}; + +static void +find_duplicate (gpointer d, gpointer user_data) +{ + struct dup_data * data = (struct dup_data *) user_data; + NMDevice *device; + const char *hash; + GtkWidget *widget = GTK_WIDGET (d); + + g_assert (d && widget); + g_return_if_fail (data); + g_return_if_fail (data->hash); + + if (data->found || !NM_IS_NETWORK_MENU_ITEM (widget)) + return; + + device = g_object_get_data (G_OBJECT (widget), "device"); + if (NM_DEVICE (device) != data->device) + return; + + hash = nm_network_menu_item_get_hash (NM_NETWORK_MENU_ITEM (widget)); + if (hash && (strcmp (hash, data->hash) == 0)) + data->found = NM_NETWORK_MENU_ITEM (widget); +} + +static NMNetworkMenuItem * +create_new_ap_item (NMDeviceWifi *device, + NMAccessPoint *ap, + struct dup_data *dup_data, + GSList *connections, + NMApplet *applet) +{ + WifiMenuItemInfo *info; + GSList *iter; + NMNetworkMenuItem *item = NULL; + GSList *dev_connections = NULL; + GSList *ap_connections = NULL; + const GByteArray *ssid; + guint32 dev_caps; + + dev_connections = nm_device_filter_connections (NM_DEVICE (device), connections); + ap_connections = nm_access_point_filter_connections (ap, dev_connections); + g_slist_free (dev_connections); + dev_connections = NULL; + + item = NM_NETWORK_MENU_ITEM (nm_network_menu_item_new (dup_data->hash, + !!g_slist_length (ap_connections))); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + + ssid = nm_access_point_get_ssid (ap); + nm_network_menu_item_set_ssid (item, (GByteArray *) ssid); + + dev_caps = nm_device_wifi_get_capabilities (device); + nma_icon_check_and_load ("nm-adhoc", &applet->adhoc_icon, applet); + nm_network_menu_item_set_detail (item, ap, applet->adhoc_icon, dev_caps); + nm_network_menu_item_best_strength (item, nm_access_point_get_strength (ap), applet); + nm_network_menu_item_add_dupe (item, ap); + + g_object_set_data (G_OBJECT (item), "device", NM_DEVICE (device)); + + /* If there's only one connection, don't show the submenu */ + if (g_slist_length (ap_connections) > 1) { + GtkWidget *submenu; + + submenu = gtk_menu_new (); + + for (iter = ap_connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + GtkWidget *subitem; + + s_con = nm_connection_get_setting_connection (connection); + subitem = gtk_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); + + info = g_slice_new0 (WifiMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->ap = g_object_ref (G_OBJECT (ap)); + info->connection = g_object_ref (G_OBJECT (connection)); + + g_signal_connect_data (subitem, "activate", + G_CALLBACK (wifi_menu_item_activate), + info, + (GClosureNotify) wifi_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), GTK_WIDGET (subitem)); + } + + gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu); + } else { + NMConnection *connection; + + info = g_slice_new0 (WifiMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->ap = g_object_ref (G_OBJECT (ap)); + + if (g_slist_length (ap_connections) == 1) { + connection = NM_CONNECTION (g_slist_nth_data (ap_connections, 0)); + info->connection = g_object_ref (G_OBJECT (connection)); + } + + g_signal_connect_data (GTK_WIDGET (item), + "activate", + G_CALLBACK (wifi_menu_item_activate), + info, + (GClosureNotify) wifi_menu_item_info_destroy, + 0); + } + + g_slist_free (ap_connections); + return item; +} + +static NMNetworkMenuItem * +get_menu_item_for_ap (NMDeviceWifi *device, + NMAccessPoint *ap, + GSList *connections, + GSList *menu_list, + NMApplet *applet) +{ + const GByteArray *ssid; + struct dup_data dup_data = { NULL, NULL }; + + /* Don't add BSSs that hide their SSID or are blacklisted */ + ssid = nm_access_point_get_ssid (ap); + if ( !ssid + || nm_utils_is_empty_ssid (ssid->data, ssid->len) + || is_blacklisted_ssid (ssid)) + return NULL; + + /* Find out if this AP is a member of a larger network that all uses the + * same SSID and security settings. If so, we'll already have a menu item + * for this SSID, so just update that item's strength and add this AP to + * menu item's duplicate list. + */ + dup_data.found = NULL; + dup_data.hash = g_object_get_data (G_OBJECT (ap), "hash"); + g_return_val_if_fail (dup_data.hash != NULL, NULL); + + dup_data.device = NM_DEVICE (device); + g_slist_foreach (menu_list, find_duplicate, &dup_data); + + if (dup_data.found) { + nm_network_menu_item_best_strength (dup_data.found, nm_access_point_get_strength (ap), applet); + nm_network_menu_item_add_dupe (dup_data.found, ap); + return NULL; + } + + return create_new_ap_item (device, ap, &dup_data, connections, applet); +} + +static gint +sort_by_name (gconstpointer tmpa, gconstpointer tmpb) +{ + NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); + NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); + const char *a_ssid, *b_ssid; + gboolean a_adhoc, b_adhoc; + int i; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_ssid = nm_network_menu_item_get_ssid (a); + b_ssid = nm_network_menu_item_get_ssid (b); + + if (a_ssid && !b_ssid) + return 1; + if (b_ssid && !a_ssid) + return -1; + + if (a_ssid && b_ssid) { + i = g_ascii_strcasecmp (a_ssid, b_ssid); + if (i != 0) + return i; + } + + /* If the names are the same, sort infrastructure APs first */ + a_adhoc = nm_network_menu_item_get_is_adhoc (a); + b_adhoc = nm_network_menu_item_get_is_adhoc (b); + if (a_adhoc && !b_adhoc) + return 1; + else if (!a_adhoc && b_adhoc) + return -1; + + return 0; +} + +/* Sort menu items for the top-level menu: + * 1) whether there's a saved connection or not + * a) sort alphabetically within #1 + * 2) encrypted without a saved connection + * 3) unencrypted without a saved connection + */ +static gint +sort_toplevel (gconstpointer tmpa, gconstpointer tmpb) +{ + NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); + NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); + gboolean a_fave, b_fave; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_fave = nm_network_menu_item_get_has_connections (a); + b_fave = nm_network_menu_item_get_has_connections (b); + + /* Items with a saved connection first */ + if (a_fave && !b_fave) + return -1; + else if (!a_fave && b_fave) + return 1; + else if (!a_fave && !b_fave) { + gboolean a_enc = nm_network_menu_item_get_is_encrypted (a); + gboolean b_enc = nm_network_menu_item_get_is_encrypted (b); + + /* If neither item has a saved connection, sort by encryption */ + if (a_enc && !b_enc) + return -1; + else if (!a_enc && b_enc) + return 1; + } + + /* For all other cases (both have saved connections, both are encrypted, or + * both are unencrypted) just sort by name. + */ + return sort_by_name (a, b); +} + +static void +wifi_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + NMDeviceWifi *wdev; + char *text; + const GPtrArray *aps; + int i; + NMAccessPoint *active_ap = NULL; + GSList *connections = NULL, *all, *iter; + gboolean wifi_enabled = TRUE; + gboolean wifi_hw_enabled = TRUE; + GSList *menu_items = NULL; /* All menu items we'll be adding */ + NMNetworkMenuItem *item, *active_item = NULL; + GtkWidget *widget; + + wdev = NM_DEVICE_WIFI (device); + aps = nm_device_wifi_get_access_points (wdev); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + if (aps && aps->len > 1) + text = g_strdup_printf (_("Wi-Fi Networks (%s)"), desc); + else + text = g_strdup_printf (_("Wi-Fi Network (%s)"), desc); + } else + text = g_strdup (ngettext ("Wi-Fi Network", "Wi-Fi Networks", aps ? aps->len : 0)); + + widget = applet_menu_item_create_device_item_helper (device, applet, text); + g_free (text); + + gtk_widget_set_sensitive (widget, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); + gtk_widget_show (widget); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + /* Add the active AP if we're connected to something and the device is available */ + if (!nma_menu_device_check_unusable (device)) { + active_ap = nm_device_wifi_get_active_access_point (wdev); + if (active_ap) { + active_item = item = get_menu_item_for_ap (wdev, active_ap, connections, NULL, applet); + if (item) { + nm_network_menu_item_set_active (item, TRUE); + menu_items = g_slist_append (menu_items, item); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + gtk_widget_show_all (GTK_WIDGET (item)); + } + } + } + + /* Notify user of unmanaged or unavailable device */ + wifi_enabled = nm_client_wireless_get_enabled (applet->nm_client); + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + widget = nma_menu_device_get_menu_item (device, applet, + wifi_hw_enabled ? + (wifi_enabled ? NULL : _("Wi-Fi is disabled")) : + _("Wi-Fi is disabled by hardware switch")); + if (widget) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); + gtk_widget_show (widget); + } + + /* If disabled or rfkilled or whatever, nothing left to do */ + if (nma_menu_device_check_unusable (device)) + goto out; + + /* Create menu items for the rest of the APs */ + for (i = 0; aps && (i < aps->len); i++) { + NMAccessPoint *ap = g_ptr_array_index (aps, i); + + item = get_menu_item_for_ap (wdev, ap, connections, menu_items, applet); + if (item) + menu_items = g_slist_append (menu_items, item); + } + + /* Now remove the active AP item from the list, as we've already dealt with + * it. (Needed it when creating menu items for the rest of the APs though + * to ensure duplicate APs are handled correctly) + */ + if (active_item) + menu_items = g_slist_remove (menu_items, active_item); + + /* Sort all the rest of the menu items for the top-level menu */ + menu_items = g_slist_sort (menu_items, sort_toplevel); + + if (g_slist_length (menu_items)) { + GSList *submenu_items = NULL; + GSList *topmenu_items = NULL; + guint32 num_for_toplevel = 5; + + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (menu_items) == (num_for_toplevel + 1)) + num_for_toplevel++; + + /* Add the first 5 APs (or 6 if there are only 6 total) from the sorted + * toplevel list. + */ + for (iter = menu_items; iter && num_for_toplevel; iter = g_slist_next (iter)) { + topmenu_items = g_slist_append (topmenu_items, iter->data); + num_for_toplevel--; + submenu_items = iter->next; + } + topmenu_items = g_slist_sort (topmenu_items, sort_by_name); + + for (iter = topmenu_items; iter; iter = g_slist_next (iter)) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (iter->data)); + gtk_widget_show_all (GTK_WIDGET (iter->data)); + } + g_slist_free (topmenu_items); + topmenu_items = NULL; + + /* If there are any submenu items, make a submenu for those */ + if (submenu_items) { + GtkWidget *subitem, *submenu; + GSList *sorted_subitems; + + subitem = gtk_menu_item_new_with_mnemonic (_("More networks")); + submenu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (subitem), submenu); + + /* Sort the subitems alphabetically */ + sorted_subitems = g_slist_copy (submenu_items); + sorted_subitems = g_slist_sort (sorted_subitems, sort_by_name); + + /* And add the rest to the submenu */ + for (iter = sorted_subitems; iter; iter = g_slist_next (iter)) + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), GTK_WIDGET (iter->data)); + g_slist_free (sorted_subitems); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), subitem); + gtk_widget_show_all (subitem); + } + } + +out: + g_slist_free (menu_items); + g_slist_free (connections); +} + +static void +notify_active_ap_changed_cb (NMDeviceWifi *device, + GParamSpec *pspec, + NMApplet *applet) +{ + NMRemoteConnection *connection; + NMSettingWireless *s_wireless; + NMAccessPoint *new; + const GByteArray *ssid; + NMDeviceState state; + + state = nm_device_get_state (NM_DEVICE (device)); + + new = update_active_ap (NM_DEVICE (device), state, applet); + if (!new || (state != NM_DEVICE_STATE_ACTIVATED)) + return; + + connection = applet_get_exported_connection_for_device (NM_DEVICE (device), applet); + if (!connection) + return; + + s_wireless = nm_connection_get_setting_wireless (NM_CONNECTION (connection)); + if (!s_wireless) + return; + + ssid = nm_access_point_get_ssid (new); + if (!ssid || !nm_utils_same_ssid (nm_setting_wireless_get_ssid (s_wireless), ssid, TRUE)) + return; + + applet_schedule_update_icon (applet); +} + +static void +add_hash_to_ap (NMAccessPoint *ap) +{ + char *hash; + + hash = utils_hash_ap (nm_access_point_get_ssid (ap), + nm_access_point_get_mode (ap), + nm_access_point_get_flags (ap), + nm_access_point_get_wpa_flags (ap), + nm_access_point_get_rsn_flags (ap)); + g_object_set_data_full (G_OBJECT (ap), "hash", hash, (GDestroyNotify) g_free); +} + +static void +notify_ap_prop_changed_cb (NMAccessPoint *ap, + GParamSpec *pspec, + NMApplet *applet) +{ + const char *prop = g_param_spec_get_name (pspec); + + if ( !strcmp (prop, NM_ACCESS_POINT_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_WPA_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_RSN_FLAGS) + || !strcmp (prop, NM_ACCESS_POINT_SSID) + || !strcmp (prop, NM_ACCESS_POINT_FREQUENCY) + || !strcmp (prop, NM_ACCESS_POINT_MODE)) { + add_hash_to_ap (ap); + } +} + +static void +wifi_available_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id || strcmp (id, "dont-show")) + return; + + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + TRUE); +} + + +struct ap_notification_data +{ + NMApplet *applet; + NMDeviceWifi *device; + guint id; + gulong last_notification_time; + guint new_con_id; +}; + +/* Scan the list of access points, looking for the case where we have no + * known (i.e. autoconnect) access points, but we do have unknown ones. + * + * If we find one, notify the user. + */ +static gboolean +idle_check_avail_access_point_notification (gpointer datap) +{ + struct ap_notification_data *data = datap; + NMApplet *applet = data->applet; + NMDeviceWifi *device = data->device; + int i; + const GPtrArray *aps; + GSList *all_connections; + GSList *connections; + GTimeVal timeval; + gboolean have_unused_access_point = FALSE; + gboolean have_no_autoconnect_points = TRUE; + + if (nm_client_get_state (data->applet->nm_client) != NM_STATE_DISCONNECTED) + return FALSE; + + if (nm_device_get_state (NM_DEVICE (device)) != NM_DEVICE_STATE_DISCONNECTED) + return FALSE; + + g_get_current_time (&timeval); + if ((timeval.tv_sec - data->last_notification_time) < 60*60) /* Notify at most once an hour */ + return FALSE; + + all_connections = applet_get_all_connections (applet); + connections = nm_device_filter_connections (NM_DEVICE (device), all_connections); + g_slist_free (all_connections); + all_connections = NULL; + + aps = nm_device_wifi_get_access_points (device); + for (i = 0; aps && (i < aps->len); i++) { + NMAccessPoint *ap = aps->pdata[i]; + GSList *ap_connections = nm_access_point_filter_connections (ap, connections); + GSList *iter; + gboolean is_autoconnect = FALSE; + + for (iter = ap_connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (nm_setting_connection_get_autoconnect (s_con)) { + is_autoconnect = TRUE; + break; + } + } + g_slist_free (ap_connections); + + if (!is_autoconnect) + have_unused_access_point = TRUE; + else + have_no_autoconnect_points = FALSE; + } + g_slist_free (connections); + + if (!(have_unused_access_point && have_no_autoconnect_points)) + return FALSE; + + /* Avoid notifying too often */ + g_get_current_time (&timeval); + data->last_notification_time = timeval.tv_sec; + + applet_do_notify (applet, + NOTIFY_URGENCY_LOW, + _("Wi-Fi Networks Available"), + _("Use the network menu to connect to a Wi-Fi network"), + "nm-device-wireless", + "dont-show", + _("Don't show this message again"), + wifi_available_dont_show_cb, + applet); + return FALSE; +} + +static void +queue_avail_access_point_notification (NMDevice *device) +{ + struct ap_notification_data *data; + + data = g_object_get_data (G_OBJECT (device), "notify-wifi-avail-data"); + if (data->id != 0) + return; + + if (g_settings_get_boolean (data->applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + return; + + data->id = g_timeout_add_seconds (3, idle_check_avail_access_point_notification, data); +} + +static void +access_point_added_cb (NMDeviceWifi *device, + NMAccessPoint *ap, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + add_hash_to_ap (ap); + g_signal_connect (G_OBJECT (ap), + "notify", + G_CALLBACK (notify_ap_prop_changed_cb), + applet); + + queue_avail_access_point_notification (NM_DEVICE (device)); +} + +static void +access_point_removed_cb (NMDeviceWifi *device, + NMAccessPoint *ap, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMAccessPoint *old; + + /* If this AP was the active AP, make sure ACTIVE_AP_TAG gets cleared from + * its device. + */ + old = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + if (old == ap) { + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); + applet_schedule_update_icon (applet); + } +} + +static void +on_new_connection (NMRemoteSettings *settings, + NMRemoteConnection *connection, + gpointer datap) +{ + struct ap_notification_data *data = datap; + queue_avail_access_point_notification (NM_DEVICE (data->device)); +} + +static void +free_ap_notification_data (gpointer user_data) +{ + struct ap_notification_data *data = user_data; + NMRemoteSettings *settings = applet_get_settings (data->applet); + + if (data->id) + g_source_remove (data->id); + + if (settings) + g_signal_handler_disconnect (settings, data->new_con_id); + memset (data, 0, sizeof (*data)); + g_free (data); +} + +static void +wifi_device_added (NMDevice *device, NMApplet *applet) +{ + NMDeviceWifi *wdev = NM_DEVICE_WIFI (device); + const GPtrArray *aps; + int i; + struct ap_notification_data *data; + guint id; + + g_signal_connect (wdev, + "notify::" NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT, + G_CALLBACK (notify_active_ap_changed_cb), + applet); + + g_signal_connect (wdev, + "access-point-added", + G_CALLBACK (access_point_added_cb), + applet); + + g_signal_connect (wdev, + "access-point-removed", + G_CALLBACK (access_point_removed_cb), + applet); + + /* Now create the per-device hooks for watching for available wifi + * connections. + */ + data = g_new0 (struct ap_notification_data, 1); + data->applet = applet; + data->device = wdev; + /* We also need to hook up to the settings to find out when we have new connections + * that might be candididates. Keep the ID around so we can disconnect + * when the device is destroyed. + */ + id = g_signal_connect (applet_get_settings (applet), + NM_REMOTE_SETTINGS_NEW_CONNECTION, + G_CALLBACK (on_new_connection), + data); + data->new_con_id = id; + g_object_set_data_full (G_OBJECT (wdev), "notify-wifi-avail-data", + data, free_ap_notification_data); + + queue_avail_access_point_notification (device); + + /* Hash all APs this device knows about */ + aps = nm_device_wifi_get_access_points (wdev); + for (i = 0; aps && (i < aps->len); i++) + add_hash_to_ap (g_ptr_array_index (aps, i)); +} + +static void +bssid_strength_changed (NMAccessPoint *ap, GParamSpec *pspec, gpointer user_data) +{ + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static NMAccessPoint * +update_active_ap (NMDevice *device, NMDeviceState state, NMApplet *applet) +{ + NMAccessPoint *new = NULL, *old; + + if (state == NM_DEVICE_STATE_PREPARE || + state == NM_DEVICE_STATE_CONFIG || + state == NM_DEVICE_STATE_IP_CONFIG || + state == NM_DEVICE_STATE_NEED_AUTH || + state == NM_DEVICE_STATE_ACTIVATED) { + new = nm_device_wifi_get_active_access_point (NM_DEVICE_WIFI (device)); + } + + old = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + if (new && (new == old)) + return new; /* no change */ + + if (old) { + g_signal_handlers_disconnect_by_func (old, G_CALLBACK (bssid_strength_changed), applet); + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); + } + + if (new) { + g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, new); + + /* monitor this AP's signal strength for updating the applet icon */ + g_signal_connect (new, + "notify::" NM_ACCESS_POINT_STRENGTH, + G_CALLBACK (bssid_strength_changed), + applet); + } + + return new; +} + +static void +wifi_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + NMAccessPoint *new = NULL; + char *esc_ssid = NULL; + + new = update_active_ap (device, new_state, applet); + + if (new_state == NM_DEVICE_STATE_DISCONNECTED) + queue_avail_access_point_notification (device); + + if (new_state != NM_DEVICE_STATE_ACTIVATED) + return; + + esc_ssid = get_ssid_utf8 (new); + g_object_set_data_full (G_OBJECT(device), "canonical-last-essid", g_strdup (esc_ssid), (GDestroyNotify) g_free); + applet_do_notify_with_pref (applet, + esc_ssid ? esc_ssid : _("(none)"), + _("Connection Established"), + "nm-device-wireless", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (esc_ssid); +} + +static GdkPixbuf * +wifi_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + NMAccessPoint *ap; + GdkPixbuf *pixbuf = NULL; + const char *id; + char *ssid = NULL; + + ap = g_object_get_data (G_OBJECT (device), ACTIVE_AP_TAG); + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing Wi-Fi network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring Wi-Fi network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for Wi-Fi network '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a Wi-Fi network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + if (ap) { + guint32 strength; + + strength = nm_access_point_get_strength (ap); + strength = CLAMP (strength, 0, 100); + + if (strength > 80) + pixbuf = nma_icon_check_and_load ("nm-signal-100", &applet->wifi_100_icon, applet); + else if (strength > 55) + pixbuf = nma_icon_check_and_load ("nm-signal-75", &applet->wifi_75_icon, applet); + else if (strength > 30) + pixbuf = nma_icon_check_and_load ("nm-signal-50", &applet->wifi_50_icon, applet); + else if (strength > 5) + pixbuf = nma_icon_check_and_load ("nm-signal-25", &applet->wifi_25_icon, applet); + else + pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); + + ssid = get_ssid_utf8 (ap); + *tip = g_strdup_printf (_("Wi-Fi network connection '%s' active: %s (%d%%)"), + id, ssid, strength); + g_free (ssid); + } else { + pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); + *tip = g_strdup_printf (_("Wi-Fi network connection '%s' active"), id); + } + break; + default: + break; + } + + return pixbuf ? g_object_ref (pixbuf) : NULL; +} + +static gboolean +wifi_dialog_close (gpointer user_data) +{ + GtkWidget *dialog = GTK_WIDGET (user_data); + + gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); + return FALSE; +} + +static void +wifi_dialog_destroyed (gpointer data, GObject *dialog_ptr) +{ + /* remove the idle function; for not to call wifi_dialog_close() on invalid pointer */ + g_idle_remove_by_data (dialog_ptr); +} + +static void +nag_dialog_response_cb (GtkDialog *nag_dialog, + gint response, + gpointer user_data) +{ + NMAWifiDialog *wifi_dialog = NMA_WIFI_DIALOG (user_data); + + if (response == GTK_RESPONSE_NO) { /* user opted not to correct the warning */ + nma_wifi_dialog_set_nag_ignored (wifi_dialog, TRUE); + g_idle_add (wifi_dialog_close, wifi_dialog); + g_object_weak_ref (G_OBJECT (wifi_dialog), wifi_dialog_destroyed, NULL); + } +} + + +static void +activate_existing_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +activate_new_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add new connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +wifi_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (foo); + NMApplet *applet = NM_APPLET (user_data); + NMConnection *connection = NULL, *fuzzy_match = NULL; + NMDevice *device = NULL; + NMAccessPoint *ap = NULL; + GSList *all, *iter; + + if (response != GTK_RESPONSE_OK) + goto done; + + if (!nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *nag_dialog; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + nag_dialog = nma_wifi_dialog_nag_user (dialog); + if (nag_dialog) { + gtk_window_set_transient_for (GTK_WINDOW (nag_dialog), GTK_WINDOW (dialog)); + g_signal_connect (nag_dialog, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + /* nma_wifi_dialog_get_connection() returns a connection with the + * refcount incremented, so the caller must remember to unref it. + */ + connection = nma_wifi_dialog_get_connection (dialog, &device, &ap); + g_assert (connection); + g_assert (device); + + /* Find a similar connection and use that instead */ + all = applet_get_all_connections (applet); + for (iter = all; iter; iter = g_slist_next (iter)) { + if (nm_connection_compare (connection, + NM_CONNECTION (iter->data), + (NM_SETTING_COMPARE_FLAG_FUZZY | NM_SETTING_COMPARE_FLAG_IGNORE_ID))) { + fuzzy_match = NM_CONNECTION (iter->data); + break; + } + } + g_slist_free (all); + + if (fuzzy_match) { + nm_client_activate_connection (applet->nm_client, + fuzzy_match, + device, + ap ? nm_object_get_path (NM_OBJECT (ap)) : NULL, + activate_existing_cb, + applet); + } else { + NMSetting *s_con; + NMSettingWireless *s_wifi = NULL; + const char *mode = NULL; + + /* Entirely new connection */ + + /* Don't autoconnect adhoc networks by default for now */ + s_wifi = nm_connection_get_setting_wireless (connection); + if (s_wifi) + mode = nm_setting_wireless_get_mode (s_wifi); + if (g_strcmp0 (mode, "adhoc") == 0) { + s_con = nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION); + if (!s_con) { + s_con = nm_setting_connection_new (); + nm_connection_add_setting (connection, s_con); + } + g_object_set (G_OBJECT (s_con), NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, NULL); + } + + nm_client_add_and_activate_connection (applet->nm_client, + connection, + device, + ap ? nm_object_get_path (NM_OBJECT (ap)) : NULL, + activate_new_cb, + applet); + } + + /* Balance nma_wifi_dialog_get_connection() */ + g_object_unref (connection); + +done: + gtk_widget_hide (GTK_WIDGET (dialog)); + gtk_widget_destroy (GTK_WIDGET (dialog)); +} + +static gboolean +add_one_setting (GHashTable *settings, + NMConnection *connection, + NMSetting *setting, + GError **error) +{ + GHashTable *secrets; + + g_return_val_if_fail (settings != NULL, FALSE); + g_return_val_if_fail (connection != NULL, FALSE); + g_return_val_if_fail (setting != NULL, FALSE); + g_return_val_if_fail (error != NULL, FALSE); + g_return_val_if_fail (*error == NULL, FALSE); + + secrets = nm_setting_to_hash (setting, NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + g_hash_table_insert (settings, g_strdup (nm_setting_get_name (setting)), secrets); + } else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, nm_setting_get_name (setting)); + } + + return secrets ? TRUE : FALSE; +} + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkWidget *nag_dialog; +} NMWifiInfo; + +static void +free_wifi_info (SecretsRequest *req) +{ + NMWifiInfo *info = (NMWifiInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } +} + +static void +get_secrets_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMWifiInfo *info = (NMWifiInfo *) req; + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (info->dialog); + NMConnection *connection = NULL; + NMSettingWirelessSecurity *s_wireless_sec; + GHashTable *settings = NULL; + const char *key_mgmt, *auth_alg; + GError *error = NULL; + + /* Handle the nag dialog specially; don't want to clear the NMActiveConnection + * destroy handler yet if the main dialog isn't going away. + */ + if ((response == GTK_RESPONSE_OK) && !nma_wifi_dialog_get_nag_ignored (dialog)) { + GtkWidget *widget; + + /* Nag the user about certificates or whatever. Only destroy the dialog + * if no nagging was done. + */ + widget = nma_wifi_dialog_nag_user (dialog); + if (widget) { + gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (dialog)); + g_signal_connect (widget, "response", + G_CALLBACK (nag_dialog_response_cb), + dialog); + return; + } + } + + if (response != GTK_RESPONSE_OK) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + goto done; + } + + connection = nma_wifi_dialog_get_connection (dialog, NULL, NULL); + if (!connection) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't get connection from Wi-Fi dialog.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* Second-guess which setting NM wants secrets for. */ + s_wireless_sec = nm_connection_get_setting_wireless_security (connection); + if (!s_wireless_sec) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): requested setting '802-11-wireless-security'" + " didn't exist in the connection.", + __FILE__, __LINE__, __func__); + goto done; /* Unencrypted */ + } + + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, (GDestroyNotify) g_hash_table_destroy); + if (!settings) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): not enough memory to return secrets.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* If the user chose an 802.1x-based auth method, return 802.1x secrets, + * not wireless secrets. Can happen with Dynamic WEP, because NM doesn't + * know the capabilities of the AP (since Dynamic WEP APs don't broadcast + * beacons), and therefore defaults to requesting WEP secrets from the + * wireless-security setting, not the 802.1x setting. + */ + key_mgmt = nm_setting_wireless_security_get_key_mgmt (s_wireless_sec); + if (!strcmp (key_mgmt, "ieee8021x") || !strcmp (key_mgmt, "wpa-eap")) { + /* LEAP secrets aren't in the 802.1x setting */ + auth_alg = nm_setting_wireless_security_get_auth_alg (s_wireless_sec); + if (!auth_alg || strcmp (auth_alg, "leap")) { + NMSetting8021x *s_8021x; + + s_8021x = nm_connection_get_setting_802_1x (connection); + if (!s_8021x) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): requested setting '802-1x' didn't" + " exist in the connection.", + __FILE__, __LINE__, __func__); + goto done; + } + + /* Add the 802.1x setting */ + if (!add_one_setting (settings, connection, NM_SETTING (s_8021x), &error)) + goto done; + } + } + + /* Add the 802-11-wireless-security setting no matter what */ + add_one_setting (settings, connection, NM_SETTING (s_wireless_sec), &error); + +done: + applet_secrets_request_complete (req, settings, error); + applet_secrets_request_free (req); + + if (settings) + g_hash_table_destroy (settings); + if (connection) + nm_connection_clear_secrets (connection); +} + +static gboolean +wifi_get_secrets (SecretsRequest *req, GError **error) +{ + NMWifiInfo *info = (NMWifiInfo *) req; + + applet_secrets_request_set_free_func (req, free_wifi_info); + + info->dialog = nma_wifi_dialog_new (req->applet->nm_client, req->applet->settings, req->connection, NULL, NULL, TRUE); + if (info->dialog) { + g_signal_connect (info->dialog, "response", + G_CALLBACK (get_secrets_dialog_response_cb), + info); + show_ignore_focus_stealing_prevention (info->dialog); + } else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't display secrets UI", + __FILE__, __LINE__, __func__); + } + return !!info->dialog; +} + +NMADeviceClass * +applet_device_wifi_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = wifi_new_auto_connection; + dclass->add_menu_item = wifi_add_menu_item; + dclass->device_added = wifi_device_added; + dclass->device_state_changed = wifi_device_state_changed; + dclass->get_icon = wifi_get_icon; + dclass->get_secrets = wifi_get_secrets; + dclass->secrets_request_size = sizeof (NMWifiInfo); + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet-device-wimax.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet-device-wimax.c --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet-device-wimax.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet-device-wimax.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,519 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-wimax.h" +#include "applet-dialogs.h" +#include "nma-marshal.h" +#include "mb-menu-item.h" +#include "nm-ui-utils.h" + +#define ACTIVE_NSP_TAG "active-nsp" + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; + NMWimaxNsp *nsp; +} WimaxMenuItemInfo; + +static void +wimax_menu_item_info_destroy (gpointer data) +{ + WimaxMenuItemInfo *info = data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (info->connection); + g_object_unref (info->nsp); + + g_slice_free (WimaxMenuItemInfo, data); +} + +static gboolean +wimax_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + WimaxMenuItemInfo *info = dclass_data; + NMConnection *connection; + NMSettingWimax *s_wimax = NULL; + NMSettingConnection *s_con; + char *uuid; + const char *nsp_name; + + nsp_name = nm_wimax_nsp_get_name (info->nsp); + + connection = nm_connection_new (); + + s_wimax = NM_SETTING_WIMAX (nm_setting_wimax_new ()); + g_object_set (s_wimax, + NM_SETTING_WIMAX_NETWORK_NAME, nsp_name, + NULL); + nm_connection_add_setting (connection, NM_SETTING (s_wimax)); + + s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, + NM_SETTING_CONNECTION_ID, nsp_name, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIMAX_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, TRUE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + + nm_connection_add_setting (connection, NM_SETTING (s_con)); + + (*callback) (connection, TRUE, FALSE, callback_data); + return TRUE; +} + +static void +wimax_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + WimaxMenuItemInfo *info = (WimaxMenuItemInfo *) user_data; + const char *specific_object = NULL; + + if (info->nsp) + specific_object = nm_object_get_path (NM_OBJECT (info->nsp)); + applet_menu_item_activate_helper (info->device, + info->connection, + specific_object, + info->applet, + user_data); +} + +static guint32 +nsp_type_to_mb_state (NMWimaxNspNetworkType nsp_type) +{ + switch (nsp_type) { + case NM_WIMAX_NSP_NETWORK_TYPE_HOME: + case NM_WIMAX_NSP_NETWORK_TYPE_PARTNER: + return MB_STATE_HOME; + case NM_WIMAX_NSP_NETWORK_TYPE_ROAMING_PARTNER: + return MB_STATE_ROAMING; + default: + break; + } + + return MB_STATE_UNKNOWN; +} + +static GtkWidget * +new_nsp_menu_item (NMDeviceWimax *device, + NMConnection *connection, + gboolean active, + NMWimaxNsp *nsp, + NMApplet *applet) +{ + GtkWidget *item; + WimaxMenuItemInfo *info; + + g_return_val_if_fail (nsp != NULL, NULL); + + item = nm_mb_menu_item_new (nm_wimax_nsp_get_name (nsp), + nm_wimax_nsp_get_signal_quality (nsp), + NULL, + active, + MB_TECH_WIMAX, + nsp_type_to_mb_state (nm_wimax_nsp_get_network_type (nsp)), + TRUE, + applet); + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + + info = g_slice_new0 (WimaxMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = connection ? g_object_ref (connection) : NULL; + info->nsp = g_object_ref (nsp); + + g_signal_connect_data (item, "activate", + G_CALLBACK (wimax_menu_item_activate), + info, + (GClosureNotify) wimax_menu_item_info_destroy, 0); + + return item; +} + +static NMConnection * +get_connection_for_nsp (GSList *connections, NMWimaxNsp *nsp) +{ + GSList *iter; + const char *nsp_name, *candidate_name; + + nsp_name = nm_wimax_nsp_get_name (nsp); + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingWimax *s_wimax; + + s_wimax = nm_connection_get_setting_wimax (candidate); + if (s_wimax) { + candidate_name = nm_setting_wimax_get_network_name (s_wimax); + if (g_strcmp0 (nsp_name, candidate_name) == 0) + return candidate; + } + } + return NULL; +} + +static gint +sort_nsps (gconstpointer a, gconstpointer b) +{ + const char *name_a = NULL, *name_b = NULL; + + if (a) + name_a = nm_wimax_nsp_get_name (NM_WIMAX_NSP (a)); + if (b) + name_b = nm_wimax_nsp_get_name (NM_WIMAX_NSP (b)); + + return g_strcmp0 (name_a, name_b); +} + +static void +wimax_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + NMDeviceWimax *wimax = NM_DEVICE_WIMAX (device); + char *text; + GtkWidget *item; + GSList *connections, *all, *iter, *sorted = NULL; + const GPtrArray *nsps; + NMWimaxNsp *active_nsp = NULL; + gboolean wimax_enabled, wimax_hw_enabled; + int i; + + nsps = nm_device_wimax_get_nsps (wimax); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + text = g_strdup_printf (_("WiMAX Mobile Broadband (%s)"), desc); + } else { + text = g_strdup (_("WiMAX Mobile Broadband")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); + gtk_widget_set_sensitive (item, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + g_free (text); + + /* Add the active NSP if we're connected to something and the device is available */ + if (!nma_menu_device_check_unusable (device)) { + active_nsp = nm_device_wimax_get_active_nsp (wimax); + if (active_nsp) { + item = new_nsp_menu_item (wimax, active, TRUE, active_nsp, applet); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + } + } + + /* Notify user of unmanaged or unavailable device */ + wimax_enabled = nm_client_wimax_get_enabled (applet->nm_client); + wimax_hw_enabled = nm_client_wimax_hardware_get_enabled (applet->nm_client); + item = nma_menu_device_get_menu_item (device, applet, + wimax_hw_enabled ? + (wimax_enabled ? NULL : _("WiMAX is disabled")) : + _("WiMAX is disabled by hardware switch")); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + + /* If disabled or rfkilled or whatever, nothing left to do */ + if (nma_menu_device_check_unusable (device)) + return; + + /* Create a sorted list of NSPs */ + for (i = 0; nsps && (i < nsps->len); i++) { + NMWimaxNsp *nsp = g_ptr_array_index (nsps, i); + + if (nsp != active_nsp) + sorted = g_slist_insert_sorted (sorted, nsp, sort_nsps); + } + + if (g_slist_length (sorted)) { + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + /* And add menu items for each NSP */ + for (iter = sorted; iter; iter = g_slist_next (iter)) { + NMWimaxNsp *nsp = NM_WIMAX_NSP (iter->data); + NMConnection *connection = NULL; + + connection = get_connection_for_nsp (connections, nsp); + item = new_nsp_menu_item (wimax, connection, FALSE, nsp, applet); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + } + + g_slist_free (connections); + } + + g_slist_free (sorted); +} + + +static void +nsp_quality_changed (NMWimaxNsp *nsp, GParamSpec *pspec, gpointer user_data) +{ + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static NMWimaxNsp * +update_active_nsp (NMDevice *device, NMDeviceState state, NMApplet *applet) +{ + NMWimaxNsp *new = NULL, *old; + + if (state == NM_DEVICE_STATE_PREPARE || + state == NM_DEVICE_STATE_CONFIG || + state == NM_DEVICE_STATE_IP_CONFIG || + state == NM_DEVICE_STATE_NEED_AUTH || + state == NM_DEVICE_STATE_ACTIVATED) { + new = nm_device_wimax_get_active_nsp (NM_DEVICE_WIMAX (device)); + } + + old = g_object_get_data (G_OBJECT (device), ACTIVE_NSP_TAG); + if (new && (new == old)) + return new; /* no change */ + + if (old) { + g_signal_handlers_disconnect_by_func (old, G_CALLBACK (nsp_quality_changed), applet); + g_object_set_data (G_OBJECT (device), ACTIVE_NSP_TAG, NULL); + } + + if (new) { + g_object_set_data (G_OBJECT (device), ACTIVE_NSP_TAG, new); + + /* monitor this NSP's signal strength for updating the applet icon */ + g_signal_connect (new, + "notify::" NM_WIMAX_NSP_SIGNAL_QUALITY, + G_CALLBACK (nsp_quality_changed), + applet); + } + + return new; +} + +static void +active_nsp_changed_cb (NMDeviceWimax *device, + GParamSpec *pspec, + NMApplet *applet) +{ + NMRemoteConnection *connection; + NMSettingWimax *s_wimax; + NMWimaxNsp *new; + NMDeviceState state; + + state = nm_device_get_state (NM_DEVICE (device)); + + new = update_active_nsp (NM_DEVICE (device), state, applet); + if (!new || (state != NM_DEVICE_STATE_ACTIVATED)) + return; + + connection = applet_get_exported_connection_for_device (NM_DEVICE (device), applet); + if (!connection) + return; + + s_wimax = nm_connection_get_setting_wimax (NM_CONNECTION (connection)); + if (!s_wimax) + return; + + if (g_strcmp0 (nm_wimax_nsp_get_name (new), nm_setting_wimax_get_network_name (s_wimax)) != 0) + applet_schedule_update_icon (applet); +} + +static void +nsp_removed_cb (NMDeviceWimax *device, + NMWimaxNsp *nsp, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMWimaxNsp *old; + + /* Clear the ACTIVE_NSP_TAG if the active NSP just got removed */ + old = g_object_get_data (G_OBJECT (device), ACTIVE_NSP_TAG); + if (old == nsp) { + g_object_set_data (G_OBJECT (device), ACTIVE_NSP_TAG, NULL); + applet_schedule_update_icon (applet); + } +} + +static void +wimax_device_added (NMDevice *device, NMApplet *applet) +{ + g_signal_connect (device, + "notify::" NM_DEVICE_WIMAX_ACTIVE_NSP, + G_CALLBACK (active_nsp_changed_cb), + applet); + + g_signal_connect (device, + "nsp-removed", + G_CALLBACK (nsp_removed_cb), + applet); +} + +static void +wimax_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + const char *id; + + s_con = nm_connection_get_setting_connection (connection); + id = s_con ? nm_setting_connection_get_id (s_con) : NULL; + if (id) + str = g_strdup_printf (_("You are now connected to '%s'."), id); + } + + applet_do_notify_with_pref (applet, + _("Connection Established"), + str ? str : _("You are now connected to the WiMAX network."), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (str); + } +} + +static GdkPixbuf * +wimax_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + GdkPixbuf *pixbuf = NULL; + const char *id; + NMWimaxNsp *nsp; + guint32 quality = 0; + NMWimaxNspNetworkType nsp_type = NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN; + gboolean roaming; + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + nsp = nm_device_wimax_get_active_nsp (NM_DEVICE_WIMAX (device)); + if (nsp) { + quality = nm_wimax_nsp_get_signal_quality (nsp); + nsp_type = nm_wimax_nsp_get_network_type (nsp); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for mobile broadband connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + roaming = (nsp_type == NM_WIMAX_NSP_NETWORK_TYPE_ROAMING_PARTNER); + pixbuf = mobile_helper_get_status_pixbuf (quality, + TRUE, + nsp_type_to_mb_state (nsp_type), + MB_TECH_WIMAX, + applet); + *tip = g_strdup_printf (_("Mobile broadband connection '%s' active: (%d%%%s%s)"), + id, quality, + roaming ? ", " : "", + roaming ? _("roaming") : ""); + break; + default: + break; + } + + return pixbuf; +} + +static gboolean +wimax_get_secrets (SecretsRequest *req, GError **error) +{ + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NO_SECRETS, + "%s.%d (%s): no WiMAX secrets available.", + __FILE__, __LINE__, __func__); + return FALSE; +} + +NMADeviceClass * +applet_device_wimax_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = wimax_new_auto_connection; + dclass->add_menu_item = wimax_add_menu_item; + dclass->device_added = wimax_device_added; + dclass->device_state_changed = wimax_device_state_changed; + dclass->get_icon = wimax_get_icon; + dclass->get_secrets = wimax_get_secrets; + + return dclass; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet.c --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,3726 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2012 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + * + * This applet used the GNOME Wireless Applet as a skeleton to build from. + * + * GNOME Wireless Applet Authors: + * Eskil Heyn Olsen + * Bastien Nocera (Gnome2 port) + * + * (C) Copyright 2001, 2002 Free Software Foundation + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "applet-device-wifi.h" +#include "applet-device-gsm.h" +#include "applet-device-cdma.h" +#include "applet-device-bt.h" +#include "applet-device-wimax.h" +#include "applet-dialogs.h" +#include "nm-wifi-dialog.h" +#include "applet-vpn-request.h" +#include "utils.h" +#include "shell-watcher.h" +#include "nm-ui-utils.h" + +#define NOTIFY_CAPS_ACTIONS_KEY "actions" + +extern gboolean shell_debug; + +G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) + +/********************************************************************/ +/* Temporary dbus interface stuff */ + +static gboolean +impl_dbus_connect_to_hidden_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_connect_to_hidden_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_create_wifi_network (NMApplet *applet, GError **error) +{ + if (!applet_wifi_can_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NOT_AUTHORIZED, + "Creation of Wi-Fi networks has been disabled by system policy."); + return FALSE; + } + + if (!applet_wifi_create_wifi_network (applet)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_8021x_network (NMApplet *applet, + const char *device_path, + const char *ap_path, + GError **error) +{ + NMDevice *device; + NMAccessPoint *ap; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_WIFI (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + ap = nm_device_wifi_get_access_point_by_path (NM_DEVICE_WIFI (device), ap_path); + if (!ap) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point could not be found."); + return FALSE; + } + + /* FIXME: this doesn't account for Dynamic WEP */ + if ( !(nm_access_point_get_wpa_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + && !(nm_access_point_get_rsn_flags (ap) & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The access point had no 802.1x capabilities"); + return FALSE; + } + + if (!applet_wifi_connect_to_8021x_network (applet, device, ap)) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "Failed to create Wi-Fi dialog"); + return FALSE; + } + + return TRUE; +} + +static gboolean +impl_dbus_connect_to_3g_network (NMApplet *applet, + const char *device_path, + GError **error) +{ + NMDevice *device; + NMDeviceModemCapabilities caps; + + device = nm_client_get_device_by_path (applet->nm_client, device_path); + if (!device || NM_IS_DEVICE_MODEM (device) == FALSE) { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device could not be found."); + return FALSE; + } + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + applet_gsm_connect_network (applet, device); + } else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + applet_cdma_connect_network (applet, device); + } else { + g_set_error_literal (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "The device had no GSM or CDMA capabilities."); + return FALSE; + } + + return TRUE; +} + +#include "applet-dbus-bindings.h" + +/********************************************************************/ + +static inline NMADeviceClass * +get_device_class (NMDevice *device, NMApplet *applet) +{ + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + if (NM_IS_DEVICE_ETHERNET (device)) + return applet->ethernet_class; + else if (NM_IS_DEVICE_WIFI (device)) + return applet->wifi_class; + else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + return applet->gsm_class; + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + return applet->cdma_class; + else + g_message ("%s: unhandled modem capabilities 0x%X", __func__, caps); + } else if (NM_IS_DEVICE_BT (device)) + return applet->bt_class; + else if (NM_IS_DEVICE_WIMAX (device)) + return applet->wimax_class; + else + g_debug ("%s: Unknown device type '%s'", __func__, G_OBJECT_TYPE_NAME (device)); + return NULL; +} + +static inline NMADeviceClass * +get_device_class_from_connection (NMConnection *connection, NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *ctype; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + ctype = nm_setting_connection_get_connection_type (s_con); + g_return_val_if_fail (ctype != NULL, NULL); + + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME) || !strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return applet->ethernet_class; + else if (!strcmp (ctype, NM_SETTING_WIRELESS_SETTING_NAME)) + return applet->wifi_class; + else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME)) + return applet->gsm_class; + else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME)) + return applet->cdma_class; + else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) + return applet->bt_class; + else + g_warning ("%s: unhandled connection type '%s'", __func__, ctype); + return NULL; +} + +struct _OfflineNotificationContextInfo { + NMState state; + NMDeviceState device_state; + NMDeviceStateReason device_state_reason; + NMDeviceType device_type; + gchar* title; + const gchar* text; + const gchar* icon; + NotifyUrgency urgency; +}; + +typedef struct _OfflineNotificationContextInfo OfflineNotificationContextInfo; + +static NMActiveConnection * +applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *best = NULL; + NMDevice *best_dev = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const GPtrArray *devices; + NMDevice *candidate_dev; + + if (nm_active_connection_get_state (candidate) != NM_ACTIVE_CONNECTION_STATE_ACTIVATING) + continue; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (!best_dev) { + best_dev = candidate_dev; + best = candidate; + continue; + } + + if (NM_IS_DEVICE_WIFI (best_dev)) { + if (NM_IS_DEVICE_ETHERNET (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (NM_IS_DEVICE_MODEM (best_dev)) { + NMDeviceModemCapabilities best_caps; + NMDeviceModemCapabilities candidate_caps = NM_DEVICE_MODEM_CAPABILITY_NONE; + + best_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (best_dev)); + if (NM_IS_DEVICE_MODEM (candidate_dev)) + candidate_caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (candidate_dev)); + + if (best_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev)) { + best_dev = candidate_dev; + best = candidate; + } + } else if (best_caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) { + if ( NM_IS_DEVICE_ETHERNET (candidate_dev) + || NM_IS_DEVICE_WIFI (candidate_dev) + || (candidate_caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { + best_dev = candidate_dev; + best = candidate; + } + } + } + } + + *device = best_dev; + return best; +} + +static NMActiveConnection * +applet_get_default_active_connection (NMApplet *applet, NMDevice **device) +{ + NMActiveConnection *default_ac = NULL; + NMDevice *non_default_device = NULL; + NMActiveConnection *non_default_ac = NULL; + const GPtrArray *connections; + int i; + + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (*device == NULL, NULL); + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + NMDevice *candidate_dev; + const GPtrArray *devices; + + devices = nm_active_connection_get_devices (candidate); + if (!devices || !devices->len) + continue; + + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + + if (nm_active_connection_get_default (candidate)) { + if (!default_ac) { + *device = candidate_dev; + default_ac = candidate; + } + } else { + if (!non_default_ac) { + non_default_device = candidate_dev; + non_default_ac = candidate; + } + } + } + + /* Prefer the default connection if one exists, otherwise return the first + * non-default connection. + */ + if (!default_ac && non_default_ac) { + default_ac = non_default_ac; + *device = non_default_device; + } + return default_ac; +} + +NMRemoteSettings * +applet_get_settings (NMApplet *applet) +{ + return applet->settings; +} + +GSList * +applet_get_all_connections (NMApplet *applet) +{ + GSList *connections, *iter, *next; + NMConnection *connection; + NMSettingConnection *s_con; + + connections = nm_remote_settings_list_connections (applet->settings); + + /* Ignore slave connections */ + for (iter = connections; iter; iter = next) { + connection = iter->data; + next = iter->next; + + s_con = nm_connection_get_setting_connection (connection); + if (s_con && nm_setting_connection_get_master (s_con)) + connections = g_slist_delete_link (connections, iter); + } + + return connections; +} + +static NMConnection * +applet_get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMActiveConnection * +applet_get_active_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + int i; + const char *cpath; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + const char *active_cpath = nm_active_connection_get_connection (active); + + if (active_cpath && !strcmp (active_cpath, cpath)) + return active; + } + return NULL; +} + +NMDevice * +applet_get_device_for_connection (NMApplet *applet, NMConnection *connection) +{ + const GPtrArray *active_list; + const char *cpath; + int i; + + cpath = nm_connection_get_path (connection); + g_return_val_if_fail (cpath != NULL, NULL); + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + + if (!g_strcmp0 (nm_active_connection_get_connection (active), cpath)) + return g_ptr_array_index (nm_active_connection_get_devices (active), 0); + } + return NULL; +} + +typedef struct { + NMApplet *applet; + NMDevice *device; + char *specific_object; + NMConnection *connection; +} AppletItemActivateInfo; + +static void +applet_item_activate_info_destroy (AppletItemActivateInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + g_free (info->specific_object); + if (info->connection) + g_object_unref (info->connection); + memset (info, 0, sizeof (AppletItemActivateInfo)); + g_free (info); +} + +static void +add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Failed to add/activate connection"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +static void +applet_menu_item_activate_helper_new_connection (NMConnection *connection, + gboolean auto_created, + gboolean canceled, + gpointer user_data) +{ + AppletItemActivateInfo *info = user_data; + + if (canceled) { + applet_item_activate_info_destroy (info); + return; + } + + g_return_if_fail (connection != NULL); + + /* Ask NM to add the new connection and activate it; NM will fill in the + * missing details based on the specific object and the device. + */ + nm_client_add_and_activate_connection (info->applet->nm_client, + connection, + info->device, + info->specific_object, + add_and_activate_cb, + info->applet); + + applet_item_activate_info_destroy (info); +} + +static void +disconnect_cb (NMDevice *device, GError *error, gpointer user_data) +{ + if (error) { + const char *text = _("Device disconnect failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s: %s", __func__, text, err_text); + utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } +} + +void +applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet) +{ + g_return_if_fail (NM_IS_DEVICE (device)); + + nm_device_disconnect (device, disconnect_cb, NULL); +} + +static void +activate_connection_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + if (error) { + const char *text = _("Connection activation failed"); + char *err_text = g_strdup_printf ("(%d) %s", error->code, + error->message ? error->message : _("Unknown error")); + + g_warning ("%s: %s", text, err_text); + utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); + g_free (err_text); + } + + applet_schedule_update_icon (NM_APPLET (user_data)); +} + +void +applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data) +{ + AppletItemActivateInfo *info; + NMADeviceClass *dclass; + + g_return_if_fail (NM_IS_DEVICE (device)); + + if (connection) { + /* If the menu item had an associated connection already, just tell + * NM to activate that connection. + */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + specific_object, + activate_connection_cb, + applet); + return; + } + + /* If no connection was given, ask the device class to create a new + * default connection for this device type. This could be a wizard, + * and thus take a while. + */ + + info = g_malloc0 (sizeof (AppletItemActivateInfo)); + info->applet = applet; + info->specific_object = g_strdup (specific_object); + info->device = g_object_ref (device); + + dclass = get_device_class (device, applet); + g_assert (dclass); + if (!dclass->new_auto_connection (device, dclass_data, + applet_menu_item_activate_helper_new_connection, + info)) { + g_warning ("Couldn't create default connection."); + applet_item_activate_info_destroy (info); + } +} + +void +applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos) +{ + GtkWidget *menu_item = gtk_image_menu_item_new (); +#if GTK_CHECK_VERSION(3,1,6) + GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); +#else + GtkWidget *box = gtk_hbox_new (FALSE, 0); +#endif + GtkWidget *xlabel = NULL; + + if (label) { + xlabel = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (xlabel), label); + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2); + } + +#if GTK_CHECK_VERSION(3,1,6) + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); +#else + gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 0); +#endif + + g_object_set (G_OBJECT (menu_item), + "child", box, + "sensitive", FALSE, + NULL); + if (pos < 0) + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + else + gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, pos); + return; +} + +GtkWidget * +applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active) +{ + GtkWidget *item; + NMSettingConnection *s_con; + char *markup; + GtkWidget *label; + + s_con = nm_connection_get_setting_connection (connection); + item = gtk_image_menu_item_new_with_label (""); + if (add_active && (active == connection)) { + /* Pure evil */ + label = gtk_bin_get_child (GTK_BIN (item)); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + markup = g_markup_printf_escaped ("%s", nm_setting_connection_get_id (s_con)); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + } else + gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); + + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + return item; +} + +#define TITLE_TEXT_R ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_G ((double) 0x5e / 255.0 ) +#define TITLE_TEXT_B ((double) 0x5e / 255.0 ) + +static void +menu_item_draw_generic (GtkWidget *widget, cairo_t *cr) +{ + GtkWidget *label; + PangoFontDescription *desc; + PangoLayout *layout; + int width = 0, height = 0, owidth, oheight; + gdouble extraheight = 0, extrawidth = 0; + const char *text; + gdouble xpadding = 10.0; + gdouble ypadding = 5.0; + gdouble postpadding = 0.0; + + label = gtk_bin_get_child (GTK_BIN (widget)); + text = gtk_label_get_text (GTK_LABEL (label)); + + layout = pango_cairo_create_layout (cr); +#if GTK_CHECK_VERSION(2,20,0) && !GTK_CHECK_VERSION(2,91,6) + { + GtkStyle *style; + style = gtk_widget_get_style (widget); + desc = pango_font_description_copy (style->font_desc); + } +#else + { + GtkStyleContext *style; + style = gtk_widget_get_style_context (widget); + gtk_style_context_get (style, gtk_style_context_get_state (style), + "font", &desc, + NULL); + } +#endif + pango_font_description_set_variant (desc, PANGO_VARIANT_SMALL_CAPS); + pango_font_description_set_weight (desc, PANGO_WEIGHT_SEMIBOLD); + pango_layout_set_font_description (layout, desc); + pango_layout_set_text (layout, text, -1); + pango_cairo_update_layout (cr, layout); + pango_layout_get_size (layout, &owidth, &oheight); + width = owidth / PANGO_SCALE; + height += oheight / PANGO_SCALE; + + cairo_save (cr); + + cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); + cairo_rectangle (cr, 0, 0, + (double) (width + 2 * xpadding), + (double) (height + ypadding + postpadding)); + cairo_fill (cr); + + /* now the in-padding content */ + cairo_translate (cr, xpadding , ypadding); + cairo_set_source_rgb (cr, TITLE_TEXT_R, TITLE_TEXT_G, TITLE_TEXT_B); + cairo_move_to (cr, extrawidth, extraheight); + pango_cairo_show_layout (cr, layout); + + cairo_restore(cr); + + pango_font_description_free (desc); + g_object_unref (layout); + + gtk_widget_set_size_request (widget, width + 2 * xpadding, height + ypadding + postpadding); +} + +#if GTK_CHECK_VERSION(2,90,7) +static gboolean +menu_title_item_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) +{ + menu_item_draw_generic (widget, cr); + return TRUE; +} +#else +static gboolean +menu_title_item_expose (GtkWidget *widget, GdkEventExpose *event) +{ + GtkAllocation allocation; + cairo_t *cr; + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + /* The drawing area we get is the whole menu; clip the drawing to the + * event area, which should just be our menu item. + */ + cairo_rectangle (cr, + event->area.x, event->area.y, + event->area.width, event->area.height); + cairo_clip (cr); + + /* We also need to reposition the cairo context so that (0, 0) is the + * top-left of where we're supposed to start drawing. + */ + gtk_widget_get_allocation (widget, &allocation); + cairo_translate (cr, allocation.x, allocation.y); + + menu_item_draw_generic (widget, cr); + + cairo_destroy (cr); + return TRUE; +} +#endif + +GtkWidget * +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text) +{ + GtkWidget *item; + + item = gtk_menu_item_new_with_mnemonic (text); + gtk_widget_set_sensitive (item, FALSE); +#if GTK_CHECK_VERSION(2,90,7) + g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL); +#else + g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); +#endif + return item; +} + +static gboolean +applet_notify_server_has_actions (void) +{ + static gboolean has_actions = FALSE; + static gboolean initialized = FALSE; + GList *server_caps, *iter; + + if (initialized) + return has_actions; + initialized = TRUE; + + server_caps = notify_get_server_caps(); + for (iter = server_caps; iter; iter = g_list_next (iter)) { + if (!strcmp ((const char *) iter->data, NOTIFY_CAPS_ACTIONS_KEY)) { + has_actions = TRUE; + break; + } + } + g_list_foreach (server_caps, (GFunc) g_free, NULL); + g_list_free (server_caps); + + return has_actions; +} + +void +applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data) +{ + NotifyNotification *notify; + GError *error = NULL; + char *escaped; + + g_return_if_fail (applet != NULL); + g_return_if_fail (summary != NULL); + g_return_if_fail (message != NULL); + + if (!gtk_status_icon_is_embedded (applet->status_icon)) + return; + + /* if we're not registered, don't notify either */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + return; + + escaped = utils_escape_notify_message (message); + + if (applet->notification == NULL) { + notify = notify_notification_new (summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK +#if HAVE_LIBNOTIFY_07 + ); +#else + , NULL); +#endif + + applet->notification = notify; + } else { + notify = applet->notification; + notify_notification_update (notify, + summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK); + } + + g_free (escaped); + +#if HAVE_LIBNOTIFY_07 + notify_notification_set_hint (notify, "transient", g_variant_new_boolean (TRUE)); +#else + notify_notification_attach_to_status_icon (notify, applet->status_icon); +#endif + notify_notification_set_urgency (notify, urgency); + notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT); + + if (applet_notify_server_has_actions () && action1) { + notify_notification_clear_actions (notify); + notify_notification_add_action (notify, action1, action1_label, + action1_cb, action1_user_data, NULL); + } + + if (!notify_notification_show (notify, &error)) { + g_warning ("Failed to show notification: %s", + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + } +} + +static void +notify_dont_show_cb (NotifyNotification *notify, + gchar *id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (!id) + return; + + if ( strcmp (id, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && strcmp (id, PREF_DISABLE_VPN_NOTIFICATIONS)) + return; + + g_settings_set_boolean (applet->gsettings, id, TRUE); +} + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref) +{ + if (g_settings_get_boolean (applet->gsettings, pref)) + return; + + applet_do_notify (applet, NOTIFY_URGENCY_LOW, summary, message, icon, pref, + _("Don't show this message again"), + notify_dont_show_cb, + applet); +} + +static gboolean +animation_timeout (gpointer data) +{ + applet_schedule_update_icon (NM_APPLET (data)); + return TRUE; +} + +static void +start_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id == 0) { + applet->animation_step = 0; + applet->animation_id = g_timeout_add (100, animation_timeout, applet); + } +} + +static void +clear_animation_timeout (NMApplet *applet) +{ + if (applet->animation_id) { + g_source_remove (applet->animation_id); + applet->animation_id = 0; + applet->animation_step = 0; + } +} + +static gboolean +applet_is_any_device_activating (NMApplet *applet) +{ + const GPtrArray *devices; + int i; + + /* Check for activating devices */ + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = NM_DEVICE (g_ptr_array_index (devices, i)); + NMDeviceState state; + + state = nm_device_get_state (candidate); + if (state > NM_DEVICE_STATE_DISCONNECTED && state < NM_DEVICE_STATE_ACTIVATED) + return TRUE; + } + return FALSE; +} + +static gboolean +applet_is_any_vpn_activating (NMApplet *applet) +{ + const GPtrArray *connections; + int i; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (connections, i)); + NMVPNConnectionState vpn_state; + + if (NM_IS_VPN_CONNECTION (candidate)) { + vpn_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + if ( vpn_state == NM_VPN_CONNECTION_STATE_PREPARE + || vpn_state == NM_VPN_CONNECTION_STATE_NEED_AUTH + || vpn_state == NM_VPN_CONNECTION_STATE_CONNECT + || vpn_state == NM_VPN_CONNECTION_STATE_IP_CONFIG_GET) { + return TRUE; + } + } + } + return FALSE; +} + +static char * +make_vpn_failure_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service stopped unexpectedly."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service returned invalid configuration."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the connection attempt timed out."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service did not start in time."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because there were no valid VPN secrets."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED: + return g_strdup_printf (_("\nThe VPN connection '%s' failed because of invalid VPN secrets."), + nm_setting_connection_get_id (s_con)); + + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' failed."), nm_setting_connection_get_id (s_con)); +} + +static char * +make_vpn_disconnection_message (NMVPNConnection *vpn, + NMVPNConnectionStateReason reason, + NMApplet *applet) +{ + NMConnection *connection; + NMSettingConnection *s_con; + + g_return_val_if_fail (vpn != NULL, NULL); + + connection = applet_get_connection_for_active (applet, NM_ACTIVE_CONNECTION (vpn)); + s_con = nm_connection_get_setting_connection (connection); + + switch (reason) { + case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the network connection was interrupted."), + nm_setting_connection_get_id (s_con)); + case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected because the VPN service stopped."), + nm_setting_connection_get_id (s_con)); + default: + break; + } + + return g_strdup_printf (_("\nThe VPN connection '%s' disconnected."), nm_setting_connection_get_id (s_con)); +} + +static void +vpn_connection_state_changed (NMVPNConnection *vpn, + NMVPNConnectionState state, + NMVPNConnectionStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const char *banner; + char *title = NULL, *msg; + gboolean device_activating, vpn_activating; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (state) { + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections might not have come through yet. + */ + vpn_activating = TRUE; + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + banner = nm_vpn_connection_get_banner (vpn); + if (banner && strlen (banner)) + msg = g_strdup_printf (_("VPN connection has been successfully established.\n\n%s\n"), banner); + else + msg = g_strdup (_("VPN connection has been successfully established.\n")); + + title = _("VPN Login Message"); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_FAILED: + title = _("VPN Connection Failed"); + msg = make_vpn_failure_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + break; + case NM_VPN_CONNECTION_STATE_DISCONNECTED: + if (reason != NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED) { + title = _("VPN Connection Failed"); + msg = make_vpn_disconnection_message (vpn, reason, applet); + applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + } + break; + default: + break; + } + + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); + + applet_schedule_update_icon (applet); +} + +static const char * +get_connection_id (NMConnection *connection) +{ + NMSettingConnection *s_con; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + return nm_setting_connection_get_id (s_con); +} + +typedef struct { + NMApplet *applet; + char *vpn_name; +} VPNActivateInfo; + +static void +activate_vpn_cb (NMClient *client, + NMActiveConnection *active, + GError *error, + gpointer user_data) +{ + VPNActivateInfo *info = (VPNActivateInfo *) user_data; + char *title, *msg, *name; + + if (error) { + clear_animation_timeout (info->applet); + + title = _("VPN Connection Failed"); + + /* dbus-glib GError messages _always_ have two NULLs, the D-Bus error + * name comes after the first NULL. Find it. + */ + name = error->message + strlen (error->message) + 1; + if (strstr (name, "ServiceStartFailed")) { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed because the VPN service failed to start.\n\n%s"), + info->vpn_name, error->message); + } else { + msg = g_strdup_printf (_("\nThe VPN connection '%s' failed to start.\n\n%s"), + info->vpn_name, error->message); + } + + applet_do_notify_with_pref (info->applet, title, msg, "gnome-lockscreen", + PREF_DISABLE_VPN_NOTIFICATIONS); + g_free (msg); + + g_warning ("VPN Connection activation failed: (%s) %s", name, error->message); + } + + applet_schedule_update_icon (info->applet); + g_free (info->vpn_name); + g_free (info); +} + +static void +nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + VPNActivateInfo *info; + NMConnection *connection; + NMSettingConnection *s_con; + NMActiveConnection *active; + NMDevice *device = NULL; + + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) { + g_warning ("%s: no active connection or device.", __func__); + return; + } + + connection = NM_CONNECTION (g_object_get_data (G_OBJECT (item), "connection")); + if (!connection) { + g_warning ("%s: no connection associated with menu item!", __func__); + return; + } + + if (applet_get_active_for_connection (applet, connection)) + /* Connection already active; do nothing */ + return; + + s_con = nm_connection_get_setting_connection (connection); + info = g_malloc0 (sizeof (VPNActivateInfo)); + info->applet = applet; + info->vpn_name = g_strdup (nm_setting_connection_get_id (s_con)); + + /* Connection inactive, activate */ + nm_client_activate_connection (applet->nm_client, + connection, + device, + nm_object_get_path (NM_OBJECT (active)), + activate_vpn_cb, + info); + start_animation_timeout (applet); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + + +/* + * nma_menu_configure_vpn_item_activate + * + * Signal function called when user clicks "Configure VPN..." + * + */ +static void +nma_menu_configure_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + const char *argv[] = { BINDIR "/nm-connection-editor", "--show", "--type", NM_SETTING_VPN_SETTING_NAME, NULL}; + + g_spawn_async (NULL, (gchar **) argv, NULL, 0, NULL, NULL, NULL, NULL); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static NMActiveConnection * +applet_get_first_active_vpn_connection (NMApplet *applet, + NMVPNConnectionState *out_state) +{ + const GPtrArray *active_list; + int i; + + active_list = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate; + NMConnection *connection; + NMSettingConnection *s_con; + + candidate = g_ptr_array_index (active_list, i); + + connection = applet_get_connection_for_active (applet, candidate); + if (!connection) + continue; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + if (out_state) + *out_state = nm_vpn_connection_get_vpn_state (NM_VPN_CONNECTION (candidate)); + return candidate; + } + } + + return NULL; +} + +/* + * nma_menu_disconnect_vpn_item_activate + * + * Signal function called when user clicks "Disconnect VPN" + * + */ +static void +nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMActiveConnection *active_vpn = NULL; + NMVPNConnectionState state = NM_VPN_CONNECTION_STATE_UNKNOWN; + + active_vpn = applet_get_first_active_vpn_connection (applet, &state); + if (active_vpn) + nm_client_deactivate_connection (applet->nm_client, active_vpn); + else + g_warning ("%s: deactivate clicked but no active VPN connection could be found.", __func__); +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +/* + * nma_menu_add_separator_item + * + */ +static void +nma_menu_add_separator_item (GtkWidget *menu) +{ + GtkWidget *menu_item; + + menu_item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + + +/* + * nma_menu_add_text_item + * + * Add a non-clickable text item to a menu + * + */ +static void nma_menu_add_text_item (GtkWidget *menu, char *text) +{ + GtkWidget *menu_item; + + g_return_if_fail (text != NULL); + g_return_if_fail (menu != NULL); + + menu_item = gtk_menu_item_new_with_label (text); + gtk_widget_set_sensitive (menu_item, FALSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + gtk_widget_show (menu_item); +} + +static gint +sort_devices (gconstpointer a, gconstpointer b) +{ + NMDevice *aa = NM_DEVICE (a); + NMDevice *bb = NM_DEVICE (b); + GType aa_type = G_OBJECT_TYPE (G_OBJECT (aa)); + GType bb_type = G_OBJECT_TYPE (G_OBJECT (bb)); + + if (aa_type == bb_type) { + const char *aa_desc = NULL; + const char *bb_desc = NULL; + + aa_desc = nma_utils_get_device_description (aa); + bb_desc = nma_utils_get_device_description (bb); + + return g_strcmp0 (aa_desc, bb_desc); + } + + /* Ethernet always first */ + if (aa_type == NM_TYPE_DEVICE_ETHERNET) + return -1; + if (bb_type == NM_TYPE_DEVICE_ETHERNET) + return 1; + + /* Modems next */ + if (aa_type == NM_TYPE_DEVICE_MODEM) + return -1; + if (bb_type == NM_TYPE_DEVICE_MODEM) + return 1; + + /* Bluetooth next */ + if (aa_type == NM_TYPE_DEVICE_BT) + return -1; + if (bb_type == NM_TYPE_DEVICE_BT) + return 1; + + /* WiMAX next */ + if (aa_type == NM_TYPE_DEVICE_WIMAX) + return -1; + if (bb_type == NM_TYPE_DEVICE_WIMAX) + return 1; + + /* WiFi last because it has many menu items */ + return 1; +} + +static gboolean +nm_g_ptr_array_contains (const GPtrArray *haystack, gpointer needle) +{ + int i; + + for (i = 0; haystack && (i < haystack->len); i++) { + if (g_ptr_array_index (haystack, i) == needle) + return TRUE; + } + return FALSE; +} + +NMConnection * +applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active) +{ + const GPtrArray *active_connections; + NMConnection *connection = NULL; + int i; + + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + if (out_active) + g_return_val_if_fail (*out_active == NULL, NULL); + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMRemoteConnection *tmp; + NMActiveConnection *active; + const char *connection_path; + const GPtrArray *devices; + + active = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_connections, i)); + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + tmp = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (tmp) { + connection = NM_CONNECTION (tmp); + if (out_active) + *out_active = active; + break; + } + } + + return connection; +} + +gboolean +nma_menu_device_check_unusable (NMDevice *device) +{ + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + case NM_DEVICE_STATE_UNMANAGED: + return TRUE; + default: + break; + } + return FALSE; +} + + +struct AppletDeviceMenuInfo { + NMDevice *device; + NMApplet *applet; +}; + +static void +applet_device_info_destroy (struct AppletDeviceMenuInfo *info) +{ + g_return_if_fail (info != NULL); + + if (info->device) + g_object_unref (info->device); + memset (info, 0, sizeof (struct AppletDeviceMenuInfo)); + g_free (info); +} + +static void +applet_device_disconnect_db (GtkMenuItem *item, gpointer user_data) +{ + struct AppletDeviceMenuInfo *info = user_data; + + applet_menu_item_disconnect_helper (info->device, + info->applet); +} + +GtkWidget * +nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg) +{ + GtkWidget *item = NULL; + gboolean managed = TRUE; + + if (!unavailable_msg) { + if (nm_device_get_firmware_missing (device)) + unavailable_msg = _("device not ready (firmware missing)"); + else + unavailable_msg = _("device not ready"); + } + + switch (nm_device_get_state (device)) { + case NM_DEVICE_STATE_UNKNOWN: + case NM_DEVICE_STATE_UNAVAILABLE: + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_DISCONNECTED: + unavailable_msg = _("disconnected"); + item = gtk_menu_item_new_with_label (unavailable_msg); + gtk_widget_set_sensitive (item, FALSE); + break; + case NM_DEVICE_STATE_UNMANAGED: + managed = FALSE; + break; + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + case NM_DEVICE_STATE_ACTIVATED: + { + struct AppletDeviceMenuInfo *info = g_new0 (struct AppletDeviceMenuInfo, 1); + info->device = g_object_ref (device); + info->applet = applet; + item = gtk_menu_item_new_with_label (_("Disconnect")); + g_signal_connect_data (item, "activate", + G_CALLBACK (applet_device_disconnect_db), + info, + (GClosureNotify) applet_device_info_destroy, 0); + gtk_widget_set_sensitive (item, TRUE); + break; + } + default: + managed = nm_device_get_managed (device); + break; + } + + if (!managed) { + item = gtk_menu_item_new_with_label (_("device not managed")); + gtk_widget_set_sensitive (item, FALSE); + } + + return item; +} + +static guint32 +nma_menu_add_devices (GtkWidget *menu, NMApplet *applet) +{ + const GPtrArray *temp = NULL; + GSList *devices = NULL, *iter = NULL; + gint n_wifi_devices = 0; + gint n_usable_wifi_devices = 0; + gint n_ethernet_devices = 0; + gint n_mb_devices = 0; + gint n_bt_devices = 0; + int i; + + temp = nm_client_get_devices (applet->nm_client); + for (i = 0; temp && (i < temp->len); i++) + devices = g_slist_insert_sorted (devices, g_ptr_array_index (temp, i), sort_devices); + + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) { + n_wifi_devices++; + if ( nm_client_wireless_get_enabled (applet->nm_client) + && (nm_device_get_state (device) >= NM_DEVICE_STATE_DISCONNECTED)) + n_usable_wifi_devices++; + } else if (NM_IS_DEVICE_ETHERNET (device)) + n_ethernet_devices++; + else if (NM_IS_DEVICE_MODEM (device)) + n_mb_devices++; + else if (NM_IS_DEVICE_BT (device)) + n_bt_devices++; + } + + if (!n_ethernet_devices && !n_wifi_devices && !n_mb_devices && !n_bt_devices) { + nma_menu_add_text_item (menu, _("No network devices available")); + goto out; + } + + /* Add all devices in our device list to the menu */ + for (iter = devices; iter; iter = iter->next) { + NMDevice *device = NM_DEVICE (iter->data); + gint n_devices = 0; + NMADeviceClass *dclass; + NMConnection *active; + + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + continue; + + if (NM_IS_DEVICE_WIFI (device)) + n_devices = n_wifi_devices; + else if (NM_IS_DEVICE_ETHERNET (device)) + n_devices = n_ethernet_devices; + else if (NM_IS_DEVICE_MODEM (device)) + n_devices = n_mb_devices; + + active = applet_find_active_connection_for_device (device, applet, NULL); + + dclass = get_device_class (device, applet); + if (dclass) + dclass->add_menu_item (device, n_devices, active, menu, applet); + } + + out: + g_slist_free (devices); + + /* Return # of usable wifi devices here for correct enable/disable state + * of things like Enable Wi-Fi, "Connect to other..." and such. + */ + return n_usable_wifi_devices; +} + +static int +sort_vpn_connections (gconstpointer a, gconstpointer b) +{ + return strcmp (get_connection_id (NM_CONNECTION (a)), get_connection_id (NM_CONNECTION (b))); +} + +static GSList * +get_vpn_connections (NMApplet *applet) +{ + GSList *all_connections; + GSList *iter; + GSList *list = NULL; + + all_connections = applet_get_all_connections (applet); + + for (iter = all_connections; iter; iter = iter->next) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection (connection); + if (strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) + /* Not a VPN connection */ + continue; + + if (!nm_connection_get_setting_vpn (connection)) { + g_warning ("%s: VPN connection '%s' didn't have required vpn setting.", __func__, + nm_setting_connection_get_id (s_con)); + continue; + } + + list = g_slist_prepend (list, connection); + } + + g_slist_free (all_connections); + + return g_slist_sort (list, sort_vpn_connections); +} + +static void +nma_menu_add_vpn_submenu (GtkWidget *menu, NMApplet *applet) +{ + GtkMenu *vpn_menu; + GtkMenuItem *item; + GSList *list, *iter; + int num_vpn_active = 0; + + nma_menu_add_separator_item (menu); + + vpn_menu = GTK_MENU (gtk_menu_new ()); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_VPN Connections"))); + gtk_menu_item_set_submenu (item, GTK_WIDGET (vpn_menu)); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); + + list = get_vpn_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + + if (applet_get_active_for_connection (applet, connection)) + num_vpn_active++; + } + + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMActiveConnection *active; + const char *name; + GtkWidget *image; + NMState state; + + name = get_connection_id (connection); + + item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); + gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + + /* If no VPN connections are active, draw all menu items enabled. If + * >= 1 VPN connections are active, only the active VPN menu item is + * drawn enabled. + */ + active = applet_get_active_for_connection (applet, connection); + + state = nm_client_get_state (applet->nm_client); + if ( state != NM_STATE_CONNECTED_LOCAL + && state != NM_STATE_CONNECTED_SITE + && state != NM_STATE_CONNECTED_GLOBAL) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + else if ((num_vpn_active == 0) || active) + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + else + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + if (active) { + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + } + + g_object_set_data_full (G_OBJECT (item), "connection", + g_object_ref (connection), + (GDestroyNotify) g_object_unref); + + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_vpn_item_clicked), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } + + /* Draw a seperator, but only if we have VPN connections above it */ + if (list) + nma_menu_add_separator_item (GTK_WIDGET (vpn_menu)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Configure VPN..."))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_configure_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + + item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Disconnect VPN"))); + g_signal_connect (item, "activate", G_CALLBACK (nma_menu_disconnect_vpn_item_activate), applet); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + if (num_vpn_active == 0) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + + g_slist_free (list); +} + + +static void +nma_set_wifi_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wireless_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wwan_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wwan_set_enabled (applet->nm_client, state); +} + +static void +nma_set_wimax_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_wimax_set_enabled (applet->nm_client, state); +} + +static void +nma_set_networking_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + nm_client_networking_set_enabled (applet->nm_client, state); +} + + +static void +nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) +{ + gboolean state; + + g_return_if_fail (applet != NULL); + + state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_CONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_VPN_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + !state); +} + +/* + * nma_menu_show_cb + * + * Pop up the wifi networks menu + * + */ +static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet) +{ + guint32 n_wifi; + + g_return_if_fail (menu != NULL); + g_return_if_fail (applet != NULL); + + gtk_status_icon_set_tooltip_text (applet->status_icon, NULL); + + if (!nm_client_get_manager_running (applet->nm_client)) { + nma_menu_add_text_item (menu, _("NetworkManager is not running...")); + return; + } + + if (nm_client_get_state (applet->nm_client) == NM_STATE_ASLEEP) { + nma_menu_add_text_item (menu, _("Networking disabled")); + return; + } + + n_wifi = nma_menu_add_devices (menu, applet); + + if (n_wifi > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { + /* Add the "Hidden Wi-Fi network..." entry */ + nma_menu_add_hidden_network_item (menu, applet); + nma_menu_add_create_network_item (menu, applet); + nma_menu_add_separator_item (menu); + } + + nma_menu_add_vpn_submenu (menu, applet); + gtk_widget_show_all (menu); + +// nmi_dbus_signal_user_interface_activated (applet->connection); +} + +static gboolean +destroy_old_menu (gpointer user_data) +{ + g_object_unref (user_data); + return FALSE; +} + +static void +nma_menu_deactivate_cb (GtkWidget *widget, NMApplet *applet) +{ + /* Must punt the destroy to a low-priority idle to ensure that + * the menu items don't get destroyed before any 'activate' signal + * fires for an item. + */ + g_signal_handlers_disconnect_by_func (applet->menu, G_CALLBACK (nma_menu_deactivate_cb), applet); + g_idle_add_full (G_PRIORITY_LOW, destroy_old_menu, applet->menu, NULL); + applet->menu = NULL; + + /* Re-set the tooltip */ + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +} + +static gboolean +is_permission_yes (NMApplet *applet, NMClientPermission perm) +{ + if ( applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_YES + || applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_AUTH) + return TRUE; + return FALSE; +} + +/* + * nma_context_menu_update + * + */ +static void +nma_context_menu_update (NMApplet *applet) +{ + NMState state; + gboolean net_enabled = TRUE; + gboolean have_wifi = FALSE; + gboolean have_wwan = FALSE; + gboolean have_wimax = FALSE; + gboolean wifi_hw_enabled; + gboolean wwan_hw_enabled; + gboolean wimax_hw_enabled; + gboolean notifications_enabled = TRUE; + gboolean sensitive = FALSE; + + state = nm_client_get_state (applet->nm_client); + sensitive = ( state == NM_STATE_CONNECTED_LOCAL + || state == NM_STATE_CONNECTED_SITE + || state == NM_STATE_CONNECTED_GLOBAL); + gtk_widget_set_sensitive (applet->info_menu_item, sensitive); + + /* Update checkboxes, and block 'toggled' signal when updating so that the + * callback doesn't get triggered. + */ + + /* Enabled Networking */ + g_signal_handler_block (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + net_enabled = nm_client_networking_get_enabled (applet->nm_client); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->networking_enabled_item), + net_enabled && (state != NM_STATE_ASLEEP)); + g_signal_handler_unblock (G_OBJECT (applet->networking_enabled_item), + applet->networking_enabled_toggled_id); + gtk_widget_set_sensitive (applet->networking_enabled_item, + is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK)); + + /* Enabled Wi-Fi */ + g_signal_handler_block (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wifi_enabled_item), + nm_client_wireless_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wifi_enabled_item), + applet->wifi_enabled_toggled_id); + + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wifi_enabled_item), + wifi_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI)); + + /* Enabled Mobile Broadband */ + g_signal_handler_block (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wwan_enabled_item), + nm_client_wwan_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wwan_enabled_item), + applet->wwan_enabled_toggled_id); + + wwan_hw_enabled = nm_client_wwan_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wwan_enabled_item), + wwan_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN)); + + /* Enable WiMAX */ + g_signal_handler_block (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wimax_enabled_item), + nm_client_wimax_get_enabled (applet->nm_client)); + g_signal_handler_unblock (G_OBJECT (applet->wimax_enabled_item), + applet->wimax_enabled_toggled_id); + + wimax_hw_enabled = nm_client_wimax_hardware_get_enabled (applet->nm_client); + gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), + wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); + + /* Enabled notifications */ + g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + if ( g_settings_get_boolean (applet->gsettings, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_VPN_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) + notifications_enabled = FALSE; + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); + g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), + applet->notifications_enabled_toggled_id); + + /* Don't show wifi-specific stuff if wifi is off */ + if (state != NM_STATE_ASLEEP) { + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *candidate = g_ptr_array_index (devices, i); + + if (NM_IS_DEVICE_WIFI (candidate)) + have_wifi = TRUE; + else if (NM_IS_DEVICE_MODEM (candidate)) + have_wwan = TRUE; + else if (NM_IS_DEVICE_WIMAX (candidate)) + have_wimax = TRUE; + } + } + + if (have_wifi) + gtk_widget_show_all (applet->wifi_enabled_item); + else + gtk_widget_hide (applet->wifi_enabled_item); + + if (have_wwan) + gtk_widget_show_all (applet->wwan_enabled_item); + else + gtk_widget_hide (applet->wwan_enabled_item); + + if (have_wimax) + gtk_widget_show_all (applet->wimax_enabled_item); + else + gtk_widget_hide (applet->wimax_enabled_item); +} + +static void +ce_child_setup (gpointer user_data G_GNUC_UNUSED) +{ + /* We are in the child process at this point */ + pid_t pid = getpid (); + setpgid (pid, pid); +} + +static void +nma_edit_connections_cb (GtkMenuItem *mi, NMApplet *applet) +{ + char *argv[2]; + GError *error = NULL; + gboolean success; + + argv[0] = BINDIR "/nm-connection-editor"; + argv[1] = NULL; + + success = g_spawn_async ("/", argv, NULL, 0, &ce_child_setup, NULL, NULL, &error); + if (!success) { + g_warning ("Error launching connection editor: %s", error->message); + g_error_free (error); + } +} + +static void +applet_connection_info_cb (NMApplet *applet) +{ + applet_info_dialog_show (applet); +} + +/* + * nma_context_menu_create + * + * Generate the contextual popup menu. + * + */ +static GtkWidget *nma_context_menu_create (NMApplet *applet) +{ + GtkMenuShell *menu; + GtkWidget *menu_item; + GtkWidget *image; + guint id; + + g_return_val_if_fail (applet != NULL, NULL); + + menu = GTK_MENU_SHELL (gtk_menu_new ()); + + /* 'Enable Networking' item */ + applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); + id = g_signal_connect (applet->networking_enabled_item, + "toggled", + G_CALLBACK (nma_set_networking_enabled_cb), + applet); + applet->networking_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->networking_enabled_item); + + /* 'Enable Wi-Fi' item */ + applet->wifi_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Wi-Fi")); + id = g_signal_connect (applet->wifi_enabled_item, + "toggled", + G_CALLBACK (nma_set_wifi_enabled_cb), + applet); + applet->wifi_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wifi_enabled_item); + + /* 'Enable Mobile Broadband' item */ + applet->wwan_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Mobile Broadband")); + id = g_signal_connect (applet->wwan_enabled_item, + "toggled", + G_CALLBACK (nma_set_wwan_enabled_cb), + applet); + applet->wwan_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wwan_enabled_item); + + /* 'Enable WiMAX Mobile Broadband' item */ + applet->wimax_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable WiMA_X Mobile Broadband")); + id = g_signal_connect (applet->wimax_enabled_item, + "toggled", + G_CALLBACK (nma_set_wimax_enabled_cb), + applet); + applet->wimax_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->wimax_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* Toggle notifications item */ + applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); + id = g_signal_connect (applet->notifications_enabled_item, + "toggled", + G_CALLBACK (nma_set_notifications_enabled_cb), + applet); + applet->notifications_enabled_toggled_id = id; + gtk_menu_shell_append (menu, applet->notifications_enabled_item); + + nma_menu_add_separator_item (GTK_WIDGET (menu)); + + /* 'Connection Information' item */ + applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); + g_signal_connect_swapped (applet->info_menu_item, + "activate", + G_CALLBACK (applet_connection_info_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->info_menu_item), image); + gtk_menu_shell_append (menu, applet->info_menu_item); + + /* 'Edit Connections...' item */ + applet->connections_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Edit Connections...")); + g_signal_connect (applet->connections_menu_item, + "activate", + G_CALLBACK (nma_edit_connections_cb), + applet); + image = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); + gtk_menu_shell_append (menu, applet->connections_menu_item); + + /* Separator */ + nma_menu_add_separator_item (GTK_WIDGET (menu)); + +#if 0 /* FIXME: Implement the help callback, nma_help_cb()! */ + /* Help item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Help")); + g_signal_connect (menu_item, "activate", G_CALLBACK (nma_help_cb), applet); + image = gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); +#endif + + /* About item */ + menu_item = gtk_image_menu_item_new_with_mnemonic (_("_About")); + g_signal_connect_swapped (menu_item, "activate", G_CALLBACK (applet_about_dialog_show), applet); + image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); + gtk_menu_shell_append (menu, menu_item); + + gtk_widget_show_all (GTK_WIDGET (menu)); + + return GTK_WIDGET (menu); +} + + +/*****************************************************************************/ + +static void +foo_set_icon (NMApplet *applet, GdkPixbuf *pixbuf, guint32 layer) +{ + int i; + + if (layer > ICON_LAYER_MAX) { + g_warning ("Tried to icon to invalid layer %d", layer); + return; + } + + /* Ignore setting of the same icon as is already displayed */ + if (applet->icon_layers[layer] == pixbuf) + return; + + if (applet->icon_layers[layer]) { + g_object_unref (applet->icon_layers[layer]); + applet->icon_layers[layer] = NULL; + } + + if (pixbuf) + applet->icon_layers[layer] = g_object_ref (pixbuf); + + if (!applet->icon_layers[0]) { + nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + pixbuf = g_object_ref (applet->no_connection_icon); + } else { + pixbuf = gdk_pixbuf_copy (applet->icon_layers[0]); + + for (i = ICON_LAYER_LINK + 1; i <= ICON_LAYER_MAX; i++) { + GdkPixbuf *top = applet->icon_layers[i]; + + if (!top) + continue; + + gdk_pixbuf_composite (top, pixbuf, 0, 0, gdk_pixbuf_get_width (top), + gdk_pixbuf_get_height (top), + 0, 0, 1.0, 1.0, + GDK_INTERP_NEAREST, 255); + } + } + + gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); + g_object_unref (pixbuf); +} + + +NMRemoteConnection * +applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) +{ + const GPtrArray *active_connections; + int i; + + active_connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; active_connections && (i < active_connections->len); i++) { + NMActiveConnection *active; + NMRemoteConnection *connection; + const char *connection_path; + const GPtrArray *devices; + + active = g_ptr_array_index (active_connections, i); + if (!active) + continue; + + devices = nm_active_connection_get_devices (active); + connection_path = nm_active_connection_get_connection (active); + if (!devices || !connection_path) + continue; + + if (!nm_g_ptr_array_contains (devices, device)) + continue; + + connection = nm_remote_settings_get_connection_by_path (applet->settings, connection_path); + if (connection) + return connection; + } + return NULL; +} + +static gboolean +select_merged_notification_text (OfflineNotificationContextInfo *info) +{ + info->urgency = NOTIFY_URGENCY_LOW; + /* only do something if this is about full offline state */ + if(info->state != NM_STATE_UNKNOWN || info->device_state != NM_DEVICE_STATE_UNKNOWN) { + info->urgency = NOTIFY_URGENCY_NORMAL; + if (!info->title) + info->title = g_strdup (_("Network")); + if (info->state == NM_STATE_DISCONNECTED || info->state == NM_STATE_ASLEEP) { + info->text = _("Disconnected - you are now offline"); + } else + info->text = _("Disconnected"); + + switch (info->device_type) { + case NM_DEVICE_TYPE_ETHERNET: + info->icon = "notification-network-ethernet-disconnected"; + break; + case NM_DEVICE_TYPE_WIFI: + info->icon = "notification-network-wireless-disconnected"; + break; + case NM_DEVICE_TYPE_MODEM: + info->icon = "notification-gsm-disconnected"; + break; + default: + info->icon = "notification-network-disconnected"; + break; + } + g_debug("going for offline with icon: %s", info->icon); + return TRUE; + } + return FALSE; +} + +static gboolean +foo_online_offline_deferred_notify (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if(select_merged_notification_text (info)) + if (!g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS)) + applet_do_notify (applet, info->urgency, info->title, + info->text, info->icon, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + _("Don't show this message again"), + notify_dont_show_cb, + applet); + else + g_debug("no notification because merged found that we have nothing to say (e.g. not offline)"); + if (info->title) + g_free (info->title); + info->title = NULL; + g_free (applet->notification_queue_data); + applet->notification_queue_data = NULL; + applet->deferred_id = 0; + return FALSE; +} + +static void +applet_common_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + gboolean device_activating = FALSE, vpn_activating = FALSE; + + device_activating = applet_is_any_device_activating (applet); + vpn_activating = applet_is_any_vpn_activating (applet); + + switch (new_state) { + case NM_DEVICE_STATE_FAILED: + case NM_DEVICE_STATE_DISCONNECTED: + case NM_DEVICE_STATE_UNMANAGED: + case NM_DEVICE_STATE_UNAVAILABLE: + { + if (old_state != NM_DEVICE_STATE_FAILED && + old_state != NM_DEVICE_STATE_UNKNOWN && + old_state != NM_DEVICE_STATE_DISCONNECTED && + old_state != NM_DEVICE_STATE_UNMANAGED && + old_state != NM_DEVICE_STATE_UNAVAILABLE) { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->device_state = new_state; + info->device_state_reason = reason; + if (info->title) { + g_free(info->title); + info->title = NULL; + } + if (NM_IS_DEVICE_WIFI (device)) { + info->device_type = NM_DEVICE_TYPE_WIFI; + info->title = g_strdup(g_object_get_data (G_OBJECT(device), "canonical-last-essid")); + if (!info->title) + info->title = g_strdup (_("Wireless network")); + } else if (NM_IS_DEVICE_ETHERNET (device)) { + info->device_type = NM_DEVICE_TYPE_ETHERNET; + info->title = g_strdup(_("Wired network")); + } else if (NM_IS_DEVICE_MODEM (device)) { + info->device_type = NM_DEVICE_TYPE_MODEM; + info->title = g_strdup (_("Modem network")); + } else { + info->device_type = NM_DEVICE_TYPE_UNKNOWN; + info->title = g_strdup (_("Network")); + } + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + clear_animation_timeout (applet); + } else { + g_debug ("old state indicates that this was not a disconnect %d", old_state); + } + break; + } + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + /* Be sure to turn animation timeout on here since the dbus signals + * for new active connections or devices might not have come through yet. + */ + device_activating = TRUE; + break; + case NM_DEVICE_STATE_ACTIVATED: + default: + break; + } + + /* If there's an activating device but we're not animating, start animation. + * If we're animating, but there's no activating device or VPN, stop animating. + */ + if (device_activating || vpn_activating) + start_animation_timeout (applet); + else + clear_animation_timeout (applet); +} + +static void +foo_device_state_changed_cb (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + g_assert (dclass); + + dclass->device_state_changed (device, new_state, old_state, reason, applet); + applet_common_device_state_changed (device, new_state, old_state, reason, applet); + + applet_schedule_update_icon (applet); +} + +static void +foo_device_added_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMADeviceClass *dclass; + + dclass = get_device_class (device, applet); + if (!dclass) + return; + + if (dclass->device_added) + dclass->device_added (device, applet); + + g_signal_connect (device, "state-changed", + G_CALLBACK (foo_device_state_changed_cb), + user_data); + + foo_device_state_changed_cb (device, + nm_device_get_state (device), + NM_DEVICE_STATE_UNKNOWN, + NM_DEVICE_STATE_REASON_NONE, + applet); +} + +static void +foo_client_state_changed_cb (NMClient *client, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + g_debug("foo_client_state_changed_cb"); + switch (nm_client_get_state (client)) { + case NM_STATE_DISCONNECTED: + case NM_STATE_ASLEEP: + { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->state = nm_client_get_state (client); + select_merged_notification_text (info); + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + /* Fall through */ + } + default: + break; + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_running_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (nm_client_get_manager_running (client)) { + g_message ("NM appeared"); + } else { + g_message ("NM disappeared"); + clear_animation_timeout (applet); + } + + applet_schedule_update_icon (applet); +} + +#define VPN_STATE_ID_TAG "vpn-state-id" + +static void +foo_active_connections_changed_cb (NMClient *client, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + const GPtrArray *active_list; + int i; + + /* Track the state of new VPN connections */ + active_list = nm_client_get_active_connections (client); + for (i = 0; active_list && (i < active_list->len); i++) { + NMActiveConnection *candidate = NM_ACTIVE_CONNECTION (g_ptr_array_index (active_list, i)); + guint id; + + if ( !NM_IS_VPN_CONNECTION (candidate) + || g_object_get_data (G_OBJECT (candidate), VPN_STATE_ID_TAG)) + continue; + + id = g_signal_connect (G_OBJECT (candidate), "vpn-state-changed", + G_CALLBACK (vpn_connection_state_changed), applet); + g_object_set_data (G_OBJECT (candidate), VPN_STATE_ID_TAG, GUINT_TO_POINTER (id)); + } + + applet_schedule_update_icon (applet); +} + +static void +foo_manager_permission_changed (NMClient *client, + NMClientPermission permission, + NMClientPermissionResult result, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + if (permission <= NM_CLIENT_PERMISSION_LAST) + applet->permissions[permission] = result; +} + +static gboolean +foo_set_initial_state (gpointer data) +{ + NMApplet *applet = NM_APPLET (data); + const GPtrArray *devices; + int i; + + devices = nm_client_get_devices (applet->nm_client); + for (i = 0; devices && (i < devices->len); i++) + foo_device_added_cb (applet->nm_client, NM_DEVICE (g_ptr_array_index (devices, i)), applet); + + foo_active_connections_changed_cb (applet->nm_client, NULL, applet); + + applet_schedule_update_icon (applet); + + return FALSE; +} + +static void +foo_client_setup (NMApplet *applet) +{ + NMClientPermission perm; + + applet->nm_client = nm_client_new (); + if (!applet->nm_client) + return; + + g_signal_connect (applet->nm_client, "notify::state", + G_CALLBACK (foo_client_state_changed_cb), + applet); + g_signal_connect (applet->nm_client, "notify::active-connections", + G_CALLBACK (foo_active_connections_changed_cb), + applet); + g_signal_connect (applet->nm_client, "device-added", + G_CALLBACK (foo_device_added_cb), + applet); + g_signal_connect (applet->nm_client, "notify::manager-running", + G_CALLBACK (foo_manager_running_cb), + applet); + + g_signal_connect (applet->nm_client, "permission-changed", + G_CALLBACK (foo_manager_permission_changed), + applet); + + /* Initialize permissions - the initial 'permission-changed' signal is emitted from NMClient constructor, and thus not caught */ + for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { + applet->permissions[perm] = nm_client_get_permission_result (applet->nm_client, perm); + } + + if (nm_client_get_manager_running (applet->nm_client)) + g_idle_add (foo_set_initial_state, applet); + + applet_schedule_update_icon (applet); +} + +static GdkPixbuf * +applet_common_get_device_icon (NMDeviceState state, NMApplet *applet) +{ + GdkPixbuf *pixbuf = NULL; + int stage = -1; + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + stage = 0; + break; + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + stage = 1; + break; + case NM_DEVICE_STATE_IP_CONFIG: + stage = 2; + break; + default: + break; + } + + if (stage >= 0) { + int i, j; + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { + char *name; + + name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); + nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); + g_free (name); + } + } + + pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_CONNECTING_FRAMES) + applet->animation_step = 0; + } + + return pixbuf; +} + +static char * +get_tip_for_device_state (NMDevice *device, + NMDeviceState state, + NMConnection *connection) +{ + NMSettingConnection *s_con; + char *tip = NULL; + const char *id = NULL; + + id = nm_device_get_iface (device); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + tip = g_strdup_printf (_("Preparing network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + tip = g_strdup_printf (_("Network connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static GdkPixbuf * +applet_get_device_icon_for_state (NMApplet *applet, char **tip) +{ + NMActiveConnection *active; + NMDevice *device = NULL; + GdkPixbuf *pixbuf = NULL; + NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; + NMADeviceClass *dclass; + + // FIXME: handle multiple device states here + + /* First show the best activating device's state */ + active = applet_get_best_activating_connection (applet, &device); + if (!active || !device) { + /* If there aren't any activating devices, then show the state of + * the default active connection instead. + */ + active = applet_get_default_active_connection (applet, &device); + if (!active || !device) + goto out; + } + + state = nm_device_get_state (device); + + dclass = get_device_class (device, applet); + if (dclass) { + NMConnection *connection; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + /* device class returns a referenced pixbuf */ + pixbuf = dclass->get_icon (device, state, connection, tip, applet); + if (!*tip) + *tip = get_tip_for_device_state (device, state, connection); + } + +out: + if (!pixbuf) { + pixbuf = applet_common_get_device_icon (state, applet); + /* reference the pixbuf to match the device class' get_icon() function behavior */ + if (pixbuf) + g_object_ref (pixbuf); + } + return pixbuf; +} + +static char * +get_tip_for_vpn (NMActiveConnection *active, NMVPNConnectionState state, NMApplet *applet) +{ + char *tip = NULL; + const char *path, *id = NULL; + GSList *iter, *list; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + + if (!strcmp (nm_connection_get_path (candidate), path)) { + s_con = nm_connection_get_setting_connection (candidate); + id = nm_setting_connection_get_id (s_con); + break; + } + } + g_slist_free (list); + + if (!id) + return NULL; + + switch (state) { + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_PREPARE: + tip = g_strdup_printf (_("Starting VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + tip = g_strdup_printf (_("User authentication required for VPN connection '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + tip = g_strdup_printf (_("Requesting a VPN address for '%s'..."), id); + break; + case NM_VPN_CONNECTION_STATE_ACTIVATED: + tip = g_strdup_printf (_("VPN connection '%s' active"), id); + break; + default: + break; + } + + return tip; +} + +static gboolean +applet_update_icon (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GdkPixbuf *pixbuf = NULL; + NMState state; + char *dev_tip = NULL, *vpn_tip = NULL; + NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; + gboolean nm_running; + NMActiveConnection *active_vpn = NULL; + + applet->update_icon_id = 0; + + nm_running = nm_client_get_manager_running (applet->nm_client); + + /* Handle device state first */ + + state = nm_client_get_state (applet->nm_client); + if (!nm_running) + state = NM_STATE_UNKNOWN; + + gtk_status_icon_set_visible (applet->status_icon, applet->visible); + + switch (state) { + case NM_STATE_UNKNOWN: + case NM_STATE_ASLEEP: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("Networking disabled")); + break; + case NM_STATE_DISCONNECTED: + pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + g_object_ref (pixbuf); + dev_tip = g_strdup (_("No network connection")); + break; + default: + pixbuf = applet_get_device_icon_for_state (applet, &dev_tip); + break; + } + + foo_set_icon (applet, pixbuf, ICON_LAYER_LINK); + if (pixbuf) + g_object_unref (pixbuf); + + /* VPN state next */ + pixbuf = NULL; + active_vpn = applet_get_first_active_vpn_connection (applet, &vpn_state); + if (active_vpn) { + int i; + + switch (vpn_state) { + case NM_VPN_CONNECTION_STATE_ACTIVATED: + pixbuf = nma_icon_check_and_load ("nm-vpn-active-lock", &applet->vpn_lock_icon, applet); + break; + case NM_VPN_CONNECTION_STATE_PREPARE: + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + case NM_VPN_CONNECTION_STATE_CONNECT: + case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) { + char *name; + + name = g_strdup_printf ("nm-vpn-connecting%02d", i+1); + nma_icon_check_and_load (name, &applet->vpn_connecting_icons[i], applet); + g_free (name); + } + + pixbuf = applet->vpn_connecting_icons[applet->animation_step]; + applet->animation_step++; + if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) + applet->animation_step = 0; + break; + default: + break; + } + + vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); + } + foo_set_icon (applet, pixbuf, ICON_LAYER_VPN); + + g_free (applet->tip); + applet->tip = NULL; + + if (dev_tip || vpn_tip) { + GString *tip; + + tip = g_string_new (dev_tip); + + if (vpn_tip) + g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", vpn_tip); + + if (tip->len) + applet->tip = tip->str; + + g_free (vpn_tip); + g_free (dev_tip); + g_string_free (tip, FALSE); + } + + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); + + return FALSE; +} + +void +applet_schedule_update_icon (NMApplet *applet) +{ + if (!applet->update_icon_id) + applet->update_icon_id = g_idle_add (applet_update_icon, applet); +} + +/*****************************************************************************/ + +static SecretsRequest * +applet_secrets_request_new (size_t totsize, + NMConnection *connection, + gpointer request_id, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + NMApplet *applet) +{ + SecretsRequest *req; + + g_return_val_if_fail (totsize >= sizeof (SecretsRequest), NULL); + g_return_val_if_fail (connection != NULL, NULL); + + req = g_malloc0 (totsize); + req->totsize = totsize; + req->connection = g_object_ref (connection); + req->reqid = request_id; + req->setting_name = g_strdup (setting_name); + req->hints = g_strdupv ((char **) hints); + req->flags = flags; + req->callback = callback; + req->callback_data = callback_data; + req->applet = applet; + return req; +} + +void +applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func) +{ + req->free_func = free_func; +} + +void +applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error) +{ + req->callback (req->applet->agent, error ? NULL : settings, error, req->callback_data); +} + +void +applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error) +{ + NMSetting *setting; + GHashTable *settings = NULL, *secrets; + + if (setting_name && !error) { + setting = nm_connection_get_setting_by_name (req->connection, setting_name); + if (setting) { + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ALL); + if (secrets) { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, g_strdup (setting_name), secrets); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting '%s'.", + __FILE__, __LINE__, __func__, setting_name); + } + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled setting '%s'", + __FILE__, __LINE__, __func__, setting_name); + } + } + + req->callback (req->applet->agent, settings, error, req->callback_data); +} + +void +applet_secrets_request_free (SecretsRequest *req) +{ + g_return_if_fail (req != NULL); + + if (req->free_func) + req->free_func (req); + + req->applet->secrets_reqs = g_slist_remove (req->applet->secrets_reqs, req); + + g_object_unref (req->connection); + g_free (req->setting_name); + g_strfreev (req->hints); + memset (req, 0, req->totsize); + g_free (req); +} + +static void +get_existing_secrets_cb (NMSecretAgent *agent, + NMConnection *connection, + GHashTable *secrets, + GError *secrets_error, + gpointer user_data) +{ + SecretsRequest *req = user_data; + NMADeviceClass *dclass; + GError *error = NULL; + + /* Merge existing secrets into connection; ignore errors */ + nm_connection_update_secrets (connection, req->setting_name, secrets, NULL); + + dclass = get_device_class_from_connection (connection, req->applet); + g_assert (dclass); + + /* Let the device class handle secrets */ + if (!dclass->get_secrets (req, &error)) { + g_warning ("%s:%d - %s", __func__, __LINE__, error ? error->message : "(unknown)"); + applet_secrets_request_complete (req, NULL, error); + applet_secrets_request_free (req); + g_error_free (error); + } + /* Otherwise success; wait for the secrets callback */ +} + +static void +applet_agent_get_secrets_cb (AppletAgent *agent, + gpointer request_id, + NMConnection *connection, + const char *setting_name, + const char **hints, + guint32 flags, + AppletAgentSecretsCallback callback, + gpointer callback_data, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + NMSettingConnection *s_con; + NMADeviceClass *dclass; + GError *error = NULL; + SecretsRequest *req = NULL; + + s_con = nm_connection_get_setting_connection (connection); + g_return_if_fail (s_con != NULL); + + /* VPN secrets get handled a bit differently */ + if (!strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_VPN_SETTING_NAME)) { + req = applet_secrets_request_new (applet_vpn_request_get_secrets_size (), + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + if (!applet_vpn_request_get_secrets (req, &error)) + goto error; + + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + return; + } + + dclass = get_device_class_from_connection (connection, applet); + if (!dclass) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): device type unknown", + __FILE__, __LINE__, __func__); + goto error; + } + + if (!dclass->get_secrets) { + error = g_error_new (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NO_SECRETS, + "%s.%d (%s): no secrets found", + __FILE__, __LINE__, __func__); + goto error; + } + + g_assert (dclass->secrets_request_size); + req = applet_secrets_request_new (dclass->secrets_request_size, + connection, + request_id, + setting_name, + hints, + flags, + callback, + callback_data, + applet); + applet->secrets_reqs = g_slist_prepend (applet->secrets_reqs, req); + + /* Get existing secrets, if any */ + nm_secret_agent_get_secrets (NM_SECRET_AGENT (applet->agent), + connection, + setting_name, + hints, + NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE, + get_existing_secrets_cb, + req); + return; + +error: + g_warning ("%s", error->message); + callback (agent, NULL, error, callback_data); + g_error_free (error); + + if (req) + applet_secrets_request_free (req); +} + +static void +applet_agent_cancel_secrets_cb (AppletAgent *agent, + gpointer request_id, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + GSList *iter; + + for (iter = applet->secrets_reqs; iter; iter = g_slist_next (iter)) { + SecretsRequest *req = iter->data; + + if (req->reqid == request_id) { + /* cancel and free this password request */ + applet_secrets_request_free (req); + } + } +} + +static void +applet_agent_registered_cb (AppletAgent *agent, + GParamSpec *pspec, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + /* If the shell is running and the agent just got registered, unregister it */ + if ( (nm_shell_watcher_version_at_least (applet->shell_watcher, 3, 4)) + && nm_secret_agent_get_registered (NM_SECRET_AGENT (agent))) { + g_message ("Stopping registered applet secret agent because GNOME Shell is running"); + nm_secret_agent_unregister (NM_SECRET_AGENT (agent)); + } +} + +/*****************************************************************************/ + +static void +nma_clear_icon (GdkPixbuf **icon, NMApplet *applet) +{ + g_return_if_fail (icon != NULL); + g_return_if_fail (applet != NULL); + + if (*icon && (*icon != applet->fallback_icon)) { + g_object_unref (*icon); + *icon = NULL; + } +} + +static void nma_icons_free (NMApplet *applet) +{ + int i, j; + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); + + nma_clear_icon (&applet->no_connection_icon, applet); + nma_clear_icon (&applet->ethernet_icon, applet); + nma_clear_icon (&applet->adhoc_icon, applet); + nma_clear_icon (&applet->wwan_icon, applet); + nma_clear_icon (&applet->wwan_tower_icon, applet); + nma_clear_icon (&applet->vpn_lock_icon, applet); + nma_clear_icon (&applet->wifi_00_icon, applet); + nma_clear_icon (&applet->wifi_25_icon, applet); + nma_clear_icon (&applet->wifi_50_icon, applet); + nma_clear_icon (&applet->wifi_75_icon, applet); + nma_clear_icon (&applet->wifi_100_icon, applet); + nma_clear_icon (&applet->secure_lock_icon, applet); + + nma_clear_icon (&applet->mb_tech_1x_icon, applet); + nma_clear_icon (&applet->mb_tech_evdo_icon, applet); + nma_clear_icon (&applet->mb_tech_gprs_icon, applet); + nma_clear_icon (&applet->mb_tech_edge_icon, applet); + nma_clear_icon (&applet->mb_tech_umts_icon, applet); + nma_clear_icon (&applet->mb_tech_hspa_icon, applet); + nma_clear_icon (&applet->mb_tech_lte_icon, applet); + nma_clear_icon (&applet->mb_roaming_icon, applet); + nma_clear_icon (&applet->mb_tech_3g_icon, applet); + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) + nma_clear_icon (&applet->network_connecting_icons[i][j], applet); + } + + for (i = 0; i < NUM_VPN_CONNECTING_FRAMES; i++) + nma_clear_icon (&applet->vpn_connecting_icons[i], applet); + + for (i = 0; i <= ICON_LAYER_MAX; i++) + nma_clear_icon (&applet->icon_layers[i], applet); +} + +GdkPixbuf * +nma_icon_check_and_load (const char *name, GdkPixbuf **icon, NMApplet *applet) +{ + GError *error = NULL; + + g_return_val_if_fail (name != NULL, NULL); + g_return_val_if_fail (icon != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + /* icon already loaded successfully */ + if (*icon && (*icon != applet->fallback_icon)) + return *icon; + + /* Try to load the icon; if the load fails, log the problem, and set + * the icon to the fallback icon if requested. + */ + *icon = gtk_icon_theme_load_icon (applet->icon_theme, name, applet->icon_size, 0, &error); + if (!*icon) { + g_warning ("Icon %s missing: (%d) %s", + name, + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + + *icon = applet->fallback_icon; + } + return *icon; +} + +#include "fallback-icon.h" + +static gboolean +nma_icons_reload (NMApplet *applet) +{ + GError *error = NULL; + GdkPixbufLoader *loader; + + g_return_val_if_fail (applet->icon_size > 0, FALSE); + + nma_icons_free (applet); + + loader = gdk_pixbuf_loader_new_with_type ("png", &error); + if (!loader) + goto error; + + if (!gdk_pixbuf_loader_write (loader, + fallback_icon_data, + sizeof (fallback_icon_data), + &error)) + goto error; + + if (!gdk_pixbuf_loader_close (loader, &error)) + goto error; + + applet->fallback_icon = gdk_pixbuf_loader_get_pixbuf (loader); + g_object_ref (applet->fallback_icon); + g_assert (applet->fallback_icon); + g_object_unref (loader); + + return TRUE; + +error: + g_warning ("Could not load fallback icon: (%d) %s", + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + /* Die if we can't get a fallback icon */ + g_assert (FALSE); + return FALSE; +} + +static void nma_icon_theme_changed (GtkIconTheme *icon_theme, NMApplet *applet) +{ + nma_icons_reload (applet); +} + +static void nma_icons_init (NMApplet *applet) +{ + GdkScreen *screen; + gboolean path_appended; + + if (applet->icon_theme) { + g_signal_handlers_disconnect_by_func (applet->icon_theme, + G_CALLBACK (nma_icon_theme_changed), + applet); + g_object_unref (G_OBJECT (applet->icon_theme)); + } + + screen = gtk_status_icon_get_screen (applet->status_icon); + g_assert (screen); + applet->icon_theme = gtk_icon_theme_get_for_screen (screen); + + /* If not done yet, append our search path */ + path_appended = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended")); + if (path_appended == FALSE) { + gtk_icon_theme_append_search_path (applet->icon_theme, ICONDIR); + g_object_set_data (G_OBJECT (applet->icon_theme), + "NMAIconPathAppended", + GINT_TO_POINTER (TRUE)); + } + + g_signal_connect (applet->icon_theme, "changed", G_CALLBACK (nma_icon_theme_changed), applet); +} + +static void +status_icon_screen_changed_cb (GtkStatusIcon *icon, + GParamSpec *pspec, + NMApplet *applet) +{ + nma_icons_init (applet); + nma_icon_theme_changed (NULL, applet); +} + +static gboolean +status_icon_size_changed_cb (GtkStatusIcon *icon, + gint size, + NMApplet *applet) +{ + if (getenv ("NMA_SIZE_DEBUG")) { + g_message ("%s(): status icon size now %d", __func__, size); + } + + /* icon_size may be 0 if for example the panel hasn't given us any space + * yet. We'll get resized later, but for now just load the 16x16 icons. + */ + applet->icon_size = MAX (16, size); + + nma_icons_reload (applet); + + applet_schedule_update_icon (applet); + + return TRUE; +} + +static void +status_icon_activate_cb (GtkStatusIcon *icon, NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + + /* Kill any old menu */ + if (applet->menu) + g_object_unref (applet->menu); + + /* And make a fresh new one */ + applet->menu = gtk_menu_new (); + /* Sink the ref so we can explicitly destroy the menu later */ + g_object_ref_sink (G_OBJECT (applet->menu)); + + gtk_container_set_border_width (GTK_CONTAINER (applet->menu), 0); + g_signal_connect (applet->menu, "show", G_CALLBACK (nma_menu_show_cb), applet); + g_signal_connect (applet->menu, "deactivate", G_CALLBACK (nma_menu_deactivate_cb), applet); + + /* Display the new menu */ + gtk_menu_popup (GTK_MENU (applet->menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + 1, gtk_get_current_event_time ()); +} + +static void +status_icon_popup_menu_cb (GtkStatusIcon *icon, + guint button, + guint32 activate_time, + NMApplet *applet) +{ + /* Have clicking on the applet act also as acknowledgement + * of the notification. + */ + + nma_context_menu_update (applet); + gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + button, activate_time); +} + +static gboolean +setup_widgets (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->status_icon = gtk_status_icon_new (); + if (!applet->status_icon) + return FALSE; + if (shell_debug) + gtk_status_icon_set_name (applet->status_icon, "adsfasdfasdfadfasdf"); + + g_signal_connect (applet->status_icon, "notify::screen", + G_CALLBACK (status_icon_screen_changed_cb), applet); + g_signal_connect (applet->status_icon, "size-changed", + G_CALLBACK (status_icon_size_changed_cb), applet); + g_signal_connect (applet->status_icon, "activate", + G_CALLBACK (status_icon_activate_cb), applet); + g_signal_connect (applet->status_icon, "popup-menu", + G_CALLBACK (status_icon_popup_menu_cb), applet); + + applet->context_menu = nma_context_menu_create (applet); + if (!applet->context_menu) + return FALSE; + + return TRUE; +} + +static void +applet_embedded_cb (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + gboolean embedded = gtk_status_icon_is_embedded (GTK_STATUS_ICON (object)); + + g_message ("applet now %s the notification area", + embedded ? "embedded in" : "removed from"); +} + +#if GLIB_CHECK_VERSION(2,26,0) +static gboolean +delayed_start_agent (gpointer user_data) +{ + NMApplet *applet = user_data; + + applet->agent_start_id = 0; + + g_assert (applet->agent); + + /* If the agent is already running, there's nothing to do. */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent)) == TRUE) + return FALSE; + + if (nm_secret_agent_register (NM_SECRET_AGENT (applet->agent))) + g_message ("Starting applet secret agent because GNOME Shell disappeared"); + else + g_warning ("Failed to start applet secret agent!"); + return FALSE; +} + +static void +shell_version_changed_cb (NMShellWatcher *watcher, GParamSpec *pspec, gpointer user_data) +{ + NMApplet *applet = user_data; + + if (applet->agent_start_id) { + g_source_remove (applet->agent_start_id); + applet->agent_start_id = 0; + } + + if (!applet->agent) + return; + + if (nm_shell_watcher_version_at_least (watcher, 3, 4)) { + /* GNOME Shell handles all secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) { + g_message ("Stopping applet secret agent because GNOME Shell appeared"); + nm_secret_agent_unregister (NM_SECRET_AGENT (applet->agent)); + } + } else if (nm_shell_watcher_version_at_least (watcher, 3, 2)) { + /* GNOME Shell handles everything except VPN secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + g_message ("Applet secret agent handling only VPN secrets because GNOME Shell appeared"); + applet_agent_handle_vpn_only (applet->agent, TRUE); + } else { + /* If the shell quit and our agent wasn't already registered, do it + * now on a delay (just in case the shell is restarting). + */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + applet->agent_start_id = g_timeout_add_seconds (4, delayed_start_agent, applet); + applet_agent_handle_vpn_only (applet->agent, FALSE); + } +} +#endif + +static gboolean +dbus_setup (NMApplet *applet, GError **error) +{ + DBusConnection *connection; + DBusGProxy *proxy; + guint result; + gboolean success; + + applet->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, error); + if (!applet->bus) + return FALSE; + + connection = dbus_g_connection_get_connection (applet->bus); + dbus_connection_set_exit_on_disconnect (connection, FALSE); + + applet->session_bus = dbus_g_bus_get (DBUS_BUS_SESSION, error); + if (!applet->session_bus) + return FALSE; + + dbus_g_connection_register_g_object (applet->session_bus, + "/org/gnome/network_manager_applet", + G_OBJECT (applet)); + + proxy = dbus_g_proxy_new_for_name (applet->session_bus, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + success = dbus_g_proxy_call (proxy, "RequestName", error, + G_TYPE_STRING, "org.gnome.network_manager_applet", + G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE, + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID); + g_object_unref (proxy); + + return success; +} + +static void +applet_gsettings_show_changed (GSettings *settings, + gchar *key, + gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + g_return_if_fail (NM_IS_APPLET(applet)); + g_return_if_fail (key != NULL); + + applet->visible = g_settings_get_boolean (settings, key); + + gtk_status_icon_set_visible (applet->status_icon, applet->visible); +} + +static GObject * +constructor (GType type, + guint n_props, + GObjectConstructParam *construct_props) +{ + NMApplet *applet; + GError* error = NULL; + + applet = NM_APPLET (G_OBJECT_CLASS (nma_parent_class)->constructor (type, n_props, construct_props)); + + g_set_application_name (_("NetworkManager Applet")); + gtk_window_set_default_icon_name (GTK_STOCK_NETWORK); + + applet->info_dialog_ui = gtk_builder_new (); + + if (!gtk_builder_add_from_file (applet->info_dialog_ui, UIDIR "/info.ui", &error)) { + g_warning ("Couldn't load info dialog ui file: %s", error->message); + g_error_free (error); + goto error; + } + + applet->gsettings = g_settings_new (APPLET_PREFS_SCHEMA); + applet->visible = g_settings_get_boolean (applet->gsettings, PREF_SHOW_APPLET); + g_signal_connect (applet->gsettings, "changed::show-applet", + G_CALLBACK (applet_gsettings_show_changed), applet); + + /* Load pixmaps and create applet widgets */ + if (!setup_widgets (applet)) + goto error; + nma_icons_init (applet); + + if (!notify_is_initted ()) + notify_init ("NetworkManager"); + + if (!dbus_setup (applet, &error)) { + g_warning ("Failed to initialize D-Bus: %s", error->message); + g_error_free (error); + goto error; + } + applet->settings = nm_remote_settings_new (applet->bus); + +#ifdef BUILD_MIGRATION_TOOL + { + char *argv[2] = { LIBEXECDIR "/nm-applet-migration-tool", NULL }; + int status; + + /* Move user connections to the system */ + if (!g_spawn_sync (NULL, argv, NULL, 0, NULL, NULL, + NULL, NULL, &status, &error)) { + g_warning ("Could not run nm-applet-migration-tool: %s", + error->message); + g_error_free (error); + } else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { + g_warning ("nm-applet-migration-tool exited with error"); + } + } +#endif + + applet->agent = applet_agent_new (); + g_assert (applet->agent); + g_signal_connect (applet->agent, APPLET_AGENT_GET_SECRETS, + G_CALLBACK (applet_agent_get_secrets_cb), applet); + g_signal_connect (applet->agent, APPLET_AGENT_CANCEL_SECRETS, + G_CALLBACK (applet_agent_cancel_secrets_cb), applet); + g_signal_connect (applet->agent, "notify::" NM_SECRET_AGENT_REGISTERED, + G_CALLBACK (applet_agent_registered_cb), applet); + + /* Initialize device classes */ + applet->ethernet_class = applet_device_ethernet_get_class (applet); + g_assert (applet->ethernet_class); + + applet->wifi_class = applet_device_wifi_get_class (applet); + g_assert (applet->wifi_class); + + applet->gsm_class = applet_device_gsm_get_class (applet); + g_assert (applet->gsm_class); + + applet->cdma_class = applet_device_cdma_get_class (applet); + g_assert (applet->cdma_class); + + applet->bt_class = applet_device_bt_get_class (applet); + g_assert (applet->bt_class); + + applet->wimax_class = applet_device_wimax_get_class (applet); + g_assert (applet->wimax_class); + + foo_client_setup (applet); + + /* Track embedding to help debug issues where user has removed the + * notification area applet from the panel, and thus nm-applet too. + */ + g_signal_connect (applet->status_icon, "notify::embedded", + G_CALLBACK (applet_embedded_cb), NULL); + applet_embedded_cb (G_OBJECT (applet->status_icon), NULL, NULL); + +#if GLIB_CHECK_VERSION(2,26,0) + /* Watch GNOME Shell so we can unregister our applet agent if it appears */ + applet->shell_watcher = nm_shell_watcher_new (); + g_signal_connect (applet->shell_watcher, + "notify::shell-version", + G_CALLBACK (shell_version_changed_cb), + applet); +#endif + + return G_OBJECT (applet); + +error: + g_object_unref (applet); + return NULL; +} + +static void finalize (GObject *object) +{ + NMApplet *applet = NM_APPLET (object); + + g_slice_free (NMADeviceClass, applet->ethernet_class); + g_slice_free (NMADeviceClass, applet->wifi_class); + g_slice_free (NMADeviceClass, applet->gsm_class); + g_slice_free (NMADeviceClass, applet->cdma_class); + g_slice_free (NMADeviceClass, applet->bt_class); + g_slice_free (NMADeviceClass, applet->wimax_class); + + if (applet->update_icon_id) + g_source_remove (applet->update_icon_id); + + if (applet->menu) + g_object_unref (applet->menu); + nma_icons_free (applet); + + g_free (applet->tip); + + while (g_slist_length (applet->secrets_reqs)) + applet_secrets_request_free ((SecretsRequest *) applet->secrets_reqs->data); + + if (applet->notification) { + notify_notification_close (applet->notification, NULL); + g_object_unref (applet->notification); + } + + if (applet->info_dialog_ui) + g_object_unref (applet->info_dialog_ui); + + if (applet->gsettings) + g_object_unref (applet->gsettings); + + if (applet->status_icon) + g_object_unref (applet->status_icon); + + if (applet->nm_client) + g_object_unref (applet->nm_client); + + if (applet->fallback_icon) + g_object_unref (applet->fallback_icon); + + if (applet->agent) + g_object_unref (applet->agent); + + if (applet->settings) + g_object_unref (applet->settings); + + if (applet->bus) + dbus_g_connection_unref (applet->bus); + + if (applet->session_bus) + dbus_g_connection_unref (applet->session_bus); + +#if GLIB_CHECK_VERSION(2,26,0) + if (applet->shell_watcher) + g_object_unref (applet->shell_watcher); +#endif + if (applet->agent_start_id) + g_source_remove (applet->agent_start_id); + + G_OBJECT_CLASS (nma_parent_class)->finalize (object); +} + +static void nma_init (NMApplet *applet) +{ + applet->animation_id = 0; + applet->animation_step = 0; + applet->icon_theme = NULL; + applet->notification = NULL; + applet->icon_size = 16; +} + +enum { + PROP_0, + PROP_LOOP, + LAST_PROP +}; + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMApplet *applet = NM_APPLET (object); + + switch (prop_id) { + case PROP_LOOP: + applet->loop = g_value_get_pointer (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void nma_class_init (NMAppletClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GParamSpec *pspec; + + oclass->set_property = set_property; + oclass->constructor = constructor; + oclass->finalize = finalize; + + pspec = g_param_spec_pointer ("loop", "Loop", "Applet mainloop", G_PARAM_CONSTRUCT | G_PARAM_WRITABLE); + g_object_class_install_property (oclass, PROP_LOOP, pspec); + + dbus_g_object_type_install_info (NM_TYPE_APPLET, &dbus_glib_nma_object_info); +} + +NMApplet * +nm_applet_new (GMainLoop *loop) +{ + return g_object_new (NM_TYPE_APPLET, "loop", loop, NULL); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet.h network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet.h --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/applet.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/applet.h 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,329 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2004 - 2011 Red Hat, Inc. + * Copyright (C) 2005 - 2008 Novell, Inc. + */ + +#ifndef APPLET_H +#define APPLET_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include +#include + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include "applet-agent.h" +#include "shell-watcher.h" + +#define NM_TYPE_APPLET (nma_get_type()) +#define NM_APPLET(object) (G_TYPE_CHECK_INSTANCE_CAST((object), NM_TYPE_APPLET, NMApplet)) +#define NM_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_APPLET, NMAppletClass)) +#define NM_IS_APPLET(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), NM_TYPE_APPLET)) +#define NM_IS_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_APPLET)) +#define NM_APPLET_GET_CLASS(object)(G_TYPE_INSTANCE_GET_CLASS((object), NM_TYPE_APPLET, NMAppletClass)) + +typedef struct +{ + GObjectClass parent_class; +} NMAppletClass; + +#define APPLET_PREFS_SCHEMA "org.gnome.nm-applet" +#define PREF_DISABLE_CONNECTED_NOTIFICATIONS "disable-connected-notifications" +#define PREF_DISABLE_DISCONNECTED_NOTIFICATIONS "disable-disconnected-notifications" +#define PREF_DISABLE_VPN_NOTIFICATIONS "disable-vpn-notifications" +#define PREF_DISABLE_WIFI_CREATE "disable-wifi-create" +#define PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE "suppress-wireless-networks-available" +#define PREF_SHOW_APPLET "show-applet" + +#define ICON_LAYER_LINK 0 +#define ICON_LAYER_VPN 1 +#define ICON_LAYER_MAX ICON_LAYER_VPN + +typedef struct NMADeviceClass NMADeviceClass; + +/* + * Applet instance data + * + */ +typedef struct +{ + GObject parent_instance; + + GMainLoop *loop; + DBusGConnection *bus; + DBusGConnection *session_bus; + +#if GLIB_CHECK_VERSION(2,26,0) + NMShellWatcher *shell_watcher; +#endif + guint agent_start_id; + + NMClient *nm_client; + NMRemoteSettings *settings; + AppletAgent *agent; + + GSettings *gsettings; + + gboolean visible; + + /* Permissions */ + NMClientPermissionResult permissions[NM_CLIENT_PERMISSION_LAST + 1]; + + /* Device classes */ + NMADeviceClass *ethernet_class; + NMADeviceClass *wifi_class; + NMADeviceClass *gsm_class; + NMADeviceClass *cdma_class; + NMADeviceClass *bt_class; + NMADeviceClass *wimax_class; + + /* Data model elements */ + guint update_icon_id; + + GtkIconTheme * icon_theme; + GdkPixbuf * no_connection_icon; + GdkPixbuf * ethernet_icon; + GdkPixbuf * adhoc_icon; + GdkPixbuf * wwan_icon; + GdkPixbuf * wifi_00_icon; + GdkPixbuf * wifi_25_icon; + GdkPixbuf * wifi_50_icon; + GdkPixbuf * wifi_75_icon; + GdkPixbuf * wifi_100_icon; + GdkPixbuf * secure_lock_icon; +#define NUM_CONNECTING_STAGES 3 +#define NUM_CONNECTING_FRAMES 11 + GdkPixbuf * network_connecting_icons[NUM_CONNECTING_STAGES][NUM_CONNECTING_FRAMES]; +#define NUM_VPN_CONNECTING_FRAMES 14 + GdkPixbuf * vpn_connecting_icons[NUM_VPN_CONNECTING_FRAMES]; + GdkPixbuf * vpn_lock_icon; + GdkPixbuf * fallback_icon; + + /* Mobiel Broadband icons */ + GdkPixbuf * wwan_tower_icon; + GdkPixbuf * mb_tech_1x_icon; + GdkPixbuf * mb_tech_evdo_icon; + GdkPixbuf * mb_tech_gprs_icon; + GdkPixbuf * mb_tech_edge_icon; + GdkPixbuf * mb_tech_umts_icon; + GdkPixbuf * mb_tech_hspa_icon; + GdkPixbuf * mb_tech_lte_icon; + GdkPixbuf * mb_roaming_icon; + GdkPixbuf * mb_tech_3g_icon; + + /* Active status icon pixbufs */ + GdkPixbuf * icon_layers[ICON_LAYER_MAX + 1]; + + /* Animation stuff */ + int animation_step; + guint animation_id; + + /* Direct UI elements */ + GtkStatusIcon * status_icon; + int icon_size; + + GtkWidget * menu; + char * tip; + + GtkWidget * context_menu; + GtkWidget * networking_enabled_item; + guint networking_enabled_toggled_id; + GtkWidget * wifi_enabled_item; + guint wifi_enabled_toggled_id; + GtkWidget * wwan_enabled_item; + guint wwan_enabled_toggled_id; + GtkWidget * wimax_enabled_item; + guint wimax_enabled_toggled_id; + + GtkWidget * notifications_enabled_item; + guint notifications_enabled_toggled_id; + + GtkWidget * info_menu_item; + GtkWidget * connections_menu_item; + + GtkBuilder * info_dialog_ui; + NotifyNotification* notification; + + /* Tracker objects for secrets requests */ + GSList * secrets_reqs; + + gpointer notification_queue_data; + guint deferred_id; +} NMApplet; + +typedef void (*AppletNewAutoConnectionCallback) (NMConnection *connection, + gboolean created, + gboolean canceled, + gpointer user_data); + +typedef struct _SecretsRequest SecretsRequest; +typedef void (*SecretsRequestFreeFunc) (SecretsRequest *req); + +struct _SecretsRequest { + size_t totsize; + gpointer reqid; + char *setting_name; + char **hints; + guint32 flags; + NMApplet *applet; + AppletAgentSecretsCallback callback; + gpointer callback_data; + + NMConnection *connection; + + /* Class-specific stuff */ + SecretsRequestFreeFunc free_func; +}; + +void applet_secrets_request_set_free_func (SecretsRequest *req, + SecretsRequestFreeFunc free_func); +void applet_secrets_request_complete (SecretsRequest *req, + GHashTable *settings, + GError *error); +void applet_secrets_request_complete_setting (SecretsRequest *req, + const char *setting_name, + GError *error); +void applet_secrets_request_free (SecretsRequest *req); + +struct NMADeviceClass { + gboolean (*new_auto_connection) (NMDevice *device, + gpointer user_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data); + + void (*add_menu_item) (NMDevice *device, + guint32 num_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet); + + void (*device_added) (NMDevice *device, NMApplet *applet); + + void (*device_state_changed) (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet); + + /* Device class is expected to return a *referenced* pixbuf, which will + * be unrefed by the icon code. This allows the device class to create + * a composited pixbuf if necessary and pass the reference to the caller. + */ + GdkPixbuf * (*get_icon) (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet); + + size_t secrets_request_size; + gboolean (*get_secrets) (SecretsRequest *req, + GError **error); +}; + +GType nma_get_type (void); + +NMApplet *nm_applet_new (GMainLoop *loop); + +void applet_schedule_update_icon (NMApplet *applet); + +NMRemoteSettings *applet_get_settings (NMApplet *applet); + +GSList *applet_get_all_connections (NMApplet *applet); + +gboolean nma_menu_device_check_unusable (NMDevice *device); + +GtkWidget * nma_menu_device_get_menu_item (NMDevice *device, + NMApplet *applet, + const char *unavailable_msg); + +void applet_menu_item_activate_helper (NMDevice *device, + NMConnection *connection, + const char *specific_object, + NMApplet *applet, + gpointer dclass_data); + +void applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet); + +void applet_menu_item_add_complex_separator_helper (GtkWidget *menu, + NMApplet *applet, + const gchar* label, + int pos); + +GtkWidget* +applet_menu_item_create_device_item_helper (NMDevice *device, + NMApplet *applet, + const gchar *text); + +NMRemoteConnection *applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet); + +NMDevice *applet_get_device_for_connection (NMApplet *applet, NMConnection *connection); + +void applet_do_notify (NMApplet *applet, + NotifyUrgency urgency, + const char *summary, + const char *message, + const char *icon, + const char *action1, + const char *action1_label, + NotifyActionCallback action1_cb, + gpointer action1_user_data); + +void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref); + +NMConnection * applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, + NMActiveConnection **out_active); + +GtkWidget * applet_new_menu_item_helper (NMConnection *connection, + NMConnection *active, + gboolean add_active); + +GdkPixbuf * nma_icon_check_and_load (const char *name, + GdkPixbuf **icon, + NMApplet *applet); + +gboolean applet_wifi_connect_to_hidden_network (NMApplet *applet); +gboolean applet_wifi_connect_to_8021x_network (NMApplet *applet, + NMDevice *device, + NMAccessPoint *ap); +gboolean applet_wifi_create_wifi_network (NMApplet *applet); +gboolean applet_wifi_can_create_wifi_network (NMApplet *applet); + +#endif diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/gconf-helpers/Makefile.am network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/gconf-helpers/Makefile.am --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/gconf-helpers/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/gconf-helpers/Makefile.am 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,46 @@ +SUBDIRS=. tests + +noinst_LTLIBRARIES = \ + libgconf-helpers.la \ + libgconf-helpers-test.la + +HELPERS_SOURCES = \ + gconf-helpers.h \ + gconf-helpers.c \ + gconf-upgrade.h \ + gconf-upgrade.c + +libgconf_helpers_la_SOURCES = $(HELPERS_SOURCES) + +libgconf_helpers_la_CPPFLAGS = \ + -I$(top_srcdir)/src/utils \ + $(GTK_CFLAGS) \ + $(NMA_CFLAGS) \ + $(GCONF_CFLAGS) \ + $(GNOME_KEYRING_CFLAGS) \ + $(DISABLE_DEPRECATED) + +libgconf_helpers_la_LIBADD = \ + $(GTK_LIBS) \ + $(NMA_LIBS) \ + $(GCONF_LIBS) \ + $(GNOME_KEYRING_LIBS) + +######################### +# Test library +######################### + +libgconf_helpers_test_la_SOURCES = $(HELPERS_SOURCES) + +libgconf_helpers_test_la_CPPFLAGS = \ + -I$(top_srcdir)/src/utils \ + $(GTK_CFLAGS) \ + $(NMA_CFLAGS) \ + $(GCONF_CFLAGS) \ + $(GNOME_KEYRING_CFLAGS) \ + $(DISABLE_DEPRECATED) + +# no keyring or gconf libs since we'll override them +libgconf_helpers_test_la_LIBADD = \ + $(NMA_LIBS) + diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/mb-menu-item.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/mb-menu-item.c --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/mb-menu-item.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/mb-menu-item.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,252 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* ap-menu-item.c - Class to represent a Wifi access point + * + * Jonathan Blandford + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2005 - 2010 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include + +#include "mb-menu-item.h" + +G_DEFINE_TYPE (NMMbMenuItem, nm_mb_menu_item, GTK_TYPE_IMAGE_MENU_ITEM); + +#define NM_MB_MENU_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_MB_MENU_ITEM, NMMbMenuItemPrivate)) + +typedef struct { + GtkWidget *desc; + char *desc_string; + GtkWidget *strength; + guint32 int_strength; + GtkWidget *detail; + GtkWidget *hbox; + + gboolean destroyed; +} NMMbMenuItemPrivate; + +static const char * +get_tech_name (guint32 tech) +{ + switch (tech) { + case MB_TECH_1XRTT: + return _("CDMA"); + case MB_TECH_EVDO_REV0: + case MB_TECH_EVDO_REVA: + return _("EVDO"); + case MB_TECH_GSM: + return _("GSM"); + case MB_TECH_GPRS: + return _("GPRS"); + case MB_TECH_EDGE: + return _("EDGE"); + case MB_TECH_UMTS: + return _("UMTS"); + case MB_TECH_HSDPA: + return _("HSDPA"); + case MB_TECH_HSUPA: + return _("HSUPA"); + case MB_TECH_HSPA: + return _("HSPA"); + case MB_TECH_HSPA_PLUS: + return _("HSPA+"); + case MB_TECH_WIMAX: + return _("WiMAX"); + case MB_TECH_LTE: + return _("LTE"); + default: + break; + } + return NULL; +} + +GtkWidget * +nm_mb_menu_item_new (const char *connection_name, + guint32 strength, + const char *provider, + gboolean active, + guint32 technology, + guint32 state, + gboolean enabled, + NMApplet *applet) +{ + NMMbMenuItem *item; + NMMbMenuItemPrivate *priv; + const char *tech_name = NULL; + + item = g_object_new (NM_TYPE_MB_MENU_ITEM, NULL); + if (!item) + return NULL; + + priv = NM_MB_MENU_ITEM_GET_PRIVATE (item); + priv->int_strength = strength; + + /* WiMAX doesn't show tech name */ + if (technology != MB_TECH_WIMAX) + tech_name = get_tech_name (technology); + + /* Construct the description string */ + switch (state) { + default: + case MB_STATE_UNKNOWN: + priv->desc_string = g_strdup (_("not enabled")); + break; + case MB_STATE_IDLE: + if (connection_name) + priv->desc_string = g_strdup (connection_name); + else + priv->desc_string = g_strdup (_("not registered")); + break; + case MB_STATE_HOME: + if (connection_name) { + if (provider && tech_name) + priv->desc_string = g_strdup_printf ("%s (%s %s)", connection_name, provider, tech_name); + else if (provider || tech_name) + priv->desc_string = g_strdup_printf ("%s (%s)", connection_name, provider ? provider : tech_name); + else + priv->desc_string = g_strdup_printf ("%s", connection_name); + } else { + if (provider) { + if (tech_name) + priv->desc_string = g_strdup_printf ("%s %s", provider, tech_name); + else + priv->desc_string = g_strdup_printf ("%s", provider); + } else { + if (tech_name) + priv->desc_string = g_strdup_printf (_("Home network (%s)"), tech_name); + else + priv->desc_string = g_strdup_printf (_("Home network")); + } + } + break; + case MB_STATE_SEARCHING: + if (connection_name) + priv->desc_string = g_strdup (connection_name); + else + priv->desc_string = g_strdup (_("searching")); + break; + case MB_STATE_DENIED: + priv->desc_string = g_strdup (_("registration denied")); + break; + case MB_STATE_ROAMING: + if (connection_name) { + if (tech_name) + priv->desc_string = g_strdup_printf (_("%s (%s roaming)"), connection_name, tech_name); + else + priv->desc_string = g_strdup_printf (_("%s (roaming)"), connection_name); + } else { + if (provider) { + if (tech_name) + priv->desc_string = g_strdup_printf (_("%s (%s roaming)"), provider, tech_name); + else + priv->desc_string = g_strdup_printf (_("%s (roaming)"), provider); + } else { + if (tech_name) + priv->desc_string = g_strdup_printf (_("Roaming network (%s)"), tech_name); + else + priv->desc_string = g_strdup_printf (_("Roaming network")); + } + } + break; + } + + if (enabled && connection_name && active) { + char *markup; + + gtk_label_set_use_markup (GTK_LABEL (priv->desc), TRUE); + markup = g_markup_printf_escaped ("%s", priv->desc_string); + gtk_label_set_markup (GTK_LABEL (priv->desc), markup); + g_free (markup); + } else { + /* Disconnected and disabled states */ + gtk_label_set_use_markup (GTK_LABEL (priv->desc), FALSE); + gtk_label_set_text (GTK_LABEL (priv->desc), priv->desc_string); + } + + /* And the strength icon, if we have strength information at all */ + if (enabled && strength) { + gtk_image_set_from_pixbuf (GTK_IMAGE (priv->strength), + mobile_helper_get_quality_icon (strength, applet)); + } + + return GTK_WIDGET (item); +} + +/*******************************************************/ + +static void +nm_mb_menu_item_init (NMMbMenuItem *self) +{ + NMMbMenuItemPrivate *priv = NM_MB_MENU_ITEM_GET_PRIVATE (self); + +#if GTK_CHECK_VERSION(3,1,6) + priv->hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); +#else + priv->hbox = gtk_hbox_new (FALSE, 6); +#endif + priv->desc = gtk_label_new (NULL); + gtk_misc_set_alignment (GTK_MISC (priv->desc), 0.0, 0.5); + + gtk_container_add (GTK_CONTAINER (self), priv->hbox); + gtk_box_pack_start (GTK_BOX (priv->hbox), priv->desc, TRUE, TRUE, 0); + + priv->strength = gtk_image_new (); + gtk_box_pack_end (GTK_BOX (priv->hbox), priv->strength, FALSE, TRUE, 0); + + gtk_widget_show (priv->desc); + gtk_widget_show (priv->strength); + gtk_widget_show (priv->hbox); +} + +static void +dispose (GObject *object) +{ + NMMbMenuItem *self = NM_MB_MENU_ITEM (object); + NMMbMenuItemPrivate *priv = NM_MB_MENU_ITEM_GET_PRIVATE (self); + + if (priv->destroyed) { + G_OBJECT_CLASS (nm_mb_menu_item_parent_class)->dispose (object); + return; + } + priv->destroyed = TRUE; + + gtk_widget_destroy (priv->desc); + gtk_widget_destroy (priv->strength); + gtk_widget_destroy (priv->hbox); + g_free (priv->desc_string); + + G_OBJECT_CLASS (nm_mb_menu_item_parent_class)->dispose (object); +} + +static void +nm_mb_menu_item_class_init (NMMbMenuItemClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (NMMbMenuItemPrivate)); + + /* virtual methods */ + object_class->dispose = dispose; +} + diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/mobile-helpers.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/mobile-helpers.c --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/mobile-helpers.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/mobile-helpers.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,129 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2010 Red Hat, Inc. + */ + +#include "mobile-helpers.h" + +GdkPixbuf * +mobile_helper_get_status_pixbuf (guint32 quality, + gboolean quality_valid, + guint32 state, + guint32 access_tech, + NMApplet *applet) +{ + GdkPixbuf *pixbuf, *qual_pixbuf, *wwan_pixbuf, *tmp; + + wwan_pixbuf = nma_icon_check_and_load ("nm-wwan-tower", &applet->wwan_tower_icon, applet); + + if (!quality_valid) + quality = 0; + qual_pixbuf = mobile_helper_get_quality_icon (quality, applet); + + pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, + TRUE, + gdk_pixbuf_get_bits_per_sample (qual_pixbuf), + gdk_pixbuf_get_width (qual_pixbuf), + gdk_pixbuf_get_height (qual_pixbuf)); + gdk_pixbuf_fill (pixbuf, 0xFFFFFF00); + + /* Composite the tower icon into the final icon at the bottom layer */ + gdk_pixbuf_composite (wwan_pixbuf, pixbuf, + 0, 0, + gdk_pixbuf_get_width (wwan_pixbuf), + gdk_pixbuf_get_height (wwan_pixbuf), + 0, 0, 1.0, 1.0, + GDK_INTERP_BILINEAR, 255); + + /* Composite the signal quality onto the icon on top of the WWAN tower */ + gdk_pixbuf_composite (qual_pixbuf, pixbuf, + 0, 0, + gdk_pixbuf_get_width (qual_pixbuf), + gdk_pixbuf_get_height (qual_pixbuf), + 0, 0, 1.0, 1.0, + GDK_INTERP_BILINEAR, 255); + + /* And finally the roaming or technology icon */ + if (state == MB_STATE_ROAMING) { + tmp = nma_icon_check_and_load ("nm-mb-roam", &applet->mb_roaming_icon, applet); + gdk_pixbuf_composite (tmp, pixbuf, 0, 0, + gdk_pixbuf_get_width (tmp), + gdk_pixbuf_get_height (tmp), + 0, 0, 1.0, 1.0, + GDK_INTERP_BILINEAR, 255); + } else { + tmp = mobile_helper_get_tech_icon (access_tech, applet); + if (tmp) { + gdk_pixbuf_composite (tmp, pixbuf, 0, 0, + gdk_pixbuf_get_width (tmp), + gdk_pixbuf_get_height (tmp), + 0, 0, 1.0, 1.0, + GDK_INTERP_BILINEAR, 255); + } + } + + /* 'pixbuf' will be freed by the caller */ + return pixbuf; +} + +GdkPixbuf * +mobile_helper_get_quality_icon (guint32 quality, NMApplet *applet) +{ + if (quality > 80) + return nma_icon_check_and_load ("nm-signal-100", &applet->wifi_100_icon, applet); + else if (quality > 55) + return nma_icon_check_and_load ("nm-signal-75", &applet->wifi_75_icon, applet); + else if (quality > 30) + return nma_icon_check_and_load ("nm-signal-50", &applet->wifi_50_icon, applet); + else if (quality > 5) + return nma_icon_check_and_load ("nm-signal-25", &applet->wifi_25_icon, applet); + + return nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); +} + +GdkPixbuf * +mobile_helper_get_tech_icon (guint32 tech, NMApplet *applet) +{ + switch (tech) { + case MB_TECH_1XRTT: + return nma_icon_check_and_load ("nm-tech-cdma-1x", &applet->mb_tech_1x_icon, applet); + case MB_TECH_EVDO_REV0: + case MB_TECH_EVDO_REVA: + return nma_icon_check_and_load ("nm-tech-evdo", &applet->mb_tech_evdo_icon, applet); + case MB_TECH_GSM: + case MB_TECH_GPRS: + return nma_icon_check_and_load ("nm-tech-gprs", &applet->mb_tech_gprs_icon, applet); + case MB_TECH_EDGE: + return nma_icon_check_and_load ("nm-tech-edge", &applet->mb_tech_edge_icon, applet); + case MB_TECH_UMTS: + return nma_icon_check_and_load ("nm-tech-umts", &applet->mb_tech_umts_icon, applet); + case MB_TECH_HSDPA: + case MB_TECH_HSUPA: + case MB_TECH_HSPA: + case MB_TECH_HSPA_PLUS: + return nma_icon_check_and_load ("nm-tech-hspa", &applet->mb_tech_hspa_icon, applet); + case MB_TECH_LTE: + return nma_icon_check_and_load ("nm-tech-lte", &applet->mb_tech_lte_icon, applet); + case MB_TECH_WIMAX: + default: + return NULL; + } +} + diff -Nru network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/mobile-helpers.h network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/mobile-helpers.h --- network-manager-applet-0.9.4.1/.pc/nm-applet-use-indicator.patch/src/mobile-helpers.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/nm-applet-use-indicator.patch/src/mobile-helpers.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,66 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2010 Red Hat, Inc. + */ + +#ifndef APPLET_MOBILE_HELPERS_H +#define APPLET_MOBILE_HELPERS_H + +#include +#include "applet.h" + +enum { + MB_STATE_UNKNOWN = 0, + MB_STATE_IDLE, + MB_STATE_HOME, + MB_STATE_SEARCHING, + MB_STATE_DENIED, + MB_STATE_ROAMING +}; + +enum { + MB_TECH_UNKNOWN = 0, + MB_TECH_1XRTT, + MB_TECH_EVDO_REV0, + MB_TECH_EVDO_REVA, + MB_TECH_GSM, + MB_TECH_GPRS, + MB_TECH_EDGE, + MB_TECH_UMTS, + MB_TECH_HSDPA, + MB_TECH_HSUPA, + MB_TECH_HSPA, + MB_TECH_HSPA_PLUS, + MB_TECH_LTE, + MB_TECH_WIMAX, +}; + +GdkPixbuf *mobile_helper_get_status_pixbuf (guint32 quality, + gboolean quality_valid, + guint32 state, + guint32 access_tech, + NMApplet *applet); + +GdkPixbuf *mobile_helper_get_quality_icon (guint32 quality, NMApplet *applet); + +GdkPixbuf *mobile_helper_get_tech_icon (guint32 tech, NMApplet *applet); + +#endif /* APPLET_MOBILE_HELPERS_H */ + diff -Nru network-manager-applet-0.9.4.1/.pc/position_dialogs_to_center_of_the_screen.patch/src/applet-dialogs.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/position_dialogs_to_center_of_the_screen.patch/src/applet-dialogs.c --- network-manager-applet-0.9.4.1/.pc/position_dialogs_to_center_of_the_screen.patch/src/applet-dialogs.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/position_dialogs_to_center_of_the_screen.patch/src/applet-dialogs.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1468 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2011 Red Hat, Inc. + */ + +#include "config.h" + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "applet-dialogs.h" + + +static void +info_dialog_show_error (const char *err) +{ + GtkWidget *dialog; + + dialog = gtk_message_dialog_new_with_markup (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, + "%s\n\n%s", _("Error displaying connection information:"), err); + gtk_window_present (GTK_WINDOW (dialog)); + g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); +} + +static char * +ip4_address_as_string (guint32 ip) +{ + char *ip_string; + struct in_addr tmp_addr; + + tmp_addr.s_addr = ip; + ip_string = g_malloc0 (INET_ADDRSTRLEN + 1); + if (!inet_ntop (AF_INET, &tmp_addr, ip_string, INET_ADDRSTRLEN)) + strcpy (ip_string, "(none)"); + return ip_string; +} + +static gchar * +ip6_address_as_string (const struct in6_addr *ip) +{ + char buf[INET6_ADDRSTRLEN]; + + memset (&buf, '\0', sizeof (buf)); + + if (inet_ntop (AF_INET6, ip, buf, INET6_ADDRSTRLEN)) { + return g_strdup (buf); + } else { + int j; + GString *ip6_str = g_string_new (NULL); + g_string_append_printf (ip6_str, "%02X", ip->s6_addr[0]); + for (j = 1; j < 16; j++) + g_string_append_printf (ip6_str, " %02X", ip->s6_addr[j]); + g_warning ("%s: error converting IP6 address %s", __func__, ip6_str->str); + g_string_free (ip6_str, TRUE); + return NULL; + } +} + +static char * +get_eap_label (NMSettingWirelessSecurity *sec, + NMSetting8021x *s_8021x) +{ + GString *str = NULL; + char *phase2_str = NULL; + + if (sec) { + const char *key_mgmt = nm_setting_wireless_security_get_key_mgmt (sec); + const char *auth_alg = nm_setting_wireless_security_get_auth_alg (sec); + + if (!strcmp (key_mgmt, "ieee8021x")) { + if (auth_alg && !strcmp (auth_alg, "leap")) + str = g_string_new (_("LEAP")); + else + str = g_string_new (_("Dynamic WEP")); + } else if (!strcmp (key_mgmt, "wpa-eap")) + str = g_string_new (_("WPA/WPA2")); + else + return NULL; + } else if (s_8021x) + str = g_string_new ("802.1x"); + + if (!s_8021x) + goto out; + + if (nm_setting_802_1x_get_num_eap_methods (s_8021x)) { + char *eap_str = g_ascii_strup (nm_setting_802_1x_get_eap_method (s_8021x, 0), -1); + g_string_append_printf (str, ", EAP-%s", eap_str); + g_free (eap_str); + } + + if (nm_setting_802_1x_get_phase2_auth (s_8021x)) + phase2_str = g_ascii_strup (nm_setting_802_1x_get_phase2_auth (s_8021x), -1); + else if (nm_setting_802_1x_get_phase2_autheap (s_8021x)) + phase2_str = g_ascii_strup (nm_setting_802_1x_get_phase2_autheap (s_8021x), -1); + + if (phase2_str) { + g_string_append (str, ", "); + g_string_append (str, phase2_str); + g_free (phase2_str); + } + +out: + return g_string_free (str, FALSE); +} + +static NMConnection * +get_connection_for_active (NMApplet *applet, NMActiveConnection *active) +{ + GSList *list, *iter; + NMConnection *connection = NULL; + const char *path; + + path = nm_active_connection_get_connection (active); + g_return_val_if_fail (path != NULL, NULL); + + list = applet_get_all_connections (applet); + for (iter = list; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + if (!strcmp (nm_connection_get_path (candidate), path)) { + connection = candidate; + break; + } + } + g_slist_free (list); + + return connection; +} + +static NMConnection * +get_connection_for_active_path (NMApplet *applet, const char *active_path) +{ + NMActiveConnection *active = NULL; + const GPtrArray *connections; + int i; + + if (active_path == NULL) + return NULL; + + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *candidate = g_ptr_array_index (connections, i); + const char *ac_path = nm_object_get_path (NM_OBJECT (candidate)); + + if (g_strcmp0 (ac_path, active_path) == 0) { + active = candidate; + break; + } + } + + return active ? get_connection_for_active (applet, active) : NULL; +} + +static GtkWidget * +create_info_label (const char *text, gboolean selectable) +{ + GtkWidget *label; + + label = gtk_label_new (text ? text : ""); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0); + gtk_label_set_selectable (GTK_LABEL (label), selectable); + return label; +} + +static GtkWidget * +create_info_group_label (const char *text, gboolean selectable) +{ + GtkWidget *label; + char *markup; + + label = create_info_label (NULL, selectable); + markup = g_markup_printf_escaped ("%s", text); + gtk_label_set_markup (GTK_LABEL (label), markup); + g_free (markup); + + return label; +} + +static GtkWidget * +create_info_label_security (NMConnection *connection) +{ + NMSettingConnection *s_con; + char *label = NULL; + GtkWidget *w = NULL; + const char *connection_type; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + connection_type = nm_setting_connection_get_connection_type (s_con); + if (!strcmp (connection_type, NM_SETTING_WIRELESS_SETTING_NAME)) { + NMSettingWireless *s_wireless; + NMSettingWirelessSecurity *s_wireless_sec; + NMSetting8021x *s_8021x; + const char *security; + + s_wireless = nm_connection_get_setting_wireless (connection); + s_wireless_sec = nm_connection_get_setting_wireless_security (connection); + s_8021x = nm_connection_get_setting_802_1x (connection); + security = s_wireless ? nm_setting_wireless_get_security (s_wireless) : NULL; + + if (security && !strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME) && s_wireless_sec) { + const char *key_mgmt = nm_setting_wireless_security_get_key_mgmt (s_wireless_sec); + + if (!strcmp (key_mgmt, "none")) + label = g_strdup (_("WEP")); + else if (!strcmp (key_mgmt, "wpa-none")) + label = g_strdup (_("WPA/WPA2")); + else if (!strcmp (key_mgmt, "wpa-psk")) + label = g_strdup (_("WPA/WPA2")); + else + label = get_eap_label (s_wireless_sec, s_8021x); + } else { + label = g_strdup (C_("Wifi/wired security", "None")); + } + } else if (!strcmp (connection_type, NM_SETTING_WIRED_SETTING_NAME)) { + NMSetting8021x *s_8021x; + + s_8021x = nm_connection_get_setting_802_1x (connection); + if (s_8021x) + label = get_eap_label (NULL, s_8021x); + else + label = g_strdup (C_("Wifi/wired security", "None")); + } + + if (label) + w = create_info_label (label, TRUE); + g_free (label); + + return w; +} + +static GtkWidget * +create_info_notebook_label (NMConnection *connection, gboolean is_default) +{ + GtkWidget *label; + char *str; + + if (is_default) { + str = g_strdup_printf (_("%s (default)"), nm_connection_get_id (connection)); + label = gtk_label_new (str); + g_free (str); + } else + label = gtk_label_new (nm_connection_get_id (connection)); + + return label; +} + +typedef struct { + NMDevice *device; + GtkWidget *label; + guint32 id; +} LabelInfo; + +static void +device_destroyed (gpointer data, GObject *device_ptr) +{ + LabelInfo *info = data; + + /* Device is destroyed, notify handler won't fire + * anymore anyway. Let the label destroy handler + * know it doesn't have to disconnect the callback. + */ + info->device = NULL; + info->id = 0; +} + +static void +label_destroyed (gpointer data, GObject *label_ptr) +{ + LabelInfo *info = data; + + /* Remove the notify handler from the device */ + if (info->device) { + if (info->id) + g_signal_handler_disconnect (info->device, info->id); + /* destroy our info data */ + g_object_weak_unref (G_OBJECT (info->device), device_destroyed, info); + memset (info, 0, sizeof (LabelInfo)); + g_free (info); + } +} + +static void +label_info_new (NMDevice *device, + GtkWidget *label, + const char *notify_prop, + GCallback callback) +{ + LabelInfo *info; + + info = g_malloc0 (sizeof (LabelInfo)); + info->device = device; + info->label = label; + info->id = g_signal_connect (device, notify_prop, callback, label); + g_object_weak_ref (G_OBJECT (label), label_destroyed, info); + g_object_weak_ref (G_OBJECT (device), device_destroyed, info); +} + +static void +bitrate_changed_cb (GObject *device, GParamSpec *pspec, gpointer user_data) +{ + GtkWidget *speed_label = GTK_WIDGET (user_data); + guint32 bitrate = 0; + char *str = NULL; + + bitrate = nm_device_wifi_get_bitrate (NM_DEVICE_WIFI (device)) / 1000; + if (bitrate) + str = g_strdup_printf (_("%u Mb/s"), bitrate); + + gtk_label_set_text (GTK_LABEL (speed_label), str ? str : C_("Speed", "Unknown")); + g_free (str); +} + +static void +wimax_cinr_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data) +{ + GtkWidget *label = GTK_WIDGET (user_data); + gint cinr; + char *str = NULL; + + cinr = nm_device_wimax_get_cinr (NM_DEVICE_WIMAX (device)); + if (cinr) + str = g_strdup_printf (_("%d dB"), cinr); + + gtk_label_set_text (GTK_LABEL (label), str ? str : C_("WiMAX CINR", "unknown")); + g_free (str); +} + +static void +wimax_bsid_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data) +{ + GtkWidget *label = GTK_WIDGET (user_data); + const char *str = NULL; + + str = nm_device_wimax_get_bsid (NM_DEVICE_WIMAX (device)); + if (!str) + str = C_("WiMAX Base Station ID", "unknown"); + gtk_label_set_text (GTK_LABEL (label), str); +} + +static void +info_dialog_add_page (GtkNotebook *notebook, + NMConnection *connection, + gboolean is_default, + NMDevice *device) +{ + GtkTable *table; + guint32 speed = 0; + char *str; + const char *iface, *method = NULL; + NMIP4Config *ip4_config; + NMIP6Config *ip6_config; + const GArray *dns; + const GSList *dns6; + NMIP4Address *def_addr = NULL; + NMIP6Address *def6_addr = NULL; + NMSettingIP6Config *s_ip6; + guint32 hostmask, network, bcast, netmask; + int i, row = 0; + GtkWidget* speed_label, *sec_label = NULL; + const GSList *addresses; + gboolean show_security = FALSE; + + table = GTK_TABLE (gtk_table_new (12, 2, FALSE)); + gtk_table_set_col_spacings (table, 12); + gtk_table_set_row_spacings (table, 6); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); + + /* Interface */ + iface = nm_device_get_iface (device); + if (NM_IS_DEVICE_ETHERNET (device)) { + str = g_strdup_printf (_("Ethernet (%s)"), iface); + show_security = TRUE; + } else if (NM_IS_DEVICE_WIFI (device)) { + str = g_strdup_printf (_("802.11 WiFi (%s)"), iface); + show_security = TRUE; + } else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + str = g_strdup_printf (_("GSM (%s)"), iface); + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + str = g_strdup_printf (_("CDMA (%s)"), iface); + else + str = g_strdup_printf (_("Mobile Broadband (%s)"), iface); + } else if (NM_IS_DEVICE_WIMAX (device)) + str = g_strdup_printf (_("WiMAX (%s)"), iface); + else + str = g_strdup (iface); + + + /*--- General ---*/ + gtk_table_attach (table, create_info_group_label (_("General"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + gtk_table_attach (table, create_info_label (_("Interface:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Hardware address */ + str = NULL; + if (NM_IS_DEVICE_ETHERNET (device)) + str = g_strdup (nm_device_ethernet_get_hw_address (NM_DEVICE_ETHERNET (device))); + else if (NM_IS_DEVICE_WIFI (device)) + str = g_strdup (nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (device))); + else if (NM_IS_DEVICE_WIMAX (device)) + str = g_strdup (nm_device_wimax_get_hw_address (NM_DEVICE_WIMAX (device))); + + gtk_table_attach (table, create_info_label (_("Hardware Address:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Driver */ + gtk_table_attach (table, create_info_label (_("Driver:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (nm_device_get_driver (device), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + speed_label = create_info_label ("", TRUE); + + /* Speed */ + str = NULL; + if (NM_IS_DEVICE_ETHERNET (device)) { + /* Ethernet speed in Mb/s */ + speed = nm_device_ethernet_get_speed (NM_DEVICE_ETHERNET (device)); + } else if (NM_IS_DEVICE_WIFI (device)) { + /* Wi-Fi speed in Kb/s */ + speed = nm_device_wifi_get_bitrate (NM_DEVICE_WIFI (device)) / 1000; + + label_info_new (device, + speed_label, + "notify::" NM_DEVICE_WIFI_BITRATE, + G_CALLBACK (bitrate_changed_cb)); + } + + if (speed) + str = g_strdup_printf (_("%u Mb/s"), speed); + + gtk_label_set_text (GTK_LABEL(speed_label), str ? str : C_("Speed", "Unknown")); + g_free (str); + + gtk_table_attach (table, create_info_label (_("Speed:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, speed_label, + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + /* Security */ + if (show_security) { + sec_label = create_info_label_security (connection); + if (sec_label) { + gtk_table_attach (table, create_info_label (_("Security:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, sec_label, + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + } + } + + if (NM_IS_DEVICE_WIMAX (device)) { + GtkWidget *bsid_label, *cinr_label; + + /* CINR */ + cinr_label = create_info_label ("", TRUE); + gtk_table_attach (table, create_info_label (_("CINR:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, cinr_label, + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + label_info_new (device, + cinr_label, + "notify::" NM_DEVICE_WIMAX_CINR, + G_CALLBACK (wimax_cinr_changed_cb)); + wimax_cinr_changed_cb (device, NULL, cinr_label); + row++; + + /* Base Station ID */ + bsid_label = create_info_label ("", TRUE); + gtk_table_attach (table, create_info_label (_("BSID:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, bsid_label, + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + label_info_new (device, + bsid_label, + "notify::" NM_DEVICE_WIMAX_BSID, + G_CALLBACK (wimax_bsid_changed_cb)); + wimax_bsid_changed_cb (device, NULL, bsid_label); + row++; + } + + /* Empty line */ + gtk_table_attach (table, gtk_label_new (""), 0, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + /*--- IPv4 ---*/ + gtk_table_attach (table, create_info_group_label (_("IPv4"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + + row++; + + ip4_config = nm_device_get_ip4_config (device); + addresses = nm_ip4_config_get_addresses (ip4_config); + if (g_slist_length ((GSList *) addresses)) + def_addr = addresses->data; + + /* Address */ + gtk_table_attach (table, create_info_label (_("IP Address:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = def_addr ? ip4_address_as_string (nm_ip4_address_get_address (def_addr)) : g_strdup (C_("Address", "Unknown")); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Broadcast */ + if (def_addr) { + netmask = nm_utils_ip4_prefix_to_netmask (nm_ip4_address_get_prefix (def_addr)); + network = ntohl (nm_ip4_address_get_address (def_addr)) & ntohl (netmask); + hostmask = ~ntohl (netmask); + bcast = htonl (network | hostmask); + } + + gtk_table_attach (table, create_info_label (_("Broadcast Address:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = def_addr ? ip4_address_as_string (bcast) : g_strdup (C_("Address", "Unknown")); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Prefix */ + gtk_table_attach (table, create_info_label (_("Subnet Mask:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = def_addr ? ip4_address_as_string (netmask) : g_strdup (C_("Subnet Mask", "Unknown")); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + /* Gateway */ + if (def_addr && nm_ip4_address_get_gateway (def_addr)) { + gtk_table_attach (table, create_info_label (_("Default Route:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip4_address_as_string (nm_ip4_address_get_gateway (def_addr)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + /* DNS */ + dns = def_addr ? nm_ip4_config_get_nameservers (ip4_config) : NULL; + if (dns && dns->len) { + gtk_table_attach (table, create_info_label (_("Primary DNS:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip4_address_as_string (g_array_index (dns, guint32, 0)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + if (dns->len > 1) { + gtk_table_attach (table, create_info_label (_("Secondary DNS:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip4_address_as_string (g_array_index (dns, guint32, 1)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + if (dns->len > 2) { + gtk_table_attach (table, create_info_label (_("Ternary DNS:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip4_address_as_string (g_array_index (dns, guint32, 2)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + } + + /* Empty line */ + gtk_table_attach (table, gtk_label_new (""), 0, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + /*--- IPv6 ---*/ + gtk_table_attach (table, create_info_group_label (_("IPv6"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + s_ip6 = nm_connection_get_setting_ip6_config (connection); + if (s_ip6) + method = nm_setting_ip6_config_get_method (s_ip6); + + if (method && !strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE)) { + gtk_table_attach (table, create_info_label (_("Ignored"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + } + + ip6_config = nm_device_get_ip6_config (device); + if (ip6_config) { + addresses = nm_ip6_config_get_addresses (ip6_config); + if (g_slist_length ((GSList *) addresses)) + def6_addr = addresses->data; + } + + /* Address */ + if (def6_addr) { + char *tmp_addr; + guint32 prefix; + + gtk_table_attach (table, create_info_label (_("IP Address:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + tmp_addr = ip6_address_as_string (nm_ip6_address_get_address (def6_addr)); + prefix = nm_ip6_address_get_prefix (def6_addr); + str = g_strdup_printf ("%s/%d", tmp_addr, prefix); + g_free (tmp_addr); + + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + /* Gateway */ + if (def6_addr && nm_ip6_address_get_gateway (def6_addr)) { + gtk_table_attach (table, create_info_label (_("Default Route:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip6_address_as_string (nm_ip6_address_get_gateway (def6_addr)); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + /* DNS */ + dns6 = def6_addr ? nm_ip6_config_get_nameservers (ip6_config) : NULL; + + for (i = 0; dns6 && i < 3 ; dns6 = g_slist_next (dns6), i++) { + char *label[] = { "Primary DNS:", "Secondary DNS:", "Ternary DNS:" }; + + gtk_table_attach (table, create_info_label (_(label[i]), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + str = ip6_address_as_string (dns6->data); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + } + + gtk_notebook_append_page (notebook, GTK_WIDGET (table), + create_info_notebook_label (connection, is_default)); + + gtk_widget_show_all (GTK_WIDGET (table)); +} + +static char * +get_vpn_connection_type (NMConnection *connection) +{ + const char *type, *p; + + /* The service type is in format of "org.freedesktop.NetworkManager.vpnc". + * Extract end part after last dot, e.g. "vpnc" */ + type = nm_setting_vpn_get_service_type (nm_connection_get_setting_vpn (connection)); + p = strrchr (type, '.'); + return g_strdup (p ? p + 1 : type); +} + +/* VPN parameters can be found at: + * http://git.gnome.org/browse/network-manager-openvpn/tree/src/nm-openvpn-service.h + * http://git.gnome.org/browse/network-manager-vpnc/tree/src/nm-vpnc-service.h + * http://git.gnome.org/browse/network-manager-pptp/tree/src/nm-pptp-service.h + * http://git.gnome.org/browse/network-manager-openconnect/tree/src/nm-openconnect-service.h + * http://git.gnome.org/browse/network-manager-openswan/tree/src/nm-openswan-service.h + * See also 'properties' directory in these plugins. + */ +static const gchar * +find_vpn_gateway_key (const char *vpn_type) +{ + if (g_strcmp0 (vpn_type, "openvpn") == 0) return "remote"; + if (g_strcmp0 (vpn_type, "vpnc") == 0) return "IPSec gateway"; + if (g_strcmp0 (vpn_type, "pptp") == 0) return "gateway"; + if (g_strcmp0 (vpn_type, "openconnect") == 0) return "gateway"; + if (g_strcmp0 (vpn_type, "openswan") == 0) return "right"; + return ""; +} + +static const gchar * +find_vpn_username_key (const char *vpn_type) +{ + if (g_strcmp0 (vpn_type, "openvpn") == 0) return "username"; + if (g_strcmp0 (vpn_type, "vpnc") == 0) return "Xauth username"; + if (g_strcmp0 (vpn_type, "pptp") == 0) return "user"; + if (g_strcmp0 (vpn_type, "openconnect") == 0) return "username"; + if (g_strcmp0 (vpn_type, "openswan") == 0) return "leftxauthusername"; + return ""; +} + +enum VpnDataItem { + VPN_DATA_ITEM_GATEWAY, + VPN_DATA_ITEM_USERNAME +}; + +static const gchar * +get_vpn_data_item (NMConnection *connection, enum VpnDataItem vpn_data_item) +{ + const char *key; + char *type = get_vpn_connection_type (connection); + + switch (vpn_data_item) { + case VPN_DATA_ITEM_GATEWAY: + key = find_vpn_gateway_key (type); + break; + case VPN_DATA_ITEM_USERNAME: + key = find_vpn_username_key (type); + break; + default: + key = ""; + break; + } + g_free (type); + + return nm_setting_vpn_get_data_item (nm_connection_get_setting_vpn (connection), key); +} + +static void +info_dialog_add_page_for_vpn (GtkNotebook *notebook, + NMConnection *connection, + NMActiveConnection *active, + NMConnection *parent_con) +{ + GtkTable *table; + char *str; + int row = 0; + gboolean is_default = nm_active_connection_get_default (active); + + table = GTK_TABLE (gtk_table_new (12, 2, FALSE)); + gtk_table_set_col_spacings (table, 12); + gtk_table_set_row_spacings (table, 6); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); + + /*--- General ---*/ + gtk_table_attach (table, create_info_group_label (_("General"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + str = get_vpn_connection_type (connection); + gtk_table_attach (table, create_info_label (_("VPN Type:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (str, TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + g_free (str); + row++; + + gtk_table_attach (table, create_info_label (_("VPN Gateway:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (get_vpn_data_item (connection, VPN_DATA_ITEM_GATEWAY), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + gtk_table_attach (table, create_info_label (_("VPN Username:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (get_vpn_data_item (connection, VPN_DATA_ITEM_USERNAME), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + gtk_table_attach (table, create_info_label (_("VPN Banner:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (nm_vpn_connection_get_banner (NM_VPN_CONNECTION (active)), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + row++; + + gtk_table_attach (table, create_info_label (_("Base Connection:"), FALSE), + 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (table, create_info_label (parent_con ? nm_connection_get_id (parent_con) : _("Unknown"), TRUE), + 1, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); + + gtk_notebook_append_page (notebook, GTK_WIDGET (table), + create_info_notebook_label (connection, is_default)); + + gtk_widget_show_all (GTK_WIDGET (table)); +} + +static GtkWidget * +info_dialog_update (NMApplet *applet) +{ + GtkNotebook *notebook; + const GPtrArray *connections; + int i; + int pages = 0; + + notebook = GTK_NOTEBOOK (GTK_WIDGET (gtk_builder_get_object (applet->info_dialog_ui, "info_notebook"))); + + /* Remove old pages */ + for (i = gtk_notebook_get_n_pages (notebook); i > 0; i--) + gtk_notebook_remove_page (notebook, -1); + + /* Add new pages */ + connections = nm_client_get_active_connections (applet->nm_client); + for (i = 0; connections && (i < connections->len); i++) { + NMActiveConnection *active_connection = g_ptr_array_index (connections, i); + NMConnection *connection; + const GPtrArray *devices; + + if (nm_active_connection_get_state (active_connection) != NM_ACTIVE_CONNECTION_STATE_ACTIVATED) + continue; + + connection = get_connection_for_active (applet, active_connection); + if (!connection) { + g_warning ("%s: couldn't find the default active connection's NMConnection!", __func__); + continue; + } + + devices = nm_active_connection_get_devices (active_connection); + if (devices && devices->len > 0) + info_dialog_add_page (notebook, + connection, + nm_active_connection_get_default (active_connection), + g_ptr_array_index (devices, 0)); + else { + if (NM_IS_VPN_CONNECTION (active_connection)) { + const char *spec_object = nm_active_connection_get_specific_object (active_connection); + NMConnection *parent_con = get_connection_for_active_path (applet, spec_object); + + info_dialog_add_page_for_vpn (notebook, connection, active_connection, parent_con); + } else { + g_warning ("Active connection %s had no devices and was not a VPN!", + nm_object_get_path (NM_OBJECT (active_connection))); + continue; + } + } + + pages++; + } + + if (pages == 0) { + /* Shouldn't really happen but ... */ + info_dialog_show_error (_("No valid active connections found!")); + return NULL; + } + + return GTK_WIDGET (gtk_builder_get_object (applet->info_dialog_ui, "info_dialog")); +} + +void +applet_info_dialog_show (NMApplet *applet) +{ + GtkWidget *dialog; + + dialog = info_dialog_update (applet); + if (!dialog) + return; + + g_signal_connect (dialog, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), dialog); + g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_hide), dialog); + gtk_widget_realize (dialog); + gtk_window_present_with_time (GTK_WINDOW (dialog), + gdk_x11_get_server_time (gtk_widget_get_window (dialog))); +} + +#if !GTK_CHECK_VERSION(2,23,0) +static void +about_dialog_handle_url_cb (GtkAboutDialog *about, const gchar *url, gpointer data) +{ + gboolean ret; + char *cmdline; + GdkScreen *screen; + + screen = gtk_window_get_screen (GTK_WINDOW (about)); + + cmdline = g_strconcat ("gnome-open ", url, NULL); + ret = gdk_spawn_command_line_on_screen (screen, cmdline, NULL); + g_free (cmdline); + + if (ret == FALSE) { + cmdline = g_strconcat ("xdg-open ", url, NULL); + ret = gdk_spawn_command_line_on_screen (screen, cmdline, NULL); + g_free (cmdline); + } +} +#endif + +void +applet_about_dialog_show (NMApplet *applet) +{ +#if !GTK_CHECK_VERSION(2,23,0) + gtk_about_dialog_set_url_hook (about_dialog_handle_url_cb, NULL, NULL); +#endif + gtk_show_about_dialog (NULL, + "version", VERSION, + "copyright", _("Copyright \xc2\xa9 2004-2011 Red Hat, Inc.\n" + "Copyright \xc2\xa9 2005-2008 Novell, Inc.\n" + "and many other community contributors and translators"), + "comments", _("Notification area applet for managing your network devices and connections."), + "website", "http://www.gnome.org/projects/NetworkManager/", + "website-label", _("NetworkManager Website"), + "logo-icon-name", GTK_STOCK_NETWORK, + NULL); +} + +GtkWidget * +applet_warning_dialog_show (const char *message) +{ + GtkWidget *dialog; + + dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, message, NULL); + + /* Bash focus-stealing prevention in the face */ + gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_window_set_default_icon_name (GTK_STOCK_DIALOG_ERROR); + gtk_window_set_title (GTK_WINDOW (dialog), _("Missing resources")); + gtk_widget_realize (dialog); + gtk_widget_show (dialog); + gtk_window_present_with_time (GTK_WINDOW (dialog), + gdk_x11_get_server_time (gtk_widget_get_window (dialog))); + + g_signal_connect_swapped (dialog, "response", + G_CALLBACK (gtk_widget_destroy), + dialog); + return dialog; +} + +GtkWidget * +applet_mobile_password_dialog_new (NMConnection *connection, + GtkEntry **out_secret_entry) +{ + GtkDialog *dialog; + GtkWidget *w; + GtkBox *box = NULL, *vbox = NULL; + NMSettingConnection *s_con; + char *tmp; + const char *id; + + dialog = GTK_DIALOG (gtk_dialog_new ()); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_title (GTK_WINDOW (dialog), _("Mobile broadband network password")); + + w = gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); + w = gtk_dialog_add_button (dialog, GTK_STOCK_OK, GTK_RESPONSE_OK); + gtk_window_set_default (GTK_WINDOW (dialog), w); + + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + g_assert (id); + tmp = g_strdup_printf (_("A password is required to connect to '%s'."), id); + w = gtk_label_new (tmp); + g_free (tmp); + + vbox = GTK_BOX (gtk_dialog_get_content_area (dialog)); + + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + + w = gtk_alignment_new (0.5, 0.5, 0, 1.0); + gtk_box_pack_start (vbox, w, TRUE, TRUE, 0); + +#if GTK_CHECK_VERSION(3,1,6) + box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6)); +#else + box = GTK_BOX (gtk_hbox_new (FALSE, 6)); +#endif + gtk_container_set_border_width (GTK_CONTAINER (box), 6); + gtk_container_add (GTK_CONTAINER (w), GTK_WIDGET (box)); + + gtk_box_pack_start (box, gtk_label_new (_("Password:")), FALSE, FALSE, 0); + + w = gtk_entry_new (); + *out_secret_entry = GTK_ENTRY (w); + gtk_entry_set_activates_default (GTK_ENTRY (w), TRUE); + gtk_box_pack_start (box, w, FALSE, FALSE, 0); + + gtk_widget_show_all (GTK_WIDGET (vbox)); + return GTK_WIDGET (dialog); +} + +/**********************************************************************/ + +static void +mpd_entry_changed (GtkWidget *widget, gpointer user_data) +{ + GtkWidget *dialog = GTK_WIDGET (user_data); + GtkBuilder *builder = g_object_get_data (G_OBJECT (dialog), "builder"); + GtkWidget *entry; + guint32 minlen; + gboolean valid = FALSE; + const char *text, *text2 = NULL, *text3 = NULL; + gboolean match23; + + g_return_if_fail (builder != NULL); + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry")); + if (g_object_get_data (G_OBJECT (entry), "active")) { + minlen = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "minlen")); + text = gtk_entry_get_text (GTK_ENTRY (entry)); + if (text && (strlen (text) < minlen)) + goto done; + } + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + if (g_object_get_data (G_OBJECT (entry), "active")) { + minlen = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "minlen")); + text2 = gtk_entry_get_text (GTK_ENTRY (entry)); + if (text2 && (strlen (text2) < minlen)) + goto done; + } + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + if (g_object_get_data (G_OBJECT (entry), "active")) { + minlen = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "minlen")); + text3 = gtk_entry_get_text (GTK_ENTRY (entry)); + if (text3 && (strlen (text3) < minlen)) + goto done; + } + + /* Validate 2 & 3 if they are supposed to be the same */ + match23 = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (dialog), "match23")); + if (match23) { + if (!text2 || !text3 || strcmp (text2, text3)) + goto done; + } + + valid = TRUE; + +done: + /* Clear any error text in the progress label now that the user has changed something */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_label")); + gtk_label_set_text (GTK_LABEL (widget), ""); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_button")); + g_warn_if_fail (widget != NULL); + gtk_widget_set_sensitive (widget, valid); + if (valid) + gtk_widget_grab_default (widget); +} + +void +applet_mobile_pin_dialog_destroy (GtkWidget *widget) +{ + gtk_widget_hide (widget); + gtk_widget_destroy (widget); +} + +static void +mpd_cancel_dialog (GtkDialog *dialog) +{ + gtk_dialog_response (dialog, GTK_RESPONSE_CANCEL); +} + +static void +show_toggled_cb (GtkWidget *button, gpointer user_data) +{ + GtkWidget *dialog = GTK_WIDGET (user_data); + gboolean show; + GtkWidget *widget; + GtkBuilder *builder; + + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + show = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry")); + gtk_entry_set_visibility (GTK_ENTRY (widget), show); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + gtk_entry_set_visibility (GTK_ENTRY (widget), show); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + gtk_entry_set_visibility (GTK_ENTRY (widget), show); +} + +GtkWidget * +applet_mobile_pin_dialog_new (const char *title, + const char *header, + const char *desc, + const char *show_password_label, + gboolean show_auto_unlock_checkbox) +{ + char *str; + GtkWidget *dialog; + GtkWidget *widget; + GError *error = NULL; + GtkBuilder *builder; + + g_return_val_if_fail (title != NULL, NULL); + g_return_val_if_fail (header != NULL, NULL); + g_return_val_if_fail (desc != NULL, NULL); + g_return_val_if_fail (show_password_label != NULL, NULL); + + builder = gtk_builder_new (); + + if (!gtk_builder_add_from_file (builder, UIDIR "/gsm-unlock.ui", &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); + g_object_unref (builder); + return NULL; + } + + dialog = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_dialog")); + if (!dialog) { + g_object_unref (builder); + g_return_val_if_fail (dialog != NULL, NULL); + } + + g_object_set_data_full (G_OBJECT (dialog), "builder", builder, (GDestroyNotify) g_object_unref); + + gtk_window_set_title (GTK_WINDOW (dialog), title); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "header_label")); + str = g_strdup_printf ("%s", header); + gtk_label_set_use_markup (GTK_LABEL (widget), TRUE); + gtk_label_set_markup (GTK_LABEL (widget), str); + g_free (str); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "desc_label")); + gtk_label_set_text (GTK_LABEL (widget), desc); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_password_checkbutton")); + gtk_button_set_label (GTK_BUTTON (widget), show_password_label); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); + g_signal_connect (widget, "toggled", G_CALLBACK (show_toggled_cb), dialog); + show_toggled_cb (widget, dialog); + + g_signal_connect (dialog, "delete-event", G_CALLBACK (mpd_cancel_dialog), NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "save_checkbutton")); + if (show_auto_unlock_checkbox) + g_object_set_data (G_OBJECT (widget), "active", GUINT_TO_POINTER (TRUE)); + + mpd_entry_changed (NULL, dialog); + + return dialog; +} + +void +applet_mobile_pin_dialog_present (GtkWidget *dialog, gboolean now) +{ + GtkBuilder *builder; + GtkWidget *widget; + + g_return_if_fail (dialog != NULL); + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + gtk_widget_show_all (dialog); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_hbox")); + gtk_widget_hide (widget); + + /* Hide inactive entries */ + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + if (!g_object_get_data (G_OBJECT (widget), "active")) { + gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_label")); + gtk_widget_hide (widget); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + if (!g_object_get_data (G_OBJECT (widget), "active")) { + gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_label")); + gtk_widget_hide (widget); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "save_checkbutton")); + if (!g_object_get_data (G_OBJECT (widget), "active")) + gtk_widget_hide (widget); + + /* Need to resize the dialog after hiding widgets */ + gtk_window_resize (GTK_WINDOW (dialog), 400, 100); + + /* Show the dialog */ + gtk_widget_realize (dialog); + if (now) + gtk_window_present_with_time (GTK_WINDOW (dialog), + gdk_x11_get_server_time (gtk_widget_get_window (dialog))); + else + gtk_window_present (GTK_WINDOW (dialog)); +} + +static void +mpd_entry_filter (GtkEntry *entry, + const char *text, + gint length, + gint *position, + gpointer user_data) +{ + GtkEditable *editable = GTK_EDITABLE (entry); + int i, count = 0; + gchar *result = g_malloc0 (length); + + /* Digits only */ + for (i = 0; i < length; i++) { + if (isdigit (text[i])) + result[count++] = text[i]; + } + + if (count > 0) { + g_signal_handlers_block_by_func (G_OBJECT (editable), + G_CALLBACK (mpd_entry_filter), + user_data); + gtk_editable_insert_text (editable, result, count, position); + g_signal_handlers_unblock_by_func (G_OBJECT (editable), + G_CALLBACK (mpd_entry_filter), + user_data); + } + g_signal_stop_emission_by_name (G_OBJECT (editable), "insert-text"); + g_free (result); +} + +static void +mpd_set_entry (GtkWidget *dialog, + const char *entry_name, + const char *label_name, + const char *label, + guint32 minlen, + guint32 maxlen) +{ + GtkBuilder *builder; + GtkWidget *widget; + gboolean entry2_active = FALSE; + gboolean entry3_active = FALSE; + + g_return_if_fail (dialog != NULL); + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, label_name)); + gtk_label_set_text (GTK_LABEL (widget), label); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, entry_name)); + g_signal_connect (widget, "changed", G_CALLBACK (mpd_entry_changed), dialog); + g_signal_connect (widget, "insert-text", G_CALLBACK (mpd_entry_filter), NULL); + + if (maxlen) + gtk_entry_set_max_length (GTK_ENTRY (widget), maxlen); + g_object_set_data (G_OBJECT (widget), "minlen", GUINT_TO_POINTER (minlen)); + + /* Tag it so we know it's active */ + g_object_set_data (G_OBJECT (widget), "active", GUINT_TO_POINTER (1)); + + /* Make a single-entry dialog look better */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + entry2_active = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (widget), "active")); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + entry3_active = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (widget), "active")); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "table14")); + if (entry2_active || entry3_active) + gtk_table_set_row_spacings (GTK_TABLE (widget), 6); + else + gtk_table_set_row_spacings (GTK_TABLE (widget), 0); + + mpd_entry_changed (NULL, dialog); +} + +void +applet_mobile_pin_dialog_set_entry1 (GtkWidget *dialog, + const char *label, + guint32 minlen, + guint32 maxlen) +{ + mpd_set_entry (dialog, "code1_entry", "code1_label", label, minlen, maxlen); +} + +void +applet_mobile_pin_dialog_set_entry2 (GtkWidget *dialog, + const char *label, + guint32 minlen, + guint32 maxlen) +{ + mpd_set_entry (dialog, "code2_entry", "code2_label", label, minlen, maxlen); +} + +void +applet_mobile_pin_dialog_set_entry3 (GtkWidget *dialog, + const char *label, + guint32 minlen, + guint32 maxlen) +{ + mpd_set_entry (dialog, "code3_entry", "code3_label", label, minlen, maxlen); +} + +void applet_mobile_pin_dialog_match_23 (GtkWidget *dialog, gboolean match) +{ + g_return_if_fail (dialog != NULL); + + g_object_set_data (G_OBJECT (dialog), "match23", GUINT_TO_POINTER (match)); +} + +static const char * +mpd_get_entry (GtkWidget *dialog, const char *entry_name) +{ + GtkBuilder *builder; + GtkWidget *widget; + + g_return_val_if_fail (dialog != NULL, NULL); + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_val_if_fail (builder != NULL, NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, entry_name)); + return gtk_entry_get_text (GTK_ENTRY (widget)); +} + +const char * +applet_mobile_pin_dialog_get_entry1 (GtkWidget *dialog) +{ + return mpd_get_entry (dialog, "code1_entry"); +} + +const char * +applet_mobile_pin_dialog_get_entry2 (GtkWidget *dialog) +{ + return mpd_get_entry (dialog, "code2_entry"); +} + +const char * +applet_mobile_pin_dialog_get_entry3 (GtkWidget *dialog) +{ + return mpd_get_entry (dialog, "code3_entry"); +} + +gboolean +applet_mobile_pin_dialog_get_auto_unlock (GtkWidget *dialog) +{ + GtkBuilder *builder; + GtkWidget *widget; + + g_return_val_if_fail (dialog != NULL, FALSE); + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_val_if_fail (builder != NULL, FALSE); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "save_checkbutton")); + return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); +} + +void +applet_mobile_pin_dialog_start_spinner (GtkWidget *dialog, const char *text) +{ + GtkBuilder *builder; + GtkWidget *spinner, *widget, *hbox, *align; + + g_return_if_fail (dialog != NULL); + g_return_if_fail (text != NULL); + + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + spinner = gtk_spinner_new (); + g_return_if_fail (spinner != NULL); + g_object_set_data (G_OBJECT (dialog), "spinner", spinner); + + align = GTK_WIDGET (gtk_builder_get_object (builder, "spinner_alignment")); + gtk_container_add (GTK_CONTAINER (align), spinner); + gtk_spinner_start (GTK_SPINNER (spinner)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_label")); + gtk_label_set_text (GTK_LABEL (widget), text); + gtk_widget_show (widget); + + hbox = GTK_WIDGET (gtk_builder_get_object (builder, "progress_hbox")); + gtk_widget_show_all (hbox); + + /* Desensitize everything while spinning */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry")); + gtk_widget_set_sensitive (widget, FALSE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + gtk_widget_set_sensitive (widget, FALSE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + gtk_widget_set_sensitive (widget, FALSE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_button")); + gtk_widget_set_sensitive (widget, FALSE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_cancel_button")); + gtk_widget_set_sensitive (widget, FALSE); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_password_checkbutton")); + gtk_widget_set_sensitive (widget, FALSE); +} + +void +applet_mobile_pin_dialog_stop_spinner (GtkWidget *dialog, const char *text) +{ + GtkBuilder *builder; + GtkWidget *spinner, *widget, *align; + + g_return_if_fail (dialog != NULL); + + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_if_fail (builder != NULL); + + spinner = g_object_get_data (G_OBJECT (dialog), "spinner"); + g_return_if_fail (spinner != NULL); + gtk_spinner_stop (GTK_SPINNER (spinner)); + g_object_set_data (G_OBJECT (dialog), "spinner", NULL); + + /* Remove it from the alignment */ + align = GTK_WIDGET (gtk_builder_get_object (builder, "spinner_alignment")); + gtk_container_remove (GTK_CONTAINER (align), spinner); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_label")); + if (text) { + gtk_label_set_text (GTK_LABEL (widget), text); + gtk_widget_show (widget); + } else + gtk_widget_hide (widget); + + /* Resensitize stuff */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry")); + gtk_widget_set_sensitive (widget, TRUE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry")); + gtk_widget_set_sensitive (widget, TRUE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry")); + gtk_widget_set_sensitive (widget, TRUE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_button")); + gtk_widget_set_sensitive (widget, TRUE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_cancel_button")); + gtk_widget_set_sensitive (widget, TRUE); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_password_checkbutton")); + gtk_widget_set_sensitive (widget, TRUE); +} + diff -Nru network-manager-applet-0.9.4.1/.pc/position_dialogs_to_center_of_the_screen.patch/src/utils/utils.c network-manager-applet-0.9.6.2+git201210311320.2620/.pc/position_dialogs_to_center_of_the_screen.patch/src/utils/utils.c --- network-manager-applet-0.9.4.1/.pc/position_dialogs_to_center_of_the_screen.patch/src/utils/utils.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/.pc/position_dialogs_to_center_of_the_screen.patch/src/utils/utils.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,211 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2007 - 2011 Red Hat, Inc. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "utils.h" + +/* + * utils_ether_addr_valid + * + * Compares an Ethernet address against known invalid addresses. + * + */ +gboolean +utils_ether_addr_valid (const struct ether_addr *test_addr) +{ + guint8 invalid_addr1[ETH_ALEN] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; + guint8 invalid_addr2[ETH_ALEN] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + guint8 invalid_addr3[ETH_ALEN] = {0x44, 0x44, 0x44, 0x44, 0x44, 0x44}; + guint8 invalid_addr4[ETH_ALEN] = {0x00, 0x30, 0xb4, 0x00, 0x00, 0x00}; /* prism54 dummy MAC */ + + g_return_val_if_fail (test_addr != NULL, FALSE); + + /* Compare the AP address the card has with invalid ethernet MAC addresses. */ + if (!memcmp (test_addr->ether_addr_octet, &invalid_addr1, ETH_ALEN)) + return FALSE; + + if (!memcmp (test_addr->ether_addr_octet, &invalid_addr2, ETH_ALEN)) + return FALSE; + + if (!memcmp (test_addr->ether_addr_octet, &invalid_addr3, ETH_ALEN)) + return FALSE; + + if (!memcmp (test_addr->ether_addr_octet, &invalid_addr4, ETH_ALEN)) + return FALSE; + + if (test_addr->ether_addr_octet[0] & 1) /* Multicast addresses */ + return FALSE; + + return TRUE; +} + +char * +utils_hash_ap (const GByteArray *ssid, + NM80211Mode mode, + guint32 flags, + guint32 wpa_flags, + guint32 rsn_flags) +{ + unsigned char input[66]; + + memset (&input[0], 0, sizeof (input)); + + if (ssid) + memcpy (input, ssid->data, ssid->len); + + if (mode == NM_802_11_MODE_INFRA) + input[32] |= (1 << 0); + else if (mode == NM_802_11_MODE_ADHOC) + input[32] |= (1 << 1); + else + input[32] |= (1 << 2); + + /* Separate out no encryption, WEP-only, and WPA-capable */ + if ( !(flags & NM_802_11_AP_FLAGS_PRIVACY) + && (wpa_flags == NM_802_11_AP_SEC_NONE) + && (rsn_flags == NM_802_11_AP_SEC_NONE)) + input[32] |= (1 << 3); + else if ( (flags & NM_802_11_AP_FLAGS_PRIVACY) + && (wpa_flags == NM_802_11_AP_SEC_NONE) + && (rsn_flags == NM_802_11_AP_SEC_NONE)) + input[32] |= (1 << 4); + else if ( !(flags & NM_802_11_AP_FLAGS_PRIVACY) + && (wpa_flags != NM_802_11_AP_SEC_NONE) + && (rsn_flags != NM_802_11_AP_SEC_NONE)) + input[32] |= (1 << 5); + else + input[32] |= (1 << 6); + + /* duplicate it */ + memcpy (&input[33], &input[0], 32); + return g_compute_checksum_for_data (G_CHECKSUM_MD5, input, sizeof (input)); +} + +typedef struct { + const char *tag; + const char *replacement; +} Tag; + +static Tag escaped_tags[] = { + { "
", NULL }, + { "
", NULL }, + { "

", "\n" }, + { "

", NULL }, + { "", "" }, + { "", "" }, + { "", "" }, + { "", "" }, + { "", "" }, + { "", "" }, + { "&", "&" }, + { NULL, NULL } +}; + +char * +utils_escape_notify_message (const char *src) +{ + const char *p = src; + GString *escaped; + + /* Filter the source text and get rid of some HTML tags since the + * notification spec only allows a subset of HTML. Substitute + * HTML code for characters like & that are invalid in HTML. + */ + + escaped = g_string_sized_new (strlen (src) + 5); + while (*p) { + Tag *t = &escaped_tags[0]; + gboolean found = FALSE; + + while (t->tag) { + if (strncasecmp (p, t->tag, strlen (t->tag)) == 0) { + p += strlen (t->tag); + if (t->replacement) + g_string_append (escaped, t->replacement); + found = TRUE; + break; + } + t++; + } + if (!found) + g_string_append_c (escaped, *p++); + } + + return g_string_free (escaped, FALSE); +} + +char * +utils_create_mobile_connection_id (const char *provider, const char *plan_name) +{ + g_return_val_if_fail (provider != NULL, NULL); + + if (plan_name) + return g_strdup_printf ("%s %s", provider, plan_name); + + /* The %s is a mobile provider name, eg "T-Mobile" */ + return g_strdup_printf (_("%s connection"), provider); +} + +void +utils_show_error_dialog (const char *title, + const char *text1, + const char *text2, + gboolean modal, + GtkWindow *parent) +{ + GtkWidget *err_dialog; + + g_return_if_fail (text1 != NULL); + + err_dialog = gtk_message_dialog_new (parent, + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_CLOSE, + "%s", + text1); + + if (text2) + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (err_dialog), "%s", text2); + if (title) + gtk_window_set_title (GTK_WINDOW (err_dialog), title); + + if (modal) { + gtk_dialog_run (GTK_DIALOG (err_dialog)); + gtk_widget_destroy (err_dialog); + } else { + g_signal_connect (err_dialog, "delete-event", G_CALLBACK (gtk_widget_destroy), NULL); + g_signal_connect (err_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); + + gtk_widget_show_all (err_dialog); + gtk_window_present (GTK_WINDOW (err_dialog)); + } +} + diff -Nru network-manager-applet-0.9.4.1/MAINTAINERS network-manager-applet-0.9.6.2+git201210311320.2620/MAINTAINERS --- network-manager-applet-0.9.4.1/MAINTAINERS 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/MAINTAINERS 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,4 @@ +Dan Williams +E-mail: dcbw redhat com +Userid: dcbw + diff -Nru network-manager-applet-0.9.4.1/Makefile.am network-manager-applet-0.9.6.2+git201210311320.2620/Makefile.am --- network-manager-applet-0.9.4.1/Makefile.am 2012-03-13 23:03:58.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/Makefile.am 2012-10-31 13:20:57.000000000 +0000 @@ -1,3 +1,5 @@ +include $(GLIB_MAKEFILE) + ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} SUBDIRS = src icons po @@ -6,7 +8,8 @@ CONTRIBUTING \ intltool-extract.in \ intltool-merge.in \ - intltool-update.in + intltool-update.in \ + Makefile.glib autostartdir = $(sysconfdir)/xdg/autostart autostart_in_files = nm-applet.desktop.in @@ -20,31 +23,24 @@ desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ -schemasdir = @GCONF_SCHEMA_FILE_DIR@ -schemas_in_files = nm-applet.schemas.in -schemas_DATA = $(schemas_in_files:.schemas.in=.schemas) -@INTLTOOL_SCHEMAS_RULE@ +schema_in_files = org.gnome.nm-applet.gschema.xml.in +gsettingsschema_DATA = $(schema_in_files:.xml.in=.xml) +@INTLTOOL_XML_NOMERGE_RULE@ +convertdir=$(datadir)/GConf/gsettings +convert_DATA=nm-applet.convert DISTCHECK_CONFIGURE_FLAGS = --enable-more-warnings=yes EXTRA_DIST += \ - $(schemas_in_files) \ + $(schema_in_files) \ + $(convert_DATA) \ $(autostart_in_files) \ $(desktop_in_files) CLEANFILES = \ $(autostart_DATA) \ $(desktop_DATA) \ - $(schemas_DATA) + $(gsettingsschema_DATA) DISTCLEANFILES = intltool-extract intltool-merge intltool-update - -install-data-local: -if GCONF_SCHEMAS_INSTALL - if test -z "$(DESTDIR)" ; then \ - for p in $(schemas_DATA) ; do \ - GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(top_builddir)/$$p >&1 > /dev/null; \ - done \ - fi -endif diff -Nru network-manager-applet-0.9.4.1/Makefile.glib network-manager-applet-0.9.6.2+git201210311320.2620/Makefile.glib --- network-manager-applet-0.9.4.1/Makefile.glib 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/Makefile.glib 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,169 @@ +# -*- Mode: makefile -*- +# +# Work-in-progress... +# See https://bugzilla.gnome.org/show_bug.cgi?id=654395 + +_GLIB_CLEANFILES = +_GLIB_DISTCLEANFILES = + +_GLIB_V_GEN = $(_glib_v_gen_$(V)) +_glib_v_gen_ = $(_glib_v_gen_$(AM_DEFAULT_VERBOSITY)) +_glib_v_gen_0 = @echo " GEN " $(subst .stamp,,$@); + + +### glib-genmarshal + +_GLIB_MARSHAL_GENERATED = $(subst .h,,$(filter %marshal.h,$(GLIB_GENERATED))) + +_glib_marshal_prefix = $(subst marshal,,$(subst _marshal,,$(subst -,_,$(notdir $(1)))))_marshal +_glib_marshal_sources_var = $(subst -,_,$(notdir $(1)))_sources +_glib_marshal_sources = $(filter-out %.h,$(filter-out $(GLIB_GENERATED),$($(_glib_marshal_sources_var)))) + +define _glib_make_genmarshal_rules +$(if $(_glib_marshal_sources),,$(error Need to define $(_glib_marshal_sources_var) for $(1).[ch])) + +$(1).list.stamp: $(_glib_marshal_sources) + $$(_GLIB_V_GEN) LC_ALL=C sed -ne 's/.*_$(_glib_marshal_prefix)_\([_A-Z]*\).*/\1/p' $$^ | sort -u | sed -e 's/__/:/' -e 's/_/,/g' > $(1).list.tmp && \ + (cmp -s $(1).list.tmp $(1).list || cp $(1).list.tmp $(1).list) && \ + rm -f $(1).list.tmp && \ + echo timestamp > $$@ + +$(1).list: $(1).list.stamp + @true + +$(1).h: $(1).list + $$(_GLIB_V_GEN) $$(GLIB_GENMARSHAL) \ + --prefix=_$(_glib_marshal_prefix) --header \ + $$(GLIB_GENMARSHAL_H_FLAGS) \ + $$($(_glib_marshal_prefix)_GENMARSHAL_H_FLAGS) \ + $$< > $$@.tmp && \ + mv $$@.tmp $$@ + +$(1).c: $(1).list + $$(_GLIB_V_GEN) (echo "#include \"$$(subst .c,.h,$$(@F))\""; $$(GLIB_GENMARSHAL) \ + --prefix=_$(_glib_marshal_prefix) --body \ + $$(GLIB_GENMARSHAL_C_FLAGS) \ + $$($(_glib_marshal_prefix)_GENMARSHAL_C_FLAGS) \ + $$< ) > $$@.tmp && \ + mv $$@.tmp $$@ + +_GLIB_CLEANFILES += $(1).list.stamp $(1).list +_GLIB_DISTCLEANFILES += $(1).h $(1).c +endef + +$(foreach f,$(_GLIB_MARSHAL_GENERATED),$(eval $(call _glib_make_genmarshal_rules,$f))) + + +### glib-mkenums + +_GLIB_ENUM_TYPES_GENERATED = $(subst .h,,$(filter %enum-types.h %enumtypes.h,$(GLIB_GENERATED))) + +_glib_enum_types_prefix = $(subst -,_,$(notdir $(1))) +_glib_enum_types_guard = __$(shell LC_ALL=C echo $(_glib_enum_types_prefix) | tr 'a-z' 'A-Z')_H__ +_glib_enum_types_sources_var = $(_glib_enum_types_prefix)_sources +_glib_enum_types_sources = $(filter-out $(GLIB_GENERATED),$($(_glib_enum_types_sources_var))) +_glib_enum_types_h_sources = $(filter %.h,$(_glib_enum_types_sources)) + +define _glib_make_mkenums_rules +$(if $(_glib_enum_types_sources),,$(error Need to define $(_glib_enum_types_sources_var) for $(1).[ch])) + +$(1).h.stamp: $(_glib_enum_types_h_sources) + $$(_GLIB_V_GEN) $$(GLIB_MKENUMS) \ + --fhead "/* Generated by glib-mkenums. Do not edit */\n\n#ifndef $(_glib_enum_types_guard)\n#define $(_glib_enum_types_guard)\n\n" \ + $$(GLIB_MKENUMS_H_FLAGS) \ + $$($(_glib_enum_types_prefix)_MKENUMS_H_FLAGS) \ + --fhead "#include \n\nG_BEGIN_DECLS\n" \ + --vhead "GType @enum_name@_get_type (void) G_GNUC_CONST;\n#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())\n" \ + --ftail "G_END_DECLS\n\n#endif /* $(_glib_enum_types_guard) */" \ + $$^ > $(1).h.tmp && \ + (cmp -s $(1).h.tmp $(1).h || cp $(1).h.tmp $(1).h) && \ + rm -f $(1).h.tmp && \ + echo timestamp > $$@ + +$(1).h: $(1).h.stamp + @true + +$(1).c.stamp: $(_glib_enum_types_h_sources) + $$(_GLIB_V_GEN) $$(GLIB_MKENUMS) \ + --fhead "/* Generated by glib-mkenums. Do not edit */\n\n#include \"$(notdir $(1)).h\"\n" \ + $$(GLIB_MKENUMS_C_FLAGS) \ + $$($(_glib_enum_types_prefix)_MKENUMS_C_FLAGS) \ + --fhead "$$(foreach f,$$(^F),\n#include \"$$(f)\")\n\n" \ + --vhead "GType\n@enum_name@_get_type (void)\n{\n static volatile gsize g_define_type_id__volatile = 0;\n\n if (g_once_init_enter (&g_define_type_id__volatile))\n {\n static const G@Type@Value values[] = {\n" \ + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" },\n" \ + --vtail " { 0, NULL, NULL }\n };\n GType g_define_type_id =\n g_@type@_register_static (g_intern_static_string (\"@EnumName@\"), values);\n g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);\n }\n\n return g_define_type_id__volatile;\n}\n" \ + $$^ > $(1).c.tmp && \ + (cmp -s $(1).c.tmp $(1).c || cp $(1).c.tmp $(1).c) && \ + rm -f $(1).c.tmp && \ + echo timestamp > $$@ + +$(1).c: $(1).c.stamp + @true + +_GLIB_CLEANFILES += $(1).h.stamp $(1).c.stamp +_GLIB_DISTCLEANFILES += $(1).h $(1).c $(1).h.stamp $(1).c.stamp +endef + +$(foreach f,$(_GLIB_ENUM_TYPES_GENERATED),$(eval $(call _glib_make_mkenums_rules,$f))) + + +### glib-compile-schemas + +_GLIB_ENUMS_XML_GENERATED = $(filter %.enums.xml,$(GLIB_GENERATED)) +_GLIB_GSETTINGS_SCHEMA_FILES = $(filter %.gschema.xml,$(gsettingsschema_DATA)) +_GLIB_GSETTINGS_VALID_FILES = $(subst .xml,.valid,$(_GLIB_GSETTINGS_SCHEMA_FILES)) + +_glib_enums_xml_prefix = $(subst .,_,$(notdir $(1))) +_glib_enums_xml_sources_var = $(_glib_enums_xml_prefix)_sources +_glib_enums_xml_sources = $(filter-out $(GLIB_GENERATED),$($(_glib_enums_xml_sources_var))) +_glib_enums_xml_namespace = $(subst .enums.xml,,$(notdir $(1))) + +define _glib_make_enums_xml_rule +$(if $(_glib_enums_xml_sources),,$(error Need to define $(_glib_enums_xml_sources_var) for $(1))) + +$(1): $(_glib_enums_xml_sources) + $$(_GLIB_V_GEN) $$(GLIB_MKENUMS) --comments '' --fhead "" --vhead " <@type@ id='$(_glib_enums_xml_namespace).@EnumName@'>" --vprod " " --vtail " " --ftail "" $$^ > $$@.tmp && mv $$@.tmp $$@ +endef + +_GLIB_V_CHECK = $(_glib_v_check_$(V)) +_glib_v_check_ = $(_glib_v_check_$(AM_DEFAULT_VERBOSITY)) +_glib_v_check_0 = @echo " CHECK " $(subst .valid,.xml,$@); + +define _glib_make_schema_validate_rule +$(subst .xml,.valid,$(1)): $(_GLIB_ENUMS_XML_GENERATED) $(1) + $$(_GLIB_V_CHECK) $$(GLIB_COMPILE_SCHEMAS) --strict --dry-run $$(addprefix --schema-file=,$$^) && touch $$@ +endef + +define _glib_make_schema_rules +all-am: $(_GLIB_GSETTINGS_VALID_FILES) + +install-data-am: glib-install-schemas-hook + +glib-install-schemas-hook: install-gsettingsschemaDATA + @test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || (echo $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir)) + +uninstall-am: glib-uninstall-schemas-hook + +glib-uninstall-schemas-hook: uninstall-gsettingsschemaDATA + @test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || (echo $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir)) + +.PHONY: glib-install-schemas-hook glib-uninstall-schemas-hook +endef + +_GLIB_CLEANFILES += $(_GLIB_ENUMS_XML_GENERATED) $(_GLIB_GSETTINGS_VALID_FILES) + +$(foreach f,$(_GLIB_ENUMS_XML_GENERATED),$(eval $(call _glib_make_enums_xml_rule,$f))) +$(foreach f,$(_GLIB_GSETTINGS_SCHEMA_FILES),$(eval $(call _glib_make_schema_validate_rule,$f))) +$(if $(_GLIB_GSETTINGS_SCHEMA_FILES),$(eval $(_glib_make_schema_rules))) + + +### Cleanup +.PHONY: clean-glib distclean-glib + +clean-am: clean-glib +clean-glib: + $(if $(strip $(_GLIB_CLEANFILES)),-rm -f $(_GLIB_CLEANFILES)) + +distclean-am: distclean-glib +distclean-glib: + $(if $(strip $(_GLIB_DISTCLEANFILES)),-rm -f $(_GLIB_DISTCLEANFILES)) diff -Nru network-manager-applet-0.9.4.1/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/Makefile.in --- network-manager-applet-0.9.4.1/Makefile.in 2012-03-23 22:55:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,929 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ - compile config.guess config.sub depcomp install-sh ltmain.sh \ - missing -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(applicationsdir)" \ - "$(DESTDIR)$(autostartdir)" "$(DESTDIR)$(desktopdir)" \ - "$(DESTDIR)$(schemasdir)" -DATA = $(applications_DATA) $(autostart_DATA) $(desktop_DATA) \ - $(schemas_DATA) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir dist dist-all distcheck -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - { test ! -d "$(distdir)" \ - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr "$(distdir)"; }; } -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -GZIP_ENV = --best -DIST_ARCHIVES = $(distdir).tar.bz2 -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} -SUBDIRS = src icons po -EXTRA_DIST = CONTRIBUTING intltool-extract.in intltool-merge.in \ - intltool-update.in $(schemas_in_files) $(autostart_in_files) \ - $(desktop_in_files) -autostartdir = $(sysconfdir)/xdg/autostart -autostart_in_files = nm-applet.desktop.in -autostart_DATA = $(autostart_in_files:.desktop.in=.desktop) -applicationsdir = $(datadir)/applications -applications_DATA = $(autostart_DATA) -desktopdir = $(datadir)/applications -desktop_in_files = nm-connection-editor.desktop.in -desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) -schemasdir = @GCONF_SCHEMA_FILE_DIR@ -schemas_in_files = nm-applet.schemas.in -schemas_DATA = $(schemas_in_files:.schemas.in=.schemas) -DISTCHECK_CONFIGURE_FLAGS = --enable-more-warnings=yes -CLEANFILES = \ - $(autostart_DATA) \ - $(desktop_DATA) \ - $(schemas_DATA) - -DISTCLEANFILES = intltool-extract intltool-merge intltool-update -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -am--refresh: - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -$(am__aclocal_m4_deps): - -config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ - else :; fi - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool config.lt -install-applicationsDATA: $(applications_DATA) - @$(NORMAL_INSTALL) - test -z "$(applicationsdir)" || $(MKDIR_P) "$(DESTDIR)$(applicationsdir)" - @list='$(applications_DATA)'; test -n "$(applicationsdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(applicationsdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(applicationsdir)" || exit $$?; \ - done - -uninstall-applicationsDATA: - @$(NORMAL_UNINSTALL) - @list='$(applications_DATA)'; test -n "$(applicationsdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(applicationsdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(applicationsdir)" && rm -f $$files -install-autostartDATA: $(autostart_DATA) - @$(NORMAL_INSTALL) - test -z "$(autostartdir)" || $(MKDIR_P) "$(DESTDIR)$(autostartdir)" - @list='$(autostart_DATA)'; test -n "$(autostartdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(autostartdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(autostartdir)" || exit $$?; \ - done - -uninstall-autostartDATA: - @$(NORMAL_UNINSTALL) - @list='$(autostart_DATA)'; test -n "$(autostartdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(autostartdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(autostartdir)" && rm -f $$files -install-desktopDATA: $(desktop_DATA) - @$(NORMAL_INSTALL) - test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" - @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ - done - -uninstall-desktopDATA: - @$(NORMAL_UNINSTALL) - @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(desktopdir)" && rm -f $$files -install-schemasDATA: $(schemas_DATA) - @$(NORMAL_INSTALL) - test -z "$(schemasdir)" || $(MKDIR_P) "$(DESTDIR)$(schemasdir)" - @list='$(schemas_DATA)'; test -n "$(schemasdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(schemasdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(schemasdir)" || exit $$?; \ - done - -uninstall-schemasDATA: - @$(NORMAL_UNINSTALL) - @list='$(schemas_DATA)'; test -n "$(schemasdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(schemasdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(schemasdir)" && rm -f $$files - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done - -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) - -dist-xz: distdir - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ - && cd "$$am__cwd" \ - || exit 1 - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @$(am__cd) '$(distuninstallcheck_dir)' \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-recursive -all-am: Makefile $(DATA) config.h -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(applicationsdir)" "$(DESTDIR)$(autostartdir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(schemasdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr \ - distclean-libtool distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-applicationsDATA install-autostartDATA \ - install-data-local install-desktopDATA install-schemasDATA - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-applicationsDATA uninstall-autostartDATA \ - uninstall-desktopDATA uninstall-schemasDATA - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ - ctags-recursive install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-generic \ - clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-hdr \ - distclean-libtool distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-applicationsDATA \ - install-autostartDATA install-data install-data-am \ - install-data-local install-desktopDATA install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-schemasDATA install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-applicationsDATA \ - uninstall-autostartDATA uninstall-desktopDATA \ - uninstall-schemasDATA - -@INTLTOOL_DESKTOP_RULE@ -@INTLTOOL_SCHEMAS_RULE@ - -install-data-local: -@GCONF_SCHEMAS_INSTALL_TRUE@ if test -z "$(DESTDIR)" ; then \ -@GCONF_SCHEMAS_INSTALL_TRUE@ for p in $(schemas_DATA) ; do \ -@GCONF_SCHEMAS_INSTALL_TRUE@ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(top_builddir)/$$p >&1 > /dev/null; \ -@GCONF_SCHEMAS_INSTALL_TRUE@ done \ -@GCONF_SCHEMAS_INSTALL_TRUE@ fi - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/NEWS network-manager-applet-0.9.6.2+git201210311320.2620/NEWS --- network-manager-applet-0.9.4.1/NEWS 2012-03-17 02:29:20.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/NEWS 2012-10-31 13:20:57.000000000 +0000 @@ -1,4 +1,22 @@ ======================================================= +network-manager-applet-0.9.6 +Overview of changes since network-manager-applet-0.9.4 +======================================================= + +This is a new stable release of network-manager-applet. Notable changes include: + +* Fixed UI mnemonics +* Various crash and stability fixes +* Allow appending DNS servers and domains in automatic addressing mode +* Fix defaults for PPP echo values +* Show IPv6 addressing page for VPN plugins that support it +* Port to GSettings and split out 0.8 -> 0.9 migration code into standalone tool +* Recognize PKCS#12 certificates imported from Firefox +* Pre-fill CDMA username/password in the mobile broadband wizard +* Only handle VPN secrets for GNOME Shell 3.3 and lower + + +======================================================= network-manager-applet-0.9.4 Overview of changes since network-manager-applet-0.9.2 ======================================================= diff -Nru network-manager-applet-0.9.4.1/aclocal.m4 network-manager-applet-0.9.6.2+git201210311320.2620/aclocal.m4 --- network-manager-applet-0.9.4.1/aclocal.m4 2012-03-23 22:55:40.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/aclocal.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,1789 +0,0 @@ -# generated automatically by aclocal 1.11.1 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, -[m4_warning([this file was generated for autoconf 2.68. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically `autoreconf'.])]) - -dnl AM_GCONF_SOURCE_2 -dnl Defines GCONF_SCHEMA_CONFIG_SOURCE which is where you should install schemas -dnl (i.e. pass to gconftool-2 -dnl Defines GCONF_SCHEMA_FILE_DIR which is a filesystem directory where -dnl you should install foo.schemas files -dnl - -AC_DEFUN([AM_GCONF_SOURCE_2], -[ - if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then - GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source` - else - GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE - fi - - AC_ARG_WITH([gconf-source], - AC_HELP_STRING([--with-gconf-source=sourceaddress], - [Config database for installing schema files.]), - [GCONF_SCHEMA_CONFIG_SOURCE="$withval"],) - - AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE) - AC_MSG_RESULT([Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation]) - - if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then - GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas' - fi - - AC_ARG_WITH([gconf-schema-file-dir], - AC_HELP_STRING([--with-gconf-schema-file-dir=dir], - [Directory for installing schema files.]), - [GCONF_SCHEMA_FILE_DIR="$withval"],) - - AC_SUBST(GCONF_SCHEMA_FILE_DIR) - AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files]) - - AC_ARG_ENABLE(schemas-install, - AC_HELP_STRING([--disable-schemas-install], - [Disable the schemas installation]), - [case ${enableval} in - yes|no) ;; - *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-install]) ;; - esac]) - AM_CONDITIONAL([GCONF_SCHEMAS_INSTALL], [test "$enable_schemas_install" != no]) -]) - -# Copyright (C) 1995-2002 Free Software Foundation, Inc. -# Copyright (C) 2001-2003,2004 Red Hat, Inc. -# -# This file is free software, distributed under the terms of the GNU -# General Public License. As a special exception to the GNU General -# Public License, this file may be distributed as part of a program -# that contains a configuration script generated by Autoconf, under -# the same distribution terms as the rest of that program. -# -# This file can be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# -# Macro to add for using GNU gettext. -# Ulrich Drepper , 1995, 1996 -# -# Modified to never use included libintl. -# Owen Taylor , 12/15/1998 -# -# Major rework to remove unused code -# Owen Taylor , 12/11/2002 -# -# Added better handling of ALL_LINGUAS from GNU gettext version -# written by Bruno Haible, Owen Taylor 5/30/3002 -# -# Modified to require ngettext -# Matthias Clasen 08/06/2004 -# -# We need this here as well, since someone might use autoconf-2.5x -# to configure GLib then an older version to configure a package -# using AM_GLIB_GNU_GETTEXT -AC_PREREQ(2.53) - -dnl -dnl We go to great lengths to make sure that aclocal won't -dnl try to pull in the installed version of these macros -dnl when running aclocal in the glib directory. -dnl -m4_copy([AC_DEFUN],[glib_DEFUN]) -m4_copy([AC_REQUIRE],[glib_REQUIRE]) -dnl -dnl At the end, if we're not within glib, we'll define the public -dnl definitions in terms of our private definitions. -dnl - -# GLIB_LC_MESSAGES -#-------------------- -glib_DEFUN([GLIB_LC_MESSAGES], - [AC_CHECK_HEADERS([locale.h]) - if test $ac_cv_header_locale_h = yes; then - AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, - [AC_TRY_LINK([#include ], [return LC_MESSAGES], - am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) - if test $am_cv_val_LC_MESSAGES = yes; then - AC_DEFINE(HAVE_LC_MESSAGES, 1, - [Define if your file defines LC_MESSAGES.]) - fi - fi]) - -# GLIB_PATH_PROG_WITH_TEST -#---------------------------- -dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], -[# Extract the first word of "$2", so it can be a program name with args. -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL(ac_cv_path_$1, -[case "[$]$1" in - /*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in ifelse([$5], , $PATH, [$5]); do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then - AC_MSG_RESULT([$]$1) -else - AC_MSG_RESULT(no) -fi -AC_SUBST($1)dnl -]) - -# GLIB_WITH_NLS -#----------------- -glib_DEFUN([GLIB_WITH_NLS], - dnl NLS is obligatory - [USE_NLS=yes - AC_SUBST(USE_NLS) - - gt_cv_have_gettext=no - - CATOBJEXT=NONE - XGETTEXT=: - INTLLIBS= - - AC_CHECK_HEADER(libintl.h, - [gt_cv_func_dgettext_libintl="no" - libintl_extra_libs="" - - # - # First check in libc - # - AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, - [AC_TRY_LINK([ -#include -], - [return !ngettext ("","", 1)], - gt_cv_func_ngettext_libc=yes, - gt_cv_func_ngettext_libc=no) - ]) - - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, - [AC_TRY_LINK([ -#include -], - [return !dgettext ("","")], - gt_cv_func_dgettext_libc=yes, - gt_cv_func_dgettext_libc=no) - ]) - fi - - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - AC_CHECK_FUNCS(bind_textdomain_codeset) - fi - - # - # If we don't have everything we want, check in libintl - # - if test "$gt_cv_func_dgettext_libc" != "yes" \ - || test "$gt_cv_func_ngettext_libc" != "yes" \ - || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then - - AC_CHECK_LIB(intl, bindtextdomain, - [AC_CHECK_LIB(intl, ngettext, - [AC_CHECK_LIB(intl, dgettext, - gt_cv_func_dgettext_libintl=yes)])]) - - if test "$gt_cv_func_dgettext_libintl" != "yes" ; then - AC_MSG_CHECKING([if -liconv is needed to use gettext]) - AC_MSG_RESULT([]) - AC_CHECK_LIB(intl, ngettext, - [AC_CHECK_LIB(intl, dcgettext, - [gt_cv_func_dgettext_libintl=yes - libintl_extra_libs=-liconv], - :,-liconv)], - :,-liconv) - fi - - # - # If we found libintl, then check in it for bind_textdomain_codeset(); - # we'll prefer libc if neither have bind_textdomain_codeset(), - # and both have dgettext and ngettext - # - if test "$gt_cv_func_dgettext_libintl" = "yes" ; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $libintl_extra_libs" - unset ac_cv_func_bind_textdomain_codeset - AC_CHECK_FUNCS(bind_textdomain_codeset) - LIBS="$glib_save_LIBS" - - if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then - gt_cv_func_dgettext_libc=no - else - if test "$gt_cv_func_dgettext_libc" = "yes" \ - && test "$gt_cv_func_ngettext_libc" = "yes"; then - gt_cv_func_dgettext_libintl=no - fi - fi - fi - fi - - if test "$gt_cv_func_dgettext_libc" = "yes" \ - || test "$gt_cv_func_dgettext_libintl" = "yes"; then - gt_cv_have_gettext=yes - fi - - if test "$gt_cv_func_dgettext_libintl" = "yes"; then - INTLLIBS="-lintl $libintl_extra_libs" - fi - - if test "$gt_cv_have_gettext" = "yes"; then - AC_DEFINE(HAVE_GETTEXT,1, - [Define if the GNU gettext() function is already present or preinstalled.]) - GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl - if test "$MSGFMT" != "no"; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - AC_CHECK_FUNCS(dcgettext) - MSGFMT_OPTS= - AC_MSG_CHECKING([if msgfmt accepts -c]) - GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: test 1.0\n" -"PO-Revision-Date: 2007-02-15 12:01+0100\n" -"Last-Translator: test \n" -"Language-Team: C \n" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) - AC_SUBST(MSGFMT_OPTS) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr], - [CATOBJEXT=.gmo - DATADIRNAME=share], - [case $host in - *-*-solaris*) - dnl On Solaris, if bind_textdomain_codeset is in libc, - dnl GNU format message catalog is always supported, - dnl since both are added to the libc all together. - dnl Hence, we'd like to go with DATADIRNAME=share and - dnl and CATOBJEXT=.gmo in this case. - AC_CHECK_FUNC(bind_textdomain_codeset, - [CATOBJEXT=.gmo - DATADIRNAME=share], - [CATOBJEXT=.mo - DATADIRNAME=lib]) - ;; - *-*-openbsd*) - CATOBJEXT=.mo - DATADIRNAME=share - ;; - *) - CATOBJEXT=.mo - DATADIRNAME=lib - ;; - esac]) - LIBS="$glib_save_LIBS" - INSTOBJEXT=.mo - else - gt_cv_have_gettext=no - fi - fi - ]) - - if test "$gt_cv_have_gettext" = "yes" ; then - AC_DEFINE(ENABLE_NLS, 1, - [always defined to indicate that i18n is enabled]) - fi - - dnl Test whether we really found GNU xgettext. - if test "$XGETTEXT" != ":"; then - dnl If it is not GNU xgettext we define it as : so that the - dnl Makefiles still can work. - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT=":" - fi - fi - - # We need to process the po/ directory. - POSUB=po - - AC_OUTPUT_COMMANDS( - [case "$CONFIG_FILES" in *po/Makefile.in*) - sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile - esac]) - - dnl These rules are solely for the distribution goal. While doing this - dnl we only have to keep exactly one list of the available catalogs - dnl in configure.ac. - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - - dnl Make all variables we use known to autoconf. - AC_SUBST(CATALOGS) - AC_SUBST(CATOBJEXT) - AC_SUBST(DATADIRNAME) - AC_SUBST(GMOFILES) - AC_SUBST(INSTOBJEXT) - AC_SUBST(INTLLIBS) - AC_SUBST(PO_IN_DATADIR_TRUE) - AC_SUBST(PO_IN_DATADIR_FALSE) - AC_SUBST(POFILES) - AC_SUBST(POSUB) - ]) - -# AM_GLIB_GNU_GETTEXT -# ------------------- -# Do checks necessary for use of gettext. If a suitable implementation -# of gettext is found in either in libintl or in the C library, -# it will set INTLLIBS to the libraries needed for use of gettext -# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable -# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() -# on various variables needed by the Makefile.in.in installed by -# glib-gettextize. -dnl -glib_DEFUN([GLIB_GNU_GETTEXT], - [AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - - GLIB_LC_MESSAGES - GLIB_WITH_NLS - - if test "$gt_cv_have_gettext" = "yes"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - AC_MSG_CHECKING(for catalogs to be installed) - NEW_LINGUAS= - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - NEW_LINGUAS="$NEW_LINGUAS $presentlang" - fi - done - LINGUAS=$NEW_LINGUAS - AC_MSG_RESULT($LINGUAS) - fi - - dnl Construct list of names of catalog files to be constructed. - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly - dnl find the mkinstalldirs script in another subdir but ($top_srcdir). - dnl Try to locate is. - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - AC_SUBST(MKINSTALLDIRS) - - dnl Generate list of files to be processed by xgettext which will - dnl be included in po/Makefile. - test -d po || mkdir po - if test "x$srcdir" != "x."; then - if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then - posrcprefix="$srcdir/" - else - posrcprefix="../$srcdir/" - fi - else - posrcprefix="../" - fi - rm -f po/POTFILES - sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ - < $srcdir/po/POTFILES.in > po/POTFILES - ]) - -# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) -# ------------------------------- -# Define VARIABLE to the location where catalog files will -# be installed by po/Makefile. -glib_DEFUN([GLIB_DEFINE_LOCALEDIR], -[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl -glib_save_prefix="$prefix" -glib_save_exec_prefix="$exec_prefix" -glib_save_datarootdir="$datarootdir" -test "x$prefix" = xNONE && prefix=$ac_default_prefix -test "x$exec_prefix" = xNONE && exec_prefix=$prefix -datarootdir=`eval echo "${datarootdir}"` -if test "x$CATOBJEXT" = "x.mo" ; then - localedir=`eval echo "${libdir}/locale"` -else - localedir=`eval echo "${datadir}/locale"` -fi -prefix="$glib_save_prefix" -exec_prefix="$glib_save_exec_prefix" -datarootdir="$glib_save_datarootdir" -AC_DEFINE_UNQUOTED($1, "$localedir", - [Define the location where the catalogs will be installed]) -]) - -dnl -dnl Now the definitions that aclocal will find -dnl -ifdef(glib_configure_ac,[],[ -AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) -AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) -])dnl - -# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) -# -# Create a temporary file with TEST-FILE as its contents and pass the -# file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with -# 0 and perform ACTION-IF-FAIL for any other exit status. -AC_DEFUN([GLIB_RUN_PROG], -[cat >conftest.foo <<_ACEOF -$2 -_ACEOF -if AC_RUN_LOG([$1 conftest.foo]); then - m4_ifval([$3], [$3], [:]) -m4_ifvaln([$4], [else $4])dnl -echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD -sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD -fi]) - - -# gnome-common.m4 -# -# serial 3 -# - -dnl GNOME_COMMON_INIT - -AU_DEFUN([GNOME_COMMON_INIT], -[ - dnl this macro should come after AC_CONFIG_MACRO_DIR - AC_BEFORE([AC_CONFIG_MACRO_DIR], [$0]) - - dnl ensure that when the Automake generated makefile calls aclocal, - dnl it honours the $ACLOCAL_FLAGS environment variable - ACLOCAL_AMFLAGS="\${ACLOCAL_FLAGS}" - if test -n "$ac_macro_dir"; then - ACLOCAL_AMFLAGS="-I $ac_macro_dir $ACLOCAL_AMFLAGS" - fi - - AC_SUBST([ACLOCAL_AMFLAGS]) -], -[[$0: This macro is deprecated. You should set put "ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}" -in your top-level Makefile.am, instead, where "m4" is the macro directory set -with AC_CONFIG_MACRO_DIR() in your configure.ac]]) - -AC_DEFUN([GNOME_DEBUG_CHECK], -[ - AC_ARG_ENABLE([debug], - AC_HELP_STRING([--enable-debug], - [turn on debugging]),, - [enable_debug=no]) - - if test x$enable_debug = xyes ; then - AC_DEFINE(GNOME_ENABLE_DEBUG, 1, - [Enable additional debugging at the expense of performance and size]) - fi -]) - -dnl GNOME_MAINTAINER_MODE_DEFINES () -dnl define DISABLE_DEPRECATED -dnl -AC_DEFUN([GNOME_MAINTAINER_MODE_DEFINES], -[ - AC_REQUIRE([AM_MAINTAINER_MODE]) - - DISABLE_DEPRECATED="" - if test $USE_MAINTAINER_MODE = yes; then - DOMAINS="G ATK PANGO GDK GDK_PIXBUF GTK GCONF BONOBO BONOBO_UI GNOME LIBGLADE VTE GNOME_VFS WNCK LIBSOUP" - for DOMAIN in $DOMAINS; do - DISABLE_DEPRECATED="$DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_SINGLE_INCLUDES" - done - fi - - AC_SUBST(DISABLE_DEPRECATED) -]) - -# nls.m4 serial 5 (gettext-0.18) -dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, -dnl Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2003. - -AC_PREREQ([2.50]) - -AC_DEFUN([AM_NLS], -[ - AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE([nls], - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT([$USE_NLS]) - AC_SUBST([USE_NLS]) -]) - -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) -# -# Copyright © 2004 Scott James Remnant . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -])# PKG_PROG_PKG_CONFIG - -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) - -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- -m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], - [pkg_failed=yes]) - else - pkg_failed=untried -fi[]dnl -])# _PKG_CONFIG - -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED - - -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT]) - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see .]) - ]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -])# PKG_CHECK_MODULES - -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.11' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.1])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 9 - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 10 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], UPC, [depcc="$UPC" am_compiler_list=], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -#serial 5 - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Autoconf 2.62 quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 16 - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.62])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl -]) -_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -dnl The `parallel-tests' driver may need to know about EXEEXT, so add the -dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro -dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -]) - -dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST(install_sh)]) - -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 5 - -# AM_MAINTAINER_MODE([DEFAULT-MODE]) -# ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless `enable' is passed literally. -# For symmetry, `disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], -[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) - -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 6 - -# AM_PROG_CC_C_O -# -------------- -# Like AC_PROG_CC_C_O, but changed for automake. -AC_DEFUN([AM_PROG_CC_C_O], -[AC_REQUIRE([AC_PROG_CC_C_O])dnl -AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -# FIXME: we rely on the cache variable name because -# there is no other way. -set dummy $CC -am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` -eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o -if test "$am_t" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -dnl Make sure AC_PROG_CC is never called again, or it will override our -dnl setting of CC. -m4_define([AC_PROG_CC], - [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 6 - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - -# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_MKDIR_P -# --------------- -# Check for `mkdir -p'. -AC_DEFUN([AM_PROG_MKDIR_P], -[AC_PREREQ([2.60])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, -dnl while keeping a definition of mkdir_p for backward compatibility. -dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. -dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of -dnl Makefile.ins that do not define MKDIR_P, so we do our own -dnl adjustment using top_builddir (which is defined more often than -dnl MKDIR_P). -AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl -case $mkdir_p in - [[\\/$]]* | ?:[[\\/]]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# ------------------------------ -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) - -# _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 5 - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; -esac - -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT(yes)]) - -# Copyright (C) 2009 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 1 - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# (`yes' being less verbose, `no' or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], -[ --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0')]) -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor `install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) -m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir - -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([m4/compiler_warnings.m4]) -m4_include([m4/intltool.m4]) -m4_include([m4/libtool.m4]) -m4_include([m4/ltoptions.m4]) -m4_include([m4/ltsugar.m4]) -m4_include([m4/ltversion.m4]) -m4_include([m4/lt~obsolete.m4]) diff -Nru network-manager-applet-0.9.4.1/autogen.sh network-manager-applet-0.9.6.2+git201210311320.2620/autogen.sh --- network-manager-applet-0.9.4.1/autogen.sh 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/autogen.sh 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,24 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +PKG_NAME=nm-applet + +(test -f $srcdir/configure.ac \ + && test -f $srcdir/src/applet.c) || { + echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" + echo " top-level $PKG_NAME directory" + exit 1 +} + +(cd $srcdir; + autoreconf --install --symlink && + intltoolize --force && + autoreconf && + if test -z "$NOCONFIGURE"; then + ./configure --enable-maintainer-mode $@ + fi +) + diff -Nru network-manager-applet-0.9.4.1/compile network-manager-applet-0.9.6.2+git201210311320.2620/compile --- network-manager-applet-0.9.4.1/compile 2010-03-29 11:21:24.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/compile 1970-01-01 00:00:00.000000000 +0000 @@ -1,143 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand `-c -o'. - -scriptversion=2009-10-06.20; # UTC - -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software -# Foundation, Inc. -# Written by Tom Tromey . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand `-c -o'. -Remove `-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file `INSTALL'. - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "compile $scriptversion" - exit $? - ;; -esac - -ofile= -cfile= -eat= - -for arg -do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we strip `-o arg' only if arg is an object. - eat=1 - case $2 in - *.o | *.obj) - ofile=$2 - ;; - *) - set x "$@" -o "$2" - shift - ;; - esac - ;; - *.c) - cfile=$1 - set x "$@" "$1" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also - # ok. - exec "$@" -fi - -# Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` - -# Create the lock directory. -# Note: use `[/\\:.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d -while true; do - if mkdir "$lockdir" >/dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir '$lockdir'; exit 1" 1 2 15 - -# Run the compile. -"$@" -ret=$? - -if test -f "$cofile"; then - test "$cofile" = "$ofile" || mv "$cofile" "$ofile" -elif test -f "${cofile}bj"; then - test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" -fi - -rmdir "$lockdir" -exit $ret - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff -Nru network-manager-applet-0.9.4.1/config.guess network-manager-applet-0.9.6.2+git201210311320.2620/config.guess --- network-manager-applet-0.9.4.1/config.guess 2010-03-29 11:21:24.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/config.guess 1970-01-01 00:00:00.000000000 +0000 @@ -1,1501 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. - -timestamp='2009-11-20' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner. Please send patches (context -# diff format) to and include a ChangeLog -# entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH="x86_64" - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-gnu - else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; - i*86:Linux:*:*) - LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-gnu - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff -Nru network-manager-applet-0.9.4.1/config.h.in network-manager-applet-0.9.6.2+git201210311320.2620/config.h.in --- network-manager-applet-0.9.4.1/config.h.in 2012-03-23 22:55:48.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/config.h.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,172 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define if building universal (internal helper macro) */ -#undef AC_APPLE_UNIVERSAL_BUILD - -/* always defined to indicate that i18n is enabled */ -#undef ENABLE_NLS - -/* Gettext package */ -#undef GETTEXT_PACKAGE - -/* Define to 1 if you have the `bind_textdomain_codeset' function. */ -#undef HAVE_BIND_TEXTDOMAIN_CODESET - -/* Define to 1 if you have the `dcgettext' function. */ -#undef HAVE_DCGETTEXT - -/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_FCNTL_H - -/* Define if the GNU gettext() function is already present or preinstalled. */ -#undef HAVE_GETTEXT - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define if your file defines LC_MESSAGES. */ -#undef HAVE_LC_MESSAGES - -/* Define if you have libnotify 0.7 or later */ -#undef HAVE_LIBNOTIFY_07 - -/* Define to 1 if you have the header file. */ -#undef HAVE_LOCALE_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_PATHS_H - -/* Define to 1 if you have the `select' function. */ -#undef HAVE_SELECT - -/* Define to 1 if you have the `socket' function. */ -#undef HAVE_SOCKET - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYSLOG_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_IOCTL_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TIME_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the `uname' function. */ -#undef HAVE_UNAME - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* ISO codes prefix */ -#undef ISO_CODES_PREFIX - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#undef LT_OBJDIR - -/* Define to 1 if your C compiler doesn't accept -c and -o together. */ -#undef NO_MINUS_C_MINUS_O - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define to 1 if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME - -/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# undef _TANDEM_SOURCE -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif - - -/* Version number of package */ -#undef VERSION - -/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if defined AC_APPLE_UNIVERSAL_BUILD -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#else -# ifndef WORDS_BIGENDIAN -# undef WORDS_BIGENDIAN -# endif -#endif - -/* Define to 1 if on MINIX. */ -#undef _MINIX - -/* Define to 2 if the system does not provide POSIX.1 features except with - this defined. */ -#undef _POSIX_1_SOURCE - -/* Define to 1 if you need to in order for `stat' and other things to work. */ -#undef _POSIX_SOURCE - -/* Define to `int' if does not define. */ -#undef mode_t - -/* Define to `int' if does not define. */ -#undef pid_t diff -Nru network-manager-applet-0.9.4.1/config.sub network-manager-applet-0.9.6.2+git201210311320.2620/config.sub --- network-manager-applet-0.9.4.1/config.sub 2010-03-29 11:21:24.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/config.sub 1970-01-01 00:00:00.000000000 +0000 @@ -1,1705 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. - -timestamp='2009-11-20' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Please send patches to . Submit a context -# diff and a properly formatted GNU ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e \ - | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze) - basic_machine=microblaze-xilinx - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tile*) - basic_machine=tile-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff -Nru network-manager-applet-0.9.4.1/configure network-manager-applet-0.9.6.2+git201210311320.2620/configure --- network-manager-applet-0.9.4.1/configure 2012-03-23 22:55:41.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/configure 1970-01-01 00:00:00.000000000 +0000 @@ -1,17476 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for nm-applet 0.9.4.1. -# -# Report bugs to . -# -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1 - - test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ - || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: https://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager -$0: about your system, including any error possibly output -$0: before this message. Then install a modern shell, or -$0: manually run the script under such a shell if you do -$0: have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - -SHELL=${CONFIG_SHELL-/bin/sh} - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='nm-applet' -PACKAGE_TARNAME='network-manager-applet' -PACKAGE_VERSION='0.9.4.1' -PACKAGE_STRING='nm-applet 0.9.4.1' -PACKAGE_BUGREPORT='https://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager' -PACKAGE_URL='' - -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -DISABLE_DEPRECATED -GCONF_SCHEMAS_INSTALL_FALSE -GCONF_SCHEMAS_INSTALL_TRUE -GCONF_SCHEMA_FILE_DIR -GCONF_SCHEMA_CONFIG_SOURCE -GCONFTOOL -GLIB_GENMARSHAL -HAVE_GBT_FALSE -HAVE_GBT_TRUE -GNOME_BLUETOOTH_LIBS -GNOME_BLUETOOTH_CFLAGS -DBUS_SYS_DIR -HAVE_DBUS_126_FALSE -HAVE_DBUS_126_TRUE -DBUS_126_LIBS -DBUS_126_CFLAGS -GTK_LIBS -GTK_CFLAGS -NOTIFY_LIBS -NOTIFY_CFLAGS -LIBNOTIFY_07_LIBS -LIBNOTIFY_07_CFLAGS -GNOME_KEYRING_LIBS -GNOME_KEYRING_CFLAGS -GCONF_LIBS -GCONF_CFLAGS -NMA_LIBS -NMA_CFLAGS -GOBJECT_LIBS -GOBJECT_CFLAGS -ISO_CODES_LIBS -ISO_CODES_CFLAGS -MKINSTALLDIRS -POSUB -POFILES -PO_IN_DATADIR_FALSE -PO_IN_DATADIR_TRUE -INTLLIBS -INSTOBJEXT -GMOFILES -CATOBJEXT -CATALOGS -MSGFMT_OPTS -GETTEXT_PACKAGE -DATADIRNAME -ALL_LINGUAS -INTLTOOL_PERL -GMSGFMT -MSGFMT -MSGMERGE -XGETTEXT -INTLTOOL_POLICY_RULE -INTLTOOL_SERVICE_RULE -INTLTOOL_THEME_RULE -INTLTOOL_SCHEMAS_RULE -INTLTOOL_CAVES_RULE -INTLTOOL_XML_NOMERGE_RULE -INTLTOOL_XML_RULE -INTLTOOL_KBD_RULE -INTLTOOL_XAM_RULE -INTLTOOL_UI_RULE -INTLTOOL_SOUNDLIST_RULE -INTLTOOL_SHEET_RULE -INTLTOOL_SERVER_RULE -INTLTOOL_PONG_RULE -INTLTOOL_OAF_RULE -INTLTOOL_PROP_RULE -INTLTOOL_KEYS_RULE -INTLTOOL_DIRECTORY_RULE -INTLTOOL_DESKTOP_RULE -INTLTOOL_EXTRACT -INTLTOOL_MERGE -INTLTOOL_UPDATE -USE_NLS -LIBOBJS -OTOOL64 -OTOOL -LIPO -NMEDIT -DSYMUTIL -MANIFEST_TOOL -RANLIB -ac_ct_AR -AR -DLLTOOL -OBJDUMP -LN_S -NM -ac_ct_DUMPBIN -DUMPBIN -LD -FGREP -SED -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -LIBTOOL -EGREP -GREP -CPP -PKG_CONFIG_LIBDIR -PKG_CONFIG_PATH -PKG_CONFIG -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_maintainer_mode -enable_silent_rules -enable_dependency_tracking -enable_shared -enable_static -with_pic -enable_fast_install -with_gnu_ld -with_sysroot -enable_libtool_lock -enable_nls -enable_iso_codes -with_gtkver -with_dbus_sys -with_bluetooth -with_gconf_source -with_gconf_schema_file_dir -enable_schemas_install -enable_more_warnings -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -PKG_CONFIG -PKG_CONFIG_PATH -PKG_CONFIG_LIBDIR -CPP -ISO_CODES_CFLAGS -ISO_CODES_LIBS -GOBJECT_CFLAGS -GOBJECT_LIBS -NMA_CFLAGS -NMA_LIBS -GCONF_CFLAGS -GCONF_LIBS -GNOME_KEYRING_CFLAGS -GNOME_KEYRING_LIBS -LIBNOTIFY_07_CFLAGS -LIBNOTIFY_07_LIBS -NOTIFY_CFLAGS -NOTIFY_LIBS -GTK_CFLAGS -GTK_LIBS -DBUS_126_CFLAGS -DBUS_126_LIBS -GNOME_BLUETOOTH_CFLAGS -GNOME_BLUETOOTH_LIBS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures nm-applet 0.9.4.1 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root - [DATAROOTDIR/doc/network-manager-applet] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of nm-applet 0.9.4.1:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-maintainer-mode disable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0') - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-static[=PKGS] build static libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --disable-nls do not use Native Language Support - --disable-iso-codes do not check for iso-codes at build-time - --disable-schemas-install - Disable the schemas installation - --enable-more-warnings Possible values: no/yes/error - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-sysroot=DIR Search for dependent libraries within DIR - (or the compiler's sysroot if not specified). - --with-gtkver The major version of GTK+ to build with - --with-dbus-sys=DIR where D-BUS system.d directory is - --with-bluetooth|--without-bluetooth - Enable Bluetooth support - --with-gconf-source=sourceaddress - Config database for installing schema files. - --with-gconf-schema-file-dir=dir - Directory for installing schema files. - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - PKG_CONFIG path to pkg-config utility - PKG_CONFIG_PATH - directories to add to pkg-config's search path - PKG_CONFIG_LIBDIR - path overriding pkg-config's built-in search path - CPP C preprocessor - ISO_CODES_CFLAGS - C compiler flags for ISO_CODES, overriding pkg-config - ISO_CODES_LIBS - linker flags for ISO_CODES, overriding pkg-config - GOBJECT_CFLAGS - C compiler flags for GOBJECT, overriding pkg-config - GOBJECT_LIBS - linker flags for GOBJECT, overriding pkg-config - NMA_CFLAGS C compiler flags for NMA, overriding pkg-config - NMA_LIBS linker flags for NMA, overriding pkg-config - GCONF_CFLAGS - C compiler flags for GCONF, overriding pkg-config - GCONF_LIBS linker flags for GCONF, overriding pkg-config - GNOME_KEYRING_CFLAGS - C compiler flags for GNOME_KEYRING, overriding pkg-config - GNOME_KEYRING_LIBS - linker flags for GNOME_KEYRING, overriding pkg-config - LIBNOTIFY_07_CFLAGS - C compiler flags for LIBNOTIFY_07, overriding pkg-config - LIBNOTIFY_07_LIBS - linker flags for LIBNOTIFY_07, overriding pkg-config - NOTIFY_CFLAGS - C compiler flags for NOTIFY, overriding pkg-config - NOTIFY_LIBS linker flags for NOTIFY, overriding pkg-config - GTK_CFLAGS C compiler flags for GTK, overriding pkg-config - GTK_LIBS linker flags for GTK, overriding pkg-config - DBUS_126_CFLAGS - C compiler flags for DBUS_126, overriding pkg-config - DBUS_126_LIBS - linker flags for DBUS_126, overriding pkg-config - GNOME_BLUETOOTH_CFLAGS - C compiler flags for GNOME_BLUETOOTH, overriding pkg-config - GNOME_BLUETOOTH_LIBS - linker flags for GNOME_BLUETOOTH, overriding pkg-config - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -nm-applet configure 0.9.4.1 -generated by GNU Autoconf 2.68 - -Copyright (C) 2010 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ------------------------------------------------------------------------------ ## -## Report this to https://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager ## -## ------------------------------------------------------------------------------ ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func - -# ac_fn_c_check_type LINENO TYPE VAR INCLUDES -# ------------------------------------------- -# Tests whether TYPE exists after having included INCLUDES, setting cache -# variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_type -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by nm-applet $as_me 0.9.4.1, which was -generated by GNU Autoconf 2.68. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -ac_config_headers="$ac_config_headers config.h" - - - -am__api_version='1.11' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; -esac - -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken -alias in your environment" "$LINENO" 5 - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='network-manager-applet' - VERSION='0.9.4.1' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to disable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to disable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - -# Support silent build rules, requires at least automake-1.11. Disable -# by either passing --disable-silent-rules to configure or passing V=1 -# to make -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=1;; -esac -AM_BACKSLASH='\' - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -if test "x$CC" != xcc; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 -$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 -$as_echo_n "checking whether cc understands -c and -o together... " >&6; } -fi -set dummy $CC; ac_cc=`$as_echo "$2" | - sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -# Make sure it works both with $CC and with simple cc. -# We do the test twice because some compilers refuse to overwrite an -# existing .o file with -o, though they will create one. -ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' -rm -f conftest2.* -if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && - test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; -then - eval ac_cv_prog_cc_${ac_cc}_c_o=yes - if test "x$CC" != xcc; then - # Test first that cc exists at all. - if { ac_try='cc -c conftest.$ac_ext >&5' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' - rm -f conftest2.* - if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && - test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; - then - # cc works too. - : - else - # cc exists but doesn't like -o. - eval ac_cv_prog_cc_${ac_cc}_c_o=no - fi - fi - fi -else - eval ac_cv_prog_cc_${ac_cc}_c_o=no -fi -rm -f core conftest* - -fi -if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h - -fi - -# FIXME: we rely on the cache variable name because -# there is no other way. -set dummy $CC -am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o -if test "$am_t" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi - - - - - - - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = xyes; then : - MINIX=yes -else - MINIX= -fi - - - if test "$MINIX" = yes; then - -$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h - - -$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h - - -$as_echo "#define _MINIX 1" >>confdefs.h - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 -$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if ${ac_cv_safe_to_define___extensions__+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# define __EXTENSIONS__ 1 - $ac_includes_default -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_safe_to_define___extensions__=yes -else - ac_cv_safe_to_define___extensions__=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 -$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } - test $ac_cv_safe_to_define___extensions__ = yes && - $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h - - $as_echo "#define _ALL_SOURCE 1" >>confdefs.h - - $as_echo "#define _GNU_SOURCE 1" >>confdefs.h - - $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h - - - - - -case `pwd` in - *\ * | *\ *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; -esac - - - -macro_version='2.4' -macro_revision='1.3293' - - - - - - - - - - - - - -ltmain="$ac_aux_dir/ltmain.sh" - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 -$as_echo_n "checking how to print strings... " >&6; } -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "" -} - -case "$ECHO" in - printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 -$as_echo "printf" >&6; } ;; - print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 -$as_echo "print -r" >&6; } ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 -$as_echo "cat" >&6; } ;; -esac - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed - -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 -$as_echo_n "checking for fgrep... " >&6; } -if ${ac_cv_path_FGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - if test -z "$FGREP"; then - ac_path_FGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue -# Check for GNU ac_path_FGREP and select it if it is found. - # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in -*GNU*) - ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" - ac_path_FGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_FGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_FGREP=$FGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" - - -test -z "$GREP" && GREP=grep - - - - - - - - - - - - - - - - - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if ${lt_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${lt_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 -$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if ${lt_cv_path_NM+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - if test -n "$ac_tool_prefix"; then - for ac_prog in dumpbin "link -dump" - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DUMPBIN"; then - ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DUMPBIN=$ac_cv_prog_DUMPBIN -if test -n "$DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 -$as_echo "$DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$DUMPBIN" && break - done -fi -if test -z "$DUMPBIN"; then - ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in dumpbin "link -dump" -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DUMPBIN"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN -if test -n "$ac_ct_DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 -$as_echo "$ac_ct_DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_DUMPBIN" && break -done - - if test "x$ac_ct_DUMPBIN" = x; then - DUMPBIN=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DUMPBIN=$ac_ct_DUMPBIN - fi -fi - - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - DUMPBIN=: - ;; - esac - fi - - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi -fi -test -z "$NM" && NM=nm - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 -$as_echo_n "checking the name lister ($NM) interface... " >&6; } -if ${lt_cv_nm_interface+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -$as_echo "$lt_cv_nm_interface" >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -# find the maximum length of command line arguments -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 -$as_echo_n "checking the maximum length of command line arguments... " >&6; } -if ${lt_cv_sys_max_cmd_len+:} false; then : - $as_echo_n "(cached) " >&6 -else - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } -fi -max_cmd_len=$lt_cv_sys_max_cmd_len - - - - - - -: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -$as_echo "$xsi_shell" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -lt_shell_append=no -( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -$as_echo "$lt_shell_append" >&6; } - - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi - - - - - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -if ${lt_cv_to_host_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac - -fi - -to_host_file_cmd=$lt_cv_to_host_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -$as_echo "$lt_cv_to_host_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -if ${lt_cv_to_tool_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - #assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac - -fi - -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -$as_echo "$lt_cv_to_tool_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 -$as_echo_n "checking for $LD option to reload object files... " >&6; } -if ${lt_cv_ld_reload_flag+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_reload_flag='-r' -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$lt_cv_ld_reload_flag" >&6; } -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - if test "$GCC" != yes; then - reload_cmds=false - fi - ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 -$as_echo_n "checking how to recognize dependent libraries... " >&6; } -if ${lt_cv_deplibs_check_method+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[4-9]*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. - if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - - - - - - - - - - - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - - - - - - - -if test -n "$ac_tool_prefix"; then - for ac_prog in ar - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AR" && break - done -fi -if test -z "$AR"; then - ac_ct_AR=$AR - for ac_prog in ar -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_AR" && break -done - - if test "x$ac_ct_AR" = x; then - AR="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -fi - -: ${AR=ar} -: ${AR_FLAGS=cru} - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -$as_echo_n "checking for archiver @FILE support... " >&6; } -if ${lt_cv_ar_at_file+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ar_at_file=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -$as_echo "$lt_cv_ar_at_file" >&6; } - -if test "x$lt_cv_ar_at_file" = xno; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -test -z "$STRIP" && STRIP=: - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -test -z "$RANLIB" && RANLIB=: - - - - - - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 -$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if ${lt_cv_sys_global_symbol_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[ABCDGISTW]' - ;; -hpux*) - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK '"\ -" {last_section=section; section=\$ 3};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -$as_echo_n "checking for sysroot... " >&6; } - -# Check whether --with-sysroot was given. -if test "${with_sysroot+set}" = set; then : - withval=$with_sysroot; -else - with_sysroot=no -fi - - -lt_sysroot= -case ${with_sysroot} in #( - yes) - if test "$GCC" = yes; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 -$as_echo "${with_sysroot}" >&6; } - as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 - ;; -esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -$as_echo "${lt_sysroot:-no}" >&6; } - - - - - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -fi - -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line '$LINENO' "configure"' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 -$as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if ${lt_cv_cc_needs_belf+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_cc_needs_belf=yes -else - lt_cv_cc_needs_belf=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -$as_echo "$lt_cv_cc_needs_belf" >&6; } - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -sparc*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks="$enable_libtool_lock" - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -set dummy ${ac_tool_prefix}mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MANIFEST_TOOL"; then - ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -if test -n "$MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -$as_echo "$MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_MANIFEST_TOOL"; then - ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL - # Extract the first word of "mt", so it can be a program name with args. -set dummy mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_MANIFEST_TOOL"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -if test -n "$ac_ct_MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_MANIFEST_TOOL" = x; then - MANIFEST_TOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL - fi -else - MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -fi - -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -if ${lt_cv_path_mainfest_tool+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&5 - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -$as_echo "$lt_cv_path_mainfest_tool" >&6; } -if test "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: -fi - - - - - - - case $host_os in - rhapsody* | darwin*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. -set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DSYMUTIL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 -$as_echo "$DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DSYMUTIL"; then - ac_ct_DSYMUTIL=$DSYMUTIL - # Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DSYMUTIL"; then - ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL -if test -n "$ac_ct_DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 -$as_echo "$ac_ct_DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DSYMUTIL" = x; then - DSYMUTIL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DSYMUTIL=$ac_ct_DSYMUTIL - fi -else - DSYMUTIL="$ac_cv_prog_DSYMUTIL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. -set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_NMEDIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NMEDIT"; then - ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -NMEDIT=$ac_cv_prog_NMEDIT -if test -n "$NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 -$as_echo "$NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_NMEDIT"; then - ac_ct_NMEDIT=$NMEDIT - # Extract the first word of "nmedit", so it can be a program name with args. -set dummy nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_NMEDIT"; then - ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_NMEDIT="nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT -if test -n "$ac_ct_NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 -$as_echo "$ac_ct_NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_NMEDIT" = x; then - NMEDIT=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - NMEDIT=$ac_ct_NMEDIT - fi -else - NMEDIT="$ac_cv_prog_NMEDIT" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. -set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_LIPO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$LIPO"; then - ac_cv_prog_LIPO="$LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -LIPO=$ac_cv_prog_LIPO -if test -n "$LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 -$as_echo "$LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_LIPO"; then - ac_ct_LIPO=$LIPO - # Extract the first word of "lipo", so it can be a program name with args. -set dummy lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_LIPO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_LIPO"; then - ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_LIPO="lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO -if test -n "$ac_ct_LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 -$as_echo "$ac_ct_LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_LIPO" = x; then - LIPO=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - LIPO=$ac_ct_LIPO - fi -else - LIPO="$ac_cv_prog_LIPO" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL"; then - ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL=$ac_cv_prog_OTOOL -if test -n "$OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 -$as_echo "$OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL"; then - ac_ct_OTOOL=$OTOOL - # Extract the first word of "otool", so it can be a program name with args. -set dummy otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL"; then - ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OTOOL="otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL -if test -n "$ac_ct_OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 -$as_echo "$ac_ct_OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL" = x; then - OTOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL=$ac_ct_OTOOL - fi -else - OTOOL="$ac_cv_prog_OTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OTOOL64+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL64"; then - ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL64=$ac_cv_prog_OTOOL64 -if test -n "$OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 -$as_echo "$OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL64"; then - ac_ct_OTOOL64=$OTOOL64 - # Extract the first word of "otool64", so it can be a program name with args. -set dummy otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL64"; then - ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OTOOL64="otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 -if test -n "$ac_ct_OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 -$as_echo "$ac_ct_OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL64" = x; then - OTOOL64=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL64=$ac_ct_OTOOL64 - fi -else - OTOOL64="$ac_cv_prog_OTOOL64" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 -$as_echo_n "checking for -single_module linker flag... " >&6; } -if ${lt_cv_apple_cc_single_mod+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&5 - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 -$as_echo "$lt_cv_apple_cc_single_mod" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 -$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } -if ${lt_cv_ld_exported_symbols_list+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_ld_exported_symbols_list=yes -else - lt_cv_ld_exported_symbols_list=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 -$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 -$as_echo_n "checking for -force_load linker flag... " >&6; } -if ${lt_cv_ld_force_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 - echo "$RANLIB libconftest.a" >&5 - $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&5 - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 -$as_echo "$lt_cv_ld_force_load" >&6; } - case $host_os in - rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[012]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac - -for ac_header in dlfcn.h -do : - ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default -" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - -fi - -done - - - - - -# Set options - - - - enable_dlopen=no - - - enable_win32_dll=no - - - # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_shared=yes -fi - - - - - - - - - - # Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_static=yes -fi - - - - - - - - - - -# Check whether --with-pic was given. -if test "${with_pic+set}" = set; then : - withval=$with_pic; pic_mode="$withval" -else - pic_mode=default -fi - - -test -z "$pic_mode" && pic_mode=default - - - - - - - - # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then : - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_fast_install=yes -fi - - - - - - - - - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - - - - - - - - - - - - - - - - - - - - - - - - - - -test -z "$LN_S" && LN_S="ln -s" - - - - - - - - - - - - - - -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 -$as_echo_n "checking for objdir... " >&6; } -if ${lt_cv_objdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -$as_echo "$lt_cv_objdir" >&6; } -objdir=$lt_cv_objdir - - - - - -cat >>confdefs.h <<_ACEOF -#define LT_OBJDIR "$lt_cv_objdir/" -_ACEOF - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` - - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 -$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 -$as_echo_n "checking for file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -# Use C for the default configuration in the libtool script - -lt_save_CC="$CC" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - -lt_prog_compiler_no_builtin_flag= - -if test "$GCC" = yes; then - case $cc_basename in - nvcc*) - lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; - *) - lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - - - - - - - lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - lt_prog_compiler_pic='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - lt_prog_compiler_static= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - lt_prog_compiler_wl='-Xlinker ' - lt_prog_compiler_pic='-Xcompiler -fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; - nagfor*) - # NAG Fortran compiler - lt_prog_compiler_wl='-Wl,-Wl,,' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-qpic' - lt_prog_compiler_static='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' - ;; - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' - ;; - esac - ;; - esac - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -if ${lt_cv_prog_compiler_pic+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -$as_echo "$lt_cv_prog_compiler_pic" >&6; } -lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if ${lt_cv_prog_compiler_pic_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 -$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } - -if test x"$lt_cv_prog_compiler_pic_works" = xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi - - - - - - - - - - - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if ${lt_cv_prog_compiler_static_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works=yes - fi - else - lt_cv_prog_compiler_static_works=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 -$as_echo "$lt_cv_prog_compiler_static_works" >&6; } - -if test x"$lt_cv_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag= - always_export_symbols=no - archive_cmds= - archive_expsym_cmds= - compiler_needs_object=no - enable_shared_with_static_runtimes=no - export_dynamic_flag_spec= - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - hardcode_automatic=no - hardcode_direct=no - hardcode_direct_absolute=no - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= - hardcode_libdir_separator= - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - inherit_rpath=no - link_all_deplibs=unknown - module_cmds= - module_expsym_cmds= - old_archive_from_new_cmds= - old_archive_from_expsyms_cmds= - thread_safe_flag_spec= - whole_archive_flag_spec= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; - *\ \(GNU\ Binutils\)\ [3-9]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - export_dynamic_flag_spec='${wl}--export-all-symbols' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' - exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - link_all_deplibs=yes - ;; - - interix[3-9]*) - hardcode_direct=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - whole_archive_flag_spec= - tmp_sharedflag='--shared' ;; - xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - compiler_needs_object=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - compiler_needs_object=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - ld_shlibs=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = no; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_direct_absolute=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - file_list_spec='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - export_dynamic_flag_spec='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - if ${lt_cv_aix_libpath_+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - if ${lt_cv_aix_libpath_+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - fi - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl*) - # Native MSVC - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - always_export_symbols=yes - file_list_spec='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, )='true' - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - old_postinstall_cmds='chmod 644 $oldlib' - postlink_cmds='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - enable_shared_with_static_runtimes=yes - ;; - esac - ;; - - darwin* | rhapsody*) - - - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - else - whole_archive_flag_spec='' - fi - link_all_deplibs=yes - allow_undefined_flag="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - - else - ld_shlibs=no - fi - - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - freebsd1*) - ld_shlibs=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 -$as_echo_n "checking if $CC understands -b... " >&6; } -if ${lt_cv_prog_compiler__b+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler__b=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -b" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler__b=yes - fi - else - lt_cv_prog_compiler__b=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 -$as_echo "$lt_cv_prog_compiler__b" >&6; } - -if test x"$lt_cv_prog_compiler__b" = xyes; then - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -fi - - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -if ${lt_cv_irix_exported_symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int foo (void) { return 0; } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_irix_exported_symbol=yes -else - lt_cv_irix_exported_symbol=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -$as_echo "$lt_cv_irix_exported_symbol" >&6; } - if test "$lt_cv_irix_exported_symbol" = yes; then - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - inherit_rpath=yes - link_all_deplibs=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - hardcode_shlibpath_var=no - hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - archive_cmds_need_lc='no' - hardcode_libdir_separator=: - ;; - - solaris*) - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='${wl}' - archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-R,$libdir' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='${wl}-Blargedynsym' - ;; - esac - fi - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no - -with_gnu_ld=$with_gnu_ld - - - - - - - - - - - - - - - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } -if ${lt_cv_archive_cmds_need_lc+:} false; then : - $as_echo_n "(cached) " >&6 -else - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 - (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - then - lt_cv_archive_cmds_need_lc=no - else - lt_cv_archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 -$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } - archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc - ;; - esac - fi - ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } - -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([A-Za-z]:\),\1,g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[4-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec="$LIB" - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -haiku*) - version_type=linux - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[3-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - if ${lt_cv_shlibpath_overrides_runpath+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : - lt_cv_shlibpath_overrides_runpath=yes -fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - -fi - - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Add ABI-specific directories to the system library path. - sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" - - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || - test -n "$runpath_var" || - test "X$hardcode_automatic" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -$as_echo "$hardcode_action" >&6; } - -if test "$hardcode_action" = relink || - test "$inherit_rpath" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - - - - - - if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if ${ac_cv_lib_dld_shl_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_shl_load=yes -else - ac_cv_lib_dld_shl_load=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -else - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 -$as_echo_n "checking for dlopen in -lsvld... " >&6; } -if ${ac_cv_lib_svld_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_svld_dlopen=yes -else - ac_cv_lib_svld_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 -$as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 -$as_echo_n "checking for dld_link in -ldld... " >&6; } -if ${ac_cv_lib_dld_dld_link+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int -main () -{ -return dld_link (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_dld_link=yes -else - ac_cv_lib_dld_dld_link=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 -$as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = xyes; then : - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 -$as_echo_n "checking whether a program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -$as_echo "$lt_cv_dlopen_self" >&6; } - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 -$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self_static+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$lt_cv_dlopen_self_static" >&6; } - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - - - - - - - - - - - - - - - - -striplib= -old_striplib= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 -$as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -fi - - - - - - - - - - - - - # Report which library types will actually be built - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&6; } - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } - - - - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - - - - - - - - - - - - - ac_config_commands="$ac_config_commands libtool" - - - - -# Only expand once: - - - -for ac_header in fcntl.h paths.h sys/ioctl.h sys/time.h syslog.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" -if test "x$ac_cv_type_mode_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define mode_t int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" -if test "x$ac_cv_type_pid_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define pid_t int -_ACEOF - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if ${ac_cv_header_time+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes -else - ac_cv_header_time=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then - -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h - -fi - - -if test $ac_cv_c_compiler_gnu = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 -$as_echo_n "checking whether $CC needs -traditional... " >&6; } -if ${ac_cv_prog_gcc_traditional+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_pattern="Autoconf.*'x'" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -Autoconf TIOCGETP -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "$ac_pattern" >/dev/null 2>&1; then : - ac_cv_prog_gcc_traditional=yes -else - ac_cv_prog_gcc_traditional=no -fi -rm -f conftest* - - - if test $ac_cv_prog_gcc_traditional = no; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -Autoconf TCGETA -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "$ac_pattern" >/dev/null 2>&1; then : - ac_cv_prog_gcc_traditional=yes -fi -rm -f conftest* - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 -$as_echo "$ac_cv_prog_gcc_traditional" >&6; } - if test $ac_cv_prog_gcc_traditional = yes; then - CC="$CC -traditional" - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 -$as_echo_n "checking for working memcmp... " >&6; } -if ${ac_cv_func_memcmp_working+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_memcmp_working=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Some versions of memcmp are not 8-bit clean. */ - char c0 = '\100', c1 = '\200', c2 = '\201'; - if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) - return 1; - - /* The Next x86 OpenStep bug shows up only when comparing 16 bytes - or more and with at least one buffer not starting on a 4-byte boundary. - William Lewis provided this test program. */ - { - char foo[21]; - char bar[21]; - int i; - for (i = 0; i < 4; i++) - { - char *a = foo + i; - char *b = bar + i; - strcpy (a, "--------01111111"); - strcpy (b, "--------10000000"); - if (memcmp (a, b, 16) >= 0) - return 1; - } - return 0; - } - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_memcmp_working=yes -else - ac_cv_func_memcmp_working=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 -$as_echo "$ac_cv_func_memcmp_working" >&6; } -test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in - *" memcmp.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" - ;; -esac - - -for ac_func in select socket uname -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - # Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - - - - -case "$am__api_version" in - 1.01234) - as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 - ;; - *) - ;; -esac - -if test -n "0.40.0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.40.0" >&5 -$as_echo_n "checking for intltool >= 0.40.0... " >&6; } - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.40.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 -$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } - test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - as_fn_error $? "Your intltool is too old. You need intltool 0.40.0 or later." "$LINENO" 5 -fi - -# Extract the first word of "intltool-update", so it can be a program name with args. -set dummy intltool-update; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_UPDATE in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE -if test -n "$INTLTOOL_UPDATE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 -$as_echo "$INTLTOOL_UPDATE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "intltool-merge", so it can be a program name with args. -set dummy intltool-merge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_MERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE -if test -n "$INTLTOOL_MERGE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 -$as_echo "$INTLTOOL_MERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "intltool-extract", so it can be a program name with args. -set dummy intltool-extract; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_EXTRACT in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT -if test -n "$INTLTOOL_EXTRACT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 -$as_echo "$INTLTOOL_EXTRACT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 -fi - - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Check the gettext tools to make sure they are GNU -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $XGETTEXT in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -XGETTEXT=$ac_cv_path_XGETTEXT -if test -n "$XGETTEXT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MSGMERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -MSGMERGE=$ac_cv_path_MSGMERGE -if test -n "$MSGMERGE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -MSGFMT=$ac_cv_path_MSGFMT -if test -n "$MSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 -fi -xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" -mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" -mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 -fi - -# Extract the first word of "perl", so it can be a program name with args. -set dummy perl; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_PERL+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_PERL in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL -if test -n "$INTLTOOL_PERL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 -$as_echo "$INTLTOOL_PERL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$INTLTOOL_PERL"; then - as_fn_error $? "perl not found" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 -$as_echo_n "checking for perl >= 5.8.1... " >&6; } -$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 -if test $? -ne 0; then - as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 -else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 -$as_echo "$IT_PERL_VERSION" >&6; } -fi -if test "x" != "xno-xml"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 -$as_echo_n "checking for XML::Parser... " >&6; } - if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } - else - as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 - fi -fi - -# Substitute ALL_LINGUAS so we can use it in po/Makefile - - -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - DATADIRNAME=share -else - case $host in - *-*-solaris*) - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - DATADIRNAME=share -else - DATADIRNAME=lib -fi - - ;; - *) - DATADIRNAME=lib - ;; - esac -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - - - - - - -GETTEXT_PACKAGE=nm-applet - - -cat >>confdefs.h <<_ACEOF -#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" -_ACEOF - - - for ac_header in locale.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" -if test "x$ac_cv_header_locale_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LOCALE_H 1 -_ACEOF - -fi - -done - - if test $ac_cv_header_locale_h = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 -$as_echo_n "checking for LC_MESSAGES... " >&6; } -if ${am_cv_val_LC_MESSAGES+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_val_LC_MESSAGES=yes -else - am_cv_val_LC_MESSAGES=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 -$as_echo "$am_cv_val_LC_MESSAGES" >&6; } - if test $am_cv_val_LC_MESSAGES = yes; then - -$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h - - fi - fi - USE_NLS=yes - - - gt_cv_have_gettext=no - - CATOBJEXT=NONE - XGETTEXT=: - INTLLIBS= - - ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" -if test "x$ac_cv_header_libintl_h" = xyes; then : - gt_cv_func_dgettext_libintl="no" - libintl_extra_libs="" - - # - # First check in libc - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 -$as_echo_n "checking for ngettext in libc... " >&6; } -if ${gt_cv_func_ngettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ -return !ngettext ("","", 1) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_ngettext_libc=yes -else - gt_cv_func_ngettext_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 -$as_echo "$gt_cv_func_ngettext_libc" >&6; } - - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 -$as_echo_n "checking for dgettext in libc... " >&6; } -if ${gt_cv_func_dgettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ -return !dgettext ("","") - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_dgettext_libc=yes -else - gt_cv_func_dgettext_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 -$as_echo "$gt_cv_func_dgettext_libc" >&6; } - fi - - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BIND_TEXTDOMAIN_CODESET 1 -_ACEOF - -fi -done - - fi - - # - # If we don't have everything we want, check in libintl - # - if test "$gt_cv_func_dgettext_libc" != "yes" \ - || test "$gt_cv_func_ngettext_libc" != "yes" \ - || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 -$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } -if ${ac_cv_lib_intl_bindtextdomain+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char bindtextdomain (); -int -main () -{ -return bindtextdomain (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_bindtextdomain=yes -else - ac_cv_lib_intl_bindtextdomain=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 -$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } -if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 -$as_echo_n "checking for ngettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_ngettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ngettext (); -int -main () -{ -return ngettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_ngettext=yes -else - ac_cv_lib_intl_ngettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 -$as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 -$as_echo_n "checking for dgettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_dgettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dgettext (); -int -main () -{ -return dgettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_dgettext=yes -else - ac_cv_lib_intl_dgettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 -$as_echo "$ac_cv_lib_intl_dgettext" >&6; } -if test "x$ac_cv_lib_intl_dgettext" = xyes; then : - gt_cv_func_dgettext_libintl=yes -fi - -fi - -fi - - - if test "$gt_cv_func_dgettext_libintl" != "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 -$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 -$as_echo_n "checking for ngettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_ngettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ngettext (); -int -main () -{ -return ngettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_ngettext=yes -else - ac_cv_lib_intl_ngettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 -$as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 -$as_echo_n "checking for dcgettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_dcgettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dcgettext (); -int -main () -{ -return dcgettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_dcgettext=yes -else - ac_cv_lib_intl_dcgettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 -$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } -if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : - gt_cv_func_dgettext_libintl=yes - libintl_extra_libs=-liconv -else - : -fi - -else - : -fi - - fi - - # - # If we found libintl, then check in it for bind_textdomain_codeset(); - # we'll prefer libc if neither have bind_textdomain_codeset(), - # and both have dgettext and ngettext - # - if test "$gt_cv_func_dgettext_libintl" = "yes" ; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $libintl_extra_libs" - unset ac_cv_func_bind_textdomain_codeset - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BIND_TEXTDOMAIN_CODESET 1 -_ACEOF - -fi -done - - LIBS="$glib_save_LIBS" - - if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then - gt_cv_func_dgettext_libc=no - else - if test "$gt_cv_func_dgettext_libc" = "yes" \ - && test "$gt_cv_func_ngettext_libc" = "yes"; then - gt_cv_func_dgettext_libintl=no - fi - fi - fi - fi - - if test "$gt_cv_func_dgettext_libc" = "yes" \ - || test "$gt_cv_func_dgettext_libintl" = "yes"; then - gt_cv_have_gettext=yes - fi - - if test "$gt_cv_func_dgettext_libintl" = "yes"; then - INTLLIBS="-lintl $libintl_extra_libs" - fi - - if test "$gt_cv_have_gettext" = "yes"; then - -$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h - - # Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - /*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then - ac_cv_path_MSGFMT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - if test "$MSGFMT" != "no"; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - for ac_func in dcgettext -do : - ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" -if test "x$ac_cv_func_dcgettext" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DCGETTEXT 1 -_ACEOF - -fi -done - - MSGFMT_OPTS= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 -$as_echo_n "checking if msgfmt accepts -c... " >&6; } - cat >conftest.foo <<_ACEOF - -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: test 1.0\n" -"PO-Revision-Date: 2007-02-15 12:01+0100\n" -"Last-Translator: test \n" -"Language-Team: C \n" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" - -_ACEOF -if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 - ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -echo "$as_me: failed input was:" >&5 -sed 's/^/| /' conftest.foo >&5 -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - # Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - /*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - CATOBJEXT=.gmo - DATADIRNAME=share -else - case $host in - *-*-solaris*) - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - CATOBJEXT=.gmo - DATADIRNAME=share -else - CATOBJEXT=.mo - DATADIRNAME=lib -fi - - ;; - *-*-openbsd*) - CATOBJEXT=.mo - DATADIRNAME=share - ;; - *) - CATOBJEXT=.mo - DATADIRNAME=lib - ;; - esac -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$glib_save_LIBS" - INSTOBJEXT=.mo - else - gt_cv_have_gettext=no - fi - fi - -fi - - - - if test "$gt_cv_have_gettext" = "yes" ; then - -$as_echo "#define ENABLE_NLS 1" >>confdefs.h - - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - fi - - # We need to process the po/ directory. - POSUB=po - - ac_config_commands="$ac_config_commands default-1" - - - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - - - - - - - - - - - - - - if test "$gt_cv_have_gettext" = "yes"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 -$as_echo_n "checking for catalogs to be installed... " >&6; } - NEW_LINGUAS= - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - NEW_LINGUAS="$NEW_LINGUAS $presentlang" - fi - done - LINGUAS=$NEW_LINGUAS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 -$as_echo "$LINGUAS" >&6; } - fi - - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - - - test -d po || mkdir po - if test "x$srcdir" != "x."; then - if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then - posrcprefix="$srcdir/" - else - posrcprefix="../$srcdir/" - fi - else - posrcprefix="../" - fi - rm -f po/POTFILES - sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ - < $srcdir/po/POTFILES.in > po/POTFILES - - -# Check for iso-codes for country names translation -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to disable iso-codes at build-time" >&5 -$as_echo_n "checking whether to disable iso-codes at build-time... " >&6; } -# Check whether --enable-iso-codes was given. -if test "${enable_iso_codes+set}" = set; then : - enableval=$enable_iso_codes; -else - disable_iso_codes_check=no -fi - -if test x$disable_iso_codes_check = xno ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi - -if test x$disable_iso_codes_check = "xno" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iso-codes has iso_3166 domain" >&5 -$as_echo_n "checking whether iso-codes has iso_3166 domain... " >&6; } - if $PKG_CONFIG --variable=domains iso-codes | grep iso_3166 >/dev/null ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - -cat >>confdefs.h <<_ACEOF -#define ISO_CODES_PREFIX "`$PKG_CONFIG --variable=prefix iso-codes`" -_ACEOF - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ISO_CODES" >&5 -$as_echo_n "checking for ISO_CODES... " >&6; } - -if test -n "$ISO_CODES_CFLAGS"; then - pkg_cv_ISO_CODES_CFLAGS="$ISO_CODES_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"iso-codes\""; } >&5 - ($PKG_CONFIG --exists --print-errors "iso-codes") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ISO_CODES_CFLAGS=`$PKG_CONFIG --cflags "iso-codes" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$ISO_CODES_LIBS"; then - pkg_cv_ISO_CODES_LIBS="$ISO_CODES_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"iso-codes\""; } >&5 - ($PKG_CONFIG --exists --print-errors "iso-codes") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ISO_CODES_LIBS=`$PKG_CONFIG --libs "iso-codes" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - ISO_CODES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "iso-codes" 2>&1` - else - ISO_CODES_PKG_ERRORS=`$PKG_CONFIG --print-errors "iso-codes" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$ISO_CODES_PKG_ERRORS" >&5 - - echo -e "\n$ISO_CODES_PKG_ERRORS.\n" - echo "Consider installing the package or adjusting the PKG_CONFIG_PATH environment variable." - echo "You can also disable build-time check for 'iso-codes' via --disable-iso-codes"; - exit 1; -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo -e "\n$ISO_CODES_PKG_ERRORS.\n" - echo "Consider installing the package or adjusting the PKG_CONFIG_PATH environment variable." - echo "You can also disable build-time check for 'iso-codes' via --disable-iso-codes"; - exit 1; -else - ISO_CODES_CFLAGS=$pkg_cv_ISO_CODES_CFLAGS - ISO_CODES_LIBS=$pkg_cv_ISO_CODES_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi -else - -cat >>confdefs.h <<_ACEOF -#define ISO_CODES_PREFIX "$prefix" -_ACEOF - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GOBJECT" >&5 -$as_echo_n "checking for GOBJECT... " >&6; } - -if test -n "$GOBJECT_CFLAGS"; then - pkg_cv_GOBJECT_CFLAGS="$GOBJECT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gobject-2.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GOBJECT_CFLAGS=`$PKG_CONFIG --cflags "gobject-2.0" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GOBJECT_LIBS"; then - pkg_cv_GOBJECT_LIBS="$GOBJECT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gobject-2.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GOBJECT_LIBS=`$PKG_CONFIG --libs "gobject-2.0" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GOBJECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gobject-2.0" 2>&1` - else - GOBJECT_PKG_ERRORS=`$PKG_CONFIG --print-errors "gobject-2.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GOBJECT_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (gobject-2.0) were not met: - -$GOBJECT_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables GOBJECT_CFLAGS -and GOBJECT_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables GOBJECT_CFLAGS -and GOBJECT_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } - -else - GOBJECT_CFLAGS=$pkg_cv_GOBJECT_CFLAGS - GOBJECT_LIBS=$pkg_cv_GOBJECT_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for NMA" >&5 -$as_echo_n "checking for NMA... " >&6; } - -if test -n "$NMA_CFLAGS"; then - pkg_cv_NMA_CFLAGS="$NMA_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-glib-1 >= 0.74 - glib-2.0 >= 2.16 - NetworkManager >= 0.9.4 - libnm-glib >= 0.9.4 - libnm-util >= 0.9.4 - libnm-glib-vpn >= 0.9.4 - gmodule-export-2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "dbus-glib-1 >= 0.74 - glib-2.0 >= 2.16 - NetworkManager >= 0.9.4 - libnm-glib >= 0.9.4 - libnm-util >= 0.9.4 - libnm-glib-vpn >= 0.9.4 - gmodule-export-2.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_NMA_CFLAGS=`$PKG_CONFIG --cflags "dbus-glib-1 >= 0.74 - glib-2.0 >= 2.16 - NetworkManager >= 0.9.4 - libnm-glib >= 0.9.4 - libnm-util >= 0.9.4 - libnm-glib-vpn >= 0.9.4 - gmodule-export-2.0" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$NMA_LIBS"; then - pkg_cv_NMA_LIBS="$NMA_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-glib-1 >= 0.74 - glib-2.0 >= 2.16 - NetworkManager >= 0.9.4 - libnm-glib >= 0.9.4 - libnm-util >= 0.9.4 - libnm-glib-vpn >= 0.9.4 - gmodule-export-2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "dbus-glib-1 >= 0.74 - glib-2.0 >= 2.16 - NetworkManager >= 0.9.4 - libnm-glib >= 0.9.4 - libnm-util >= 0.9.4 - libnm-glib-vpn >= 0.9.4 - gmodule-export-2.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_NMA_LIBS=`$PKG_CONFIG --libs "dbus-glib-1 >= 0.74 - glib-2.0 >= 2.16 - NetworkManager >= 0.9.4 - libnm-glib >= 0.9.4 - libnm-util >= 0.9.4 - libnm-glib-vpn >= 0.9.4 - gmodule-export-2.0" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - NMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-glib-1 >= 0.74 - glib-2.0 >= 2.16 - NetworkManager >= 0.9.4 - libnm-glib >= 0.9.4 - libnm-util >= 0.9.4 - libnm-glib-vpn >= 0.9.4 - gmodule-export-2.0" 2>&1` - else - NMA_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-glib-1 >= 0.74 - glib-2.0 >= 2.16 - NetworkManager >= 0.9.4 - libnm-glib >= 0.9.4 - libnm-util >= 0.9.4 - libnm-glib-vpn >= 0.9.4 - gmodule-export-2.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$NMA_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (dbus-glib-1 >= 0.74 - glib-2.0 >= 2.16 - NetworkManager >= 0.9.4 - libnm-glib >= 0.9.4 - libnm-util >= 0.9.4 - libnm-glib-vpn >= 0.9.4 - gmodule-export-2.0) were not met: - -$NMA_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables NMA_CFLAGS -and NMA_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables NMA_CFLAGS -and NMA_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } - -else - NMA_CFLAGS=$pkg_cv_NMA_CFLAGS - NMA_LIBS=$pkg_cv_NMA_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCONF" >&5 -$as_echo_n "checking for GCONF... " >&6; } - -if test -n "$GCONF_CFLAGS"; then - pkg_cv_GCONF_CFLAGS="$GCONF_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gconf-2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gconf-2.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GCONF_CFLAGS=`$PKG_CONFIG --cflags "gconf-2.0" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GCONF_LIBS"; then - pkg_cv_GCONF_LIBS="$GCONF_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gconf-2.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gconf-2.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GCONF_LIBS=`$PKG_CONFIG --libs "gconf-2.0" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GCONF_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gconf-2.0" 2>&1` - else - GCONF_PKG_ERRORS=`$PKG_CONFIG --print-errors "gconf-2.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GCONF_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (gconf-2.0) were not met: - -$GCONF_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables GCONF_CFLAGS -and GCONF_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables GCONF_CFLAGS -and GCONF_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } - -else - GCONF_CFLAGS=$pkg_cv_GCONF_CFLAGS - GCONF_LIBS=$pkg_cv_GCONF_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNOME_KEYRING" >&5 -$as_echo_n "checking for GNOME_KEYRING... " >&6; } - -if test -n "$GNOME_KEYRING_CFLAGS"; then - pkg_cv_GNOME_KEYRING_CFLAGS="$GNOME_KEYRING_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnome-keyring-1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gnome-keyring-1") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GNOME_KEYRING_CFLAGS=`$PKG_CONFIG --cflags "gnome-keyring-1" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GNOME_KEYRING_LIBS"; then - pkg_cv_GNOME_KEYRING_LIBS="$GNOME_KEYRING_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnome-keyring-1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gnome-keyring-1") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GNOME_KEYRING_LIBS=`$PKG_CONFIG --libs "gnome-keyring-1" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GNOME_KEYRING_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnome-keyring-1" 2>&1` - else - GNOME_KEYRING_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnome-keyring-1" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GNOME_KEYRING_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (gnome-keyring-1) were not met: - -$GNOME_KEYRING_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables GNOME_KEYRING_CFLAGS -and GNOME_KEYRING_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables GNOME_KEYRING_CFLAGS -and GNOME_KEYRING_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } - -else - GNOME_KEYRING_CFLAGS=$pkg_cv_GNOME_KEYRING_CFLAGS - GNOME_KEYRING_LIBS=$pkg_cv_GNOME_KEYRING_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - -# Check for libnotify >= 0.7 - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBNOTIFY_07" >&5 -$as_echo_n "checking for LIBNOTIFY_07... " >&6; } - -if test -n "$LIBNOTIFY_07_CFLAGS"; then - pkg_cv_LIBNOTIFY_07_CFLAGS="$LIBNOTIFY_07_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnotify >= 0.7\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libnotify >= 0.7") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBNOTIFY_07_CFLAGS=`$PKG_CONFIG --cflags "libnotify >= 0.7" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$LIBNOTIFY_07_LIBS"; then - pkg_cv_LIBNOTIFY_07_LIBS="$LIBNOTIFY_07_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnotify >= 0.7\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libnotify >= 0.7") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBNOTIFY_07_LIBS=`$PKG_CONFIG --libs "libnotify >= 0.7" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - LIBNOTIFY_07_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libnotify >= 0.7" 2>&1` - else - LIBNOTIFY_07_PKG_ERRORS=`$PKG_CONFIG --print-errors "libnotify >= 0.7" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBNOTIFY_07_PKG_ERRORS" >&5 - - have_libnotify_07=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - have_libnotify_07=no -else - LIBNOTIFY_07_CFLAGS=$pkg_cv_LIBNOTIFY_07_CFLAGS - LIBNOTIFY_07_LIBS=$pkg_cv_LIBNOTIFY_07_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_libnotify_07=yes -fi -if test x"$have_libnotify_07" = "xyes"; then - -$as_echo "#define HAVE_LIBNOTIFY_07 1" >>confdefs.h - -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for NOTIFY" >&5 -$as_echo_n "checking for NOTIFY... " >&6; } - -if test -n "$NOTIFY_CFLAGS"; then - pkg_cv_NOTIFY_CFLAGS="$NOTIFY_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnotify >= 0.4.3\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libnotify >= 0.4.3") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_NOTIFY_CFLAGS=`$PKG_CONFIG --cflags "libnotify >= 0.4.3" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$NOTIFY_LIBS"; then - pkg_cv_NOTIFY_LIBS="$NOTIFY_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnotify >= 0.4.3\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libnotify >= 0.4.3") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_NOTIFY_LIBS=`$PKG_CONFIG --libs "libnotify >= 0.4.3" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - NOTIFY_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libnotify >= 0.4.3" 2>&1` - else - NOTIFY_PKG_ERRORS=`$PKG_CONFIG --print-errors "libnotify >= 0.4.3" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$NOTIFY_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (libnotify >= 0.4.3) were not met: - -$NOTIFY_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables NOTIFY_CFLAGS -and NOTIFY_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables NOTIFY_CFLAGS -and NOTIFY_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } - -else - NOTIFY_CFLAGS=$pkg_cv_NOTIFY_CFLAGS - NOTIFY_LIBS=$pkg_cv_NOTIFY_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - -gtk2_req=2.20 -gtk3_req=2.91.4 - -# Check whether --with-gtkver was given. -if test "${with_gtkver+set}" = set; then : - withval=$with_gtkver; with_gtkver="$withval" -else - with_gtkver=0 -fi - -case "${with_gtkver}" in - 0) -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 -$as_echo_n "checking for GTK... " >&6; } - -if test -n "$GTK_CFLAGS"; then - pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 > \$gtk3_req\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 > $gtk3_req") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 > $gtk3_req" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GTK_LIBS"; then - pkg_cv_GTK_LIBS="$GTK_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 > \$gtk3_req\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 > $gtk3_req") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 > $gtk3_req" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-3.0 > $gtk3_req" 2>&1` - else - GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-3.0 > $gtk3_req" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GTK_PKG_ERRORS" >&5 - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 -$as_echo_n "checking for GTK... " >&6; } - -if test -n "$GTK_CFLAGS"; then - pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 > \$gtk2_req\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 > $gtk2_req") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 > $gtk2_req" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GTK_LIBS"; then - pkg_cv_GTK_LIBS="$GTK_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 > \$gtk2_req\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 > $gtk2_req") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 > $gtk2_req" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0 > $gtk2_req" 2>&1` - else - GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0 > $gtk2_req" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GTK_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (gtk+-2.0 > $gtk2_req) were not met: - -$GTK_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables GTK_CFLAGS -and GTK_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables GTK_CFLAGS -and GTK_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } - -else - GTK_CFLAGS=$pkg_cv_GTK_CFLAGS - GTK_LIBS=$pkg_cv_GTK_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 -$as_echo_n "checking for GTK... " >&6; } - -if test -n "$GTK_CFLAGS"; then - pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 > \$gtk2_req\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 > $gtk2_req") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 > $gtk2_req" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GTK_LIBS"; then - pkg_cv_GTK_LIBS="$GTK_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 > \$gtk2_req\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 > $gtk2_req") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 > $gtk2_req" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0 > $gtk2_req" 2>&1` - else - GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0 > $gtk2_req" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GTK_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (gtk+-2.0 > $gtk2_req) were not met: - -$GTK_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables GTK_CFLAGS -and GTK_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables GTK_CFLAGS -and GTK_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } - -else - GTK_CFLAGS=$pkg_cv_GTK_CFLAGS - GTK_LIBS=$pkg_cv_GTK_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi -else - GTK_CFLAGS=$pkg_cv_GTK_CFLAGS - GTK_LIBS=$pkg_cv_GTK_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - ;; - 2) -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 -$as_echo_n "checking for GTK... " >&6; } - -if test -n "$GTK_CFLAGS"; then - pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$gtk2_req\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= $gtk2_req") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= $gtk2_req" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GTK_LIBS"; then - pkg_cv_GTK_LIBS="$GTK_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$gtk2_req\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= $gtk2_req") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= $gtk2_req" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0 >= $gtk2_req" 2>&1` - else - GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0 >= $gtk2_req" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GTK_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (gtk+-2.0 >= $gtk2_req) were not met: - -$GTK_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables GTK_CFLAGS -and GTK_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables GTK_CFLAGS -and GTK_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } - -else - GTK_CFLAGS=$pkg_cv_GTK_CFLAGS - GTK_LIBS=$pkg_cv_GTK_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - ;; - 3) -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 -$as_echo_n "checking for GTK... " >&6; } - -if test -n "$GTK_CFLAGS"; then - pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= \$gtk3_req\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= $gtk3_req") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= $gtk3_req" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GTK_LIBS"; then - pkg_cv_GTK_LIBS="$GTK_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= \$gtk3_req\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= $gtk3_req") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= $gtk3_req" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-3.0 >= $gtk3_req" 2>&1` - else - GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-3.0 >= $gtk3_req" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GTK_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (gtk+-3.0 >= $gtk3_req) were not met: - -$GTK_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables GTK_CFLAGS -and GTK_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables GTK_CFLAGS -and GTK_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } - -else - GTK_CFLAGS=$pkg_cv_GTK_CFLAGS - GTK_LIBS=$pkg_cv_GTK_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - ;; - *) as_fn_error $? "unknown GTK+ version $with_gtkver!" "$LINENO" 5 - ;; -esac - - - -# Check for dbus-1.2.6 or later for deny-by-default rules - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS_126" >&5 -$as_echo_n "checking for DBUS_126... " >&6; } - -if test -n "$DBUS_126_CFLAGS"; then - pkg_cv_DBUS_126_CFLAGS="$DBUS_126_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1 >= 1.2.6\""; } >&5 - ($PKG_CONFIG --exists --print-errors "dbus-1 >= 1.2.6") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_DBUS_126_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 >= 1.2.6" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$DBUS_126_LIBS"; then - pkg_cv_DBUS_126_LIBS="$DBUS_126_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1 >= 1.2.6\""; } >&5 - ($PKG_CONFIG --exists --print-errors "dbus-1 >= 1.2.6") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_DBUS_126_LIBS=`$PKG_CONFIG --libs "dbus-1 >= 1.2.6" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - DBUS_126_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-1 >= 1.2.6" 2>&1` - else - DBUS_126_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-1 >= 1.2.6" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$DBUS_126_PKG_ERRORS" >&5 - - have_dbus_126=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - have_dbus_126=no -else - DBUS_126_CFLAGS=$pkg_cv_DBUS_126_CFLAGS - DBUS_126_LIBS=$pkg_cv_DBUS_126_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_dbus_126=yes -fi - if test x"$have_dbus_126" = "xyes"; then - HAVE_DBUS_126_TRUE= - HAVE_DBUS_126_FALSE='#' -else - HAVE_DBUS_126_TRUE='#' - HAVE_DBUS_126_FALSE= -fi - - - -# Check whether --with-dbus-sys was given. -if test "${with_dbus_sys+set}" = set; then : - withval=$with_dbus_sys; -fi - - -if ! test -z "$with_dbus_sys" ; then - DBUS_SYS_DIR="$with_dbus_sys" -else - DBUS_SYS_DIR="${sysconfdir}/dbus-1/system.d" -fi - - - -# Check whether --with-bluetooth was given. -if test "${with_bluetooth+set}" = set; then : - withval=$with_bluetooth; with_bluetooth="$withval" -else - with_bluetooth=yes -fi - -have_gbt=no -case "${with_bluetooth}" in - no) { $as_echo "$as_me:${as_lineno-$LINENO}: Bluetooth support disabled" >&5 -$as_echo "$as_me: Bluetooth support disabled" >&6;} - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnome-bluetooth" >&5 -$as_echo_n "checking for gnome-bluetooth... " >&6; } - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNOME_BLUETOOTH" >&5 -$as_echo_n "checking for GNOME_BLUETOOTH... " >&6; } - -if test -n "$GNOME_BLUETOOTH_CFLAGS"; then - pkg_cv_GNOME_BLUETOOTH_CFLAGS="$GNOME_BLUETOOTH_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnome-bluetooth-1.0 >= 2.27.6 - libnm-util >= 0.9.4 - libnm-glib >= 0.9.4\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gnome-bluetooth-1.0 >= 2.27.6 - libnm-util >= 0.9.4 - libnm-glib >= 0.9.4") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GNOME_BLUETOOTH_CFLAGS=`$PKG_CONFIG --cflags "gnome-bluetooth-1.0 >= 2.27.6 - libnm-util >= 0.9.4 - libnm-glib >= 0.9.4" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GNOME_BLUETOOTH_LIBS"; then - pkg_cv_GNOME_BLUETOOTH_LIBS="$GNOME_BLUETOOTH_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnome-bluetooth-1.0 >= 2.27.6 - libnm-util >= 0.9.4 - libnm-glib >= 0.9.4\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gnome-bluetooth-1.0 >= 2.27.6 - libnm-util >= 0.9.4 - libnm-glib >= 0.9.4") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GNOME_BLUETOOTH_LIBS=`$PKG_CONFIG --libs "gnome-bluetooth-1.0 >= 2.27.6 - libnm-util >= 0.9.4 - libnm-glib >= 0.9.4" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GNOME_BLUETOOTH_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnome-bluetooth-1.0 >= 2.27.6 - libnm-util >= 0.9.4 - libnm-glib >= 0.9.4" 2>&1` - else - GNOME_BLUETOOTH_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnome-bluetooth-1.0 >= 2.27.6 - libnm-util >= 0.9.4 - libnm-glib >= 0.9.4" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GNOME_BLUETOOTH_PKG_ERRORS" >&5 - - have_gbt=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - have_gbt=no -else - GNOME_BLUETOOTH_CFLAGS=$pkg_cv_GNOME_BLUETOOTH_CFLAGS - GNOME_BLUETOOTH_LIBS=$pkg_cv_GNOME_BLUETOOTH_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_gbt=yes -fi - ;; -esac - - if test x"$have_gbt" = "xyes"; then - HAVE_GBT_TRUE= - HAVE_GBT_FALSE='#' -else - HAVE_GBT_TRUE='#' - HAVE_GBT_FALSE= -fi - - -# Extract the first word of "glib-genmarshal", so it can be a program name with args. -set dummy glib-genmarshal; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GLIB_GENMARSHAL+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GLIB_GENMARSHAL in - [\\/]* | ?:[\\/]*) - ac_cv_path_GLIB_GENMARSHAL="$GLIB_GENMARSHAL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GLIB_GENMARSHAL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -GLIB_GENMARSHAL=$ac_cv_path_GLIB_GENMARSHAL -if test -n "$GLIB_GENMARSHAL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_GENMARSHAL" >&5 -$as_echo "$GLIB_GENMARSHAL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - -# Extract the first word of "gconftool-2", so it can be a program name with args. -set dummy gconftool-2; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GCONFTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GCONFTOOL in - [\\/]* | ?:[\\/]*) - ac_cv_path_GCONFTOOL="$GCONFTOOL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GCONFTOOL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -GCONFTOOL=$ac_cv_path_GCONFTOOL -if test -n "$GCONFTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCONFTOOL" >&5 -$as_echo "$GCONFTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then - GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source` - else - GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE - fi - - -# Check whether --with-gconf-source was given. -if test "${with_gconf_source+set}" = set; then : - withval=$with_gconf_source; GCONF_SCHEMA_CONFIG_SOURCE="$withval" -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5 -$as_echo "Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6; } - - if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then - GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas' - fi - - -# Check whether --with-gconf-schema-file-dir was given. -if test "${with_gconf_schema_file_dir+set}" = set; then : - withval=$with_gconf_schema_file_dir; GCONF_SCHEMA_FILE_DIR="$withval" -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5 -$as_echo "Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6; } - - # Check whether --enable-schemas-install was given. -if test "${enable_schemas_install+set}" = set; then : - enableval=$enable_schemas_install; case ${enableval} in - yes|no) ;; - *) as_fn_error $? "bad value ${enableval} for --enable-schemas-install" "$LINENO" 5 ;; - esac -fi - - if test "$enable_schemas_install" != no; then - GCONF_SCHEMAS_INSTALL_TRUE= - GCONF_SCHEMAS_INSTALL_FALSE='#' -else - GCONF_SCHEMAS_INSTALL_TRUE='#' - GCONF_SCHEMAS_INSTALL_FALSE= -fi - - - -# Check whether --enable-more-warnings was given. -if test "${enable_more_warnings+set}" = set; then : - enableval=$enable_more_warnings; set_more_warnings="$enableval" -else - set_more_warnings=error -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for more warnings" >&5 -$as_echo_n "checking for more warnings... " >&6; } -if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - CFLAGS="-Wall -std=gnu89 $CFLAGS" - - for option in -Wshadow -Wmissing-declarations -Wmissing-prototypes \ - -Wdeclaration-after-statement -Wstrict-prototypes \ - -Wfloat-equal -Wno-unused-parameter -Wno-sign-compare \ - -fno-strict-aliasing -Wno-unused-but-set-variable; do - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $option" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands $option" >&5 -$as_echo_n "checking whether gcc understands $option... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - has_option=yes -else - has_option=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $has_option = no; then - CFLAGS="$SAVE_CFLAGS" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5 -$as_echo "$has_option" >&6; } - unset has_option - unset SAVE_CFLAGS - done - unset option - if test "x$set_more_warnings" = xerror; then - CFLAGS="$CFLAGS -Werror" - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -# Use --enable-maintainer-mode to disabled deprecated symbols - - - - DISABLE_DEPRECATED="" - if test $USE_MAINTAINER_MODE = yes; then - DOMAINS="G ATK PANGO GDK GDK_PIXBUF GTK GCONF BONOBO BONOBO_UI GNOME LIBGLADE VTE GNOME_VFS WNCK LIBSOUP" - for DOMAIN in $DOMAINS; do - DISABLE_DEPRECATED="$DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_SINGLE_INCLUDES" - done - fi - - - - - -ac_config_files="$ac_config_files Makefile src/Makefile src/libnm-gtk/Makefile src/libnm-gtk/libnm-gtk.pc src/marshallers/Makefile src/utils/Makefile src/utils/tests/Makefile src/gconf-helpers/Makefile src/gconf-helpers/tests/Makefile src/wireless-security/Makefile src/connection-editor/Makefile src/gnome-bluetooth/Makefile icons/Makefile icons/16/Makefile icons/22/Makefile icons/32/Makefile icons/48/Makefile icons/scalable/Makefile po/Makefile.in" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - - ac_config_commands="$ac_config_commands po/stamp-it" - - - -if test -z "${HAVE_DBUS_126_TRUE}" && test -z "${HAVE_DBUS_126_FALSE}"; then - as_fn_error $? "conditional \"HAVE_DBUS_126\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_GBT_TRUE}" && test -z "${HAVE_GBT_FALSE}"; then - as_fn_error $? "conditional \"HAVE_GBT\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${GCONF_SCHEMAS_INSTALL_TRUE}" && test -z "${GCONF_SCHEMAS_INSTALL_FALSE}"; then - as_fn_error $? "conditional \"GCONF_SCHEMAS_INSTALL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by nm-applet $as_me 0.9.4.1, which was -generated by GNU Autoconf 2.68. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -nm-applet config.status 0.9.4.1 -configured by $0, generated by GNU Autoconf 2.68, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2010 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' -macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' -enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' -enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' -pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' -SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' -ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' -host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' -host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' -host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' -build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' -build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' -build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' -SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' -Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' -GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' -EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' -FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' -LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' -NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' -LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' -ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' -exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' -lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' -reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' -AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' -STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' -RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' -lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' -CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' -compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' -GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' -objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' -need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' -LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' -libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' -module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' -version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' -runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' -libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' -soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' -install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' -finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' -old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' -striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' - -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in SHELL \ -ECHO \ -SED \ -GREP \ -EGREP \ -FGREP \ -LD \ -NM \ -LN_S \ -lt_SP2NL \ -lt_NL2SP \ -reload_flag \ -OBJDUMP \ -deplibs_check_method \ -file_magic_cmd \ -file_magic_glob \ -want_nocaseglob \ -DLLTOOL \ -sharedlib_from_linklib_cmd \ -AR \ -AR_FLAGS \ -archiver_list_spec \ -STRIP \ -RANLIB \ -CC \ -CFLAGS \ -compiler \ -lt_cv_sys_global_symbol_pipe \ -lt_cv_sys_global_symbol_to_cdecl \ -lt_cv_sys_global_symbol_to_c_name_address \ -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -nm_file_list_spec \ -lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_pic \ -lt_prog_compiler_wl \ -lt_prog_compiler_static \ -lt_cv_prog_compiler_c_o \ -need_locks \ -MANIFEST_TOOL \ -DSYMUTIL \ -NMEDIT \ -LIPO \ -OTOOL \ -OTOOL64 \ -shrext_cmds \ -export_dynamic_flag_spec \ -whole_archive_flag_spec \ -compiler_needs_object \ -with_gnu_ld \ -allow_undefined_flag \ -no_undefined_flag \ -hardcode_libdir_flag_spec \ -hardcode_libdir_flag_spec_ld \ -hardcode_libdir_separator \ -exclude_expsyms \ -include_expsyms \ -file_list_spec \ -variables_saved_for_relink \ -libname_spec \ -library_names_spec \ -soname_spec \ -install_override_mode \ -finish_eval \ -old_striplib \ -striplib; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in reload_cmds \ -old_postinstall_cmds \ -old_postuninstall_cmds \ -old_archive_cmds \ -extract_expsyms_cmds \ -old_archive_from_new_cmds \ -old_archive_from_expsyms_cmds \ -archive_cmds \ -archive_expsym_cmds \ -module_cmds \ -module_expsym_cmds \ -export_symbols_cmds \ -prelink_cmds \ -postlink_cmds \ -postinstall_cmds \ -postuninstall_cmds \ -finish_cmds \ -sys_lib_search_path_spec \ -sys_lib_dlsearch_path_spec; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -ac_aux_dir='$ac_aux_dir' -xsi_shell='$xsi_shell' -lt_shell_append='$lt_shell_append' - -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - - - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile' - - - - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "src/libnm-gtk/Makefile") CONFIG_FILES="$CONFIG_FILES src/libnm-gtk/Makefile" ;; - "src/libnm-gtk/libnm-gtk.pc") CONFIG_FILES="$CONFIG_FILES src/libnm-gtk/libnm-gtk.pc" ;; - "src/marshallers/Makefile") CONFIG_FILES="$CONFIG_FILES src/marshallers/Makefile" ;; - "src/utils/Makefile") CONFIG_FILES="$CONFIG_FILES src/utils/Makefile" ;; - "src/utils/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/utils/tests/Makefile" ;; - "src/gconf-helpers/Makefile") CONFIG_FILES="$CONFIG_FILES src/gconf-helpers/Makefile" ;; - "src/gconf-helpers/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/gconf-helpers/tests/Makefile" ;; - "src/wireless-security/Makefile") CONFIG_FILES="$CONFIG_FILES src/wireless-security/Makefile" ;; - "src/connection-editor/Makefile") CONFIG_FILES="$CONFIG_FILES src/connection-editor/Makefile" ;; - "src/gnome-bluetooth/Makefile") CONFIG_FILES="$CONFIG_FILES src/gnome-bluetooth/Makefile" ;; - "icons/Makefile") CONFIG_FILES="$CONFIG_FILES icons/Makefile" ;; - "icons/16/Makefile") CONFIG_FILES="$CONFIG_FILES icons/16/Makefile" ;; - "icons/22/Makefile") CONFIG_FILES="$CONFIG_FILES icons/22/Makefile" ;; - "icons/32/Makefile") CONFIG_FILES="$CONFIG_FILES icons/32/Makefile" ;; - "icons/48/Makefile") CONFIG_FILES="$CONFIG_FILES icons/48/Makefile" ;; - "icons/scalable/Makefile") CONFIG_FILES="$CONFIG_FILES icons/scalable/Makefile" ;; - "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_arg="$ac_file" -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Autoconf 2.62 quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} - ;; - "libtool":C) - - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - -# The names of the tagged configurations supported by this script. -available_tags="" - -# ### BEGIN LIBTOOL CONFIG - -# Which release of libtool.m4 was used? -macro_version=$macro_version -macro_revision=$macro_revision - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# What type of objects to build. -pic_mode=$pic_mode - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# An echo program that protects backslashes. -ECHO=$lt_ECHO - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="\$SED -e 1s/^X//" - -# A grep program that handles long lines. -GREP=$lt_GREP - -# An ERE matcher. -EGREP=$lt_EGREP - -# A literal string matcher. -FGREP=$lt_FGREP - -# A BSD- or MS-compatible name lister. -NM=$lt_NM - -# Whether we need soft or hard links. -LN_S=$lt_LN_S - -# What is the maximum length of a command? -max_cmd_len=$max_cmd_len - -# Object file suffix (normally "o"). -objext=$ac_objext - -# Executable file suffix (normally ""). -exeext=$exeext - -# whether the shell understands "unset". -lt_unset=$lt_unset - -# turn spaces into newlines. -SP2NL=$lt_lt_SP2NL - -# turn newlines into spaces. -NL2SP=$lt_lt_NL2SP - -# convert \$build file names to \$host format. -to_host_file_cmd=$lt_cv_to_host_file_cmd - -# convert \$build files to toolchain format. -to_tool_file_cmd=$lt_cv_to_tool_file_cmd - -# An object symbol dumper. -OBJDUMP=$lt_OBJDUMP - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method = "file_magic". -file_magic_cmd=$lt_file_magic_cmd - -# How to find potential files when deplibs_check_method = "file_magic". -file_magic_glob=$lt_file_magic_glob - -# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -want_nocaseglob=$lt_want_nocaseglob - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Command to associate shared and link libraries. -sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd - -# The archiver. -AR=$lt_AR - -# Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS - -# How to feed a file listing to the archiver. -archiver_list_spec=$lt_archiver_list_spec - -# A symbol stripping program. -STRIP=$lt_STRIP - -# Commands used to install an old-style archive. -RANLIB=$lt_RANLIB -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Whether to use a lock for old archive extraction. -lock_old_archive_extraction=$lock_old_archive_extraction - -# A C compiler. -LTCC=$lt_CC - -# LTCC compiler flags. -LTCFLAGS=$lt_CFLAGS - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration. -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair. -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# Transform the output of nm in a C name address pair when lib prefix is needed. -global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -# Specify filename containing input files for \$NM. -nm_file_list_spec=$lt_nm_file_list_spec - -# The root where to search for dependent libraries,and in which our libraries should be installed. -lt_sysroot=$lt_sysroot - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# Used to examine libraries when file_magic_cmd begins with "file". -MAGIC_CMD=$MAGIC_CMD - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Manifest tool. -MANIFEST_TOOL=$lt_MANIFEST_TOOL - -# Tool to manipulate archived DWARF debug symbol files on Mac OS X. -DSYMUTIL=$lt_DSYMUTIL - -# Tool to change global to local symbols on Mac OS X. -NMEDIT=$lt_NMEDIT - -# Tool to manipulate fat objects and archives on Mac OS X. -LIPO=$lt_LIPO - -# ldd/readelf like tool for Mach-O binaries on Mac OS X. -OTOOL=$lt_OTOOL - -# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. -OTOOL64=$lt_OTOOL64 - -# Old archive suffix (normally "a"). -libext=$libext - -# Shared library suffix (normally ".so"). -shrext_cmds=$lt_shrext_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at link time. -variables_saved_for_relink=$lt_variables_saved_for_relink - -# Do we need the "lib" prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Library versioning type. -version_type=$version_type - -# Shared library runtime path variable. -runpath_var=$runpath_var - -# Shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Permission mode override for installation of shared libraries. -install_override_mode=$lt_install_override_mode - -# Command to use after installation of a shared archive. -postinstall_cmds=$lt_postinstall_cmds - -# Command to use after uninstallation of a shared archive. -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# As "finish_cmds", except a single script fragment to be evaled but -# not shown. -finish_eval=$lt_finish_eval - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Compile-time system search path for libraries. -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - - -# The linker used to build libraries. -LD=$lt_LD - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# Commands used to build an old-style archive. -old_archive_cmds=$lt_old_archive_cmds - -# A language specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU compiler? -with_gcc=$GCC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static. -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Whether the compiler copes with passing no objects directly. -compiler_needs_object=$lt_compiler_needs_object - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds - -# Commands used to build a loadable module if different from building -# a shared archive. -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Whether we are building with GNU ld or not. -with_gnu_ld=$lt_with_gnu_ld - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that enforces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# If ld is used when linking, flag to hardcode \$libdir into a binary -# during linking. This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - -# Whether we need a single "-rpath" flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -# DIR into the resulting binary. -hardcode_direct=$hardcode_direct - -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -# DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \${shlibpath_var} if the -# library is relocated. -hardcode_direct_absolute=$hardcode_direct_absolute - -# Set to "yes" if using the -LDIR flag during linking hardcodes DIR -# into the resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR -# into the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to "yes" if building a shared library automatically hardcodes DIR -# into the library and all subsequent libraries and executables linked -# against it. -hardcode_automatic=$hardcode_automatic - -# Set to yes if linker adds runtime paths of dependent libraries -# to runtime path list. -inherit_rpath=$inherit_rpath - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Set to "yes" if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# Commands necessary for linking programs (against libraries) with templates. -prelink_cmds=$lt_prelink_cmds - -# Commands necessary for finishing linking programs. -postlink_cmds=$lt_postlink_cmds - -# Specify filename containing input files. -file_list_spec=$lt_file_list_spec - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# ### END LIBTOOL CONFIG - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - -ltmain="$ac_aux_dir/ltmain.sh" - - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - if test x"$xsi_shell" = xyes; then - sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -func_dirname ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_basename ()$/,/^} # func_basename /c\ -func_basename ()\ -{\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -func_dirname_and_basename ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -func_stripname ()\ -{\ -\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -\ # positional parameters, so assign one to ordinary parameter first.\ -\ func_stripname_result=${3}\ -\ func_stripname_result=${func_stripname_result#"${1}"}\ -\ func_stripname_result=${func_stripname_result%"${2}"}\ -} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -func_split_long_opt ()\ -{\ -\ func_split_long_opt_name=${1%%=*}\ -\ func_split_long_opt_arg=${1#*=}\ -} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -func_split_short_opt ()\ -{\ -\ func_split_short_opt_arg=${1#??}\ -\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -func_lo2o ()\ -{\ -\ case ${1} in\ -\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -\ *) func_lo2o_result=${1} ;;\ -\ esac\ -} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_xform ()$/,/^} # func_xform /c\ -func_xform ()\ -{\ - func_xform_result=${1%.*}.lo\ -} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_arith ()$/,/^} # func_arith /c\ -func_arith ()\ -{\ - func_arith_result=$(( $* ))\ -} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_len ()$/,/^} # func_len /c\ -func_len ()\ -{\ - func_len_result=${#1}\ -} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - -fi - -if test x"$lt_shell_append" = xyes; then - sed -e '/^func_append ()$/,/^} # func_append /c\ -func_append ()\ -{\ - eval "${1}+=\\${2}"\ -} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -func_append_quoted ()\ -{\ -\ func_quote_for_eval "${2}"\ -\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -fi - - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - - ;; - "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) - sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile - esac ;; - "po/stamp-it":C) - if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then - as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 - fi - rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" - >"po/stamp-it.tmp" - sed '/^#/d - s/^[[].*] *// - /^[ ]*$/d - '"s|^| $ac_top_srcdir/|" \ - "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" - - sed '/^POTFILES =/,/[^\\]$/ { - /^POTFILES =/!d - r po/POTFILES - } - ' "po/Makefile.in" >"po/Makefile" - rm -f "po/Makefile.tmp" - mv "po/stamp-it.tmp" "po/stamp-it" - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - - diff -Nru network-manager-applet-0.9.4.1/configure.ac network-manager-applet-0.9.6.2+git201210311320.2620/configure.ac --- network-manager-applet-0.9.4.1/configure.ac 2012-03-23 22:55:33.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/configure.ac 2012-10-31 13:21:01.000000000 +0000 @@ -1,13 +1,13 @@ AC_PREREQ([2.63]) AC_INIT([nm-applet], - [0.9.4.1], + [0.9.7.0], [https://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager], [network-manager-applet]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) -AM_INIT_AUTOMAKE([1.10 subdir-objects no-dist-gzip dist-bzip2]) +AM_INIT_AUTOMAKE([1.10 subdir-objects no-dist-gzip dist-bzip2 -Wno-portability]) AM_MAINTAINER_MODE([enable]) # Support silent build rules, requires at least automake-1.11. Disable @@ -97,16 +97,46 @@ PKG_CHECK_MODULES(NMA, [dbus-glib-1 >= 0.74 - glib-2.0 >= 2.16 - NetworkManager >= 0.9.4 - libnm-glib >= 0.9.4 - libnm-util >= 0.9.4 - libnm-glib-vpn >= 0.9.4 + gio-2.0 >= 2.26 + NetworkManager >= 0.9.6 + libnm-glib >= 0.9.6 + libnm-util >= 0.9.6 + libnm-glib-vpn >= 0.9.6 gmodule-export-2.0]) -PKG_CHECK_MODULES(GCONF, [gconf-2.0]) -AC_SUBST(GCONF_CFLAGS) -AC_SUBST(GCONF_LIBS) +# With recent glib, defining GLIB_VERSION_MIN_REQUIRED avoids +# deprecation warnings for recently-deprecated functions (eg, +# GValueArray stuff). We say GLIB_VERSION_2_26 because there +# aren't macros for any older versions. +NMA_CFLAGS="$NMA_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26" +# Likewise for Gtk; we don't want to port to GtkGrid, etc, until +# we can drop gtk2 support +NMA_CFLAGS="$NMA_CFLAGS -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_0" + +AC_MSG_CHECKING([whether to build nm-applet-migration-tool]) +AC_ARG_ENABLE([migration], + [AS_HELP_STRING([--disable-migration], [Don't build migration tool for NM <= 0.8 settings])], + [enable_migration="$enableval"], + [if test "$UNDER_JHBUILD" = "true"; then + enable_migration=no + else + enable_migration=yes + fi]) +AC_MSG_RESULT([$enable_migration]) +if test "$enable_migration" = "yes"; then + PKG_CHECK_MODULES(GCONF, [gconf-2.0], :, + [AC_MSG_ERROR([ +Could not find GConf devel files, which are needed for +nm-applet-migration-tool. You can configure with --disable-migration +if you want to build without the code to migrate GConf settings from +older (< 0.9) nm-applet releases.])]) + + AC_SUBST(GCONF_CFLAGS) + AC_SUBST(GCONF_LIBS) + + AC_DEFINE(BUILD_MIGRATION_TOOL, 1, [Define when building nm-applet-migration-tool]) +fi +AM_CONDITIONAL(BUILD_MIGRATION_TOOL, test "$enable_migration" = "yes") PKG_CHECK_MODULES(GNOME_KEYRING, [gnome-keyring-1]) AC_SUBST(GNOME_KEYRING_CFLAGS) @@ -122,7 +152,7 @@ AC_SUBST(NOTIFY_LIBS) gtk2_req=2.20 -gtk3_req=2.91.4 +gtk3_req=3.0 AC_ARG_WITH([gtkver], AS_HELP_STRING([--with-gtkver], [The major version of GTK+ to build with]), with_gtkver="$withval",with_gtkver=0) case "${with_gtkver}" in @@ -170,13 +200,23 @@ ;; esac +AC_ARG_ENABLE([indicator], +[ --enable-appindicator Enables using libappindicator to draw the applet + on the screen, instead of the standard status icons.], +[ + PKG_CHECK_MODULES(APPINDICATOR, appindicator3-0.1) + AC_DEFINE([ENABLE_INDICATOR], 1, [Enable using libappindicator]) +]) + AM_CONDITIONAL(HAVE_GBT, test x"$have_gbt" = "xyes") -AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) +PKG_CHECK_MODULES(GUDEV, gudev-1.0 >= 147) +AC_SUBST(GUDEV_CFLAGS) +AC_SUBST(GUDEV_LIBS) + +GOBJECT_INTROSPECTION_CHECK([0.9.6]) -dnl GConf stuff -AC_PATH_PROG(GCONFTOOL, gconftool-2) -AM_GCONF_SOURCE_2 +GLIB_CONFIG_NMA dnl dnl Compiler flags diff -Nru network-manager-applet-0.9.4.1/debian/bzr-builder.manifest network-manager-applet-0.9.6.2+git201210311320.2620/debian/bzr-builder.manifest --- network-manager-applet-0.9.4.1/debian/bzr-builder.manifest 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/bzr-builder.manifest 2012-10-31 13:21:00.000000000 +0000 @@ -0,0 +1,3 @@ +# bzr-builder format 0.3 deb-version 0.9.6.2+git201210311320.2620-0~pkg385 +lp:network-manager-applet revid:git-v1:4c1fed05fc4ef4b8087ddab5d2bd8feb8a6f16df +nest-part debian lp:~network-manager/network-manager-applet/ubuntu debian debian revid:mathieu-tl@ubuntu.com-20121031131008-2c2e8b174qfm72ap diff -Nru network-manager-applet-0.9.4.1/debian/changelog network-manager-applet-0.9.6.2+git201210311320.2620/debian/changelog --- network-manager-applet-0.9.4.1/debian/changelog 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/changelog 2012-10-31 13:21:00.000000000 +0000 @@ -1,3 +1,150 @@ +network-manager-applet (0.9.6.2+git201210311320.2620-0~pkg385~precise1) precise; urgency=low + + * Auto build. + + -- Mathieu Trudel-Lapierre Wed, 31 Oct 2012 13:21:00 +0000 + +network-manager-applet (0.9.6.2+git201210161342.bc0f95b-0ubuntu1) UNRELEASED; urgency=low + + * upstream snapshot 2012-10-16 13:42:59 (GMT) + + bc0f95bad6d6e0faabf3efa0e3eb841547033bae + * debian/patches/git_fix_some_leaks_80ef61b.patch, + debian/patches/git_indicate_hspa+_lte_tech_dbe3b12.patch, + debian/patches/git_mac_addr_string_leakage_6dae878.patch: dropped, included + in upstream tarball. + * debian/patches/lp328572-dxteam-connect-text.patch: refreshed. + * debian/patches/lp330571_dxteam_wired_connect_text.patch: refreshed. + * debian/patches/lp337960_dxteam_notification_icon_names.diff, + debian/patches/lp337960_dxteam_notification_icon_names_part2-images.diff: + disabled patches, they don't seem to be used (the icons don't match up with + what is currently observable on the desktop). Let's see if someone screams. + * debian/patches/applet-wifi-menu-before-vpn.patch: refreshed. + * debian/patches/lp830178_adhoc_ip6_ignore.patch: refreshed. + * debian/patches/lp829673_gconf_hide_applet.patch: refreshed. + * debian/patches/nm-applet-use-indicator.patch: refreshed. + * debian/patches/hide_policy_items_env_var.patch: refreshed. + * debian/patches/applet_adhoc_use_wpa_rsn_part1.patch: refreshed. + * debian/patches/lp341684_device_sensitive_disconnect_notify.patch: + refreshed. + * debian/patches/lp460144_correctly_update_notification.patch: refreshed. + * debian/patches/make_menu_items_insensitive_based_on_permissions.patch: + refreshed. + + -- Mathieu Trudel-Lapierre Tue, 16 Oct 2012 15:47:35 -0400 + +network-manager-applet (0.9.6.2-0ubuntu6) quantal; urgency=low + + * debian/patches/git_indicate_hspa+_lte_tech_dbe3b12.patch: add indications + and support for HSPA+ and LTE modes. (LP: #1044744) + * Also update nm-applet-use-indicator.patch for the changes above. + * debian/patches/git_mac_addr_string_leakage_6dae878.patch: use + nm_utils_hwaddr_ntoa() to output MAC addresses as strings since it's + available and make sure they get freed to avoid leaks. + + -- Mathieu Trudel-Lapierre Thu, 27 Sep 2012 22:25:48 -0400 + +network-manager-applet (0.9.6.2-0ubuntu5) quantal; urgency=low + + * debian/patches/nm-applet-use-indicator.patch: Plug two small leaks. + * debian/patches/lp1048520_delay_pin_dialog_in_greeter.patch: Delay PIN + dialog when in greeter mode; it shouldn't show unless a user goes to + activate a mobile connection which needs unlocking. (LP: #1048520) + + -- Mathieu Trudel-Lapierre Thu, 20 Sep 2012 16:40:24 -0400 + +network-manager-applet (0.9.6.2-0ubuntu4) quantal; urgency=low + + * debian/patches/make_menu_items_insensitive_based_on_permissions.patch, + debian/patches/hide_policy_items_env_var.patch: + Make "New Mobile Broadband connection..." item sensitive to permissions. + (LP: #1048512) + * debian/patches/lp1048516_dont_req_keyring_in_greeter.patch: don't have + the pin dialog try to save passwords (and thus don't require a keyring) if + the user doesn't have MODIFY_OWN permissions. (LP: #1048516) + + -- Mathieu Trudel-Lapierre Mon, 17 Sep 2012 15:05:13 -0400 + +network-manager-applet (0.9.6.2-0ubuntu3) quantal; urgency=low + + * debian/patches/applet_adhoc_use_wpa_rsn_part1.patch: enable the use of + WPA2/RSN for adhoc again, instead of WPA-None; to provide a way to get a + "good" encryption method available for adhoc networks. (LP: #1046918) + + -- Mathieu Trudel-Lapierre Fri, 07 Sep 2012 16:06:37 -0400 + +network-manager-applet (0.9.6.2-0ubuntu2) quantal; urgency=low + + * debian/patches/position_dialogs_to_center_of_the_screen.patch: make sure + created dialogs (like password requests) are properly centered on the + screen. (LP: #1043934) + * debian/patches/make_menu_items_invisible_based_on_permissions.patch, + debian/patches/hide_policy_items_env_var.patch: items that are disallowed + by the effective PolicyKit policy for a user should be consistently showing + as such: they should either be insensitive (greyed), or hidden altogether. + (LP: #1043929) + + -- Mathieu Trudel-Lapierre Thu, 30 Aug 2012 14:27:42 -0400 + +network-manager-applet (0.9.6.2-0ubuntu1) quantal; urgency=low + + * New upstream release. + - Fix GNOME Bluetooth plugin DUN modem detection and setup + - Various crash and stability fixes + - Allow appending DNS servers and domains in automatic addressing mode + - Fix defaults for PPP echo values + - Show IPv6 addressing page for VPN plugins that support it + - Port to GSettings and split out 0.8 -> 0.9 migration code + - Recognize PKCS#12 certificates imported from Firefox + - Pre-fill CDMA username/password in the mobile broadband wizard + - Only handle VPN secrets for GNOME Shell 3.3 and lower + * debian/control: Bump Depends and Build-Depends to (>= 0.9.6) for + network-manager and the libnm-{glib,util,glib-vpn}-dev packages. + * debian/patches/git_fix_some_leaks_80ef61b.patch: cherry-picked patch to + fix a few leaks: g_object_get() and gtk_tree_model_get() copy/ref the + values they return, so make sure to deal with that everywhere. + + -- Mathieu Trudel-Lapierre Fri, 10 Aug 2012 15:44:44 -0400 + +network-manager-applet (0.9.6.0~git201207161252.13c6db8-0ubuntu3) quantal; urgency=low + + * Rebuild with current libgnome-bluetooth + + -- Sebastien Bacher Fri, 10 Aug 2012 11:59:51 +0200 + +network-manager-applet (0.9.6.0~git201207161252.13c6db8-0ubuntu2) quantal; urgency=low + + * debian/patches/lp341684_device_sensitive_disconnect_notify.patch: updated + to respect the "disable-disconnected-notifications" settings. (LP: #445872) + + -- Matvey Marinin Thu, 02 Aug 2012 16:21:04 -0400 + +network-manager-applet (0.9.6.0~git201207161252.13c6db8-0ubuntu1) quantal; urgency=low + + * upstream snapshot 2012-07-16 12:52:27 (GMT) (LP: #1020429) + + 13c6db880345b4123fb75d00905a5addbd046f92 + * debian/rules: simplify version number for git snapshots. + * debian/control: bump Depends/Build-Depends for NM to 0.9.5.95; since we + require nm_utils_is_file_pkcs12(); which is introduced in that version. + * debian/patches/revert_git_policy_error_dialog_ba8381a.patch: dropped, not + required anymore. + * debian/patches/nm-applet-use-indicator.patch: refreshed. + * debian/patches/lp829673_gconf_hide_applet.patch: refreshed and revised to + use gsettings instead of gconf. + * debian/patches/series: moved nm-applet-use-indicator.patch to be the last + applied; so that others are easier to push upstream. + * debian/network-manager-gnome.install: + - Install gsettings schemas. + - Also install nm-applet-migration-tool; for the migration of gconf to + gsettings. + + -- Mathieu Trudel-Lapierre Tue, 17 Jul 2012 17:17:08 -0400 + +network-manager-applet (0.9.4.1-0ubuntu3) quantal; urgency=low + + * No-change rebuild for libgnome-bluetooth10. + + -- Mathieu Trudel-Lapierre Wed, 16 May 2012 21:25:09 -0400 + network-manager-applet (0.9.4.1-0ubuntu2) precise; urgency=low * debian/patches/nm-applet-use-indicator.patch: move the tooltip/accessible diff -Nru network-manager-applet-0.9.4.1/debian/control network-manager-applet-0.9.6.2+git201210311320.2620/debian/control --- network-manager-applet-0.9.4.1/debian/control 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/control 2012-10-31 13:21:00.000000000 +0000 @@ -17,10 +17,10 @@ libglib2.0-dev (>= 2.16), libgconf2-dev, libnotify-dev (>= 0.4.3), - libnm-util-dev (>= 0.9.4), - libnm-glib-dev (>= 0.9.4), - libnm-glib-vpn-dev (>= 0.9.4), - network-manager-dev (>= 0.9.4), + libnm-util-dev (>= 0.9.6), + libnm-glib-dev (>= 0.9.6), + libnm-glib-vpn-dev (>= 0.9.6), + network-manager-dev (>= 0.9.6), docbook-to-man, libappindicator3-dev, libgnome-bluetooth-dev (>= 2.27.6) @@ -34,7 +34,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, - network-manager (>= 0.9.4), + network-manager (>= 0.9.6), policykit-1-gnome, gnome-icon-theme, dbus-x11 @@ -86,7 +86,7 @@ policykit-1-gnome, dbus-x11 Recommends: - network-manager (>= 0.9.4), + network-manager (>= 0.9.6), mobile-broadband-provider-info Suggests: network-manager-openvpn-gnome, @@ -128,7 +128,7 @@ ${shlibs:Depends}, ${misc:Depends}, libnm-gtk0 (= ${binary:Version}), - network-manager (>= 0.9.4), + network-manager (>= 0.9.6), policykit-1-gnome, dbus-x11 Description: network management framework (dialogs development libraries) diff -Nru network-manager-applet-0.9.4.1/debian/network-manager-gnome.install network-manager-applet-0.9.6.2+git201210311320.2620/debian/network-manager-gnome.install --- network-manager-applet-0.9.4.1/debian/network-manager-gnome.install 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/network-manager-gnome.install 2012-10-31 13:21:00.000000000 +0000 @@ -2,5 +2,7 @@ /usr/share/nm-applet /usr/share/applications /usr/bin +/usr/share/glib-2.0/schemas /usr/share/icons /usr/lib/gnome-bluetooth/plugins/libnma.so +/usr/lib/NetworkManager diff -Nru network-manager-applet-0.9.4.1/debian/patches/14_lp123808_dont_start_applet_on_ltsp_client.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/14_lp123808_dont_start_applet_on_ltsp_client.patch --- network-manager-applet-0.9.4.1/debian/patches/14_lp123808_dont_start_applet_on_ltsp_client.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/14_lp123808_dont_start_applet_on_ltsp_client.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ ---- network-manager-applet-0.6.5/src/applet.c.orig 2007-10-02 20:53:36.000000000 +0200 -+++ network-manager-applet-0.6.5/src/applet.c 2007-10-02 20:54:46.000000000 +0200 -@@ -132,7 +132,7 @@ static void nma_init (NMApplet *applet) - applet->animation_step = 0; - glade_gnome_init (); - -- if (!nma_icons_init (applet)) -+ if ((!nma_icons_init (applet)) || (g_getenv("LTSP_CLIENT"))) - return; - - /* gtk_window_set_default_icon_from_file (ICONDIR"/NMApplet/wireless-applet.png", NULL); */ diff -Nru network-manager-applet-0.9.4.1/debian/patches/applet-wifi-menu-before-vpn.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/applet-wifi-menu-before-vpn.patch --- network-manager-applet-0.9.4.1/debian/patches/applet-wifi-menu-before-vpn.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/applet-wifi-menu-before-vpn.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -Index: network-manager-applet-0.8.3+git.20110203t003354.9bf0b98/src/applet.c -=================================================================== ---- network-manager-applet-0.8.3+git.20110203t003354.9bf0b98.orig/src/applet.c 2011-02-14 17:18:54.408664077 -0500 -+++ network-manager-applet-0.8.3+git.20110203t003354.9bf0b98/src/applet.c 2011-02-14 17:22:46.547351391 -0500 -@@ -1649,15 +1649,15 @@ - - n_wireless = nma_menu_add_devices (menu, applet); - -- nma_menu_add_vpn_submenu (menu, applet); -- - if (n_wireless > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { - /* Add the "Hidden wireless network..." entry */ -- nma_menu_add_separator_item (menu); - nma_menu_add_hidden_network_item (menu, applet); - nma_menu_add_create_network_item (menu, applet); -+ nma_menu_add_separator_item (menu); - } - -+ nma_menu_add_vpn_submenu (menu, applet); -+ - gtk_widget_show_all (menu); - - // nmi_dbus_signal_user_interface_activated (applet->connection); diff -Nru network-manager-applet-0.9.4.1/debian/patches/clear-notification-actions.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/clear-notification-actions.patch --- network-manager-applet-0.9.4.1/debian/patches/clear-notification-actions.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/clear-notification-actions.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -From: Mathieu Trudel-Lapierre -Subject: applet: clear notification actions before adding new ones -Bug-Ubuntu: http://bugs.launchpad.net/bugs/606825 - -Make sure we only ever have one of the "Don't show this again" button that -will trigger disabling notifications. Otherwise we end up with multiple -instances of the same button in notifications because one gets added every -time a new notification stacks on top of an existing one. - -Index: network-manager-applet-0.9.1.90/src/applet.c -=================================================================== ---- network-manager-applet-0.9.1.90.orig/src/applet.c 2012-01-06 12:03:08.000000000 +0100 -+++ network-manager-applet-0.9.1.90/src/applet.c 2012-01-06 12:03:30.944469038 +0100 -@@ -876,6 +876,7 @@ - notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT); - - if (applet_notify_server_has_actions () && action1) { -+ notify_notification_clear_actions (notify); - notify_notification_add_action (notify, action1, action1_label, - action1_cb, action1_user_data, NULL); - } diff -Nru network-manager-applet-0.9.4.1/debian/patches/default-ipv6-auto.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/default-ipv6-auto.patch --- network-manager-applet-0.9.4.1/debian/patches/default-ipv6-auto.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/default-ipv6-auto.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -Index: network-manager-applet-0.9.0/src/applet-dialogs.c -=================================================================== ---- network-manager-applet-0.9.0.orig/src/applet-dialogs.c 2011-07-27 12:10:41.000000000 -0400 -+++ network-manager-applet-0.9.0/src/applet-dialogs.c 2011-08-30 14:21:05.450535323 -0400 -@@ -620,7 +620,7 @@ - if (s_ip6) - method = nm_setting_ip6_config_get_method (s_ip6); - -- if (!method || !strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE)) { -+ if (method && !strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE)) { - gtk_table_attach (table, create_info_label (_("Ignored"), FALSE), - 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); - row++; diff -Nru network-manager-applet-0.9.4.1/debian/patches/key-certificate-extensions.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/key-certificate-extensions.patch --- network-manager-applet-0.9.4.1/debian/patches/key-certificate-extensions.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/key-certificate-extensions.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -From: Mathieu Trudel-Lapierre -Subject: allow .key files as private key certificates -Bug-Ubuntu: https://bugs.launchpad.net/bugs/839864 - -Index: network-manager-applet-0.9.0/src/wireless-security/eap-method.c -=================================================================== ---- network-manager-applet-0.9.0.orig/src/wireless-security/eap-method.c 2011-09-13 11:53:27.368280855 -0400 -+++ network-manager-applet-0.9.0/src/wireless-security/eap-method.c 2011-09-13 11:54:10.288280937 -0400 -@@ -604,7 +604,7 @@ - static gboolean - default_filter_privkey (const GtkFileFilterInfo *filter_info, gpointer user_data) - { -- const char *extensions[] = { ".der", ".pem", ".p12", NULL }; -+ const char *extensions[] = { ".der", ".pem", ".p12", ".key", NULL }; - gboolean require_encrypted = !!user_data; - gboolean is_encrypted = TRUE; - -@@ -645,7 +645,7 @@ - filter = gtk_file_filter_new (); - if (privkey) { - gtk_file_filter_add_custom (filter, GTK_FILE_FILTER_FILENAME, default_filter_privkey, NULL, NULL); -- gtk_file_filter_set_name (filter, _("DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)")); -+ gtk_file_filter_set_name (filter, _("DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12, *.key)")); - } else { - gtk_file_filter_add_custom (filter, GTK_FILE_FILTER_FILENAME, default_filter_cert, NULL, NULL); - gtk_file_filter_set_name (filter, _("DER or PEM certificates (*.der, *.pem, *.crt, *.cer)")); diff -Nru network-manager-applet-0.9.4.1/debian/patches/lp289466_always_show_tray_icon.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp289466_always_show_tray_icon.patch --- network-manager-applet-0.9.4.1/debian/patches/lp289466_always_show_tray_icon.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp289466_always_show_tray_icon.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -=== modified file 'src/applet.c' ---- - src/applet.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -Index: b/src/applet.c -=================================================================== ---- a/src/applet.c -+++ b/src/applet.c -@@ -2431,6 +2431,8 @@ foo_client_setup (NMApplet *applet) - - if (nm_client_get_manager_running (applet->nm_client)) - g_idle_add (foo_set_initial_state, applet); -+ -+ applet_schedule_update_icon (applet); - } - - static GdkPixbuf * -@@ -2618,7 +2622,6 @@ applet_update_icon (gpointer user_data) - applet->update_icon_id = 0; - - nm_running = nm_client_get_manager_running (applet->nm_client); -- gtk_status_icon_set_visible (applet->status_icon, nm_running); - - /* Handle device state first */ - diff -Nru network-manager-applet-0.9.4.1/debian/patches/lp328572-dxteam-connect-text.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp328572-dxteam-connect-text.patch --- network-manager-applet-0.9.4.1/debian/patches/lp328572-dxteam-connect-text.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp328572-dxteam-connect-text.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -=== modified file 'src/applet-device-wifi.c' ---- - src/applet-device-wifi.c | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -Index: network-manager-applet-0.8.999+git.20110523t134536.bb7ef97/src/applet-device-wifi.c -=================================================================== ---- network-manager-applet-0.8.999+git.20110523t134536.bb7ef97.orig/src/applet-device-wifi.c 2011-05-25 22:36:13.949099715 -0400 -+++ network-manager-applet-0.8.999+git.20110523t134536.bb7ef97/src/applet-device-wifi.c 2011-05-25 22:36:50.639099711 -0400 -@@ -1264,7 +1264,6 @@ - NMApplet *applet) - { - NMAccessPoint *new = NULL; -- char *msg; - char *esc_ssid = NULL; - - new = update_active_ap (device, new_state, applet); -@@ -1276,11 +1275,11 @@ - return; - - esc_ssid = get_ssid_utf8 (new); -- msg = g_strdup_printf (_("You are now connected to the wireless network '%s'."), esc_ssid); -- applet_do_notify_with_pref (applet, _("Connection Established"), -- msg, "nm-device-wireless", -+ applet_do_notify_with_pref (applet, -+ esc_ssid ? esc_ssid : _("(none)"), -+ _("Connection Established"), -+ "nm-device-wireless", - PREF_DISABLE_CONNECTED_NOTIFICATIONS); -- g_free (msg); - g_free (esc_ssid); - } - diff -Nru network-manager-applet-0.9.4.1/debian/patches/lp330571_dxteam_wired_connect_text.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp330571_dxteam_wired_connect_text.patch --- network-manager-applet-0.9.4.1/debian/patches/lp330571_dxteam_wired_connect_text.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp330571_dxteam_wired_connect_text.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -=== modified file 'src/applet-device-wired.c' ---- - src/applet-device-wired.c | 10 +++------- - 1 file changed, 3 insertions(+), 7 deletions(-) - -Index: b/src/applet-device-wired.c -=================================================================== ---- a/src/applet-device-wired.c -+++ b/src/applet-device-wired.c -@@ -258,23 +258,19 @@ wired_device_state_changed (NMDevice *de - if (new_state == NM_DEVICE_STATE_ACTIVATED) { - NMConnection *connection; - NMSettingConnection *s_con = NULL; -- char *str = NULL; -+ const char *str = NULL; - - connection = applet_find_active_connection_for_device (device, applet, NULL); - if (connection) { -- const char *id; - s_con = nm_connection_get_setting_connection (connection); -- id = s_con ? nm_setting_connection_get_id (s_con) : NULL; -- if (id) -- str = g_strdup_printf (_("You are now connected to '%s'."), id); -+ str = s_con ? nm_setting_connection_get_id (s_con) : NULL; - } - - applet_do_notify_with_pref (applet, -+ str ? str : _("Wired network"), - _("Connection Established"), -- str ? str : _("You are now connected to the wired network."), - "nm-device-wired", - PREF_DISABLE_CONNECTED_NOTIFICATIONS); -- g_free (str); - } - } - diff -Nru network-manager-applet-0.9.4.1/debian/patches/lp330608_dxteam_gsm_connect_text.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp330608_dxteam_gsm_connect_text.patch --- network-manager-applet-0.9.4.1/debian/patches/lp330608_dxteam_gsm_connect_text.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp330608_dxteam_gsm_connect_text.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -=== modified file 'src/applet-device-gsm.c' ---- - src/applet-device-gsm.c | 11 +++-------- - 1 file changed, 3 insertions(+), 8 deletions(-) - -Index: b/src/applet-device-gsm.c -=================================================================== ---- a/src/applet-device-gsm.c -+++ b/src/applet-device-gsm.c -@@ -476,24 +476,19 @@ gsm_device_state_changed (NMDevice *devi - if (new_state == NM_DEVICE_STATE_ACTIVATED) { - NMConnection *connection; - NMSettingConnection *s_con = NULL; -- char *str = NULL; -+ const char *str = NULL; - - connection = applet_find_active_connection_for_device (device, applet, NULL); - if (connection) { -- const char *id; -- - s_con = nm_connection_get_setting_connection (connection); -- id = s_con ? nm_setting_connection_get_id (s_con) : NULL; -- if (id) -- str = g_strdup_printf (_("You are now connected to '%s'."), id); -+ str = s_con ? nm_setting_connection_get_id (s_con) : NULL; - } - - applet_do_notify_with_pref (applet, -+ str ? str : _("GSM network."), - _("Connection Established"), -- str ? str : _("You are now connected to the GSM network."), - "nm-device-wwan", - PREF_DISABLE_CONNECTED_NOTIFICATIONS); -- g_free (str); - } - - /* Start/stop polling of quality and registration when device state changes */ diff -Nru network-manager-applet-0.9.4.1/debian/patches/lp337960_dxteam_notification_icon_names.diff network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp337960_dxteam_notification_icon_names.diff --- network-manager-applet-0.9.4.1/debian/patches/lp337960_dxteam_notification_icon_names.diff 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp337960_dxteam_notification_icon_names.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -=== modified file 'src/applet-device-gsm.c' ---- - src/applet-device-gsm.c | 2 +- - src/applet-device-wifi.c | 4 ++-- - src/applet-device-wired.c | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -Index: network-manager-applet-0.9.2.0+git.20120129t154110.c483c1b/src/applet-device-gsm.c -=================================================================== ---- network-manager-applet-0.9.2.0+git.20120129t154110.c483c1b.orig/src/applet-device-gsm.c 2012-01-30 10:58:23.000000000 -0500 -+++ network-manager-applet-0.9.2.0+git.20120129t154110.c483c1b/src/applet-device-gsm.c 2012-01-30 10:58:29.376690303 -0500 -@@ -487,7 +487,7 @@ - applet_do_notify_with_pref (applet, - str ? str : _("GSM network."), - _("Connection Established"), -- "nm-device-wwan", -+ "notification-gsm-high", - PREF_DISABLE_CONNECTED_NOTIFICATIONS); - } - -Index: network-manager-applet-0.9.2.0+git.20120129t154110.c483c1b/src/applet-device-wifi.c -=================================================================== ---- network-manager-applet-0.9.2.0+git.20120129t154110.c483c1b.orig/src/applet-device-wifi.c 2012-01-30 10:58:22.000000000 -0500 -+++ network-manager-applet-0.9.2.0+git.20120129t154110.c483c1b/src/applet-device-wifi.c 2012-01-30 10:59:03.136688798 -0500 -@@ -1080,7 +1080,7 @@ - NOTIFY_URGENCY_LOW, - _("Wireless Networks Available"), - _("Use the network menu to connect to a wireless network"), -- "nm-device-wireless", -+ "notification-network-wireless-full", - "dont-show", - _("Don't show this message again"), - wifi_available_dont_show_cb, -@@ -1276,7 +1276,7 @@ - applet_do_notify_with_pref (applet, - esc_ssid ? esc_ssid : _("(none)"), - _("Connection Established"), -- "nm-device-wireless", -+ "notification-network-wireless-full", - PREF_DISABLE_CONNECTED_NOTIFICATIONS); - g_free (esc_ssid); - } -Index: network-manager-applet-0.9.2.0+git.20120129t154110.c483c1b/src/applet-device-wired.c -=================================================================== ---- network-manager-applet-0.9.2.0+git.20120129t154110.c483c1b.orig/src/applet-device-wired.c 2012-01-30 10:58:23.000000000 -0500 -+++ network-manager-applet-0.9.2.0+git.20120129t154110.c483c1b/src/applet-device-wired.c 2012-01-30 10:58:29.376690303 -0500 -@@ -269,7 +269,7 @@ - applet_do_notify_with_pref (applet, - str ? str : _("Wired network"), - _("Connection Established"), -- "nm-device-wired", -+ "notification-network-ethernet-connected", - PREF_DISABLE_CONNECTED_NOTIFICATIONS); - } - } diff -Nru network-manager-applet-0.9.4.1/debian/patches/lp337960_dxteam_notification_icon_names_part2-images.diff network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp337960_dxteam_notification_icon_names_part2-images.diff --- network-manager-applet-0.9.4.1/debian/patches/lp337960_dxteam_notification_icon_names_part2-images.diff 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp337960_dxteam_notification_icon_names_part2-images.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,1860 +0,0 @@ -=== modified file 'icons/scalable/Makefile.am' ---- old/icons/scalable/Makefile.am 2009-02-17 16:32:22 +0000 -+++ new/icons/scalable/Makefile.am 2009-03-04 22:05:26 +0000 -@@ -1,7 +1,10 @@ - icondir=${datadir}/icons/hicolor/scalable/apps - icon_DATA = \ - nm-device-wired.svg \ -- nm-no-connection.svg -+ nm-no-connection.svg \ -+ notification-gsm-high.svg \ -+ notification-network-ethernet-connected.svg \ -+ notification-network-wireless-full.svg - - EXTRA_DIST = $(icon_DATA) - - -=== added file 'icons/scalable/notification-gsm-high.svg' ---- old/icons/scalable/notification-gsm-high.svg 1970-01-01 00:00:00 +0000 -+++ new/icons/scalable/notification-gsm-high.svg 2009-03-04 22:02:18 +0000 -@@ -0,0 +1,771 @@ -+ -+ -+image/svg+xml -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -\ No newline at end of file - -=== added file 'icons/scalable/notification-network-ethernet-connected.svg' ---- old/icons/scalable/notification-network-ethernet-connected.svg 1970-01-01 00:00:00 +0000 -+++ new/icons/scalable/notification-network-ethernet-connected.svg 2009-03-04 22:01:48 +0000 -@@ -0,0 +1,1015 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - -=== added file 'icons/scalable/notification-network-wireless-full.svg' ---- old/icons/scalable/notification-network-wireless-full.svg 1970-01-01 00:00:00 +0000 -+++ new/icons/scalable/notification-network-wireless-full.svg 2009-03-04 21:54:28 +0000 -@@ -0,0 +1,41 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -\ No newline at end of file - diff -Nru network-manager-applet-0.9.4.1/debian/patches/lp341684_device_sensitive_disconnect_notify.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp341684_device_sensitive_disconnect_notify.patch --- network-manager-applet-0.9.4.1/debian/patches/lp341684_device_sensitive_disconnect_notify.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp341684_device_sensitive_disconnect_notify.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,210 +0,0 @@ -=== modified file 'src/applet-device-wifi.c' ---- - src/applet-device-wifi.c | 1 - src/applet.c | 135 +++++++++++++++++++++++++++++++++++++++++++++-- - src/applet.h | 3 + - 3 files changed, 135 insertions(+), 4 deletions(-) - -Index: b/src/applet-device-wifi.c -=================================================================== ---- a/src/applet-device-wifi.c -+++ b/src/applet-device-wifi.c -@@ -1263,6 +1263,7 @@ wireless_device_state_changed (NMDevice - return; - - esc_ssid = get_ssid_utf8 (new); -+ g_object_set_data_full (G_OBJECT(device), "canonical-last-essid", g_strdup (esc_ssid), (GDestroyNotify) g_free); - applet_do_notify_with_pref (applet, - esc_ssid ? esc_ssid : _("(none)"), - _("Connection Established"), -Index: b/src/applet.c -=================================================================== ---- a/src/applet.c -+++ b/src/applet.c -@@ -45,6 +45,7 @@ - #include - - #include -+#include - #include - #include - #include -@@ -210,6 +211,19 @@ impl_dbus_connect_to_3g_network (NMApple - - /********************************************************************/ - -+struct _OfflineNotificationContextInfo { -+ NMState state; -+ NMDeviceState device_state; -+ NMDeviceStateReason device_state_reason; -+ NMDeviceType device_type; -+ gchar* title; -+ const gchar* text; -+ const gchar* icon; -+ NotifyUrgency urgency; -+}; -+ -+typedef struct _OfflineNotificationContextInfo OfflineNotificationContextInfo; -+ - static NMActiveConnection * - applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) - { -@@ -2227,6 +2241,58 @@ applet_get_exported_connection_for_devic - return NULL; - } - -+static gboolean -+select_merged_notification_text (OfflineNotificationContextInfo *info) -+{ -+ info->urgency = NOTIFY_URGENCY_LOW; -+ /* only do something if this is about full offline state */ -+ if(info->state != NM_STATE_UNKNOWN || info->device_state != NM_DEVICE_STATE_UNKNOWN) { -+ info->urgency = NOTIFY_URGENCY_NORMAL; -+ if (!info->title) -+ info->title = g_strdup (_("Network")); -+ if (info->state == NM_STATE_DISCONNECTED || info->state == NM_STATE_ASLEEP) { -+ info->text = _("Disconnected - you are now offline"); -+ } else -+ info->text = _("Disconnected"); -+ -+ switch (info->device_type) { -+ case NM_DEVICE_TYPE_ETHERNET: -+ info->icon = "notification-network-ethernet-disconnected"; -+ break; -+ case NM_DEVICE_TYPE_WIFI: -+ info->icon = "notification-network-wireless-disconnected"; -+ break; -+ case NM_DEVICE_TYPE_MODEM: -+ info->icon = "notification-gsm-disconnected"; -+ break; -+ default: -+ info->icon = "nm-no-connection"; -+ break; -+ } -+ g_debug("going for offline with icon: %s", info->icon); -+ return TRUE; -+ } -+ return FALSE; -+} -+ -+static gboolean -+foo_online_offline_deferred_notify (gpointer user_data) -+{ -+ NMApplet *applet = NM_APPLET (user_data); -+ OfflineNotificationContextInfo *info = applet->notification_queue_data; -+ if(select_merged_notification_text (info)) -+ applet_do_notify (applet, info->urgency, info->title, info->text, info->icon, NULL, NULL, NULL, applet); -+ else -+ g_debug("no notification because merged found that we have nothing to say (e.g. not offline)"); -+ if (info->title) -+ g_free (info->title); -+ info->title = NULL; -+ g_free (applet->notification_queue_data); -+ applet->notification_queue_data = NULL; -+ applet->deferred_id = 0; -+ return FALSE; -+} -+ - static void - applet_common_device_state_changed (NMDevice *device, - NMDeviceState new_state, -@@ -2240,6 +2306,54 @@ applet_common_device_state_changed (NMDe - vpn_activating = applet_is_any_vpn_activating (applet); - - switch (new_state) { -+ case NM_DEVICE_STATE_FAILED: -+ case NM_DEVICE_STATE_DISCONNECTED: -+ case NM_DEVICE_STATE_UNMANAGED: -+ case NM_DEVICE_STATE_UNAVAILABLE: -+ { -+ if (old_state != NM_DEVICE_STATE_FAILED && -+ old_state != NM_DEVICE_STATE_UNKNOWN && -+ old_state != NM_DEVICE_STATE_DISCONNECTED && -+ old_state != NM_DEVICE_STATE_UNMANAGED && -+ old_state != NM_DEVICE_STATE_UNAVAILABLE) { -+ OfflineNotificationContextInfo *info = applet->notification_queue_data; -+ if (!info) { -+ info = g_new0(OfflineNotificationContextInfo, 1); -+ applet->notification_queue_data = info; -+ } -+ -+ info->device_state = new_state; -+ info->device_state_reason = reason; -+ if (info->title) { -+ g_free(info->title); -+ info->title = NULL; -+ } -+ if (NM_IS_DEVICE_WIFI (device)) { -+ info->device_type = NM_DEVICE_TYPE_WIFI; -+ info->title = g_strdup(g_object_get_data (G_OBJECT(device), "canonical-last-essid")); -+ if (!info->title) -+ info->title = g_strdup (_("Wireless network")); -+ } else if (NM_IS_DEVICE_ETHERNET (device)) { -+ info->device_type = NM_DEVICE_TYPE_ETHERNET; -+ info->title = g_strdup(_("Wired network")); -+ } else if (NM_IS_DEVICE_MODEM (device)) { -+ info->device_type = NM_DEVICE_TYPE_MODEM; -+ info->title = g_strdup (_("Modem network")); -+ } else { -+ info->device_type = NM_DEVICE_TYPE_UNKNOWN; -+ info->title = g_strdup (_("Network")); -+ } -+ -+ if (applet->deferred_id) -+ g_source_remove (applet->deferred_id); -+ applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); -+ -+ clear_animation_timeout (applet); -+ } else { -+ g_debug ("old state indicates that this was not a disconnect %d", old_state); -+ } -+ break; -+ } - case NM_DEVICE_STATE_PREPARE: - case NM_DEVICE_STATE_CONFIG: - case NM_DEVICE_STATE_NEED_AUTH: -@@ -2310,13 +2424,26 @@ foo_client_state_changed_cb (NMClient *c - { - NMApplet *applet = NM_APPLET (user_data); - -+ g_debug("foo_client_state_changed_cb"); - switch (nm_client_get_state (client)) { - case NM_STATE_DISCONNECTED: -- applet_do_notify_with_pref (applet, _("Disconnected"), -- _("The network connection has been disconnected."), -- "nm-no-connection", -- PREF_DISABLE_DISCONNECTED_NOTIFICATIONS); -+ case NM_STATE_ASLEEP: -+ { -+ OfflineNotificationContextInfo *info = applet->notification_queue_data; -+ if (!info) { -+ info = g_new0(OfflineNotificationContextInfo, 1); -+ applet->notification_queue_data = info; -+ } -+ -+ info->state = nm_client_get_state (client); -+ select_merged_notification_text (info); -+ -+ if (applet->deferred_id) -+ g_source_remove (applet->deferred_id); -+ applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); -+ - /* Fall through */ -+ } - default: - break; - } -Index: b/src/applet.h -=================================================================== ---- a/src/applet.h -+++ b/src/applet.h -@@ -175,6 +175,9 @@ typedef struct - - /* Tracker objects for secrets requests */ - GSList * secrets_reqs; -+ -+ gpointer notification_queue_data; -+ guint deferred_id; - } NMApplet; - - typedef void (*AppletNewAutoConnectionCallback) (NMConnection *connection, diff -Nru network-manager-applet-0.9.4.1/debian/patches/lp358526_generic_disconnected_notification_icon.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp358526_generic_disconnected_notification_icon.patch --- network-manager-applet-0.9.4.1/debian/patches/lp358526_generic_disconnected_notification_icon.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp358526_generic_disconnected_notification_icon.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ ---- - src/applet.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: network-manager-applet-0.8.999+git.20110523t134536.bb7ef97/src/applet.c -=================================================================== ---- network-manager-applet-0.8.999+git.20110523t134536.bb7ef97.orig/src/applet.c 2011-05-26 11:44:24.000000000 -0400 -+++ network-manager-applet-0.8.999+git.20110523t134536.bb7ef97/src/applet.c 2011-05-26 11:58:42.954951054 -0400 -@@ -2230,7 +2230,7 @@ - info->icon = "notification-gsm-disconnected"; - break; - default: -- info->icon = "nm-no-connection"; -+ info->icon = "notification-network-disconnected"; - break; - } - g_debug("going for offline with icon: %s", info->icon); diff -Nru network-manager-applet-0.9.4.1/debian/patches/lp460144_correctly_update_notification.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp460144_correctly_update_notification.patch --- network-manager-applet-0.9.4.1/debian/patches/lp460144_correctly_update_notification.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp460144_correctly_update_notification.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ -Index: network-manager-applet-0.8.9997+git.20110616t193616.b2e6a33/src/applet.c -=================================================================== ---- network-manager-applet-0.8.9997+git.20110616t193616.b2e6a33.orig/src/applet.c 2011-06-17 14:06:04.807740985 -0400 -+++ network-manager-applet-0.8.9997+git.20110616t193616.b2e6a33/src/applet.c 2011-06-17 14:06:29.547741028 -0400 -@@ -787,17 +787,6 @@ - return item; - } - --static void --applet_clear_notify (NMApplet *applet) --{ -- if (applet->notification == NULL) -- return; -- -- notify_notification_close (applet->notification, NULL); -- g_object_unref (applet->notification); -- applet->notification = NULL; --} -- - static gboolean - applet_notify_server_has_actions (void) - { -@@ -839,19 +828,28 @@ - if (!gtk_status_icon_is_embedded (applet->status_icon)) - return; - -- applet_clear_notify (applet); -- - escaped = utils_escape_notify_message (message); -- notify = notify_notification_new (summary, -- escaped, -- icon ? icon : GTK_STOCK_NETWORK -+ -+ if (applet->notification == NULL) { -+ notify = notify_notification_new (summary, -+ escaped, -+ icon ? icon : GTK_STOCK_NETWORK - #if HAVE_LIBNOTIFY_07 -- ); -+ ); - #else -- , NULL); -+ , NULL); - #endif -+ -+ applet->notification = notify; -+ } else { -+ notify = applet->notification; -+ notify_notification_update (notify, -+ summary, -+ escaped, -+ icon ? icon : GTK_STOCK_NETWORK); -+ } -+ - g_free (escaped); -- applet->notification = notify; - - #if HAVE_LIBNOTIFY_07 - notify_notification_set_hint (notify, "transient", g_variant_new_boolean (TRUE)); -@@ -3226,7 +3224,6 @@ - /* Have clicking on the applet act also as acknowledgement - * of the notification. - */ -- applet_clear_notify (applet); - - /* Kill any old menu */ - if (applet->menu) -@@ -3256,7 +3253,6 @@ - /* Have clicking on the applet act also as acknowledgement - * of the notification. - */ -- applet_clear_notify (applet); - - nma_context_menu_update (applet); - gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, diff -Nru network-manager-applet-0.9.4.1/debian/patches/lp829673_gconf_hide_applet.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp829673_gconf_hide_applet.patch --- network-manager-applet-0.9.4.1/debian/patches/lp829673_gconf_hide_applet.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp829673_gconf_hide_applet.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,143 +0,0 @@ -Index: network-manager-applet-0.9.2.0+git.20120126t000800.5151959/nm-applet.schemas.in -=================================================================== ---- network-manager-applet-0.9.2.0+git.20120126t000800.5151959.orig/nm-applet.schemas.in 2012-01-30 11:06:59.000000000 -0500 -+++ network-manager-applet-0.9.2.0+git.20120126t000800.5151959/nm-applet.schemas.in 2012-02-24 12:00:36.922701318 -0500 -@@ -70,6 +70,19 @@ - - - -+ -+ /schemas/apps/nm-applet/show-applet -+ /apps/nm-applet/show-applet -+ nm-applet -+ bool -+ TRUE -+ -+ Show the applet in notification area -+ -+ Set to FALSE to disable displaying the applet in the notification area. -+ -+ -+ - - - -Index: network-manager-applet-0.9.2.0+git.20120126t000800.5151959/src/applet.c -=================================================================== ---- network-manager-applet-0.9.2.0+git.20120126t000800.5151959.orig/src/applet.c 2012-02-24 12:00:36.818701313 -0500 -+++ network-manager-applet-0.9.2.0+git.20120126t000800.5151959/src/applet.c 2012-02-24 12:09:22.762720121 -0500 -@@ -2912,11 +2912,18 @@ - state = NM_STATE_UNKNOWN; - - #ifdef ENABLE_INDICATOR -- if (nm_running) -+ if (applet->in_fallback) -+ gtk_status_icon_set_visible (applet->status_icon, applet->visible); -+ else -+ gtk_status_icon_set_visible (applet->status_icon, FALSE); -+ -+ if (nm_running && applet->visible) - app_indicator_set_status (applet->app_indicator, APP_INDICATOR_STATUS_ACTIVE); - else - app_indicator_set_status (applet->app_indicator, APP_INDICATOR_STATUS_PASSIVE); --#endif -+#else -+ gtk_status_icon_set_visible (applet->status_icon, applet->visible); -+#endif /* ENABLE_INDICATOR */ - - switch (state) { - case NM_STATE_UNKNOWN: -@@ -3476,7 +3483,7 @@ - g_return_val_if_fail (applet->status_icon, NULL); - - g_message ("using fallback from indicator to GtkStatusIcon"); -- gtk_status_icon_set_visible (applet->status_icon, TRUE); -+ gtk_status_icon_set_visible (applet->status_icon, applet->visible); - - applet->in_fallback = TRUE; - -@@ -3537,7 +3544,7 @@ - applet->status_icon = gtk_status_icon_new (); - - #ifdef ENABLE_INDICATOR -- gtk_status_icon_set_visible (applet->status_icon, FALSE); -+ gtk_status_icon_set_visible (applet->status_icon, applet->visible); - #endif - - if (!applet->status_icon) -@@ -3658,6 +3665,32 @@ - } - } - -+static void -+applet_gconf_value_changed (GConfClient *client, -+ guint cnxn_id, -+ GConfEntry *entry, -+ gpointer user_data) -+{ -+ NMApplet *applet = NM_APPLET (user_data); -+ GConfValue *value = NULL; -+ -+ g_return_if_fail (entry != NULL); -+ -+ if (g_strcmp0(gconf_entry_get_key (entry), PREF_SHOW_APPLET) == 0) { -+ value = gconf_entry_get_value (entry); -+ applet->visible = gconf_value_get_bool (value); -+ -+ gtk_status_icon_set_visible (applet->status_icon, applet->visible); -+ -+#ifdef ENABLE_INDICATOR -+ if (applet->visible) -+ app_indicator_set_status (applet->app_indicator, APP_INDICATOR_STATUS_ACTIVE); -+ else -+ app_indicator_set_status (applet->app_indicator, APP_INDICATOR_STATUS_PASSIVE); -+#endif /* ENABLE_INDICATOR */ -+ } -+} -+ - static GObject * - constructor (GType type, - guint n_props, -@@ -3683,12 +3716,20 @@ - if (!applet->gconf_client) - goto error; - -- /* Note that we don't care about change notifications for prefs values... */ - gconf_client_add_dir (applet->gconf_client, - APPLET_PREFS_PATH, - GCONF_CLIENT_PRELOAD_ONELEVEL, - NULL); - -+ applet->visible = gconf_client_get_bool (applet->gconf_client, -+ PREF_SHOW_APPLET, -+ NULL); -+ -+ gconf_client_notify_add (applet->gconf_client, -+ APPLET_PREFS_PATH, -+ (GConfClientNotifyFunc) applet_gconf_value_changed, -+ applet, NULL, NULL); -+ - foo_client_setup (applet); - - /* Load pixmaps and create applet widgets */ -Index: network-manager-applet-0.9.2.0+git.20120126t000800.5151959/src/applet.h -=================================================================== ---- network-manager-applet-0.9.2.0+git.20120126t000800.5151959.orig/src/applet.h 2012-02-24 12:00:36.818701313 -0500 -+++ network-manager-applet-0.9.2.0+git.20120126t000800.5151959/src/applet.h 2012-02-24 12:00:36.926701317 -0500 -@@ -69,6 +69,7 @@ - #define PREF_DISABLE_VPN_NOTIFICATIONS APPLET_PREFS_PATH "/disable-vpn-notifications" - #define PREF_DISABLE_WIFI_CREATE APPLET_PREFS_PATH "/disable-wifi-create" - #define PREF_SUPPRESS_WIRELESS_NETWORKS_AVAILABLE APPLET_PREFS_PATH "/suppress-wireless-networks-available" -+#define PREF_SHOW_APPLET APPLET_PREFS_PATH "/show-applet" - - #define ICON_LAYER_LINK 0 - #define ICON_LAYER_VPN 1 -@@ -94,6 +95,8 @@ - - GConfClient * gconf_client; - -+ gboolean visible; -+ - /* Permissions */ - NMClientPermissionResult permissions[NM_CLIENT_PERMISSION_LAST + 1]; - diff -Nru network-manager-applet-0.9.4.1/debian/patches/lp830178_adhoc_ip6_ignore.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp830178_adhoc_ip6_ignore.patch --- network-manager-applet-0.9.4.1/debian/patches/lp830178_adhoc_ip6_ignore.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/lp830178_adhoc_ip6_ignore.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -From: Mathieu Trudel-Lapierre -Subject: set IPv6 to Ignore by default for creating new ad-hoc wifi networks. -Bug-Ubuntu: https://bugs.launchpad.net/bugs/830178 - -Index: network-manager-applet-0.9.1.90/src/libnm-gtk/nm-wireless-dialog.c -=================================================================== ---- network-manager-applet-0.9.1.90.orig/src/libnm-gtk/nm-wireless-dialog.c 2011-08-26 16:38:33.000000000 -0400 -+++ network-manager-applet-0.9.1.90/src/libnm-gtk/nm-wireless-dialog.c 2011-10-03 14:47:24.050143959 -0400 -@@ -1227,12 +1227,17 @@ - - if (priv->adhoc_create) { - NMSettingIP4Config *s_ip4; -+ NMSettingIP6Config *s_ip6; - - g_object_set (s_wireless, NM_SETTING_WIRELESS_MODE, "adhoc", NULL); - - s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new (); - g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_SHARED, NULL); - nm_connection_add_setting (connection, (NMSetting *) s_ip4); -+ -+ s_ip6 = (NMSettingIP6Config *) nm_setting_ip6_config_new (); -+ g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL); -+ nm_connection_add_setting (connection, (NMSetting *) s_ip6); - } - - nm_connection_add_setting (connection, (NMSetting *) s_wireless); diff -Nru network-manager-applet-0.9.4.1/debian/patches/mobile-wizard.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/mobile-wizard.patch --- network-manager-applet-0.9.4.1/debian/patches/mobile-wizard.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/mobile-wizard.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ -From: Mathieu Trudel-Lapierre -Subject: Clean up the duplicate titles and buttons from the mobile wizard intro -Bug-Ubuntu: http://bugs.launchpad.net/bugs/856785 - -The mobile wizard intro page would show all titles duplicated on the left pane, -as well as a bunch of extra, unnecessary buttons (like Go Back...). Clear this -up by using gtk_widget_show() while building the page so the title shows up -when the wizard is started, and call gtk_widget_show_all() in the callback -for the "prepare" signal so that all the contained widgets are displayed when -the user actually gets to that page. - -Index: network-manager-applet-0.9.1.90/src/libnm-gtk/nm-mobile-wizard.c -=================================================================== ---- network-manager-applet-0.9.1.90.orig/src/libnm-gtk/nm-mobile-wizard.c 2011-08-26 16:38:33.000000000 -0400 -+++ network-manager-applet-0.9.1.90/src/libnm-gtk/nm-mobile-wizard.c 2011-09-22 16:19:04.188449031 -0400 -@@ -258,13 +258,13 @@ - gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 6); - } - -- gtk_widget_show_all (vbox); -+ gtk_widget_show (vbox); - self->confirm_idx = gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); - gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), - vbox, _("Confirm Mobile Broadband Settings")); - -- gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); - gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_CONFIRM); -+ gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); - - self->confirm_page = vbox; - } -@@ -531,10 +531,10 @@ - gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); - gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); - -+ gtk_widget_show (vbox); - self->plan_idx = gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); - gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), vbox, _("Choose your Billing Plan")); - gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_CONTENT); -- gtk_widget_show_all (vbox); - - self->plan_page = vbox; - } -@@ -826,10 +826,10 @@ - if (self->method_type != NMN_MOBILE_ACCESS_METHOD_TYPE_UNKNOWN) - gtk_widget_hide (self->provider_unlisted_type_combo); - -+ gtk_widget_show (vbox); - self->providers_idx = gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); - gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), vbox, _("Choose your Provider")); - gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_CONTENT); -- gtk_widget_show_all (vbox); - - self->providers_page = vbox; - } -@@ -1141,11 +1141,11 @@ - gtk_container_add (GTK_CONTAINER (alignment), scroll); - gtk_box_pack_start (GTK_BOX (vbox), alignment, TRUE, TRUE, 6); - -+ gtk_widget_show (vbox); - self->country_idx = gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); - gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), vbox, _("Choose your Provider's Country or Region")); - gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_CONTENT); - gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); -- gtk_widget_show_all (vbox); - - self->country_page = vbox; - -@@ -1455,13 +1455,13 @@ - intro_add_initial_devices (self); - } - -- gtk_widget_show_all (vbox); -+ gtk_widget_show (vbox); - gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); - gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), - vbox, _("Set up a Mobile Broadband Connection")); - -- gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); - gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_INTRO); -+ gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); - } - - /**********************************************************/ -@@ -1491,6 +1491,8 @@ - { - NMAMobileWizard *self = user_data; - -+ gtk_widget_show_all (page); -+ - if (page != self->providers_page) - remove_provider_focus_idle (self); - if (page != self->country_page) -@@ -1635,6 +1637,8 @@ - g_signal_connect (self->assistant, "cancel", G_CALLBACK (assistant_cancel), self); - g_signal_connect (self->assistant, "prepare", G_CALLBACK (assistant_prepare), self); - -+ gtk_assistant_update_buttons_state (GTK_ASSISTANT (self->assistant)); -+ - /* Run the wizard */ - if (parent) - gtk_window_set_transient_for (GTK_WINDOW (self->assistant), parent); -@@ -1654,7 +1658,6 @@ - g_return_if_fail (self != NULL); - - gtk_window_present (GTK_WINDOW (self->assistant)); -- gtk_widget_show_all (self->assistant); - } - - void diff -Nru network-manager-applet-0.9.4.1/debian/patches/nm-applet-use-indicator.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/nm-applet-use-indicator.patch --- network-manager-applet-0.9.4.1/debian/patches/nm-applet-use-indicator.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/nm-applet-use-indicator.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,2315 +0,0 @@ -From: Mathieu Trudel-Lapierre -Subject: Implement conditional support for libappindicator - -To get better integration with Unity (and actually have nm-applet show up at -all with Unity / compiz), implement drawing the applet using libappindicator. - -To play well with others, this patch actually implements libappindicator -conditionally to running configure with --enable-indicator. - -=== modified file 'configure.ac' ---- - configure.ac | 8 - src/Makefile.am | 2 - src/applet-device-bt.c | 13 - - src/applet-device-cdma.c | 52 ++++ - src/applet-device-gsm.c | 56 ++++- - src/applet-device-wifi.c | 327 +++++++++++++++++++++++++++++- - src/applet-device-wimax.c | 42 +++ - src/applet-device-wired.c | 13 - - src/applet.c | 450 +++++++++++++++++++++++++++++++++++------- - src/applet.h | 19 + - src/gconf-helpers/Makefile.am | 2 - src/mb-menu-item.c | 3 - src/mobile-helpers.c | 135 ++++++++++++ - src/mobile-helpers.h | 11 + - 14 files changed, 1020 insertions(+), 113 deletions(-) - -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -170,6 +170,14 @@ case "${with_bluetooth}" in - ;; - esac - -+AC_ARG_ENABLE([indicator], -+[ --enable-appindicator Enables using libappindicator to draw the applet -+ on the screen, instead of the standard status icons.], -+[ -+ PKG_CHECK_MODULES(APPINDICATOR, appindicator3-0.1) -+ AC_DEFINE([ENABLE_INDICATOR], 1, [Enable using libappindicator]) -+]) -+ - AM_CONDITIONAL(HAVE_GBT, test x"$have_gbt" = "xyes") - - AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) -Index: b/src/Makefile.am -=================================================================== ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -8,6 +8,7 @@ nm_applet_CPPFLAGS = \ - $(GCONF_CFLAGS) \ - $(GNOME_KEYRING_CFLAGS) \ - $(NOTIFY_CFLAGS) \ -+ $(APPINDICATOR_CFLAGS) \ - -DICONDIR=\""$(datadir)/icons"\" \ - -DUIDIR=\""$(uidir)"\" \ - -DBINDIR=\""$(bindir)"\" \ -@@ -68,6 +69,7 @@ nm_applet_LDADD = \ - $(GCONF_LIBS) \ - $(GNOME_KEYRING_LIBS) \ - $(NOTIFY_LIBS) \ -+ $(APPINDICATOR_LIBS) \ - ${top_builddir}/src/marshallers/libmarshallers.la \ - ${top_builddir}/src/utils/libutils.la \ - ${top_builddir}/src/gconf-helpers/libgconf-helpers.la \ -Index: b/src/applet-device-bt.c -=================================================================== ---- a/src/applet-device-bt.c -+++ b/src/applet-device-bt.c -@@ -154,7 +154,9 @@ bt_add_menu_item (NMDevice *device, - - item = applet_menu_item_create_device_item_helper (device, applet, text); - -+#ifndef ENABLE_INDICATOR - gtk_widget_set_sensitive (item, FALSE); -+#endif - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); - -@@ -209,15 +211,16 @@ bt_device_state_changed (NMDevice *devic - } - } - --static GdkPixbuf * -+static void - bt_get_icon (NMDevice *device, - NMDeviceState state, - NMConnection *connection, -+ GdkPixbuf **out_pixbuf, -+ char **out_indicator_icon, - char **tip, - NMApplet *applet) - { - NMSettingConnection *s_con; -- GdkPixbuf *pixbuf = NULL; - const char *id; - - id = nm_device_get_iface (NM_DEVICE (device)); -@@ -240,14 +243,16 @@ bt_get_icon (NMDevice *device, - *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); - break; - case NM_DEVICE_STATE_ACTIVATED: -- pixbuf = nma_icon_check_and_load ("nm-device-wwan", &applet->wwan_icon, applet); -+ *out_indicator_icon = g_strdup_printf ("nm-device-wwan"); -+ *out_pixbuf = nma_icon_check_and_load ("nm-device-wwan", &applet->wwan_icon, applet); - *tip = g_strdup_printf (_("Mobile broadband connection '%s' active"), id); - break; - default: - break; - } - -- return pixbuf ? g_object_ref (pixbuf) : NULL; -+ if (out_pixbuf && *out_pixbuf) -+ g_object_ref (*out_pixbuf); - } - - typedef struct { -Index: b/src/applet-device-cdma.c -=================================================================== ---- a/src/applet-device-cdma.c -+++ b/src/applet-device-cdma.c -@@ -327,6 +327,9 @@ cdma_add_menu_item (NMDevice *device, - char *text; - GtkWidget *item; - GSList *connections, *all, *iter; -+#ifdef ENABLE_INDICATOR -+ GtkWidget *signal_icon; -+#endif - - info = g_object_get_data (G_OBJECT (device), "devinfo"); - -@@ -348,7 +351,9 @@ cdma_add_menu_item (NMDevice *device, - } - - item = applet_menu_item_create_device_item_helper (device, applet, text); -+#ifndef ENABLE_INDICATOR - gtk_widget_set_sensitive (item, FALSE); -+#endif - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); - g_free (text); -@@ -360,6 +365,7 @@ cdma_add_menu_item (NMDevice *device, - s_con = nm_connection_get_setting_connection (active); - g_assert (s_con); - -+#ifndef ENABLE_INDICATOR - item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), - info->quality_valid ? info->quality : 0, - info->provider_name, -@@ -368,6 +374,21 @@ cdma_add_menu_item (NMDevice *device, - cdma_state_to_mb_state (info), - info->modem_enabled, - applet); -+#else -+ text = mobile_helper_get_connection_label (nm_setting_connection_get_id (s_con), -+ info->provider_name, -+ cdma_act_to_mb_act (info), -+ cdma_state_to_mb_state (info)); -+ item = gtk_image_menu_item_new_with_label (text); -+ g_free (text); -+ text = mobile_helper_get_quality_icon (info->quality_valid ? -+ info->quality : 0, -+ applet); -+ signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); -+ g_free (text); -+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); -+#endif - gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); - add_connection_item (device, active, item, menu, applet); - } -@@ -381,6 +402,7 @@ cdma_add_menu_item (NMDevice *device, - } - } else { - /* Otherwise show idle registration state or disabled */ -+#ifndef ENABLE_INDICATOR - item = nm_mb_menu_item_new (NULL, - info->quality_valid ? info->quality : 0, - info->provider_name, -@@ -389,6 +411,21 @@ cdma_add_menu_item (NMDevice *device, - cdma_state_to_mb_state (info), - info->modem_enabled, - applet); -+#else -+ text = mobile_helper_get_connection_label (NULL, -+ info->provider_name, -+ cdma_act_to_mb_act (info), -+ cdma_state_to_mb_state (info)); -+ item = gtk_image_menu_item_new_with_label (text); -+ g_free (text); -+ text = mobile_helper_get_quality_icon (info->quality_valid ? -+ info->quality : 0, -+ applet); -+ signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); -+ g_free (text); -+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); -+#endif - gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - } -@@ -454,15 +491,16 @@ cdma_device_state_changed (NMDevice *dev - check_start_polling (info); - } - --static GdkPixbuf * -+static void - cdma_get_icon (NMDevice *device, - NMDeviceState state, - NMConnection *connection, -+ GdkPixbuf **out_pixbuf, -+ char **out_indicator_icon, - char **tip, - NMApplet *applet) - { - NMSettingConnection *s_con; -- GdkPixbuf *pixbuf = NULL; - const char *id; - CdmaDeviceInfo *info; - gboolean mb_state; -@@ -491,11 +529,14 @@ cdma_get_icon (NMDevice *device, - break; - case NM_DEVICE_STATE_ACTIVATED: - mb_state = cdma_state_to_mb_state (info); -- pixbuf = mobile_helper_get_status_pixbuf (info->quality, -+ *out_pixbuf = mobile_helper_get_status_pixbuf (info->quality, - info->quality_valid, - mb_state, - cdma_act_to_mb_act (info), - applet); -+ *out_indicator_icon = mobile_helper_get_quality_icon (info->quality_valid ? -+ info->quality : 0, -+ applet); - - if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { - gboolean roaming = (mb_state == MB_STATE_ROAMING); -@@ -510,8 +551,6 @@ cdma_get_icon (NMDevice *device, - default: - break; - } -- -- return pixbuf; - } - - typedef struct { -@@ -877,6 +916,9 @@ reg_state_changed_cb (DBusGProxy *proxy, - update_registration_state (info, cdma1x_state, evdo_state); - info->skip_reg_poll = TRUE; - applet_schedule_update_icon (info->applet); -+#ifdef ENABLE_INDICATOR -+ applet_schedule_update_menu (info->applet); -+#endif /* ENABLE_INDICATOR */ - } - - static void -Index: b/src/applet-device-gsm.c -=================================================================== ---- a/src/applet-device-gsm.c -+++ b/src/applet-device-gsm.c -@@ -42,6 +42,7 @@ - #include "applet-device-gsm.h" - #include "utils.h" - #include "nm-mobile-wizard.h" -+#include "mobile-helpers.h" - #include "applet-dialogs.h" - #include "mb-menu-item.h" - #include "nma-marshal.h" -@@ -374,6 +375,9 @@ gsm_add_menu_item (NMDevice *device, - char *text; - GtkWidget *item; - GSList *connections, *all, *iter; -+#ifdef ENABLE_INDICATOR -+ GtkWidget *signal_icon; -+#endif - - info = g_object_get_data (G_OBJECT (device), "devinfo"); - -@@ -395,7 +399,9 @@ gsm_add_menu_item (NMDevice *device, - } - - item = applet_menu_item_create_device_item_helper (device, applet, text); -+#ifndef ENABLE_INDICATOR - gtk_widget_set_sensitive (item, FALSE); -+#endif - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); - g_free (text); -@@ -407,6 +413,7 @@ gsm_add_menu_item (NMDevice *device, - s_con = nm_connection_get_setting_connection (active); - g_assert (s_con); - -+#ifndef ENABLE_INDICATOR - item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), - info->quality_valid ? info->quality : 0, - info->op_name, -@@ -415,6 +422,21 @@ gsm_add_menu_item (NMDevice *device, - gsm_state_to_mb_state (info), - info->modem_enabled, - applet); -+#else -+ text = mobile_helper_get_connection_label (nm_setting_connection_get_id (s_con), -+ info->op_name, -+ gsm_act_to_mb_act (info), -+ gsm_state_to_mb_state (info)); -+ item = gtk_image_menu_item_new_with_label (text); -+ g_free (text); -+ text = mobile_helper_get_quality_icon (info->quality_valid ? -+ info->quality : 0, -+ applet); -+ signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); -+ g_free (text); -+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); -+#endif - gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); - add_connection_item (device, active, item, menu, applet); - } -@@ -428,6 +450,7 @@ gsm_add_menu_item (NMDevice *device, - } - } else { - /* Otherwise show idle registration state or disabled */ -+#ifndef ENABLE_INDICATOR - item = nm_mb_menu_item_new (NULL, - info->quality_valid ? info->quality : 0, - info->op_name, -@@ -436,6 +459,23 @@ gsm_add_menu_item (NMDevice *device, - gsm_state_to_mb_state (info), - info->modem_enabled, - applet); -+#else -+ text = mobile_helper_get_connection_label (NULL, -+ info->op_name, -+ gsm_act_to_mb_act (info), -+ gsm_state_to_mb_state (info)); -+ item = gtk_image_menu_item_new_with_label (text); -+ g_free (text); -+ text = mobile_helper_get_quality_icon (info->quality_valid ? -+ info->quality : 0, -+ applet); -+ signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); -+ g_free (text); -+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); -+ gtk_widget_set_sensitive (item, FALSE); -+#endif -+ - gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - } -@@ -496,15 +536,16 @@ gsm_device_state_changed (NMDevice *devi - check_start_polling (info); - } - --static GdkPixbuf * -+static void - gsm_get_icon (NMDevice *device, - NMDeviceState state, - NMConnection *connection, -+ GdkPixbuf **out_pixbuf, -+ char **out_indicator_icon, - char **tip, - NMApplet *applet) - { - NMSettingConnection *s_con; -- GdkPixbuf *pixbuf = NULL; - const char *id; - GsmDeviceInfo *info; - guint32 mb_state; -@@ -533,11 +574,14 @@ gsm_get_icon (NMDevice *device, - break; - case NM_DEVICE_STATE_ACTIVATED: - mb_state = gsm_state_to_mb_state (info); -- pixbuf = mobile_helper_get_status_pixbuf (info->quality, -+ *out_pixbuf = mobile_helper_get_status_pixbuf (info->quality, - info->quality_valid, - mb_state, - gsm_act_to_mb_act (info), - applet); -+ *out_indicator_icon = mobile_helper_get_quality_icon (info->quality_valid ? -+ info->quality : 0, -+ applet); - - if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { - gboolean roaming = (mb_state == MB_STATE_ROAMING); -@@ -552,8 +596,6 @@ gsm_get_icon (NMDevice *device, - default: - break; - } -- -- return pixbuf; - } - - typedef struct { -@@ -1554,6 +1596,10 @@ reg_info_changed_cb (DBusGProxy *proxy, - g_free (info->op_name); - info->op_name = parse_op_name (info, op_name, info->op_code); - info->skip_reg_poll = TRUE; -+ -+#ifdef ENABLE_INDICATOR -+ applet_schedule_update_menu (info->applet); -+#endif /* ENABLE_INDICATOR */ - } - - static void -Index: b/src/applet-device-wifi.c -=================================================================== ---- a/src/applet-device-wifi.c -+++ b/src/applet-device-wifi.c -@@ -31,6 +31,7 @@ - - #include - #include -+#include - - #include - #include -@@ -309,6 +310,135 @@ is_blacklisted_ssid (const GByteArray *s - return is_ssid_in_list (ssid, blacklisted_ssids); - } - -+#ifdef ENABLE_INDICATOR -+static void -+clear_dupes_list (GSList *list) -+{ -+ g_slist_foreach (list, (GFunc) g_free, NULL); -+ g_slist_free (list); -+} -+ -+static gboolean -+get_ap_is_encrypted (NMAccessPoint *ap) -+{ -+ guint32 ap_flags, ap_wpa, ap_rsn; -+ -+ ap_flags = nm_access_point_get_flags (ap); -+ ap_wpa = nm_access_point_get_wpa_flags (ap); -+ ap_rsn = nm_access_point_get_rsn_flags (ap); -+ -+ if ((ap_flags & NM_802_11_AP_FLAGS_PRIVACY) || ap_wpa || ap_rsn) -+ return TRUE; -+ -+ return FALSE; -+} -+ -+static void -+ap_menu_item_set_sensitive (GtkWidget *item, NMAccessPoint *ap, guint32 dev_caps) -+{ -+ gboolean is_adhoc = FALSE; -+ guint32 ap_flags, ap_wpa, ap_rsn; -+ -+ ap_flags = nm_access_point_get_flags (ap); -+ ap_wpa = nm_access_point_get_wpa_flags (ap); -+ ap_rsn = nm_access_point_get_rsn_flags (ap); -+ -+ if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) -+ is_adhoc = TRUE; -+ -+ /* Don't enable the menu item the device can't even connect to the AP */ -+ if ( !nm_utils_security_valid (NMU_SEC_NONE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) -+ && !nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) -+ && !nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) -+ && !nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) -+ && !nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) -+ && !nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) -+ && !nm_utils_security_valid (NMU_SEC_WPA_ENTERPRISE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) -+ && !nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { -+ gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); -+ } -+} -+ -+static gchar * -+get_best_icon_name_for_ap (NMAccessPoint *ap, gboolean need_sec, gboolean encrypted) -+{ -+ GString *icon_name = NULL; -+ gchar *tmp = NULL; -+ guint32 strength; -+ -+ g_return_val_if_fail (NM_IS_ACCESS_POINT (ap), NULL); -+ -+ strength = nm_access_point_get_strength (ap); -+ strength = CLAMP (strength, 0, 100); -+ -+ icon_name = g_string_new (""); -+ if (strength > 80) -+ icon_name = g_string_assign (icon_name, "nm-signal-100"); -+ else if (strength > 55) -+ icon_name = g_string_assign (icon_name, "nm-signal-75"); -+ else if (strength > 30) -+ icon_name = g_string_assign (icon_name, "nm-signal-50"); -+ else if (strength > 5) -+ icon_name = g_string_assign (icon_name, "nm-signal-25"); -+ else -+ icon_name = g_string_assign (icon_name, "nm-signal-00"); -+ -+ if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) { -+ icon_name = g_string_assign (icon_name, "nm-adhoc"); -+ goto out; -+ } -+ -+ if (need_sec && encrypted) -+ icon_name = g_string_append (icon_name, "-secure"); -+ -+out: -+ tmp = icon_name->str; -+ g_string_free (icon_name, FALSE); -+ -+ return tmp; -+} -+ -+static void -+set_menu_item_accessible_desc (NMAccessPoint *ap, -+ GtkMenuItem *item, -+ gboolean is_encrypted) -+{ -+ guint32 strength; -+ gchar *ssid = NULL; -+ GString *icon_desc = NULL; -+ -+ g_return_if_fail (NM_IS_ACCESS_POINT (ap)); -+ -+ strength = nm_access_point_get_strength (ap); -+ strength = CLAMP (strength, 0, 100); -+ -+ ssid = g_strdup (gtk_menu_item_get_label (item)); -+ -+ if (ssid == NULL) -+ return; -+ -+ icon_desc = g_string_new (""); -+ g_string_append_printf (icon_desc, "%s: ", ssid); -+ -+ if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) { -+ icon_desc = g_string_append (icon_desc, _("ad-hoc")); -+ goto out; -+ } -+ -+ g_string_append_printf (icon_desc, "%d%%", strength); -+ -+ if (is_encrypted) { -+ icon_desc = g_string_append (icon_desc, ", "); -+ icon_desc = g_string_append (icon_desc, _("secure.")); -+ } -+ -+out: -+ atk_object_set_name (gtk_widget_get_accessible (GTK_WIDGET (item)), icon_desc->str); -+ g_free (ssid); -+ g_string_free (icon_desc, FALSE); -+} -+#endif -+ - static void - clamp_ap_to_bssid (NMAccessPoint *ap, NMSettingWireless *s_wifi) - { -@@ -517,7 +647,11 @@ wireless_menu_item_activate (GtkMenuItem - - struct dup_data { - NMDevice *device; -+#ifndef ENABLE_INDICATOR - NMNetworkMenuItem *found; -+#else -+ GtkWidget *found; -+#endif - char *hash; - }; - -@@ -533,19 +667,34 @@ find_duplicate (gpointer d, gpointer use - g_return_if_fail (data); - g_return_if_fail (data->hash); - -+#ifndef ENABLE_INDICATOR - if (data->found || !NM_IS_NETWORK_MENU_ITEM (widget)) - return; -+#else -+ if (data->found || !GTK_IS_IMAGE_MENU_ITEM (widget)) -+ return; -+#endif - - device = g_object_get_data (G_OBJECT (widget), "device"); - if (NM_DEVICE (device) != data->device) - return; - -+#ifndef ENABLE_INDICATOR - hash = nm_network_menu_item_get_hash (NM_NETWORK_MENU_ITEM (widget)); - if (hash && (strcmp (hash, data->hash) == 0)) - data->found = NM_NETWORK_MENU_ITEM (widget); -+#else -+ hash = g_object_get_data (G_OBJECT (widget), "hash"); -+ if (hash && (strcmp (hash, data->hash) == 0)) -+ data->found = widget; -+#endif /* ENABLE_INDICATOR */ - } - -+#ifndef ENABLE_INDICATOR - static NMNetworkMenuItem * -+#else -+static GtkImageMenuItem * -+#endif - create_new_ap_item (NMDeviceWifi *device, - NMAccessPoint *ap, - struct dup_data *dup_data, -@@ -554,7 +703,16 @@ create_new_ap_item (NMDeviceWifi *device - { - WirelessMenuItemInfo *info; - GSList *iter; -+#ifndef ENABLE_INDICATOR - NMNetworkMenuItem *item = NULL; -+#else -+ GtkWidget *item = NULL; -+ char *text, *best_icon_name; -+ const char *path; -+ GtkWidget *icon_image; -+ gboolean encrypted, ad_hoc; -+ GSList *dupes; -+#endif /* ENABLE_INDICATOR */ - GSList *dev_connections = NULL; - GSList *ap_connections = NULL; - const GByteArray *ssid; -@@ -565,18 +723,51 @@ create_new_ap_item (NMDeviceWifi *device - g_slist_free (dev_connections); - dev_connections = NULL; - -+ ssid = nm_access_point_get_ssid (ap); -+ dev_caps = nm_device_wifi_get_capabilities (device); -+ -+#ifndef ENABLE_INDICATOR - item = NM_NETWORK_MENU_ITEM (nm_network_menu_item_new (dup_data->hash, - !!g_slist_length (ap_connections))); - gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); - -- ssid = nm_access_point_get_ssid (ap); - nm_network_menu_item_set_ssid (item, (GByteArray *) ssid); - -- dev_caps = nm_device_wifi_get_capabilities (device); - nma_icon_check_and_load ("nm-adhoc", &applet->adhoc_icon, applet); - nm_network_menu_item_set_detail (item, ap, applet->adhoc_icon, dev_caps); - nm_network_menu_item_best_strength (item, nm_access_point_get_strength (ap), applet); - nm_network_menu_item_add_dupe (item, ap); -+#else -+ text = nm_utils_ssid_to_utf8 (ssid); -+ if (!text) { -+ // Avoid any cases where the SSID could possibly end up undefined. -+ text = g_strdup (""); -+ } -+ item = gtk_image_menu_item_new_with_label (text); -+ g_free (text); -+ -+ encrypted = get_ap_is_encrypted (ap); -+ ad_hoc = nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC; -+ -+ best_icon_name = get_best_icon_name_for_ap (ap, TRUE, encrypted); -+ icon_image = gtk_image_new_from_icon_name (best_icon_name, GTK_ICON_SIZE_LARGE_TOOLBAR); -+ g_free (best_icon_name); -+ -+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), icon_image); -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); -+ -+ path = nm_object_get_path (NM_OBJECT (ap)); -+ dupes = g_slist_append (dupes, g_strdup (path)); -+ g_object_set_data_full (G_OBJECT (item), "dupes", (gpointer) dupes, (GDestroyNotify) clear_dupes_list); -+ g_object_set_data (G_OBJECT (item), "encrypted", (gpointer) encrypted); -+ g_object_set_data (G_OBJECT (item), "ad-hoc", (gpointer) ad_hoc); -+ g_object_set_data (G_OBJECT (item), "hash", (gpointer) dup_data->hash); -+ g_object_set_data (G_OBJECT (item), "has_connections", (gpointer) !!g_slist_length (ap_connections)); -+ -+ set_menu_item_accessible_desc (ap, GTK_MENU_ITEM (item), encrypted); -+ -+ ap_menu_item_set_sensitive (item, ap, dev_caps); -+#endif /* ENABLE_INDICATOR */ - - g_object_set_data (G_OBJECT (item), "device", NM_DEVICE (device)); - -@@ -634,7 +825,11 @@ create_new_ap_item (NMDeviceWifi *device - return item; - } - -+#ifndef ENABLE_INDICATOR - static NMNetworkMenuItem * -+#else -+static GtkImageMenuItem * -+#endif /* ENABLE_INDICATOR */ - get_menu_item_for_ap (NMDeviceWifi *device, - NMAccessPoint *ap, - GSList *connections, -@@ -658,14 +853,31 @@ get_menu_item_for_ap (NMDeviceWifi *devi - */ - dup_data.found = NULL; - dup_data.hash = g_object_get_data (G_OBJECT (ap), "hash"); -+#ifndef ENABLE_INDICATOR - g_return_val_if_fail (dup_data.hash != NULL, NULL); -+#else -+ /* heh, not much choice here, otherwise on startup we get tons of errors -+ * because g_return_val_if_fail prints assertion errors. -+ */ -+ if (dup_data.hash == NULL) -+ return NULL; -+#endif - - dup_data.device = NM_DEVICE (device); - g_slist_foreach (menu_list, find_duplicate, &dup_data); - - if (dup_data.found) { -+#ifndef ENABLE_INDICATOR - nm_network_menu_item_best_strength (dup_data.found, nm_access_point_get_strength (ap), applet); - nm_network_menu_item_add_dupe (dup_data.found, ap); -+#else -+ GSList *dupes = NULL; -+ const char *path; -+ -+ dupes = g_object_get_data (G_OBJECT (dup_data.found), "dupes"); -+ path = nm_object_get_path (NM_OBJECT (ap)); -+ dupes = g_slist_prepend (dupes, g_strdup (path)); -+#endif - return NULL; - } - -@@ -675,6 +887,7 @@ get_menu_item_for_ap (NMDeviceWifi *devi - static gint - sort_by_name (gconstpointer tmpa, gconstpointer tmpb) - { -+#ifndef ENABLE_INDICATOR - NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); - NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); - const char *a_ssid, *b_ssid; -@@ -711,6 +924,44 @@ sort_by_name (gconstpointer tmpa, gconst - return -1; - - return 0; -+#else -+ GtkImageMenuItem *a = GTK_IMAGE_MENU_ITEM (tmpa); -+ GtkImageMenuItem *b = GTK_IMAGE_MENU_ITEM (tmpb); -+ const char *a_ssid, *b_ssid; -+ gboolean a_adhoc, b_adhoc; -+ int i; -+ -+ if (a && !b) -+ return 1; -+ else if (!a && b) -+ return -1; -+ else if (a == b) -+ return 0; -+ -+ a_ssid = gtk_menu_item_get_label (GTK_MENU_ITEM (a)); -+ b_ssid = gtk_menu_item_get_label (GTK_MENU_ITEM (b)); -+ -+ if (a_ssid && !b_ssid) -+ return 1; -+ if (b_ssid && !a_ssid) -+ return -1; -+ -+ if (a_ssid && b_ssid) { -+ i = g_ascii_strcasecmp (a_ssid, b_ssid); -+ if (i != 0) -+ return i; -+ } -+ -+ /* If the names are the same, sort infrastructure APs first */ -+ a_adhoc = g_object_get_data (G_OBJECT (a), "ad-hoc"); -+ b_adhoc = g_object_get_data (G_OBJECT (b), "ad-hoc"); -+ if (a_adhoc && !b_adhoc) -+ return 1; -+ else if (!a_adhoc && b_adhoc) -+ return -1; -+ -+ return 0; -+#endif /* ENABLE_INDICATOR */ - } - - /* Sort menu items for the top-level menu: -@@ -722,6 +973,7 @@ sort_by_name (gconstpointer tmpa, gconst - static gint - sort_toplevel (gconstpointer tmpa, gconstpointer tmpb) - { -+#ifndef ENABLE_INDICATOR - NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); - NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); - gboolean a_fave, b_fave; -@@ -756,6 +1008,42 @@ sort_toplevel (gconstpointer tmpa, gcons - * both are unencrypted) just sort by name. - */ - return sort_by_name (a, b); -+#else -+ GtkImageMenuItem *a = GTK_IMAGE_MENU_ITEM (tmpa); -+ GtkImageMenuItem *b = GTK_IMAGE_MENU_ITEM (tmpb); -+ gboolean a_fave, b_fave; -+ -+ if (a && !b) -+ return 1; -+ else if (!a && b) -+ return -1; -+ else if (a == b) -+ return 0; -+ -+ a_fave = g_object_get_data (G_OBJECT (a), "has_connections"); -+ b_fave = g_object_get_data (G_OBJECT (b), "has_connections"); -+ -+ /* Items with a saved connection first */ -+ if (a_fave && !b_fave) -+ return -1; -+ else if (!a_fave && b_fave) -+ return 1; -+ else if (!a_fave && !b_fave) { -+ gboolean a_enc = g_object_get_data (G_OBJECT (a), "encrypted"); -+ gboolean b_enc = g_object_get_data (G_OBJECT (b), "encrypted"); -+ -+ /* If neither item has a saved connection, sort by encryption */ -+ if (a_enc && !b_enc) -+ return -1; -+ else if (!a_enc && b_enc) -+ return 1; -+ } -+ -+ /* For all other cases (both have saved connections, both are encrypted, or -+ * both are unencrypted) just sort by name. -+ */ -+ return sort_by_name (a, b); -+#endif /* ENABLE_INDICATOR */ - } - - static void -@@ -774,7 +1062,11 @@ wireless_add_menu_item (NMDevice *device - gboolean wireless_enabled = TRUE; - gboolean wireless_hw_enabled = TRUE; - GSList *menu_items = NULL; /* All menu items we'll be adding */ -+#ifndef ENABLE_INDICATOR - NMNetworkMenuItem *item, *active_item = NULL; -+#else -+ GtkImageMenuItem *item, *active_item = NULL; -+#endif /* ENABLE_INDICATOR */ - GtkWidget *widget; - - wdev = NM_DEVICE_WIFI (device); -@@ -812,7 +1104,9 @@ wireless_add_menu_item (NMDevice *device - if (active_ap) { - active_item = item = get_menu_item_for_ap (wdev, active_ap, connections, NULL, applet); - if (item) { -+#ifndef ENABLE_INDICATOR - nm_network_menu_item_set_active (item, TRUE); -+#endif - menu_items = g_slist_append (menu_items, item); - - gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); -@@ -1109,6 +1403,9 @@ access_point_added_cb (NMDeviceWifi *dev - applet); - - queue_avail_access_point_notification (NM_DEVICE (device)); -+#ifdef ENABLE_INDICATOR -+ applet_schedule_update_menu (applet); -+#endif /* ENABLE_INDICATOR */ - } - - static void -@@ -1126,6 +1423,9 @@ access_point_removed_cb (NMDeviceWifi *d - if (old == ap) { - g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); - applet_schedule_update_icon (applet); -+#ifdef ENABLE_INDICATOR -+ applet_schedule_update_menu (applet); -+#endif /* ENABLE_INDICATOR */ - } - } - -@@ -1272,16 +1572,17 @@ wireless_device_state_changed (NMDevice - g_free (esc_ssid); - } - --static GdkPixbuf * -+static void - wireless_get_icon (NMDevice *device, - NMDeviceState state, - NMConnection *connection, -+ GdkPixbuf **out_pixbuf, -+ char **out_indicator_icon, - char **tip, - NMApplet *applet) - { - NMSettingConnection *s_con; - NMAccessPoint *ap; -- GdkPixbuf *pixbuf = NULL; - const char *id; - char *ssid = NULL; - -@@ -1314,22 +1615,25 @@ wireless_get_icon (NMDevice *device, - strength = CLAMP (strength, 0, 100); - - if (strength > 80) -- pixbuf = nma_icon_check_and_load ("nm-signal-100", &applet->wireless_100_icon, applet); -+ *out_pixbuf = nma_icon_check_and_load ("nm-signal-100", &applet->wireless_100_icon, applet); - else if (strength > 55) -- pixbuf = nma_icon_check_and_load ("nm-signal-75", &applet->wireless_75_icon, applet); -+ *out_pixbuf = nma_icon_check_and_load ("nm-signal-75", &applet->wireless_75_icon, applet); - else if (strength > 30) -- pixbuf = nma_icon_check_and_load ("nm-signal-50", &applet->wireless_50_icon, applet); -+ *out_pixbuf = nma_icon_check_and_load ("nm-signal-50", &applet->wireless_50_icon, applet); - else if (strength > 5) -- pixbuf = nma_icon_check_and_load ("nm-signal-25", &applet->wireless_25_icon, applet); -+ *out_pixbuf = nma_icon_check_and_load ("nm-signal-25", &applet->wireless_25_icon, applet); - else -- pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wireless_00_icon, applet); -+ *out_pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wireless_00_icon, applet); -+ -+ *out_indicator_icon = get_best_icon_name_for_ap (ap, FALSE, FALSE); - - ssid = get_ssid_utf8 (ap); - *tip = g_strdup_printf (_("Wireless network connection '%s' active: %s (%d%%)"), - id, ssid, strength); - g_free (ssid); - } else { -- pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wireless_00_icon, applet); -+ *out_indicator_icon = g_strdup_printf ("nm-signal-00"); -+ *out_pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wireless_00_icon, applet); - *tip = g_strdup_printf (_("Wireless network connection '%s' active"), id); - } - break; -@@ -1337,7 +1641,8 @@ wireless_get_icon (NMDevice *device, - break; - } - -- return pixbuf ? g_object_ref (pixbuf) : NULL; -+ if (out_pixbuf && *out_pixbuf) -+ g_object_ref (*out_pixbuf); - } - - static gboolean -Index: b/src/applet-device-wired.c -=================================================================== ---- a/src/applet-device-wired.c -+++ b/src/applet-device-wired.c -@@ -221,7 +221,9 @@ wired_add_menu_item (NMDevice *device, - if (nm_device_get_capabilities (device) & NM_DEVICE_CAP_CARRIER_DETECT) - carrier = nm_device_ethernet_get_carrier (NM_DEVICE_ETHERNET (device)); - -+#ifndef ENABLE_INDICATOR - gtk_widget_set_sensitive (item, FALSE); -+#endif - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); - -@@ -274,15 +276,16 @@ wired_device_state_changed (NMDevice *de - } - } - --static GdkPixbuf * -+static void - wired_get_icon (NMDevice *device, - NMDeviceState state, - NMConnection *connection, -+ GdkPixbuf **out_pixbuf, -+ char **out_indicator_icon, - char **tip, - NMApplet *applet) - { - NMSettingConnection *s_con; -- GdkPixbuf *pixbuf = NULL; - const char *id; - - id = nm_device_get_iface (NM_DEVICE (device)); -@@ -305,14 +308,16 @@ wired_get_icon (NMDevice *device, - *tip = g_strdup_printf (_("Requesting a wired network address for '%s'..."), id); - break; - case NM_DEVICE_STATE_ACTIVATED: -- pixbuf = nma_icon_check_and_load ("nm-device-wired", &applet->wired_icon, applet); -+ *out_indicator_icon = g_strdup_printf ("nm-device-wired"); -+ *out_pixbuf = nma_icon_check_and_load (*out_indicator_icon, &applet->wired_icon, applet); - *tip = g_strdup_printf (_("Wired network connection '%s' active"), id); - break; - default: - break; - } - -- return pixbuf ? g_object_ref (pixbuf) : NULL; -+ if (out_pixbuf && *out_pixbuf) -+ g_object_ref (*out_pixbuf); - } - - /* PPPoE */ -Index: b/src/applet.c -=================================================================== ---- a/src/applet.c -+++ b/src/applet.c -@@ -499,6 +499,8 @@ add_and_activate_cb (NMClient *client, - GError *error, - gpointer user_data) - { -+ NMApplet *applet = NM_APPLET (user_data); -+ - if (error) { - const char *text = _("Failed to add/activate connection"); - char *err_text = g_strdup_printf ("(%d) %s", error->code, -@@ -509,7 +511,8 @@ add_and_activate_cb (NMClient *client, - g_free (err_text); - } - -- applet_schedule_update_icon (NM_APPLET (user_data)); -+ applet_schedule_update_icon (applet); -+ applet_schedule_update_menu (applet); - } - - static void -@@ -543,6 +546,8 @@ applet_menu_item_activate_helper_new_con - static void - disconnect_cb (NMDevice *device, GError *error, gpointer user_data) - { -+ NMApplet *applet = NM_APPLET (user_data); -+ - if (error) { - const char *text = _("Device disconnect failed"); - char *err_text = g_strdup_printf ("(%d) %s", error->code, -@@ -552,6 +557,9 @@ disconnect_cb (NMDevice *device, GError - utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); - g_free (err_text); - } -+ -+ applet_schedule_update_icon (applet); -+ applet_schedule_update_menu (applet); - } - - void -@@ -560,7 +568,7 @@ applet_menu_item_disconnect_helper (NMDe - { - g_return_if_fail (NM_IS_DEVICE (device)); - -- nm_device_disconnect (device, disconnect_cb, NULL); -+ nm_device_disconnect (device, disconnect_cb, applet); - } - - static void -@@ -633,13 +641,15 @@ applet_menu_item_add_complex_separator_h - const gchar* label, - int pos) - { -- GtkWidget *menu_item = gtk_image_menu_item_new (); -+ GtkWidget *menu_item = NULL; -+#ifndef ENABLE_INDICATOR - #if GTK_CHECK_VERSION(3,1,6) - GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); - #else - GtkWidget *box = gtk_hbox_new (FALSE, 0); - #endif - GtkWidget *xlabel = NULL; -+ menu_item = gtk_image_menu_item_new (); - - if (label) { - xlabel = gtk_label_new (NULL); -@@ -663,6 +673,9 @@ applet_menu_item_add_complex_separator_h - "child", box, - "sensitive", FALSE, - NULL); -+#else -+ menu_item = gtk_separator_menu_item_new (); -+#endif - if (pos < 0) - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); - else -@@ -677,10 +690,13 @@ applet_new_menu_item_helper (NMConnectio - { - GtkWidget *item; - NMSettingConnection *s_con; -+#ifndef ENABLE_INDICATOR - char *markup; - GtkWidget *label; -+#endif /* ENABLE_INDICATOR */ - - s_con = nm_connection_get_setting_connection (connection); -+#ifndef ENABLE_INDICATOR - item = gtk_image_menu_item_new_with_label (""); - if (add_active && (active == connection)) { - /* Pure evil */ -@@ -693,9 +709,13 @@ applet_new_menu_item_helper (NMConnectio - gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); - - gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); -+#else -+ item = gtk_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); -+#endif /* ENABLE_INDICATOR */ - return item; - } - -+#ifndef ENABLE_INDICATOR - #define TITLE_TEXT_R ((double) 0x5e / 255.0 ) - #define TITLE_TEXT_G ((double) 0x5e / 255.0 ) - #define TITLE_TEXT_B ((double) 0x5e / 255.0 ) -@@ -800,6 +820,8 @@ menu_title_item_expose (GtkWidget *widge - } - #endif - -+#endif /* ENABLE_INDICATOR */ -+ - GtkWidget * - applet_menu_item_create_device_item_helper (NMDevice *device, - NMApplet *applet, -@@ -809,11 +831,13 @@ applet_menu_item_create_device_item_help - - item = gtk_menu_item_new_with_mnemonic (text); - gtk_widget_set_sensitive (item, FALSE); -+#ifndef ENABLE_INDICATOR - #if GTK_CHECK_VERSION(2,90,7) - g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL); - #else - g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); - #endif -+#endif /* ENABLE_INDICATOR */ - return item; - } - -@@ -860,7 +884,12 @@ applet_do_notify (NMApplet *applet, - g_return_if_fail (summary != NULL); - g_return_if_fail (message != NULL); - -+#ifndef ENABLE_INDICATOR - if (!gtk_status_icon_is_embedded (applet->status_icon)) -+#else -+ if (!gtk_status_icon_is_embedded (applet->status_icon) && -+ app_indicator_get_status (applet->app_indicator) == APP_INDICATOR_STATUS_PASSIVE) -+#endif /* ENABLE_INDICATOR */ - return; - - escaped = utils_escape_notify_message (message); -@@ -1144,6 +1173,7 @@ vpn_connection_state_changed (NMVPNConne - clear_animation_timeout (applet); - - applet_schedule_update_icon (applet); -+ applet_schedule_update_menu (applet); - } - - static const char * -@@ -1199,10 +1229,13 @@ activate_vpn_cb (NMClient *client, - } - - applet_schedule_update_icon (info->applet); -+ applet_schedule_update_menu (info->applet); - g_free (info->vpn_name); - g_free (info); - } - -+static void nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data); -+ - static void - nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) - { -@@ -1225,9 +1258,14 @@ nma_menu_vpn_item_clicked (GtkMenuItem * - return; - } - -- if (applet_get_active_for_connection (applet, connection)) -+ if (applet_get_active_for_connection (applet, connection)) { -+#ifndef ENABLE_INDICATOR - /* Connection already active; do nothing */ -+#else -+ nma_menu_disconnect_vpn_item_activate (item, applet); -+#endif /* ENABLE_INDICATOR */ - return; -+ } - - s_con = nm_connection_get_setting_connection (connection); - info = g_malloc0 (sizeof (VPNActivateInfo)); -@@ -1620,6 +1658,8 @@ nma_menu_add_devices (GtkWidget *menu, N - dclass = get_device_class (device, applet); - if (dclass) - dclass->add_menu_item (device, n_devices, active, menu, applet); -+ -+ nma_menu_add_separator_item (menu); - } - - out: -@@ -1677,8 +1717,6 @@ nma_menu_add_vpn_submenu (GtkWidget *men - GSList *list, *iter; - int num_vpn_active = 0; - -- nma_menu_add_separator_item (menu); -- - vpn_menu = GTK_MENU (gtk_menu_new ()); - - item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_VPN Connections"))); -@@ -1697,13 +1735,20 @@ nma_menu_add_vpn_submenu (GtkWidget *men - NMConnection *connection = NM_CONNECTION (iter->data); - NMActiveConnection *active; - const char *name; -+#ifndef ENABLE_INDICATOR - GtkWidget *image; -+#endif /* ENABLE_INDICATOR */ - NMState state; - - name = get_connection_id (connection); - -+#ifndef ENABLE_INDICATOR - item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); - gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); -+#else -+ item = GTK_MENU_ITEM (gtk_check_menu_item_new_with_label (name)); -+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(item), FALSE); -+#endif /* ENABLE_INDICATOR */ - - /* If no VPN connections are active, draw all menu items enabled. If - * >= 1 VPN connections are active, only the active VPN menu item is -@@ -1722,8 +1767,12 @@ nma_menu_add_vpn_submenu (GtkWidget *men - gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); - - if (active) { -+#ifndef ENABLE_INDICATOR - image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); -+#else -+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(item), TRUE); -+#endif /* ENABLE_INDICATOR */ - } - - g_object_set_data_full (G_OBJECT (item), "connection", -@@ -1797,6 +1846,7 @@ nma_set_networking_enabled_cb (GtkWidget - } - - -+#ifndef ENABLE_INDICATOR - static void - nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) - { -@@ -1823,6 +1873,7 @@ nma_set_notifications_enabled_cb (GtkWid - !state, - NULL); - } -+#endif /* ENABLE_INDICATOR */ - - /* - * nma_menu_show_cb -@@ -1911,7 +1962,9 @@ nma_context_menu_update (NMApplet *apple - gboolean wireless_hw_enabled; - gboolean wwan_hw_enabled; - gboolean wimax_hw_enabled; -+#ifndef ENABLE_INDICATOR - gboolean notifications_enabled = TRUE; -+#endif /* ENABLE_INDICATOR */ - gboolean sensitive = FALSE; - - state = nm_client_get_state (applet->nm_client); -@@ -1971,6 +2024,7 @@ nma_context_menu_update (NMApplet *apple - gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), - wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); - -+#ifndef ENABLE_INDICATOR - /* Enabled notifications */ - g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), - applet->notifications_enabled_toggled_id); -@@ -1982,6 +2036,7 @@ nma_context_menu_update (NMApplet *apple - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); - g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), - applet->notifications_enabled_toggled_id); -+#endif /* ENABLE_INDICATOR */ - - /* Don't show wifi-specific stuff if wireless is off */ - if (state != NM_STATE_ASLEEP) { -@@ -2054,16 +2109,20 @@ applet_connection_info_cb (NMApplet *app - * Generate the contextual popup menu. - * - */ --static GtkWidget *nma_context_menu_create (NMApplet *applet) -+static GtkWidget *nma_context_menu_create (NMApplet *applet, GtkMenuShell *menu) - { -+#ifndef ENABLE_INDICATOR - GtkMenuShell *menu; - GtkWidget *menu_item; -+#endif - GtkWidget *image; - guint id; - - g_return_val_if_fail (applet != NULL, NULL); - -+#ifndef ENABLE_INDICATOR - menu = GTK_MENU_SHELL (gtk_menu_new ()); -+#endif - - /* 'Enable Networking' item */ - applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); -@@ -2103,6 +2162,7 @@ static GtkWidget *nma_context_menu_creat - - nma_menu_add_separator_item (GTK_WIDGET (menu)); - -+#ifndef ENABLE_INDICATOR - /* Toggle notifications item */ - applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); - id = g_signal_connect (applet->notifications_enabled_item, -@@ -2113,6 +2173,7 @@ static GtkWidget *nma_context_menu_creat - gtk_menu_shell_append (menu, applet->notifications_enabled_item); - - nma_menu_add_separator_item (GTK_WIDGET (menu)); -+#endif /* ENABLE_INDICATOR */ - - /* 'Connection Information' item */ - applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); -@@ -2134,6 +2195,7 @@ static GtkWidget *nma_context_menu_creat - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); - gtk_menu_shell_append (menu, applet->connections_menu_item); - -+#ifndef ENABLE_INDICATOR - /* Separator */ - nma_menu_add_separator_item (GTK_WIDGET (menu)); - -@@ -2153,25 +2215,112 @@ static GtkWidget *nma_context_menu_creat - image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); - gtk_menu_shell_append (menu, menu_item); -+#endif /* ENABLE_INDICATOR */ - - gtk_widget_show_all (GTK_WIDGET (menu)); - - return GTK_WIDGET (menu); - } - -+#ifdef ENABLE_INDICATOR -+static void -+indicator_update_menu (NMApplet *applet) -+{ -+ if (!applet->in_fallback) { -+ if (applet->menu) -+ g_object_unref (applet->menu); -+ -+ applet->menu = gtk_menu_new (); -+ g_object_ref_sink (G_OBJECT (applet->menu)); -+ nma_menu_show_cb (applet->menu, applet); -+ nma_menu_add_separator_item (applet->menu); -+ applet->menu = nma_context_menu_create (applet, GTK_MENU_SHELL(applet->menu)); -+ -+ app_indicator_set_menu (applet->app_indicator, GTK_MENU (applet->menu)); -+ -+ nma_context_menu_update (applet); -+ } -+ -+ applet->update_menu_id = 0; -+} -+ -+static gboolean -+applet_update_indicator_menu (gpointer user_data) -+{ -+ NMApplet *applet = NM_APPLET (user_data); -+ -+ indicator_update_menu (applet); -+ -+ return FALSE; -+} -+ -+void -+applet_schedule_update_menu (NMApplet *applet) -+{ -+ if (!applet->update_menu_id) -+ applet->update_menu_id = g_idle_add (applet_update_indicator_menu, applet); -+} -+ -+static void -+new_connection_cb (NMRemoteSettings *settings, NMRemoteConnection *connection, gpointer user_data) -+{ -+ NMApplet *applet = NM_APPLET (user_data); -+ -+ //if (nm_connection_is_type (NM_CONNECTION (connection), NM_SETTING_VPN_SETTING_NAME)) -+ applet_schedule_update_menu (applet); -+} -+#endif /* ENABLE_INDICATOR */ -+ - - /*****************************************************************************/ - - static void --foo_set_icon (NMApplet *applet, GdkPixbuf *pixbuf, guint32 layer) -+foo_set_icon (NMApplet *applet, guint32 layer, GdkPixbuf *pixbuf, char *icon_name, char *new_tip) - { -+ GString *tip = NULL; - int i; - -- if (layer > ICON_LAYER_MAX) { -- g_warning ("Tried to icon to invalid layer %d", layer); -- return; -+ switch (layer) { -+ case ICON_LAYER_LINK: -+ if (new_tip == NULL) -+ new_tip = g_strdup (_("No network connection")); -+ tip = g_string_new (new_tip); -+ break; -+ case ICON_LAYER_VPN: -+ tip = g_string_new (applet->tip); -+ -+ if (new_tip) -+ g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", new_tip); -+ break; -+ default: -+ tip = g_string_new (""); -+ if (layer > ICON_LAYER_MAX) { -+ g_string_free (tip, TRUE); -+ g_warning ("Tried to icon to invalid layer %d", layer); -+ return; -+ } -+ break; - } - -+ if (tip->len) { -+ g_free (applet->tip); -+ applet->tip = tip->str; -+ } -+ -+ g_free (new_tip); -+ g_string_free (tip, FALSE); -+ -+#ifdef ENABLE_INDICATOR -+ if (icon_name == NULL && layer == ICON_LAYER_LINK) { -+ icon_name = g_strdup ("nm-no-connection"); -+ } -+ -+ if (icon_name != NULL && -+ g_strcmp0 (app_indicator_get_icon (applet->app_indicator), icon_name) != 0) { -+ app_indicator_set_icon_full (applet->app_indicator, icon_name, applet->tip); -+ } -+#endif /* ENABLE_INDICATOR */ -+ - /* Ignore setting of the same icon as is already displayed */ - if (applet->icon_layers[layer] == pixbuf) - return; -@@ -2205,8 +2354,13 @@ foo_set_icon (NMApplet *applet, GdkPixbu - - gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); - g_object_unref (pixbuf); --} -+#if GTK_CHECK_VERSION(2, 15, 0) -+ gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); -+#else -+ gtk_status_icon_set_tooltip (applet->status_icon, applet->tip); -+#endif - -+} - - NMRemoteConnection * - applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) -@@ -2393,6 +2547,7 @@ foo_device_state_changed_cb (NMDevice *d - applet_common_device_state_changed (device, new_state, old_state, reason, applet); - - applet_schedule_update_icon (applet); -+ applet_schedule_update_menu (applet); - } - - static void -@@ -2448,8 +2603,20 @@ foo_client_state_changed_cb (NMClient *c - } - - applet_schedule_update_icon (applet); -+ applet_schedule_update_menu (applet); - } - -+#ifdef ENABLE_INDICATOR -+static void -+foo_device_removed_cb (NMClient *client, NMDevice *device, gpointer user_data) -+{ -+ NMApplet *applet = NM_APPLET (user_data); -+ -+ applet_schedule_update_icon (applet); -+ applet_schedule_update_menu (applet); -+} -+#endif -+ - static void - foo_manager_running_cb (NMClient *client, - GParamSpec *pspec, -@@ -2465,6 +2632,7 @@ foo_manager_running_cb (NMClient *client - } - - applet_schedule_update_icon (applet); -+ applet_schedule_update_menu (applet); - } - - #define VPN_STATE_ID_TAG "vpn-state-id" -@@ -2494,6 +2662,7 @@ foo_active_connections_changed_cb (NMCli - } - - applet_schedule_update_icon (applet); -+ applet_schedule_update_menu (applet); - } - - static void -@@ -2526,6 +2695,9 @@ foo_set_initial_state (gpointer data) - return FALSE; - } - -+static gboolean setup_widgets (NMApplet *applet); -+static void nma_icons_init (NMApplet *applet); -+ - static void - foo_client_setup (NMApplet *applet) - { -@@ -2542,6 +2714,11 @@ foo_client_setup (NMApplet *applet) - g_signal_connect (applet->nm_client, "device-added", - G_CALLBACK (foo_device_added_cb), - applet); -+#ifdef ENABLE_INDICATOR -+ g_signal_connect (applet->nm_client, "device-removed", -+ G_CALLBACK (foo_device_removed_cb), -+ applet); -+#endif /* ENABLE_INDICATOR */ - g_signal_connect (applet->nm_client, "notify::manager-running", - G_CALLBACK (foo_manager_running_cb), - applet); -@@ -2561,10 +2738,12 @@ foo_client_setup (NMApplet *applet) - applet_schedule_update_icon (applet); - } - --static GdkPixbuf * --applet_common_get_device_icon (NMDeviceState state, NMApplet *applet) -+static void -+applet_common_get_device_icon (NMDeviceState state, -+ GdkPixbuf **out_pixbuf, -+ char **out_indicator_icon, -+ NMApplet *applet) - { -- GdkPixbuf *pixbuf = NULL; - int stage = -1; - - switch (state) { -@@ -2583,25 +2762,32 @@ applet_common_get_device_icon (NMDeviceS - } - - if (stage >= 0) { -- int i, j; -- -- for (i = 0; i < NUM_CONNECTING_STAGES; i++) { -- for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { -- char *name; -- -- name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); -- nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); -- g_free (name); -+ /* Don't overwrite pixbufs or names given by specific device classes */ -+ if (out_pixbuf && !*out_pixbuf) { -+ int i, j; -+ for (i = 0; i < NUM_CONNECTING_STAGES; i++) { -+ for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { -+ char *name; -+ -+ name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); -+ nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); -+ g_free (name); -+ } - } -+ *out_pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; -+ if (out_pixbuf && *out_pixbuf) -+ g_object_ref (*out_pixbuf); -+ } -+ if (out_indicator_icon && !*out_indicator_icon) { -+ *out_indicator_icon = g_strdup_printf ("nm-stage%02d-connecting%02d", -+ stage + 1, -+ applet->animation_step + 1); - } - -- pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; - applet->animation_step++; - if (applet->animation_step >= NUM_CONNECTING_FRAMES) - applet->animation_step = 0; - } -- -- return pixbuf; - } - - static char * -@@ -2640,12 +2826,14 @@ get_tip_for_device_state (NMDevice *devi - return tip; - } - --static GdkPixbuf * --applet_get_device_icon_for_state (NMApplet *applet, char **tip) -+static void -+applet_get_device_icon_for_state (NMApplet *applet, -+ GdkPixbuf **out_pixbuf, -+ char **out_indicator_icon, -+ char **out_tip) - { - NMActiveConnection *active; - NMDevice *device = NULL; -- GdkPixbuf *pixbuf = NULL; - NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; - NMADeviceClass *dclass; - -@@ -2670,19 +2858,13 @@ applet_get_device_icon_for_state (NMAppl - - connection = applet_find_active_connection_for_device (device, applet, NULL); - /* device class returns a referenced pixbuf */ -- pixbuf = dclass->get_icon (device, state, connection, tip, applet); -- if (!*tip) -- *tip = get_tip_for_device_state (device, state, connection); -+ dclass->get_icon (device, state, connection, out_pixbuf, out_indicator_icon, out_tip, applet); -+ if (out_tip && !*out_tip) -+ *out_tip = get_tip_for_device_state (device, state, connection); - } - - out: -- if (!pixbuf) { -- pixbuf = applet_common_get_device_icon (state, applet); -- /* reference the pixbuf to match the device class' get_icon() function behavior */ -- if (pixbuf) -- g_object_ref (pixbuf); -- } -- return pixbuf; -+ applet_common_get_device_icon (state, out_pixbuf, out_indicator_icon, applet); - } - - static char * -@@ -2738,7 +2920,7 @@ applet_update_icon (gpointer user_data) - NMApplet *applet = NM_APPLET (user_data); - GdkPixbuf *pixbuf = NULL; - NMState state; -- char *dev_tip = NULL, *vpn_tip = NULL; -+ char *dev_tip = NULL, *vpn_tip = NULL, *icon_name = NULL; - NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; - gboolean nm_running; - NMActiveConnection *active_vpn = NULL; -@@ -2753,36 +2935,53 @@ applet_update_icon (gpointer user_data) - if (!nm_running) - state = NM_STATE_UNKNOWN; - -+#ifdef ENABLE_INDICATOR -+ if (nm_running) -+ app_indicator_set_status (applet->app_indicator, APP_INDICATOR_STATUS_ACTIVE); -+ else -+ app_indicator_set_status (applet->app_indicator, APP_INDICATOR_STATUS_PASSIVE); -+#endif -+ - switch (state) { - case NM_STATE_UNKNOWN: - case NM_STATE_ASLEEP: -- pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); -+ icon_name = g_strdup ("nm-no-connection"); -+ pixbuf = nma_icon_check_and_load (icon_name, &applet->no_connection_icon, applet); - g_object_ref (pixbuf); - dev_tip = g_strdup (_("Networking disabled")); - break; - case NM_STATE_DISCONNECTED: -- pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); -+ icon_name = g_strdup ("nm-no-connection"); -+ pixbuf = nma_icon_check_and_load (icon_name, &applet->no_connection_icon, applet); - g_object_ref (pixbuf); - dev_tip = g_strdup (_("No network connection")); - break; - default: -- pixbuf = applet_get_device_icon_for_state (applet, &dev_tip); -+ applet_get_device_icon_for_state (applet, &pixbuf, &icon_name, &dev_tip); - break; - } - -- foo_set_icon (applet, pixbuf, ICON_LAYER_LINK); -+ foo_set_icon (applet, ICON_LAYER_LINK, pixbuf, icon_name, dev_tip); - if (pixbuf) - g_object_unref (pixbuf); -+ if (icon_name) -+ g_free (icon_name); - - /* VPN state next */ - pixbuf = NULL; -+ icon_name = NULL; - active_vpn = applet_get_first_active_vpn_connection (applet, &vpn_state); - if (active_vpn) { - int i; - - switch (vpn_state) { - case NM_VPN_CONNECTION_STATE_ACTIVATED: -- pixbuf = nma_icon_check_and_load ("nm-vpn-active-lock", &applet->vpn_lock_icon, applet); -+#ifndef ENABLE_INDICATOR -+ icon_name = g_strdup_printf ("nm-vpn-active-lock"); -+#else -+ icon_name = g_strdup_printf ("%s-secure", app_indicator_get_icon (applet->app_indicator)); -+#endif /* ENABLE_INDICATOR */ -+ pixbuf = nma_icon_check_and_load (icon_name, &applet->vpn_lock_icon, applet); - break; - case NM_VPN_CONNECTION_STATE_PREPARE: - case NM_VPN_CONNECTION_STATE_NEED_AUTH: -@@ -2797,6 +2996,9 @@ applet_update_icon (gpointer user_data) - } - - pixbuf = applet->vpn_connecting_icons[applet->animation_step]; -+#ifdef ENABLE_INDICATOR -+ icon_name = g_strdup_printf ("nm-vpn-connecting%02d", applet->animation_step+1); -+#endif - applet->animation_step++; - if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) - applet->animation_step = 0; -@@ -2807,28 +3009,9 @@ applet_update_icon (gpointer user_data) - - vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); - } -- foo_set_icon (applet, pixbuf, ICON_LAYER_VPN); -- -- g_free (applet->tip); -- applet->tip = NULL; -- -- if (dev_tip || vpn_tip) { -- GString *tip; -- -- tip = g_string_new (dev_tip); -- -- if (vpn_tip) -- g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", vpn_tip); -- -- if (tip->len) -- applet->tip = tip->str; -- -- g_free (vpn_tip); -- g_free (dev_tip); -- g_string_free (tip, FALSE); -- } -- -- gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); -+ foo_set_icon (applet, ICON_LAYER_VPN, pixbuf, icon_name, vpn_tip); -+ if (icon_name) -+ g_free (icon_name); - - return FALSE; - } -@@ -3311,18 +3494,95 @@ status_icon_popup_menu_cb (GtkStatusIcon - * of the notification. - */ - -+ /* Kill the old menu */ -+ if (applet->context_menu) -+ g_object_unref (applet->context_menu); -+ -+ /* And make a fresh new one */ -+ applet->context_menu = gtk_menu_new (); -+ g_object_ref_sink (G_OBJECT (applet->context_menu)); -+ applet->context_menu = nma_context_menu_create (applet, GTK_MENU_SHELL (applet->context_menu)); - nma_context_menu_update (applet); - gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, - gtk_status_icon_position_menu, icon, - button, activate_time); - } - -+#ifdef ENABLE_INDICATOR -+static GtkStatusIcon * -+indicator_fallback (AppIndicator *indicator) -+{ -+ NMApplet *applet; -+ -+ applet = NM_APPLET(g_object_get_data (G_OBJECT (indicator), "applet")); -+ g_return_val_if_fail (NM_IS_APPLET (applet), NULL); -+ g_return_val_if_fail (applet->status_icon, NULL); -+ -+ g_message ("using fallback from indicator to GtkStatusIcon"); -+ gtk_status_icon_set_visible (applet->status_icon, TRUE); -+ -+ applet->in_fallback = TRUE; -+ -+ return applet->status_icon; -+} -+ -+static void -+indicator_unfallback (AppIndicator *indicator, GtkStatusIcon *status_icon) -+{ -+ NMApplet *applet; -+ -+ applet = NM_APPLET(g_object_get_data (G_OBJECT (indicator), "applet")); -+ g_return_if_fail (NM_IS_APPLET (applet)); -+ g_return_if_fail (applet->status_icon); -+ -+ g_message ("moving back from GtkStatusIcon to indicator"); -+ gtk_status_icon_set_visible (applet->status_icon, FALSE); -+ -+ applet->in_fallback = FALSE; -+} -+ - static gboolean --setup_widgets (NMApplet *applet) -+setup_indicator_menu (NMApplet *applet) -+{ -+ g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); -+ -+ applet->in_fallback = FALSE; -+ -+ applet->app_indicator = app_indicator_new -+ ("nm-applet", "nm-no-connection", -+ APP_INDICATOR_CATEGORY_SYSTEM_SERVICES); -+ -+ app_indicator_set_title(applet->app_indicator, _("Network")); -+ -+ g_object_set_data (G_OBJECT (applet->app_indicator), "applet", (gpointer) applet); -+ -+ APP_INDICATOR_GET_CLASS(applet->app_indicator)->fallback = indicator_fallback; -+ APP_INDICATOR_GET_CLASS(applet->app_indicator)->unfallback = indicator_unfallback; -+ -+ applet->menu = gtk_menu_new (); -+ -+ g_object_ref_sink (G_OBJECT (applet->menu)); -+ -+ applet->menu = nma_context_menu_create (applet, GTK_MENU_SHELL(applet->menu)); -+ nma_context_menu_update(applet); -+ -+ app_indicator_set_menu(applet->app_indicator, GTK_MENU(applet->menu)); -+ -+ return TRUE; -+} -+#endif /* ENABLE_INDICATOR */ -+ -+static gboolean -+setup_statusicon_menu (NMApplet *applet) - { - g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); - - applet->status_icon = gtk_status_icon_new (); -+ -+#ifdef ENABLE_INDICATOR -+ gtk_status_icon_set_visible (applet->status_icon, FALSE); -+#endif -+ - if (!applet->status_icon) - return FALSE; - if (shell_debug) -@@ -3337,11 +3597,34 @@ setup_widgets (NMApplet *applet) - g_signal_connect (applet->status_icon, "popup-menu", - G_CALLBACK (status_icon_popup_menu_cb), applet); - -- applet->context_menu = nma_context_menu_create (applet); -- if (!applet->context_menu) -- return FALSE; -+ applet->context_menu = gtk_menu_new (); -+ applet->context_menu = nma_context_menu_create (applet, GTK_MENU_SHELL (applet->context_menu)); -+ g_object_ref_sink (G_OBJECT (applet->context_menu)); -+ if (!applet->context_menu) -+ return FALSE; - -- return TRUE; -+ return TRUE; -+} -+ -+static gboolean -+setup_widgets (NMApplet *applet) -+{ -+ gboolean success = FALSE; -+ gboolean indicator_success = FALSE; -+ -+ g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); -+ -+ success = setup_statusicon_menu (applet); -+ -+#ifdef ENABLE_INDICATOR -+ indicator_success = setup_indicator_menu (applet); -+#endif -+ -+#ifndef ENABLE_INDICATOR -+ return success; -+#else -+ return success || indicator_success; -+#endif - } - - static void -@@ -3537,6 +3820,8 @@ constructor (GType type, - GCONF_CLIENT_PRELOAD_ONELEVEL, - NULL); - -+ foo_client_setup (applet); -+ - /* Load pixmaps and create applet widgets */ - if (!setup_widgets (applet)) - goto error; -@@ -3555,6 +3840,13 @@ constructor (GType type, - /* Move user connections to the system */ - nm_gconf_move_connections_to_system (import_cb, applet); - -+#ifdef ENABLE_INDICATOR -+ /* Watch for new connections */ -+ g_signal_connect (applet->settings, "new-connection", -+ G_CALLBACK (new_connection_cb), -+ applet); -+#endif /* ENABLE_INDICATOR */ -+ - applet->agent = applet_agent_new (); - g_assert (applet->agent); - g_signal_connect (applet->agent, APPLET_AGENT_GET_SECRETS, -@@ -3583,8 +3875,6 @@ constructor (GType type, - applet->wimax_class = applet_device_wimax_get_class (applet); - g_assert (applet->wimax_class); - -- foo_client_setup (applet); -- - /* Track embedding to help debug issues where user has removed the - * notification area applet from the panel, and thus nm-applet too. - */ -@@ -3630,6 +3920,11 @@ static void finalize (GObject *object) - if (applet->update_icon_id) - g_source_remove (applet->update_icon_id); - -+#ifdef ENABLE_INDICATOR -+ if (applet->update_menu_id) -+ g_source_remove (applet->update_menu_id); -+#endif /* ENABLE_INDICATOR */ -+ - if (applet->menu) - g_object_unref (applet->menu); - nma_icons_free (applet); -@@ -3657,6 +3952,11 @@ static void finalize (GObject *object) - if (applet->status_icon) - g_object_unref (applet->status_icon); - -+#ifdef ENABLE_INDICATOR -+ if (applet->app_indicator) -+ g_object_unref (applet->app_indicator); -+#endif -+ - if (applet->nm_client) - g_object_unref (applet->nm_client); - -Index: b/src/applet.h -=================================================================== ---- a/src/applet.h -+++ b/src/applet.h -@@ -38,6 +38,10 @@ - - #include - -+#if ENABLE_INDICATOR -+#include -+#endif -+ - #include - #include - #include -@@ -148,6 +152,11 @@ typedef struct - guint animation_id; - - /* Direct UI elements */ -+#if ENABLE_INDICATOR -+ AppIndicator * app_indicator; -+ guint update_menu_id; -+ gboolean in_fallback; -+#endif - GtkStatusIcon * status_icon; - int icon_size; - -@@ -234,13 +243,15 @@ struct NMADeviceClass { - NMDeviceStateReason reason, - NMApplet *applet); - -- /* Device class is expected to return a *referenced* pixbuf, which will -+ /* Device class is expected to pass a *referenced* pixbuf, which will - * be unrefed by the icon code. This allows the device class to create - * a composited pixbuf if necessary and pass the reference to the caller. - */ -- GdkPixbuf * (*get_icon) (NMDevice *device, -+ void (*get_icon) (NMDevice *device, - NMDeviceState state, - NMConnection *connection, -+ GdkPixbuf **out_pixbuf, -+ char **out_indicator_icon, - char **tip, - NMApplet *applet); - -@@ -255,6 +266,10 @@ NMApplet *nm_applet_new (GMainLoop *loop - - void applet_schedule_update_icon (NMApplet *applet); - -+#if ENABLE_INDICATOR -+void applet_schedule_update_menu (NMApplet *applet); -+#endif /* ENABLE_INDICATOR */ -+ - NMRemoteSettings *applet_get_settings (NMApplet *applet); - - GSList *applet_get_all_connections (NMApplet *applet); -Index: b/src/mobile-helpers.c -=================================================================== ---- a/src/mobile-helpers.c -+++ b/src/mobile-helpers.c -@@ -21,6 +21,7 @@ - */ - - #include "mobile-helpers.h" -+#include - - GdkPixbuf * - mobile_helper_get_status_pixbuf (guint32 quality, -@@ -35,7 +36,11 @@ mobile_helper_get_status_pixbuf (guint32 - - if (!quality_valid) - quality = 0; -+#ifndef ENABLE_INDICATOR - qual_pixbuf = mobile_helper_get_quality_icon (quality, applet); -+#else -+ qual_pixbuf = wwan_pixbuf; -+#endif - - pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, - TRUE, -@@ -83,9 +88,14 @@ mobile_helper_get_status_pixbuf (guint32 - return pixbuf; - } - -+#ifndef ENABLE_INDICATOR - GdkPixbuf * -+#else -+char * -+#endif - mobile_helper_get_quality_icon (guint32 quality, NMApplet *applet) - { -+#ifndef ENABLE_INDICATOR - if (quality > 80) - return nma_icon_check_and_load ("nm-signal-100", &applet->wireless_100_icon, applet); - else if (quality > 55) -@@ -96,7 +106,132 @@ mobile_helper_get_quality_icon (guint32 - return nma_icon_check_and_load ("nm-signal-25", &applet->wireless_25_icon, applet); - - return nma_icon_check_and_load ("nm-signal-00", &applet->wireless_00_icon, applet); -+#else -+ char *icon_name; -+ -+ if (quality > 80) -+ icon_name = g_strdup_printf ("gsm-3g-full"); -+ else if (quality > 55) -+ icon_name = g_strdup_printf ("gsm-3g-high"); -+ else if (quality > 30) -+ icon_name = g_strdup_printf ("gsm-3g-medium"); -+ else if (quality > 5) -+ icon_name = g_strdup_printf ("gsm-3g-low"); -+ else -+ icon_name = g_strdup_printf ("gsm-3g-none"); -+ -+ return icon_name; -+#endif -+} -+ -+#ifdef ENABLE_INDICATOR -+static const char * -+get_tech_name (guint32 tech) -+{ -+ switch (tech) { -+ case MB_TECH_1XRTT: -+ return _("CDMA"); -+ case MB_TECH_EVDO_REV0: -+ case MB_TECH_EVDO_REVA: -+ return _("EVDO"); -+ case MB_TECH_GSM: -+ return _("GSM"); -+ case MB_TECH_GPRS: -+ return _("GPRS"); -+ case MB_TECH_EDGE: -+ return _("EDGE"); -+ case MB_TECH_UMTS: -+ return _("UMTS"); -+ case MB_TECH_HSDPA: -+ return _("HSDPA"); -+ case MB_TECH_HSUPA: -+ return _("HSUPA"); -+ case MB_TECH_HSPA: -+ return _("HSPA"); -+ default: -+ break; -+ } -+ return NULL; -+} -+ -+char * -+mobile_helper_get_connection_label (const char *connection_name, -+ const char *provider, -+ guint32 technology, -+ guint32 state) -+{ -+ const char *tech_name; -+ char *desc_string; -+ -+ /* Construct the description string */ -+ tech_name = get_tech_name (technology); -+ switch (state) { -+ default: -+ case MB_STATE_UNKNOWN: -+ desc_string = g_strdup (_("not enabled")); -+ break; -+ case MB_STATE_IDLE: -+ if (connection_name) -+ desc_string = g_strdup (connection_name); -+ else -+ desc_string = g_strdup (_("not registered")); -+ break; -+ case MB_STATE_HOME: -+ if (connection_name) { -+ if (provider && tech_name) -+ desc_string = g_strdup_printf ("%s (%s %s)", connection_name, provider, tech_name); -+ else if (provider || tech_name) -+ desc_string = g_strdup_printf ("%s (%s)", connection_name, provider ? provider : tech_name); -+ else -+ desc_string = g_strdup_printf ("%s", connection_name); -+ } else { -+ if (provider) { -+ if (tech_name) -+ desc_string = g_strdup_printf ("%s %s", provider, tech_name); -+ else -+ desc_string = g_strdup_printf ("%s", provider); -+ } else { -+ if (tech_name) -+ desc_string = g_strdup_printf (_("Home network (%s)"), tech_name); -+ else -+ desc_string = g_strdup_printf (_("Home network")); -+ } -+ } -+ break; -+ case MB_STATE_SEARCHING: -+ if (connection_name) -+ desc_string = g_strdup (connection_name); -+ else -+ desc_string = g_strdup (_("searching")); -+ break; -+ case MB_STATE_DENIED: -+ desc_string = g_strdup (_("registration denied")); -+ break; -+ case MB_STATE_ROAMING: -+ if (connection_name) { -+ if (tech_name) -+ desc_string = g_strdup_printf (_("%s (%s roaming)"), connection_name, tech_name); -+ else -+ desc_string = g_strdup_printf (_("%s (roaming)"), connection_name); -+ } else { -+ if (provider) { -+ if (tech_name) -+ desc_string = g_strdup_printf (_("%s (%s roaming)"), provider, tech_name); -+ else -+ desc_string = g_strdup_printf (_("%s (roaming)"), provider); -+ } else { -+ if (tech_name) -+ desc_string = g_strdup_printf (_("Roaming network (%s)"), tech_name); -+ else -+ desc_string = g_strdup_printf (_("Roaming network")); -+ } -+ } -+ break; -+ } -+ -+ return desc_string; - } -+#endif - - GdkPixbuf * - mobile_helper_get_tech_icon (guint32 tech, NMApplet *applet) -Index: b/src/mobile-helpers.h -=================================================================== ---- a/src/mobile-helpers.h -+++ b/src/mobile-helpers.h -@@ -56,9 +56,20 @@ GdkPixbuf *mobile_helper_get_status_pixb - guint32 access_tech, - NMApplet *applet); - -+#ifndef ENABLE_INDICATOR - GdkPixbuf *mobile_helper_get_quality_icon (guint32 quality, NMApplet *applet); -+#else -+char *mobile_helper_get_quality_icon (guint32 quality, NMApplet *applet); -+#endif - - GdkPixbuf *mobile_helper_get_tech_icon (guint32 tech, NMApplet *applet); - -+#ifdef ENABLE_INDICATOR -+char *mobile_helper_get_connection_label (const char *connection_name, -+ const char *provider, -+ guint32 technology, -+ guint32 state); -+#endif -+ - #endif /* APPLET_MOBILE_HELPERS_H */ - -Index: b/src/mb-menu-item.c -=================================================================== ---- a/src/mb-menu-item.c -+++ b/src/mb-menu-item.c -@@ -180,11 +180,14 @@ nm_mb_menu_item_new (const char *connect - gtk_label_set_text (GTK_LABEL (priv->desc), priv->desc_string); - } - -+/* Disabling this for indicators only because it won't build otherwise. */ -+#ifndef ENABLE_INDICATOR - /* And the strength icon, if we have strength information at all */ - if (enabled && strength) { - gtk_image_set_from_pixbuf (GTK_IMAGE (priv->strength), - mobile_helper_get_quality_icon (strength, applet)); - } -+#endif - - return GTK_WIDGET (item); - } -Index: b/src/gconf-helpers/Makefile.am -=================================================================== ---- a/src/gconf-helpers/Makefile.am -+++ b/src/gconf-helpers/Makefile.am -@@ -16,6 +16,7 @@ libgconf_helpers_la_CPPFLAGS = \ - -I$(top_srcdir)/src/utils \ - $(GTK_CFLAGS) \ - $(NMA_CFLAGS) \ -+ $(APPINDICATOR_CFLAGS) \ - $(GCONF_CFLAGS) \ - $(GNOME_KEYRING_CFLAGS) \ - $(DISABLE_DEPRECATED) -@@ -23,6 +24,7 @@ libgconf_helpers_la_CPPFLAGS = \ - libgconf_helpers_la_LIBADD = \ - $(GTK_LIBS) \ - $(NMA_LIBS) \ -+ $(APPINDICATOR_LIBS) \ - $(GCONF_LIBS) \ - $(GNOME_KEYRING_LIBS) - -Index: b/src/applet-device-wimax.c -=================================================================== ---- a/src/applet-device-wimax.c -+++ b/src/applet-device-wimax.c -@@ -36,6 +36,7 @@ - #include "applet.h" - #include "applet-device-wimax.h" - #include "utils.h" -+#include "mobile-helpers.h" - #include "applet-dialogs.h" - #include "nma-marshal.h" - #include "mb-menu-item.h" -@@ -141,9 +142,14 @@ new_nsp_menu_item (NMDeviceWimax *device - { - GtkWidget *item; - WimaxMenuItemInfo *info; -+#ifdef ENABLE_INDICATOR -+ char *text = NULL; -+ GtkWidget *signal_icon = NULL; -+#endif - - g_return_val_if_fail (nsp != NULL, NULL); - -+#ifndef ENABLE_INDICATOR - item = nm_mb_menu_item_new (nm_wimax_nsp_get_name (nsp), - nm_wimax_nsp_get_signal_quality (nsp), - NULL, -@@ -152,6 +158,16 @@ new_nsp_menu_item (NMDeviceWimax *device - nsp_type_to_mb_state (nm_wimax_nsp_get_network_type (nsp)), - TRUE, - applet); -+#else -+ text = g_strdup (nm_wimax_nsp_get_name (nsp)); -+ item = gtk_image_menu_item_new_with_label (text); -+ g_free (text); -+ text = mobile_helper_get_quality_icon (nm_wimax_nsp_get_signal_quality (nsp), applet); -+ signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); -+ g_free (text); -+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); -+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); -+#endif /* ENABLE_INDICATOR */ - gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); - - info = g_slice_new0 (WimaxMenuItemInfo); -@@ -305,7 +321,12 @@ wimax_add_menu_item (NMDevice *device, - static void - nsp_quality_changed (NMWimaxNsp *nsp, GParamSpec *pspec, gpointer user_data) - { -- applet_schedule_update_icon (NM_APPLET (user_data)); -+ NMApplet *applet = NM_APPLET (user_data); -+ -+ applet_schedule_update_icon (applet); -+#ifdef ENABLE_INDICATOR -+ applet_schedule_update_menu (applet); -+#endif /* ENABLE_INDICATOR */ - } - - static NMWimaxNsp * -@@ -367,8 +388,12 @@ active_nsp_changed_cb (NMDeviceWimax *de - if (!s_wimax) - return; - -- if (g_strcmp0 (nm_wimax_nsp_get_name (new), nm_setting_wimax_get_network_name (s_wimax)) != 0) -+ if (g_strcmp0 (nm_wimax_nsp_get_name (new), nm_setting_wimax_get_network_name (s_wimax)) != 0) { - applet_schedule_update_icon (applet); -+#ifdef ENABLE_INDICATOR -+ applet_schedule_update_menu (applet); -+#endif /* ENABLE_INDICATOR */ -+ } - } - - static void -@@ -384,6 +409,9 @@ nsp_removed_cb (NMDeviceWimax *device, - if (old == nsp) { - g_object_set_data (G_OBJECT (device), ACTIVE_NSP_TAG, NULL); - applet_schedule_update_icon (applet); -+#ifdef ENABLE_INDICATOR -+ applet_schedule_update_menu (applet); -+#endif /* ENABLE_INDICATOR */ - } - } - -@@ -432,15 +460,16 @@ wimax_device_state_changed (NMDevice *de - } - } - --static GdkPixbuf * -+static void - wimax_get_icon (NMDevice *device, - NMDeviceState state, - NMConnection *connection, -+ GdkPixbuf **out_pixbuf, -+ char **out_indicator_icon, - char **tip, - NMApplet *applet) - { - NMSettingConnection *s_con; -- GdkPixbuf *pixbuf = NULL; - const char *id; - NMWimaxNsp *nsp; - guint32 quality = 0; -@@ -474,7 +503,7 @@ wimax_get_icon (NMDevice *device, - break; - case NM_DEVICE_STATE_ACTIVATED: - roaming = (nsp_type == NM_WIMAX_NSP_NETWORK_TYPE_ROAMING_PARTNER); -- pixbuf = mobile_helper_get_status_pixbuf (quality, -+ *out_pixbuf = mobile_helper_get_status_pixbuf (quality, - TRUE, - nsp_type_to_mb_state (nsp_type), - MB_TECH_WIMAX, -@@ -483,12 +512,11 @@ wimax_get_icon (NMDevice *device, - id, quality, - roaming ? ", " : "", - roaming ? _("roaming") : ""); -+ *out_indicator_icon = mobile_helper_get_quality_icon (quality, applet); - break; - default: - break; - } -- -- return pixbuf; - } - - static gboolean diff -Nru network-manager-applet-0.9.4.1/debian/patches/revert_git_policy_error_dialog_ba8381a.patch network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/revert_git_policy_error_dialog_ba8381a.patch --- network-manager-applet-0.9.4.1/debian/patches/revert_git_policy_error_dialog_ba8381a.patch 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/revert_git_policy_error_dialog_ba8381a.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,222 +0,0 @@ -From: Mathieu Trudel-Lapierre -Subject: Revert commit ba8381aed2cebaea13b8fc739a80bc63c7e153a3. - -This would introduce new strings late past UI Freeze; and I feel the benefit -would be minimal when we already have the error messages otherwise, in -~/.xsession-errors. So revert that particular commit to preserve the old -behavior. - -REVERTS: - - From ba8381aed2cebaea13b8fc739a80bc63c7e153a3 Mon Sep 17 00:00:00 2001 - From: Jiří Klimeš - Date: Mon, 19 Mar 2012 10:02:45 +0000 - Subject: applet: show an error dialog on connection failures - - Show the user an error dialog, when connection activation failed, so that - he knows what's the problem. This is useful mainly for situations when - user is not allowed to perform an action, PolicyKit is misconfigured or - something. ---- ---- - src/applet-device-wifi.c | 22 +++------------------ - src/applet.c | 33 +++++++------------------------- - src/gconf-helpers/tests/Makefile.am | 2 - - src/utils/utils.c | 37 ------------------------------------ - src/utils/utils.h | 7 ------ - 5 files changed, 12 insertions(+), 89 deletions(-) - -Index: b/src/applet-device-wifi.c -=================================================================== ---- a/src/applet-device-wifi.c -+++ b/src/applet-device-wifi.c -@@ -1682,15 +1682,8 @@ activate_existing_cb (NMClient *client, - GError *error, - gpointer user_data) - { -- if (error) { -- const char *text = _("Failed to activate connection"); -- char *err_text = g_strdup_printf ("(%d) %s", error->code, -- error->message ? error->message : _("Unknown error")); -- -- g_warning ("%s: %s", text, err_text); -- utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); -- g_free (err_text); -- } -+ if (error) -+ g_warning ("Failed to activate connection: (%d) %s", error->code, error->message); - applet_schedule_update_icon (NM_APPLET (user_data)); - } - -@@ -1701,15 +1694,8 @@ activate_new_cb (NMClient *client, - GError *error, - gpointer user_data) - { -- if (error) { -- const char *text = _("Failed to add new connection"); -- char *err_text = g_strdup_printf ("(%d) %s", error->code, -- error->message ? error->message : _("Unknown error")); -- -- g_warning ("%s: %s", text, err_text); -- utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); -- g_free (err_text); -- } -+ if (error) -+ g_warning ("Failed to add new connection: (%d) %s", error->code, error->message); - applet_schedule_update_icon (NM_APPLET (user_data)); - } - -Index: b/src/applet.c -=================================================================== ---- a/src/applet.c -+++ b/src/applet.c -@@ -501,15 +501,8 @@ add_and_activate_cb (NMClient *client, - { - NMApplet *applet = NM_APPLET (user_data); - -- if (error) { -- const char *text = _("Failed to add/activate connection"); -- char *err_text = g_strdup_printf ("(%d) %s", error->code, -- error->message ? error->message : _("Unknown error")); -- -- g_warning ("%s: %s", text, err_text); -- utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); -- g_free (err_text); -- } -+ if (error) -+ g_warning ("Failed to add/activate connection: (%d) %s", error->code, error->message); - - applet_schedule_update_icon (applet); - applet_schedule_update_menu (applet); -@@ -549,13 +542,10 @@ disconnect_cb (NMDevice *device, GError - NMApplet *applet = NM_APPLET (user_data); - - if (error) { -- const char *text = _("Device disconnect failed"); -- char *err_text = g_strdup_printf ("(%d) %s", error->code, -- error->message ? error->message : _("Unknown error")); -- -- g_warning ("%s: %s: %s", __func__, text, err_text); -- utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); -- g_free (err_text); -+ g_warning ("%s: device disconnect failed: (%d) %s", -+ __func__, -+ error ? error->code : -1, -+ error && error->message ? error->message : "(unknown)"); - } - - applet_schedule_update_icon (applet); -@@ -577,15 +567,8 @@ activate_connection_cb (NMClient *client - GError *error, - gpointer user_data) - { -- if (error) { -- const char *text = _("Connection activation failed"); -- char *err_text = g_strdup_printf ("(%d) %s", error->code, -- error->message ? error->message : _("Unknown error")); -- -- g_warning ("%s: %s", text, err_text); -- utils_show_error_dialog (_("Connection failure"), text, err_text, FALSE, NULL); -- g_free (err_text); -- } -+ if (error) -+ g_warning ("Connection activation failed: %s", error->message); - - applet_schedule_update_icon (NM_APPLET (user_data)); - } -Index: b/src/gconf-helpers/tests/Makefile.am -=================================================================== ---- a/src/gconf-helpers/tests/Makefile.am -+++ b/src/gconf-helpers/tests/Makefile.am -@@ -12,14 +12,12 @@ test_upgrade_SOURCES = \ - test_upgrade_CPPFLAGS = \ - -I ${srcdir}/../ \ - -DTESTDIR=\"$(srcdir)\" \ -- $(GTK_CFLAGS) \ - $(NMA_CFLAGS) \ - $(GCONF_CFLAGS) \ - $(GNOME_KEYRING_CFLAGS) - - test_upgrade_LDADD = \ - ${builddir}/../libgconf-helpers-test.la \ -- $(GTK_CFLAGS) \ - $(NMA_LIBS) \ - $(GNOME_KEYRING_LIBS) - -Index: b/src/utils/utils.c -=================================================================== ---- a/src/utils/utils.c -+++ b/src/utils/utils.c -@@ -24,7 +24,6 @@ - #include - #include - #include --#include - - #include - #include -@@ -354,39 +353,3 @@ utils_create_keyring_add_attr_list (NMCo - setting_key); - return attrs; - } -- --void --utils_show_error_dialog (const char *title, -- const char *text1, -- const char *text2, -- gboolean modal, -- GtkWindow *parent) --{ -- GtkWidget *err_dialog; -- -- g_return_if_fail (text1 != NULL); -- -- err_dialog = gtk_message_dialog_new (parent, -- GTK_DIALOG_DESTROY_WITH_PARENT, -- GTK_MESSAGE_ERROR, -- GTK_BUTTONS_CLOSE, -- "%s", -- text1); -- -- if (text2) -- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (err_dialog), text2); -- if (title) -- gtk_window_set_title (GTK_WINDOW (err_dialog), title); -- -- if (modal) { -- gtk_dialog_run (GTK_DIALOG (err_dialog)); -- gtk_widget_destroy (err_dialog); -- } else { -- g_signal_connect (err_dialog, "delete-event", G_CALLBACK (gtk_widget_destroy), NULL); -- g_signal_connect (err_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); -- -- gtk_widget_show_all (err_dialog); -- gtk_window_present (GTK_WINDOW (err_dialog)); -- } --} -- -Index: b/src/utils/utils.h -=================================================================== ---- a/src/utils/utils.h -+++ b/src/utils/utils.h -@@ -24,7 +24,6 @@ - #define UTILS_H - - #include --#include - #include - #include - #include -@@ -58,12 +57,6 @@ GnomeKeyringAttributeList *utils_create_ - const char *setting_key, - char **out_display_name); - --void utils_show_error_dialog (const char *title, -- const char *text1, -- const char *text2, -- gboolean modal, -- GtkWindow *parent); -- - #define NMA_ERROR (g_quark_from_static_string ("nma-error-quark")) - - typedef enum { diff -Nru network-manager-applet-0.9.4.1/debian/patches/series network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/series --- network-manager-applet-0.9.4.1/debian/patches/series 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -lp289466_always_show_tray_icon.patch -lp328572-dxteam-connect-text.patch -lp330571_dxteam_wired_connect_text.patch -lp330608_dxteam_gsm_connect_text.patch -lp337960_dxteam_notification_icon_names.diff -lp337960_dxteam_notification_icon_names_part2-images.diff -lp341684_device_sensitive_disconnect_notify.patch -lp358526_generic_disconnected_notification_icon.patch -lp460144_correctly_update_notification.patch -applet-wifi-menu-before-vpn.patch -default-ipv6-auto.patch -clear-notification-actions.patch -key-certificate-extensions.patch -nm-applet-use-indicator.patch -mobile-wizard.patch -lp830178_adhoc_ip6_ignore.patch -lp829673_gconf_hide_applet.patch -revert_git_policy_error_dialog_ba8381a.patch diff -Nru network-manager-applet-0.9.4.1/debian/rules network-manager-applet-0.9.6.2+git201210311320.2620/debian/rules --- network-manager-applet-0.9.4.1/debian/rules 2012-04-03 16:24:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/rules 2012-10-31 13:21:00.000000000 +0000 @@ -99,10 +99,10 @@ echo "getting specific upstream revision/tag: $(1)"; \ cd `ls | head -n 1`; git checkout -b orig $(1); \ commit_id=`git log -n1 --abbrev-commit | grep '^commit ' | sed -e 's/commit //' | sed -e 's/\.\.\.$$//'`; \ - raw=`date --utc --date="$$(git log --pretty=fuller -n1 --date=rfc | grep CommitDate: | sed -e 's/CommitDate:[^0-9]*//')" "+%Y%m%dt%H%M%S"`; \ + raw=`date --utc --date="$$(git log --pretty=fuller -n1 --date=rfc | grep CommitDate: | sed -e 's/CommitDate:[^0-9]*//')" "+%Y%m%d%H%M"`; \ if echo $(1) | grep -q -c "orig" || echo $(DEB_VERSION) | grep -q -c "git"; \ then \ - upstream_version=$(DEB_MAJOR_VERSION)git.$$raw.$$commit_id; \ + upstream_version=$(DEB_MAJOR_VERSION)git$$raw.$$commit_id; \ else \ upstream_version=$(DEB_UPSTREAM_VERSION); \ fi; \ diff -Nru network-manager-applet-0.9.4.1/debian/source/format network-manager-applet-0.9.6.2+git201210311320.2620/debian/source/format --- network-manager-applet-0.9.4.1/debian/source/format 2012-10-31 13:24:23.529737863 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/debian/source/format 2012-10-31 13:24:23.799738855 +0000 @@ -1 +1 @@ -3.0 (quilt) +3.0 (native) diff -Nru network-manager-applet-0.9.4.1/depcomp network-manager-applet-0.9.6.2+git201210311320.2620/depcomp --- network-manager-applet-0.9.4.1/depcomp 2010-03-29 11:21:24.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/depcomp 1970-01-01 00:00:00.000000000 +0000 @@ -1,630 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2009-04-28.21; # UTC - -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free -# Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi - -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -cygpath_u="cygpath -u -f -" -if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u="sed s,\\\\\\\\,/,g" - depmode=msvisualcpp -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. -## Unfortunately, FreeBSD c89 acceptance of flags depends upon -## the command line argument order; so add the flags where they -## appear in depend2.am. Note that the slowdown incurred here -## affects only configure: in makefiles, %FASTDEP% shortcuts this. - for arg - do - case $arg in - -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; - *) set fnord "$@" "$arg" ;; - esac - shift # fnord - shift # $arg - done - "$@" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory -## that the space means something, we add a space to the output as -## well. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> "$depfile" - echo >> "$depfile" - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.u - tmpdepfile2=$base.u - tmpdepfile3=$dir.libs/$base.u - "$@" -Wc,-M - else - tmpdepfile1=$dir$base.u - tmpdepfile2=$dir$base.u - tmpdepfile3=$dir$base.u - "$@" -M - fi - stat=$? - - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | - sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp2) - # The "hp" stanza above does not work with aCC (C++) and HP's ia64 - # compilers, which have integrated preprocessors. The correct option - # to use with these is +Maked; it writes dependencies to a file named - # 'foo.d', which lands next to the object file, wherever that - # happens to be. - # Much of this is similar to the tru64 case; see comments there. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir.libs/$base.d - "$@" -Wc,+Maked - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - "$@" +Maked - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" - # Add `dependent.h:' lines. - sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" "$tmpdepfile2" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mechanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. - "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no eat=no - for arg - do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - if test $eat = yes; then - eat=no - continue - fi - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -arch) - eat=yes ;; - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix=`echo "$object" | sed 's/^.*\././'` - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E | - sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - IFS=" " - for arg - do - case "$arg" in - -o) - shift - ;; - $object) - shift - ;; - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E 2>/dev/null | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvcmsys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff -Nru network-manager-applet-0.9.4.1/icons/16/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/icons/16/Makefile.in --- network-manager-applet-0.9.4.1/icons/16/Makefile.in 2012-03-23 22:55:41.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/icons/16/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,468 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = icons/16 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(icondir)" -DATA = $(icon_DATA) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -icondir = ${datadir}/icons/hicolor/16x16/apps -icon_DATA = \ - nm-device-wired.png \ - nm-no-connection.png \ - nm-vpn-standalone-lock.png - -EXTRA_DIST = $(icon_DATA) -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/16/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu icons/16/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-iconDATA: $(icon_DATA) - @$(NORMAL_INSTALL) - test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)" - @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ - done - -uninstall-iconDATA: - @$(NORMAL_UNINSTALL) - @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(icondir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(icondir)" && rm -f $$files -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(DATA) -installdirs: - for dir in "$(DESTDIR)$(icondir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-iconDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-iconDATA - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-iconDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-iconDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/icons/22/Makefile.am network-manager-applet-0.9.6.2+git201210311320.2620/icons/22/Makefile.am --- network-manager-applet-0.9.4.1/icons/22/Makefile.am 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/icons/22/Makefile.am 2012-10-31 13:20:57.000000000 +0000 @@ -65,6 +65,7 @@ nm-tech-edge.png \ nm-tech-umts.png \ nm-tech-hspa.png \ + nm-tech-lte.png \ nm-mb-roam.png \ nm-tech-3g.png diff -Nru network-manager-applet-0.9.4.1/icons/22/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/icons/22/Makefile.in --- network-manager-applet-0.9.4.1/icons/22/Makefile.in 2012-03-23 22:55:41.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/icons/22/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,532 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = icons/22 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(icondir)" -DATA = $(icon_DATA) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -icondir = ${datadir}/icons/hicolor/22x22/apps -icon_DATA = \ - nm-no-connection.png \ - nm-device-wired.png \ - nm-device-wwan.png \ - nm-wwan-tower.png \ - nm-adhoc.png \ - nm-stage01-connecting01.png \ - nm-stage01-connecting02.png \ - nm-stage01-connecting03.png \ - nm-stage01-connecting04.png \ - nm-stage01-connecting05.png \ - nm-stage01-connecting06.png \ - nm-stage01-connecting07.png \ - nm-stage01-connecting08.png \ - nm-stage01-connecting09.png \ - nm-stage01-connecting10.png \ - nm-stage01-connecting11.png \ - nm-stage02-connecting01.png \ - nm-stage02-connecting02.png \ - nm-stage02-connecting03.png \ - nm-stage02-connecting04.png \ - nm-stage02-connecting05.png \ - nm-stage02-connecting06.png \ - nm-stage02-connecting07.png \ - nm-stage02-connecting08.png \ - nm-stage02-connecting09.png \ - nm-stage02-connecting10.png \ - nm-stage02-connecting11.png \ - nm-stage03-connecting01.png \ - nm-stage03-connecting02.png \ - nm-stage03-connecting03.png \ - nm-stage03-connecting04.png \ - nm-stage03-connecting05.png \ - nm-stage03-connecting06.png \ - nm-stage03-connecting07.png \ - nm-stage03-connecting08.png \ - nm-stage03-connecting09.png \ - nm-stage03-connecting10.png \ - nm-stage03-connecting11.png \ - nm-signal-00.png \ - nm-signal-25.png \ - nm-signal-50.png \ - nm-signal-75.png \ - nm-signal-100.png \ - nm-vpn-connecting01.png \ - nm-vpn-connecting02.png \ - nm-vpn-connecting03.png \ - nm-vpn-connecting04.png \ - nm-vpn-connecting05.png \ - nm-vpn-connecting06.png \ - nm-vpn-connecting07.png \ - nm-vpn-connecting08.png \ - nm-vpn-connecting09.png \ - nm-vpn-connecting10.png \ - nm-vpn-connecting11.png \ - nm-vpn-connecting12.png \ - nm-vpn-connecting13.png \ - nm-vpn-connecting14.png \ - nm-vpn-active-lock.png \ - nm-secure-lock.png \ - nm-tech-cdma-1x.png \ - nm-tech-evdo.png \ - nm-tech-gprs.png \ - nm-tech-edge.png \ - nm-tech-umts.png \ - nm-tech-hspa.png \ - nm-mb-roam.png \ - nm-tech-3g.png - -EXTRA_DIST = $(icon_DATA) -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/22/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu icons/22/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-iconDATA: $(icon_DATA) - @$(NORMAL_INSTALL) - test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)" - @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ - done - -uninstall-iconDATA: - @$(NORMAL_UNINSTALL) - @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(icondir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(icondir)" && rm -f $$files -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(DATA) -installdirs: - for dir in "$(DESTDIR)$(icondir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-iconDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-iconDATA - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-iconDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-iconDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: Binary files /tmp/LkFZdsLCyF/network-manager-applet-0.9.4.1/icons/22/nm-tech-lte.png and /tmp/8chaaiwqKG/network-manager-applet-0.9.6.2+git201210311320.2620/icons/22/nm-tech-lte.png differ diff -Nru network-manager-applet-0.9.4.1/icons/32/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/icons/32/Makefile.in --- network-manager-applet-0.9.4.1/icons/32/Makefile.in 2012-03-23 22:55:41.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/icons/32/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,467 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = icons/32 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(icondir)" -DATA = $(icon_DATA) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -icondir = ${datadir}/icons/hicolor/32x32/apps -icon_DATA = \ - nm-device-wired.png \ - nm-no-connection.png - -EXTRA_DIST = $(icon_DATA) -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/32/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu icons/32/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-iconDATA: $(icon_DATA) - @$(NORMAL_INSTALL) - test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)" - @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ - done - -uninstall-iconDATA: - @$(NORMAL_UNINSTALL) - @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(icondir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(icondir)" && rm -f $$files -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(DATA) -installdirs: - for dir in "$(DESTDIR)$(icondir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-iconDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-iconDATA - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-iconDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-iconDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/icons/48/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/icons/48/Makefile.in --- network-manager-applet-0.9.4.1/icons/48/Makefile.in 2012-03-23 22:55:41.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/icons/48/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,466 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = icons/48 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(icondir)" -DATA = $(icon_DATA) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -icondir = ${datadir}/icons/hicolor/48x48/apps -icon_DATA = \ - nm-device-wireless.png - -EXTRA_DIST = $(icon_DATA) -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/48/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu icons/48/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-iconDATA: $(icon_DATA) - @$(NORMAL_INSTALL) - test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)" - @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ - done - -uninstall-iconDATA: - @$(NORMAL_UNINSTALL) - @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(icondir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(icondir)" && rm -f $$files -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(DATA) -installdirs: - for dir in "$(DESTDIR)$(icondir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-iconDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-iconDATA - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-iconDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-iconDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/icons/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/icons/Makefile.in --- network-manager-applet-0.9.4.1/icons/Makefile.in 2012-03-23 22:55:41.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/icons/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,616 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = icons -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = 16 22 32 48 scalable -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu icons/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/icons/scalable/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/icons/scalable/Makefile.in --- network-manager-applet-0.9.4.1/icons/scalable/Makefile.in 2012-03-23 22:55:41.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/icons/scalable/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,467 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = icons/scalable -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(icondir)" -DATA = $(icon_DATA) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -icondir = ${datadir}/icons/hicolor/scalable/apps -icon_DATA = \ - nm-device-wired.svg \ - nm-no-connection.svg - -EXTRA_DIST = $(icon_DATA) -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/scalable/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu icons/scalable/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-iconDATA: $(icon_DATA) - @$(NORMAL_INSTALL) - test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)" - @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ - done - -uninstall-iconDATA: - @$(NORMAL_UNINSTALL) - @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(icondir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(icondir)" && rm -f $$files -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(DATA) -installdirs: - for dir in "$(DESTDIR)$(icondir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-iconDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-iconDATA - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-iconDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-iconDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/install-sh network-manager-applet-0.9.6.2+git201210311320.2620/install-sh --- network-manager-applet-0.9.4.1/install-sh 2010-03-29 11:21:24.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/install-sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,520 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2009-04-28.21; # UTC - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -nl=' -' -IFS=" "" $nl" - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -no_target_directory= - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) dst_arg=$2 - shift;; - - -T) no_target_directory=true;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call `install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names starting with `-'. - case $src in - -*) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac - - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. - if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - - test -d "$dstdir" - dstdir_status=$? - fi - fi - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - -*) prefix='./';; - *) prefix='';; - esac - - eval "$initialize_posix_glob" - - oIFS=$IFS - IFS=/ - $posix_glob set -f - set fnord $dstdir - shift - $posix_glob set +f - IFS=$oIFS - - prefixes= - - for d - do - test -z "$d" && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff -Nru network-manager-applet-0.9.4.1/ltmain.sh network-manager-applet-0.9.6.2+git201210311320.2620/ltmain.sh --- network-manager-applet-0.9.4.1/ltmain.sh 2012-02-06 14:51:56.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/ltmain.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,9636 +0,0 @@ - -# libtool (GNU libtool) 2.4 -# Written by Gordon Matzigkeit , 1996 - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# GNU Libtool is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, -# or obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -# Usage: $progname [OPTION]... [MODE-ARG]... -# -# Provide generalized library-building support services. -# -# --config show all configuration variables -# --debug enable verbose shell tracing -# -n, --dry-run display commands without modifying any files -# --features display basic configuration information and exit -# --mode=MODE use operation mode MODE -# --preserve-dup-deps don't remove duplicate dependency libraries -# --quiet, --silent don't print informational messages -# --no-quiet, --no-silent -# print informational messages (default) -# --tag=TAG use configuration variables from tag TAG -# -v, --verbose print more informational messages than default -# --no-verbose don't print the extra informational messages -# --version print version information -# -h, --help, --help-all print short, long, or detailed help message -# -# MODE must be one of the following: -# -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory -# -# MODE-ARGS vary depending on the MODE. When passed as first option, -# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. -# Try `$progname --help --mode=MODE' for a more detailed description of MODE. -# -# When reporting a bug, please describe a test case to reproduce it and -# include the following information: -# -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4 -# automake: $automake_version -# autoconf: $autoconf_version -# -# Report bugs to . -# GNU libtool home page: . -# General help using GNU software: . - -PROGRAM=libtool -PACKAGE=libtool -VERSION=2.4 -TIMESTAMP="" -package_revision=1.3293 - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' -} - -# NLS nuisances: We save the old values to restore during execute mode. -lt_user_locale= -lt_safe_locale= -for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -do - eval "if test \"\${$lt_var+set}\" = set; then - save_$lt_var=\$$lt_var - $lt_var=C - export $lt_var - lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" - lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" - fi" -done -LC_ALL=C -LANGUAGE=C -export LANGUAGE LC_ALL - -$lt_unset CDPATH - - -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" - - - -: ${CP="cp -f"} -test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} -: ${EGREP="/bin/grep -E"} -: ${FGREP="/bin/grep -F"} -: ${GREP="/bin/grep"} -: ${LN_S="ln -s"} -: ${MAKE="make"} -: ${MKDIR="mkdir"} -: ${MV="mv -f"} -: ${RM="rm -f"} -: ${SED="/bin/sed"} -: ${SHELL="${CONFIG_SHELL-/bin/sh}"} -: ${Xsed="$SED -e 1s/^X//"} - -# Global variables: -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. -EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. - -exit_status=$EXIT_SUCCESS - -# Make sure IFS has a sensible default -lt_nl=' -' -IFS=" $lt_nl" - -dirname="s,/[^/]*$,," -basename="s,^.*/,," - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} # func_dirname may be replaced by extended shell implementation - - -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "${1}" | $SED "$basename"` -} # func_basename may be replaced by extended shell implementation - - -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi - func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` -} # func_dirname_and_basename may be replaced by extended shell implementation - - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname may be replaced by extended shell implementation - - -# These SED scripts presuppose an absolute path with a trailing slash. -pathcar='s,^/\([^/]*\).*$,\1,' -pathcdr='s,^/[^/]*,,' -removedotparts=':dotsl - s@/\./@/@g - t dotsl - s,/\.$,/,' -collapseslashes='s@/\{1,\}@/@g' -finalslash='s,/*$,/,' - -# func_normal_abspath PATH -# Remove doubled-up and trailing slashes, "." path components, -# and cancel out any ".." path components in PATH after making -# it an absolute path. -# value returned in "$func_normal_abspath_result" -func_normal_abspath () -{ - # Start from root dir and reassemble the path. - func_normal_abspath_result= - func_normal_abspath_tpath=$1 - func_normal_abspath_altnamespace= - case $func_normal_abspath_tpath in - "") - # Empty path, that just means $cwd. - func_stripname '' '/' "`pwd`" - func_normal_abspath_result=$func_stripname_result - return - ;; - # The next three entries are used to spot a run of precisely - # two leading slashes without using negated character classes; - # we take advantage of case's first-match behaviour. - ///*) - # Unusual form of absolute path, do nothing. - ;; - //*) - # Not necessarily an ordinary path; POSIX reserves leading '//' - # and for example Cygwin uses it to access remote file shares - # over CIFS/SMB, so we conserve a leading double slash if found. - func_normal_abspath_altnamespace=/ - ;; - /*) - # Absolute path, do nothing. - ;; - *) - # Relative path, prepend $cwd. - func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath - ;; - esac - # Cancel out all the simple stuff to save iterations. We also want - # the path to end with a slash for ease of parsing, so make sure - # there is one (and only one) here. - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` - while :; do - # Processed it all yet? - if test "$func_normal_abspath_tpath" = / ; then - # If we ascended to the root using ".." the result may be empty now. - if test -z "$func_normal_abspath_result" ; then - func_normal_abspath_result=/ - fi - break - fi - func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcar"` - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcdr"` - # Figure out what to do with it - case $func_normal_abspath_tcomponent in - "") - # Trailing empty path component, ignore it. - ;; - ..) - # Parent dir; strip last assembled component from result. - func_dirname "$func_normal_abspath_result" - func_normal_abspath_result=$func_dirname_result - ;; - *) - # Actual path component, append it. - func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent - ;; - esac - done - # Restore leading double-slash if one was found on entry. - func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result -} - -# func_relative_path SRCDIR DSTDIR -# generates a relative path from SRCDIR to DSTDIR, with a trailing -# slash if non-empty, suitable for immediately appending a filename -# without needing to append a separator. -# value returned in "$func_relative_path_result" -func_relative_path () -{ - func_relative_path_result= - func_normal_abspath "$1" - func_relative_path_tlibdir=$func_normal_abspath_result - func_normal_abspath "$2" - func_relative_path_tbindir=$func_normal_abspath_result - - # Ascend the tree starting from libdir - while :; do - # check if we have found a prefix of bindir - case $func_relative_path_tbindir in - $func_relative_path_tlibdir) - # found an exact match - func_relative_path_tcancelled= - break - ;; - $func_relative_path_tlibdir*) - # found a matching prefix - func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" - func_relative_path_tcancelled=$func_stripname_result - if test -z "$func_relative_path_result"; then - func_relative_path_result=. - fi - break - ;; - *) - func_dirname $func_relative_path_tlibdir - func_relative_path_tlibdir=${func_dirname_result} - if test "x$func_relative_path_tlibdir" = x ; then - # Have to descend all the way to the root! - func_relative_path_result=../$func_relative_path_result - func_relative_path_tcancelled=$func_relative_path_tbindir - break - fi - func_relative_path_result=../$func_relative_path_result - ;; - esac - done - - # Now calculate path; take care to avoid doubling-up slashes. - func_stripname '' '/' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - func_stripname '/' '/' "$func_relative_path_tcancelled" - if test "x$func_stripname_result" != x ; then - func_relative_path_result=${func_relative_path_result}/${func_stripname_result} - fi - - # Normalisation. If bindir is libdir, return empty string, - # else relative path ending with a slash; either way, target - # file name can be directly appended. - if test ! -z "$func_relative_path_result"; then - func_stripname './' '' "$func_relative_path_result/" - func_relative_path_result=$func_stripname_result - fi -} - -# The name of this program: -func_dirname_and_basename "$progpath" -progname=$func_basename_result - -# Make sure we have an absolute path for reexecution: -case $progpath in - [\\/]*|[A-Za-z]:\\*) ;; - *[\\/]*) - progdir=$func_dirname_result - progdir=`cd "$progdir" && pwd` - progpath="$progdir/$progname" - ;; - *) - save_IFS="$IFS" - IFS=: - for progdir in $PATH; do - IFS="$save_IFS" - test -x "$progdir/$progname" && break - done - IFS="$save_IFS" - test -n "$progdir" || progdir=`pwd` - progpath="$progdir/$progname" - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed="${SED}"' -e 1s/^X//' -sed_quote_subst='s/\([`"$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution that turns a string into a regex matching for the -# string literally. -sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' - -# Sed substitution that converts a w32 file name or path -# which contains forward slashes, into one that contains -# (escaped) backslashes. A very naive implementation. -lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - -# Re-`\' parameter expansions in output of double_quote_subst that were -# `\'-ed in input to the same. If an odd number of `\' preceded a '$' -# in input to double_quote_subst, that '$' was protected from expansion. -# Since each input `\' is now two `\'s, look for any number of runs of -# four `\'s followed by two `\'s and then a '$'. `\' that '$'. -bs='\\' -bs2='\\\\' -bs4='\\\\\\\\' -dollar='\$' -sed_double_backslash="\ - s/$bs4/&\\ -/g - s/^$bs2$dollar/$bs&/ - s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g - s/\n//g" - -# Standard options: -opt_dry_run=false -opt_help=false -opt_quiet=false -opt_verbose=false -opt_warning=: - -# func_echo arg... -# Echo program name prefixed message, along with the current mode -# name if it has been set yet. -func_echo () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }$*" -} - -# func_verbose arg... -# Echo program name prefixed message in verbose mode only. -func_verbose () -{ - $opt_verbose && func_echo ${1+"$@"} - - # A bug in bash halts the script if the last line of a function - # fails when set -e is in force, so we need another command to - # work around that: - : -} - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - -# func_error arg... -# Echo program name prefixed message to standard error. -func_error () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 -} - -# func_warning arg... -# Echo program name prefixed warning message to standard error. -func_warning () -{ - $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 - - # bash bug again: - : -} - -# func_fatal_error arg... -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () -{ - func_error ${1+"$@"} - exit $EXIT_FAILURE -} - -# func_fatal_help arg... -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () -{ - func_error ${1+"$@"} - func_fatal_error "$help" -} -help="Try \`$progname --help' for more information." ## default - - -# func_grep expression filename -# Check whether EXPRESSION matches any line of FILENAME, without output. -func_grep () -{ - $GREP "$1" "$2" >/dev/null 2>&1 -} - - -# func_mkdir_p directory-path -# Make sure the entire path to DIRECTORY-PATH is available. -func_mkdir_p () -{ - my_directory_path="$1" - my_dir_list= - - if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then - - # Protect directory names starting with `-' - case $my_directory_path in - -*) my_directory_path="./$my_directory_path" ;; - esac - - # While some portion of DIR does not yet exist... - while test ! -d "$my_directory_path"; do - # ...make a list in topmost first order. Use a colon delimited - # list incase some portion of path contains whitespace. - my_dir_list="$my_directory_path:$my_dir_list" - - # If the last portion added has no slash in it, the list is done - case $my_directory_path in */*) ;; *) break ;; esac - - # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` - done - my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` - - save_mkdir_p_IFS="$IFS"; IFS=':' - for my_dir in $my_dir_list; do - IFS="$save_mkdir_p_IFS" - # mkdir can fail with a `File exist' error if two processes - # try to create one of the directories concurrently. Don't - # stop in that case! - $MKDIR "$my_dir" 2>/dev/null || : - done - IFS="$save_mkdir_p_IFS" - - # Bail out if we (or some other process) failed to create a directory. - test -d "$my_directory_path" || \ - func_fatal_error "Failed to create \`$1'" - fi -} - - -# func_mktempdir [string] -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, STRING is the basename for that directory. -func_mktempdir () -{ - my_template="${TMPDIR-/tmp}/${1-$progname}" - - if test "$opt_dry_run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else - - # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` - - if test ! -d "$my_tmpdir"; then - # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" - - save_mktempdir_umask=`umask` - umask 0077 - $MKDIR "$my_tmpdir" - umask $save_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure - test -d "$my_tmpdir" || \ - func_fatal_error "cannot create temporary directory \`$my_tmpdir'" - fi - - $ECHO "$my_tmpdir" -} - - -# func_quote_for_eval arg -# Aesthetically quote ARG to be evaled later. -# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT -# is double-quoted, suitable for a subsequent eval, whereas -# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters -# which are still active within double quotes backslashified. -func_quote_for_eval () -{ - case $1 in - *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; - *) - func_quote_for_eval_unquoted_result="$1" ;; - esac - - case $func_quote_for_eval_unquoted_result in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and and variable - # expansion for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" - ;; - *) - func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" - esac -} - - -# func_quote_for_expand arg -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () -{ - case $1 in - *[\\\`\"]*) - my_arg=`$ECHO "$1" | $SED \ - -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) - my_arg="$1" ;; - esac - - case $my_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - my_arg="\"$my_arg\"" - ;; - esac - - func_quote_for_expand_result="$my_arg" -} - - -# func_show_eval cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. -func_show_eval () -{ - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - if ${opt_dry_run-false}; then :; else - eval "$my_cmd" - my_status=$? - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} - - -# func_show_eval_locale cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. Use the saved locale for evaluation. -func_show_eval_locale () -{ - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - if ${opt_dry_run-false}; then :; else - eval "$lt_user_locale - $my_cmd" - my_status=$? - eval "$lt_safe_locale" - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} - -# func_tr_sh -# Turn $1 into a string suitable for a shell variable name. -# Result is stored in $func_tr_sh_result. All characters -# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -# if $1 begins with a digit, a '_' is prepended as well. -func_tr_sh () -{ - case $1 in - [0-9]* | *[!a-zA-Z0-9_]*) - func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` - ;; - * ) - func_tr_sh_result=$1 - ;; - esac -} - - -# func_version -# Echo version message to standard output and exit. -func_version () -{ - $opt_debug - - $SED -n '/(C)/!b go - :more - /\./!{ - N - s/\n# / / - b more - } - :go - /^# '$PROGRAM' (GNU /,/# warranty; / { - s/^# // - s/^# *$// - s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ - p - }' < "$progpath" - exit $? -} - -# func_usage -# Echo short help message to standard output and exit. -func_usage () -{ - $opt_debug - - $SED -n '/^# Usage:/,/^# *.*--help/ { - s/^# // - s/^# *$// - s/\$progname/'$progname'/ - p - }' < "$progpath" - echo - $ECHO "run \`$progname --help | more' for full usage" - exit $? -} - -# func_help [NOEXIT] -# Echo long help message to standard output and exit, -# unless 'noexit' is passed as argument. -func_help () -{ - $opt_debug - - $SED -n '/^# Usage:/,/# Report bugs to/ { - :print - s/^# // - s/^# *$// - s*\$progname*'$progname'* - s*\$host*'"$host"'* - s*\$SHELL*'"$SHELL"'* - s*\$LTCC*'"$LTCC"'* - s*\$LTCFLAGS*'"$LTCFLAGS"'* - s*\$LD*'"$LD"'* - s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ - p - d - } - /^# .* home page:/b print - /^# General help using/b print - ' < "$progpath" - ret=$? - if test -z "$1"; then - exit $ret - fi -} - -# func_missing_arg argname -# Echo program name prefixed message to standard error and set global -# exit_cmd. -func_missing_arg () -{ - $opt_debug - - func_error "missing argument for $1." - exit_cmd=exit -} - - -# func_split_short_opt shortopt -# Set func_split_short_opt_name and func_split_short_opt_arg shell -# variables after splitting SHORTOPT after the 2nd character. -func_split_short_opt () -{ - my_sed_short_opt='1s/^\(..\).*$/\1/;q' - my_sed_short_rest='1s/^..\(.*\)$/\1/;q' - - func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` - func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` -} # func_split_short_opt may be replaced by extended shell implementation - - -# func_split_long_opt longopt -# Set func_split_long_opt_name and func_split_long_opt_arg shell -# variables after splitting LONGOPT at the `=' sign. -func_split_long_opt () -{ - my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' - my_sed_long_arg='1s/^--[^=]*=//' - - func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` - func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` -} # func_split_long_opt may be replaced by extended shell implementation - -exit_cmd=: - - - - - -magic="%%%MAGIC variable%%%" -magic_exe="%%%MAGIC EXE variable%%%" - -# Global variables. -nonopt= -preserve_args= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" -extracted_archives= -extracted_serial=0 - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "${1}=\$${1}\${2}" -} # func_append may be replaced by extended shell implementation - -# func_append_quoted var value -# Quote VALUE and append to the end of shell variable VAR, separated -# by a space. -func_append_quoted () -{ - func_quote_for_eval "${2}" - eval "${1}=\$${1}\\ \$func_quote_for_eval_result" -} # func_append_quoted may be replaced by extended shell implementation - - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "${@}"` -} # func_arith may be replaced by extended shell implementation - - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` -} # func_len may be replaced by extended shell implementation - - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` -} # func_lo2o may be replaced by extended shell implementation - - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` -} # func_xform may be replaced by extended shell implementation - - -# func_fatal_configuration arg... -# Echo program name prefixed message to standard error, followed by -# a configuration failure hint, and exit. -func_fatal_configuration () -{ - func_error ${1+"$@"} - func_error "See the $PACKAGE documentation for more information." - func_fatal_error "Fatal configuration error." -} - - -# func_config -# Display the configuration for all the tags in this script. -func_config () -{ - re_begincf='^# ### BEGIN LIBTOOL' - re_endcf='^# ### END LIBTOOL' - - # Default configuration. - $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" - - # Now print the configurations for the tags. - for tagname in $taglist; do - $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" - done - - exit $? -} - -# func_features -# Display the features supported by this script. -func_features () -{ - echo "host: $host" - if test "$build_libtool_libs" = yes; then - echo "enable shared libraries" - else - echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - echo "enable static libraries" - else - echo "disable static libraries" - fi - - exit $? -} - -# func_enable_tag tagname -# Verify that TAGNAME is valid, and either flag an error and exit, or -# enable the TAGNAME tag. We also add TAGNAME to the global $taglist -# variable here. -func_enable_tag () -{ - # Global variable: - tagname="$1" - - re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" - re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" - sed_extractcf="/$re_begincf/,/$re_endcf/p" - - # Validate tagname. - case $tagname in - *[!-_A-Za-z0-9,/]*) - func_fatal_error "invalid tag name: $tagname" - ;; - esac - - # Don't test for the "default" C tag, as we know it's - # there but not specially marked. - case $tagname in - CC) ;; - *) - if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then - taglist="$taglist $tagname" - - # Evaluate the configuration. Be careful to quote the path - # and the sed script, to avoid splitting on whitespace, but - # also don't use non-portable quotes within backquotes within - # quotes we have to do it in 2 steps: - extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` - eval "$extractedcf" - else - func_error "ignoring unknown tag $tagname" - fi - ;; - esac -} - -# func_check_version_match -# Ensure that we are using m4 macros, and libtool script from the same -# release of libtool. -func_check_version_match () -{ - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from an older release. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - fi - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -$progname: but the definition of this LT_INIT comes from revision $macro_revision. -$progname: You should recreate aclocal.m4 with macros from revision $package_revision -$progname: of $PACKAGE $VERSION and run autoconf again. -_LT_EOF - fi - - exit $EXIT_MISMATCH - fi -} - - -# Shorthand for --mode=foo, only valid as the first argument -case $1 in -clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; -compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; -execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; -finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; -install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; -link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; -uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; -esac - - - -# Option defaults: -opt_debug=: -opt_dry_run=false -opt_config=false -opt_preserve_dup_deps=false -opt_features=false -opt_finish=false -opt_help=false -opt_help_all=false -opt_silent=: -opt_verbose=: -opt_silent=false -opt_verbose=false - - -# Parse options once, thoroughly. This comes as soon as possible in the -# script to make things like `--version' happen as quickly as we can. -{ - # this just eases exit handling - while test $# -gt 0; do - opt="$1" - shift - case $opt in - --debug|-x) opt_debug='set -x' - func_echo "enabling shell trace mode" - $opt_debug - ;; - --dry-run|--dryrun|-n) - opt_dry_run=: - ;; - --config) - opt_config=: -func_config - ;; - --dlopen|-dlopen) - optarg="$1" - opt_dlopen="${opt_dlopen+$opt_dlopen -}$optarg" - shift - ;; - --preserve-dup-deps) - opt_preserve_dup_deps=: - ;; - --features) - opt_features=: -func_features - ;; - --finish) - opt_finish=: -set dummy --mode finish ${1+"$@"}; shift - ;; - --help) - opt_help=: - ;; - --help-all) - opt_help_all=: -opt_help=': help-all' - ;; - --mode) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_mode="$optarg" -case $optarg in - # Valid mode arguments: - clean|compile|execute|finish|install|link|relink|uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $opt" - exit_cmd=exit - break - ;; -esac - shift - ;; - --no-silent|--no-quiet) - opt_silent=false -func_append preserve_args " $opt" - ;; - --no-verbose) - opt_verbose=false -func_append preserve_args " $opt" - ;; - --silent|--quiet) - opt_silent=: -func_append preserve_args " $opt" - opt_verbose=false - ;; - --verbose|-v) - opt_verbose=: -func_append preserve_args " $opt" -opt_silent=false - ;; - --tag) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_tag="$optarg" -func_append preserve_args " $opt $optarg" -func_enable_tag "$optarg" - shift - ;; - - -\?|-h) func_usage ;; - --help) func_help ;; - --version) func_version ;; - - # Separate optargs to long options: - --*=*) - func_split_long_opt "$opt" - set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} - shift - ;; - - # Separate non-argument short options: - -\?*|-h*|-n*|-v*) - func_split_short_opt "$opt" - set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - --) break ;; - -*) func_fatal_help "unrecognized option \`$opt'" ;; - *) set dummy "$opt" ${1+"$@"}; shift; break ;; - esac - done - - # Validate options: - - # save first non-option argument - if test "$#" -gt 0; then - nonopt="$opt" - shift - fi - - # preserve --debug - test "$opt_debug" = : || func_append preserve_args " --debug" - - case $host in - *cygwin* | *mingw* | *pw32* | *cegcc*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; - *) - opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - - $opt_help || { - # Sanity checks first: - func_check_version_match - - if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - func_fatal_configuration "not configured to build any kind of library" - fi - - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$opt_dlopen" && test "$opt_mode" != execute; then - func_error "unrecognized option \`-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$opt_mode' for more information." - } - - - # Bail if the options were screwed - $exit_cmd $EXIT_FAILURE -} - - - - -## ----------- ## -## Main. ## -## ----------- ## - -# func_lalib_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_lalib_p () -{ - test -f "$1" && - $SED -e 4q "$1" 2>/dev/null \ - | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 -} - -# func_lalib_unsafe_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. -# This function implements the same check as func_lalib_p without -# resorting to external programs. To this end, it redirects stdin and -# closes it afterwards, without saving the original file descriptor. -# As a safety measure, use it only where a negative result would be -# fatal anyway. Works if `file' does not exist. -func_lalib_unsafe_p () -{ - lalib_p=no - if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then - for lalib_p_l in 1 2 3 4 - do - read lalib_p_line - case "$lalib_p_line" in - \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; - esac - done - exec 0<&5 5<&- - fi - test "$lalib_p" = yes -} - -# func_ltwrapper_script_p file -# True iff FILE is a libtool wrapper script -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_script_p () -{ - func_lalib_p "$1" -} - -# func_ltwrapper_executable_p file -# True iff FILE is a libtool wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_executable_p () -{ - func_ltwrapper_exec_suffix= - case $1 in - *.exe) ;; - *) func_ltwrapper_exec_suffix=.exe ;; - esac - $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 -} - -# func_ltwrapper_scriptname file -# Assumes file is an ltwrapper_executable -# uses $file to determine the appropriate filename for a -# temporary ltwrapper_script. -func_ltwrapper_scriptname () -{ - func_dirname_and_basename "$1" "" "." - func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" -} - -# func_ltwrapper_p file -# True iff FILE is a libtool wrapper script or wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_p () -{ - func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" -} - - -# func_execute_cmds commands fail_cmd -# Execute tilde-delimited COMMANDS. -# If FAIL_CMD is given, eval that upon failure. -# FAIL_CMD may read-access the current command in variable CMD! -func_execute_cmds () -{ - $opt_debug - save_ifs=$IFS; IFS='~' - for cmd in $1; do - IFS=$save_ifs - eval cmd=\"$cmd\" - func_show_eval "$cmd" "${2-:}" - done - IFS=$save_ifs -} - - -# func_source file -# Source FILE, adding directory component if necessary. -# Note that it is not necessary on cygwin/mingw to append a dot to -# FILE even if both FILE and FILE.exe exist: automatic-append-.exe -# behavior happens only for exec(3), not for open(2)! Also, sourcing -# `FILE.' does not work on cygwin managed mounts. -func_source () -{ - $opt_debug - case $1 in - */* | *\\*) . "$1" ;; - *) . "./$1" ;; - esac -} - - -# func_resolve_sysroot PATH -# Replace a leading = in PATH with a sysroot. Store the result into -# func_resolve_sysroot_result -func_resolve_sysroot () -{ - func_resolve_sysroot_result=$1 - case $func_resolve_sysroot_result in - =*) - func_stripname '=' '' "$func_resolve_sysroot_result" - func_resolve_sysroot_result=$lt_sysroot$func_stripname_result - ;; - esac -} - -# func_replace_sysroot PATH -# If PATH begins with the sysroot, replace it with = and -# store the result into func_replace_sysroot_result. -func_replace_sysroot () -{ - case "$lt_sysroot:$1" in - ?*:"$lt_sysroot"*) - func_stripname "$lt_sysroot" '' "$1" - func_replace_sysroot_result="=$func_stripname_result" - ;; - *) - # Including no sysroot. - func_replace_sysroot_result=$1 - ;; - esac -} - -# func_infer_tag arg -# Infer tagged configuration to use if any are available and -# if one wasn't chosen via the "--tag" command line option. -# Only attempt this if the compiler in the base compile -# command doesn't match the default compiler. -# arg is usually of the form 'gcc ...' -func_infer_tag () -{ - $opt_debug - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case $@ in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case "$@ " in - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with \`--tag'" -# else -# func_verbose "using $tagname tagged configuration" - fi - ;; - esac - fi -} - - - -# func_write_libtool_object output_name pic_name nonpic_name -# Create a libtool object file (analogous to a ".la" file), -# but don't create it if we're doing a dry run. -func_write_libtool_object () -{ - write_libobj=${1} - if test "$build_libtool_libs" = yes; then - write_lobj=\'${2}\' - else - write_lobj=none - fi - - if test "$build_old_libs" = yes; then - write_oldobj=\'${3}\' - else - write_oldobj=none - fi - - $opt_dry_run || { - cat >${write_libobj}T </dev/null` - if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then - func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | - $SED -e "$lt_sed_naive_backslashify"` - else - func_convert_core_file_wine_to_w32_result= - fi - fi -} -# end: func_convert_core_file_wine_to_w32 - - -# func_convert_core_path_wine_to_w32 ARG -# Helper function used by path conversion functions when $build is *nix, and -# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly -# configured wine environment available, with the winepath program in $build's -# $PATH. Assumes ARG has no leading or trailing path separator characters. -# -# ARG is path to be converted from $build format to win32. -# Result is available in $func_convert_core_path_wine_to_w32_result. -# Unconvertible file (directory) names in ARG are skipped; if no directory names -# are convertible, then the result may be empty. -func_convert_core_path_wine_to_w32 () -{ - $opt_debug - # unfortunately, winepath doesn't convert paths, only file names - func_convert_core_path_wine_to_w32_result="" - if test -n "$1"; then - oldIFS=$IFS - IFS=: - for func_convert_core_path_wine_to_w32_f in $1; do - IFS=$oldIFS - func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" - if test -n "$func_convert_core_file_wine_to_w32_result" ; then - if test -z "$func_convert_core_path_wine_to_w32_result"; then - func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" - else - func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" - fi - fi - done - IFS=$oldIFS - fi -} -# end: func_convert_core_path_wine_to_w32 - - -# func_cygpath ARGS... -# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when -# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) -# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or -# (2), returns the Cygwin file name or path in func_cygpath_result (input -# file name or path is assumed to be in w32 format, as previously converted -# from $build's *nix or MSYS format). In case (3), returns the w32 file name -# or path in func_cygpath_result (input file name or path is assumed to be in -# Cygwin format). Returns an empty string on error. -# -# ARGS are passed to cygpath, with the last one being the file name or path to -# be converted. -# -# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH -# environment variable; do not put it in $PATH. -func_cygpath () -{ - $opt_debug - if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then - func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` - if test "$?" -ne 0; then - # on failure, ensure result is empty - func_cygpath_result= - fi - else - func_cygpath_result= - func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" - fi -} -#end: func_cygpath - - -# func_convert_core_msys_to_w32 ARG -# Convert file name or path ARG from MSYS format to w32 format. Return -# result in func_convert_core_msys_to_w32_result. -func_convert_core_msys_to_w32 () -{ - $opt_debug - # awkward: cmd appends spaces to result - func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | - $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -} -#end: func_convert_core_msys_to_w32 - - -# func_convert_file_check ARG1 ARG2 -# Verify that ARG1 (a file name in $build format) was converted to $host -# format in ARG2. Otherwise, emit an error message, but continue (resetting -# func_to_host_file_result to ARG1). -func_convert_file_check () -{ - $opt_debug - if test -z "$2" && test -n "$1" ; then - func_error "Could not determine host file name corresponding to" - func_error " \`$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback: - func_to_host_file_result="$1" - fi -} -# end func_convert_file_check - - -# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH -# Verify that FROM_PATH (a path in $build format) was converted to $host -# format in TO_PATH. Otherwise, emit an error message, but continue, resetting -# func_to_host_file_result to a simplistic fallback value (see below). -func_convert_path_check () -{ - $opt_debug - if test -z "$4" && test -n "$3"; then - func_error "Could not determine the host path corresponding to" - func_error " \`$3'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback. This is a deliberately simplistic "conversion" and - # should not be "improved". See libtool.info. - if test "x$1" != "x$2"; then - lt_replace_pathsep_chars="s|$1|$2|g" - func_to_host_path_result=`echo "$3" | - $SED -e "$lt_replace_pathsep_chars"` - else - func_to_host_path_result="$3" - fi - fi -} -# end func_convert_path_check - - -# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG -# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT -# and appending REPL if ORIG matches BACKPAT. -func_convert_path_front_back_pathsep () -{ - $opt_debug - case $4 in - $1 ) func_to_host_path_result="$3$func_to_host_path_result" - ;; - esac - case $4 in - $2 ) func_append func_to_host_path_result "$3" - ;; - esac -} -# end func_convert_path_front_back_pathsep - - -################################################## -# $build to $host FILE NAME CONVERSION FUNCTIONS # -################################################## -# invoked via `$to_host_file_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# Result will be available in $func_to_host_file_result. - - -# func_to_host_file ARG -# Converts the file name ARG from $build format to $host format. Return result -# in func_to_host_file_result. -func_to_host_file () -{ - $opt_debug - $to_host_file_cmd "$1" -} -# end func_to_host_file - - -# func_to_tool_file ARG LAZY -# converts the file name ARG from $build format to toolchain format. Return -# result in func_to_tool_file_result. If the conversion in use is listed -# in (the comma separated) LAZY, no conversion takes place. -func_to_tool_file () -{ - $opt_debug - case ,$2, in - *,"$to_tool_file_cmd",*) - func_to_tool_file_result=$1 - ;; - *) - $to_tool_file_cmd "$1" - func_to_tool_file_result=$func_to_host_file_result - ;; - esac -} -# end func_to_tool_file - - -# func_convert_file_noop ARG -# Copy ARG to func_to_host_file_result. -func_convert_file_noop () -{ - func_to_host_file_result="$1" -} -# end func_convert_file_noop - - -# func_convert_file_msys_to_w32 ARG -# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_file_result. -func_convert_file_msys_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_to_host_file_result="$func_convert_core_msys_to_w32_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_w32 - - -# func_convert_file_cygwin_to_w32 ARG -# Convert file name ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_file_cygwin_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - # because $build is cygwin, we call "the" cygpath in $PATH; no need to use - # LT_CYGPATH in this case. - func_to_host_file_result=`cygpath -m "$1"` - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_cygwin_to_w32 - - -# func_convert_file_nix_to_w32 ARG -# Convert file name ARG from *nix to w32 format. Requires a wine environment -# and a working winepath. Returns result in func_to_host_file_result. -func_convert_file_nix_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_file_wine_to_w32 "$1" - func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_w32 - - -# func_convert_file_msys_to_cygwin ARG -# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_file_msys_to_cygwin () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_cygpath -u "$func_convert_core_msys_to_w32_result" - func_to_host_file_result="$func_cygpath_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_cygwin - - -# func_convert_file_nix_to_cygwin ARG -# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed -# in a wine environment, working winepath, and LT_CYGPATH set. Returns result -# in func_to_host_file_result. -func_convert_file_nix_to_cygwin () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. - func_convert_core_file_wine_to_w32 "$1" - func_cygpath -u "$func_convert_core_file_wine_to_w32_result" - func_to_host_file_result="$func_cygpath_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_cygwin - - -############################################# -# $build to $host PATH CONVERSION FUNCTIONS # -############################################# -# invoked via `$to_host_path_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# The result will be available in $func_to_host_path_result. -# -# Path separators are also converted from $build format to $host format. If -# ARG begins or ends with a path separator character, it is preserved (but -# converted to $host format) on output. -# -# All path conversion functions are named using the following convention: -# file name conversion function : func_convert_file_X_to_Y () -# path conversion function : func_convert_path_X_to_Y () -# where, for any given $build/$host combination the 'X_to_Y' value is the -# same. If conversion functions are added for new $build/$host combinations, -# the two new functions must follow this pattern, or func_init_to_host_path_cmd -# will break. - - -# func_init_to_host_path_cmd -# Ensures that function "pointer" variable $to_host_path_cmd is set to the -# appropriate value, based on the value of $to_host_file_cmd. -to_host_path_cmd= -func_init_to_host_path_cmd () -{ - $opt_debug - if test -z "$to_host_path_cmd"; then - func_stripname 'func_convert_file_' '' "$to_host_file_cmd" - to_host_path_cmd="func_convert_path_${func_stripname_result}" - fi -} - - -# func_to_host_path ARG -# Converts the path ARG from $build format to $host format. Return result -# in func_to_host_path_result. -func_to_host_path () -{ - $opt_debug - func_init_to_host_path_cmd - $to_host_path_cmd "$1" -} -# end func_to_host_path - - -# func_convert_path_noop ARG -# Copy ARG to func_to_host_path_result. -func_convert_path_noop () -{ - func_to_host_path_result="$1" -} -# end func_convert_path_noop - - -# func_convert_path_msys_to_w32 ARG -# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_path_result. -func_convert_path_msys_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # Remove leading and trailing path separator characters from ARG. MSYS - # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; - # and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_msys_to_w32_result" - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_msys_to_w32 - - -# func_convert_path_cygwin_to_w32 ARG -# Convert path ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_path_cygwin_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_cygwin_to_w32 - - -# func_convert_path_nix_to_w32 ARG -# Convert path ARG from *nix to w32 format. Requires a wine environment and -# a working winepath. Returns result in func_to_host_file_result. -func_convert_path_nix_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_nix_to_w32 - - -# func_convert_path_msys_to_cygwin ARG -# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_path_msys_to_cygwin () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_msys_to_w32_result" - func_to_host_path_result="$func_cygpath_result" - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_msys_to_cygwin - - -# func_convert_path_nix_to_cygwin ARG -# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a -# a wine environment, working winepath, and LT_CYGPATH set. Returns result in -# func_to_host_file_result. -func_convert_path_nix_to_cygwin () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # Remove leading and trailing path separator characters from - # ARG. msys behavior is inconsistent here, cygpath turns them - # into '.;' and ';.', and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" - func_to_host_path_result="$func_cygpath_result" - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_nix_to_cygwin - - -# func_mode_compile arg... -func_mode_compile () -{ - $opt_debug - # Get the compilation command and the source file. - base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" - suppress_opt=yes - suppress_output= - arg_mode=normal - libobj= - later= - pie_flag= - - for arg - do - case $arg_mode in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg="$arg" - arg_mode=normal - ;; - - target ) - libobj="$arg" - arg_mode=normal - continue - ;; - - normal ) - # Accept any command-line options. - case $arg in - -o) - test -n "$libobj" && \ - func_fatal_error "you cannot specify \`-o' more than once" - arg_mode=target - continue - ;; - - -pie | -fpie | -fPIE) - func_append pie_flag " $arg" - continue - ;; - - -shared | -static | -prefer-pic | -prefer-non-pic) - func_append later " $arg" - continue - ;; - - -no-suppress) - suppress_opt=no - continue - ;; - - -Xcompiler) - arg_mode=arg # the next one goes into the "base_compile" arg list - continue # The current "srcfile" will either be retained or - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - lastarg= - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" - func_append_quoted lastarg "$arg" - done - IFS="$save_ifs" - func_stripname ' ' '' "$lastarg" - lastarg=$func_stripname_result - - # Add the arguments to base_compile. - func_append base_compile " $lastarg" - continue - ;; - - *) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # - lastarg="$srcfile" - srcfile="$arg" - ;; - esac # case $arg - ;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - func_append_quoted base_compile "$lastarg" - done # for arg - - case $arg_mode in - arg) - func_fatal_error "you must specify an argument for -Xcompile" - ;; - target) - func_fatal_error "you must specify a target with \`-o'" - ;; - *) - # Get the name of the library object. - test -z "$libobj" && { - func_basename "$srcfile" - libobj="$func_basename_result" - } - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - case $libobj in - *.[cCFSifmso] | \ - *.ada | *.adb | *.ads | *.asm | \ - *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) - func_xform "$libobj" - libobj=$func_xform_result - ;; - esac - - case $libobj in - *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; - *) - func_fatal_error "cannot determine name of library object from \`$libobj'" - ;; - esac - - func_infer_tag $base_compile - - for arg in $later; do - case $arg in - -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" - build_old_libs=no - continue - ;; - - -static) - build_libtool_libs=no - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - esac - done - - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ - && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && func_warning "libobj name \`$libobj' may not contain shell special characters." - func_dirname_and_basename "$obj" "/" "" - objname="$func_basename_result" - xdir="$func_dirname_result" - lobj=${xdir}$objdir/$objname - - test -z "$base_compile" && \ - func_fatal_help "you must specify a compilation command" - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2* | cegcc*) - pic_mode=default - ;; - esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then - # non-PIC code in shared libraries is not supported - pic_mode=default - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" - else - output_obj= - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then - $ECHO "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - func_append removelist " $output_obj" - $ECHO "$srcfile" > "$lockfile" - fi - - $opt_dry_run || $RM $removelist - func_append removelist " $lockfile" - trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - - func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 - srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result - - # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - if test "$pic_mode" != no; then - command="$base_compile $qsrcfile $pic_flag" - else - # Don't build PIC code - command="$base_compile $qsrcfile" - fi - - func_mkdir_p "$xdir$objdir" - - if test -z "$output_obj"; then - # Place PIC objects in $objdir - func_append command " -o $lobj" - fi - - func_show_eval_locale "$command" \ - 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then - func_show_eval '$MV "$output_obj" "$lobj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - - # Allow error messages only from the first compilation. - if test "$suppress_opt" = yes; then - suppress_output=' >/dev/null 2>&1' - fi - fi - - # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then - # Don't build PIC code - command="$base_compile $qsrcfile$pie_flag" - else - command="$base_compile $qsrcfile $pic_flag" - fi - if test "$compiler_c_o" = yes; then - func_append command " -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. - func_append command "$suppress_output" - func_show_eval_locale "$command" \ - '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then - func_show_eval '$MV "$output_obj" "$obj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - fi - - $opt_dry_run || { - func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" - - # Unlock the critical section if it was locked - if test "$need_locks" != no; then - removelist=$lockfile - $RM "$lockfile" - fi - } - - exit $EXIT_SUCCESS -} - -$opt_help || { - test "$opt_mode" = compile && func_mode_compile ${1+"$@"} -} - -func_mode_help () -{ - # We need to display help for each of the modes. - case $opt_mode in - "") - # Generic help is extracted from the usage comments - # at the start of this file. - func_help - ;; - - clean) - $ECHO \ -"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - - compile) - $ECHO \ -"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -no-suppress do not suppress compiler output for multiple passes - -prefer-pic try to build PIC objects only - -prefer-non-pic try to build non-PIC objects only - -shared do not build a \`.o' file suitable for static linking - -static only build a \`.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler - -COMPILE-COMMAND is a command to be used in creating a \`standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - - execute) - $ECHO \ -"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to \`-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - - finish) - $ECHO \ -"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." - ;; - - install) - $ECHO \ -"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. - -The following components of INSTALL-COMMAND are treated specially: - - -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - - link) - $ECHO \ -"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -bindir BINDIR specify path to binaries directory (for systems where - libraries must be found in the PATH setting at runtime) - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects - -precious-files-regex REGEX - don't remove output files matching REGEX - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -shared only do dynamic linking of libtool libraries - -shrext SUFFIX override the standard shared library file extension - -static do not do any dynamic linking of uninstalled libtool libraries - -static-libtool-libs - do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -weak LIBNAME declare that the target provides the LIBNAME interface - -Wc,FLAG - -Xcompiler FLAG pass linker-specific FLAG directly to the compiler - -Wl,FLAG - -Xlinker FLAG pass linker-specific FLAG directly to the linker - -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. - -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -is created, otherwise an executable program is created." - ;; - - uninstall) - $ECHO \ -"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - - *) - func_fatal_help "invalid operation mode \`$opt_mode'" - ;; - esac - - echo - $ECHO "Try \`$progname --help' for more information about other modes." -} - -# Now that we've collected a possible --mode arg, show help if necessary -if $opt_help; then - if test "$opt_help" = :; then - func_mode_help - else - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - func_mode_help - done - } | sed -n '1p; 2,$s/^Usage:/ or: /p' - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - echo - func_mode_help - done - } | - sed '1d - /^When reporting/,/^Report/{ - H - d - } - $x - /information about other modes/d - /more detailed .*MODE/d - s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' - fi - exit $? -fi - - -# func_mode_execute arg... -func_mode_execute () -{ - $opt_debug - # The first argument is the command name. - cmd="$nonopt" - test -z "$cmd" && \ - func_fatal_help "you must specify a COMMAND" - - # Handle -dlopen flags immediately. - for file in $opt_dlopen; do - test -f "$file" \ - || func_fatal_help "\`$file' is not a file" - - dir= - case $file in - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$lib' is not a valid libtool archive" - - # Read the libtool library. - dlname= - library_names= - func_source "$file" - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && \ - func_warning "\`$file' was not linked with \`-export-dynamic'" - continue - fi - - func_dirname "$file" "" "." - dir="$func_dirname_result" - - if test -f "$dir/$objdir/$dlname"; then - func_append dir "/$objdir" - else - if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" - fi - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - func_dirname "$file" "" "." - dir="$func_dirname_result" - ;; - - *) - func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic="$magic" - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -* | *.la | *.lo ) ;; - *) - # Do a test to see if this is really a libtool program. - if func_ltwrapper_script_p "$file"; then - func_source "$file" - # Transform arg to wrapped name. - file="$progdir/$program" - elif func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - func_source "$func_ltwrapper_scriptname_result" - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - func_append_quoted args "$file" - done - - if test "X$opt_dry_run" = Xfalse; then - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES - do - eval "if test \"\${save_$lt_var+set}\" = set; then - $lt_var=\$save_$lt_var; export $lt_var - else - $lt_unset $lt_var - fi" - done - - # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - echo "export $shlibpath_var" - fi - $ECHO "$cmd$args" - exit $EXIT_SUCCESS - fi -} - -test "$opt_mode" = execute && func_mode_execute ${1+"$@"} - - -# func_mode_finish arg... -func_mode_finish () -{ - $opt_debug - libs= - libdirs= - admincmds= - - for opt in "$nonopt" ${1+"$@"} - do - if test -d "$opt"; then - func_append libdirs " $opt" - - elif test -f "$opt"; then - if func_lalib_unsafe_p "$opt"; then - func_append libs " $opt" - else - func_warning "\`$opt' is not a valid libtool archive" - fi - - else - func_fatal_error "invalid argument \`$opt'" - fi - done - - if test -n "$libs"; then - if test -n "$lt_sysroot"; then - sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` - sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" - else - sysroot_cmd= - fi - - # Remove sysroot references - if $opt_dry_run; then - for lib in $libs; do - echo "removing references to $lt_sysroot and \`=' prefixes from $lib" - done - else - tmpdir=`func_mktempdir` - for lib in $libs; do - sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ - > $tmpdir/tmp-la - mv -f $tmpdir/tmp-la $lib - done - ${RM}r "$tmpdir" - fi - fi - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - func_execute_cmds "$finish_cmds" 'admincmds="$admincmds -'"$cmd"'"' - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $opt_dry_run || eval "$cmds" || func_append admincmds " - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - $opt_silent && exit $EXIT_SUCCESS - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - echo "----------------------------------------------------------------------" - echo "Libraries have been installed in:" - for libdir in $libdirs; do - $ECHO " $libdir" - done - echo - echo "If you ever happen to want to link against installed libraries" - echo "in a given directory, LIBDIR, you must either use libtool, and" - echo "specify the full pathname of the library, or use the \`-LLIBDIR'" - echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the \`$shlibpath_var' environment variable" - echo " during execution" - fi - if test -n "$runpath_var"; then - echo " - add LIBDIR to the \`$runpath_var' environment variable" - echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - $ECHO " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $ECHO " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - echo - - echo "See any operating system documentation about shared libraries for" - case $host in - solaris2.[6789]|solaris2.1[0-9]) - echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" - echo "pages." - ;; - *) - echo "more information, such as the ld(1) and ld.so(8) manual pages." - ;; - esac - echo "----------------------------------------------------------------------" - fi - exit $EXIT_SUCCESS -} - -test "$opt_mode" = finish && func_mode_finish ${1+"$@"} - - -# func_mode_install arg... -func_mode_install () -{ - $opt_debug - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - case $nonopt in *shtool*) :;; *) false;; esac; then - # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " - arg=$1 - shift - else - install_prog= - arg=$nonopt - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" - install_shared_prog=$install_prog - case " $install_prog " in - *[\\\ /]cp\ *) install_cp=: ;; - *) install_cp=false ;; - esac - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - no_mode=: - for arg - do - arg2= - if test -n "$dest"; then - func_append files " $dest" - dest=$arg - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) - if $install_cp; then :; else - prev=$arg - fi - ;; - -g | -m | -o) - prev=$arg - ;; - -s) - stripme=" -s" - continue - ;; - -*) - ;; - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - if test "x$prev" = x-m && test -n "$install_override_mode"; then - arg2=$install_override_mode - no_mode=false - fi - prev= - else - dest=$arg - continue - fi - ;; - esac - - # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" - if test -n "$arg2"; then - func_quote_for_eval "$arg2" - fi - func_append install_shared_prog " $func_quote_for_eval_result" - done - - test -z "$install_prog" && \ - func_fatal_help "you must specify an install program" - - test -n "$prev" && \ - func_fatal_help "the \`$prev' option requires an argument" - - if test -n "$install_override_mode" && $no_mode; then - if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" - fi - fi - - if test -z "$files"; then - if test -z "$dest"; then - func_fatal_help "no file or destination specified" - else - func_fatal_help "you must specify a destination" - fi - fi - - # Strip any trailing slash from the destination. - func_stripname '' '/' "$dest" - dest=$func_stripname_result - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - func_dirname_and_basename "$dest" "" "." - destdir="$func_dirname_result" - destname="$func_basename_result" - - # Not a directory, so check to see that there is only one file specified. - set dummy $files; shift - test "$#" -gt 1 && \ - func_fatal_help "\`$dest' is not a directory" - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - func_fatal_help "\`$destdir' must be an absolute directory name" - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - func_append staticlibs " $file" - ;; - - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$file' is not a valid libtool archive" - - library_names= - old_library= - relink_command= - func_source "$file" - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) func_append current_libdirs " $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) func_append future_libdirs " $libdir" ;; - esac - fi - - func_dirname "$file" "/" "" - dir="$func_dirname_result" - func_append dir "$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` - else - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` - fi - - func_warning "relinking \`$file'" - func_show_eval "$relink_command" \ - 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' - fi - - # See the names of the shared library. - set dummy $library_names; shift - if test -n "$1"; then - realname="$1" - shift - - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T - - # Install the shared library and build the symlinks. - func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ - 'exit $?' - tstripme="$stripme" - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - case $realname in - *.dll.a) - tstripme="" - ;; - esac - ;; - esac - if test -n "$tstripme" && test -n "$striplib"; then - func_show_eval "$striplib $destdir/$realname" 'exit $?' - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - # Try `ln -sf' first, because the `ln' binary might depend on - # the symlink we replace! Solaris /bin/ln does not understand -f, - # so we also need to try rm && ln -s. - for linkname - do - test "$linkname" != "$realname" \ - && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - func_execute_cmds "$postinstall_cmds" 'exit $?' - fi - - # Install the pseudo-library for information purposes. - func_basename "$file" - name="$func_basename_result" - instname="$dir/$name"i - func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - - # Maybe install the static library, too. - test -n "$old_library" && func_append staticlibs " $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - func_lo2o "$destfile" - staticdest=$func_lo2o_result - ;; - *.$objext) - staticdest="$destfile" - destfile= - ;; - *) - func_fatal_help "cannot copy a libtool object to \`$destfile'" - ;; - esac - - # Install the libtool object if requested. - test -n "$destfile" && \ - func_show_eval "$install_prog $file $destfile" 'exit $?' - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - func_lo2o "$file" - staticobj=$func_lo2o_result - func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' - fi - exit $EXIT_SUCCESS - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" - fi - - # If the file is missing, and there is a .exe on the end, strip it - # because it is most likely a libtool script we actually want to - # install - stripped_ext="" - case $file in - *.exe) - if test ! -f "$file"; then - func_stripname '' '.exe' "$file" - file=$func_stripname_result - stripped_ext=".exe" - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin* | *mingw*) - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - wrapper=$func_ltwrapper_scriptname_result - else - func_stripname '' '.exe' "$file" - wrapper=$func_stripname_result - fi - ;; - *) - wrapper=$file - ;; - esac - if func_ltwrapper_script_p "$wrapper"; then - notinst_deplibs= - relink_command= - - func_source "$wrapper" - - # Check the variables that should have been set. - test -z "$generated_by_libtool_version" && \ - func_fatal_error "invalid libtool wrapper script \`$wrapper'" - - finalize=yes - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - func_source "$lib" - fi - libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - func_warning "\`$lib' has not been installed in \`$libdir'" - finalize=no - fi - done - - relink_command= - func_source "$wrapper" - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - $opt_dry_run || { - if test "$finalize" = yes; then - tmpdir=`func_mktempdir` - func_basename "$file$stripped_ext" - file="$func_basename_result" - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` - - $opt_silent || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" - } - if eval "$relink_command"; then : - else - func_error "error: relink \`$file' with the above command before installing it" - $opt_dry_run || ${RM}r "$tmpdir" - continue - fi - file="$outputname" - else - func_warning "cannot relink \`$file'" - fi - } - else - # Install the binary that we compiled earlier. - file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyway - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - func_stripname '' '.exe' "$destfile" - destfile=$func_stripname_result - ;; - esac - ;; - esac - func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' - $opt_dry_run || if test -n "$outputname"; then - ${RM}r "$tmpdir" - fi - ;; - esac - done - - for file in $staticlibs; do - func_basename "$file" - name="$func_basename_result" - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - - func_show_eval "$install_prog \$file \$oldlib" 'exit $?' - - if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $oldlib" 'exit $?' - fi - - # Do each command in the postinstall commands. - func_execute_cmds "$old_postinstall_cmds" 'exit $?' - done - - test -n "$future_libdirs" && \ - func_warning "remember to run \`$progname --finish$future_libdirs'" - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' - else - exit $EXIT_SUCCESS - fi -} - -test "$opt_mode" = install && func_mode_install ${1+"$@"} - - -# func_generate_dlsyms outputname originator pic_p -# Extract symbols from dlprefiles and create ${outputname}S.o with -# a dlpreopen symbol table. -func_generate_dlsyms () -{ - $opt_debug - my_outputname="$1" - my_originator="$2" - my_pic_p="${3-no}" - my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` - my_dlsyms= - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - my_dlsyms="${my_outputname}S.c" - else - func_error "not configured to extract global symbols from dlpreopened files" - fi - fi - - if test -n "$my_dlsyms"; then - case $my_dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${my_outputname}.nm" - - func_show_eval "$RM $nlist ${nlist}S ${nlist}T" - - # Parse the name list into a source file. - func_verbose "creating $output_objdir/$my_dlsyms" - - $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ -/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) -#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" -#endif - -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; then - func_verbose "generating symbol list for \`$output'" - - $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` - for progfile in $progfiles; do - func_to_tool_file "$progfile" func_convert_file_msys_to_w32 - func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" - $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $opt_dry_run || { - eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - if test -n "$export_symbols_regex"; then - $opt_dry_run || { - eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols="$output_objdir/$outputname.exp" - $opt_dry_run || { - $RM $export_symbols - eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - } - else - $opt_dry_run || { - eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' - eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - } - fi - fi - - for dlprefile in $dlprefiles; do - func_verbose "extracting global C symbols from \`$dlprefile'" - func_basename "$dlprefile" - name="$func_basename_result" - case $host in - *cygwin* | *mingw* | *cegcc* ) - # if an import library, we need to obtain dlname - if func_win32_import_lib_p "$dlprefile"; then - func_tr_sh "$dlprefile" - eval "curr_lafile=\$libfile_$func_tr_sh_result" - dlprefile_dlbasename="" - if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then - # Use subshell, to avoid clobbering current variable values - dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` - if test -n "$dlprefile_dlname" ; then - func_basename "$dlprefile_dlname" - dlprefile_dlbasename="$func_basename_result" - else - # no lafile. user explicitly requested -dlpreopen . - $sharedlib_from_linklib_cmd "$dlprefile" - dlprefile_dlbasename=$sharedlib_from_linklib_result - fi - fi - $opt_dry_run || { - if test -n "$dlprefile_dlbasename" ; then - eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' - else - func_warning "Could not compute DLL name from $name" - eval '$ECHO ": $name " >> "$nlist"' - fi - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | - $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" - } - else # not an import lib - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - fi - ;; - *) - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - ;; - esac - done - - $opt_dry_run || { - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $MV "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if $GREP -v "^: " < "$nlist" | - if sort -k 3 /dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - $GREP -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' - else - echo '/* NONE */' >> "$output_objdir/$my_dlsyms" - fi - - echo >> "$output_objdir/$my_dlsyms" "\ - -/* The mapping between symbol names and symbols. */ -typedef struct { - const char *name; - void *address; -} lt_dlsymlist; -extern LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[]; -LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[] = -{\ - { \"$my_originator\", (void *) 0 }," - - case $need_lib_prefix in - no) - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - *) - eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - esac - echo >> "$output_objdir/$my_dlsyms" "\ - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_${my_prefix}_LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - } # !$opt_dry_run - - pic_flag_for_symtable= - case "$compile_command " in - *" -static "*) ;; - *) - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; - *-*-hpux*) - pic_flag_for_symtable=" $pic_flag" ;; - *) - if test "X$my_pic_p" != Xno; then - pic_flag_for_symtable=" $pic_flag" - fi - ;; - esac - ;; - esac - symtab_cflags= - for arg in $LTCFLAGS; do - case $arg in - -pie | -fpie | -fPIE) ;; - *) func_append symtab_cflags " $arg" ;; - esac - done - - # Now compile the dynamic symbol file. - func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' - - # Clean up the generated files. - func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' - - # Transform the symbol file into the correct name. - symfileobj="$output_objdir/${my_outputname}S.$objext" - case $host in - *cygwin* | *mingw* | *cegcc* ) - if test -f "$output_objdir/$my_outputname.def"; then - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - else - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - fi - ;; - *) - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - ;; - esac - ;; - *) - func_fatal_error "unknown suffix for \`$my_dlsyms'" - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` - fi -} - -# func_win32_libid arg -# return the library type of file 'arg' -# -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -# Despite the name, also deal with 64 bit binaries. -func_win32_libid () -{ - $opt_debug - win32_libid_type="unknown" - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then - func_to_tool_file "$1" func_convert_file_msys_to_w32 - win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' - 1,100{ - / I /{ - s,.*,import, - p - q - } - }'` - case $win32_nmres in - import*) win32_libid_type="x86 archive import";; - *) win32_libid_type="x86 archive static";; - esac - fi - ;; - *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type="x86 DLL" - ;; - esac - ;; - esac - $ECHO "$win32_libid_type" -} - -# func_cygming_dll_for_implib ARG -# -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib () -{ - $opt_debug - sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` -} - -# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs -# -# The is the core of a fallback implementation of a -# platform-specific function to extract the name of the -# DLL associated with the specified import library LIBNAME. -# -# SECTION_NAME is either .idata$6 or .idata$7, depending -# on the platform and compiler that created the implib. -# -# Echos the name of the DLL associated with the -# specified import library. -func_cygming_dll_for_implib_fallback_core () -{ - $opt_debug - match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` - $OBJDUMP -s --section "$1" "$2" 2>/dev/null | - $SED '/^Contents of section '"$match_literal"':/{ - # Place marker at beginning of archive member dllname section - s/.*/====MARK====/ - p - d - } - # These lines can sometimes be longer than 43 characters, but - # are always uninteresting - /:[ ]*file format pe[i]\{,1\}-/d - /^In archive [^:]*:/d - # Ensure marker is printed - /^====MARK====/p - # Remove all lines with less than 43 characters - /^.\{43\}/!d - # From remaining lines, remove first 43 characters - s/^.\{43\}//' | - $SED -n ' - # Join marker and all lines until next marker into a single line - /^====MARK====/ b para - H - $ b para - b - :para - x - s/\n//g - # Remove the marker - s/^====MARK====// - # Remove trailing dots and whitespace - s/[\. \t]*$// - # Print - /./p' | - # we now have a list, one entry per line, of the stringified - # contents of the appropriate section of all members of the - # archive which possess that section. Heuristic: eliminate - # all those which have a first or second character that is - # a '.' (that is, objdump's representation of an unprintable - # character.) This should work for all archives with less than - # 0x302f exports -- but will fail for DLLs whose name actually - # begins with a literal '.' or a single character followed by - # a '.'. - # - # Of those that remain, print the first one. - $SED -e '/^\./d;/^.\./d;q' -} - -# func_cygming_gnu_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is a GNU/binutils-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_gnu_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` - test -n "$func_cygming_gnu_implib_tmp" -} - -# func_cygming_ms_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is an MS-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_ms_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` - test -n "$func_cygming_ms_implib_tmp" -} - -# func_cygming_dll_for_implib_fallback ARG -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# -# This fallback implementation is for use when $DLLTOOL -# does not support the --identify-strict option. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib_fallback () -{ - $opt_debug - if func_cygming_gnu_implib_p "$1" ; then - # binutils import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` - elif func_cygming_ms_implib_p "$1" ; then - # ms-generated import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` - else - # unknown - sharedlib_from_linklib_result="" - fi -} - - -# func_extract_an_archive dir oldlib -func_extract_an_archive () -{ - $opt_debug - f_ex_an_ar_dir="$1"; shift - f_ex_an_ar_oldlib="$1" - if test "$lock_old_archive_extraction" = yes; then - lockfile=$f_ex_an_ar_oldlib.lock - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - fi - func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ - 'stat=$?; rm -f "$lockfile"; exit $stat' - if test "$lock_old_archive_extraction" = yes; then - $opt_dry_run || rm -f "$lockfile" - fi - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then - : - else - func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" - fi -} - - -# func_extract_archives gentop oldlib ... -func_extract_archives () -{ - $opt_debug - my_gentop="$1"; shift - my_oldlibs=${1+"$@"} - my_oldobjs="" - my_xlib="" - my_xabs="" - my_xdir="" - - for my_xlib in $my_oldlibs; do - # Extract the objects. - case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; - *) my_xabs=`pwd`"/$my_xlib" ;; - esac - func_basename "$my_xlib" - my_xlib="$func_basename_result" - my_xlib_u=$my_xlib - while :; do - case " $extracted_archives " in - *" $my_xlib_u "*) - func_arith $extracted_serial + 1 - extracted_serial=$func_arith_result - my_xlib_u=lt$extracted_serial-$my_xlib ;; - *) break ;; - esac - done - extracted_archives="$extracted_archives $my_xlib_u" - my_xdir="$my_gentop/$my_xlib_u" - - func_mkdir_p "$my_xdir" - - case $host in - *-darwin*) - func_verbose "Extracting $my_xabs" - # Do not bother doing anything if just a dry run - $opt_dry_run || { - darwin_orig_dir=`pwd` - cd $my_xdir || exit $? - darwin_archive=$my_xabs - darwin_curdir=`pwd` - darwin_base_archive=`basename "$darwin_archive"` - darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` - if test -n "$darwin_arches"; then - darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` - darwin_arch= - func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches ; do - func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" - $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" - cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" - func_extract_an_archive "`pwd`" "${darwin_base_archive}" - cd "$darwin_curdir" - $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" - done # $darwin_arches - ## Okay now we've a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` - $LIPO -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - $RM -rf unfat-$$ - cd "$darwin_orig_dir" - else - cd $darwin_orig_dir - func_extract_an_archive "$my_xdir" "$my_xabs" - fi # $darwin_arches - } # !$opt_dry_run - ;; - *) - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` - done - - func_extract_archives_result="$my_oldobjs" -} - - -# func_emit_wrapper [arg=no] -# -# Emit a libtool wrapper script on stdout. -# Don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variables -# set therein. -# -# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is -# the $objdir directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () -{ - func_emit_wrapper_arg1=${1-no} - - $ECHO "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='$sed_quote_subst' - -# Be Bourne compatible -if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variables: - generated_by_libtool_version='$macro_version' - notinst_deplibs='$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$ECHO are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - file=\"\$0\"" - - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` - $ECHO "\ - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - ECHO=\"$qECHO\" - fi - -# Very basic option parsing. These options are (a) specific to -# the libtool wrapper, (b) are identical between the wrapper -# /script/ and the wrapper /executable/ which is used only on -# windows platforms, and (c) all begin with the string "--lt-" -# (application programs are unlikely to have options which match -# this pattern). -# -# There are only two supported options: --lt-debug and -# --lt-dump-script. There is, deliberately, no --lt-help. -# -# The first argument to this parsing function should be the -# script's $0 value, followed by "$@". -lt_option_debug= -func_parse_lt_options () -{ - lt_script_arg0=\$0 - shift - for lt_opt - do - case \"\$lt_opt\" in - --lt-debug) lt_option_debug=1 ;; - --lt-dump-script) - lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` - test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. - lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` - cat \"\$lt_dump_D/\$lt_dump_F\" - exit 0 - ;; - --lt-*) - \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 - exit 1 - ;; - esac - done - - # Print the debug banner immediately: - if test -n \"\$lt_option_debug\"; then - echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 - fi -} - -# Used when --lt-debug. Prints its arguments to stdout -# (redirection is the responsibility of the caller) -func_lt_dump_args () -{ - lt_dump_args_N=1; - for lt_arg - do - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" - lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` - done -} - -# Core function for launching the target application -func_exec_program_core () -{ -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $ECHO "\ - \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 - exit 1 -} - -# A function to encapsulate launching the target application -# Strips options in the --lt-* namespace from \$@ and -# launches target application with the remaining arguments. -func_exec_program () -{ - for lt_wr_arg - do - case \$lt_wr_arg in - --lt-*) ;; - *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; - esac - shift - done - func_exec_program_core \${1+\"\$@\"} -} - - # Parse options - func_parse_lt_options \"\$0\" \${1+\"\$@\"} - - # Find the directory that this script lives in. - thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` - done - - # Usually 'no', except on cygwin/mingw when embedded into - # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 - if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then - # special case for '.' - if test \"\$thisdir\" = \".\"; then - thisdir=\`pwd\` - fi - # remove .libs from thisdir - case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; - $objdir ) thisdir=. ;; - esac - fi - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test "$fast_install" = yes; then - $ECHO "\ - program=lt-'$outputname'$exeext - progdir=\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ - test \"X\$file\" != \"X\$progdir/\$program\"; }; then - - file=\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $MKDIR \"\$progdir\" - else - $RM \"\$progdir/\$file\" - fi" - - $ECHO "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - $ECHO \"\$relink_command_output\" >&2 - $RM \"\$progdir/\$file\" - exit 1 - fi - fi - - $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $RM \"\$progdir/\$program\"; - $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $RM \"\$progdir/\$file\" - fi" - else - $ECHO "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $ECHO "\ - - if test -f \"\$progdir/\$program\"; then" - - # fixup the dll searchpath if we need to. - # - # Fix the DLL searchpath if we need to. Do this before prepending - # to shlibpath, because on Windows, both are PATH and uninstalled - # libraries must come first. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $ECHO "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` - - export $shlibpath_var -" - fi - - $ECHO "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. - func_exec_program \${1+\"\$@\"} - fi - else - # The program doesn't exist. - \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 - \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 - \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 - fi -fi\ -" -} - - -# func_emit_cwrapperexe_src -# emit the source code for a wrapper executable on stdout -# Must ONLY be called from within func_mode_link because -# it depends on a number of variable set therein. -func_emit_cwrapperexe_src () -{ - cat < -#include -#ifdef _MSC_VER -# include -# include -# include -#else -# include -# include -# ifdef __CYGWIN__ -# include -# endif -#endif -#include -#include -#include -#include -#include -#include -#include -#include - -/* declarations of non-ANSI functions */ -#if defined(__MINGW32__) -# ifdef __STRICT_ANSI__ -int _putenv (const char *); -# endif -#elif defined(__CYGWIN__) -# ifdef __STRICT_ANSI__ -char *realpath (const char *, char *); -int putenv (char *); -int setenv (const char *, const char *, int); -# endif -/* #elif defined (other platforms) ... */ -#endif - -/* portability defines, excluding path handling macros */ -#if defined(_MSC_VER) -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -# define S_IXUSR _S_IEXEC -# ifndef _INTPTR_T_DEFINED -# define _INTPTR_T_DEFINED -# define intptr_t int -# endif -#elif defined(__MINGW32__) -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -#elif defined(__CYGWIN__) -# define HAVE_SETENV -# define FOPEN_WB "wb" -/* #elif defined (other platforms) ... */ -#endif - -#if defined(PATH_MAX) -# define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef S_IXOTH -# define S_IXOTH 0 -#endif -#ifndef S_IXGRP -# define S_IXGRP 0 -#endif - -/* path handling portability macros */ -#ifndef DIR_SEPARATOR -# define DIR_SEPARATOR '/' -# define PATH_SEPARATOR ':' -#endif - -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) -# define HAVE_DOS_BASED_FILE_SYSTEM -# define FOPEN_WB "wb" -# ifndef DIR_SEPARATOR_2 -# define DIR_SEPARATOR_2 '\\' -# endif -# ifndef PATH_SEPARATOR_2 -# define PATH_SEPARATOR_2 ';' -# endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#ifndef PATH_SEPARATOR_2 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -#else /* PATH_SEPARATOR_2 */ -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -#endif /* PATH_SEPARATOR_2 */ - -#ifndef FOPEN_WB -# define FOPEN_WB "w" -#endif -#ifndef _O_BINARY -# define _O_BINARY 0 -#endif - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ -} while (0) - -#if defined(LT_DEBUGWRAPPER) -static int lt_debug = 1; -#else -static int lt_debug = 0; -#endif - -const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ - -void *xmalloc (size_t num); -char *xstrdup (const char *string); -const char *base_name (const char *name); -char *find_executable (const char *wrapper); -char *chase_symlinks (const char *pathspec); -int make_executable (const char *path); -int check_executable (const char *path); -char *strendzap (char *str, const char *pat); -void lt_debugprintf (const char *file, int line, const char *fmt, ...); -void lt_fatal (const char *file, int line, const char *message, ...); -static const char *nonnull (const char *s); -static const char *nonempty (const char *s); -void lt_setenv (const char *name, const char *value); -char *lt_extend_str (const char *orig_value, const char *add, int to_end); -void lt_update_exe_path (const char *name, const char *value); -void lt_update_lib_path (const char *name, const char *value); -char **prepare_spawn (char **argv); -void lt_dump_script (FILE *f); -EOF - - cat <= 0) - && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) - return 1; - else - return 0; -} - -int -make_executable (const char *path) -{ - int rval = 0; - struct stat st; - - lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", - nonempty (path)); - if ((!path) || (!*path)) - return 0; - - if (stat (path, &st) >= 0) - { - rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); - } - return rval; -} - -/* Searches for the full path of the wrapper. Returns - newly allocated full path name if found, NULL otherwise - Does not chase symlinks, even on platforms that support them. -*/ -char * -find_executable (const char *wrapper) -{ - int has_slash = 0; - const char *p; - const char *p_next; - /* static buffer for getcwd */ - char tmp[LT_PATHMAX + 1]; - int tmp_len; - char *concat_name; - - lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", - nonempty (wrapper)); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; - - /* Absolute path? */ -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - else - { -#endif - if (IS_DIR_SEPARATOR (wrapper[0])) - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - } -#endif - - for (p = wrapper; *p; p++) - if (*p == '/') - { - has_slash = 1; - break; - } - if (!has_slash) - { - /* no slashes; search PATH */ - const char *path = getenv ("PATH"); - if (path != NULL) - { - for (p = path; *p; p = p_next) - { - const char *q; - size_t p_len; - for (q = p; *q; q++) - if (IS_PATH_SEPARATOR (*q)) - break; - p_len = q - p; - p_next = (*q == '\0' ? q : q + 1); - if (p_len == 0) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = - XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - } - else - { - concat_name = - XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, p, p_len); - concat_name[p_len] = '/'; - strcpy (concat_name + p_len + 1, wrapper); - } - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - } - /* not found in PATH; assume curdir */ - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - return NULL; -} - -char * -chase_symlinks (const char *pathspec) -{ -#ifndef S_ISLNK - return xstrdup (pathspec); -#else - char buf[LT_PATHMAX]; - struct stat s; - char *tmp_pathspec = xstrdup (pathspec); - char *p; - int has_symlinks = 0; - while (strlen (tmp_pathspec) && !has_symlinks) - { - lt_debugprintf (__FILE__, __LINE__, - "checking path component for symlinks: %s\n", - tmp_pathspec); - if (lstat (tmp_pathspec, &s) == 0) - { - if (S_ISLNK (s.st_mode) != 0) - { - has_symlinks = 1; - break; - } - - /* search backwards for last DIR_SEPARATOR */ - p = tmp_pathspec + strlen (tmp_pathspec) - 1; - while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - p--; - if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - { - /* no more DIR_SEPARATORS left */ - break; - } - *p = '\0'; - } - else - { - lt_fatal (__FILE__, __LINE__, - "error accessing file \"%s\": %s", - tmp_pathspec, nonnull (strerror (errno))); - } - } - XFREE (tmp_pathspec); - - if (!has_symlinks) - { - return xstrdup (pathspec); - } - - tmp_pathspec = realpath (pathspec, buf); - if (tmp_pathspec == 0) - { - lt_fatal (__FILE__, __LINE__, - "could not follow symlinks for %s", pathspec); - } - return xstrdup (tmp_pathspec); -#endif -} - -char * -strendzap (char *str, const char *pat) -{ - size_t len, patlen; - - assert (str != NULL); - assert (pat != NULL); - - len = strlen (str); - patlen = strlen (pat); - - if (patlen <= len) - { - str += len - patlen; - if (strcmp (str, pat) == 0) - *str = '\0'; - } - return str; -} - -void -lt_debugprintf (const char *file, int line, const char *fmt, ...) -{ - va_list args; - if (lt_debug) - { - (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); - va_start (args, fmt); - (void) vfprintf (stderr, fmt, args); - va_end (args); - } -} - -static void -lt_error_core (int exit_status, const char *file, - int line, const char *mode, - const char *message, va_list ap) -{ - fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *file, int line, const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); - va_end (ap); -} - -static const char * -nonnull (const char *s) -{ - return s ? s : "(null)"; -} - -static const char * -nonempty (const char *s) -{ - return (s && !*s) ? "(empty)" : nonnull (s); -} - -void -lt_setenv (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_setenv) setting '%s' to '%s'\n", - nonnull (name), nonnull (value)); - { -#ifdef HAVE_SETENV - /* always make a copy, for consistency with !HAVE_SETENV */ - char *str = xstrdup (value); - setenv (name, str, 1); -#else - int len = strlen (name) + 1 + strlen (value) + 1; - char *str = XMALLOC (char, len); - sprintf (str, "%s=%s", name, value); - if (putenv (str) != EXIT_SUCCESS) - { - XFREE (str); - } -#endif - } -} - -char * -lt_extend_str (const char *orig_value, const char *add, int to_end) -{ - char *new_value; - if (orig_value && *orig_value) - { - int orig_value_len = strlen (orig_value); - int add_len = strlen (add); - new_value = XMALLOC (char, add_len + orig_value_len + 1); - if (to_end) - { - strcpy (new_value, orig_value); - strcpy (new_value + orig_value_len, add); - } - else - { - strcpy (new_value, add); - strcpy (new_value + add_len, orig_value); - } - } - else - { - new_value = xstrdup (add); - } - return new_value; -} - -void -lt_update_exe_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - /* some systems can't cope with a ':'-terminated path #' */ - int len = strlen (new_value); - while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) - { - new_value[len-1] = '\0'; - } - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -void -lt_update_lib_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -EOF - case $host_os in - mingw*) - cat <<"EOF" - -/* Prepares an argument vector before calling spawn(). - Note that spawn() does not by itself call the command interpreter - (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : - ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&v); - v.dwPlatformId == VER_PLATFORM_WIN32_NT; - }) ? "cmd.exe" : "command.com"). - Instead it simply concatenates the arguments, separated by ' ', and calls - CreateProcess(). We must quote the arguments since Win32 CreateProcess() - interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a - special way: - - Space and tab are interpreted as delimiters. They are not treated as - delimiters if they are surrounded by double quotes: "...". - - Unescaped double quotes are removed from the input. Their only effect is - that within double quotes, space and tab are treated like normal - characters. - - Backslashes not followed by double quotes are not special. - - But 2*n+1 backslashes followed by a double quote become - n backslashes followed by a double quote (n >= 0): - \" -> " - \\\" -> \" - \\\\\" -> \\" - */ -#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -char ** -prepare_spawn (char **argv) -{ - size_t argc; - char **new_argv; - size_t i; - - /* Count number of arguments. */ - for (argc = 0; argv[argc] != NULL; argc++) - ; - - /* Allocate new argument vector. */ - new_argv = XMALLOC (char *, argc + 1); - - /* Put quoted arguments into the new argument vector. */ - for (i = 0; i < argc; i++) - { - const char *string = argv[i]; - - if (string[0] == '\0') - new_argv[i] = xstrdup ("\"\""); - else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) - { - int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); - size_t length; - unsigned int backslashes; - const char *s; - char *quoted_string; - char *p; - - length = 0; - backslashes = 0; - if (quote_around) - length++; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - length += backslashes + 1; - length++; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - length += backslashes + 1; - - quoted_string = XMALLOC (char, length + 1); - - p = quoted_string; - backslashes = 0; - if (quote_around) - *p++ = '"'; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - { - unsigned int j; - for (j = backslashes + 1; j > 0; j--) - *p++ = '\\'; - } - *p++ = c; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - { - unsigned int j; - for (j = backslashes; j > 0; j--) - *p++ = '\\'; - *p++ = '"'; - } - *p = '\0'; - - new_argv[i] = quoted_string; - } - else - new_argv[i] = (char *) string; - } - new_argv[argc] = NULL; - - return new_argv; -} -EOF - ;; - esac - - cat <<"EOF" -void lt_dump_script (FILE* f) -{ -EOF - func_emit_wrapper yes | - $SED -e 's/\([\\"]\)/\\\1/g' \ - -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' - - cat <<"EOF" -} -EOF -} -# end: func_emit_cwrapperexe_src - -# func_win32_import_lib_p ARG -# True if ARG is an import lib, as indicated by $file_magic_cmd -func_win32_import_lib_p () -{ - $opt_debug - case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in - *import*) : ;; - *) false ;; - esac -} - -# func_mode_link arg... -func_mode_link () -{ - $opt_debug - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - # It is impossible to link a dll without this setting, and - # we shouldn't force the makefile maintainer to figure out - # which system we are compiling for in order to pass an extra - # flag for every libtool invocation. - # allow_undefined=no - - # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll which has undefined symbols, in which case not - # even a static library is built. For now, we need to specify - # -no-undefined on the libtool link line when we can be certain - # that all symbols are satisfied, otherwise we get a static library. - allow_undefined=yes - ;; - *) - allow_undefined=yes - ;; - esac - libtool_args=$nonopt - base_compile="$nonopt $@" - compile_command=$nonopt - finalize_command=$nonopt - - compile_rpath= - finalize_rpath= - compile_shlibpath= - finalize_shlibpath= - convenience= - old_convenience= - deplibs= - old_deplibs= - compiler_flags= - linker_flags= - dllsearchpath= - lib_search_path=`pwd` - inst_prefix_dir= - new_inherited_linker_flags= - - avoid_version=no - bindir= - dlfiles= - dlprefiles= - dlself=no - export_dynamic=no - export_symbols= - export_symbols_regex= - generated= - libobjs= - ltlibs= - module=no - no_install=no - objs= - non_pic_objects= - precious_files_regex= - prefer_static_libs=no - preload=no - prev= - prevarg= - release= - rpath= - xrpath= - perm_rpath= - temp_rpath= - thread_safe=no - vinfo= - vinfo_number=no - weak_libs= - single_module="${wl}-single_module" - func_infer_tag $base_compile - - # We need to know -static, to get the right output filenames. - for arg - do - case $arg in - -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" - build_old_libs=no - break - ;; - -all-static | -static | -static-libtool-libs) - case $arg in - -all-static) - if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - func_warning "complete static linking is impossible in this configuration" - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; - -static-libtool-libs) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - esac - build_libtool_libs=no - build_old_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg="$1" - shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - func_append compile_command " @OUTPUT@" - func_append finalize_command " @OUTPUT@" - ;; - esac - - case $prev in - bindir) - bindir="$arg" - prev= - continue - ;; - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. - func_append compile_command " @SYMFILE@" - func_append finalize_command " @SYMFILE@" - preload=yes - fi - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test "$dlself" = no; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test "$prev" = dlprefiles; then - dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test "$prev" = dlfiles; then - func_append dlfiles " $arg" - else - func_append dlprefiles " $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols="$arg" - test -f "$arg" \ - || func_fatal_error "symbol file \`$arg' does not exist" - prev= - continue - ;; - expsyms_regex) - export_symbols_regex="$arg" - prev= - continue - ;; - framework) - case $host in - *-*-darwin*) - case "$deplibs " in - *" $qarg.ltframework "*) ;; - *) func_append deplibs " $qarg.ltframework" # this is fixed later - ;; - esac - ;; - esac - prev= - continue - ;; - inst_prefix) - inst_prefix_dir="$arg" - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat "$save_arg"` - do -# func_append moreargs " $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "\`$arg' is not a valid libtool object" - fi - fi - done - else - func_fatal_error "link input file \`$arg' does not exist" - fi - arg=$save_arg - prev= - continue - ;; - precious_regex) - precious_files_regex="$arg" - prev= - continue - ;; - release) - release="-$arg" - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; - *) func_append rpath " $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) func_append xrpath " $arg" ;; - esac - fi - prev= - continue - ;; - shrext) - shrext_cmds="$arg" - prev= - continue - ;; - weak) - func_append weak_libs " $arg" - prev= - continue - ;; - xcclinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xcompiler) - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xlinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $wl$qarg" - prev= - func_append compile_command " $wl$qarg" - func_append finalize_command " $wl$qarg" - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi # test -n "$prev" - - prevarg="$arg" - - case $arg in - -all-static) - if test -n "$link_static_flag"; then - # See comment for -static flag below, for more details. - func_append compile_command " $link_static_flag" - func_append finalize_command " $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - func_fatal_error "\`-allow-undefined' must not be used because it is the default" - ;; - - -avoid-version) - avoid_version=yes - continue - ;; - - -bindir) - prev=bindir - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - export_dynamic=yes - continue - ;; - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - func_fatal_error "more than one -exported-symbols argument is not allowed" - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms - else - prev=expsyms_regex - fi - continue - ;; - - -framework) - prev=framework - continue - ;; - - -inst-prefix-dir) - prev=inst_prefix - continue - ;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) - func_append compile_command " $arg" - func_append finalize_command " $arg" - ;; - esac - continue - ;; - - -L*) - func_stripname "-L" '' "$arg" - if test -z "$func_stripname_result"; then - if test "$#" -gt 0; then - func_fatal_error "require no space between \`-L' and \`$1'" - else - func_fatal_error "need path for \`-L' option" - fi - fi - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - test -z "$absdir" && \ - func_fatal_error "cannot determine absolute directory name of \`$dir'" - dir="$absdir" - ;; - esac - case "$deplibs " in - *" -L$dir "* | *" $arg "*) - # Will only happen for absolute or sysroot arguments - ;; - *) - # Preserve sysroot, but never include relative directories - case $dir in - [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; - *) func_append deplibs " -L$dir" ;; - esac - func_append lib_search_path " $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - ::) dllsearchpath=$dir;; - *) func_append dllsearchpath ":$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - func_append deplibs " System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - test "X$arg" = "X-lc" && continue - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue - ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - func_append deplibs " $arg" - continue - ;; - - -module) - module=yes - continue - ;; - - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - # Darwin uses the -arch flag to determine output architecture. - -model|-arch|-isysroot|--sysroot) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - prev=xcompiler - continue - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case "$new_inherited_linker_flags " in - *" $arg "*) ;; - * ) func_append new_inherited_linker_flags " $arg" ;; - esac - continue - ;; - - -multi_module) - single_module="${wl}-multi_module" - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) - # The PATH hackery in wrapper scripts is required on Windows - # and Darwin in order for the loader to find any dlls it needs. - func_warning "\`-no-install' is ignored for $host" - func_warning "assuming \`-no-fast-install' instead" - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -o) prev=output ;; - - -precious-files-regex) - prev=precious_regex - continue - ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - func_stripname '-R' '' "$arg" - dir=$func_stripname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - =*) - func_stripname '=' '' "$dir" - dir=$lt_sysroot$func_stripname_result - ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - continue - ;; - - -shared) - # The effects of -shared are defined in a previous loop. - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -static | -static-libtool-libs) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that - # didn't have a PIC flag, but the assumption that the effects - # would be equivalent was wrong. It would break on at least - # Digital Unix and AIX. - continue - ;; - - -thread-safe) - thread_safe=yes - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - - -weak) - prev=weak - continue - ;; - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Wl,*) - func_stripname '-Wl,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # -msg_* for osf cc - -msg_*) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - - # Flags to be passed through unchanged, with rationale: - # -64, -mips[0-9] enable 64-bit mode for the SGI compiler - # -r[0-9][0-9]* specify processor for the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler - # +DA*, +DD* enable 64-bit mode for the HP compiler - # -q* compiler args for the IBM compiler - # -m*, -t[45]*, -txscale* architecture-specific flags for GCC - # -F/path path to uninstalled frameworks, gcc on darwin - # -p, -pg, --coverage, -fprofile-* profiling flags for GCC - # @file GCC response files - # -tp=* Portland pgcc target processor selection - # --sysroot=* for sysroot support - # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-flto*|-fwhopr*|-fuse-linker-plugin) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - func_append compile_command " $arg" - func_append finalize_command " $arg" - func_append compiler_flags " $arg" - continue - ;; - - # Some other compiler flag. - -* | +*) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - - *.$objext) - # A standard object. - func_append objs " $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "\`$arg' is not a valid libtool object" - fi - fi - ;; - - *.$libext) - # An archive. - func_append deplibs " $arg" - func_append old_deplibs " $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - func_resolve_sysroot "$arg" - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. - func_append dlfiles " $func_resolve_sysroot_result" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. - func_append dlprefiles " $func_resolve_sysroot_result" - prev= - else - func_append deplibs " $func_resolve_sysroot_result" - fi - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - done # argument parsing loop - - test -n "$prev" && \ - func_fatal_help "the \`$prevarg' option requires an argument" - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - func_basename "$output" - outputname="$func_basename_result" - libobjs_save="$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - func_dirname "$output" "/" "" - output_objdir="$func_dirname_result$objdir" - func_to_tool_file "$output_objdir/" - tool_output_objdir=$func_to_tool_file_result - # Create the object directory. - func_mkdir_p "$output_objdir" - - # Determine the type of output - case $output in - "") - func_fatal_help "you must specify an output file" - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if $opt_preserve_dup_deps ; then - case "$libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append libs " $deplib" - done - - if test "$linkmode" = lib; then - libs="$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= - if $opt_duplicate_compiler_generated_deps; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; - esac - func_append pre_post_deps " $pre_post_dep" - done - fi - pre_post_deps= - fi - - deplibs= - newdependency_libs= - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries - - case $linkmode in - lib) - passes="conv dlpreopen link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=no - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - - for pass in $passes; do - # The preopen pass in lib mode reverses $deplibs; put it back here - # so that -L comes before libs that need it for instance... - if test "$linkmode,$pass" = "lib,link"; then - ## FIXME: Find the place where the list is rebuilt in the wrong - ## order, and fix it there properly - tmp_deplibs= - for deplib in $deplibs; do - tmp_deplibs="$deplib $tmp_deplibs" - done - deplibs="$tmp_deplibs" - fi - - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" - deplibs= - fi - if test "$linkmode" = prog; then - case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; - esac - fi - if test "$linkmode,$pass" = "lib,dlpreopen"; then - # Collect and forward deplibs of preopened libtool libs - for lib in $dlprefiles; do - # Ignore non-libtool-libs - dependency_libs= - func_resolve_sysroot "$lib" - case $lib in - *.la) func_source "$func_resolve_sysroot_result" ;; - esac - - # Collect preopened libtool deplibs, except any this library - # has declared as weak libs - for deplib in $dependency_libs; do - func_basename "$deplib" - deplib_base=$func_basename_result - case " $weak_libs " in - *" $deplib_base "*) ;; - *) func_append deplibs " $deplib" ;; - esac - done - done - libs="$dlprefiles" - fi - if test "$pass" = dlopen; then - # Collect dlpreopened libraries - save_deplibs="$deplibs" - deplibs= - fi - - for deplib in $libs; do - lib= - found=no - case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append compiler_flags " $deplib" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - func_warning "\`-l' is ignored for archives/objects" - continue - fi - func_stripname '-l' '' "$deplib" - name=$func_stripname_result - if test "$linkmode" = lib; then - searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" - else - searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" - fi - for searchdir in $searchdirs; do - for search_ext in .la $std_shrext .so .a; do - # Search the libtool library - lib="$searchdir/lib${name}${search_ext}" - if test -f "$lib"; then - if test "$search_ext" = ".la"; then - found=yes - else - found=no - fi - break 2 - fi - done - done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # deplib is a libtool library - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, - # We need to do some special things here, and not later. - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $deplib "*) - if func_lalib_p "$lib"; then - library_names= - old_library= - func_source "$lib" - for l in $old_library $library_names; do - ll="$l" - done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no - func_dirname "$lib" "" "." - ladir="$func_dirname_result" - lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - fi - ;; # -l - *.ltframework) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - prog) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - *) - func_warning "\`-L' is ignored for archives/objects" - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test "$pass" = link; then - func_stripname '-R' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) - func_resolve_sysroot "$deplib" - lib=$func_resolve_sysroot_result - ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - # Linking convenience modules into shared libraries is allowed, - # but linking other static libraries is non-portable. - case " $dlpreconveniencelibs " in - *" $deplib "*) ;; - *) - valid_a_lib=no - case $deplibs_check_method in - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=yes - fi - ;; - pass_all) - valid_a_lib=yes - ;; - esac - if test "$valid_a_lib" != yes; then - echo - $ECHO "*** Warning: Trying to link with static lib archive $deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because the file extensions .$libext of this argument makes me believe" - echo "*** that it is just a static archive that I should not use here." - else - echo - $ECHO "*** Warning: Linking the shared library $output against the" - $ECHO "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi - ;; - esac - continue - ;; - prog) - if test "$pass" != link; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - func_append newdlprefiles " $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append newdlfiles " $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=yes - continue - ;; - esac # case $deplib - - if test "$found" = yes || test -f "$lib"; then : - else - func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" - fi - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$lib" \ - || func_fatal_error "\`$lib' is not a valid libtool archive" - - func_dirname "$lib" "" "." - ladir="$func_dirname_result" - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - inherited_linker_flags= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - avoidtemprpath= - - - # Read the .la file - func_source "$lib" - - # Convert "-framework foo" to "foo.ltframework" - if test -n "$inherited_linker_flags"; then - tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` - for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do - case " $new_inherited_linker_flags " in - *" $tmp_inherited_linker_flag "*) ;; - *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; - esac - done - fi - dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && func_append dlfiles " $dlopen" - test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" - fi - - if test "$pass" = conv; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi - # It is a libtool convenience library, so add in its objects. - func_append convenience " $ladir/$objdir/$old_library" - func_append old_convenience " $ladir/$objdir/$old_library" - elif test "$linkmode" != prog && test "$linkmode" != lib; then - func_fatal_error "\`$lib' is not a convenience library" - fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - if test -n "$old_library" && - { test "$prefer_static_libs" = yes || - test "$prefer_static_libs,$installed" = "built,no"; }; then - linklib=$old_library - else - for l in $old_library $library_names; do - linklib="$l" - done - fi - if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi - - # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - func_fatal_error "cannot -dlopen a convenience library: \`$lib'" - fi - if test -z "$dlname" || - test "$dlopen_support" != yes || - test "$build_libtool_libs" = no; then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. - func_append dlprefiles " $lib $dependency_libs" - else - func_append newdlfiles " $lib" - fi - continue - fi # $pass = dlopen - - # We need an absolute path. - case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then - func_warning "cannot determine absolute directory name of \`$ladir'" - func_warning "passing it literally to the linker, although it might fail" - abs_ladir="$ladir" - fi - ;; - esac - func_basename "$lib" - laname="$func_basename_result" - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then - if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else - dir="$lt_sysroot$libdir" - absdir="$lt_sysroot$libdir" - fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else - if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir="$ladir" - absdir="$abs_ladir" - # Remove this search path later - func_append notinst_path " $abs_ladir" - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - func_append notinst_path " $abs_ladir" - fi - fi # $installed = yes - func_stripname 'lib' '.la' "$laname" - name=$func_stripname_result - - # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir" && test "$linkmode" = prog; then - func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" - fi - case "$host" in - # special handling for platforms with PE-DLLs. - *cygwin* | *mingw* | *cegcc* ) - # Linker will automatically link against shared library if both - # static and shared are present. Therefore, ensure we extract - # symbols from the import library if a shared library is present - # (otherwise, the dlopen module name will be incorrect). We do - # this by putting the import library name into $newdlprefiles. - # We recover the dlopen module name by 'saving' the la file - # name in a special purpose variable, and (later) extracting the - # dlname from the la file. - if test -n "$dlname"; then - func_tr_sh "$dir/$linklib" - eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" - func_append newdlprefiles " $dir/$linklib" - else - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - fi - ;; - * ) - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - func_append newdlprefiles " $dir/$dlname" - else - func_append newdlprefiles " $dir/$linklib" - fi - ;; - esac - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test "$linkmode" = lib; then - deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" # used for prog,scan pass - fi - continue - fi - - - if test "$linkmode" = prog && test "$pass" != link; then - func_append newlib_search_path " $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - esac - # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test "$linkmode,$pass" = "prog,link"; then - if test -n "$library_names" && - { { test "$prefer_static_libs" = no || - test "$prefer_static_libs,$installed" = "built,yes"; } || - test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath:" in - *"$absdir:"*) ;; - *) func_append temp_rpath "$absdir:" ;; - esac - fi - - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - fi - - link_static=no # Whether the deplib will be linked statically - use_static_libs=$prefer_static_libs - if test "$use_static_libs" = built && test "$installed" = yes; then - use_static_libs=no - fi - if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then - case $host in - *cygwin* | *mingw* | *cegcc*) - # No point in relinking DLLs because paths are not encoded - func_append notinst_deplibs " $lib" - need_relink=no - ;; - *) - if test "$installed" = no; then - func_append notinst_deplibs " $lib" - need_relink=yes - fi - ;; - esac - # This is a shared library - - # Warn about portability, can't link against -module's on some - # systems (darwin). Don't bleat about dlopened modules though! - dlopenmodule="" - for dlpremoduletest in $dlprefiles; do - if test "X$dlpremoduletest" = "X$lib"; then - dlopenmodule="$dlpremoduletest" - break - fi - done - if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then - echo - if test "$linkmode" = prog; then - $ECHO "*** Warning: Linking the executable $output against the loadable module" - else - $ECHO "*** Warning: Linking the shared library $output against the loadable module" - fi - $ECHO "*** $linklib is not portable!" - fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - shift - realname="$1" - shift - libname=`eval "\\$ECHO \"$libname_spec\""` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" - elif test -n "$soname_spec"; then - # bleh windows - case $host in - *cygwin* | mingw* | *cegcc*) - func_arith $current - $age - major=$func_arith_result - versuffix="-$major" - ;; - esac - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" - func_basename "$soroot" - soname="$func_basename_result" - func_stripname 'lib' '.dll' "$soname" - newlib=libimp-$func_stripname_result.a - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - func_verbose "extracting exported symbol list from \`$soname'" - func_execute_cmds "$extract_expsyms_cmds" 'exit $?' - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - func_verbose "generating import library for \`$soname'" - func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - - if test "$linkmode" = prog || test "$opt_mode" != relink; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" - case $host in - *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; - *-*-sysv4*uw2*) add_dir="-L$dir" ;; - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir="-L$dir" ;; - *-*-darwin* ) - # if the lib is a (non-dlopened) module then we can not - # link against it, someone is ignoring the earlier warnings - if /usr/bin/file -L $add 2> /dev/null | - $GREP ": [^:]* bundle" >/dev/null ; then - if test "X$dlopenmodule" != "X$lib"; then - $ECHO "*** Warning: lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then - echo - echo "*** And there doesn't seem to be a static archive available" - echo "*** The link will probably fail, sorry" - else - add="$dir/$old_library" - fi - elif test -n "$old_library"; then - add="$dir/$old_library" - fi - fi - esac - elif test "$hardcode_minus_L" = no; then - case $host in - *-*-sunos*) add_shlibpath="$dir" ;; - esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - relink) - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test "$lib_linked" != yes; then - func_fatal_configuration "unsupported hardcode properties" - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) func_append compile_shlibpath "$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; then - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" - test -n "$add" && compile_deplibs="$add $compile_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && - test "$hardcode_minus_L" != yes && - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - fi - fi - fi - - if test "$linkmode" = prog || test "$opt_mode" = relink; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then - if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib" ; then - add="$inst_prefix_dir$libdir/$linklib" - else - add="$libdir/$linklib" - fi - else - # We cannot seem to hardcode it, guess we'll fake it. - add_dir="-L$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - fi - - if test "$linkmode" = prog; then - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - fi - fi - elif test "$linkmode" = prog; then - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" - compile_deplibs="$dir/$linklib $compile_deplibs" - finalize_deplibs="$dir/$linklib $finalize_deplibs" - else - compile_deplibs="-l$name -L$dir $compile_deplibs" - finalize_deplibs="-l$name -L$dir $finalize_deplibs" - fi - elif test "$build_libtool_libs" = yes; then - # Not a shared library - if test "$deplibs_check_method" != pass_all; then - # We're trying link a shared library against a static one - # but the system doesn't support it. - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. - echo - $ECHO "*** Warning: This system can not link to static lib archive $lib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then - echo "*** But as you try to build a module library, libtool will still create " - echo "*** a static module, that should work as long as the dlopening application" - echo "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test "$linkmode" = lib; then - if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) func_stripname '-R' '' "$libdir" - temp_xrpath=$func_stripname_result - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) func_append xrpath " $temp_xrpath";; - esac;; - *) func_append temp_deplibs " $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - - func_append newlib_search_path " $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result";; - *) func_resolve_sysroot "$deplib" ;; - esac - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $func_resolve_sysroot_result "*) - func_append specialdeplibs " $func_resolve_sysroot_result" ;; - esac - fi - func_append tmp_libs " $func_resolve_sysroot_result" - done - - if test "$link_all_deplibs" != no; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - path= - case $deplib in - -L*) path="$deplib" ;; - *.la) - func_resolve_sysroot "$deplib" - deplib=$func_resolve_sysroot_result - func_dirname "$deplib" "" "." - dir=$func_dirname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - func_warning "cannot determine absolute directory name of \`$dir'" - absdir="$dir" - fi - ;; - esac - if $GREP "^installed=no" $deplib > /dev/null; then - case $host in - *-*-darwin*) - depdepl= - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp - done - if test -f "$absdir/$objdir/$depdepl" ; then - depdepl="$absdir/$objdir/$depdepl" - darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - if test -z "$darwin_install_name"; then - darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - fi - func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" - func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" - path= - fi - fi - ;; - *) - path="-L$absdir/$objdir" - ;; - esac - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - test "$absdir" != "$libdir" && \ - func_warning "\`$deplib' seems to be moved" - - path="-L$absdir" - fi - ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$path $deplibs" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - if test "$pass" = link; then - if test "$linkmode" = "prog"; then - compile_deplibs="$new_inherited_linker_flags $compile_deplibs" - finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" - else - compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - fi - fi - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then - # Make sure lib_search_path contains only unique directories. - lib_search_path= - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; - *) func_append lib_search_path " $dir" ;; - esac - done - newlib_search_path= - fi - - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else - vars="compile_deplibs finalize_deplibs" - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so - # that some nasty dependency loop isn't accidentally - # broken: - #new_libs="$deplib $new_libs" - # Pragmatically, this seems to cause very few problems in - # practice: - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - -R*) ;; - *) - # And here is the reason: when a library appears more - # than once as an explicit dependence of a library, or - # is implicitly linked in more than once by the - # compiler, it is considered special, and multiple - # occurrences thereof are not removed. Compare this - # with having the same library being listed as a - # dependency of multiple other libraries: in this case, - # we know (pedantically, we assume) the library does not - # need to be listed more than once, so we keep only the - # last copy. This is not always right, but it is rare - # enough that we require users that really mean to play - # such unportable linking tricks to link the library - # using -Wl,-lname, so that libtool does not consider it - # for duplicate removal. - case " $specialdeplibs " in - *" $deplib "*) new_libs="$deplib $new_libs" ;; - *) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$deplib $new_libs" ;; - esac - ;; - esac - ;; - esac - done - tmp_libs= - for deplib in $new_libs; do - case $deplib in - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; - *) func_append tmp_libs " $deplib" ;; - esac - ;; - *) func_append tmp_libs " $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - # Last step: remove runtime libs from dependency_libs - # (they stay in deplibs) - tmp_libs= - for i in $dependency_libs ; do - case " $predeps $postdeps $compiler_lib_search_path " in - *" $i "*) - i="" - ;; - esac - if test -n "$i" ; then - func_append tmp_libs " $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" - fi - if test "$linkmode" = prog || test "$linkmode" = lib; then - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for archives" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for archives" ;; - esac - - test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for archives" - - test -n "$xrpath" && \ - func_warning "\`-R' is ignored for archives" - - test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for archives" - - test -n "$release" && \ - func_warning "\`-release' is ignored for archives" - - test -n "$export_symbols$export_symbols_regex" && \ - func_warning "\`-export-symbols' is ignored for archives" - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" - func_append objs "$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) - func_stripname 'lib' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) - test "$module" = no && \ - func_fatal_help "libtool library \`$output' must begin with \`lib'" - - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required - func_stripname '' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else - func_stripname '' '.la' "$outputname" - libname=$func_stripname_result - fi - ;; - esac - - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" - else - echo - $ECHO "*** Warning: Linking the shared library $output against the non-libtool" - $ECHO "*** objects $objs is not portable!" - func_append libobjs " $objs" - fi - fi - - test "$dlself" != no && \ - func_warning "\`-dlopen self' is ignored for libtool libraries" - - set dummy $rpath - shift - test "$#" -gt 1 && \ - func_warning "ignoring multiple \`-rpath's for a libtool library" - - install_libdir="$1" - - oldlibs= - if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then - # Building a libtool convenience library. - # Some compilers have problems with a `.al' extension so - # convenience libraries should have the same extension an - # archive normally would. - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for convenience libraries" - - test -n "$release" && \ - func_warning "\`-release' is ignored for convenience libraries" - else - - # Parse the version information argument. - save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 - shift - IFS="$save_ifs" - - test -n "$7" && \ - func_fatal_help "too many parameters to \`-version-info'" - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts - # to make the code below a bit more comprehensible - - case $vinfo_number in - yes) - number_major="$1" - number_minor="$2" - number_revision="$3" - # - # There are really only two kinds -- those that - # use the current revision as the major version - # and those that subtract age and use age as - # a minor version. But, then there is irix - # which has an extra 1 added just for fun - # - case $version_type in - darwin|linux|osf|windows|none) - func_arith $number_major + $number_minor - current=$func_arith_result - age="$number_minor" - revision="$number_revision" - ;; - freebsd-aout|freebsd-elf|qnx|sunos) - current="$number_major" - revision="$number_minor" - age="0" - ;; - irix|nonstopux) - func_arith $number_major + $number_minor - current=$func_arith_result - age="$number_minor" - revision="$number_minor" - lt_irix_increment=no - ;; - esac - ;; - no) - current="$1" - revision="$2" - age="$3" - ;; - esac - - # Check that each of the things are valid numbers. - case $current in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "CURRENT \`$current' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - case $revision in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "REVISION \`$revision' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - case $age in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "AGE \`$age' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - if test "$age" -gt "$current"; then - func_error "AGE \`$age' is greater than the current interface number \`$current'" - func_fatal_error "\`$vinfo' is not valid version information" - fi - - # Calculate the version variables. - major= - versuffix= - verstring= - case $version_type in - none) ;; - - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header - func_arith $current - $age - major=.$func_arith_result - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... - func_arith $current + 1 - minor_current=$func_arith_result - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current" - ;; - - irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; then - func_arith $current - $age - else - func_arith $current - $age + 1 - fi - major=$func_arith_result - - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; - esac - verstring="$verstring_prefix$major.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$revision - while test "$loop" -ne 0; do - func_arith $revision - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring="$verstring_prefix$major.$iface:$verstring" - done - - # Before this point, $major must not contain `.'. - major=.$major - versuffix="$major.$revision" - ;; - - linux) - func_arith $current - $age - major=.$func_arith_result - versuffix="$major.$age.$revision" - ;; - - osf) - func_arith $current - $age - major=.$func_arith_result - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test "$loop" -ne 0; do - func_arith $current - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring="$verstring:${iface}.0" - done - - # Make executables depend on our current version. - func_append verstring ":${current}.0" - ;; - - qnx) - major=".$current" - versuffix=".$current" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. - func_arith $current - $age - major=$func_arith_result - versuffix="-$major" - ;; - - *) - func_fatal_configuration "unknown library version type \`$version_type'" - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - case $version_type in - darwin) - # we can't check for "0.0" in archive_cmds due to quoting - # problems, so we reset it completely - verstring= - ;; - *) - verstring="0.0" - ;; - esac - if test "$need_version" = no; then - versuffix= - else - versuffix=".0.0" - fi - fi - - # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then - major= - versuffix= - verstring="" - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - func_warning "undefined symbols not allowed in $host shared libraries" - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - - fi - - func_generate_dlsyms "$libname" "$libname" "yes" - func_append libobjs " $symfileobj" - test "X$libobjs" = "X " && libobjs= - - if test "$opt_mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`$ECHO "$output_objdir/*"` - for p in $tempremovelist; do - case $p in - *.$objext | *.gcno) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - if test "X$precious_files_regex" != "X"; then - if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 - then - continue - fi - fi - func_append removelist " $p" - ;; - *) ;; - esac - done - test -n "$removelist" && \ - func_show_eval "${RM}r \$removelist" - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - func_append oldlibs " $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - #for path in $notinst_path; do - # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` - # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` - # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` - #done - - if test -n "$xrpath"; then - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do - func_replace_sysroot "$libdir" - func_append temp_xrpath " -R$func_replace_sysroot_result" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi - - # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles="$dlfiles" - dlfiles= - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; - *) func_append dlfiles " $lib" ;; - esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles="$dlprefiles" - dlprefiles= - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; - *) func_append dlprefiles " $lib" ;; - esac - done - - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - func_append deplibs " System.ltframework" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then - func_append deplibs " -lc" - fi - ;; - esac - fi - - # Transform deplibs into only deplibs that can be linked in shared. - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release="" - versuffix="" - major="" - newdeplibs= - droppeddeps=no - case $deplibs_check_method in - pass_all) - # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behavior. - newdeplibs=$deplibs - ;; - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $opt_dry_run || $RM conftest.c - cat > conftest.c </dev/null` - $nocaseglob - else - potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` - fi - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null | - $GREP " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an - # endless loop below, in case of cyclic links. - # We might still enter an endless loop, since a link - # loop can be closed while we follow links, - # but so what? - potlib="$potent_lib" - while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | - $SED -e 10q | - $EGREP "$file_magic_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $ECHO "*** with $libname but no candidates were found. (...for file magic test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a file magic. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - for a_deplib in $deplibs; do - case $a_deplib in - -l*) - func_stripname -l '' "$a_deplib" - name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) - func_append newdeplibs " $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then - libname=`eval "\\$ECHO \"$libname_spec\""` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test - if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ - $EGREP "$match_pattern_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a regex pattern. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" - tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` - done - fi - case $tmp_deplibs in - *[!\ \ ]*) - echo - if test "X$deplibs_check_method" = "Xnone"; then - echo "*** Warning: inter-library dependencies are not supported in this platform." - else - echo "*** Warning: inter-library dependencies are not known to be supported." - fi - echo "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - ;; - esac - ;; - esac - versuffix=$versuffix_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library with the System framework - newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; then - echo - echo "*** Warning: libtool could not satisfy all declared inter-library" - $ECHO "*** dependencies of module $libname. Therefore, libtool will create" - echo "*** a static module, that should work as long as the dlopening" - echo "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - else - echo "*** The inter-library dependencies that have been dropped here will be" - echo "*** automatically added whenever a program is linked with this library" - echo "*** or is declared to -dlopen it." - - if test "$allow_undefined" = no; then - echo - echo "*** Since this library must not contain undefined symbols," - echo "*** because either the platform does not support them or" - echo "*** it was explicitly requested with -no-undefined," - echo "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - fi - fi - # Done checking deplibs! - deplibs=$newdeplibs - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - case $host in - *-*-darwin*) - newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - deplibs="$new_libs" - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" = yes; then - if test "$hardcode_into_libs" = yes; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" - test "$opt_mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - func_replace_sysroot "$libdir" - libdir=$func_replace_sysroot_result - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append dep_rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath="$finalize_shlibpath" - test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" - if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. - eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - shift - realname="$1" - shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - if test -z "$dlname"; then - dlname=$soname - fi - - lib="$output_objdir/$realname" - linknames= - for link - do - func_append linknames " $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` - test "X$libobjs" = "X " && libobjs= - - delfiles= - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols="$output_objdir/$libname.uexp" - func_append delfiles " $export_symbols" - fi - - orig_export_symbols= - case $host_os in - cygwin* | mingw* | cegcc*) - if test -n "$export_symbols" && test -z "$export_symbols_regex"; then - # exporting using user supplied symfile - if test "x`$SED 1q $export_symbols`" != xEXPORTS; then - # and it's NOT already a .def file. Must figure out - # which of the given symbols are data symbols and tag - # them as such. So, trigger use of export_symbols_cmds. - # export_symbols gets reassigned inside the "prepare - # the list of exported symbols" if statement, so the - # include_expsyms logic still works. - orig_export_symbols="$export_symbols" - export_symbols= - always_export_symbols=yes - fi - fi - ;; - esac - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $opt_dry_run || $RM $export_symbols - cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' - for cmd1 in $cmds; do - IFS="$save_ifs" - # Take the normal branch if the nm_file_list_spec branch - # doesn't work or if tool conversion is not needed. - case $nm_file_list_spec~$to_tool_file_cmd in - *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) - try_normal_branch=yes - eval cmd=\"$cmd1\" - func_len " $cmd" - len=$func_len_result - ;; - *) - try_normal_branch=no - ;; - esac - if test "$try_normal_branch" = yes \ - && { test "$len" -lt "$max_cmd_len" \ - || test "$max_cmd_len" -le -1; } - then - func_show_eval "$cmd" 'exit $?' - skipped_export=false - elif test -n "$nm_file_list_spec"; then - func_basename "$output" - output_la=$func_basename_result - save_libobjs=$libobjs - save_output=$output - output=${output_objdir}/${output_la}.nm - func_to_tool_file "$output" - libobjs=$nm_file_list_spec$func_to_tool_file_result - func_append delfiles " $output" - func_verbose "creating $NM input file list: $output" - for obj in $save_libobjs; do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > "$output" - eval cmd=\"$cmd1\" - func_show_eval "$cmd" 'exit $?' - output=$save_output - libobjs=$save_libobjs - skipped_export=false - else - # The command line is too long to execute in one step. - func_verbose "using reloadable object file for export list..." - skipped_export=: - # Break out early, otherwise skipped_export may be - # set to false by a later but shorter cmd. - break - fi - done - IFS="$save_ifs" - if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - func_append tmp_deplibs " $test_deplib" - ;; - esac - done - deplibs="$tmp_deplibs" - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec" && - test "$compiler_needs_object" = yes && - test -z "$libobjs"; then - # extract the archives, so we have objects to list. - # TODO: could optimize this to just extract one archive. - whole_archive_flag_spec= - fi - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - else - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - func_append linker_flags " $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test "$opt_mode" = relink; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else - eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else - eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi - - if test "X$skipped_export" != "X:" && - func_len " $test_cmds" && - len=$func_len_result && - test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise - # or, if using GNU ld and skipped_export is not :, use a linker - # script. - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we - # want to use save_libobjs as it was before - # whole_archive_flag_spec was expanded, because we can't - # assume the linker understands whole_archive_flag_spec. - # This may have to be revisited, in case too many - # convenience libraries get linked in and end up exceeding - # the spec. - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - fi - save_output=$output - func_basename "$output" - output_la=$func_basename_result - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - last_robj= - k=1 - - if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then - output=${output_objdir}/${output_la}.lnkscript - func_verbose "creating GNU ld script: $output" - echo 'INPUT (' > $output - for obj in $save_libobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - echo ')' >> $output - func_append delfiles " $output" - func_to_tool_file "$output" - output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then - output=${output_objdir}/${output_la}.lnk - func_verbose "creating linker input file list: $output" - : > $output - set x $save_libobjs - shift - firstobj= - if test "$compiler_needs_object" = yes; then - firstobj="$1 " - shift - fi - for obj - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - func_append delfiles " $output" - func_to_tool_file "$output" - output=$firstobj\"$file_list_spec$func_to_tool_file_result\" - else - if test -n "$save_libobjs"; then - func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-${k}.$objext - eval test_cmds=\"$reload_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - if test "X$objlist" = X || - test "$len" -lt "$max_cmd_len"; then - func_append objlist " $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - reload_objs=$objlist - eval concat_cmds=\"$reload_cmds\" - else - # All subsequent reloadable object files will link in - # the last one created. - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" - fi - last_robj=$output_objdir/$output_la-${k}.$objext - func_arith $k + 1 - k=$func_arith_result - output=$output_objdir/$output_la-${k}.$objext - objlist=" $obj" - func_len " $last_robj" - func_arith $len0 + $func_len_result - len=$func_arith_result - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\${concat_cmds}$reload_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" - fi - func_append delfiles " $output" - - else - output= - fi - - if ${skipped_export-false}; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $opt_dry_run || $RM $export_symbols - libobjs=$output - # Append the command to create the export file. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - fi - - test -n "$save_libobjs" && - func_verbose "creating a temporary reloadable object file: $output" - - # Loop through the commands generated above and execute them. - save_ifs="$IFS"; IFS='~' - for cmd in $concat_cmds; do - IFS="$save_ifs" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - - if test -n "$export_symbols_regex" && ${skipped_export-false}; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - - if ${skipped_export-false}; then - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - fi - - libobjs=$output - # Restore the value of output. - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - cmds=$module_expsym_cmds - else - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - cmds=$archive_expsym_cmds - else - cmds=$archive_cmds - fi - fi - fi - - if test -n "$delfiles"; then - # Append the command to remove temporary files to $cmds. - eval cmds=\"\$cmds~\$RM $delfiles\" - fi - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then - func_show_eval '${RM}r "$gentop"' - fi - fi - - exit $EXIT_SUCCESS - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - obj) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for objects" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for objects" ;; - esac - - test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for objects" - - test -n "$xrpath" && \ - func_warning "\`-R' is ignored for objects" - - test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for objects" - - test -n "$release" && \ - func_warning "\`-release' is ignored for objects" - - case $output in - *.lo) - test -n "$objs$old_deplibs" && \ - func_fatal_error "cannot build library object \`$output' from non-libtool objects" - - libobj=$output - func_lo2o "$libobj" - obj=$func_lo2o_result - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $opt_dry_run || $RM $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs= - gentop= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec and hope we can get by with - # turning comma into space.. - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` - else - gentop="$output_objdir/${obj}x" - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - - # If we're not building shared, we need to use non_pic_objs - test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" - - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" - func_execute_cmds "$reload_cmds" 'exit $?' - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - fi - - if test "$build_libtool_libs" != yes; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - fi - - if test -n "$pic_flag" || test "$pic_mode" != default; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output="$libobj" - func_execute_cmds "$reload_cmds" 'exit $?' - fi - - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - ;; - - prog) - case $host in - *cygwin*) func_stripname '' '.exe' "$output" - output=$func_stripname_result.exe;; - esac - test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for programs" - - test -n "$release" && \ - func_warning "\`-release' is ignored for programs" - - test "$preload" = yes \ - && test "$dlopen_support" = unknown \ - && test "$dlopen_self" = unknown \ - && test "$dlopen_self_static" = unknown && \ - func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - case $host in - *-*-darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - # But is supposedly fixed on 10.4 or later (yay!). - if test "$tagname" = CXX ; then - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[0123]) - func_append compile_command " ${wl}-bind_at_load" - func_append finalize_command " ${wl}-bind_at_load" - ;; - esac - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $compile_deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - compile_deplibs="$new_libs" - - - func_append compile_command " $compile_deplibs" - func_append finalize_command " $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath $xrpath; do - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - fi - - # Now hardcode the library paths - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; - ::) dllsearchpath=$libdir;; - *) func_append dllsearchpath ":$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath="$rpath" - - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) func_append finalize_perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath="$rpath" - - if test -n "$libobjs" && test "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - fi - - func_generate_dlsyms "$outputname" "@PROGRAM@" "no" - - # template prelinking step - if test -n "$prelink_cmds"; then - func_execute_cmds "$prelink_cmds" 'exit $?' - fi - - wrappers_required=yes - case $host in - *cegcc* | *mingw32ce*) - # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. - wrappers_required=no - ;; - *cygwin* | *mingw* ) - if test "$build_libtool_libs" != yes; then - wrappers_required=no - fi - ;; - *) - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - wrappers_required=no - fi - ;; - esac - if test "$wrappers_required" = no; then - # Replace the output file specification. - compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. - exit_status=0 - func_show_eval "$link_command" 'exit_status=$?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Delete the generated files. - if test -f "$output_objdir/${outputname}S.${objext}"; then - func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' - fi - - exit $exit_status - fi - - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - compile_var= - finalize_var= - if test -n "$runpath_var"; then - if test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - if test -n "$finalize_perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do - func_append rpath "$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test "$no_install" = yes; then - # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $opt_dry_run || $RM $output - # Link the executable and exit - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - exit $EXIT_SUCCESS - fi - - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - func_warning "this platform does not like uninstalled shared libraries" - func_warning "\`$output' will be relinked during installation" - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi - - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname - - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output_objdir/$outputname" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Now create the wrapper script. - func_verbose "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - fi - - # Only actually do things if not in dry run mode. - $opt_dry_run || { - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) func_stripname '' '.exe' "$output" - output=$func_stripname_result ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - func_stripname '' '.exe' "$outputname" - outputname=$func_stripname_result ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - func_dirname_and_basename "$output" "" "." - output_name=$func_basename_result - output_path=$func_dirname_result - cwrappersource="$output_path/$objdir/lt-$output_name.c" - cwrapper="$output_path/$output_name.exe" - $RM $cwrappersource $cwrapper - trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - - func_emit_cwrapperexe_src > $cwrappersource - - # The wrapper executable is built using the $host compiler, - # because it contains $host paths and files. If cross- - # compiling, it, like the target executable, must be - # executed on the $host or under an emulation environment. - $opt_dry_run || { - $LTCC $LTCFLAGS -o $cwrapper $cwrappersource - $STRIP $cwrapper - } - - # Now, create the wrapper script for func_source use: - func_ltwrapper_scriptname $cwrapper - $RM $func_ltwrapper_scriptname_result - trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 - $opt_dry_run || { - # note: this script will not be executed, so do not chmod. - if test "x$build" = "x$host" ; then - $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result - else - func_emit_wrapper no > $func_ltwrapper_scriptname_result - fi - } - ;; - * ) - $RM $output - trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 - - func_emit_wrapper no > $output - chmod +x $output - ;; - esac - } - exit $EXIT_SUCCESS - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save $symfileobj" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" - build_libtool_libs=no - else - oldobjs="$old_deplibs $non_pic_objects" - if test "$preload" = yes && test -f "$symfileobj"; then - func_append oldobjs " $symfileobj" - fi - fi - addlibs="$old_convenience" - fi - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $addlibs - func_append oldobjs " $func_extract_archives_result" - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - cmds=$old_archive_from_new_cmds - else - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append oldobjs " $func_extract_archives_result" - fi - - # POSIX demands no paths to be encoded in archives. We have - # to avoid creating archives with duplicate basenames if we - # might have to extract them afterwards, e.g., when creating a - # static archive out of a convenience library, or when linking - # the entirety of a libtool archive into another (currently - # not supported by libtool). - if (for obj in $oldobjs - do - func_basename "$obj" - $ECHO "$func_basename_result" - done | sort | sort -uc >/dev/null 2>&1); then - : - else - echo "copying selected object files to avoid basename conflicts..." - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - func_mkdir_p "$gentop" - save_oldobjs=$oldobjs - oldobjs= - counter=1 - for obj in $save_oldobjs - do - func_basename "$obj" - objbase="$func_basename_result" - case " $oldobjs " in - " ") oldobjs=$obj ;; - *[\ /]"$objbase "*) - while :; do - # Make sure we don't pick an alternate name that also - # overlaps. - newobj=lt$counter-$objbase - func_arith $counter + 1 - counter=$func_arith_result - case " $oldobjs " in - *[\ /]"$newobj "*) ;; - *) if test ! -f "$gentop/$newobj"; then break; fi ;; - esac - done - func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - func_append oldobjs " $gentop/$newobj" - ;; - *) func_append oldobjs " $obj" ;; - esac - done - fi - eval cmds=\"$old_archive_cmds\" - - func_len " $cmds" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds - elif test -n "$archiver_list_spec"; then - func_verbose "using command file archive linking..." - for obj in $oldobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > $output_objdir/$libname.libcmd - func_to_tool_file "$output_objdir/$libname.libcmd" - oldobjs=" $archiver_list_spec$func_to_tool_file_result" - cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - func_verbose "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - oldobjs= - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - eval test_cmds=\"$old_archive_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - for obj in $save_oldobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - func_append objlist " $obj" - if test "$len" -lt "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - len=$len0 - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi - func_execute_cmds "$cmds" 'exit $?' - done - - test -n "$generated" && \ - func_show_eval "${RM}r$generated" - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" - func_verbose "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then - relink_command= - fi - - # Only create the output if not a dry run. - $opt_dry_run || { - for installed in no yes; do - if test "$installed" = yes; then - if test -z "$install_libdir"; then - break - fi - output="$output_objdir/$outputname"i - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do - case $deplib in - *.la) - func_basename "$deplib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" - ;; - -L*) - func_stripname -L '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -L$func_replace_sysroot_result" - ;; - -R*) - func_stripname -R '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -R$func_replace_sysroot_result" - ;; - *) func_append newdependency_libs " $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" - newdlfiles= - - for lib in $dlfiles; do - case $lib in - *.la) - func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" - func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" - ;; - *) func_append newdlfiles " $lib" ;; - esac - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - *.la) - # Only pass preopened files to the pseudo-archive (for - # eventual linking with the app. that links it) if we - # didn't already link the preopened objects directly into - # the library: - func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" - func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" - ;; - esac - done - dlprefiles="$newdlprefiles" - else - newdlfiles= - for lib in $dlfiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlfiles " $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlprefiles " $abs" - done - dlprefiles="$newdlprefiles" - fi - $RM $output - # place dlname in correct position for cygwin - # In fact, it would be nice if we could use this code for all target - # systems that can't hard-code library paths into their executables - # and that have no shared library path variable independent of PATH, - # but it turns out we can't easily determine that from inspecting - # libtool variables, so we have to hard-code the OSs to which it - # applies here; at the moment, that means platforms that use the PE - # object format with DLL files. See the long comment at the top of - # tests/bindir.at for full details. - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) - # If a -bindir argument was supplied, place the dll there. - if test "x$bindir" != x ; - then - func_relative_path "$install_libdir" "$bindir" - tdlname=$func_relative_path_result$dlname - else - # Otherwise fall back on heuristic. - tdlname=../bin/$dlname - fi - ;; - esac - $ECHO > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='$tdlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Linker flags that can not go in dependency_libs. -inherited_linker_flags='$new_inherited_linker_flags' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Names of additional weak libraries provided by this library -weak_library_names='$weak_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=$module - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes; then - $ECHO >> $output "\ -relink_command=\"$relink_command\"" - fi - done - } - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' - ;; - esac - exit $EXIT_SUCCESS -} - -{ test "$opt_mode" = link || test "$opt_mode" = relink; } && - func_mode_link ${1+"$@"} - - -# func_mode_uninstall arg... -func_mode_uninstall () -{ - $opt_debug - RM="$nonopt" - files= - rmforce= - exit_status=0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - for arg - do - case $arg in - -f) func_append RM " $arg"; rmforce=yes ;; - -*) func_append RM " $arg" ;; - *) func_append files " $arg" ;; - esac - done - - test -z "$RM" && \ - func_fatal_help "you must specify an RM program" - - rmdirs= - - for file in $files; do - func_dirname "$file" "" "." - dir="$func_dirname_result" - if test "X$dir" = X.; then - odir="$objdir" - else - odir="$dir/$objdir" - fi - func_basename "$file" - name="$func_basename_result" - test "$opt_mode" = uninstall && odir="$dir" - - # Remember odir for removal later, being careful to avoid duplicates - if test "$opt_mode" = clean; then - case " $rmdirs " in - *" $odir "*) ;; - *) func_append rmdirs " $odir" ;; - esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if { test -L "$file"; } >/dev/null 2>&1 || - { test -h "$file"; } >/dev/null 2>&1 || - test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 - continue - elif test "$rmforce" = yes; then - continue - fi - - rmfiles="$file" - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if func_lalib_p "$file"; then - func_source $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - func_append rmfiles " $odir/$n" - done - test -n "$old_library" && func_append rmfiles " $odir/$old_library" - - case "$opt_mode" in - clean) - case " $library_names " in - *" $dlname "*) ;; - *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; - esac - test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - # FIXME: should reinstall the best remaining shared library. - ;; - esac - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if func_lalib_p "$file"; then - - # Read the .lo file - func_source $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" && - test "$pic_object" != none; then - func_append rmfiles " $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && - test "$non_pic_object" != none; then - func_append rmfiles " $dir/$non_pic_object" - fi - fi - ;; - - *) - if test "$opt_mode" = clean ; then - noexename=$name - case $file in - *.exe) - func_stripname '' '.exe' "$file" - file=$func_stripname_result - func_stripname '' '.exe' "$name" - noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe - func_append rmfiles " $file" - ;; - esac - # Do a test to see if this is a libtool program. - if func_ltwrapper_p "$file"; then - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - relink_command= - func_source $func_ltwrapper_scriptname_result - func_append rmfiles " $func_ltwrapper_scriptname_result" - else - relink_command= - func_source $dir/$noexename - fi - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - func_append rmfiles " $odir/$name $odir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - func_append rmfiles " $odir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then - func_append rmfiles " $odir/lt-${noexename}.c" - fi - fi - fi - ;; - esac - func_show_eval "$RM $rmfiles" 'exit_status=1' - done - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - func_show_eval "rmdir $dir >/dev/null 2>&1" - fi - done - - exit $exit_status -} - -{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && - func_mode_uninstall ${1+"$@"} - -test -z "$opt_mode" && { - help="$generic_help" - func_fatal_help "you must specify a MODE" -} - -test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$opt_mode'" - -if test -n "$exec_cmd"; then - eval exec "$exec_cmd" - exit $EXIT_FAILURE -fi - -exit $exit_status - - -# The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -build_libtool_libs=no -build_old_libs=yes -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: -# vi:sw=2 - diff -Nru network-manager-applet-0.9.4.1/m4/glib-makefile.m4 network-manager-applet-0.9.6.2+git201210311320.2620/m4/glib-makefile.m4 --- network-manager-applet-0.9.4.1/m4/glib-makefile.m4 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/m4/glib-makefile.m4 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,31 @@ +dnl GLIB_CONFIG([MINIMUM-VERSION, [, MODULES]]) +dnl Test for GLIB (and error out if it's not available). Define +dnl GLIB_CFLAGS and GLIB_LIBS, GLIB_MAKEFILE, and variables for +dnl various glib developer tools (eg, GLIB_GENMARSHAL). If +dnl gmodule, gobject, or gio is specified in MODULES, pass to +dnl pkg-config +dnl +AC_DEFUN([GLIB_CONFIG_NMA], +[dnl + min_glib_version=ifelse([$1], ,2.26.0,$1) + pkg_config_args= + for module in glib $2; do + pkg_config_args="$pkg_config_args $module-2.0 >= $min_glib_version" + done + + PKG_CHECK_MODULES(GLIB, $pkg_config_args) + + GLIB_CFLAGS="$GLIB_CFLAGS -DG_DISABLE_SINGLE_INCLUDES" + + GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` + GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` + + #GLIB_MAKEFILE=`$PKG_CONFIG --variable=glib_makefile glib-2.0` + GLIB_MAKEFILE='$(top_srcdir)/Makefile.glib' + + AC_SUBST(GLIB_GENMARSHAL) + AC_SUBST(GLIB_MKENUMS) + AC_SUBST(GLIB_MAKEFILE) + + GLIB_GSETTINGS +]) diff -Nru network-manager-applet-0.9.4.1/m4/intltool.m4 network-manager-applet-0.9.6.2+git201210311320.2620/m4/intltool.m4 --- network-manager-applet-0.9.4.1/m4/intltool.m4 2011-02-09 13:07:32.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/m4/intltool.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,216 +0,0 @@ -## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- -## Copyright (C) 2001 Eazel, Inc. -## Author: Maciej Stachowiak -## Kenneth Christiansen -## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. -## -## This program is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -## -## As a special exception to the GNU General Public License, if you -## distribute this file as part of a program that contains a -## configuration script generated by Autoconf, you may include it under -## the same distribution terms that you use for the rest of that program. - -dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) -# serial 40 IT_PROG_INTLTOOL -AC_DEFUN([IT_PROG_INTLTOOL], [ -AC_PREREQ([2.50])dnl -AC_REQUIRE([AM_NLS])dnl - -case "$am__api_version" in - 1.[01234]) - AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) - ;; - *) - ;; -esac - -if test -n "$1"; then - AC_MSG_CHECKING([for intltool >= $1]) - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - ] - AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) - test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) -fi - -AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) -AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) -AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) -if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) -fi - - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - -_IT_SUBST(INTLTOOL_DESKTOP_RULE) -_IT_SUBST(INTLTOOL_DIRECTORY_RULE) -_IT_SUBST(INTLTOOL_KEYS_RULE) -_IT_SUBST(INTLTOOL_PROP_RULE) -_IT_SUBST(INTLTOOL_OAF_RULE) -_IT_SUBST(INTLTOOL_PONG_RULE) -_IT_SUBST(INTLTOOL_SERVER_RULE) -_IT_SUBST(INTLTOOL_SHEET_RULE) -_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) -_IT_SUBST(INTLTOOL_UI_RULE) -_IT_SUBST(INTLTOOL_XAM_RULE) -_IT_SUBST(INTLTOOL_KBD_RULE) -_IT_SUBST(INTLTOOL_XML_RULE) -_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) -_IT_SUBST(INTLTOOL_CAVES_RULE) -_IT_SUBST(INTLTOOL_SCHEMAS_RULE) -_IT_SUBST(INTLTOOL_THEME_RULE) -_IT_SUBST(INTLTOOL_SERVICE_RULE) -_IT_SUBST(INTLTOOL_POLICY_RULE) - -# Check the gettext tools to make sure they are GNU -AC_PATH_PROG(XGETTEXT, xgettext) -AC_PATH_PROG(MSGMERGE, msgmerge) -AC_PATH_PROG(MSGFMT, msgfmt) -AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) -if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) -fi -xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" -mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" -mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) -fi - -AC_PATH_PROG(INTLTOOL_PERL, perl) -if test -z "$INTLTOOL_PERL"; then - AC_MSG_ERROR([perl not found]) -fi -AC_MSG_CHECKING([for perl >= 5.8.1]) -$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 -if test $? -ne 0; then - AC_MSG_ERROR([perl 5.8.1 is required for intltool]) -else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" - AC_MSG_RESULT([$IT_PERL_VERSION]) -fi -if test "x$2" != "xno-xml"; then - AC_MSG_CHECKING([for XML::Parser]) - if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - AC_MSG_RESULT([ok]) - else - AC_MSG_ERROR([XML::Parser perl module is required for intltool]) - fi -fi - -# Substitute ALL_LINGUAS so we can use it in po/Makefile -AC_SUBST(ALL_LINGUAS) - -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[]], - [[extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr]])], - [DATADIRNAME=share], - [case $host in - *-*-solaris*) - dnl On Solaris, if bind_textdomain_codeset is in libc, - dnl GNU format message catalog is always supported, - dnl since both are added to the libc all together. - dnl Hence, we'd like to go with DATADIRNAME=share - dnl in this case. - AC_CHECK_FUNC(bind_textdomain_codeset, - [DATADIRNAME=share], [DATADIRNAME=lib]) - ;; - *) - [DATADIRNAME=lib] - ;; - esac]) -fi -AC_SUBST(DATADIRNAME) - -IT_PO_SUBDIR([po]) - -]) - - -# IT_PO_SUBDIR(DIRNAME) -# --------------------- -# All po subdirs have to be declared with this macro; the subdir "po" is -# declared by IT_PROG_INTLTOOL. -# -AC_DEFUN([IT_PO_SUBDIR], -[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. -dnl -dnl The following CONFIG_COMMANDS should be executed at the very end -dnl of config.status. -AC_CONFIG_COMMANDS_PRE([ - AC_CONFIG_COMMANDS([$1/stamp-it], [ - if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then - AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) - fi - rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" - >"$1/stamp-it.tmp" - [sed '/^#/d - s/^[[].*] *// - /^[ ]*$/d - '"s|^| $ac_top_srcdir/|" \ - "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" - ] - [sed '/^POTFILES =/,/[^\\]$/ { - /^POTFILES =/!d - r $1/POTFILES - } - ' "$1/Makefile.in" >"$1/Makefile"] - rm -f "$1/Makefile.tmp" - mv "$1/stamp-it.tmp" "$1/stamp-it" - ]) -])dnl -]) - -# _IT_SUBST(VARIABLE) -# ------------------- -# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST -# -AC_DEFUN([_IT_SUBST], -[ -AC_SUBST([$1]) -m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) -] -) - -# deprecated macros -AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) -# A hint is needed for aclocal from Automake <= 1.9.4: -# AC_DEFUN([AC_PROG_INTLTOOL], ...) - diff -Nru network-manager-applet-0.9.4.1/m4/libtool.m4 network-manager-applet-0.9.6.2+git201210311320.2620/m4/libtool.m4 --- network-manager-applet-0.9.4.1/m4/libtool.m4 2012-02-06 14:51:56.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/m4/libtool.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,7835 +0,0 @@ -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -m4_define([_LT_COPYING], [dnl -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -]) - -# serial 57 LT_INIT - - -# LT_PREREQ(VERSION) -# ------------------ -# Complain and exit if this libtool version is less that VERSION. -m4_defun([LT_PREREQ], -[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, - [m4_default([$3], - [m4_fatal([Libtool version $1 or higher is required], - 63)])], - [$2])]) - - -# _LT_CHECK_BUILDDIR -# ------------------ -# Complain if the absolute build directory name contains unusual characters -m4_defun([_LT_CHECK_BUILDDIR], -[case `pwd` in - *\ * | *\ *) - AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; -esac -]) - - -# LT_INIT([OPTIONS]) -# ------------------ -AC_DEFUN([LT_INIT], -[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT -AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -AC_BEFORE([$0], [LT_LANG])dnl -AC_BEFORE([$0], [LT_OUTPUT])dnl -AC_BEFORE([$0], [LTDL_INIT])dnl -m4_require([_LT_CHECK_BUILDDIR])dnl - -dnl Autoconf doesn't catch unexpanded LT_ macros by default: -m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl -m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl -dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 -dnl unless we require an AC_DEFUNed macro: -AC_REQUIRE([LTOPTIONS_VERSION])dnl -AC_REQUIRE([LTSUGAR_VERSION])dnl -AC_REQUIRE([LTVERSION_VERSION])dnl -AC_REQUIRE([LTOBSOLETE_VERSION])dnl -m4_require([_LT_PROG_LTMAIN])dnl - -_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) - -dnl Parse OPTIONS -_LT_SET_OPTIONS([$0], [$1]) - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -_LT_SETUP - -# Only expand once: -m4_define([LT_INIT]) -])# LT_INIT - -# Old names: -AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) -AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PROG_LIBTOOL], []) -dnl AC_DEFUN([AM_PROG_LIBTOOL], []) - - -# _LT_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -]) - - -# _LT_FILEUTILS_DEFAULTS -# ---------------------- -# It is okay to use these file commands and assume they have been set -# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. -m4_defun([_LT_FILEUTILS_DEFAULTS], -[: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} -])# _LT_FILEUTILS_DEFAULTS - - -# _LT_SETUP -# --------- -m4_defun([_LT_SETUP], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl - -_LT_DECL([], [host_alias], [0], [The host system])dnl -_LT_DECL([], [host], [0])dnl -_LT_DECL([], [host_os], [0])dnl -dnl -_LT_DECL([], [build_alias], [0], [The build system])dnl -_LT_DECL([], [build], [0])dnl -_LT_DECL([], [build_os], [0])dnl -dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -test -z "$LN_S" && LN_S="ln -s" -_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl -dnl -AC_REQUIRE([LT_CMD_MAX_LEN])dnl -_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl -_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl -dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl -m4_require([_LT_CMD_RELOAD])dnl -m4_require([_LT_CHECK_MAGIC_METHOD])dnl -m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl -m4_require([_LT_CMD_OLD_ARCHIVE])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_WITH_SYSROOT])dnl - -_LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi -]) -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -_LT_CHECK_OBJDIR - -m4_require([_LT_TAG_COMPILER])dnl - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -_LT_CC_BASENAME([$compiler]) - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - _LT_PATH_MAGIC - fi - ;; -esac - -# Use C for the default configuration in the libtool script -LT_SUPPORTED_TAG([CC]) -_LT_LANG_C_CONFIG -_LT_LANG_DEFAULT_CONFIG -_LT_CONFIG_COMMANDS -])# _LT_SETUP - - -# _LT_PREPARE_SED_QUOTE_VARS -# -------------------------- -# Define a few sed substitution that help us do robust quoting. -m4_defun([_LT_PREPARE_SED_QUOTE_VARS], -[# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([["`\\]]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' -]) - -# _LT_PROG_LTMAIN -# --------------- -# Note that this code is called both from `configure', and `config.status' -# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# `config.status' has no value for ac_aux_dir unless we are using Automake, -# so we pass a copy along to make sure it has a sensible value anyway. -m4_defun([_LT_PROG_LTMAIN], -[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl -_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -ltmain="$ac_aux_dir/ltmain.sh" -])# _LT_PROG_LTMAIN - - -## ------------------------------------- ## -## Accumulate code for creating libtool. ## -## ------------------------------------- ## - -# So that we can recreate a full libtool script including additional -# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the `libtool' -# label. - - -# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) -# ---------------------------------------- -# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL_INIT], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_INIT], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_INIT]) - - -# _LT_CONFIG_LIBTOOL([COMMANDS]) -# ------------------------------ -# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) - - -# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) -# ----------------------------------------------------- -m4_defun([_LT_CONFIG_SAVE_COMMANDS], -[_LT_CONFIG_LIBTOOL([$1]) -_LT_CONFIG_LIBTOOL_INIT([$2]) -]) - - -# _LT_FORMAT_COMMENT([COMMENT]) -# ----------------------------- -# Add leading comment marks to the start of each line, and a trailing -# full-stop to the whole comment if one is not present already. -m4_define([_LT_FORMAT_COMMENT], -[m4_ifval([$1], [ -m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], - [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) -)]) - - - -## ------------------------ ## -## FIXME: Eliminate VARNAME ## -## ------------------------ ## - - -# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) -# ------------------------------------------------------------------- -# CONFIGNAME is the name given to the value in the libtool script. -# VARNAME is the (base) name used in the configure script. -# VALUE may be 0, 1 or 2 for a computed quote escaped value based on -# VARNAME. Any other value will be used directly. -m4_define([_LT_DECL], -[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], - [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], - [m4_ifval([$1], [$1], [$2])]) - lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) - m4_ifval([$4], - [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) - lt_dict_add_subkey([lt_decl_dict], [$2], - [tagged?], [m4_ifval([$5], [yes], [no])])]) -]) - - -# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) -# -------------------------------------------------------- -m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) - - -# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_tag_varnames], -[_lt_decl_filter([tagged?], [yes], $@)]) - - -# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) -# --------------------------------------------------------- -m4_define([_lt_decl_filter], -[m4_case([$#], - [0], [m4_fatal([$0: too few arguments: $#])], - [1], [m4_fatal([$0: too few arguments: $#: $1])], - [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], - [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], - [lt_dict_filter([lt_decl_dict], $@)])[]dnl -]) - - -# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) -# -------------------------------------------------- -m4_define([lt_decl_quote_varnames], -[_lt_decl_filter([value], [1], $@)]) - - -# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_dquote_varnames], -[_lt_decl_filter([value], [2], $@)]) - - -# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_varnames_tagged], -[m4_assert([$# <= 2])dnl -_$0(m4_quote(m4_default([$1], [[, ]])), - m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), - m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) -m4_define([_lt_decl_varnames_tagged], -[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) - - -# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_all_varnames], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_if([$2], [], - m4_quote(lt_decl_varnames), - m4_quote(m4_shift($@))))[]dnl -]) -m4_define([_lt_decl_all_varnames], -[lt_join($@, lt_decl_varnames_tagged([$1], - lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl -]) - - -# _LT_CONFIG_STATUS_DECLARE([VARNAME]) -# ------------------------------------ -# Quote a variable value, and forward it to `config.status' so that its -# declaration there will have the same value as in `configure'. VARNAME -# must have a single quote delimited value for this to work. -m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) - - -# _LT_CONFIG_STATUS_DECLARATIONS -# ------------------------------ -# We delimit libtool config variables with single quotes, so when -# we write them to config.status, we have to be sure to quote all -# embedded single quotes properly. In configure, this macro expands -# each variable declared with _LT_DECL (and _LT_TAGDECL) into: -# -# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' -m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], -[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), - [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAGS -# ---------------- -# Output comment and list of tags supported by the script -m4_defun([_LT_LIBTOOL_TAGS], -[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags="_LT_TAGS"dnl -]) - - -# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) -# ----------------------------------- -# Extract the dictionary values for VARNAME (optionally with TAG) and -# expand to a commented shell variable setting: -# -# # Some comment about what VAR is for. -# visible_name=$lt_internal_name -m4_define([_LT_LIBTOOL_DECLARE], -[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], - [description])))[]dnl -m4_pushdef([_libtool_name], - m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl -m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), - [0], [_libtool_name=[$]$1], - [1], [_libtool_name=$lt_[]$1], - [2], [_libtool_name=$lt_[]$1], - [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl -m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl -]) - - -# _LT_LIBTOOL_CONFIG_VARS -# ----------------------- -# Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' -# script. Tagged libtool config variables (even for the LIBTOOL CONFIG -# section) are produced by _LT_LIBTOOL_TAG_VARS. -m4_defun([_LT_LIBTOOL_CONFIG_VARS], -[m4_foreach([_lt_var], - m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAG_VARS(TAG) -# ------------------------- -m4_define([_LT_LIBTOOL_TAG_VARS], -[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) - - -# _LT_TAGVAR(VARNAME, [TAGNAME]) -# ------------------------------ -m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) - - -# _LT_CONFIG_COMMANDS -# ------------------- -# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of -# variables for single and double quote escaping we saved from calls -# to _LT_DECL, we can put quote escaped variables declarations -# into `config.status', and then the shell code to quote escape them in -# for loops in `config.status'. Finally, any additional code accumulated -# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. -m4_defun([_LT_CONFIG_COMMANDS], -[AC_PROVIDE_IFELSE([LT_OUTPUT], - dnl If the libtool generation code has been placed in $CONFIG_LT, - dnl instead of duplicating it all over again into config.status, - dnl then we will have config.status run $CONFIG_LT later, so it - dnl needs to know what name is stored there: - [AC_CONFIG_COMMANDS([libtool], - [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], - dnl If the libtool generation code is destined for config.status, - dnl expand the accumulated commands and init code now: - [AC_CONFIG_COMMANDS([libtool], - [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) -])#_LT_CONFIG_COMMANDS - - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], -[ - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -_LT_CONFIG_STATUS_DECLARATIONS -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$[]1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -_LT_OUTPUT_LIBTOOL_INIT -]) - -# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) -# ------------------------------------ -# Generate a child script FILE with all initialization necessary to -# reuse the environment learned by the parent script, and make the -# file executable. If COMMENT is supplied, it is inserted after the -# `#!' sequence but before initialization text begins. After this -# macro, additional text can be appended to FILE to form the body of -# the child script. The macro ends with non-zero status if the -# file could not be fully written (such as if the disk is full). -m4_ifdef([AS_INIT_GENERATED], -[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], -[m4_defun([_LT_GENERATED_FILE_INIT], -[m4_require([AS_PREPARE])]dnl -[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl -[lt_write_fail=0 -cat >$1 <<_ASEOF || lt_write_fail=1 -#! $SHELL -# Generated by $as_me. -$2 -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$1 <<\_ASEOF || lt_write_fail=1 -AS_SHELL_SANITIZE -_AS_PREPARE -exec AS_MESSAGE_FD>&1 -_ASEOF -test $lt_write_fail = 0 && chmod +x $1[]dnl -m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT - -# LT_OUTPUT -# --------- -# This macro allows early generation of the libtool script (before -# AC_OUTPUT is called), incase it is used in configure for compilation -# tests. -AC_DEFUN([LT_OUTPUT], -[: ${CONFIG_LT=./config.lt} -AC_MSG_NOTICE([creating $CONFIG_LT]) -_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], -[# Run this file to recreate a libtool stub with the current configuration.]) - -cat >>"$CONFIG_LT" <<\_LTEOF -lt_cl_silent=false -exec AS_MESSAGE_LOG_FD>>config.log -{ - echo - AS_BOX([Running $as_me.]) -} >&AS_MESSAGE_LOG_FD - -lt_cl_help="\ -\`$as_me' creates a local libtool stub from the current configuration, -for use in further configure time tests before the real libtool is -generated. - -Usage: $[0] [[OPTIONS]] - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - -Report bugs to ." - -lt_cl_version="\ -m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl -m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) -configured by $[0], generated by m4_PACKAGE_STRING. - -Copyright (C) 2010 Free Software Foundation, Inc. -This config.lt script is free software; the Free Software Foundation -gives unlimited permision to copy, distribute and modify it." - -while test $[#] != 0 -do - case $[1] in - --version | --v* | -V ) - echo "$lt_cl_version"; exit 0 ;; - --help | --h* | -h ) - echo "$lt_cl_help"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --quiet | --q* | --silent | --s* | -q ) - lt_cl_silent=: ;; - - -*) AC_MSG_ERROR([unrecognized option: $[1] -Try \`$[0] --help' for more information.]) ;; - - *) AC_MSG_ERROR([unrecognized argument: $[1] -Try \`$[0] --help' for more information.]) ;; - esac - shift -done - -if $lt_cl_silent; then - exec AS_MESSAGE_FD>/dev/null -fi -_LTEOF - -cat >>"$CONFIG_LT" <<_LTEOF -_LT_OUTPUT_LIBTOOL_COMMANDS_INIT -_LTEOF - -cat >>"$CONFIG_LT" <<\_LTEOF -AC_MSG_NOTICE([creating $ofile]) -_LT_OUTPUT_LIBTOOL_COMMANDS -AS_EXIT(0) -_LTEOF -chmod +x "$CONFIG_LT" - -# configure is writing to config.log, but config.lt does its own redirection, -# appending to config.log, which fails on DOS, as config.log is still kept -# open by configure. Here we exec the FD to /dev/null, effectively closing -# config.log, so it can be properly (re)opened and appended to by config.lt. -lt_cl_success=: -test "$silent" = yes && - lt_config_lt_args="$lt_config_lt_args --quiet" -exec AS_MESSAGE_LOG_FD>/dev/null -$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false -exec AS_MESSAGE_LOG_FD>>config.log -$lt_cl_success || AS_EXIT(1) -])# LT_OUTPUT - - -# _LT_CONFIG(TAG) -# --------------- -# If TAG is the built-in tag, create an initial libtool script with a -# default configuration from the untagged config vars. Otherwise add code -# to config.status for appending the configuration named by TAG from the -# matching tagged config vars. -m4_defun([_LT_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_CONFIG_SAVE_COMMANDS([ - m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl - m4_if(_LT_TAG, [C], [ - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -_LT_COPYING -_LT_LIBTOOL_TAGS - -# ### BEGIN LIBTOOL CONFIG -_LT_LIBTOOL_CONFIG_VARS -_LT_LIBTOOL_TAG_VARS -# ### END LIBTOOL CONFIG - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - _LT_PROG_LTMAIN - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - _LT_PROG_REPLACE_SHELLFNS - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -], -[cat <<_LT_EOF >> "$ofile" - -dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded -dnl in a comment (ie after a #). -# ### BEGIN LIBTOOL TAG CONFIG: $1 -_LT_LIBTOOL_TAG_VARS(_LT_TAG) -# ### END LIBTOOL TAG CONFIG: $1 -_LT_EOF -])dnl /m4_if -], -[m4_if([$1], [], [ - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile'], []) -])dnl /_LT_CONFIG_SAVE_COMMANDS -])# _LT_CONFIG - - -# LT_SUPPORTED_TAG(TAG) -# --------------------- -# Trace this macro to discover what tags are supported by the libtool -# --tag option, using: -# autoconf --trace 'LT_SUPPORTED_TAG:$1' -AC_DEFUN([LT_SUPPORTED_TAG], []) - - -# C support is built-in for now -m4_define([_LT_LANG_C_enabled], []) -m4_define([_LT_TAGS], []) - - -# LT_LANG(LANG) -# ------------- -# Enable libtool support for the given language if not already enabled. -AC_DEFUN([LT_LANG], -[AC_BEFORE([$0], [LT_OUTPUT])dnl -m4_case([$1], - [C], [_LT_LANG(C)], - [C++], [_LT_LANG(CXX)], - [Java], [_LT_LANG(GCJ)], - [Fortran 77], [_LT_LANG(F77)], - [Fortran], [_LT_LANG(FC)], - [Windows Resource], [_LT_LANG(RC)], - [m4_ifdef([_LT_LANG_]$1[_CONFIG], - [_LT_LANG($1)], - [m4_fatal([$0: unsupported language: "$1"])])])dnl -])# LT_LANG - - -# _LT_LANG(LANGNAME) -# ------------------ -m4_defun([_LT_LANG], -[m4_ifdef([_LT_LANG_]$1[_enabled], [], - [LT_SUPPORTED_TAG([$1])dnl - m4_append([_LT_TAGS], [$1 ])dnl - m4_define([_LT_LANG_]$1[_enabled], [])dnl - _LT_LANG_$1_CONFIG($1)])dnl -])# _LT_LANG - - -# _LT_LANG_DEFAULT_CONFIG -# ----------------------- -m4_defun([_LT_LANG_DEFAULT_CONFIG], -[AC_PROVIDE_IFELSE([AC_PROG_CXX], - [LT_LANG(CXX)], - [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) - -AC_PROVIDE_IFELSE([AC_PROG_F77], - [LT_LANG(F77)], - [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) - -AC_PROVIDE_IFELSE([AC_PROG_FC], - [LT_LANG(FC)], - [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) - -dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal -dnl pulling things in needlessly. -AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([LT_PROG_GCJ], - [LT_LANG(GCJ)], - [m4_ifdef([AC_PROG_GCJ], - [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([A][M_PROG_GCJ], - [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([LT_PROG_GCJ], - [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) - -AC_PROVIDE_IFELSE([LT_PROG_RC], - [LT_LANG(RC)], - [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) -])# _LT_LANG_DEFAULT_CONFIG - -# Obsolete macros: -AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) -AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) -AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) -AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) -AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_CXX], []) -dnl AC_DEFUN([AC_LIBTOOL_F77], []) -dnl AC_DEFUN([AC_LIBTOOL_FC], []) -dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) -dnl AC_DEFUN([AC_LIBTOOL_RC], []) - - -# _LT_TAG_COMPILER -# ---------------- -m4_defun([_LT_TAG_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl - -_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl -_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl -_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl -_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_TAG_COMPILER - - -# _LT_COMPILER_BOILERPLATE -# ------------------------ -# Check for compiler boilerplate output or warnings with -# the simple compiler test code. -m4_defun([_LT_COMPILER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* -])# _LT_COMPILER_BOILERPLATE - - -# _LT_LINKER_BOILERPLATE -# ---------------------- -# Check for linker boilerplate output or warnings with -# the simple link test code. -m4_defun([_LT_LINKER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* -])# _LT_LINKER_BOILERPLATE - -# _LT_REQUIRED_DARWIN_CHECKS -# ------------------------- -m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ - case $host_os in - rhapsody* | darwin*) - AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) - AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) - AC_CHECK_TOOL([LIPO], [lipo], [:]) - AC_CHECK_TOOL([OTOOL], [otool], [:]) - AC_CHECK_TOOL([OTOOL64], [otool64], [:]) - _LT_DECL([], [DSYMUTIL], [1], - [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) - _LT_DECL([], [NMEDIT], [1], - [Tool to change global to local symbols on Mac OS X]) - _LT_DECL([], [LIPO], [1], - [Tool to manipulate fat objects and archives on Mac OS X]) - _LT_DECL([], [OTOOL], [1], - [ldd/readelf like tool for Mach-O binaries on Mac OS X]) - _LT_DECL([], [OTOOL64], [1], - [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) - - AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], - [lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi]) - AC_CACHE_CHECK([for -exported_symbols_list linker flag], - [lt_cv_ld_exported_symbols_list], - [lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [lt_cv_ld_exported_symbols_list=yes], - [lt_cv_ld_exported_symbols_list=no]) - LDFLAGS="$save_LDFLAGS" - ]) - AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], - [lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD - echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD - $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - ]) - case $host_os in - rhapsody* | darwin1.[[012]]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[[012]]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac -]) - - -# _LT_DARWIN_LINKER_FEATURES -# -------------------------- -# Checks for linker and compiler features on darwin -m4_defun([_LT_DARWIN_LINKER_FEATURES], -[ - m4_require([_LT_REQUIRED_DARWIN_CHECKS]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_automatic, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='' - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all - _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - m4_if([$1], [CXX], -[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then - _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" - fi -],[]) - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -]) - -# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) -# ---------------------------------- -# Links a minimal program and checks the executable -# for the system default hardcoded library path. In most cases, -# this is /usr/lib:/lib, but when the MPI compilers are used -# the location of the communication and MPI libs are included too. -# If we don't find anything, use the default library path according -# to the aix ld manual. -# Store the results from the different compilers for each TAGNAME. -# Allow to override them for all tags through lt_cv_aix_libpath. -m4_defun([_LT_SYS_MODULE_PATH_AIX], -[m4_require([_LT_DECL_SED])dnl -if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], - [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ - lt_aix_libpath_sed='[ - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }]' - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi],[]) - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" - fi - ]) - aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) -fi -])# _LT_SYS_MODULE_PATH_AIX - - -# _LT_SHELL_INIT(ARG) -# ------------------- -m4_define([_LT_SHELL_INIT], -[m4_divert_text([M4SH-INIT], [$1 -])])# _LT_SHELL_INIT - - - -# _LT_PROG_ECHO_BACKSLASH -# ----------------------- -# Find how we can fake an echo command that does not interpret backslash. -# In particular, with Autoconf 2.60 or later we add some code to the start -# of the generated configure script which will find a shell with a builtin -# printf (which we can use as an echo command). -m4_defun([_LT_PROG_ECHO_BACKSLASH], -[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -AC_MSG_CHECKING([how to print strings]) -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$[]1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - -case "$ECHO" in - printf*) AC_MSG_RESULT([printf]) ;; - print*) AC_MSG_RESULT([print -r]) ;; - *) AC_MSG_RESULT([cat]) ;; -esac - -m4_ifdef([_AS_DETECT_SUGGESTED], -[_AS_DETECT_SUGGESTED([ - test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test "X`printf %s $ECHO`" = "X$ECHO" \ - || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) - -_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) -])# _LT_PROG_ECHO_BACKSLASH - - -# _LT_WITH_SYSROOT -# ---------------- -AC_DEFUN([_LT_WITH_SYSROOT], -[AC_MSG_CHECKING([for sysroot]) -AC_ARG_WITH([sysroot], -[ --with-sysroot[=DIR] Search for dependent libraries within DIR - (or the compiler's sysroot if not specified).], -[], [with_sysroot=no]) - -dnl lt_sysroot will always be passed unquoted. We quote it here -dnl in case the user passed a directory name. -lt_sysroot= -case ${with_sysroot} in #( - yes) - if test "$GCC" = yes; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - AC_MSG_RESULT([${with_sysroot}]) - AC_MSG_ERROR([The sysroot must be an absolute path.]) - ;; -esac - - AC_MSG_RESULT([${lt_sysroot:-no}]) -_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl -[dependent libraries, and in which our libraries should be installed.])]) - -# _LT_ENABLE_LOCK -# --------------- -m4_defun([_LT_ENABLE_LOCK], -[AC_ARG_ENABLE([libtool-lock], - [AS_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_LANG_PUSH(C) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -sparc*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks="$enable_libtool_lock" -])# _LT_ENABLE_LOCK - - -# _LT_PROG_AR -# ----------- -m4_defun([_LT_PROG_AR], -[AC_CHECK_TOOLS(AR, [ar], false) -: ${AR=ar} -: ${AR_FLAGS=cru} -_LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) - -AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], - [lt_cv_ar_at_file=no - AC_COMPILE_IFELSE([AC_LANG_PROGRAM], - [echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - ]) - ]) - -if test "x$lt_cv_ar_at_file" = xno; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi -_LT_DECL([], [archiver_list_spec], [1], - [How to feed a file listing to the archiver]) -])# _LT_PROG_AR - - -# _LT_CMD_OLD_ARCHIVE -# ------------------- -m4_defun([_LT_CMD_OLD_ARCHIVE], -[_LT_PROG_AR - -AC_CHECK_TOOL(STRIP, strip, :) -test -z "$STRIP" && STRIP=: -_LT_DECL([], [STRIP], [1], [A symbol stripping program]) - -AC_CHECK_TOOL(RANLIB, ranlib, :) -test -z "$RANLIB" && RANLIB=: -_LT_DECL([], [RANLIB], [1], - [Commands used to install an old-style archive]) - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac -_LT_DECL([], [old_postinstall_cmds], [2]) -_LT_DECL([], [old_postuninstall_cmds], [2]) -_LT_TAGDECL([], [old_archive_cmds], [2], - [Commands used to build an old-style archive]) -_LT_DECL([], [lock_old_archive_extraction], [0], - [Whether to use a lock for old archive extraction]) -])# _LT_CMD_OLD_ARCHIVE - - -# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([_LT_COMPILER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - fi - $RM conftest* -]) - -if test x"[$]$2" = xyes; then - m4_if([$5], , :, [$5]) -else - m4_if([$6], , :, [$6]) -fi -])# _LT_COMPILER_OPTION - -# Old name: -AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) - - -# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------- -# Check whether the given linker option works -AC_DEFUN([_LT_LINKER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - else - $2=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" -]) - -if test x"[$]$2" = xyes; then - m4_if([$4], , :, [$4]) -else - m4_if([$5], , :, [$5]) -fi -])# _LT_LINKER_OPTION - -# Old name: -AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) - - -# LT_CMD_MAX_LEN -#--------------- -AC_DEFUN([LT_CMD_MAX_LEN], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac -]) -if test -n $lt_cv_sys_max_cmd_len ; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -max_cmd_len=$lt_cv_sys_max_cmd_len -_LT_DECL([], [max_cmd_len], [0], - [What is the maximum length of a command?]) -])# LT_CMD_MAX_LEN - -# Old name: -AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) - - -# _LT_HEADER_DLFCN -# ---------------- -m4_defun([_LT_HEADER_DLFCN], -[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl -])# _LT_HEADER_DLFCN - - -# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ---------------------------------------------------------------- -m4_defun([_LT_TRY_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test "$cross_compiling" = yes; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -[#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -}] -_LT_EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_dlunknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_TRY_DLOPEN_SELF - - -# LT_SYS_DLOPEN_SELF -# ------------------ -AC_DEFUN([LT_SYS_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ]) - ;; - - *) - AC_CHECK_FUNC([shl_load], - [lt_cv_dlopen="shl_load"], - [AC_CHECK_LIB([dld], [shl_load], - [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], - [AC_CHECK_FUNC([dlopen], - [lt_cv_dlopen="dlopen"], - [AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], - [AC_CHECK_LIB([svld], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], - [AC_CHECK_LIB([dld], [dld_link], - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) - ]) - ]) - ]) - ]) - ]) - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - AC_CACHE_CHECK([whether a program can dlopen itself], - lt_cv_dlopen_self, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, - lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) - ]) - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, - lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) - ]) - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi -_LT_DECL([dlopen_support], [enable_dlopen], [0], - [Whether dlopen is supported]) -_LT_DECL([dlopen_self], [enable_dlopen_self], [0], - [Whether dlopen of programs is supported]) -_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], - [Whether dlopen of statically linked programs is supported]) -])# LT_SYS_DLOPEN_SELF - -# Old name: -AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) - - -# _LT_COMPILER_C_O([TAGNAME]) -# --------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler. -# This macro does not hard code the compiler like AC_PROG_CC_C_O. -m4_defun([_LT_COMPILER_C_O], -[m4_require([_LT_DECL_SED])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . 2>&AS_MESSAGE_LOG_FD - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* -]) -_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], - [Does compiler simultaneously support -c and -o options?]) -])# _LT_COMPILER_C_O - - -# _LT_COMPILER_FILE_LOCKS([TAGNAME]) -# ---------------------------------- -# Check to see if we can do hard links to lock some files if needed -m4_defun([_LT_COMPILER_FILE_LOCKS], -[m4_require([_LT_ENABLE_LOCK])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_COMPILER_C_O([$1]) - -hard_links="nottested" -if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - AC_MSG_RESULT([$hard_links]) - if test "$hard_links" = no; then - AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) - need_locks=warn - fi -else - need_locks=no -fi -_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) -])# _LT_COMPILER_FILE_LOCKS - - -# _LT_CHECK_OBJDIR -# ---------------- -m4_defun([_LT_CHECK_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null]) -objdir=$lt_cv_objdir -_LT_DECL([], [objdir], [0], - [The name of the directory that contains temporary libtool files])dnl -m4_pattern_allow([LT_OBJDIR])dnl -AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", - [Define to the sub-directory in which libtool stores uninstalled libraries.]) -])# _LT_CHECK_OBJDIR - - -# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) -# -------------------------------------- -# Check hardcoding attributes. -m4_defun([_LT_LINKER_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || - test -n "$_LT_TAGVAR(runpath_var, $1)" || - test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then - # Linking always hardcodes the temporary library directory. - _LT_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) - -if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || - test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi -_LT_TAGDECL([], [hardcode_action], [0], - [How to hardcode a shared library path into an executable]) -])# _LT_LINKER_HARDCODE_LIBPATH - - -# _LT_CMD_STRIPLIB -# ---------------- -m4_defun([_LT_CMD_STRIPLIB], -[m4_require([_LT_DECL_EGREP]) -striplib= -old_striplib= -AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -fi -_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) -_LT_DECL([], [striplib], [1]) -])# _LT_CMD_STRIPLIB - - -# _LT_SYS_DYNAMIC_LINKER([TAG]) -# ----------------------------- -# PORTME Fill in your ld.so characteristics -m4_defun([_LT_SYS_DYNAMIC_LINKER], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_OBJDUMP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -AC_MSG_CHECKING([dynamic linker characteristics]) -m4_if([$1], - [], [ -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[[lt_foo]]++; } - if (lt_freq[[lt_foo]] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[[4-9]]*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[[01]] | aix4.[[01]].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[[45]]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec="$LIB" - if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[[123]]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[[01]]* | freebsdelf3.[[01]]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ - freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -haiku*) - version_type=linux - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[[3-9]]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], - [lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ - LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], - [lt_cv_shlibpath_overrides_runpath=yes])]) - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - ]) - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Add ABI-specific directories to the system library path. - sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" - - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - -_LT_DECL([], [variables_saved_for_relink], [1], - [Variables whose values should be saved in libtool wrapper scripts and - restored at link time]) -_LT_DECL([], [need_lib_prefix], [0], - [Do we need the "lib" prefix for modules?]) -_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) -_LT_DECL([], [version_type], [0], [Library versioning type]) -_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) -_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) -_LT_DECL([], [shlibpath_overrides_runpath], [0], - [Is shlibpath searched before the hard-coded library search path?]) -_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) -_LT_DECL([], [library_names_spec], [1], - [[List of archive names. First name is the real one, the rest are links. - The last name is the one that the linker finds with -lNAME]]) -_LT_DECL([], [soname_spec], [1], - [[The coded name of the library, if different from the real name]]) -_LT_DECL([], [install_override_mode], [1], - [Permission mode override for installation of shared libraries]) -_LT_DECL([], [postinstall_cmds], [2], - [Command to use after installation of a shared archive]) -_LT_DECL([], [postuninstall_cmds], [2], - [Command to use after uninstallation of a shared archive]) -_LT_DECL([], [finish_cmds], [2], - [Commands used to finish a libtool library installation in a directory]) -_LT_DECL([], [finish_eval], [1], - [[As "finish_cmds", except a single script fragment to be evaled but - not shown]]) -_LT_DECL([], [hardcode_into_libs], [0], - [Whether we should hardcode library paths into libraries]) -_LT_DECL([], [sys_lib_search_path_spec], [2], - [Compile-time system search path for libraries]) -_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], - [Run-time system search path for libraries]) -])# _LT_SYS_DYNAMIC_LINKER - - -# _LT_PATH_TOOL_PREFIX(TOOL) -# -------------------------- -# find a file program which can recognize shared library -AC_DEFUN([_LT_PATH_TOOL_PREFIX], -[m4_require([_LT_DECL_EGREP])dnl -AC_MSG_CHECKING([for $1]) -AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -[case $MAGIC_CMD in -[[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -dnl $ac_dummy forces splitting on constant user-supplied paths. -dnl POSIX.2 word splitting is done only on the output of word expansions, -dnl not every word. This closes a longstanding sh security hole. - ac_dummy="m4_if([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$1; then - lt_cv_path_MAGIC_CMD="$ac_dir/$1" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac]) -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) -else - AC_MSG_RESULT(no) -fi -_LT_DECL([], [MAGIC_CMD], [0], - [Used to examine libraries when file_magic_cmd begins with "file"])dnl -])# _LT_PATH_TOOL_PREFIX - -# Old name: -AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) - - -# _LT_PATH_MAGIC -# -------------- -# find a file program which can recognize a shared library -m4_defun([_LT_PATH_MAGIC], -[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=: - fi -fi -])# _LT_PATH_MAGIC - - -# LT_PATH_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([LT_PATH_LD], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PROG_ECHO_BACKSLASH])dnl - -AC_ARG_WITH([gnu-ld], - [AS_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no])dnl - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(lt_cv_path_LD, -[if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[[3-9]]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - -_LT_DECL([], [deplibs_check_method], [1], - [Method to check whether dependent libraries are shared objects]) -_LT_DECL([], [file_magic_cmd], [1], - [Command to use when deplibs_check_method = "file_magic"]) -_LT_DECL([], [file_magic_glob], [1], - [How to find potential files when deplibs_check_method = "file_magic"]) -_LT_DECL([], [want_nocaseglob], [1], - [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) -])# _LT_CHECK_MAGIC_METHOD - - -# LT_PATH_NM -# ---------- -# find the pathname to a BSD- or MS-compatible name lister -AC_DEFUN([LT_PATH_NM], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi]) -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - DUMPBIN=: - ;; - esac - fi - AC_SUBST([DUMPBIN]) - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi -fi -test -z "$NM" && NM=nm -AC_SUBST([NM]) -_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl - -AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], - [lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) - cat conftest.out >&AS_MESSAGE_LOG_FD - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest*]) -])# LT_PATH_NM - -# Old names: -AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) -AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_PROG_NM], []) -dnl AC_DEFUN([AC_PROG_NM], []) - -# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -# -------------------------------- -# how to determine the name of the shared library -# associated with a specific link library. -# -- PORTME fill in with the dynamic library characteristics -m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], -[m4_require([_LT_DECL_EGREP]) -m4_require([_LT_DECL_OBJDUMP]) -m4_require([_LT_DECL_DLLTOOL]) -AC_CACHE_CHECK([how to associate runtime and link libraries], -lt_cv_sharedlib_from_linklib_cmd, -[lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" - ;; -esac -]) -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - -_LT_DECL([], [sharedlib_from_linklib_cmd], [1], - [Command to associate shared and link libraries]) -])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB - - -# _LT_PATH_MANIFEST_TOOL -# ---------------------- -# locate the manifest tool -m4_defun([_LT_PATH_MANIFEST_TOOL], -[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], - [lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&AS_MESSAGE_LOG_FD - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest*]) -if test "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: -fi -_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl -])# _LT_PATH_MANIFEST_TOOL - - -# LT_LIB_M -# -------- -# check for math library -AC_DEFUN([LT_LIB_M], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) - # These system don't have libm, or don't need it - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, cos, LIBM="-lm") - ;; -esac -AC_SUBST([LIBM]) -])# LT_LIB_M - -# Old name: -AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_CHECK_LIBM], []) - - -# _LT_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------- -m4_defun([_LT_COMPILER_NO_RTTI], -[m4_require([_LT_TAG_COMPILER])dnl - -_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - -if test "$GCC" = yes; then - case $cc_basename in - nvcc*) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; - *) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; - esac - - _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -fi -_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], - [Compiler flag to turn off builtin functions]) -])# _LT_COMPILER_NO_RTTI - - -# _LT_CMD_GLOBAL_SYMBOLS -# ---------------------- -m4_defun([_LT_CMD_GLOBAL_SYMBOLS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([LT_PATH_NM])dnl -AC_REQUIRE([LT_PATH_LD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_TAG_COMPILER])dnl - -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -[ -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[[BCDEGRST]]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) - if test "$host_cpu" = ia64; then - symcode='[[ABCDEGRST]]' - fi - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris*) - symcode='[[BDRT]]' - ;; -sco3.2v5*) - symcode='[[DT]]' - ;; -sysv4.2uw2*) - symcode='[[DT]]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[[ABDT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK ['"\ -" {last_section=section; section=\$ 3};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx]" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT@&t@_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT@&t@_DLSYM_CONST -#else -# define LT@&t@_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT@&t@_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[[]] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD - fi - else - echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - -_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], - [Take the output of nm and produce a listing of raw symbols and C names]) -_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], - [Transform the output of nm in a proper C declaration]) -_LT_DECL([global_symbol_to_c_name_address], - [lt_cv_sys_global_symbol_to_c_name_address], [1], - [Transform the output of nm in a C name address pair]) -_LT_DECL([global_symbol_to_c_name_address_lib_prefix], - [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], - [Transform the output of nm in a C name address pair when lib prefix is needed]) -_LT_DECL([], [nm_file_list_spec], [1], - [Specify filename containing input files for $NM]) -]) # _LT_CMD_GLOBAL_SYMBOLS - - -# _LT_COMPILER_PIC([TAGNAME]) -# --------------------------- -m4_defun([_LT_COMPILER_PIC], -[m4_require([_LT_TAG_COMPILER])dnl -_LT_TAGVAR(lt_prog_compiler_wl, $1)= -_LT_TAGVAR(lt_prog_compiler_pic, $1)= -_LT_TAGVAR(lt_prog_compiler_static, $1)= - -m4_if([$1], [CXX], [ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - case $host_os in - aix[[4-9]]*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68*) - # Green Hills C++ Compiler - # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - dgux*) - case $cc_basename in - ec++*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - ghcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | dragonfly*) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - if test "$host_cpu" != ia64; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - KCC*) - # KAI C++ Compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - ecpc* ) - # old Intel C++ for x86_64 which still supported -KPIC. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - icpc* ) - # Intel C++, used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - cxx*) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) - # IBM XL 8.0, 9.0 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - esac - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd*) - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - ;; - RCC*) - # Rational C++ 2.4.1 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - cxx*) - # Digital/Compaq C++ - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - lcc*) - # Lucid - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - *) - ;; - esac - ;; - vxworks*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -], -[ - if test "$GCC" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - hpux9* | hpux10* | hpux11*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' - _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' - ;; - nagfor*) - # NAG Fortran compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - ccc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All Alpha code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='' - ;; - *Sun\ C*) - # Sun C 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - esac - ;; - esac - ;; - - newsos6) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All OSF/1 code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - rdos*) - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - solaris*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; - esac - ;; - - sunos4*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - unicos*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - - uts4*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -]) -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" - ;; -esac - -AC_CACHE_CHECK([for $compiler option to produce PIC], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then - _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], - [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], - [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; - esac], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -fi -_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], - [Additional compiler flags for building library objects]) - -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) -# -# Check to make sure the static flag actually works. -# -wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" -_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], - _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), - $lt_tmp_static_flag, - [], - [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) -_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], - [Compiler flag to prevent dynamic linking]) -])# _LT_COMPILER_PIC - - -# _LT_LINKER_SHLIBS([TAGNAME]) -# ---------------------------- -# See if the linker supports building shared libraries. -m4_defun([_LT_LINKER_SHLIBS], -[AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -m4_if([$1], [CXX], [ - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - case $host_os in - aix[[4-9]]*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global defined - # symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw* | cegcc*) - case $cc_basename in - cl*) ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - ;; - esac - ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac -], [ - runpath_var= - _LT_TAGVAR(allow_undefined_flag, $1)= - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(archive_cmds, $1)= - _LT_TAGVAR(archive_expsym_cmds, $1)= - _LT_TAGVAR(compiler_needs_object, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(hardcode_automatic, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= - _LT_TAGVAR(hardcode_libdir_separator, $1)= - _LT_TAGVAR(hardcode_minus_L, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_TAGVAR(inherit_rpath, $1)=no - _LT_TAGVAR(link_all_deplibs, $1)=unknown - _LT_TAGVAR(module_cmds, $1)= - _LT_TAGVAR(module_expsym_cmds, $1)= - _LT_TAGVAR(old_archive_from_new_cmds, $1)= - _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= - _LT_TAGVAR(thread_safe_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - _LT_TAGVAR(include_expsyms, $1)= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. -dnl Note also adjust exclude_expsyms for C++ above. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - _LT_TAGVAR(ld_shlibs, $1)=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; - *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[[3-9]]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - _LT_TAGVAR(whole_archive_flag_spec, $1)= - tmp_sharedflag='--shared' ;; - xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' - _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - sunos4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - - if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then - runpath_var= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; - - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; - - bsdi[[45]]*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl*) - # Native MSVC - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - esac - ;; - - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; - - dgux*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - freebsd1*) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - hpux9*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - m4_if($1, [], [ - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - _LT_LINKER_OPTION([if $CC understands -b], - _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], - [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) - ;; - esac - fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], - [lt_cv_irix_exported_symbol], - [save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - AC_LINK_IFELSE( - [AC_LANG_SOURCE( - [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], - [C++], [[int foo (void) { return 0; }]], - [Fortran 77], [[ - subroutine foo - end]], - [Fortran], [[ - subroutine foo - end]])])], - [lt_cv_irix_exported_symbol=yes], - [lt_cv_irix_exported_symbol=no]) - LDFLAGS="$save_LDFLAGS"]) - if test "$lt_cv_irix_exported_symbol" = yes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - fi - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - newsos6) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; - esac - fi - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - os2*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - solaris*) - _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - fi - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4) - case $host_vendor in - sni) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4.3*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_TAGVAR(ld_shlibs, $1)=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' - ;; - esac - fi - fi -]) -AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) -test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld - -_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl -_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl -_LT_DECL([], [extract_expsyms_cmds], [2], - [The commands to extract the exported symbol list from a shared archive]) - -# -# Do we need to explicitly link libc? -# -case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $_LT_TAGVAR(archive_cmds, $1) in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - AC_CACHE_CHECK([whether -lc should be explicitly linked in], - [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), - [$RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) - _LT_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) - then - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no - else - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - ]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) - ;; - esac - fi - ;; -esac - -_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], - [Whether or not to add -lc for building shared libraries]) -_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], - [enable_shared_with_static_runtimes], [0], - [Whether or not to disallow shared libs when runtime libs are static]) -_LT_TAGDECL([], [export_dynamic_flag_spec], [1], - [Compiler flag to allow reflexive dlopens]) -_LT_TAGDECL([], [whole_archive_flag_spec], [1], - [Compiler flag to generate shared objects directly from archives]) -_LT_TAGDECL([], [compiler_needs_object], [1], - [Whether the compiler copes with passing no objects directly]) -_LT_TAGDECL([], [old_archive_from_new_cmds], [2], - [Create an old-style archive from a shared archive]) -_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], - [Create a temporary old-style archive to link instead of a shared archive]) -_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) -_LT_TAGDECL([], [archive_expsym_cmds], [2]) -_LT_TAGDECL([], [module_cmds], [2], - [Commands used to build a loadable module if different from building - a shared archive.]) -_LT_TAGDECL([], [module_expsym_cmds], [2]) -_LT_TAGDECL([], [with_gnu_ld], [1], - [Whether we are building with GNU ld or not]) -_LT_TAGDECL([], [allow_undefined_flag], [1], - [Flag that allows shared libraries with undefined symbols to be built]) -_LT_TAGDECL([], [no_undefined_flag], [1], - [Flag that enforces no undefined symbols]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], - [Flag to hardcode $libdir into a binary during linking. - This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], - [[If ld is used when linking, flag to hardcode $libdir into a binary - during linking. This must work even if $libdir does not exist]]) -_LT_TAGDECL([], [hardcode_libdir_separator], [1], - [Whether we need a single "-rpath" flag with a separated argument]) -_LT_TAGDECL([], [hardcode_direct], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary]) -_LT_TAGDECL([], [hardcode_direct_absolute], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary and the resulting library dependency is - "absolute", i.e impossible to change by setting ${shlibpath_var} if the - library is relocated]) -_LT_TAGDECL([], [hardcode_minus_L], [0], - [Set to "yes" if using the -LDIR flag during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_shlibpath_var], [0], - [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_automatic], [0], - [Set to "yes" if building a shared library automatically hardcodes DIR - into the library and all subsequent libraries and executables linked - against it]) -_LT_TAGDECL([], [inherit_rpath], [0], - [Set to yes if linker adds runtime paths of dependent libraries - to runtime path list]) -_LT_TAGDECL([], [link_all_deplibs], [0], - [Whether libtool must link a program against all its dependency libraries]) -_LT_TAGDECL([], [always_export_symbols], [0], - [Set to "yes" if exported symbols are required]) -_LT_TAGDECL([], [export_symbols_cmds], [2], - [The commands to list exported symbols]) -_LT_TAGDECL([], [exclude_expsyms], [1], - [Symbols that should not be listed in the preloaded symbols]) -_LT_TAGDECL([], [include_expsyms], [1], - [Symbols that must always be exported]) -_LT_TAGDECL([], [prelink_cmds], [2], - [Commands necessary for linking programs (against libraries) with templates]) -_LT_TAGDECL([], [postlink_cmds], [2], - [Commands necessary for finishing linking programs]) -_LT_TAGDECL([], [file_list_spec], [1], - [Specify filename containing input files]) -dnl FIXME: Not yet implemented -dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], -dnl [Compiler flag to generate thread safe objects]) -])# _LT_LINKER_SHLIBS - - -# _LT_LANG_C_CONFIG([TAG]) -# ------------------------ -# Ensure that the configuration variables for a C compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_defun([_LT_LANG_C_CONFIG], -[m4_require([_LT_DECL_EGREP])dnl -lt_save_CC="$CC" -AC_LANG_PUSH(C) - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - -_LT_TAG_COMPILER -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - LT_SYS_DLOPEN_SELF - _LT_CMD_STRIPLIB - - # Report which library types will actually be built - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_CONFIG($1) -fi -AC_LANG_POP -CC="$lt_save_CC" -])# _LT_LANG_C_CONFIG - - -# _LT_LANG_CXX_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a C++ compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_defun([_LT_LANG_CXX_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -else - _lt_caught_CXX_error=yes -fi - -AC_LANG_PUSH(C++) -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(compiler_needs_object, $1)=no -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for C++ test sources. -ac_ext=cpp - -# Object file extension for compiled C++ test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the CXX compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_caught_CXX_error" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="int some_variable = 0;" - - # Code to be used in simple link tests - lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC=$CC - lt_save_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX - lt_save_with_gnu_ld=$with_gnu_ld - lt_save_path_LD=$lt_cv_path_LD - if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx - else - $as_unset lt_cv_prog_gnu_ld - fi - if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX - else - $as_unset lt_cv_path_LD - fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} - CFLAGS=$CXXFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - - if test -n "$compiler"; then - # We don't want -fno-exception when compiling C++ code, so set the - # no_builtin_flag separately - if test "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - else - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - fi - - if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - LT_PATH_LD - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | - $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - - else - GXX=no - with_gnu_ld=no - wlarc= - fi - - # PORTME: fill in a description of your system's C++ link characteristics - AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) - _LT_TAGVAR(ld_shlibs, $1)=yes - case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' - - if test "$GXX" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to - # export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared - # libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - cygwin* | mingw* | pw32* | cegcc*) - case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - func_to_tool_file "$lt_outputfile"~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # g++ - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; - - dgux*) - case $cc_basename in - ec++*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx*) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - freebsd[[12]]*) - # C++ shared libraries reported to be fairly broken before - # switch to ELF - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - freebsd-elf*) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - - freebsd* | dragonfly*) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; - - gnu*) - ;; - - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - hpux9*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - ;; - *) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - irix5* | irix6*) - case $cc_basename in - CC*) - # SGI C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' - fi - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - esac - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc* | ecpc* ) - # Intel C++ - with_gnu_ld=yes - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - case `$CC -V` in - *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) - _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - ;; - cxx*) - # Compaq C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' - ;; - xl* | mpixl* | bgxl*) - # IBM XL 8.0 on PPC, with GNU ld - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='func_echo_all' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - esac - ;; - esac - ;; - - lynxos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - m88k*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - mvs*) - case $cc_basename in - cxx*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - - *nto* | *qnx*) - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; - - openbsd2*) - # C++ shared libraries are fairly broken - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd=func_echo_all - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - case $host in - osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; - *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; - esac - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - cxx*) - case $host in - osf3*) - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - ;; - *) - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ - $RM $lib.exp' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - case $host in - osf3*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - psos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - lcc*) - # Lucid - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(archive_cmds_need_lc,$1)=yes - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. - # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes - - output_verbose_link_cmd='func_echo_all' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - fi - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ - '"$_LT_TAGVAR(old_archive_cmds, $1)" - _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ - '"$_LT_TAGVAR(reload_cmds, $1)" - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - vxworks*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - - AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) - test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - - _LT_TAGVAR(GCC, $1)="$GXX" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC - with_gnu_ld=$lt_save_with_gnu_ld - lt_cv_path_LDCXX=$lt_cv_path_LD - lt_cv_path_LD=$lt_save_path_LD - lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld - lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -fi # test "$_lt_caught_CXX_error" != yes - -AC_LANG_POP -])# _LT_LANG_CXX_CONFIG - - -# _LT_FUNC_STRIPNAME_CNF -# ---------------------- -# func_stripname_cnf prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# -# This function is identical to the (non-XSI) version of func_stripname, -# except this one can be used by m4 code that may be executed by configure, -# rather than the libtool script. -m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl -AC_REQUIRE([_LT_DECL_SED]) -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) -func_stripname_cnf () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname_cnf -])# _LT_FUNC_STRIPNAME_CNF - -# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) -# --------------------------------- -# Figure out "hidden" library dependencies from verbose -# compiler output when linking a shared library. -# Parse the compiler output and extract the necessary -# objects, libraries and library flags. -m4_defun([_LT_SYS_HIDDEN_LIBDEPS], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl -# Dependencies to place before and after the object being linked: -_LT_TAGVAR(predep_objects, $1)= -_LT_TAGVAR(postdep_objects, $1)= -_LT_TAGVAR(predeps, $1)= -_LT_TAGVAR(postdeps, $1)= -_LT_TAGVAR(compiler_lib_search_path, $1)= - -dnl we can't use the lt_simple_compile_test_code here, -dnl because it contains code intended for an executable, -dnl not a library. It's possible we should let each -dnl tag define a new lt_????_link_test_code variable, -dnl but it's only used here... -m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF -int a; -void foo (void) { a = 0; } -_LT_EOF -], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF -class Foo -{ -public: - Foo (void) { a = 0; } -private: - int a; -}; -_LT_EOF -], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF - subroutine foo - implicit none - integer*4 a - a=0 - return - end -_LT_EOF -], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF - subroutine foo - implicit none - integer a - a=0 - return - end -_LT_EOF -], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF -public class foo { - private int a; - public void bar (void) { - a = 0; - } -}; -_LT_EOF -]) - -_lt_libdeps_save_CFLAGS=$CFLAGS -case "$CC $CFLAGS " in #( -*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -esac - -dnl Parse the compiler output and extract the necessary -dnl objects, libraries and library flags. -if AC_TRY_EVAL(ac_compile); then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. - - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no - - for p in `eval "$output_verbose_link_cmd"`; do - case ${prev}${p} in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" || - test $p = "-R"; then - prev=$p - continue - fi - - # Expand the sysroot to ease extracting the directories later. - if test -z "$prev"; then - case $p in - -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; - -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; - -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; - esac - fi - case $p in - =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; - esac - if test "$pre_test_object_deps_done" = no; then - case ${prev} in - -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then - _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" - else - _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$_LT_TAGVAR(postdeps, $1)"; then - _LT_TAGVAR(postdeps, $1)="${prev}${p}" - else - _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" - fi - fi - prev= - ;; - - *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi - - if test "$pre_test_object_deps_done" = no; then - if test -z "$_LT_TAGVAR(predep_objects, $1)"; then - _LT_TAGVAR(predep_objects, $1)="$p" - else - _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" - fi - else - if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then - _LT_TAGVAR(postdep_objects, $1)="$p" - else - _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling $1 test program" -fi - -$RM -f confest.$objext -CFLAGS=$_lt_libdeps_save_CFLAGS - -# PORTME: override above test on systems where it is broken -m4_if([$1], [CXX], -[case $host_os in -interix[[3-9]]*) - # Interix 3.5 installs completely hosed .la files for C++, so rather than - # hack all around it, let's just trust "g++" to DTRT. - _LT_TAGVAR(predep_objects,$1)= - _LT_TAGVAR(postdep_objects,$1)= - _LT_TAGVAR(postdeps,$1)= - ;; - -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; -esac -]) - -case " $_LT_TAGVAR(postdeps, $1) " in -*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; -esac - _LT_TAGVAR(compiler_lib_search_dirs, $1)= -if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then - _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` -fi -_LT_TAGDECL([], [compiler_lib_search_dirs], [1], - [The directories searched by this compiler when creating a shared library]) -_LT_TAGDECL([], [predep_objects], [1], - [Dependencies to place before and after the objects being linked to - create a shared library]) -_LT_TAGDECL([], [postdep_objects], [1]) -_LT_TAGDECL([], [predeps], [1]) -_LT_TAGDECL([], [postdeps], [1]) -_LT_TAGDECL([], [compiler_lib_search_path], [1], - [The library search path used internally by the compiler when linking - a shared library]) -])# _LT_SYS_HIDDEN_LIBDEPS - - -# _LT_LANG_F77_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a Fortran 77 compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_F77_CONFIG], -[AC_LANG_PUSH(Fortran 77) -if test -z "$F77" || test "X$F77" = "Xno"; then - _lt_disable_F77=yes -fi - -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the F77 compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_F77" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC - lt_save_CFLAGS=$CFLAGS - CC=${F77-"f77"} - CFLAGS=$FFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - GCC=$G77 - if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_TAGVAR(GCC, $1)="$G77" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - GCC=$lt_save_GCC - CC="$lt_save_CC" - CFLAGS="$lt_save_CFLAGS" -fi # test "$_lt_disable_F77" != yes - -AC_LANG_POP -])# _LT_LANG_F77_CONFIG - - -# _LT_LANG_FC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for a Fortran compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_FC_CONFIG], -[AC_LANG_PUSH(Fortran) - -if test -z "$FC" || test "X$FC" = "Xno"; then - _lt_disable_FC=yes -fi - -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for fc test sources. -ac_ext=${ac_fc_srcext-f} - -# Object file extension for compiled fc test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the FC compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_FC" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC - lt_save_CFLAGS=$CFLAGS - CC=${FC-"f95"} - CFLAGS=$FCFLAGS - compiler=$CC - GCC=$ac_cv_fc_compiler_gnu - - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - - if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - GCC=$lt_save_GCC - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS -fi # test "$_lt_disable_FC" != yes - -AC_LANG_POP -])# _LT_LANG_FC_CONFIG - - -# _LT_LANG_GCJ_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Java Compiler compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_GCJ_CONFIG], -[AC_REQUIRE([LT_PROG_GCJ])dnl -AC_LANG_SAVE - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC=yes -CC=${GCJ-"gcj"} -CFLAGS=$GCJFLAGS -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)="$LD" -_LT_CC_BASENAME([$compiler]) - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -_LT_TAGVAR(archive_cmds_need_lc, $1)=no - -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) -fi - -AC_LANG_RESTORE - -GCC=$lt_save_GCC -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_GCJ_CONFIG - - -# _LT_LANG_RC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for the Windows resource compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_RC_CONFIG], -[AC_REQUIRE([LT_PROG_RC])dnl -AC_LANG_SAVE - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' - -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC= -CC=${RC-"windres"} -CFLAGS= -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) -_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - -if test -n "$compiler"; then - : - _LT_CONFIG($1) -fi - -GCC=$lt_save_GCC -AC_LANG_RESTORE -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_RC_CONFIG - - -# LT_PROG_GCJ -# ----------- -AC_DEFUN([LT_PROG_GCJ], -[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], - [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], - [AC_CHECK_TOOL(GCJ, gcj,) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS)])])[]dnl -]) - -# Old name: -AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_GCJ], []) - - -# LT_PROG_RC -# ---------- -AC_DEFUN([LT_PROG_RC], -[AC_CHECK_TOOL(RC, windres,) -]) - -# Old name: -AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_RC], []) - - -# _LT_DECL_EGREP -# -------------- -# If we don't have a new enough Autoconf to choose the best grep -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_EGREP], -[AC_REQUIRE([AC_PROG_EGREP])dnl -AC_REQUIRE([AC_PROG_FGREP])dnl -test -z "$GREP" && GREP=grep -_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) -_LT_DECL([], [EGREP], [1], [An ERE matcher]) -_LT_DECL([], [FGREP], [1], [A literal string matcher]) -dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too -AC_SUBST([GREP]) -]) - - -# _LT_DECL_OBJDUMP -# -------------- -# If we don't have a new enough Autoconf to choose the best objdump -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_OBJDUMP], -[AC_CHECK_TOOL(OBJDUMP, objdump, false) -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) -AC_SUBST([OBJDUMP]) -]) - -# _LT_DECL_DLLTOOL -# ---------------- -# Ensure DLLTOOL variable is set. -m4_defun([_LT_DECL_DLLTOOL], -[AC_CHECK_TOOL(DLLTOOL, dlltool, false) -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) -AC_SUBST([DLLTOOL]) -]) - -# _LT_DECL_SED -# ------------ -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -m4_defun([_LT_DECL_SED], -[AC_PROG_SED -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" -_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) -_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], - [Sed that helps us avoid accidentally triggering echo(1) options like -n]) -])# _LT_DECL_SED - -m4_ifndef([AC_PROG_SED], [ -############################################################ -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_SED. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -############################################################ - -m4_defun([AC_PROG_SED], -[AC_MSG_CHECKING([for a sed that does not truncate output]) -AC_CACHE_VAL(lt_cv_path_SED, -[# Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -IFS=$as_save_IFS -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -]) -SED=$lt_cv_path_SED -AC_SUBST([SED]) -AC_MSG_RESULT([$SED]) -])#AC_PROG_SED -])#m4_ifndef - -# Old name: -AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_SED], []) - - -# _LT_CHECK_SHELL_FEATURES -# ------------------------ -# Find out whether the shell is Bourne or XSI compatible, -# or has some other useful features. -m4_defun([_LT_CHECK_SHELL_FEATURES], -[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -AC_MSG_RESULT([$xsi_shell]) -_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) - -AC_MSG_CHECKING([whether the shell understands "+="]) -lt_shell_append=no -( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -AC_MSG_RESULT([$lt_shell_append]) -_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi -_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac -_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl -_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl -])# _LT_CHECK_SHELL_FEATURES - - -# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) -# ------------------------------------------------------ -# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and -# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. -m4_defun([_LT_PROG_FUNCTION_REPLACE], -[dnl { -sed -e '/^$1 ()$/,/^} # $1 /c\ -$1 ()\ -{\ -m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) -} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: -]) - - -# _LT_PROG_REPLACE_SHELLFNS -# ------------------------- -# Replace existing portable implementations of several shell functions with -# equivalent extended shell implementations where those features are available.. -m4_defun([_LT_PROG_REPLACE_SHELLFNS], -[if test x"$xsi_shell" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl - func_split_long_opt_name=${1%%=*} - func_split_long_opt_arg=${1#*=}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl - func_split_short_opt_arg=${1#??} - func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) - - _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) - - _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) - - _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) -fi - -if test x"$lt_shell_append" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) - - _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl - func_quote_for_eval "${2}" -dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ - eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) -fi -]) - -# _LT_PATH_CONVERSION_FUNCTIONS -# ----------------------------- -# Determine which file name conversion functions should be used by -# func_to_host_file (and, implicitly, by func_to_host_path). These are needed -# for certain cross-compile configurations and native mingw. -m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_MSG_CHECKING([how to convert $build file names to $host format]) -AC_CACHE_VAL(lt_cv_to_host_file_cmd, -[case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac -]) -to_host_file_cmd=$lt_cv_to_host_file_cmd -AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) -_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], - [0], [convert $build file names to $host format])dnl - -AC_MSG_CHECKING([how to convert $build file names to toolchain format]) -AC_CACHE_VAL(lt_cv_to_tool_file_cmd, -[#assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac -]) -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) -_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], - [0], [convert $build files to toolchain format])dnl -])# _LT_PATH_CONVERSION_FUNCTIONS diff -Nru network-manager-applet-0.9.4.1/m4/ltoptions.m4 network-manager-applet-0.9.6.2+git201210311320.2620/m4/ltoptions.m4 --- network-manager-applet-0.9.4.1/m4/ltoptions.m4 2012-02-06 14:51:56.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/m4/ltoptions.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,369 +0,0 @@ -# Helper functions for option handling. -*- Autoconf -*- -# -# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 7 ltoptions.m4 - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) - - -# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) -# ------------------------------------------ -m4_define([_LT_MANGLE_OPTION], -[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) - - -# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) -# --------------------------------------- -# Set option OPTION-NAME for macro MACRO-NAME, and if there is a -# matching handler defined, dispatch to it. Other OPTION-NAMEs are -# saved as a flag. -m4_define([_LT_SET_OPTION], -[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl -m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), - _LT_MANGLE_DEFUN([$1], [$2]), - [m4_warning([Unknown $1 option `$2'])])[]dnl -]) - - -# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) -# ------------------------------------------------------------ -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -m4_define([_LT_IF_OPTION], -[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) - - -# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) -# ------------------------------------------------------- -# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME -# are set. -m4_define([_LT_UNLESS_OPTIONS], -[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), - [m4_define([$0_found])])])[]dnl -m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 -])[]dnl -]) - - -# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) -# ---------------------------------------- -# OPTION-LIST is a space-separated list of Libtool options associated -# with MACRO-NAME. If any OPTION has a matching handler declared with -# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about -# the unknown option and exit. -m4_defun([_LT_SET_OPTIONS], -[# Set options -m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [_LT_SET_OPTION([$1], _LT_Option)]) - -m4_if([$1],[LT_INIT],[ - dnl - dnl Simply set some default values (i.e off) if boolean options were not - dnl specified: - _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no - ]) - _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no - ]) - dnl - dnl If no reference was made to various pairs of opposing options, then - dnl we run the default mode handler for the pair. For example, if neither - dnl `shared' nor `disable-shared' was passed, we enable building of shared - dnl archives by default: - _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) - _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], - [_LT_ENABLE_FAST_INSTALL]) - ]) -])# _LT_SET_OPTIONS - - -## --------------------------------- ## -## Macros to handle LT_INIT options. ## -## --------------------------------- ## - -# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) -# ----------------------------------------- -m4_define([_LT_MANGLE_DEFUN], -[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) - - -# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) -# ----------------------------------------------- -m4_define([LT_OPTION_DEFINE], -[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl -])# LT_OPTION_DEFINE - - -# dlopen -# ------ -LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes -]) - -AU_DEFUN([AC_LIBTOOL_DLOPEN], -[_LT_SET_OPTION([LT_INIT], [dlopen]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `dlopen' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) - - -# win32-dll -# --------- -# Declare package support for building win32 dll's. -LT_OPTION_DEFINE([LT_INIT], [win32-dll], -[enable_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; -esac - -test -z "$AS" && AS=as -_LT_DECL([], [AS], [1], [Assembler program])dnl - -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl - -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl -])# win32-dll - -AU_DEFUN([AC_LIBTOOL_WIN32_DLL], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -_LT_SET_OPTION([LT_INIT], [win32-dll]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `win32-dll' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) - - -# _LT_ENABLE_SHARED([DEFAULT]) -# ---------------------------- -# implement the --enable-shared flag, and supports the `shared' and -# `disable-shared' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_SHARED], -[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([shared], - [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], - [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) - - _LT_DECL([build_libtool_libs], [enable_shared], [0], - [Whether or not to build shared libraries]) -])# _LT_ENABLE_SHARED - -LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) - -# Old names: -AC_DEFUN([AC_ENABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) -]) - -AC_DEFUN([AC_DISABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], [disable-shared]) -]) - -AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_SHARED], []) -dnl AC_DEFUN([AM_DISABLE_SHARED], []) - - - -# _LT_ENABLE_STATIC([DEFAULT]) -# ---------------------------- -# implement the --enable-static flag, and support the `static' and -# `disable-static' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_STATIC], -[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([static], - [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], - [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_static=]_LT_ENABLE_STATIC_DEFAULT) - - _LT_DECL([build_old_libs], [enable_static], [0], - [Whether or not to build static libraries]) -])# _LT_ENABLE_STATIC - -LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) - -# Old names: -AC_DEFUN([AC_ENABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) -]) - -AC_DEFUN([AC_DISABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], [disable-static]) -]) - -AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_STATIC], []) -dnl AC_DEFUN([AM_DISABLE_STATIC], []) - - - -# _LT_ENABLE_FAST_INSTALL([DEFAULT]) -# ---------------------------------- -# implement the --enable-fast-install flag, and support the `fast-install' -# and `disable-fast-install' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_FAST_INSTALL], -[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([fast-install], - [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], - [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) - -_LT_DECL([fast_install], [enable_fast_install], [0], - [Whether or not to optimize for fast installation])dnl -])# _LT_ENABLE_FAST_INSTALL - -LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) - -# Old names: -AU_DEFUN([AC_ENABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `fast-install' option into LT_INIT's first parameter.]) -]) - -AU_DEFUN([AC_DISABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `disable-fast-install' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) -dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) - - -# _LT_WITH_PIC([MODE]) -# -------------------- -# implement the --with-pic flag, and support the `pic-only' and `no-pic' -# LT_INIT options. -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -m4_define([_LT_WITH_PIC], -[AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], - [pic_mode=default]) - -test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) - -_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl -])# _LT_WITH_PIC - -LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) - -# Old name: -AU_DEFUN([AC_LIBTOOL_PICMODE], -[_LT_SET_OPTION([LT_INIT], [pic-only]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `pic-only' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) - -## ----------------- ## -## LTDL_INIT Options ## -## ----------------- ## - -m4_define([_LTDL_MODE], []) -LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], - [m4_define([_LTDL_MODE], [nonrecursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [recursive], - [m4_define([_LTDL_MODE], [recursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [subproject], - [m4_define([_LTDL_MODE], [subproject])]) - -m4_define([_LTDL_TYPE], []) -LT_OPTION_DEFINE([LTDL_INIT], [installable], - [m4_define([_LTDL_TYPE], [installable])]) -LT_OPTION_DEFINE([LTDL_INIT], [convenience], - [m4_define([_LTDL_TYPE], [convenience])]) diff -Nru network-manager-applet-0.9.4.1/m4/ltsugar.m4 network-manager-applet-0.9.6.2+git201210311320.2620/m4/ltsugar.m4 --- network-manager-applet-0.9.4.1/m4/ltsugar.m4 2012-02-06 14:51:56.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/m4/ltsugar.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,123 +0,0 @@ -# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 6 ltsugar.m4 - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) - - -# lt_join(SEP, ARG1, [ARG2...]) -# ----------------------------- -# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their -# associated separator. -# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier -# versions in m4sugar had bugs. -m4_define([lt_join], -[m4_if([$#], [1], [], - [$#], [2], [[$2]], - [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) -m4_define([_lt_join], -[m4_if([$#$2], [2], [], - [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) - - -# lt_car(LIST) -# lt_cdr(LIST) -# ------------ -# Manipulate m4 lists. -# These macros are necessary as long as will still need to support -# Autoconf-2.59 which quotes differently. -m4_define([lt_car], [[$1]]) -m4_define([lt_cdr], -[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], - [$#], 1, [], - [m4_dquote(m4_shift($@))])]) -m4_define([lt_unquote], $1) - - -# lt_append(MACRO-NAME, STRING, [SEPARATOR]) -# ------------------------------------------ -# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. -# Note that neither SEPARATOR nor STRING are expanded; they are appended -# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). -# No SEPARATOR is output if MACRO-NAME was previously undefined (different -# than defined and empty). -# -# This macro is needed until we can rely on Autoconf 2.62, since earlier -# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. -m4_define([lt_append], -[m4_define([$1], - m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) - - - -# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) -# ---------------------------------------------------------- -# Produce a SEP delimited list of all paired combinations of elements of -# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list -# has the form PREFIXmINFIXSUFFIXn. -# Needed until we can rely on m4_combine added in Autoconf 2.62. -m4_define([lt_combine], -[m4_if(m4_eval([$# > 3]), [1], - [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl -[[m4_foreach([_Lt_prefix], [$2], - [m4_foreach([_Lt_suffix], - ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, - [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) - - -# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) -# ----------------------------------------------------------------------- -# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited -# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. -m4_define([lt_if_append_uniq], -[m4_ifdef([$1], - [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], - [lt_append([$1], [$2], [$3])$4], - [$5])], - [lt_append([$1], [$2], [$3])$4])]) - - -# lt_dict_add(DICT, KEY, VALUE) -# ----------------------------- -m4_define([lt_dict_add], -[m4_define([$1($2)], [$3])]) - - -# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) -# -------------------------------------------- -m4_define([lt_dict_add_subkey], -[m4_define([$1($2:$3)], [$4])]) - - -# lt_dict_fetch(DICT, KEY, [SUBKEY]) -# ---------------------------------- -m4_define([lt_dict_fetch], -[m4_ifval([$3], - m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), - m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) - - -# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) -# ----------------------------------------------------------------- -m4_define([lt_if_dict_fetch], -[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], - [$5], - [$6])]) - - -# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) -# -------------------------------------------------------------- -m4_define([lt_dict_filter], -[m4_if([$5], [], [], - [lt_join(m4_quote(m4_default([$4], [[, ]])), - lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), - [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl -]) diff -Nru network-manager-applet-0.9.4.1/m4/ltversion.m4 network-manager-applet-0.9.6.2+git201210311320.2620/m4/ltversion.m4 --- network-manager-applet-0.9.4.1/m4/ltversion.m4 2012-02-06 14:51:56.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/m4/ltversion.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -# ltversion.m4 -- version numbers -*- Autoconf -*- -# -# Copyright (C) 2004 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# @configure_input@ - -# serial 3293 ltversion.m4 -# This file is part of GNU Libtool - -m4_define([LT_PACKAGE_VERSION], [2.4]) -m4_define([LT_PACKAGE_REVISION], [1.3293]) - -AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4' -macro_revision='1.3293' -_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) -_LT_DECL(, macro_revision, 0) -]) diff -Nru network-manager-applet-0.9.4.1/m4/lt~obsolete.m4 network-manager-applet-0.9.6.2+git201210311320.2620/m4/lt~obsolete.m4 --- network-manager-applet-0.9.4.1/m4/lt~obsolete.m4 2012-02-06 14:51:56.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/m4/lt~obsolete.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ -# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004. -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 5 lt~obsolete.m4 - -# These exist entirely to fool aclocal when bootstrapping libtool. -# -# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) -# which have later been changed to m4_define as they aren't part of the -# exported API, or moved to Autoconf or Automake where they belong. -# -# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN -# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us -# using a macro with the same name in our local m4/libtool.m4 it'll -# pull the old libtool.m4 in (it doesn't see our shiny new m4_define -# and doesn't know about Autoconf macros at all.) -# -# So we provide this file, which has a silly filename so it's always -# included after everything else. This provides aclocal with the -# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything -# because those macros already exist, or will be overwritten later. -# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. -# -# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. -# Yes, that means every name once taken will need to remain here until -# we give up compatibility with versions before 1.7, at which point -# we need to keep only those names which we still refer to. - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) - -m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) -m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) -m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) -m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) -m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) -m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) -m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) -m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) -m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) -m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) -m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) -m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) -m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) -m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) -m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) -m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) -m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) -m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) -m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) -m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) -m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) -m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) -m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) -m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) -m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) -m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) -m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) -m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) -m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) -m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) -m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) -m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) -m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) -m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) -m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) -m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) -m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) -m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) -m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) -m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) -m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) -m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) -m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) -m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) -m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) -m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) -m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) -m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) -m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff -Nru network-manager-applet-0.9.4.1/missing network-manager-applet-0.9.6.2+git201210311320.2620/missing --- network-manager-applet-0.9.4.1/missing 2010-03-29 11:21:24.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/missing 1970-01-01 00:00:00.000000000 +0000 @@ -1,376 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. - -scriptversion=2009-04-28.21; # UTC - -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -msg="missing on your system" - -case $1 in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] - -Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and -\`g' are ignored when checking the name. - -Send bug reports to ." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - -esac - -# normalize program name to check for. -program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). This is about non-GNU programs, so use $1 not -# $program. -case $1 in - lex*|yacc*) - # Not GNU programs, they don't have --version. - ;; - - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $program in - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te*) - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison*|yacc*) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex*|flex*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit $? - fi - ;; - - makeinfo*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff -Nru network-manager-applet-0.9.4.1/network-manager-applet.doap network-manager-applet-0.9.6.2+git201210311320.2620/network-manager-applet.doap --- network-manager-applet-0.9.4.1/network-manager-applet.doap 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/network-manager-applet.doap 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,26 @@ + + + + network-manager-applet + Applet for managing network connections + + + + + + + + + + Dan Williams + + dcbw + + + + + diff -Nru network-manager-applet-0.9.4.1/nm-applet.convert network-manager-applet-0.9.6.2+git201210311320.2620/nm-applet.convert --- network-manager-applet-0.9.4.1/nm-applet.convert 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/nm-applet.convert 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,8 @@ +[org.gnome.nm-applet] +disable-connected-notifications = /apps/nm-applet/disable-connected-notifications +disable-disconnected-notifications = /apps/nm-applet/disable-disconnected-notifications +disable-vpn-notifications = /apps/nm-applet/disable-vpn-notifications +suppress-wireless-networks-available = /apps/nm-applet/suppress-wireless-networks-available +stamp = /apps/nm-applet/stamp +disable-wifi-create = /apps/nm-applet/disable-wifi-create +show-applet = /apps/nm-applet/show-applet diff -Nru network-manager-applet-0.9.4.1/nm-applet.schemas.in network-manager-applet-0.9.6.2+git201210311320.2620/nm-applet.schemas.in --- network-manager-applet-0.9.4.1/nm-applet.schemas.in 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/nm-applet.schemas.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ - - - - - /schemas/apps/nm-applet/disable-connected-notifications - /apps/nm-applet/disable-connected-notifications - nm-applet - bool - FALSE - - Disable connected notifications - - Set this to TRUE to disable notifications when connecting to - a network. - - - - - /schemas/apps/nm-applet/disable-disconnected-notifications - /apps/nm-applet/disable-disconnected-notifications - nm-applet - bool - FALSE - - Disable disconnected notifications - - Set this to TRUE to disable notifications when disconnecting - from a network. - - - - - /schemas/apps/nm-applet/suppress-wireless-networks-available - /apps/nm-applet/suppress-wireless-networks-available - nm-applet - bool - FALSE - - Suppress networks available notifications - - Set this to TRUE to disable notifications when wireless - networks are available. - - - - - /schemas/apps/nm-applet/stamp - /apps/nm-applet/stamp - nm-applet - int - 0 - - Stamp - - Used to determine whether settings should be migrated to a - new version. - - - - - /schemas/apps/nm-applet/disable-wifi-create - /apps/nm-applet/disable-wifi-create - nm-applet - bool - FALSE - - Disable WiFi Create - - Set to TRUE to disable creation of adhoc networks when using the applet. - - - - - - - diff -Nru network-manager-applet-0.9.4.1/org.gnome.nm-applet.gschema.xml.in network-manager-applet-0.9.6.2+git201210311320.2620/org.gnome.nm-applet.gschema.xml.in --- network-manager-applet-0.9.4.1/org.gnome.nm-applet.gschema.xml.in 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/org.gnome.nm-applet.gschema.xml.in 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + false + <_summary>Disable connected notifications + <_description>Set this to true to disable notifications when connecting to a network. + + + false + <_summary>Disable disconnected notifications + <_description>Set this to true to disable notifications when disconnecting from a network. + + + false + <_summary>Disable VPN notifications + <_description>Set this to true to disable notifications when connecting to or disconnecting from a VPN. + + + false + <_summary>Suppress networks available notifications + <_description>Set this to true to disable notifications when Wi-Fi networks are available. + + + 0 + <_summary>Stamp + <_description>Used to determine whether settings should be migrated to a new version. + + + false + <_summary>Disable WiFi Create + <_description>Set to true to disable creation of adhoc networks when using the applet. + + + true + <_summary>Show the applet in notification area + <_description>Set to FALSE to disable displaying the applet in the notification area. + + + + + false + <_summary>Ignore CA certificate + <_description>Set this to true to disable warnings about CA certificates in EAP authentication. + + + false + <_summary>Ignore CA certificate + <_description>Set this to true to disable warnings about CA certificates in phase 2 of EAP authentication. + + + diff -Nru network-manager-applet-0.9.4.1/po/LINGUAS network-manager-applet-0.9.6.2+git201210311320.2620/po/LINGUAS --- network-manager-applet-0.9.4.1/po/LINGUAS 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/LINGUAS 2012-10-31 13:20:57.000000000 +0000 @@ -37,6 +37,7 @@ it ja kk +km kn ko ku diff -Nru network-manager-applet-0.9.4.1/po/Makefile.in.in network-manager-applet-0.9.6.2+git201210311320.2620/po/Makefile.in.in --- network-manager-applet-0.9.4.1/po/Makefile.in.in 2011-02-09 13:07:32.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/Makefile.in.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,217 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper -# Copyright (C) 2004-2008 Rodney Dawes -# -# This file may be copied and used freely without restrictions. It may -# be used in projects which are not available under a GNU Public License, -# but which still want to provide support for the GNU gettext functionality. -# -# - Modified by Owen Taylor to use GETTEXT_PACKAGE -# instead of PACKAGE and to look for po2tbl in ./ not in intl/ -# -# - Modified by jacob berkman to install -# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize -# -# - Modified by Rodney Dawes for use with intltool -# -# We have the following line for use by intltoolize: -# INTLTOOL_MAKEFILE - -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -top_builddir = @top_builddir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = @datadir@ -datarootdir = @datarootdir@ -libdir = @libdir@ -DATADIRNAME = @DATADIRNAME@ -itlocaledir = $(prefix)/$(DATADIRNAME)/locale -subdir = po -install_sh = @install_sh@ -# Automake >= 1.8 provides @mkdir_p@. -# Until it can be supposed, use the safe fallback: -mkdir_p = $(install_sh) -d - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot - -ALL_LINGUAS = @ALL_LINGUAS@ - -PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) - -USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) - -USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) - -POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) - -DISTFILES = Makefile.in.in POTFILES.in $(POFILES) -EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS - -POTFILES = \ -# This comment gets stripped out - -CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) - -.SUFFIXES: -.SUFFIXES: .po .pox .gmo .mo .msg .cat - -.po.pox: - $(MAKE) $(GETTEXT_PACKAGE).pot - $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< - -.po.cat: - sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && gencat $@ $*.msg - - -all: all-@USE_NLS@ - -all-yes: $(CATALOGS) -all-no: - -$(GETTEXT_PACKAGE).pot: $(POTFILES) - $(GENPOT) - -install: install-data -install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $(srcdir)/$$lang.gmo as" \ - "$$dir/$(GETTEXT_PACKAGE).mo"; \ - fi; \ - if test -r $$lang.gmo.m; then \ - $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - if test -r $(srcdir)/$$lang.gmo.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ - $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $(srcdir)/$$lang.gmo.m as" \ - "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - true; \ - fi; \ - fi; \ - done - -# Empty stubs to satisfy archaic automake needs -dvi info ctags tags CTAGS TAGS ID: - -# Define this as empty until I found a useful application. -install-exec installcheck: - -uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - -check: all $(GETTEXT_PACKAGE).pot - rm -f missing notexist - srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m - if [ -r missing -o -r notexist ]; then \ - exit 1; \ - fi - -mostlyclean: - rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp - rm -f .intltool-merge-cache - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES stamp-it - rm -f *.mo *.msg *.cat *.cat.m *.gmo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f Makefile.in.in - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: $(DISTFILES) - dists="$(DISTFILES)"; \ - extra_dists="$(EXTRA_DISTFILES)"; \ - for file in $$extra_dists; do \ - test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ - done; \ - for file in $$dists; do \ - test -f $$file || file="$(srcdir)/$$file"; \ - ln $$file $(distdir) 2> /dev/null \ - || cp -p $$file $(distdir); \ - done - -update-po: Makefile - $(MAKE) $(GETTEXT_PACKAGE).pot - tmpdir=`pwd`; \ - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - echo "$$lang:"; \ - result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ - if $$result; then \ - if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.gmo failed!"; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi; \ - done - -Makefile POTFILES: stamp-it - @if test ! -f $@; then \ - rm -f stamp-it; \ - $(MAKE) stamp-it; \ - fi - -stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/po/POTFILES.in network-manager-applet-0.9.6.2+git201210311320.2620/po/POTFILES.in --- network-manager-applet-0.9.4.1/po/POTFILES.in 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/POTFILES.in 2012-10-31 13:20:57.000000000 +0000 @@ -2,61 +2,73 @@ # List of source files containing translatable strings. # Please keep this file sorted alphabetically. nm-applet.desktop.in -nm-applet.schemas.in nm-connection-editor.desktop.in +org.gnome.nm-applet.gschema.xml.in +[type: gettext/glade]src/8021x.ui +src/applet.c src/applet-device-bt.c src/applet-device-cdma.c +src/applet-device-ethernet.c src/applet-device-gsm.c -src/applet-device-wired.c src/applet-device-wifi.c src/applet-device-wimax.c src/applet-dialogs.c -src/applet.c src/applet.h -[type: gettext/glade]src/gsm-unlock.ui -[type: gettext/glade]src/info.ui -[type: gettext/glade]src/wired-8021x.ui -src/connection-editor/ce-page.c [type: gettext/glade]src/connection-editor/ce-ip4-routes.ui [type: gettext/glade]src/connection-editor/ce-ip6-routes.ui +[type: gettext/glade]src/connection-editor/ce-new-connection.ui +src/connection-editor/ce-page.c +[type: gettext/glade]src/connection-editor/ce-page-bond.ui [type: gettext/glade]src/connection-editor/ce-page-dsl.ui +[type: gettext/glade]src/connection-editor/ce-page-ethernet.ui +[type: gettext/glade]src/connection-editor/ce-page-infiniband.ui [type: gettext/glade]src/connection-editor/ce-page-ip4.ui [type: gettext/glade]src/connection-editor/ce-page-ip6.ui [type: gettext/glade]src/connection-editor/ce-page-mobile.ui [type: gettext/glade]src/connection-editor/ce-page-ppp.ui -[type: gettext/glade]src/connection-editor/ce-page-wired.ui -[type: gettext/glade]src/connection-editor/ce-page-wireless.ui -[type: gettext/glade]src/connection-editor/ce-page-wireless-security.ui +[type: gettext/glade]src/connection-editor/ce-page-vlan.ui +[type: gettext/glade]src/connection-editor/ce-page-wifi-security.ui +[type: gettext/glade]src/connection-editor/ce-page-wifi.ui +[type: gettext/glade]src/connection-editor/ce-page-wimax.ui [type: gettext/glade]src/connection-editor/ce-ppp-auth-methods.ui -[type: gettext/glade]src/connection-editor/ce-vpn-wizard.ui src/connection-editor/ip4-routes-dialog.c src/connection-editor/ip6-routes-dialog.c +src/connection-editor/new-connection.c +src/connection-editor/nm-connection-editor.c +[type: gettext/glade]src/connection-editor/nm-connection-editor.ui +src/connection-editor/nm-connection-list.c +src/connection-editor/page-8021x-security.c +src/connection-editor/page-bond.c src/connection-editor/page-dsl.c +src/connection-editor/page-ethernet.c +src/connection-editor/page-infiniband.c src/connection-editor/page-ip4.c src/connection-editor/page-ip6.c src/connection-editor/page-mobile.c src/connection-editor/page-ppp.c +src/connection-editor/page-vlan.c src/connection-editor/page-vpn.c -src/connection-editor/page-wired.c -src/connection-editor/page-wired-security.c -src/connection-editor/page-wireless.c -src/connection-editor/page-wireless-security.c -src/connection-editor/nm-connection-editor.c -[type: gettext/glade]src/connection-editor/nm-connection-editor.ui -src/connection-editor/nm-connection-list.c +src/connection-editor/page-wifi.c +src/connection-editor/page-wifi-security.c +src/connection-editor/page-wimax.c src/connection-editor/vpn-helpers.c +src/ethernet-dialog.c src/gnome-bluetooth/bt-widget.c +src/gnome-bluetooth/nma-bt-device.c +[type: gettext/glade]src/gsm-unlock.ui +[type: gettext/glade]src/info.ui src/libnm-gtk/nm-mobile-wizard.c -src/libnm-gtk/nm-wireless-dialog.c +src/libnm-gtk/nm-wifi-dialog.c +src/libnm-gtk/nm-ui-utils.c [type: gettext/glade]src/libnm-gtk/wifi.ui src/main.c src/mb-menu-item.c src/utils/nmn-mobile-providers.c -src/wired-dialog.c +src/utils/utils.c src/wireless-security/eap-method.c +src/wireless-security/eap-method-fast.c [type: gettext/glade]src/wireless-security/eap-method-fast.ui [type: gettext/glade]src/wireless-security/eap-method-leap.ui -src/wireless-security/eap-method-fast.c src/wireless-security/eap-method-peap.c [type: gettext/glade]src/wireless-security/eap-method-peap.ui [type: gettext/glade]src/wireless-security/eap-method-simple.ui @@ -71,4 +83,3 @@ [type: gettext/glade]src/wireless-security/ws-wep-key.ui [type: gettext/glade]src/wireless-security/ws-wpa-eap.ui [type: gettext/glade]src/wireless-security/ws-wpa-psk.ui - diff -Nru network-manager-applet-0.9.4.1/po/af.po network-manager-applet-0.9.6.2+git201210311320.2620/po/af.po --- network-manager-applet-0.9.4.1/po/af.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/af.po 2012-10-31 13:20:57.000000000 +0000 @@ -986,7 +986,7 @@ msgstr "_Verbind" #: ../src/applet.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Verbi_nding:" #: ../src/applet.ui.h:5 @@ -1010,7 +1010,7 @@ msgstr "Ontsl_uit" #: ../src/applet.ui.h:10 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Draadloos-sekuriteit:" #: ../src/applet.ui.h:11 @@ -1854,7 +1854,7 @@ msgstr "" #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "" #: ../src/connection-editor/nm-connection-editor.ui.h:2 diff -Nru network-manager-applet-0.9.4.1/po/an.po network-manager-applet-0.9.6.2+git201210311320.2620/po/an.po --- network-manager-applet-0.9.4.1/po/an.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/an.po 2012-10-31 13:20:57.000000000 +0000 @@ -932,7 +932,7 @@ msgstr " " #: ../src/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "C_onexion:" #: ../src/wifi.ui.h:3 @@ -944,7 +944,7 @@ msgstr "_Nome d'o rete:" #: ../src/wifi.ui.h:5 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Seguridat inalambrica:" #: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 @@ -1790,7 +1790,7 @@ msgstr "" #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "" #: ../src/connection-editor/nm-connection-editor.ui.h:2 diff -Nru network-manager-applet-0.9.4.1/po/ar.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ar.po --- network-manager-applet-0.9.4.1/po/ar.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ar.po 2012-10-31 13:20:57.000000000 +0000 @@ -664,7 +664,7 @@ #: ../src/applet-dialogs.c:827 #, fuzzy -#| msgid "Co_nnection:" +#| msgid "C_onnection:" msgid "Base Connection:" msgstr "الات_صال:" @@ -1879,7 +1879,7 @@ msgstr "استوثق لحفظ هذا الاتصال لكل المستخدمين على هذا الجهاز ." #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "متاح لكل المستخدمين" #: ../src/connection-editor/nm-connection-editor.ui.h:2 @@ -2443,7 +2443,7 @@ "أدخل اسم والإعدادات الأمنية للشبكة اللاسلكية المخفية التي تريد الاتصال بها." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "الات_صال:" #: ../src/libnm-gtk/wifi.ui.h:3 @@ -2451,7 +2451,7 @@ msgstr "المحول ال_لاسلكي:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "أمن ال_لاسلكي:" #: ../src/main.c:73 diff -Nru network-manager-applet-0.9.4.1/po/as.po network-manager-applet-0.9.6.2+git201210311320.2620/po/as.po --- network-manager-applet-0.9.4.1/po/as.po 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/as.po 2012-10-31 13:20:57.000000000 +0000 @@ -4,1986 +4,2310 @@ # # Amitakhya Phukan , 2009, 2010. # Amitakhya Phukan , 2010. +# Nilamdyuti Goswami , 2012. msgid "" msgstr "" "Project-Id-Version: network-manager-applet master\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-05-18 18:03+0530\n" -"PO-Revision-Date: 2010-05-19 11:37+0530\n" -"Last-Translator: Amitakhya Phukan \n" -"Language-Team: American English \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." +"cgi?product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-09-12 08:30+0000\n" +"PO-Revision-Date: 2012-09-12 21:01+0530\n" +"Last-Translator: Nilamdyuti Goswami \n" +"Language-Team: as_IN \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 1.0\n" #: ../nm-applet.desktop.in.h:1 -msgid "Control your network connections" -msgstr "আপোনাৰ নে'টৱৰ্ক সংযোগ নিয়ন্ত্ৰণ কৰক" +msgid "Network" +msgstr "নেটৱাৰ্ক" #: ../nm-applet.desktop.in.h:2 -msgid "Network Manager" -msgstr "নে'টৱৰ্ক পৰিচালক" +msgid "Manage your network connections" +msgstr "আপোনাৰ নেটৱাৰ্ক সংযোগসমূহ ব্যৱস্থাপনা কৰক" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "ৱাই-ফাই নিৰ্মাণ নিষ্ক্ৰিয় কৰক" +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "নেটৱাৰ্ক সংযোগসমূহ" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "আপোনাৰ নেটৱাৰ্ক সংযোগক ব্যৱস্থাপনা আৰু সলনি কৰক" -#: ../nm-applet.schemas.in.h:2 +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" -msgstr "সংযুক্ত হোৱাৰ বিজ্ঞপ্তি নিষ্ক্ৰিয় কৰা হ'ব" +msgstr "সংযুক্ত অধিসূচনাসমূহ অসামৰ্থবান কৰক" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "এটা নেটৱাৰ্কলে সংযোগ কৰোতে অধিসূচনাসমূহ অসামৰ্থবান কৰিবলে ইয়াক সত্যলে সংহতি কৰক।" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" -msgstr "বিচ্ছিন্ন হোৱাৰ বিজ্ঞপ্তি নিষ্ক্ৰিয় কৰা হ'ব" +msgstr "বিচ্ছিন্ন হোৱাৰ অধিসূচনা অসামৰ্থবান কৰা হ'ব" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "Set this to true to disable notifications when disconnecting from a network." msgstr "" -"নে'টৱৰ্কৰ সৈতে সংযুক্ত কৰাৰ সময়ত বিজ্ঞপ্তিৰ ব্যৱস্থা নিষ্ক্ৰিয় কৰাৰ বাবে এই মান TRUE " -"নিৰ্ধাৰণ কৰক ।" +"এটা নেটৱাৰ্কৰ পৰা বিচ্ছিন্ন হওতে অধিসূচনাসমূহ অসামৰ্থবান কৰিবলে ইয়াক সত্যলে সংহতি " +"কৰক।" -#: ../nm-applet.schemas.in.h:5 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "" -"নে'টৱৰ্কৰ সৈতে সংযোগ বিচ্ছিন্ন কৰাৰ সময়ত বিজ্ঞপ্তিৰ ব্যৱস্থা নিষ্ক্ৰিয় কৰাৰ বাবে এই " -"মান TRUE নিৰ্ধাৰণ কৰক ।" +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "VPN অধিসূচনাসমূহ অসামৰ্থবান কৰক" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." msgstr "" -"বেতাঁৰ নে'টৱৰ্ক থাকিলে বিজ্ঞপ্তিৰ ব্যৱস্থা নিষ্ক্ৰিয় কৰাৰ বাবে এই মান TRUE নিৰ্ধাৰণ " -"কৰক ।" +"এটা VPN লে সংযোগ কৰোতে অথবা তাৰ পৰা বিচ্ছিন্ন হওতে অধিসূচনাসমূহ অসামৰ্থবান কৰিবলে " +"ইয়াক সত্যলে সংহতি কৰক।" -#: ../nm-applet.schemas.in.h:7 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 +msgid "Suppress networks available notifications" +msgstr "উপলব্ধ নেটৱাৰ্কৰ অধিসূচনা প্ৰদৰ্শন লুকুৱা হ'ব" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +msgid "Set this to true to disable notifications when Wi-Fi networks are available." msgstr "" -"এই এপ্লেটৰ সহায়ত এড-হক নে'টৱৰ্ক নিৰ্মাণৰ ব্যৱস্থা নিষ্ক্ৰিয় কৰাৰ বাবে এই মান TRUE " -"নিৰ্ধাৰণ কৰক ।" +"যেতিয়া Wi-Fi নেটৱাৰ্কসমূহ উপলব্ধ থাকে অধিসূচনাসমূহ অসামৰ্থবান কৰিবলে ইয়াক সত্যলে " +"সংহতি কৰক।" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "স্টেম্প" -#: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" -msgstr "উপলব্ধ নে'টৱৰ্কৰ বিজ্ঞপ্তি প্ৰদৰ্শন লুকুৱা হ'ব" - -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." -msgstr "নতুন সংস্কৰণত গুণ মাইগ্ৰেট কৰা হ'ব নে নহয় নিৰ্ধাৰণ কৰিবলৈ ইয়াক ব্যৱহাৰ কৰা হয় ।" +msgstr "" +"নতুন সংস্কৰণত সংহতিসমূহ প্ৰব্ৰজন কৰা হ'ব নে নহয় নিৰ্ধাৰণ কৰিবলৈ ইয়াক ব্যৱহাৰ কৰা হয়।" -#: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "আপোনাৰ নে'টৱৰ্ক সংযোগক পৰিচালন আৰু সলনি কৰক" +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "WiFi সৃষ্টি অসামৰ্থবান কৰক" -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.glade.h:7 -msgid "Network Connections" -msgstr "নে'টৱৰ্ক সংযোগসমূহ" +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +msgid "Set to true to disable creation of adhoc networks when using the applet." +msgstr "" +"এপ্লেট ব্যৱহাৰ কৰি থাকোতে adhoc নেটৱাৰ্কসমূহৰ সৃষ্টি অসামৰ্থবান কৰিবলে সত্যলে সংহতি " +"কৰক।" -#: ../src/applet-dbus-manager.c:165 -#, c-format -msgid "An instance of nm-applet is already running.\n" -msgstr "nm-applet ৰ এটা চানেকি বৰ্তমানে চলি আছে ।\n" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "CA প্ৰমাণপত্ৰ উপেক্ষা কৰক" -#: ../src/applet-dbus-manager.c:167 -#, c-format -msgid "Could not acquire the %s service. (%d)\n" -msgstr "%s সেৱা গ্ৰহণ কৰিবলৈ ব্যৰ্থ । (%d)\n" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"EAP প্ৰমাণীকৰণত CA প্ৰমাণপত্ৰসমূহৰ বিষয়ে সতৰ্কবাৰ্তা অসামৰ্থবান কৰিবলে ইয়াক সত্যলে " +"সংহতি কৰক।" -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:332 -#: ../src/applet-device-gsm.c:375 ../src/applet-device-wired.c:241 -#: ../src/applet-device-wifi.c:773 -msgid "Available" -msgstr "উপলব্ধ" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"EAP প্ৰমাণীকৰণৰ স্তৰ ২ ত CA প্ৰমাণপত্ৰসমূহৰ বিষয়ে সতৰ্কবাৰ্তাসমূহ অসামৰ্থবান কৰিবলে " +"ইয়াক সত্যলে সংহতি কৰক।" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:374 -#: ../src/applet-device-gsm.c:417 ../src/applet-device-wired.c:270 -#, c-format -msgid "You are now connected to '%s'." -msgstr "আপুনি এতিয়া '%s' লৈ সংযুক্ত ।" +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "802.1X প্ৰমাণীকৰণ" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:378 -#: ../src/applet-device-gsm.c:421 ../src/applet-device-wired.c:274 -#: ../src/applet-device-wifi.c:1214 -msgid "Connection Established" -msgstr "সংযোগ স্থাপিত" +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "নেটৱাৰ্কৰ নাম (_N):" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "আপুনি এতিয়া মোবাইল ব্ৰড-বেন্ড নে'টৱৰ্কৰ সৈতে সংযুক্ত ।" +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "সংযোগ যোগ/সক্ৰিয় কৰিবলে ব্যৰ্থ" + +#: ../src/applet.c:514 ../src/applet.c:558 ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "অজ্ঞাত ত্ৰুটি" + +#: ../src/applet.c:517 ../src/applet.c:587 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "সংযোগ ব্যৰ্থতা" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "ডিভাইচ বিচ্ছিন্ন কৰা ব্যৰ্থ হল" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "বিচ্ছিন্ন কৰা ব্যৰ্থ হল" + +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "সংযোগ সক্ৰিয়কৰণ ব্যৰ্থ হল" + +#: ../src/applet.c:948 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "এই বাৰ্তা আকৌ নেদেখুৱাব" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:413 -#: ../src/applet-device-gsm.c:456 +#: ../src/applet.c:1037 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "মোবাইল ব্ৰ'ডবেণ্ড সংযোগ '%s' সৃষ্টি কৰা হৈছে..." +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"নেটৱাৰ্ক সংযোগ বিঘ্নিত হোৱাৰ ফলত VPN সংযোগ '%s' বিফল হৈছে।" -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:416 -#: ../src/applet-device-gsm.c:459 +#: ../src/applet.c:1040 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "মোবাইল ব্ৰ'ডবেণ্ড সংযোগ '%s' বিন্যাস কৰা হৈছে..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"VPN সেৱা অপ্ৰত্যাশিতভাবে বন্ধ হোৱাৰ ফলত VPN সংযোগ '%s' বিফল হৈছে।" -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:419 -#: ../src/applet-device-gsm.c:462 +#: ../src/applet.c:1043 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "মোবাইল ব্ৰ'ডবেণ্ড সংযোগ '%s' ৰ বাবে ব্যৱহাৰকৰ্তাৰ প্ৰমাণীকৰণৰ প্ৰয়োজন..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"VPN সংযোগ '%s' ব্যৰ্থ হল কাৰণ VPN সেৱায় অবৈধ সংৰূপ ঘুৰাই দিছিল।" -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:422 -#: ../src/applet-device-gsm.c:465 ../src/applet.c:2266 +#: ../src/applet.c:1046 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "'%s' ৰ কাৰণে নে'টৱৰ্ক ঠিকনা অনুৰোধ কৰা হৈছে..." +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"সংযোগ চেষ্টা সময় অন্ত হোৱা বাবে VPN সংযোগ '%s' ব্যৰ্থ হল।" -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:439 -#: ../src/applet-device-gsm.c:477 +#: ../src/applet.c:1049 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "মোবাইল ব্ৰ'ডবেণ্ড সংযোগ '%s' সক্ৰিয়" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"VPN সংযোগ সময়মতে আৰম্ভ নহোৱা বাবে VPN সংযোগ '%s' ব্যৰ্থ হল।" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:621 -#: ../src/mb-menu-item.c:55 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1052 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"VPN সেৱা আৰম্ভ হবলে ব্যৰ্থ হোৱা বাবে VPN সংযোগ '%s' ব্যৰ্থ হল।" -#: ../src/applet-device-cdma.c:281 ../src/applet-device-gsm.c:325 +#: ../src/applet.c:1055 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "মোবাইল ব্ৰ'ডবেণ্ড (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"কোনো বৈধ VPN গোপন তথ্য নথকা বাবে VPN সংযোগ '%s' ব্যৰ্থ হল।" -#: ../src/applet-device-cdma.c:283 ../src/applet-device-gsm.c:327 -#: ../src/connection-editor/page-mobile.c:318 -#: ../src/connection-editor/nm-connection-editor.glade.h:6 -#: ../src/connection-editor/nm-connection-list.c:1401 -msgid "Mobile Broadband" -msgstr "মোবাইল ব্ৰ'ডবেণ্ড" +#: ../src/applet.c:1058 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"অবৈধ VPN গোপন তথ্যৰ বাবে VPN সংযোগ '%s' ব্যৰ্থ হল।" -#. Default connection item -#: ../src/applet-device-cdma.c:345 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "নতুন মোবাইল ব্ৰ'ডবেণ্ড (CDMA) সংযোগ..." +#: ../src/applet.c:1065 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"VPN সংযোগ '%s' ব্যৰ্থ হল।" -#: ../src/applet-device-cdma.c:379 -msgid "You are now connected to the CDMA network." -msgstr "আপুনি এতিয়া CDMA নে'টৱৰ্কলৈ সংযুক্ত ।" +#: ../src/applet.c:1083 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"নেটৱাৰ্ক সংযোগ বাধাগ্ৰস্থ হোৱা বাবে VPN সংযোগ '%s' বিচ্ছিন্ন হল।" -#: ../src/applet-device-cdma.c:434 ../src/applet-device-gsm.c:472 +#: ../src/applet.c:1086 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "'%s' মোবাইল ব্ৰড-বেন্ড সংযোগ বৰ্তমানে সক্ৰিয়: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"VPN সেৱা বন্ধ হোৱা বাবে VPN সংযোগ '%s' বিচ্ছিন্ন হল।" -#: ../src/applet-device-cdma.c:437 ../src/applet-device-gsm.c:475 -msgid "roaming" -msgstr "ৰোমিং" +#: ../src/applet.c:1092 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"VPN সংযোগ '%s' বিচ্ছিন্ন হল।" -#: ../src/applet-device-gsm.c:210 ../src/connection-editor/page-mobile.c:624 -#: ../src/mb-menu-item.c:60 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1122 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN সংযোগ সফলভাৱে স্থাপন কৰা হৈছে।\n" +"\n" +"%s\n" -#. Default connection item -#: ../src/applet-device-gsm.c:388 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "নতুন মোবাইল ব্ৰ'ডবেণ্ড (GSM) সংযোগ..." +#: ../src/applet.c:1124 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN সংযোগ সফলভাৱে স্থাপন কৰা হৈছে।\n" -#: ../src/applet-device-gsm.c:422 -msgid "You are now connected to the GSM network." -msgstr "আপুনি এতিয়া GSM নে'টৱৰ্কলৈ সংযুক্ত ।" +#: ../src/applet.c:1126 +msgid "VPN Login Message" +msgstr "VPN লগিন বাৰ্তা" -#: ../src/applet-device-gsm.c:704 -msgid "PIN code required" -msgstr "PIN কোড প্ৰয়োজনীয়" +#: ../src/applet.c:1132 ../src/applet.c:1140 ../src/applet.c:1190 +msgid "VPN Connection Failed" +msgstr "VPN সংযোগ ব্যৰ্থ হল" -#: ../src/applet-device-gsm.c:706 -msgid "PUK code required" -msgstr "PUK কোড প্ৰয়োজনীয়" +#: ../src/applet.c:1197 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN সেৱা আৰম্ভ হবলে ব্যৰ্থ হোৱা বাবে VPN সংযোগ '%s' ব্যৰ্থ হল।\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:715 -msgid "PIN code is needed for the mobile broadband device" -msgstr "মোবাইল ব্ৰ'ডবেণ্ড যন্ত্ৰৰ কাৰণে PIN কোড প্ৰয়োজনীয়" +#: ../src/applet.c:1200 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN সংযোগ '%s' আৰম্ভ হবলে ব্যৰ্থ হল।\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:717 -msgid "PUK code is needed for the mobile broadband device" -msgstr "মোবাইল ব্ৰ'ডবেণ্ড যন্ত্ৰৰ কাৰণে PUK কোড প্ৰয়োজনীয়" +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "ডিভাইচ প্ৰস্তুত নহয় (ফাৰ্মৱেৰ সন্ধানহিন)" -#: ../src/applet-device-gsm.c:850 -msgid "Wrong PIN code; please contact your provider." -msgstr "ভুল PIN কোড; অনুগ্ৰহ কৰি সেৱা উপলব্ধকৰ্তাৰ সৈতে যোগাযোগ কৰক ।" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "ডিভাইচ প্ৰস্তুত নহয়" -#: ../src/applet-device-gsm.c:873 -msgid "Wrong PUK code; please contact your provider." -msgstr "ভুল PUK কোড; অনুগ্ৰহ কৰি সেৱা উপলব্ধকৰ্তাৰ সৈতে যোগাযোগ কৰক ।" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "বিচ্ছিন্নিত" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:900 -msgid "Sending unlock code..." -msgstr "আন-লক কৰাৰ কোড পঠিওৱা হৈছে..." +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "বিচ্ছিন্ন কৰক" -#: ../src/applet-device-gsm.c:959 -msgid "SIM PIN unlock required" -msgstr "SIM PIN আন-লক কৰা প্ৰয়োজন" +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "ডিভাইচ ব্যৱস্থাপিত নহয়" -#: ../src/applet-device-gsm.c:960 -msgid "SIM PIN Unlock Required" -msgstr "SIM PIN আন-লক কৰা প্ৰয়োজন" +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "কোনো নেটৱাৰ্ক ডিভাইচ উপলব্ধ নাই" -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:962 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "'%s' মোবাইল ব্ৰড-বেন্ড যন্ত্ৰ ব্যৱহাৰ কৰাৰ আগতে এটা SIM PIN কোড উপলব্ধ থকা আৱশ্যক ।" +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "VPN সংযোগসমূহ (_V)" -#: ../src/applet-device-gsm.c:963 -msgid "PIN code:" -msgstr "PIN কোড:" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "VPN সংৰূপণ কৰক (_C)..." -#: ../src/applet-device-gsm.c:968 -msgid "SIM PUK unlock required" -msgstr "SIM PUK আন-লক কৰা প্ৰয়োজন" +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "VPN ৰ সৈতে সংযোগ বিচ্ছিন্ন কৰক (_D)..." -#: ../src/applet-device-gsm.c:969 -msgid "SIM PUK Unlock Required" -msgstr "SIM PUK আন-লক কৰা প্ৰয়োজন" +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "NetworkManager চলি থকা নাই..." -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:971 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "'%s' মোবাইল ব্ৰড-বেন্ড যন্ত্ৰ ব্যৱহাৰ কৰাৰ আগতে এটা SIM PUK কোড উপলব্ধ থকা আৱশ্যক ।" +#: ../src/applet.c:1854 ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "নেটৱাৰ্কিং অসামৰ্থবান" -#: ../src/applet-device-gsm.c:972 -msgid "PUK code:" -msgstr "PUK কোড:" +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "নেটৱাৰ্কিং সামৰ্থবান কৰক (_N)" -#: ../src/applet-device-gsm.c:974 -msgid "New PIN code:" -msgstr "নতুন PIN কোড:" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +msgid "Enable _Wi-Fi" +msgstr "Wi-Fi সামৰ্থবান কৰক (_W)" -#: ../src/applet-device-gsm.c:975 -msgid "Re-enter new PIN code:" -msgstr "নতুন PIN কোড পুনঃ লিখক:" +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "ম'বাইল ব্ৰডবেণ্ড সক্ৰিয় কৰক (_M)" -#: ../src/applet-device-wired.c:63 -msgid "Auto Ethernet" -msgstr "অ'টো ইথাৰ্নে'ট" +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "WiMAX ম'বাইল ব্ৰডবেণ্ড সামৰ্থবান কৰক (_X)" -#: ../src/applet-device-wired.c:206 -#, c-format -msgid "Wired Networks (%s)" -msgstr "তাঁৰযুক্ত নে'টৱৰ্ক (%s)" +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "অধিসূচনাসমূহ সামৰ্থবান কৰক (_o)" -#: ../src/applet-device-wired.c:208 -#, c-format -msgid "Wired Network (%s)" -msgstr "তাঁৰযুক্ত নে'টৱৰ্ক (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "সংযোগ তথ্য (_I)" + +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "সংযোগসমূহ সম্পাদন কৰক..." -#: ../src/applet-device-wired.c:211 -msgid "Wired Networks" -msgstr "তাঁৰযুক্ত নে'টৱৰ্ক" +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "সহায় (_H)" -#: ../src/applet-device-wired.c:213 -msgid "Wired Network" -msgstr "তাঁৰযুক্ত নে'টৱৰ্ক" +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "বিষয়ে (_A)" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:233 ../src/applet.c:1305 -msgid "disconnected" -msgstr "বিচ্ছিন্ন" +#: ../src/applet.c:2335 +msgid "Disconnected" +msgstr "বিচ্ছিন্নিত" -#: ../src/applet-device-wired.c:275 -msgid "You are now connected to the wired network." -msgstr "আপুনি এতিয়া তাঁৰযুক্ত নে'টৱৰ্কলৈ সংযুক্ত ।" +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "নেটৱাৰ্ক সংযোগ বিচ্ছিন্ন কৰা হৈছে।" -#: ../src/applet-device-wired.c:301 +#: ../src/applet.c:2519 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "তাঁৰযুক্ত নে'টৱৰ্ক সংযোগ '%s' সৃষ্টি কৰা হৈছে..." +msgid "Preparing network connection '%s'..." +msgstr "নেটৱাৰ্ক সংযোগ '%s' প্ৰস্তুত কৰা হৈছে..." -#: ../src/applet-device-wired.c:304 +#: ../src/applet.c:2522 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "তাঁৰযুক্ত নে'টৱৰ্ক সংযোগ '%s' বিন্যাস কৰা হৈছে..." +msgid "User authentication required for network connection '%s'..." +msgstr "নেটৱাৰ্ক সংযোগ '%s' ৰ বাবে ব্যৱহাৰকাৰী প্ৰমাণীকৰণৰ প্ৰয়োজন..." -#: ../src/applet-device-wired.c:307 +#: ../src/applet.c:2525 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:541 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "তাঁৰযুক্ত নে'টৱৰ্ক সংযোগ '%s' ৰ কাৰণে ব্যৱহাৰকৰ্তাৰ প্ৰমাণীকৰণৰ প্ৰয়োজন..." +msgid "Requesting a network address for '%s'..." +msgstr "'%s' ৰ কাৰণে নেটৱাৰ্ক ঠিকনা অনুৰোধ কৰা হৈছে..." -#: ../src/applet-device-wired.c:310 +#: ../src/applet.c:2528 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "'%s' ৰ কাৰণে তাঁৰযুক্ত নে'টৱৰ্ক ঠিকনা অনুৰোধ কৰা হৈছে..." +msgid "Network connection '%s' active" +msgstr "নেটৱাৰ্ক সংযোগ '%s' সক্ৰিয়" -#: ../src/applet-device-wired.c:314 +#: ../src/applet.c:2611 #, c-format -msgid "Wired network connection '%s' active" -msgstr "তাঁৰযুক্ত নে'টৱৰ্ক সংযোগ '%s' সক্ৰিয়" - -#: ../src/applet-device-wired.c:565 -msgid "DSL authentication" -msgstr "DSL প্ৰমাণীকৰণ" - -#: ../src/applet-device-wifi.c:87 -msgid "_Connect to Hidden Wireless Network..." -msgstr "লুকুৱা বেতাঁৰ নে'টৱৰ্কলৈ সংযুক্ত কৰক (_C)..." - -#: ../src/applet-device-wifi.c:120 -msgid "Create _New Wireless Network..." -msgstr "নতুন বেতাঁৰ নে'টৱৰ্ক সৃষ্টি কৰক (_N)..." +msgid "Starting VPN connection '%s'..." +msgstr "VPN সংযোগ '%s' আৰম্ভ কৰা হৈছে..." -#: ../src/applet-device-wifi.c:705 +#: ../src/applet.c:2614 #, c-format -msgid "Wireless Networks (%s)" -msgstr "বেতাঁৰ নে'টৱৰ্ক (%s)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "VPN সংযোগ '%s' ৰ বাবে ব্যৱহাৰকাৰী প্ৰমাণীকৰণৰ প্ৰয়োজন..." -#: ../src/applet-device-wifi.c:707 +#: ../src/applet.c:2617 #, c-format -msgid "Wireless Network (%s)" -msgstr "বেতাঁৰ নে'টৱৰ্ক (%s)" - -#: ../src/applet-device-wifi.c:709 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "বেতাঁৰ নে'টৱৰ্ক" -msgstr[1] "বেতাঁৰ নে'টৱৰ্ক" - -#: ../src/applet-device-wifi.c:739 -msgid "wireless is disabled" -msgstr "বেতাঁৰ নে'টৱৰ্ক নিষ্ক্ৰিয়" +msgid "Requesting a VPN address for '%s'..." +msgstr "'%s' ৰ বাবে এটা VPN ঠিকনা অনুৰোধ কৰা হৈছে..." -#: ../src/applet-device-wifi.c:800 -msgid "More networks" -msgstr "অতিৰিক্ত নে'টৱৰ্ক" +#: ../src/applet.c:2620 +#, c-format +msgid "VPN connection '%s' active" +msgstr "VPN সংযোগ '%s' সক্ৰিয়" -#: ../src/applet-device-wifi.c:1004 -msgid "Wireless Networks Available" -msgstr "বেতাঁৰ নে'টৱৰ্ক উপস্থিত" +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "কোনো নেটৱাৰ্ক সংযোগ নাই" -#: ../src/applet-device-wifi.c:1005 -msgid "Click on this icon to connect to a wireless network" -msgstr "এটা বেতাঁৰ নে'টৱৰ্কলৈ সংযোগ কৰিবলৈ এই আইকণত টিপক" +#: ../src/applet.c:3362 +msgid "NetworkManager Applet" +msgstr "NetworkManager এপ্লেট" -#: ../src/applet-device-wifi.c:1008 ../src/applet.c:677 -msgid "Don't show this message again" -msgstr "এই সম্বাদ আকৌ নেদেখুৱাব" +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:450 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "উপলব্ধ" -#: ../src/applet-device-wifi.c:1212 +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:492 +#: ../src/applet-device-wimax.c:423 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "আপুনি এতিয়া বেতাঁৰ নে'টৱৰ্ক '%s' লৈ সংযুক্ত ।" +msgid "You are now connected to '%s'." +msgstr "আপুনি এতিয়া '%s' লৈ সংযুক্ত।" -#: ../src/applet-device-wifi.c:1213 ../src/applet-device-wifi.c:1244 -msgid "(none)" -msgstr "(শূণ্য)" +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:496 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "সংযোগ স্থাপিত" -#: ../src/applet-device-wifi.c:1254 -#, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "বেতাঁৰ নে'টৱৰ্ক '%s' সৃষ্টি কৰা হৈছে..." +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "আপুনি এতিয়া ম'বাইল ব্ৰডবেণ্ড নেটৱাৰ্কৰ সৈতে সংযুক্ত।" -#: ../src/applet-device-wifi.c:1257 +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:464 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "বেতাঁৰ নে'টৱৰ্ক '%s' বিন্যাস কৰা হৈছে..." +msgid "Preparing mobile broadband connection '%s'..." +msgstr "ম'বাইল ব্ৰ'ডবেণ্ড সংযোগ '%s' সৃষ্টি কৰা হৈছে..." -#: ../src/applet-device-wifi.c:1260 +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:467 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "বেতাঁৰ নে'টৱৰ্ক সংযোগ '%s' ৰ কাৰণে ব্যৱহাৰকৰ্তাৰ প্ৰমাণীকৰণৰ প্ৰয়োজন..." +msgid "Configuring mobile broadband connection '%s'..." +msgstr "ম'বাইল ব্ৰ'ডবেণ্ড সংযোগ '%s' সংৰূপণ কৰা হৈছে..." -#: ../src/applet-device-wifi.c:1263 +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:538 ../src/applet-device-wimax.c:470 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "'%s' ৰ কাৰণে বেতাঁৰ নে'টৱৰ্ক ঠিকনা অনুৰোধ কৰা হৈছে..." +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "ম'বাইল ব্ৰ'ডবেণ্ড সংযোগ '%s' ৰ বাবে ব্যৱহাৰকাৰীৰ প্ৰমাণীকৰণৰ প্ৰয়োজন..." -#: ../src/applet-device-wifi.c:1283 +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:559 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "বেতাঁৰ নে'টৱৰ্ক '%s' সক্ৰিয়: %s (%d%%)" +msgid "Mobile broadband connection '%s' active" +msgstr "ম'বাইল ব্ৰ'ডবেণ্ড সংযোগ '%s' সক্ৰিয়" -#: ../src/applet-device-wifi.c:1287 +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:700 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" + +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:396 +#: ../src/applet-dialogs.c:424 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "বেতাঁৰ নে'টৱৰ্ক '%s' সক্ৰিয়" +msgid "Mobile Broadband (%s)" +msgstr "ম'বাইল ব্ৰ'ডবেণ্ড (%s)" -#: ../src/applet-dialogs.c:56 -msgid "Error displaying connection information:" -msgstr "সংযোগ তথ্য দেখুৱাওঁতে ভুল:" +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:398 +#: ../src/connection-editor/new-connection.c:87 +#: ../src/connection-editor/page-mobile.c:380 +msgid "Mobile Broadband" +msgstr "ম'বাইল ব্ৰ'ডবেণ্ড" -#: ../src/applet-dialogs.c:87 -#: ../src/connection-editor/page-wireless-security.c:284 -#: ../src/wireless-dialog.c:962 -#: ../src/wireless-security/wireless-security.c:341 -msgid "LEAP" -msgstr "LEAP" +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "নতুন ম'বাইল ব্ৰ'ডবেণ্ড (CDMA) সংযোগ..." -#: ../src/applet-dialogs.c:89 -msgid "Dynamic WEP" -msgstr "Dynamic WEP" +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "আপুনি এতিয়া CDMA নেটৱাৰ্কলৈ সংযুক্ত।" -#: ../src/applet-dialogs.c:91 ../src/applet-dialogs.c:192 -#: ../src/applet-dialogs.c:194 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:554 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "'%s' ম'বাইল ব্ৰডবেণ্ড সংযোগ বৰ্তমানে সক্ৰিয়: (%d%%%s%s)" + +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:557 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "ৰ'মিং" + +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "CDMA নেটৱাৰ্ক।" + +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on the home network." +msgstr "আপুনি এতিয়া ঘৰ নেটৱাৰ্কত ৰেজিস্টাৰ্ড।" + +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1208 +msgid "You are now registered on a roaming network." +msgstr "আপুনি এতিয়া এটা ৰ'মিং নেটৱাৰ্কত ৰেজিস্টাৰ্ড।" + +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "স্বচালিত ইথাৰনেট" + +#: ../src/applet-device-ethernet.c:205 +#, c-format +msgid "Ethernet Networks (%s)" +msgstr "ইথাৰনেট নেটৱাৰ্কসমূহ (%s)" + +#: ../src/applet-device-ethernet.c:207 +#, c-format +msgid "Ethernet Network (%s)" +msgstr "ইথাৰনেট নেটৱাৰ্ক (%s)" + +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "ইথাৰনেট নেটৱাৰ্কসমূহ" + +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "ইথাৰনেট নেটৱাৰ্ক" + +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "আপুনি এতিয়া ইথাৰনেট নেটৱাৰ্কলৈ সংযুক্ত।" + +#: ../src/applet-device-ethernet.c:300 +#, c-format +msgid "Preparing ethernet network connection '%s'..." +msgstr "ইথাৰনেট নেটৱাৰ্ক সংযোগ '%s' প্ৰস্তুত কৰা হৈছে..." + +#: ../src/applet-device-ethernet.c:303 +#, c-format +msgid "Configuring ethernet network connection '%s'..." +msgstr "ইথাৰনেট নেটৱাৰ্ক সংযোগ '%s' সংৰূপণ কৰা হৈছে..." + +#: ../src/applet-device-ethernet.c:306 +#, c-format +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "ইথাৰনেট নেটৱাৰ্ক সংযোগ '%s' ৰ কাৰণে ব্যৱহাৰকাৰীৰ প্ৰমাণীকৰণৰ প্ৰয়োজন..." + +#: ../src/applet-device-ethernet.c:309 +#, c-format +msgid "Requesting an ethernet network address for '%s'..." +msgstr "'%s' ৰ বাবে এটা ইথাৰনেট নেটৱাৰ্ক ঠিকনা অনুৰোধ কৰা হৈছে..." + +#: ../src/applet-device-ethernet.c:313 +#, c-format +msgid "Ethernet network connection '%s' active" +msgstr "ইথাৰনেট নেটৱাৰ্ক সংযোগ '%s' সক্ৰিয়" + +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "DSL প্ৰমাণীকৰণ" + +#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:703 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" + +#. Default connection item +#: ../src/applet-device-gsm.c:463 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "নতুন ম'বাইল ব্ৰ'ডবেণ্ড (GSM) সংযোগ..." + +#: ../src/applet-device-gsm.c:497 +msgid "You are now connected to the GSM network." +msgstr "আপুনি এতিয়া GSM নেটৱাৰ্কলৈ সংযুক্ত।" + +#: ../src/applet-device-gsm.c:658 +msgid "PIN code required" +msgstr "PIN ক'ড প্ৰয়োজনীয়" + +#: ../src/applet-device-gsm.c:666 +msgid "PIN code is needed for the mobile broadband device" +msgstr "ম'বাইল ব্ৰ'ডবেণ্ড ডিভাইচৰ কাৰণে PIN ক'ড প্ৰয়োজনীয়" + +#: ../src/applet-device-gsm.c:787 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "'%s' ত SIM কাৰ্ড '%s' ৰ বাবে PIN ক'ড" + +#: ../src/applet-device-gsm.c:879 +msgid "Wrong PIN code; please contact your provider." +msgstr "ভুল PIN ক'ড; অনুগ্ৰহ কৰি সেৱা উপলব্ধকৰ্তাৰ সৈতে যোগাযোগ কৰক।" + +#: ../src/applet-device-gsm.c:902 +msgid "Wrong PUK code; please contact your provider." +msgstr "ভুল PUK ক'ড; অনুগ্ৰহ কৰি সেৱা উপলব্ধকৰ্তাৰ সৈতে যোগাযোগ কৰক।" + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:929 +msgid "Sending unlock code..." +msgstr "আনলক কৰাৰ ক'ড পঠিওৱা হৈছে..." + +#: ../src/applet-device-gsm.c:992 +msgid "SIM PIN unlock required" +msgstr "SIM PIN আনলক কৰা প্ৰয়োজন" + +#: ../src/applet-device-gsm.c:993 +msgid "SIM PIN Unlock Required" +msgstr "SIM PIN আনলক কৰা প্ৰয়োজন" + +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:995 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "'%s' ম'বাইল ব্ৰডবেণ্ড ডিভাইচ ব্যৱহাৰ কৰাৰ আগতে এটা SIM PIN ক'ড উপলব্ধ থকা আৱশ্যক।" + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:997 +msgid "PIN code:" +msgstr "PIN ক'ড:" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:1001 +msgid "Show PIN code" +msgstr "PIN ক'ড দেখুৱাওক" + +#: ../src/applet-device-gsm.c:1004 +msgid "SIM PUK unlock required" +msgstr "SIM PUK আনলক কৰা প্ৰয়োজন" + +#: ../src/applet-device-gsm.c:1005 +msgid "SIM PUK Unlock Required" +msgstr "SIM PUK আনলক কৰা প্ৰয়োজন" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1007 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "'%s' ম'বাইল ব্ৰডবেণ্ড ডিভাইচ ব্যৱহাৰ কৰাৰ আগতে এটা SIM PUK ক'ড উপলব্ধ থকা আৱশ্যক।" + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1009 +msgid "PUK code:" +msgstr "PUK ক'ড:" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1012 +msgid "New PIN code:" +msgstr "নতুন PIN ক'ড:" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1014 +msgid "Re-enter new PIN code:" +msgstr "নতুন PIN ক'ড পুনঃ লিখক:" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1019 +msgid "Show PIN/PUK codes" +msgstr "PIN/PUK ক'ডসমূহ দেখুৱাওক" + +#: ../src/applet-device-gsm.c:1201 ../src/applet-device-gsm.c:1207 +msgid "GSM network." +msgstr "GSM নেটৱাৰ্ক।" + +#: ../src/applet-device-wifi.c:97 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "লুকুৱা Wi-Fi নেটৱাৰ্কলৈ সংযোগ কৰক (_C)..." + +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "নতুন Wi-Fi নেটৱাৰ্ক সৃষ্টি কৰক (_N)..." + +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(শূণ্য)" + +#: ../src/applet-device-wifi.c:790 +#, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "Wi-Fi নেটৱাৰ্কসমূহ (%s)" + +#: ../src/applet-device-wifi.c:792 +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Wi-Fi নেটৱাৰ্ক (%s)" + +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Wi-Fi নেটৱাৰ্ক" +msgstr[1] "Wi-Fi নেটৱাৰ্কসমূহ" + +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "Wi-Fi অসামৰ্থবান আছে" + +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Wi-Fi হাৰ্ডৱেৰ চুইচ দ্বাৰা অসামৰ্থবান কৰা আছে" + +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "অতিৰিক্ত নেটৱাৰ্ক" + +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "Wi-Fi নেটৱাৰ্ক উপলব্ধ" + +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "এটা Wi-Fi নেটৱাৰ্কলে সংযোগ কৰিবলে নেটৱাৰ্ক মেনু ব্যৱহাৰ কৰক" + +#: ../src/applet-device-wifi.c:1263 +#, c-format +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "আপুনি এতিয়া Wi-Fi নেটৱাৰ্ক '%s' ৰ সৈতে সংযুক্ত।" + +#: ../src/applet-device-wifi.c:1294 +#, c-format +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Wi-Fi নেটৱাৰ্ক সংযোগ '%s' প্ৰস্তুত কৰা হৈছে..." + +#: ../src/applet-device-wifi.c:1297 +#, c-format +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Wi-Fi নেটৱাৰ্ক সংযোগ '%s' সংৰূপণ কৰা হৈছে..." + +#: ../src/applet-device-wifi.c:1300 +#, c-format +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "Wi-Fi নেটৱাৰ্ক সংযোগ '%s' ৰ বাবে ব্যৱহাৰকাৰীৰ প্ৰমাণীকৰণৰ প্ৰয়োজন..." + +#: ../src/applet-device-wifi.c:1303 +#, c-format +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "'%s' ৰ কাৰণে এটা Wi-Fi নেটৱাৰ্ক ঠিকনা অনুৰোধ কৰা হৈছে..." + +#: ../src/applet-device-wifi.c:1324 +#, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Wi-Fi নেটৱাৰ্ক সংযোগ '%s' সক্ৰিয়: %s (%d%%)" + +#: ../src/applet-device-wifi.c:1329 +#, c-format +msgid "Wi-Fi network connection '%s' active" +msgstr "Wi-Fi নেটৱাৰ্ক সংযোগ '%s' সক্ৰিয়" + +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "সংযোগ সক্ৰিয় কৰিবলে ব্যৰ্থ" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "নতুন সংযোগ যোগ কৰিবলে ব্যৰ্থ" + +#: ../src/applet-device-wimax.c:231 +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "WiMAX ম'বাইল ব্ৰডবেণ্ড (%s)" + +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "WiMAX ম'বাইল ব্ৰডবেণ্ড" + +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "WiMAX অসামৰ্থবান আছে" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX হাৰ্ডৱেৰ চুইচ দ্বাৰা অসামৰ্থবান" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "আপুনি এতিয়া WiMAX নেটৱাৰ্কলে সংযুক্ত।" + +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "সঠিক তথ্য দেখুৱাওঁতে ত্ৰুটি:" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" + +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "ডাইনামিক WEP" + +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:190 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:198 -#: ../src/connection-editor/page-wireless-security.c:238 -#: ../src/wireless-dialog.c:919 -msgctxt "No wifi security used" +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 +msgctxt "Wifi/wired security" msgid "None" -msgstr "একো নাই" +msgstr "কোনো নহয়" -#: ../src/applet-dialogs.c:207 -msgctxt "No wired security used" -msgid "None" -msgstr "একো নাই" - -#: ../src/applet-dialogs.c:210 -msgctxt "Unknown/unrecognized wired or wifi security" -msgid "Unknown" -msgstr "অজ্ঞাত" +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (অবিকল্পিত)" -#: ../src/applet-dialogs.c:280 ../src/applet-dialogs.c:382 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:282 ../src/applet-dialogs.c:384 -#: ../src/applet-dialogs.c:421 ../src/applet-dialogs.c:439 -#: ../src/applet-dialogs.c:450 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" msgid "Unknown" msgstr "অজ্ঞাত" -#: ../src/applet-dialogs.c:313 +#: ../src/applet-dialogs.c:361 +#, c-format +msgid "%d dB" +msgstr "%d dB" + +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "অজ্ঞাত" + +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "অজ্ঞাত" + +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" -msgstr "ইথাৰ্নে'ট (%s)" +msgstr "ইথাৰনেট (%s)" -#: ../src/applet-dialogs.c:315 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:317 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:319 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:324 +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" + +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "সাধাৰণ" + +#: ../src/applet-dialogs.c:436 msgid "Interface:" -msgstr "সংযোগমাধ্যম:" +msgstr "আন্তঃপৃষ্ঠ:" -#: ../src/applet-dialogs.c:340 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "হাৰ্ডৱেৰ ঠিকনা:" -#: ../src/applet-dialogs.c:350 +#. Driver +#: ../src/applet-dialogs.c:460 msgid "Driver:" -msgstr "চালক:" +msgstr "ড্ৰাইভাৰ:" -#: ../src/applet-dialogs.c:388 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "গতি:" -#: ../src/applet-dialogs.c:397 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "সুৰক্ষা:" -#: ../src/applet-dialogs.c:419 +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "CINR:" + +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "BSID:" + +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" + +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP ঠিকনা:" -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "অজ্ঞাত" + +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" -msgstr "ব্ৰ'ডকাস্ট ঠিকনা:" +msgstr "প্ৰচাৰ ঠিকনা:" -#: ../src/applet-dialogs.c:448 +#. Prefix +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" -msgstr "ছাবনে'ট মাস্ক:" +msgstr "চাবনেট মাস্ক:" -#: ../src/applet-dialogs.c:460 +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "অজ্ঞাত" + +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "অবিকল্পিত পথ:" -#: ../src/applet-dialogs.c:474 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "মূখ্য DNS:" -#: ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "দ্বিতীয় DNS:" +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "ত্ৰয়াত্মক DNS:" + +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" + +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "উপেক্ষা কৰা হৈছে" + +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "VPN ধৰণ:" + +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "VPN গেইটৱে:" + +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "VPN ব্যৱহাৰকাৰীনাম:" + +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "VPN বেনাৰ:" + +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "ভিত্তি সংযোগ:" + +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "অজ্ঞাত" + #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:548 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "কোনো বৈধ সক্ৰিয় সংযোগ চিনাক্ত কৰা নাযায়!" -#: ../src/applet-dialogs.c:674 +#: ../src/applet-dialogs.c:939 msgid "" -"Copyright © 2004-2008 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc." +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" msgstr "" -"Copyright © 2004-2008 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc." +"স্বত্বাধিকাৰ © ২০০৪-২০১১ Red Hat, Inc.\n" +"স্বত্বাধিকাৰ © ২০০৫-২০০৮ Novell, Inc.\n" +"আৰু অন্য বহুতো সম্প্ৰদায়ৰ অৱদানকাৰী আৰু অনুবাদকসকল" -#: ../src/applet-dialogs.c:676 +#: ../src/applet-dialogs.c:942 msgid "Notification area applet for managing your network devices and connections." -msgstr "নে'টৱৰ্ক যন্ত্ৰ আৰু সংযোগ পৰিচালনৰ বাবে ব্যৱহাৰযোগ্য বিজ্ঞপ্তিস্থলৰ এপ্লেট ।" +msgstr "আপোনাৰ নেটৱাৰ্ক ডিভাইচ আৰু সংযোগসমূহ ব্যৱস্থাপনাৰ বাবে অধিসূচনা স্থানৰ এপ্লেট।" -#: ../src/applet-dialogs.c:678 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" -msgstr "NetworkManager ৱেব-ছাইট" +msgstr "NetworkManager ৱেবছাইট" -#: ../src/applet-dialogs.c:681 -msgid "translator-credits" -msgstr "অমিতাক্ষ ফুকন (aphukan@fedoraproject.org)" - -#: ../src/applet-dialogs.c:697 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "অনুপস্থিত সম্পদ" -#: ../src/applet-dialogs.c:723 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" -msgstr "মোবাইল ব্ৰ'ডবেণ্ড নে'টৱৰ্কৰ গুপ্তশব্দ" +msgstr "ম'বাইল ব্ৰ'ডবেণ্ড নেটৱাৰ্কৰ পাছৱাৰ্ড" -#: ../src/applet-dialogs.c:732 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." -msgstr "'%s' লৈ সংযোগ কৰিবলৈ এটা গুপ্তশব্দৰ প্ৰয়োজন ।" +msgstr "'%s' লৈ সংযোগ কৰিবলৈ এটা পাছৱাৰ্ডৰ প্ৰয়োজন।" -#: ../src/applet-dialogs.c:750 +#: ../src/applet-dialogs.c:1012 msgid "Password:" -msgstr "গুপ্তশব্দ:" - -#: ../src/applet.c:790 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"নে'টৱৰ্ক সংযোগ বিঘ্নিত হোৱাৰ ফলত VPN সংযোগ '%s' বিফল হৈছে ।" - -#: ../src/applet.c:793 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"VPN সেৱা অপ্ৰত্যাশিতভাবে বন্ধ হোৱাৰ ফলত VPN সংযোগ '%s' বিফল হৈছে ।" - -#: ../src/applet.c:796 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid configuration." - -#: ../src/applet.c:799 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." - -#: ../src/applet.c:802 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." - -#: ../src/applet.c:805 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." - -#: ../src/applet.c:808 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." - -#: ../src/applet.c:811 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "পাছৱাৰ্ড:" -#: ../src/applet.c:818 -#, c-format +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 msgid "" -"\n" -"The VPN connection '%s' failed." +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." msgstr "" -"\n" -"The VPN connection '%s' failed." +"IP ঠিকনাসমূহে আপোনাৰ কমপিউটাৰক নেটৱাৰ্কত চিনাক্ত কৰে। এটা IP ঠিকনা যোগ কৰিবলে " +"\"যোগ কৰক\" বুটাম ক্লিক কৰক।" -#: ../src/applet.c:836 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"The VPN connection '%s' disconnected because the network connection was interrupted." +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "Ig_nore automatically obtained routes" +msgstr "স্বচালিতভাৱে প্ৰাপ্ত পথসমূহ উপেক্ষা কৰক (_n)" -#: ../src/applet.c:839 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +msgid "_Use this connection only for resources on its network" +msgstr "এই সংযোগক কেৱল ইয়াৰ নেটৱাৰ্কৰ সম্পসমূহৰ বাবে ব্যৱহাৰ কৰক (_U)" -#: ../src/applet.c:845 -#, c-format +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"The VPN connection '%s' disconnected." +"If enabled, this connection will never be used as the default network " +"connection." +msgstr "যদি সামৰ্থবান, এই সংযোগক কেতিয়াও অবিকল্পিত নেটৱাৰ্ক সংযোগ হিচাপে ব্যৱহাৰ কৰা নহব।" -#: ../src/applet.c:876 -msgid "VPN Login Message" -msgstr "VPN Login Message" +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " -#: ../src/applet.c:888 ../src/applet.c:896 ../src/applet.c:943 -msgid "VPN Connection Failed" -msgstr "VPN Connection Failed" +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "এটা সংযোগ ধৰণ বাছক" -#: ../src/applet.c:950 -#, c-format +#: ../src/connection-editor/ce-new-connection.ui.h:3 msgid "" +"Select the type of connection you wish to create.\n" "\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." msgstr "" +"আপুনি সৃষ্টি কৰিব বিচৰা সংযোগৰ ধৰণ বাছক। \n" "\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" +"যদি আপুনি এটা VPN সৃষ্টি কৰি আছে, আৰু আপুনি সৃষ্টি কৰিব বিচৰা " +"VPN সংযোগ তালিকাত নাথাকে, আপোনাৰ হয়তো সঠিক VPN প্লাগিন ইনস্টল নাই।" -#: ../src/applet.c:953 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" - -#: ../src/applet.c:1296 -msgid "device not ready" -msgstr "device not ready" - -#: ../src/applet.c:1321 -msgid "Disconnect" -msgstr "বিচ্ছিন্ন কৰক" - -#: ../src/applet.c:1335 -msgid "device not managed" -msgstr "device not managed" - -#: ../src/applet.c:1381 -msgid "No network devices available" -msgstr "No network devices available" +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "সৃষ্টি কৰক..." -#: ../src/applet.c:1469 -msgid "_VPN Connections" -msgstr "_VPN Connections" +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "স্বচালিত" -#: ../src/applet.c:1522 -msgid "_Configure VPN..." -msgstr "_Configure VPN..." +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "এটা অজ্ঞাত ত্ৰুটিৰ বাবে সংযোগ গোপনসমূহ আপডেইট কৰিবলে ব্যৰ্থ।" -#: ../src/applet.c:1526 -msgid "_Disconnect VPN" -msgstr "VPN ৰ সৈতে সংযোগ বিচ্ছিন্ন কৰক (_D)..." +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" +msgstr "Round-robin" + +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" +msgstr "সক্ৰিয় বেকআপ" + +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" +msgstr "XOR" + +#: ../src/connection-editor/ce-page-bond.ui.h:4 +msgid "Broadcast" +msgstr "প্ৰচাৰ" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "802.3ad" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" +msgstr "এডাপ্টিভ ট্ৰান্সমিট ল'ড বেলেন্সিং" + +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" +msgstr "এডাপ্টিভ ল'ড বেলেন্সিং" + +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "MII (উপদেশিত)" + +#: ../src/connection-editor/ce-page-bond.ui.h:9 +msgid "ARP" +msgstr "ARP" + +#: ../src/connection-editor/ce-page-bond.ui.h:10 +msgid "Bonded _connections:" +msgstr "বান্ধীত সংযোগসমূহ (_c):" + +#: ../src/connection-editor/ce-page-bond.ui.h:11 +msgid "_Mode:" +msgstr "অৱস্থা (_M):" + +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "সম্পাদনা কৰক (_E)" + +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "মচি পেলাওক (_D)" + +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "কম্পনাংক পৰ্যবেক্ষণ কৰা (_f):" + +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "ms" + +#: ../src/connection-editor/ce-page-bond.ui.h:16 +msgid "_Interface name:" +msgstr "আন্তঃপৃষ্ঠৰ নাম (_I):" + +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "লিংকৰ পৰ্যবেক্ষণ (_L):" + +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "ARP লক্ষ্যসমূহ (_t):" + +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "" +"An IP address, or a comma-separated list of IP addresses, to look for when " +"checking the link status." +msgstr "" +"লিংকৰ অৱস্থা নীৰিক্ষণ কৰোতে চাব লগিয়া এটা IP ঠিকনা, অথবা IP ঠিকনাসমূহৰ এটা কমা-পৃথকিত " +"তালিকা।" + +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "লিংক আপ বিলম্ব (_u):" + +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "লিংক ডাউন বিলম্ব (_d):" + +#: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 +#: ../src/wireless-security/eap-method-leap.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/ws-leap.ui.h:1 +msgid "_Username:" +msgstr "ব্যৱহাৰকাৰীৰ নাম (_U):" -#: ../src/applet.c:1613 -msgid "NetworkManager is not running..." -msgstr "NetworkManager is not running..." +#: ../src/connection-editor/ce-page-dsl.ui.h:2 +msgid "_Service:" +msgstr "সেৱা (_S):" -#: ../src/applet.c:1618 ../src/applet.c:2394 -msgid "Networking disabled" -msgstr "Networking disabled" +#: ../src/connection-editor/ce-page-dsl.ui.h:3 +#: ../src/wireless-security/eap-method-leap.ui.h:3 +#: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 +#: ../src/wireless-security/ws-leap.ui.h:3 +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "পাছৱাৰ্ড দেখুৱাওক (_w)" -#. 'Enable Networking' item -#: ../src/applet.c:1835 -msgid "Enable _Networking" -msgstr "Enable _Networking" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "পাছৱাৰ্ড (_P):" -#. 'Enable Wireless' item -#: ../src/applet.c:1844 -msgid "Enable _Wireless" -msgstr "Enable _Wireless" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "স্বচালিত" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:1853 -msgid "Enable _Mobile Broadband" -msgstr "মোবাইল ব্ৰড-বেন্ড সক্ৰিয় কৰক (_M)" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "টুইস্টেড পেয়াৰ (TP)" -#. Toggle notifications item -#: ../src/applet.c:1864 -msgid "Enable N_otifications" -msgstr "বিজ্ঞপ্তি প্ৰদানৰ ব্যৱস্থা সক্ৰিয় কৰক (_o)" +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "এটাচমেন্ট একক আন্তঃপৃষ্ঠ (AUI)" -#. 'Connection Information' item -#: ../src/applet.c:1875 -msgid "Connection _Information" -msgstr "Connection _Information" +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" -#. 'Edit Connections...' item -#: ../src/applet.c:1885 -msgid "Edit Connections..." -msgstr "Edit Connections..." +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "মাধ্যম মুক্ত আন্তঃপৃষ্ঠ (MII)" -#. Help item -#: ../src/applet.c:1899 -msgid "_Help" -msgstr "সহায় (_H)" +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" -#. About item -#: ../src/applet.c:1908 -msgid "_About" -msgstr "_About" +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" -#: ../src/applet.c:2099 -msgid "Disconnected" -msgstr "বিচ্ছিন্ন" +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" -#: ../src/applet.c:2100 -msgid "The network connection has been disconnected." -msgstr "The network connection has been disconnected." +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" -#: ../src/applet.c:2260 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Preparing network connection '%s'..." +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "পৰ্ট (_P):" -#: ../src/applet.c:2263 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "User authentication required for network connection '%s'..." +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "গতি (_S):" -#: ../src/applet.c:2269 -#, c-format -msgid "Network connection '%s' active" -msgstr "Network connection '%s' active" +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "সম্পূৰ্ণ ডুপ্লেক্স (_x)" -#: ../src/applet.c:2350 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Starting VPN connection '%s'..." +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "স্বআপোচ (_o)" -#: ../src/applet.c:2353 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "User authentication required for VPN connection '%s'..." +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "ডিভাইচ MAC ঠিকনা (_D):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "ক্লৌন্ড MAC ঠিকনা (_l):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"ইয়াত সুমুৱা MAC ঠিকনাক এই সংযোগ সক্ৰিয় কৰা নেটৱাৰ্ক ডিভাইচৰ বাবে হাৰ্ডৱেৰ ঠিকনা " +"হিচাপে ব্যৱহাৰ কৰা হব। এই বৈশিষ্টক MAC ক্লৌনিং অথবা স্পুফিং হিচাপে জনা যায়। " +"উদাহৰণ: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "MTU (_M):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "বাইটসমূহ" -#: ../src/applet.c:2356 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Requesting a VPN address for '%s'..." +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "পৰিবহন অৱস্থা (_T):" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "ডাটাগ্ৰাম" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "সংযুক্ত" + +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 +msgid "Automatic with manual DNS settings" +msgstr "হস্তচালিত DNS সংহতিসমূহৰ সৈতে স্বচালিত" + +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "হস্তচালিত" -#: ../src/applet.c:2359 -#, c-format -msgid "VPN connection '%s' active" -msgstr "VPN connection '%s' active" +#: ../src/connection-editor/ce-page-ip4.ui.h:4 +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "সংযোগ-স্থানীয়" + +#: ../src/connection-editor/ce-page-ip4.ui.h:5 +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "অন্য কমপিউটাৰৰ সৈতে অংশীদাৰী কৰা আছে" -#: ../src/applet.c:2398 -msgid "No network connection" -msgstr "No network connection" +#: ../src/connection-editor/ce-page-ip4.ui.h:6 +#: ../src/connection-editor/ce-page-ip6.ui.h:6 +msgid "_Method:" +msgstr "পদ্ধতি (_M):" -#: ../src/applet.c:2938 -msgid "NetworkManager Applet" -msgstr "NetworkManager Applet" +#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip6.ui.h:7 +msgid "Addresses" +msgstr "ঠিকনাসমূহ" -#: ../src/applet.c:2944 ../src/wired-dialog.c:128 +#: ../src/connection-editor/ce-page-ip4.ui.h:9 msgid "" -"The NetworkManager Applet could not find some required resources (the glade " -"file was not found)." -msgstr "The NetworkManager Applet could not find some required resources (the glade file was not found)." - -#: ../src/applet.glade.h:1 ../src/connection-editor/ce-vpn-wizard.glade.h:1 -msgid " " -msgstr " " +"The DHCP client identifier allows the network administrator to customize " +"your computer's configuration. If you wish to use a DHCP client identifier, " +"enter it here." +msgstr "" +"DHCP ক্লাএন্ট পৰিচয়কৰ সহায়ত নেটৱাৰ্ক প্ৰশাসকে আপোনাৰ কমপিউটাৰৰ সংৰূপ নিৰ্ধাৰণ " +"কৰিবলৈ পাৰিব। DHCP ক্লাএন্ট পৰিচয়কৰ ব্যৱহাৰ কৰিবলৈ ইচ্ছুক হ'লে সেইটো ইয়াত লিখক।" -#: ../src/applet.glade.h:2 +#: ../src/connection-editor/ce-page-ip4.ui.h:10 +#: ../src/connection-editor/ce-page-ip6.ui.h:9 msgid "" -"1 (Default)\n" -"2\n" -"3\n" -"4" -msgstr "" -"1 (Default)\n" -"2\n" -"3\n" -"4" - -#: ../src/applet.glade.h:6 -msgid "Active Network Connections" -msgstr "Active Network Connections" +"Domains used when resolving host names. Use commas to separate multiple " +"domains." +msgstr "" +"হস্ট নাম বিশ্লেষণ কৰাৰ বাবে ব্যৱহৃত ডোমেইন। একাধিক ডোমেইন চিহ্নিত কৰাৰ সময়ত কমা " +"চিহ্ন প্ৰয়োগ কৰা হ'ব।" -#: ../src/applet.glade.h:7 -msgid "Anony_mous identity:" -msgstr "Anony_mous identity:" +#: ../src/connection-editor/ce-page-ip4.ui.h:11 +msgid "D_HCP client ID:" +msgstr "DHCP ক্লাএন্ট ID (_H):" -#: ../src/applet.glade.h:8 -msgid "As_k for this password every time" -msgstr "প্ৰতিবাৰ এই গুপ্তশব্দ লিখাৰ অনুৰোধ কৰা হ'ব (_k)" +#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 +msgid "S_earch domains:" +msgstr "ডমেইনসমূহ সন্ধান কৰক (_e):" + +#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 +msgid "_DNS servers:" +msgstr "DNS চাৰ্ভাৰসমূহ (_D):" -#: ../src/applet.glade.h:9 +#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip6.ui.h:12 msgid "" -"Automatic\n" -"Version 0\n" -"Version 1" +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." msgstr "" -"Automatic\n" -"Version 0\n" -"Version 1" +"হস্ট নাম বিশ্লেষণ কৰাৰ বাবে ব্যৱহৃত ডোমেইন নাম চাৰ্ভাৰৰ IP ঠিকনা। একাধিক ডোমেইন " +"নাম চাৰ্ভাৰৰ ঠিকনা চিহ্নিত কৰাৰ সময় কমা চিহ্ন প্ৰয়োগ কৰা হ'ব।" -#: ../src/applet.glade.h:12 -msgid "C_A certificate:" -msgstr "C_A certificate:" +#: ../src/connection-editor/ce-page-ip4.ui.h:15 +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "এই সংযোগ সম্পূৰ্ণ হবলে IPv4 ঠিকনাৰ প্ৰয়োজন (_4)" -#: ../src/applet.glade.h:13 -msgid "C_onnect" -msgstr "C_onnect" +#: ../src/connection-editor/ce-page-ip4.ui.h:16 +msgid "" +"When connecting to IPv6-capable networks, allows the connection to complete " +"if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "" +"IPv6 ৰ সৈতে সুসঙ্গত নেটৱাৰ্কৰ সৈতে সংযোগ কৰোঁতে, সংযোগক সম্পূৰ্ণ হ'বলৈ দিয়ে যদি " +"IPv4 সংৰূপ বিফল হয় কিন্তু IPv6 সংৰূপ সফল হয়।" -#: ../src/applet.glade.h:14 -msgid "Co_nnection:" -msgstr "Co_nnection:" +#: ../src/connection-editor/ce-page-ip4.ui.h:17 +#: ../src/connection-editor/ce-page-ip6.ui.h:15 +msgid "_Routes…" +msgstr "পথসমূহ (_R)…" + +#: ../src/connection-editor/ce-page-ip6.ui.h:13 +msgid "Require IPv_6 addressing for this connection to complete" +msgstr "এই সংযোগ সম্পূৰ্ণ হবলে IPv6 ঠিকনাৰ প্ৰয়োজন (_6)" -#: ../src/applet.glade.h:15 -msgid "Connection Information" -msgstr "সংযোগ তথ্য" +#: ../src/connection-editor/ce-page-ip6.ui.h:14 +msgid "" +"When connecting to IPv4-capable networks, allows the connection to complete " +"if IPv6 configuration fails but IPv4 configuration succeeds." +msgstr "" +"IPv4 ৰ সৈতে সুসঙ্গত নেটৱাৰ্কৰ সৈতে সংযোগ কৰোঁতে, সংযোগক সম্পূৰ্ণ হ'বলৈ দিয়ে যদি " +"IPv4 সংৰূপ বিফল হয় কিন্তু IPv4 সংৰূপ সফল হয়।" -#: ../src/applet.glade.h:16 -msgid "Don't _warn me again" -msgstr "এই সম্বাদ আকৌ নেদেখুৱাব" +#: ../src/connection-editor/ce-page-mobile.ui.h:1 +msgid "Any" +msgstr "যিকোনো" + +#: ../src/connection-editor/ce-page-mobile.ui.h:2 +msgid "3G (UMTS/HSPA)" +msgstr "3G (UMTS/HSPA)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:3 +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:4 +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "পছন্দ 3G (UMTS/HSPA)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:5 +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "পছন্দ 2G (GPRS/EDGE)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:6 +msgid "Basic" +msgstr "মৌলিক" -#: ../src/applet.glade.h:17 -msgid "I_dentity:" -msgstr "I_dentity:" +#: ../src/connection-editor/ce-page-mobile.ui.h:7 +msgid "Nu_mber:" +msgstr "সংখ্যা (_m):" -#: ../src/applet.glade.h:18 -msgid "I_nner authentication:" -msgstr "DSL প্ৰমাণীকৰণ" +#: ../src/connection-editor/ce-page-mobile.ui.h:10 +msgid "Advanced" +msgstr "উন্নত" -#: ../src/applet.glade.h:19 -msgid "No" -msgstr "নহয়" +#: ../src/connection-editor/ce-page-mobile.ui.h:11 +msgid "_APN:" +msgstr "APN (_A):" -#: ../src/applet.glade.h:20 -msgid "" -"Open System\n" -"Shared Key" -msgstr "" -"Open System\n" -"Shared Key" +#: ../src/connection-editor/ce-page-mobile.ui.h:12 +msgid "N_etwork ID:" +msgstr "নেটৱাৰ্কৰ ID (_e):" -#: ../src/applet.glade.h:22 -msgid "Other Wireless Network..." -msgstr "বেতাঁৰ নে'টৱৰ্ক" +#: ../src/connection-editor/ce-page-mobile.ui.h:13 +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "ধৰণ (_T):" -#: ../src/applet.glade.h:23 -msgid "Private _key:" -msgstr "Private _key:" +#: ../src/connection-editor/ce-page-mobile.ui.h:14 +msgid "Change..." +msgstr "পৰিবৰ্তন কৰক..." -#: ../src/applet.glade.h:24 -msgid "Sho_w key" -msgstr "Sho_w key" +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +msgid "P_IN:" +msgstr "PIN (_I):" -#: ../src/applet.glade.h:25 ../src/connection-editor/ce-page-dsl.glade.h:1 -msgid "Sho_w password" -msgstr "Sho_w password" +#: ../src/connection-editor/ce-page-mobile.ui.h:16 +msgid "Allow _roaming if home network is not available" +msgstr "ঘৰ নেটৱাৰ্ক উপস্থিত নাথাকিলে ৰ'মিংৰ অনুমতি দিয়ক (_r)" -#: ../src/applet.glade.h:26 -msgid "WEP inde_x:" -msgstr "WEP" +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "পাছৱাৰ্ডসমূহ দেখুৱাওক (_w)" -#: ../src/applet.glade.h:27 -msgid "Wireless _adapter:" -msgstr "বেতাঁৰ নে'টৱৰ্ক" +#: ../src/connection-editor/ce-page-ppp.ui.h:1 +msgid "Authentication" +msgstr "প্ৰমাণীকৰণ" -#: ../src/applet.glade.h:28 -msgid "Yes" -msgstr "হয়" +#: ../src/connection-editor/ce-page-ppp.ui.h:2 +msgid "Allowed methods:" +msgstr "অনুমোদিত পদ্ধতিসমূহ:" -#: ../src/applet.glade.h:29 -msgid "_Authentication:" -msgstr "_Authentication:" +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "পদ্ধতিসমূহ সংৰূপণ কৰক (_M)…" -#: ../src/applet.glade.h:30 -msgid "_Key:" -msgstr "_Key:" +#: ../src/connection-editor/ce-page-ppp.ui.h:4 +msgid "Compression" +msgstr "সংকোচন" -#: ../src/applet.glade.h:31 -msgid "_Network name:" -msgstr "নাম" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "বিন্দুৰ-পৰা-বিন্দু ইনক্ৰিপষণ ব্যৱহাৰ কৰক (MPPE) (_U)" -#: ../src/applet.glade.h:32 -msgid "_PEAP version:" -msgstr "সংস্কৰণ মূদ্ৰণ কৰি প্ৰস্থান কৰা হ'ব" +#: ../src/connection-editor/ce-page-ppp.ui.h:6 +msgid "_Require 128-bit encryption" +msgstr "128-bit ইনক্ৰিপষণৰ প্ৰয়োজন (_R)" -#: ../src/applet.glade.h:33 ../src/connection-editor/ce-page-dsl.glade.h:2 -#: ../src/connection-editor/ce-page-mobile.glade.h:15 -msgid "_Password:" -msgstr "গুপ্তশব্দ: (_P)" +#: ../src/connection-editor/ce-page-ppp.ui.h:7 +msgid "Use _stateful MPPE" +msgstr "অৱস্থাপূৰ্ণ MPPE ব্যৱহাৰ কৰক (_s)" -#: ../src/applet.glade.h:34 -msgid "_Private key password:" -msgstr "গুপ্তশব্দ" +#: ../src/connection-editor/ce-page-ppp.ui.h:8 +msgid "Allow _BSD data compression" +msgstr "BSD তথ্য সংকোচনৰ অনুমতি দিয়ক (_B)" -#: ../src/applet.glade.h:35 ../src/connection-editor/ce-page-mobile.glade.h:17 -msgid "_Type:" -msgstr "যন্ত্ৰৰ ধৰণ: (_t)" +#: ../src/connection-editor/ce-page-ppp.ui.h:9 +msgid "Allow _Deflate data compression" +msgstr "ডিফ্লেইট তথ্য সংকোচনৰ অনুমতি দিয়ক (_D)" -#: ../src/applet.glade.h:36 -msgid "_Unlock" -msgstr "আনলক (_U)" +#: ../src/connection-editor/ce-page-ppp.ui.h:10 +msgid "Use TCP _header compression" +msgstr "TCP হেডাৰ সংকোচন ব্যৱহাৰ কৰক (_h)" -#: ../src/applet.glade.h:37 -msgid "_User certificate:" -msgstr "পৃষ্ঠাৰ প্ৰমাণপত্ৰ প্ৰদৰ্শন কৰক আৰু প্ৰমাণপত্ৰ পৰিচালন কৰক" +#: ../src/connection-editor/ce-page-ppp.ui.h:11 +msgid "Echo" +msgstr "Echo" -#: ../src/applet.glade.h:38 ../src/connection-editor/ce-page-dsl.glade.h:4 -#: ../src/connection-editor/ce-page-mobile.glade.h:17 -msgid "_Username:" -msgstr "ব্যৱহাৰকৰ্তাৰ নাম: (_U)" +#: ../src/connection-editor/ce-page-ppp.ui.h:12 +msgid "Send PPP _echo packets" +msgstr "PPP echo পেকেটসমূহ পঠাওক (_e)" -#: ../src/applet.glade.h:39 -msgid "_Wireless security:" -msgstr "সুৰক্ষা:" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "সুৰক্ষা (_e):" -#: ../src/applet.glade.h:40 -msgid "label" -msgstr "লেবেল" +#: ../src/connection-editor/ce-page-wifi.ui.h:2 +msgid "A (5 GHz)" +msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page.c:69 -msgid "automatic" -msgstr "automatic" +#: ../src/connection-editor/ce-page-wifi.ui.h:3 +msgid "B/G (2.4 GHz)" +msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page.c:221 -#: ../src/connection-editor/nm-connection-editor.c:616 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "অজ্ঞাত ত্ৰুটি দেখা দিছে" +#: ../src/connection-editor/ce-page-wifi.ui.h:4 +msgid "Infrastructure" +msgstr "আন্তঃগাথনী" -#: ../src/connection-editor/ce-page-dsl.glade.h:3 -msgid "_Service:" -msgstr "_Service:" +#: ../src/connection-editor/ce-page-wifi.ui.h:5 +msgid "Ad-hoc" +msgstr "Ad-hoc" -#: ../src/connection-editor/ce-page-ip6.glade.h:1 -msgid "Addresses" -msgstr "Addresses" - -#: ../src/connection-editor/ce-page-ip6.glade.h:2 -msgid "" -"Automatic\n" -"Automatic with manual DNS settings\n" -"Manual\n" -"Link-Local\n" -"Shared to other computers" -msgstr "" -"Automatic\n" -"Automatic with manual DNS settings\n" -"Manual\n" -"Link-Local\n" -"Shared to other computers" +#: ../src/connection-editor/ce-page-wifi.ui.h:11 +msgid "mW" +msgstr "mW" -#: ../src/connection-editor/ce-page-ip4.glade.h:7 -msgid "D_HCP client ID:" -msgstr "D_HCP client ID:" +#: ../src/connection-editor/ce-page-wifi.ui.h:12 +msgid "Transmission po_wer:" +msgstr "পৰিবহন শক্তি (_w):" -#: ../src/connection-editor/ce-page-ip4.glade.h:8 -#: ../src/connection-editor/ce-page-ip6.glade.h:7 -msgid "" -"Domains used when resolving host names. Use commas to separate multiple " -"domains." -msgstr "" -"হোস্ট নেম বিশ্লেষণ কৰাৰ বাবে ব্যৱহৃত ডোমেইন । একাধিক ডোমেইন চিহ্নিত কৰাৰ সময়ত কমা " -"চিহ্ন প্ৰয়োগ কৰা হ'ব ।" +#: ../src/connection-editor/ce-page-wifi.ui.h:13 +msgid "Mb/s" +msgstr "Mb/s" -#: ../src/connection-editor/ce-page-ip4.glade.h:9 -#: ../src/connection-editor/ce-page-ip6.glade.h:8 -msgid "" -"IP addresses identify your computer on the network. Click the \"Add\" " -"button to add an IP address." -msgstr "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." +#: ../src/connection-editor/ce-page-wifi.ui.h:14 +msgid "_Rate:" +msgstr "হাৰ (_R):" -#: ../src/connection-editor/ce-page-ip4.glade.h:10 -#: ../src/connection-editor/ce-page-ip6.glade.h:9 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 msgid "" -"IP addresses of domain name servers used to resolve host names. Use commas " -"to separate multiple domain name server addresses." +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"হোস্ট নেম বিশ্লেষণ কৰাৰ বাবে ব্যৱহৃত ডোমেইন নেম সেৱকৰ IP ঠিকনা । একাধিক ডোমেইন " -"নেম সেৱকৰ ঠিকনা চিহ্নিত কৰাৰ সময় কমা চিহ্ন প্ৰয়োগ কৰা হ'ব ।" +"এই বিকল্পই ইয়াত দিয়া BSSID এ নিৰ্ধাৰিত কৰাৰ মতে Wi-Fi অভিগম পইন্ট (AP) ত " +"সংযোগক লক কৰে। যেনে: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-ip4.glade.h:11 -#: ../src/connection-editor/ce-page-ip6.glade.h:10 -msgid "" -"If enabled, this connection will never be used as the default network " -"connection." -msgstr "If enabled, this connection will never be used as the default network connection." +#: ../src/connection-editor/ce-page-wifi.ui.h:16 +msgid "_BSSID:" +msgstr "BSSID (_B):" -#: ../src/connection-editor/ce-page-ip4.glade.h:12 -#: ../src/connection-editor/ce-page-ip6.glade.h:11 -msgid "Ig_nore automatically obtained routes" -msgstr "অগ্ৰাহ্য কৰা হ'ব (_I)" +#: ../src/connection-editor/ce-page-wifi.ui.h:17 +msgid "C_hannel:" +msgstr "চেনেল (_h):" -#: ../src/connection-editor/ce-page-ip4.glade.h:13 -msgid "Require IPv4 addressing for this connection to complete" -msgstr "এই সংযোগক সম্পূৰ্ণ কৰিবলৈ IPv4 ঠিকনা ব্যৱস্থাৰ প্ৰয়োজন" +#: ../src/connection-editor/ce-page-wifi.ui.h:18 +msgid "Ban_d:" +msgstr "বেণ্ড (_d):" -#: ../src/connection-editor/ce-page-ip4.glade.h:14 -msgid "" -"The DHCP client identifier allows the network administrator to customize " -"your computer's configuration. If you wish to use a DHCP client identifier, " -"enter it here." -msgstr "" -"DHCP ক্লায়েন্ট আইডেন্টিফায়াৰৰ সহায়ত নে'টৱৰ্ক প্ৰশাসকে আপোনাৰ কম্পিউটাৰৰ বিন্যাস " -"নিৰ্ধাৰণ কৰিবলৈ পাৰিব । DHCP ক্লায়েন্ট আইডেন্টিফায়াৰ ব্যৱহাৰ কৰিবলৈ ইচ্ছুক হ'লে " -"সেইটো ইয়াত লিখক ।" - -#: ../src/connection-editor/ce-page-ip4.glade.h:15 -#: ../src/connection-editor/ce-page-ip6.glade.h:13 -msgid "Use this c_onnection only for resources on its network" -msgstr "Use this c_onnection only for resources on its network" +#: ../src/connection-editor/ce-page-wifi.ui.h:19 +msgid "M_ode:" +msgstr "অৱস্থা (_o):" -#: ../src/connection-editor/ce-page-ip4.glade.h:16 -msgid "" -"When connecting to IPv6-capable networks, allows the connection to complete " -"if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "" -"IPv6 ৰ সৈতে সুসঙ্গত নে'টৱৰ্কৰ সৈতে সংযোগ কৰোঁতে, সংযোগক সম্পূৰ্ণ হ'বলৈ দিয়ে যদি " -"IPv4 বিন্যাস বিফল হয় কিন্তু IPv6 বিন্যাস সফল হয় ।" +#: ../src/connection-editor/ce-page-wifi.ui.h:20 +msgid "SS_ID:" +msgstr "SSID (_I):" -#: ../src/connection-editor/ce-page-ip4.glade.h:17 -#: ../src/connection-editor/ce-page-ip6.glade.h:15 -msgid "_DNS servers:" -msgstr "_DNS servers:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 +msgid "Allowed Authentication Methods" +msgstr "অনুমোদিত প্ৰমাণীকৰণ পদ্ধতিসমূহ" -#: ../src/connection-editor/ce-page-ip4.glade.h:18 -#: ../src/connection-editor/ce-page-ip6.glade.h:16 -msgid "_Method:" -msgstr "_Method:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 +msgid "_EAP" +msgstr "EAP (_E)" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +msgid "Extensible Authentication Protocol" +msgstr "প্ৰসাৰনযোগ্য প্ৰমাণীকৰণ প্ৰটোকল" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "PAP (_P)" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +msgid "Password Authentication Protocol" +msgstr "পাছৱাৰ্ড প্ৰমাণীকৰণ প্ৰটোকল" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 +msgid "C_HAP" +msgstr "CHAP (_H)" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 +msgid "Challenge Handshake Authentication Protocol" +msgstr "হেণ্ডশেইক প্ৰমাণীকৰণ প্ৰটোকলক প্ৰত্যাহ্বান জনাওক" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "_MSCHAP" +msgstr "MSCHAP (_M)" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft প্ৰত্যাহ্বান হেণ্ডছেইক প্ৰমাণীকৰণ প্ৰটোকল" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" -#: ../src/connection-editor/ce-page-ip4.glade.h:19 -#: ../src/connection-editor/ce-page-ip6.glade.h:17 -msgid "_Routes…" -msgstr "ৰুট… (_R)" - -#: ../src/connection-editor/ce-page-ip4.glade.h:20 -#: ../src/connection-editor/ce-page-ip6.glade.h:18 -msgid "_Search domains:" -msgstr "_Search domains:" - -#: ../src/connection-editor/ce-page-ip6.glade.h:12 -msgid "Require IPv6 addressing for this connection to complete" -msgstr "এই সংযোগ সম্পূৰ্ণ হ'বলৈ IPv6 ঠিকনা ব্যৱস্থাৰ প্ৰয়োজন" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft প্ৰত্যাহ্বান হেণ্ডশেইক প্ৰমাণীকৰণ প্ৰটোকলক সংস্কৰণ ২" -#: ../src/connection-editor/ce-page-ip6.glade.h:14 +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 msgid "" -"When connecting to IPv4-capable networks, allows the connection to complete " -"if IPv6 configuration fails but IPv4 configuration succeeds." +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." msgstr "" -"IPv4 ৰ সৈতে সুসঙ্গত নে'টৱৰ্কৰ সৈতে সংযোগ কৰোঁতে, সংযোগক সম্পূৰ্ণ হ'বলৈ দিয়ে যদি " -"IPv4 বিন্যাস বিফল হয় কিন্তু IPv4 বিন্যাস সফল হয় ।" +"বেছিৰভাগ ক্ষেত্ৰত, প্ৰদানকাৰীৰ PPP চাৰ্ভাৰসমূহে সকলো প্ৰমাণীকৰণ পদ্ধতি সমৰ্থন কৰিব। " +"যদি সংযোগসমূহ ব্যৰ্থ হব, কিছুমান পদ্ধতিৰ বাবে সমৰ্থন অসামৰ্থবান কৰি চাওক।" -#: ../src/connection-editor/ce-page-mobile.glade.h:1 -msgid "Advanced" -msgstr "Advanced" - -#: ../src/connection-editor/ce-page-mobile.glade.h:2 -msgid "Basic" -msgstr "Basic" - -#: ../src/connection-editor/ce-page-mobile.glade.h:3 -msgid "Allow roaming if home network is not available" -msgstr "প্ৰধান নে'টৱৰ্ক উপলব্ধ নাথাকিলে ৰোমিং ব্যৱহাৰ কৰাৰ অনুমতি প্ৰদান কৰা হ'ব" - -#: ../src/connection-editor/ce-page-mobile.glade.h:4 -msgid "" -"Any\n" -"3G (UMTS/HSPA)\n" -"2G (GPRS/EDGE)\n" -"Prefer 3G (UMTS/HSPA)\n" -"Prefer 2G (GPRS/EDGE)" -msgstr "" -"Any\n" -"3G (UMTS/HSPA)\n" -"2G (GPRS/EDGE)\n" -"Prefer 3G (UMTS/HSPA)\n" -"Prefer 2G (GPRS/EDGE)" +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "ঠিকনা" -#: ../src/connection-editor/ce-page-mobile.glade.h:9 -msgid "Change..." -msgstr "আপোনাৰ নে'টৱৰ্ক সংযোগক পৰিচালন আৰু সলনি কৰক" +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "নেটমাস্ক" -#: ../src/connection-editor/ce-page-mobile.glade.h:10 -msgid "N_etwork ID:" -msgstr "নে'টৱৰ্কৰ ID (_e):" +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "গেইটৱে" -#: ../src/connection-editor/ce-page-mobile.glade.h:11 -msgid "Nu_mber:" -msgstr "Nu_mber:" +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "মেট্ৰিক" -#: ../src/connection-editor/ce-page-mobile.glade.h:12 -msgid "PI_N:" -msgstr "PI_N:" +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "উপসৰ্গ" -#: ../src/connection-editor/ce-page-mobile.glade.h:13 -msgid "Sho_w passwords" -msgstr "Sho_w passwords" +#: ../src/connection-editor/new-connection.c:77 +#: ../src/connection-editor/page-ethernet.c:272 +msgid "Ethernet" +msgstr "ইথাৰনেট" + +#: ../src/connection-editor/new-connection.c:82 +#: ../src/connection-editor/page-wifi.c:460 +msgid "Wi-Fi" +msgstr "Wi-Fi" + +#: ../src/connection-editor/new-connection.c:92 +#: ../src/connection-editor/page-wimax.c:155 ../src/mb-menu-item.c:75 +msgid "WiMAX" +msgstr "WiMAX" -#: ../src/connection-editor/ce-page-mobile.glade.h:14 -msgid "_APN:" -msgstr "_APN:" +#: ../src/connection-editor/new-connection.c:97 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" -#: ../src/connection-editor/ce-page-ppp.glade.h:1 -msgid "Allowed Authentication Methods" -msgstr "Allowed Authentication Methods" +#: ../src/connection-editor/new-connection.c:102 +#: ../src/connection-editor/page-infiniband.c:191 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:107 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "বান্ধনী" -#: ../src/connection-editor/ce-page-ppp.glade.h:2 -msgid "Authentication" -msgstr "DSL প্ৰমাণীকৰণ" +#: ../src/connection-editor/new-connection.c:119 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:252 +msgid "Import a saved VPN configuration..." +msgstr "এটা সংৰক্ষিত VPN সংৰূপ ইমপোৰ্ট কৰক..." -#: ../src/connection-editor/ce-page-ppp.glade.h:3 -msgid "Compression" -msgstr "Compression" +#: ../src/connection-editor/new-connection.c:274 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "অজ্ঞাত কাৰণে সংযোগ সম্পাদন ব্যৱস্থাৰ বাৰ্তা আৰম্ভ কৰা নাযায়।" + +#: ../src/connection-editor/new-connection.c:283 +msgid "Could not create new connection" +msgstr "নতুন সংযোগ সৃষ্টি কৰা সম্ভৱ নহয়" + +#: ../src/connection-editor/new-connection.c:419 +msgid "Connection delete failed" +msgstr "সংযোগ মচিবলৈ ব্যৰ্থ" + +#: ../src/connection-editor/new-connection.c:466 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "আপুনি নিশ্চিতৰূপে %s সংযোগ মচিবলে ইচ্ছুক নে?" + +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "%s সম্পাদন" -#: ../src/connection-editor/ce-page-ppp.glade.h:4 -msgid "Echo" -msgstr "Echo" +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "নামবিহীন সংযোগ সম্পাদন" -#: ../src/connection-editor/ce-page-ppp.glade.h:5 +#: ../src/connection-editor/nm-connection-editor.c:301 msgid "" -"In most cases, the provider's PPP servers will support all authentication " -"methods. If connections fail, try disabling support for some methods." -msgstr "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "সংযোগ সম্পাদকে কিছুমান প্ৰয়োজনীয় সম্পদ বিচাৰি নাপায় (.ui ফাইল পোৱা নগল)।" -#: ../src/connection-editor/ce-page-ppp.glade.h:6 -msgid "Allow _BSD data compression" -msgstr "Allow _BSD data compression" +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "সংৰক্ষণ কৰক (_S)" -#: ../src/connection-editor/ce-page-ppp.glade.h:7 -msgid "Allow _Deflate data compression" -msgstr "Allow _Deflate data compression" +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "এই সংযোগলে কৰা যিকোনো পৰিবৰ্তন সংৰক্ষণ কৰক।" -#: ../src/connection-editor/ce-page-ppp.glade.h:8 -msgid "Allowed methods:" -msgstr "অনুমোদিত:" +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "সংৰক্ষণ কৰক (_S)..." -#: ../src/connection-editor/ce-page-ppp.glade.h:9 -msgid "C_HAP" -msgstr "C_HAP" +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "এই ডিভাইচৰ সকলো ব্যৱহাৰকাৰীৰ বাবে এই সংযোগ সংৰক্ষণ কৰাৰ বাবে প্ৰমাণীত কৰক।" -#: ../src/connection-editor/ce-page-ppp.glade.h:10 -msgid "Challenge Handshake Authentication Protocol" -msgstr "Challenge Handshake Authentication Protocol" +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not create connection" +msgstr "সংযোগ সৃষ্টি কৰিব পৰা নগল" -#: ../src/connection-editor/ce-page-ppp.glade.h:11 -msgid "Configure _Methods…" -msgstr "ব্লু-টুথ সংক্ৰান্ত গুণ বিন্যাস কৰক" +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "সংযোগ সম্পাদন কৰা সম্ভৱ নহয়" -#: ../src/connection-editor/ce-page-ppp.glade.h:12 -msgid "Extensible Authentication Protocol" -msgstr "Extensible Authentication Protocol" +#: ../src/connection-editor/nm-connection-editor.c:449 +msgid "Unknown error creating connection editor dialog." +msgstr "সংযোগ সম্পাদক ডাইলগ সৃষ্টি কৰোতে অজ্ঞাত ত্ৰুটি।" -#: ../src/connection-editor/ce-page-ppp.glade.h:13 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "সংযোগ সংৰক্ষণ কৰোতে ত্ৰুটি" -#: ../src/connection-editor/ce-page-ppp.glade.h:14 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft Challenge Handshake Authentication Protocol" +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "বৈশিষ্ট '%s' / '%s' অবৈধ: %d" -#: ../src/connection-editor/ce-page-ppp.glade.h:15 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft Challenge Handshake Authentication Protocol version 2" +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "সম্পাদন ব্যৱস্থা আৰম্ভ কৰিবলৈ ত্ৰুটি" -#: ../src/connection-editor/ce-page-ppp.glade.h:16 -msgid "Password Authentication Protocol" -msgstr "Password Authentication Protocol" +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "সংযোগ যোগ কৰিবলৈ ব্যৰ্থ" -#: ../src/connection-editor/ce-page-ppp.glade.h:17 -msgid "Send PPP _echo packets" -msgstr "Send PPP _echo packets" +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "সংযোগৰ নাম (_n):" -#: ../src/connection-editor/ce-page-ppp.glade.h:18 -msgid "Use TCP _header compression" -msgstr "Use TCP _header compression" +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "স্বচালিতভাবে সংযোগ কৰা হ'ব (_a)" -#: ../src/connection-editor/ce-page-ppp.glade.h:19 -msgid "Use _stateful MPPE" -msgstr "Use _stateful MPPE" +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "সকলো ব্যৱহাৰকাৰীৰ বাবে উপস্থিত" -#: ../src/connection-editor/ce-page-ppp.glade.h:20 -msgid "_EAP" -msgstr "_EAP" +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "এক্সপোৰ্ট কৰক (_E)..." -#: ../src/connection-editor/ce-page-ppp.glade.h:21 -msgid "_MSCHAP" -msgstr "_MSCHAP" +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "কেতিয়াও নহয়" -#: ../src/connection-editor/ce-page-ppp.glade.h:22 -msgid "_PAP" -msgstr "_PAP" +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "এতিয়া" -#: ../src/connection-editor/ce-page-ppp.glade.h:23 -msgid "_Require 128-bit encryption" -msgstr "_Require 128-bit encryption" +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d মিনিট আগতে" +msgstr[1] "%d মিনিট আগতে" -#: ../src/connection-editor/ce-page-ppp.glade.h:24 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "_Use point-to-point encryption (MPPE)" +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ঘন্টা আগতে" +msgstr[1] "%d ঘন্টা আগতে" -#: ../src/connection-editor/ce-page-wired.glade.h:1 -msgid "Aut_onegotiate" -msgstr "Aut_onegotiate" +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d দিন আগতে" +msgstr[1] "%d দিন আগতে" + +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d মাহ আগতে" +msgstr[1] "%d মাহ আগতে" + +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "%d বছৰ আগতে" +msgstr[1] "%d বছৰ আগতে" -#: ../src/connection-editor/ce-page-wired.glade.h:2 -msgid "" -"Automatic\n" -"10 Mb/s\n" -"100 Mb/s\n" -"1 Gb/s\n" -"10 Gb/s" -msgstr "" -"Automatic\n" -"10 Mb/s\n" -"100 Mb/s\n" -"1 Gb/s\n" -"10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.glade.h:7 -msgid "" -"Automatic\n" -"Twisted Pair (TP)\n" -"Attachment Unit Interface (AUI)\n" -"BNC\n" -"Media Independent Interface (MII)" -msgstr "" -"Automatic\n" -"Twisted Pair (TP)\n" -"Attachment Unit Interface (AUI)\n" -"BNC\n" -"Media Independent Interface (MII)" +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "নাম" -#: ../src/connection-editor/ce-page-wired.glade.h:12 -msgid "Full duple_x" -msgstr "Full duple_x" +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "সৰ্বশেষ ব্যৱহৃত" -#: ../src/connection-editor/ce-page-wired.glade.h:13 -#: ../src/connection-editor/ce-page-wireless.glade.h:8 -msgid "MT_U:" -msgstr "MT_U:" - -#: ../src/connection-editor/ce-page-wired.glade.h:14 -#: ../src/connection-editor/ce-page-wireless.glade.h:15 -msgid "_MAC address:" -msgstr "_MAC address:" +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "নিৰ্বাচিত সংযোগ সম্পাদন কৰক" -#: ../src/connection-editor/ce-page-wired.glade.h:15 -msgid "_Port:" -msgstr "_Port:" +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "সম্পাদনা কৰক (_E)..." -#: ../src/connection-editor/ce-page-wired.glade.h:16 -msgid "_Speed:" -msgstr "_Speed:" +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "নিৰ্বাচিত সংযোগ সম্পাদন কৰাৰ আগতে প্ৰমাণীত হোৱা প্ৰয়োজন" -#: ../src/connection-editor/ce-page-wired.glade.h:17 -#: ../src/connection-editor/ce-page-wireless.glade.h:18 -msgid "bytes" -msgstr "bytes" +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "নিৰ্বাচিত সংযোগ মচি পেলাওক" -#: ../src/connection-editor/ce-page-wireless.glade.h:1 -msgid "" -"Automatic\n" -"A (5 GHz)\n" -"B/G (2.4 GHz)" -msgstr "" -"Automatic\n" -"A (5 GHz)\n" -"B/G (2.4 GHz)" +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "মচি পেলাওক (_D)..." -#: ../src/connection-editor/ce-page-wireless.glade.h:4 -msgid "Ban_d:" -msgstr "Ban_d:" +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "নিৰ্বাচিত সংযোগ মচি পেলোৱাৰ আগতে প্ৰমাণীত হোৱা প্ৰয়োজন" -#: ../src/connection-editor/ce-page-wireless.glade.h:5 -msgid "C_hannel:" -msgstr "C_hannel:" +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "সংযোগ সৃষ্টি কৰোতে ত্ৰুটি" -#: ../src/connection-editor/ce-page-wireless.glade.h:6 -msgid "" -"Infrastructure\n" -"Ad-hoc" -msgstr "" -"Infrastructure\n" -"Ad-hoc" +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "'%s' সংযোগসমূহ কিদৰে সৃষ্টি কৰা হব জ্ঞাত নহয়" -#: ../src/connection-editor/ce-page-wireless.glade.h:9 -msgid "M_ode:" -msgstr "M_ode:" +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "সংযোগ সম্পাদন কৰোতে ত্ৰুটি" -#: ../src/connection-editor/ce-page-wireless.glade.h:10 -msgid "Mb/s" -msgstr "Mb/s" +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "UUID '%s' ৰ সৈতে এটা সংযোগ পোৱা নগল" -#: ../src/connection-editor/ce-page-wireless.glade.h:11 -msgid "" -"This option locks this connection to the network device specified by the MAC " -"address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"এই বিকল্পই ইয়াত দিয়া MAC ঠিকনাই নিৰ্ধাৰিত কৰাৰ মতে নে'টৱৰ্কত সংযোগক লক কৰে । " -"যেনে: 00:11:22:33:44:55" +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "802.1x সুৰক্ষা" -#: ../src/connection-editor/ce-page-wireless.glade.h:12 -msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "" -"এই বিকল্পই ইয়াত দিয়া BSSID য়ে নিৰ্ধাৰিত কৰাৰ মতে বেতাঁৰ অভিগম পইন্ট (AP) ত " -"সংযোগক লক কৰে । যেনে: 00:11:22:33:44:55" +#: ../src/connection-editor/page-8021x-security.c:122 +msgid "Could not load 802.1x Security user interface." +msgstr "802.1x সুৰক্ষাৰ ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিবলৈ ব্যৰ্থ।" -#: ../src/connection-editor/ce-page-wireless.glade.h:13 -msgid "Transmission po_wer:" -msgstr "Transmission po_wer:" +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "এই সংযোগৰ বাবে 802.1X সুৰক্ষা ব্যৱহাৰ কৰক (_X)" -#: ../src/connection-editor/ce-page-wireless.glade.h:14 -msgid "_BSSID:" -msgstr "_BSSID:" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "%s স্লেইভ %d" -#: ../src/connection-editor/ce-page-wireless.glade.h:16 -msgid "_Rate:" -msgstr "_Rate:" +#: ../src/connection-editor/page-bond.c:749 +msgid "Could not load bond user interface." +msgstr "বান্ধনী ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিব পৰা নগল।" -#: ../src/connection-editor/ce-page-wireless.glade.h:17 -msgid "_SSID:" -msgstr "_SSID:" +#: ../src/connection-editor/page-bond.c:909 +#, c-format +msgid "Bond connection %d" +msgstr "বান্ধনী সংযোগ %d" -#: ../src/connection-editor/ce-page-wireless.glade.h:19 -msgid "mW" -msgstr "mW" +#: ../src/connection-editor/page-dsl.c:142 +msgid "Could not load DSL user interface." +msgstr "DSL ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিব পৰা নাযায়।" -#: ../src/connection-editor/ce-page-wireless-security.glade.h:1 -msgid "_Security:" -msgstr "_Security:" +#: ../src/connection-editor/page-dsl.c:234 +#, c-format +msgid "DSL connection %d" +msgstr "DSL সংযোগ %d" -#: ../src/connection-editor/ce-vpn-wizard.glade.h:2 +#: ../src/connection-editor/page-ethernet.c:90 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 msgid "" -"Choose a VPN Connection Type\n" -"\n" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" msgstr "" -"Choose a VPN Connection Type\n" -"\n" -"Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." - -#: ../src/connection-editor/ce-vpn-wizard.glade.h:5 -msgid "Create…" -msgstr "সৃষ্টি কৰক..." +"এই বিকল্পয় নেটৱাৰ্ক ডিভাইচ যাক ইয়াত সুমুৱা তাৰ স্থায়ী MAC ঠিকনাৰে ধাৰ্য্য কৰা হৈছে " +"তালৈ এই সংযোগক লক কৰে। উদাহৰণস্বৰূপ: 00:11:22:33:44:55" -#: ../src/connection-editor/ip4-routes-dialog.c:501 -#: ../src/connection-editor/ip6-routes-dialog.c:459 -#: ../src/connection-editor/page-ip4.c:731 -#: ../src/connection-editor/page-ip6.c:716 -msgid "Address" -msgstr "ঠিকনা" - -#: ../src/connection-editor/ip4-routes-dialog.c:517 -#: ../src/connection-editor/page-ip4.c:748 -msgid "Netmask" -msgstr "Netmask" - -#: ../src/connection-editor/ip4-routes-dialog.c:533 -#: ../src/connection-editor/ip6-routes-dialog.c:491 -#: ../src/connection-editor/page-ip4.c:765 -#: ../src/connection-editor/page-ip6.c:750 -msgid "Gateway" -msgstr "Gateway" - -#: ../src/connection-editor/ip4-routes-dialog.c:549 -#: ../src/connection-editor/ip6-routes-dialog.c:507 -msgid "Metric" -msgstr "Metric" +#: ../src/connection-editor/page-ethernet.c:274 +msgid "Could not load ethernet user interface." +msgstr "ইথাৰনেট ব্যৱহাৰকাৰীৰ আন্তঃপৃষ্ঠ ল'ড কৰিবলৈ ব্যৰ্থ।" -#: ../src/connection-editor/ip6-routes-dialog.c:475 -#: ../src/connection-editor/page-ip6.c:733 -msgid "Prefix" -msgstr "উপসৰ্গ" - -#: ../src/connection-editor/page-dsl.c:140 -#: ../src/connection-editor/page-dsl.c:147 -msgid "Could not load DSL user interface." -msgstr "প্ৰধান সংযোগমাধ্যম তুলি লোৱা নাযায়" +#: ../src/connection-editor/page-ethernet.c:450 +#, c-format +msgid "Ethernet connection %d" +msgstr "ইথাৰনেট সংযোগ %d" -#: ../src/connection-editor/page-dsl.c:153 -#: ../src/connection-editor/nm-connection-editor.glade.h:4 -#: ../src/connection-editor/nm-connection-list.c:1409 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-infiniband.c:194 +msgid "Could not load InfiniBand user interface." +msgstr "InfiniBand ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিব পৰা নগল।" -#: ../src/connection-editor/page-dsl.c:241 +#: ../src/connection-editor/page-infiniband.c:319 #, c-format -msgid "DSL connection %d" -msgstr "DSL connection %d" +msgid "InfiniBand connection %d" +msgstr "InfiniBand সংযোগ %d" -#: ../src/connection-editor/page-ip4.c:126 -#: ../src/connection-editor/page-ip6.c:125 +#: ../src/connection-editor/page-ip4.c:133 +#: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" -msgstr "Automatic (VPN)" +msgstr "স্বচালিত (VPN)" -#: ../src/connection-editor/page-ip4.c:127 -#: ../src/connection-editor/page-ip6.c:126 +#: ../src/connection-editor/page-ip4.c:134 +#: ../src/connection-editor/page-ip6.c:133 msgid "Automatic (VPN) addresses only" -msgstr "Automatic (VPN) addresses only" +msgstr "কেৱল স্বচালিত (VPN) ঠিকনাসমূহ" -#: ../src/connection-editor/page-ip4.c:130 -#: ../src/connection-editor/page-ip6.c:129 +#: ../src/connection-editor/page-ip4.c:137 +#: ../src/connection-editor/page-ip6.c:136 msgid "Automatic (PPP)" -msgstr "Automatic (PPP)" +msgstr "স্বচালিত (PPP)" -#: ../src/connection-editor/page-ip4.c:131 -#: ../src/connection-editor/page-ip6.c:130 +#: ../src/connection-editor/page-ip4.c:138 +#: ../src/connection-editor/page-ip6.c:137 msgid "Automatic (PPP) addresses only" -msgstr "Automatic (PPP) addresses only" +msgstr "কেৱল স্বচালিত (PPP) ঠিকনাসমূহ" -#: ../src/connection-editor/page-ip4.c:133 -#: ../src/connection-editor/page-ip6.c:132 +#: ../src/connection-editor/page-ip4.c:140 +#: ../src/connection-editor/page-ip6.c:139 msgid "Automatic (PPPoE)" -msgstr "Automatic (PPPoE)" +msgstr "স্বচালিত (PPPoE)" -#: ../src/connection-editor/page-ip4.c:134 -#: ../src/connection-editor/page-ip6.c:133 +#: ../src/connection-editor/page-ip4.c:141 +#: ../src/connection-editor/page-ip6.c:140 msgid "Automatic (PPPoE) addresses only" -msgstr "Automatic (PPPoE) addresses only" +msgstr "কেৱল স্বচালিত (PPPoE) ঠিকনাসমূহ" -#: ../src/connection-editor/page-ip4.c:136 +#: ../src/connection-editor/page-ip4.c:143 msgid "Automatic (DHCP)" -msgstr "Automatic (DHCP)" +msgstr "স্বচালিত (DHCP)" -#: ../src/connection-editor/page-ip4.c:137 +#: ../src/connection-editor/page-ip4.c:144 msgid "Automatic (DHCP) addresses only" -msgstr "Automatic (DHCP) addresses only" - -#: ../src/connection-editor/page-ip4.c:162 -#: ../src/connection-editor/page-ip6.c:184 -msgid "Manual" -msgstr "Manual" - -#: ../src/connection-editor/page-ip4.c:174 -#: ../src/connection-editor/page-ip6.c:197 -msgid "Link-Local Only" -msgstr "Link-Local Only" +msgstr "কেৱল স্বচালিত (DHCP) ঠিকনাসমূহ" -#: ../src/connection-editor/page-ip4.c:180 +#: ../src/connection-editor/page-ip4.c:181 #: ../src/connection-editor/page-ip6.c:204 -msgid "Shared to other computers" -msgstr "Shared to other computers" +msgid "Link-Local Only" +msgstr "কেৱল সংযোগ-স্থানীয়" -#: ../src/connection-editor/page-ip4.c:190 +#: ../src/connection-editor/page-ip4.c:197 msgid "Disabled" -msgstr "নিষ্ক্ৰিয়" +msgstr "অসামৰ্থবান" -#: ../src/connection-editor/page-ip4.c:693 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "অতিৰিক্ত DNS চাৰ্ভাৰসমূহ (_D):" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "অতিৰিক্ত সন্ধান ডমেইনসমূহ (_e):" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" -msgstr "Editing IPv4 routes for %s" - -#: ../src/connection-editor/page-ip4.c:812 -#: ../src/connection-editor/page-ip4.c:819 -msgid "Could not load IPv4 user interface." -msgstr "Could not load IPv4 user interface." +msgstr "%s ৰ বাবে IPv4 পথবোৰ সম্পাদন কৰা" -#: ../src/connection-editor/page-ip4.c:825 +#: ../src/connection-editor/page-ip4.c:993 msgid "IPv4 Settings" -msgstr "IPv4 Settings" +msgstr "IPv4 সংহতিসমূহ" -#: ../src/connection-editor/page-ip6.c:135 -msgid "Automatic" -msgstr "স্বয়ংক্ৰিয়" +#: ../src/connection-editor/page-ip4.c:995 +msgid "Could not load IPv4 user interface." +msgstr "IPv4 ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিব পৰা নগল।" -#: ../src/connection-editor/page-ip6.c:136 +#: ../src/connection-editor/page-ip6.c:143 msgid "Automatic, addresses only" -msgstr "স্বয়ংক্ৰিয়, অকল ঠিকনা" +msgstr "স্বচালিত, কেৱল ঠিকনা" -#: ../src/connection-editor/page-ip6.c:148 -#: ../src/wireless-security/eap-method.c:196 +#: ../src/connection-editor/page-ip6.c:155 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "উপেক্ষা কৰক" -#: ../src/connection-editor/page-ip6.c:172 +#: ../src/connection-editor/page-ip6.c:179 msgid "Automatic, DHCP only" -msgstr "স্বয়ংক্ৰিয়, অকল DHCP" +msgstr "স্বচালিত, কেৱল DHCP" -#: ../src/connection-editor/page-ip6.c:678 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" -msgstr "%s ৰ বাবে IPv6 ৰুট সম্পাদন" +msgstr "%s ৰ বাবে IPv6 পথ সম্পাদন" -#: ../src/connection-editor/page-ip6.c:795 -#: ../src/connection-editor/page-ip6.c:802 -msgid "Could not load IPv6 user interface." -msgstr "IPv6 ব্যৱহাৰকৰ্তা সংযোগমাধ্যম তুলি ল'বলৈ ব্যৰ্থ ।" - -#: ../src/connection-editor/page-ip6.c:808 +#: ../src/connection-editor/page-ip6.c:957 msgid "IPv6 Settings" -msgstr "IPv6 ৰ গুণ" +msgstr "IPv6 ৰ সংহতিসমূহ" + +#: ../src/connection-editor/page-ip6.c:959 +msgid "Could not load IPv6 user interface." +msgstr "IPv6 ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিবলৈ ব্যৰ্থ।" -#: ../src/connection-editor/page-mobile.c:305 -#: ../src/connection-editor/page-mobile.c:312 +#: ../src/connection-editor/page-mobile.c:382 msgid "Could not load mobile broadband user interface." -msgstr "মোবাইল ব্ৰড-বেন্ড ব্যৱহাৰকৰ্তা সংযোগমাধ্যম তুলি ল'বলৈ ব্যৰ্থ ।" +msgstr "ম'বাইল ব্ৰডবেণ্ড ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিবলৈ ব্যৰ্থ।" -#: ../src/connection-editor/page-mobile.c:333 +#: ../src/connection-editor/page-mobile.c:399 msgid "Unsupported mobile broadband connection type." -msgstr "মোবাইল ব্ৰড-বেন্ড সংযোগৰ ধৰণ সমৰ্থিত নহয় ।" +msgstr "ম'বাইল ব্ৰডবেণ্ড সংযোগৰ ধৰণ সমৰ্থিত নহয়।" #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:574 +#: ../src/connection-editor/page-mobile.c:643 msgid "Select Mobile Broadband Provider Type" -msgstr "মোবাইল ব্ৰড-বেন্ড উপলব্ধকৰ্তাৰ ধৰণ নিৰ্ব্বাচন কৰক" +msgstr "ম'বাইল ব্ৰডবেণ্ড উপলব্ধকৰ্তাৰ ধৰণ বাছক" -#: ../src/connection-editor/page-mobile.c:601 +#: ../src/connection-editor/page-mobile.c:678 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." msgstr "" -"মোবাইল ব্ৰড-বেন্ড সেৱা উপলব্ধকৰ্তাৰ দ্বাৰা ব্যৱহৃত সেৱা নিৰ্ব্বাচন কৰক । এই তথ্য অজ্ঞাত " -"থাকিলে, সেৱাকৰ্তাৰ সৈতে যোগাযোগ কৰক ।" +"ম'বাইল ব্ৰডবেণ্ড সেৱা উপলব্ধকৰ্তাৰ দ্বাৰা ব্যৱহৃত সেৱা বাছক। এই তথ্য অজ্ঞাত থাকিলে, " +"সেৱা উপলব্ধকৰ্তাৰ সৈতে যোগাযোগ কৰক।" -#: ../src/connection-editor/page-mobile.c:606 +#: ../src/connection-editor/page-mobile.c:683 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "" -"আপোনাৰ সেৱা উপলব্ধকৰ্তাৰ দ্বাৰা GSM-ভিত্তিক প্ৰযুক্তি ব্যৱহাৰ কৰা হয় (অৰ্থাৎ GPRS, " -"EDGE, UMTS, HSDPA) (_G)" +"মোৰ সেৱা উপলব্ধকৰ্তাৰ দ্বাৰা GSM-ভিত্তিক প্ৰযুক্তি ব্যৱহাৰ কৰা হয় (অৰ্থাৎ GPRS, EDGE, " +"UMTS, HSDPA) (_G)" -#: ../src/connection-editor/page-mobile.c:611 +#: ../src/connection-editor/page-mobile.c:690 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "" -"আপোনাৰ সেৱা উপলব্ধকৰ্তা দ্বাৰা CDMA-ভিত্তিক প্ৰযুক্তি ব্যৱহাৰ কৰা হয় (অৰ্থাৎ 1xRTT, " +"মোৰ সেৱা উপলব্ধকৰ্তা দ্বাৰা CDMA-ভিত্তিক প্ৰযুক্তি ব্যৱহাৰ কৰা হয় (অৰ্থাৎ 1xRTT, " "EVDO) (_D)" -#: ../src/connection-editor/page-ppp.c:132 +#: ../src/connection-editor/page-ppp.c:134 msgid "EAP" msgstr "EAP" -#: ../src/connection-editor/page-ppp.c:133 -#: ../src/wireless-security/eap-method-ttls.c:228 +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 msgid "PAP" msgstr "PAP" -#: ../src/connection-editor/page-ppp.c:134 -#: ../src/wireless-security/eap-method-ttls.c:276 +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 msgid "CHAP" msgstr "CHAP" -#: ../src/connection-editor/page-ppp.c:135 -#: ../src/wireless-security/eap-method-peap.c:245 -#: ../src/wireless-security/eap-method-ttls.c:260 +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 msgid "MSCHAPv2" msgstr "MSCHAPv2" -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:244 +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 msgid "MSCHAP" msgstr "MSCHAP" #. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:139 +#: ../src/connection-editor/page-ppp.c:141 msgid "none" -msgstr "শূণ্য" +msgstr "কোনো নহয়" -#: ../src/connection-editor/page-ppp.c:199 +#: ../src/connection-editor/page-ppp.c:201 #, c-format msgid "Editing PPP authentication methods for %s" -msgstr "%s ৰ বাবে PPP অনুমোদন ব্যৱস্থা সম্পাদন" +msgstr "%s ৰ বাবে PPP প্ৰমাণীকৰণ পদ্ধতি সম্পাদন" #: ../src/connection-editor/page-ppp.c:283 -#: ../src/connection-editor/page-ppp.c:290 -msgid "Could not load PPP user interface." -msgstr "PPP ব্যৱহাৰকৰ্তা সংযোগমাধ্যম তুলি ল'বলৈ ব্যৰ্থ ।" - -#: ../src/connection-editor/page-ppp.c:296 msgid "PPP Settings" -msgstr "PPP ৰ গুণ" +msgstr "PPP ৰ সংহতিসমূহ" -#: ../src/connection-editor/page-vpn.c:108 -#: ../src/connection-editor/nm-connection-editor.glade.h:8 -#: ../src/connection-editor/nm-connection-list.c:1405 -msgid "VPN" -msgstr "VPN" +#: ../src/connection-editor/page-ppp.c:285 +msgid "Could not load PPP user interface." +msgstr "PPP ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিবলৈ ব্যৰ্থ।" + +#: ../src/connection-editor/page-vpn.c:114 +msgid "Could not load VPN user interface." +msgstr "VPN ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিব পৰা নগল।" -#: ../src/connection-editor/page-vpn.c:119 +#: ../src/connection-editor/page-vpn.c:129 #, c-format msgid "Could not find VPN plugin service for '%s'." -msgstr "'%s' ৰ বাবে VPN প্লাগ-ইন সেৱা পাৱা নাযায় ।" +msgstr "'%s' ৰ বাবে VPN প্লাগ-ইন সেৱা পোৱা নাযায়।" -#: ../src/connection-editor/page-vpn.c:213 -#: ../src/connection-editor/nm-connection-list.c:990 +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 #, c-format msgid "VPN connection %d" msgstr "VPN সংযোগ %d" -#: ../src/connection-editor/page-wired.c:207 -#: ../src/connection-editor/page-wired.c:214 -msgid "Could not load wired user interface." -msgstr "তাঁৰযুক্ত নে'টৱৰ্কৰ ব্যৱহাৰকৰ্তাৰ সংযোগমাধ্যম তুলি ল'বলৈ ব্যৰ্থ ।" - -#: ../src/connection-editor/page-wired.c:220 -#: ../src/connection-editor/nm-connection-editor.glade.h:9 -#: ../src/connection-editor/nm-connection-list.c:1393 -msgid "Wired" -msgstr "তাঁৰযুক্ত" - -#: ../src/connection-editor/page-wired.c:339 -#, c-format -msgid "Wired connection %d" -msgstr "তাঁৰ সংযোগ %d" +#: ../src/connection-editor/page-vpn.c:249 +msgid "" +"The VPN plugin failed to import the VPN connection correctly\n" +"\n" +"Error: no VPN service type." +msgstr "" +"VPN প্লাগ-ইন দ্বাৰা সঠিকভাবে VPN সংযোগ ইমপোৰ্ট কৰা সম্ভৱ নহয়\n" +"\n" +"ত্ৰুটি: কোনো VPN সেৱাৰ ধৰণ উপলব্ধ নহয়।" -#: ../src/connection-editor/page-wired-security.c:115 -msgid "802.1x Security" -msgstr "802.1x নিৰাপত্তা" +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "এটা VPN সংযোগ ধৰণ বাছক" -#: ../src/connection-editor/page-wired-security.c:123 -msgid "Use 802.1X security for this connection" -msgstr "এই সংযোগৰ বাবে 802.1X নিৰাপত্তা ব্যৱহাৰ কৰা হ'ব" +#: ../src/connection-editor/page-vpn.c:275 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"নতুন সংযোগৰ বাবে ব্যৱহাৰ কৰিব বিচৰা VPN ৰ ধৰণ বাছক। যদি আপুনি সৃষ্টি কৰিব বিচৰা " +"VPN সংযোগ তালিকাত নাথাকে, আপোনাৰ হয়তো সঠিক VPN প্লাগিন ইনস্টল নাই।" -#: ../src/connection-editor/page-wireless.c:144 -#: ../src/connection-editor/page-wireless.c:148 +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format msgid "default" -msgstr "অবিকল্পিত মান" +msgstr "অবিকল্পিত" -#: ../src/connection-editor/page-wireless.c:166 +#: ../src/connection-editor/page-wifi.c:200 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:351 -#: ../src/connection-editor/page-wireless.c:358 -msgid "Could not load WiFi user interface." -msgstr "WiFi ব্যৱহাৰকৰ্তা সংযোগমাধ্যম তুলি লোৱা নাযায় ।" - -#: ../src/connection-editor/page-wireless.c:364 -#: ../src/connection-editor/nm-connection-editor.glade.h:10 -#: ../src/connection-editor/nm-connection-list.c:1397 -msgid "Wireless" -msgstr "বেতাঁৰ" - -#: ../src/connection-editor/page-wireless.c:511 -#, c-format -msgid "Wireless connection %d" -msgstr "বেতাঁৰ সংযোগ %d" - -#: ../src/connection-editor/page-wireless-security.c:262 -#: ../src/wireless-dialog.c:936 -msgid "WEP 40/128-bit Key" -msgstr "WEP ৪০/১২৮-বিট কি" +#: ../src/connection-editor/page-wifi.c:462 +msgid "Could not load Wi-Fi user interface." +msgstr "Wi-Fi ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিব পৰা নাযায়।" + +#: ../src/connection-editor/page-wifi.c:667 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Wi-Fi সংযোগ %d" + +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "কোনো নহয়" + +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "WEP 40/128-bit কি (Hex অথবা ASCII)" -#: ../src/connection-editor/page-wireless-security.c:271 -#: ../src/wireless-dialog.c:945 +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 msgid "WEP 128-bit Passphrase" msgstr "WEP ১২৮-বিট পৰিচয়পংক্তি" -#: ../src/connection-editor/page-wireless-security.c:297 -#: ../src/wireless-dialog.c:975 +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 msgid "Dynamic WEP (802.1x)" msgstr "ডাইনামিক WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:311 -#: ../src/wireless-dialog.c:989 +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 msgid "WPA & WPA2 Personal" msgstr "WPA আৰু WPA2 ব্যক্তিগত" -#: ../src/connection-editor/page-wireless-security.c:325 -#: ../src/wireless-dialog.c:1003 +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 msgid "WPA & WPA2 Enterprise" msgstr "WPA আৰু WPA2 এন্টাৰপ্ৰাইজ" -#: ../src/connection-editor/page-wireless-security.c:365 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "ৱাই-ফাই নিৰাপত্তাৰ ব্যৱহাৰকৰ্তা সংযোগমাধ্যম তুলি ল'বলৈ ব্যৰ্থ; ৱাই-ফাই গুণ অনুপস্থিত ।" - -#: ../src/connection-editor/page-wireless-security.c:372 -#: ../src/connection-editor/page-wireless-security.c:379 -msgid "Could not load WiFi security user interface." -msgstr "ৱাই-ফাই নিৰাপত্তাৰ ব্যৱহাৰকৰ্তা সংযোগমাধ্যম তুলি ল'বলৈ ব্যৰ্থ ।" - -#: ../src/connection-editor/page-wireless-security.c:385 -msgid "Wireless Security" -msgstr "বেতাঁৰ নিৰাপত্তা" - -#: ../src/connection-editor/nm-connection-editor.c:100 -#, c-format -msgid "Editing %s" -msgstr "%s সম্পাদন" - -#: ../src/connection-editor/nm-connection-editor.c:104 -msgid "Editing un-named connection" -msgstr "নামবিহীন সংযোগ সম্পাদন" - -#: ../src/connection-editor/nm-connection-editor.c:287 -msgid "" -"The connection editor could not find some required resources (the " -"NetworkManager applet glade file was not found)." -msgstr "" -"সংযোগ সম্পাদন ব্যৱস্থা দ্বাৰা কিছু আৱশ্যক সম্পদ সন্ধান কৰা সম্ভৱ নহয় (NetworkManager " -"এপ্লেট glade নথিপত্ৰ পাৱা নাযায়) ।" - -#: ../src/connection-editor/nm-connection-editor.c:300 -msgid "" -"The connection editor could not find some required resources (the glade file " -"was not found)." +#: ../src/connection-editor/page-wifi-security.c:396 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." msgstr "" -"সংযোগ সম্পাদন ব্যৱস্থা দ্বাৰা কিছু আৱশ্যক সম্পদ সন্ধান কৰা সম্ভৱ নহয় (glade নথিপত্ৰ " -"পাৱা নাযায়) ।" - -#: ../src/connection-editor/nm-connection-editor.c:398 -msgid "Error creating connection editor dialog." -msgstr "সংযোগ সম্পাদনৰ সম্বাদ প্ৰস্তুত কৰিবলৈ ত্ৰুটি ।" - -#: ../src/connection-editor/nm-connection-editor.c:419 -msgid "Apply" -msgstr "প্ৰয়োগ কৰক" - -#: ../src/connection-editor/nm-connection-editor.c:420 -msgid "Save this connection for all users of this machine." -msgstr "এই যন্ত্ৰৰ সকলো ব্যৱহাৰকৰ্তাৰ বাবে এই সংযোগ সংৰক্ষণ কৰক ।" - -#: ../src/connection-editor/nm-connection-editor.c:421 -msgid "Apply..." -msgstr "প্ৰয়োগ কৰক..." - -#: ../src/connection-editor/nm-connection-editor.c:422 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "এই যন্ত্ৰৰ সকলো ব্যৱহাৰকৰ্তাৰ বাবে এই সংযোগ সংৰক্ষণ কৰাৰ বাবে অনুমোদন কৰক ।" - -#: ../src/connection-editor/nm-connection-editor.glade.h:1 -msgid "Available to all users" -msgstr "সকলো ব্যৱহাৰকৰ্তাৰ বাবে উপস্থিত" - -#: ../src/connection-editor/nm-connection-editor.glade.h:2 -msgid "Connect _automatically" -msgstr "সয়ংক্ৰিয়ভাবে সংযোগ কৰা হ'ব (_a)" - -#: ../src/connection-editor/nm-connection-editor.glade.h:3 -msgid "Connection _name:" -msgstr "সংযোগৰ নাম (_n):" - -#: ../src/connection-editor/nm-connection-editor.glade.h:5 -msgid "E_xport" -msgstr "ৰপ্তানি কৰক (_x)" - -#: ../src/connection-editor/nm-connection-editor.glade.h:11 -msgid "_Import" -msgstr "আমদানি কৰক (_I)" - -#: ../src/connection-editor/nm-connection-list.c:219 -msgid "never" -msgstr "কেতিয়াও নহয়" - -#: ../src/connection-editor/nm-connection-list.c:230 -#: ../src/connection-editor/nm-connection-list.c:241 -msgid "now" -msgstr "এতিয়া" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:248 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "%d মিনিট আগতে" -msgstr[1] "%d মিনিট আগতে" - -#: ../src/connection-editor/nm-connection-list.c:252 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "%d ঘন্টা আগতে" -msgstr[1] "%d ঘন্টা আগতে" - -#: ../src/connection-editor/nm-connection-list.c:264 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "%d দিন আগতে" -msgstr[1] "%d দিন আগতে" - -#: ../src/connection-editor/nm-connection-list.c:270 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "%d মাহ আগতে" -msgstr[1] "%d মাহ আগতে" - -#: ../src/connection-editor/nm-connection-list.c:274 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "%d বছৰ আগতে" -msgstr[1] "%d বছৰ আগতে" - -#: ../src/connection-editor/nm-connection-list.c:596 -msgid "Connection add failed" -msgstr "সংযোগ যোগ কৰিবলৈ ব্যৰ্থ" - -#: ../src/connection-editor/nm-connection-list.c:625 -#, c-format -msgid "Error editing connection: property '%s' / '%s' invalid: %d" -msgstr "সংযোগ সম্পাদন কৰিবলৈ ত্ৰুটি: গুণ '%s' / '%s' অবৈধ: %d" - -#: ../src/connection-editor/nm-connection-list.c:632 -#: ../src/connection-editor/nm-connection-list.c:747 -msgid "An unknown error occurred." -msgstr "এটা অজ্ঞাত ত্ৰুটি হৈছে ।" - -#: ../src/connection-editor/nm-connection-list.c:637 -#: ../src/connection-editor/nm-connection-list.c:788 -msgid "Error initializing editor" -msgstr "সম্পাদন ব্যৱস্থা আৰম্ভ কৰিবলৈ ত্ৰুটি" - -#: ../src/connection-editor/nm-connection-list.c:653 -#: ../src/connection-editor/nm-connection-list.c:805 -#: ../src/connection-editor/nm-connection-list.c:973 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "অজ্ঞাত কাৰণে সংযোগ সম্পাদন ব্যৱস্থাৰ সম্বাদ আৰম্ভ কৰা নাযায় ।" - -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "Could not create new connection" -msgstr "নতুন সংযোগ নিৰ্মাণ কৰা সম্ভৱ নহয়" +"Wi-Fi সুৰক্ষাৰ ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিবলৈ ব্যৰ্থ; Wi-Fi সংহতিসমূহ অনুপস্থিত।" -#: ../src/connection-editor/nm-connection-list.c:673 -msgid "Could not edit new connection" -msgstr "নতুন সংযোগ সম্পাদন কৰা সম্ভৱ নহয়" +#: ../src/connection-editor/page-wifi-security.c:406 +msgid "Wi-Fi Security" +msgstr "Wi-Fi সুৰক্ষা" -#: ../src/connection-editor/nm-connection-list.c:820 -msgid "Could not edit connection" -msgstr "সংযোগ সম্পাদন কৰা সম্ভৱ নহয়" +#: ../src/connection-editor/page-wifi-security.c:408 +msgid "Could not load Wi-Fi security user interface." +msgstr "Wi-Fi সুৰক্ষাৰ ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিবলৈ ব্যৰ্থ।" -#: ../src/connection-editor/nm-connection-list.c:845 -msgid "Connection delete failed" -msgstr "সংযোগ আঁতৰবলৈ ব্যৰ্থ" +#: ../src/connection-editor/page-wimax.c:158 +msgid "Could not load WiMAX user interface." +msgstr "WiMAX ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিব পৰা নগল।" -#: ../src/connection-editor/nm-connection-list.c:877 +#: ../src/connection-editor/page-wimax.c:287 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "আপুনি নিশ্চিতৰূপে %s সংযোগ আঁতৰবলৈ ইচ্ছুক নে ?" +msgid "WiMAX connection %d" +msgstr "WiMAX সংযোগ %d" -#: ../src/connection-editor/nm-connection-list.c:1020 -#: ../src/connection-editor/vpn-helpers.c:228 +#: ../src/connection-editor/vpn-helpers.c:207 msgid "Cannot import VPN connection" -msgstr "VPN সংযোগ আমদানি কৰিবলৈ ব্যৰ্থ" - -#: ../src/connection-editor/nm-connection-list.c:1022 -msgid "" -"The VPN plugin failed to import the VPN connection correctly\n" -"\n" -"Error: no VPN service type." -msgstr "" -"VPN প্লাগ-ইন দ্বাৰা সঠিকভাবে VPN সংযোগ আমদানি কৰা সম্ভৱ নহয়\n" -"\n" -"ত্ৰুটি: কোনো VPN সেৱাৰ ধৰণ উপলব্ধ নহয় ।" - -#: ../src/connection-editor/nm-connection-list.c:1035 -msgid "Could not edit imported connection" -msgstr "আমদানি কৰা সংযোগ সম্পাদন কৰা সম্ভৱ নহয়" - -#: ../src/connection-editor/nm-connection-list.c:1169 -msgid "Name" -msgstr "নাম" - -#: ../src/connection-editor/nm-connection-list.c:1181 -msgid "Last Used" -msgstr "সৰ্বশেষ ব্যৱহাৰ" - -#: ../src/connection-editor/nm-connection-list.c:1284 -msgid "Edit" -msgstr "সম্পাদন" - -#: ../src/connection-editor/nm-connection-list.c:1285 -msgid "Edit the selected connection" -msgstr "নিৰ্বাচিত সংযোগ সম্পাদন কৰক" - -#: ../src/connection-editor/nm-connection-list.c:1286 -msgid "Edit..." -msgstr "সম্পাদন কৰক..." - -#: ../src/connection-editor/nm-connection-list.c:1287 -msgid "Authenticate to edit the selected connection" -msgstr "নিৰ্বাচিত সংযোগ সম্পাদন কৰাৰ আগতে অনুমোদিত হোৱা প্ৰয়োজন" - -#: ../src/connection-editor/nm-connection-list.c:1301 -msgid "Delete" -msgstr "আঁতৰাওক" +msgstr "VPN সংযোগ ইমপোৰ্ট কৰিবলৈ ব্যৰ্থ" -#: ../src/connection-editor/nm-connection-list.c:1302 -msgid "Delete the selected connection" -msgstr "নিৰ্বাচিত সংযোগ আঁতৰাওক" - -#: ../src/connection-editor/nm-connection-list.c:1303 -msgid "Delete..." -msgstr "আঁতৰাওক..." - -#: ../src/connection-editor/nm-connection-list.c:1304 -msgid "Authenticate to delete the selected connection" -msgstr "নিৰ্বাচিত সংযোগ আঁতৰুৱাৰ আগতে অনুমোদিত হোৱা প্ৰয়োজন" - -#: ../src/connection-editor/vpn-helpers.c:230 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -1991,235 +2315,168 @@ "\n" "Error: %s." msgstr "" -"'%s' নথিপত্ৰ পঢ়া নাযায় বা নথিপত্ৰত কোনো পৰিচিত VPN সংযোগৰ তথ্য উপস্থিত নাই\n" +"'%s' ফাইল পঢ়া নাযায় বা ফাইলত কোনো পৰিচিত VPN সংযোগৰ তথ্য উপস্থিত নাই\n" "\n" -"ত্ৰুটি: %s ।" +"ত্ৰুটি: %s।" -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" -msgstr "আমদানি কৰিবলৈ নথিপত্ৰ নিৰ্ব্বাচন কৰক" +msgstr "ইমপোৰ্ট কৰিবলৈ ফাইল বাছক" -#: ../src/connection-editor/vpn-helpers.c:310 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." -msgstr "\"%s\" নামৰ নথিপত্ৰ ইতিমধ্যে আছে ।" +msgstr "\"%s\" নামৰ ফাইল ইতিমধ্যে আছে।" -#: ../src/connection-editor/vpn-helpers.c:312 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" -msgstr "প্ৰতিস্থাপন (_R)" +msgstr "প্ৰতিস্থাপন কৰক (_R)" -#: ../src/connection-editor/vpn-helpers.c:314 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" -msgstr "সংৰক্ষণৰ বাবে চিহ্নিত VPN সংযোগ সহায়ত %s ৰ প্ৰতিস্থাপন কৰা হ'ব নেকি ?" +msgstr "সংৰক্ষণৰ বাবে চিহ্নিত VPN সংযোগ সহায়ত %s ৰ প্ৰতিস্থাপন কৰা হ'ব নেকি?" -#: ../src/connection-editor/vpn-helpers.c:350 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" -msgstr "VPN সংযোগ ৰপ্তানি কৰা নাযায়" +msgstr "VPN সংযোগ এক্সপোৰ্ট কৰা নাযায়" -#: ../src/connection-editor/vpn-helpers.c:352 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" "\n" -"Error: %s." -msgstr "" -"'%s' VPN সংযোগ %s লৈ ৰপ্তানি কৰা নাযায় ।\n" -"\n" -"ত্ৰুটি: %s ।" - -#: ../src/connection-editor/vpn-helpers.c:386 -msgid "Export VPN connection..." -msgstr "VPN সংযোগ ৰপ্তানি কৰক..." - -#: ../src/gnome-bluetooth/bt-widget.c:213 -#, c-format -msgid "%s Network" -msgstr "%s নে'টৱৰ্ক" - -#: ../src/gnome-bluetooth/bt-widget.c:322 -#, c-format -msgid "Error: %s" -msgstr "ত্ৰুটি: %s" - -#: ../src/gnome-bluetooth/bt-widget.c:441 -msgid "Mobile wizard was canceled" -msgstr "মোবাইল উইজাৰ্ড বাতিল কৰা হৈছে" - -#: ../src/gnome-bluetooth/bt-widget.c:450 -msgid "Unknown phone device type (not GSM or CDMA)" -msgstr "অজ্ঞাত ধৰণৰ ফোন যন্ত্ৰ (GSM বা CDMA নহয়)" - -#: ../src/gnome-bluetooth/bt-widget.c:478 -msgid "Your phone is now ready to use!" -msgstr "ব্যৱহাৰৰ উদ্দেশ্যে আপোনাৰ ফোন এতিয়া প্ৰস্তুত!" - -#: ../src/gnome-bluetooth/bt-widget.c:648 -#: ../src/gnome-bluetooth/bt-widget.c:654 -msgid "failed to connect to the phone." -msgstr "ফোনৰ সৈতে সংযোগ স্থাপন কৰিবলৈ ব্যৰ্থ ।" - -#: ../src/gnome-bluetooth/bt-widget.c:687 -msgid "unexpectedly disconnected from the phone." -msgstr "ফোনৰ সৈতে অপ্ৰত্যাশিতৰূপে সংযোগ বিচ্ছিন্ন হৈছে ।" - -#: ../src/gnome-bluetooth/bt-widget.c:696 -msgid "timed out detecting phone details." -msgstr "ফোনৰ বিৱৰণ নিৰ্ধাৰণৰ সময়সীমা উত্তীৰ্ণ হৈছে ।" - -#: ../src/gnome-bluetooth/bt-widget.c:711 -msgid "could not connect to the system bus." -msgstr "প্ৰণালী বাচৰ সৈতে সংযোগ স্থাপন কৰিবলৈ ব্যৰ্থ ।" - -#: ../src/gnome-bluetooth/bt-widget.c:716 -msgid "Detecting phone configuration..." -msgstr "ফোন বিন্যাস চিনাক্ত কৰা হৈছে..." +"Error: %s." +msgstr "" +"'%s' VPN সংযোগ %s লৈ এক্সপোৰ্ট কৰা নাযায়।\n" +"\n" +"ত্ৰুটি: %s।" -#: ../src/gnome-bluetooth/bt-widget.c:782 -msgid "could not find the Bluetooth device." -msgstr "ব্লু-টুথ যন্ত্ৰ পাৱা নাযায় ।" +#: ../src/connection-editor/vpn-helpers.c:369 +msgid "Export VPN connection..." +msgstr "VPN সংযোগ এক্সপোৰ্ট কৰক..." -#: ../src/gnome-bluetooth/bt-widget.c:912 +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 msgid "" -"The default Bluetooth adapter must be enabled before setting up a Dial-Up-" -"Networking connection." -msgstr "" -"ডায়েল-আপ নে'টৱৰ্ক সংযোগ প্ৰস্তুত কৰাৰ আগতে অবিকল্পিত ব্লু-টুথ এডাপ্টাৰ সক্ৰিয় কৰা " -"আৱশ্যক ।" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "NetworkManager এপ্লেটে কিছুমান প্ৰয়োজনীয় সম্পদ বিচাৰি নাপায় (.ui ফাইল পোৱা নগল)।" -#: ../src/gnome-bluetooth/bt-widget.c:944 +#: ../src/gnome-bluetooth/bt-widget.c:321 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "ব্লু-টুথ বিন্যাস সম্ভৱ নহয় (D-Bus লৈ সংযোগ কৰিবলৈ বিফল: %s) ।" +msgid "Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "ব্লুটুথ সংৰূপ সম্ভৱ নহয় (D-Bus লৈ সংযোগ কৰিবলৈ বিফল: (%s) %s)।" -#: ../src/gnome-bluetooth/bt-widget.c:954 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "ব্লু-টুথ বিন্যাস সম্ভৱ নহয় (D-Bus নিযুক্তক সৃষ্টি কৰিবলৈ বিফল) ।" - -#: ../src/gnome-bluetooth/bt-widget.c:963 -msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "ব্লু-টুথ বিন্যাস সম্ভৱ নহয় (NetworkManager বিচাৰিবলৈ বিফল: s) ।" +#: ../src/gnome-bluetooth/bt-widget.c:330 +#, c-format +msgid "Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "ব্লুটুথ সংৰূপ সম্ভব নহয় (NetworkManager বিচাৰি পাওতে ত্ৰুটি: (%s) %s)।" -#: ../src/gnome-bluetooth/bt-widget.c:1014 +#: ../src/gnome-bluetooth/bt-widget.c:445 msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "নে'টৱৰ্ক যন্ত্ৰ ৰূপে মোবাইল ফোন ব্যৱহাৰ কৰা হ'ব (PAN/NAP)" +msgstr "নেটৱাৰ্ক ডিভাইচ ৰূপে ম'বাইল ফোন ব্যৱহাৰ কৰা হ'ব (PAN/NAP)" -#: ../src/gnome-bluetooth/bt-widget.c:1023 +#: ../src/gnome-bluetooth/bt-widget.c:454 msgid "Access the Internet using your mobile phone (DUN)" -msgstr "মোবাইল ফোনৰ মাধ্যমে ইন্টাৰনে'ট ব্যৱহাৰ কৰক (DUN)" - -#: ../src/main.c:70 -msgid "Usage:" -msgstr "ব্যৱহাৰপদ্ধতি: (_U)" +msgstr "ম'বাইল ফোনৰ মাধ্যমে ইন্টাৰনেট ব্যৱহাৰ কৰক (DUN)" -#: ../src/main.c:72 -msgid "" -"This program is a component of NetworkManager (http://projects.gnome.org/" -"NetworkManager)." -msgstr "এই প্ৰোগ্ৰাম NetworkManager ৰ অংশ (http://projects.gnome.org/NetworkManager) ।" +#: ../src/gnome-bluetooth/nma-bt-device.c:318 +#, c-format +msgid "Error: %s" +msgstr "ত্ৰুটি: %s" -#: ../src/main.c:73 -msgid "" -"It is not intended for command-line interaction but instead runs in the " -"GNOME desktop environment." -msgstr "" -"ইয়াক আদেশ-শাৰীৰ মাধ্যমে ব্যৱহাৰৰ উদ্দেশ্যে নিৰ্মিত নহয় আৰু GNOME ডেস্কটপ পৰিবেশত " -"সঞ্চালিত হয় ।" +#: ../src/gnome-bluetooth/nma-bt-device.c:425 +#, c-format +msgid "Failed to create DUN connection: %s" +msgstr "DUN সংযোগ সৃষ্টি কৰিবলে ব্যৰ্থ: %s" -#: ../src/mb-menu-item.c:58 -msgid "EVDO" -msgstr "EVDO" +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "ব্যৱহাৰৰ বাবে আপোনাৰ ফোন এতিয়া প্ৰস্তুত!" -#: ../src/mb-menu-item.c:62 -msgid "GPRS" -msgstr "GPRS" +#: ../src/gnome-bluetooth/nma-bt-device.c:450 +msgid "Mobile wizard was canceled" +msgstr "ম'বাইল উইজাৰ্ড বাতিল কৰা হৈছে" -#: ../src/mb-menu-item.c:64 -msgid "EDGE" -msgstr "EDGE" +#: ../src/gnome-bluetooth/nma-bt-device.c:459 +msgid "Unknown phone device type (not GSM or CDMA)" +msgstr "অজ্ঞাত ধৰণৰ ফোন ডিভাইচ (GSM বা CDMA নহয়)" -#: ../src/mb-menu-item.c:66 -msgid "UMTS" -msgstr "UMTS" +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "অজ্ঞাত মডেম ধৰণ।" -#: ../src/mb-menu-item.c:68 -msgid "HSDPA" -msgstr "HSDPA" +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 +msgid "failed to connect to the phone." +msgstr "ফোনৰ সৈতে সংযোগ স্থাপন কৰিবলৈ ব্যৰ্থ।" -#: ../src/mb-menu-item.c:70 -msgid "HSUPA" -msgstr "HSUPA" +#: ../src/gnome-bluetooth/nma-bt-device.c:676 +msgid "unexpectedly disconnected from the phone." +msgstr "ফোনৰ সৈতে অপ্ৰত্যাশিতৰূপে সংযোগ বিচ্ছিন্ন হৈছে।" -#: ../src/mb-menu-item.c:72 -msgid "HSPA" -msgstr "HSPA" +#: ../src/gnome-bluetooth/nma-bt-device.c:686 +msgid "timed out detecting phone details." +msgstr "ফোনৰ বিৱৰণ নিৰ্ধাৰণৰ সময়সীমা উত্তীৰ্ণ হৈছে।" -#: ../src/mb-menu-item.c:104 -msgid "not enabled" -msgstr "সক্ৰিয় নহয়" +#: ../src/gnome-bluetooth/nma-bt-device.c:697 +msgid "Detecting phone configuration..." +msgstr "ফোন সংৰূপ চিনাক্ত কৰা হৈছে..." -#: ../src/mb-menu-item.c:110 -msgid "not registered" -msgstr "নিবন্ধিত নহয়" +#: ../src/gnome-bluetooth/nma-bt-device.c:794 +msgid "" +"The default Bluetooth adapter must be enabled before setting up a Dial-Up-" +"Networking connection." +msgstr "" +"ডায়েল-আপ নেটৱাৰ্ক সংযোগ প্ৰস্তুত কৰাৰ আগতে অবিকল্পিত ব্লুটুথ এডাপ্টাৰ সক্ৰিয় কৰা আৱশ্যক।" -#: ../src/mb-menu-item.c:128 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Home network (%s)" -msgstr "ঘৰৰ নে'টৱৰ্ক (%s)" +msgid "Failed to create PAN connection: %s" +msgstr "PAN সংযোগ সৃষ্টি কৰিবলে ব্যৰ্থ: %s" -#: ../src/mb-menu-item.c:130 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "Home network" -msgstr "ঘৰৰ নে'টৱৰ্ক" - -#: ../src/mb-menu-item.c:138 -msgid "searching" -msgstr "অনুসন্ধান কৰা হৈছে" - -#: ../src/mb-menu-item.c:141 -msgid "registration denied" -msgstr "নিবন্ধন প্ৰত্যাখ্যান কৰা হৈছে" +msgid "%s Network" +msgstr "%s নেটৱাৰ্ক" -#: ../src/mb-menu-item.c:146 ../src/mb-menu-item.c:152 -#, c-format -msgid "%s (%s roaming)" -msgstr "%s (%s ৰোমিং)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "এই ডিভাইচ স্বচালিতভাৱে আনলক কৰক" -#: ../src/mb-menu-item.c:148 ../src/mb-menu-item.c:154 -#, c-format -msgid "%s (roaming)" -msgstr "%s (ৰোমিং)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "আনলক কৰক (_U)" -#: ../src/mb-menu-item.c:157 -#, c-format -msgid "Roaming network (%s)" -msgstr "ৰোমিং নে'টৱৰ্ক (%s)" +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "সংযোগ তথ্য" -#: ../src/mb-menu-item.c:159 -#, c-format -msgid "Roaming network" -msgstr "ৰোমিং নে'টৱৰ্ক" +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "সক্ৰিয় নেটৱাৰ্ক সংযোগসমূহ" -#: ../src/utils/mobile-wizard.c:196 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "Your mobile broadband connection is configured with the following settings:" -msgstr "নিম্নলিখিত গুণ সহ মোবাইল ব্ৰড-বেন্ড সংযোগ বিন্যাস কৰা হৈছে:" +msgstr "নিম্নলিখিত সংহতিসমূহৰ সৈতে ম'বাইল ব্ৰডবেণ্ড সংযোগ সংৰূপণ কৰা হৈছে:" #. Device -#: ../src/utils/mobile-wizard.c:203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" -msgstr "আপোনাৰ ব্যৱহৃত যন্ত্ৰ:" +msgstr "আপোনাৰ ডিভাইচ:" #. Provider -#: ../src/utils/mobile-wizard.c:214 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" -msgstr "সেৱা উপলব্ধকৰ্তা:" +msgstr "আপোনাৰ সেৱা উপলব্ধকৰ্তা:" #. Plan and APN -#: ../src/utils/mobile-wizard.c:225 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" -msgstr "আপোনাৰ ব্যৱহৃত আঁচনি:" +msgstr "আপোনাৰ পৰিকল্পনা:" -#: ../src/utils/mobile-wizard.c:246 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2227,271 +2484,424 @@ "connection settings, choose \"Network Connections\" from the System >> " "Preferences menu." msgstr "" -"আপোনাৰ নিৰ্বাচিত গুণসমূহ প্ৰয়োগ কৰি এতিয়া আপোনাৰ মোবাইল ব্ৰড-বেন্ড সেৱা উপলব্ধকৰ্তাৰ " -"সৈতে সংযোগ স্থাপন কৰা হ'ব । সংযোগ বিফল হ'লে বা নে'টৱৰ্ক সম্পদ ব্যৱহাৰ কৰা সম্ভৱ " -"ন'হ'লে, নিৰ্ধাৰিত গুণসমূহ পৰীক্ষা কৰক । মোবাইল ব্ৰড-বেন্ড সংযোগৰ গুণ পৰিবৰ্তন কৰাৰ " -"বাবে প্ৰণালী >> পছন্দ তালিকাৰ পৰা \"নে'টৱৰ্ক সংযোগ\" নিৰ্ব্বাচন কৰক ।" +"আপোনাৰ নিৰ্বাচিত সংহতিসমূহসমূহ প্ৰয়োগ কৰি এতিয়া আপোনাৰ ম'বাইল ব্ৰডবেণ্ড সেৱা " +"উপলব্ধকৰ্তাৰ সৈতে সংযোগ স্থাপন কৰা হ'ব। সংযোগ বিফল হ'লে বা নেটৱাৰ্ক সম্পদ ব্যৱহাৰ " +"কৰা সম্ভৱ ন'হ'লে, নিৰ্ধাৰিত সংহতিসমূহসমূহ পৰীক্ষা কৰক। ম'বাইল ব্ৰডবেণ্ড সংযোগৰ " +"সংহতিসমূহ পৰিবৰ্তন কৰাৰ বাবে প্ৰণালী >> পছন্দ তালিকাৰ পৰা \"নেটৱাৰ্ক সংযোগ\" বাছক।" -#: ../src/utils/mobile-wizard.c:258 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" -msgstr "মোবাইল ব্ৰড-বেন্ডৰ গুণ নিশ্চিত কৰক" +msgstr "ম'বাইল ব্ৰডবেণ্ডৰ সংহতিসমূহ নিশ্চিত কৰক" -#: ../src/utils/mobile-wizard.c:319 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "তালিকা বহিৰ্ভূত" -#: ../src/utils/mobile-wizard.c:437 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" -msgstr "ব্যৱহৃত আঁচনি নিৰ্ব্বাচন কৰক: (_S)" +msgstr "আপোনাৰ পৰিকল্পনা বাছক (_S):" -#: ../src/utils/mobile-wizard.c:461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" -msgstr "নিৰ্বাচিত আঁচনিৰ APN (এক্সেচ পইন্ট নেম): (_A)" +msgstr "নিৰ্বাচিত পৰিকল্পনাৰ APN (এক্সেচ পইন্ট নেম) (_A):" -#: ../src/utils/mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"সতৰ্কবাৰ্তা: ভুল আঁচনি নিৰ্ব্বাচন কৰিলে আপোনাৰ ব্ৰড-বেন্ড সংযোগৰ বিল আৰু সংযোগ স্থাপনত " -"সমস্যা হ'ব ।\n" +"সতৰ্কবাৰ্তা: ভুল পৰিকল্পনা নিৰ্বাচন কৰিলে আপোনাৰ ব্ৰডবেণ্ড সংযোগৰ বিল আৰু সংযোগ " +"স্থাপনত সমস্যা হ'ব।\n" "\n" -"আঁচনি সম্পৰ্কে নিশ্চিত ন'হ'লে অনুগ্ৰহ কৰি সেৱা উপলব্ধকৰ্তা সৈতে যোগাযোগ কৰি আপোনাৰ " -"ব্যৱহৃত আঁচনিৰ APN জানক ।" +"পৰিকল্পনা সম্পৰ্কে নিশ্চিত ন'হ'লে অনুগ্ৰহ কৰি সেৱা উপলব্ধকৰ্তা সৈতে যোগাযোগ কৰি " +"আপোনাৰ ব্যৱহৃত পৰিকল্পনাৰ APN জানক।" -#: ../src/utils/mobile-wizard.c:487 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" -msgstr "ব্যৱহৃত বিল আঁচনি নিৰ্ব্বাচন কৰক" +msgstr "ব্যৱহৃত বিল পৰিকল্পনা বাছক" -#: ../src/utils/mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." -msgstr "ব্যৱহৃত আঁচনি তালিকাত অনুপস্থিত..." +msgstr "মোৰ পৰিকল্পনা তালিকাভুক্ত নহয়..." -#: ../src/utils/mobile-wizard.c:688 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" -msgstr "তালিকাৰ পৰা সেৱা উপলব্ধকৰ্তাৰ নাম নিৰ্ব্বাচন কৰক: (_l)" +msgstr "তালিকাৰ পৰা সেৱা উপলব্ধকৰ্তাৰ নাম বাছক (_l):" -#: ../src/utils/mobile-wizard.c:701 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "সেৱা উপলব্ধকৰ্তা" -#: ../src/utils/mobile-wizard.c:726 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" -msgstr "সেৱা উপলব্ধকৰ্তাৰ নাম অনুপস্থিত আৰু মই স্বয়ং সেইটো লিখিবলৈ ইচ্ছুক: (_m)" +msgstr "সেৱা উপলব্ধকৰ্তাৰ নাম অনুপস্থিত আৰু মই স্বয়ং সেইটো লিখিবলৈ ইচ্ছুক (_m):" -#: ../src/utils/mobile-wizard.c:737 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "সেৱা উপলব্ধকৰ্তা:" -#: ../src/utils/mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" -msgstr "সেৱা উপলব্ধকৰ্তা দ্বাৰা GSM প্ৰযুক্তি ব্যৱহাৰ কৰা হয় (GPRS, EDGE, UMTS, HSPA)" +msgstr "মোৰ সেৱা উপলব্ধকৰ্তা দ্বাৰা GSM প্ৰযুক্তি ব্যৱহাৰ কৰা হয় (GPRS, EDGE, UMTS, HSPA)" -#: ../src/utils/mobile-wizard.c:755 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" -msgstr "সেৱা উপলব্ধকৰ্তা দ্বাৰা CDMA প্ৰযুক্তি ব্যৱহাৰ কৰা হয় (1xRTT, EVDO)" +msgstr "মোৰ সেৱা উপলব্ধকৰ্তা দ্বাৰা CDMA প্ৰযুক্তি ব্যৱহাৰ কৰা হয় (1xRTT, EVDO)" -#: ../src/utils/mobile-wizard.c:766 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" -msgstr "সেৱা উপলব্ধকৰ্তা নিৰ্ব্বাচন কৰক" +msgstr "সেৱা উপলব্ধকৰ্তা বাছক" -#: ../src/utils/mobile-wizard.c:1012 -msgid "Country List:" -msgstr "দেশৰ তালিকা:" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 +msgid "Country or Region List:" +msgstr "দেশ অথবা অঞ্চল তালিকা:" -#: ../src/utils/mobile-wizard.c:1024 -msgid "Country" -msgstr "দেশ" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 +msgid "Country or region" +msgstr "দেশ অথবা অঞ্চল" -#: ../src/utils/mobile-wizard.c:1031 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "মোৰ দেশ তালিকাত নাই" -#: ../src/utils/mobile-wizard.c:1077 -msgid "Choose your Provider's Country" -msgstr "সেৱা উপলব্ধকৰ্তাৰ দেশ নিৰ্ব্বাচন কৰক" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 +msgid "Choose your Provider's Country or Region" +msgstr "আপোনাৰ প্ৰদানকাৰীৰ দেশ অথবা অঞ্চল বাছক" -#: ../src/utils/mobile-wizard.c:1126 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" -msgstr "সংস্থাপন কৰা GSM যন্ত্ৰ" +msgstr "ইনস্টল কৰা GSM ডিভাইচ" -#: ../src/utils/mobile-wizard.c:1129 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" -msgstr "সংস্থাপন কৰা CDMA যন্ত্ৰ" +msgstr "ইনস্টল কৰা CDMA ডিভাইচ" -#: ../src/utils/mobile-wizard.c:1297 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." msgstr "" -"এই সহায়ক ব্যৱস্থাৰ সহায়ত এটা চেলুলাৰ (3G) নে'টৱৰ্কৰ সৈতে মোবাইল ব্ৰড-বেন্ড সংযোগ " -"স্থাপন কৰা যাব ।" +"এই সহায়ক ব্যৱস্থাৰ সহায়ত এটা চেলুলাৰ (3G) নেটৱাৰ্কৰ সৈতে ম'বাইল ব্ৰডবেণ্ড সংযোগ " +"স্থাপন কৰা যাব।" -#: ../src/utils/mobile-wizard.c:1302 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" -msgstr "নিম্নলিখিত তথ্য প্ৰয়োজন:" +msgstr "নিম্নলিখিত তথ্যৰ প্ৰয়োজন:" -#: ../src/utils/mobile-wizard.c:1313 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" -msgstr "ব্ৰড-বেন্ড সেৱা উপলব্ধকৰ্তাৰ নাম" +msgstr "ব্ৰডবেণ্ড সেৱা উপলব্ধকৰ্তাৰ নাম" -#: ../src/utils/mobile-wizard.c:1319 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" -msgstr "ব্ৰড-বেন্ড বিলিং আঁচনিৰ নাম" +msgstr "ব্ৰডবেণ্ড বিলিং পৰিকল্পনাৰ নাম" -#: ../src/utils/mobile-wizard.c:1325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" -msgstr "(কিছু ক্ষেত্ৰত) আপোনাৰ ব্যৱহৃত ব্ৰড-বেন্ড বিলিং আঁচনি APN (এক্সেচ পইন্ট নেম)" +msgstr "(কিছু ক্ষেত্ৰত) আপোনাৰ ব্যৱহৃত ব্ৰডবেণ্ড বিলিং পৰিকল্পনা APN (এক্সেচ পইন্ট নেম)" -#: ../src/utils/mobile-wizard.c:1352 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" -msgstr "এই মোবাইল ব্ৰড-বেন্ড যন্ত্ৰৰ বাবে সংযোগ নিৰ্মাণ কৰক (_t)" +msgstr "এই ম'বাইল ব্ৰডবেণ্ড ডিভাইচৰ বাবে সংযোগ সৃষ্টি কৰক (_t)" -#: ../src/utils/mobile-wizard.c:1367 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" -msgstr "যি কোনো যন্ত্ৰ" +msgstr "যিকোনো ডিভাইচ" -#: ../src/utils/mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" -msgstr "মোবাইল ব্ৰড-বেন্ড সংযোগ প্ৰস্তুত কৰক" +msgstr "ম'বাইল ব্ৰডবেণ্ড সংযোগ প্ৰস্তুত কৰক" -#: ../src/utils/mobile-wizard.c:1554 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" -msgstr "নতুন মোবাইল ব্ৰড-বেন্ড সংযোগ" +msgstr "নতুন ম'বাইল ব্ৰডবেণ্ড সংযোগ" -#: ../src/utils/nmn-mobile-providers.c:76 -msgid "United Kingdom" -msgstr "যুক্তৰাজ্য" +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 +msgid "New..." +msgstr "নতুন..." -#: ../src/utils/nmn-mobile-providers.c:523 -msgid "Default" -msgstr "অবিকল্পিত মান" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 +msgid "C_reate" +msgstr "সৃষ্টি কৰক (_r)" -#: ../src/vpn-password-dialog.c:137 ../src/vpn-password-dialog.c:255 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format -msgid "Cannot start VPN connection '%s'" -msgstr "VPN সংযোগ '%s' আৰম্ভ কৰিবলৈ ব্যৰ্থ" +msgid "Passwords or encryption keys are required to access the Wi-Fi network '%s'." +msgstr "'%s' Wi-Fi নেটৱাৰ্ক ব্যৱহাৰ কৰাৰ বাবে পাছৱাৰ্ড বা এনক্ৰিপশন কি'ৰ প্ৰয়োজন।" -#: ../src/vpn-password-dialog.c:140 -#, c-format +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" +msgstr "Wi-Fi নেটৱাৰ্ক প্ৰমাণীকৰণ প্ৰয়োজন" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" +msgstr "Wi-Fi নেটৱাৰ্কৰ দ্বাৰা প্ৰমাণীকৰণৰ প্ৰয়োজন" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" +msgstr "নতুন Wi-Fi নেটৱাৰ্ক সৃষ্টি কৰক" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" +msgstr "নতুন Wi-Fi নেটৱাৰ্ক" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "সৃষ্টি কৰাৰ বাবে চিহ্নিত Wi-Fi নেটৱাৰ্কৰ এটা নাম নিৰ্ধাৰণ কৰক।" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" +msgstr "লুকুৱা Wi-Fi নেটৱাৰ্কৰ সৈতে সংযোগ কৰক" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" +msgstr "লুকুৱা Wi-Fi নেটৱাৰ্ক" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 +msgid "" +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." +msgstr "সংযোগ কৰাৰ বাবে চিহ্নিত লুকুৱা Wi-Fi নেটৱাৰ্কৰ নাম আৰু সুৰক্ষা তথ্য লিখক।" + +#: ../src/libnm-gtk/wifi.ui.h:2 +msgid "Wi-Fi _security:" +msgstr "Wi-Fi সুৰক্ষা (_s):" + +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "সংযোগ (_o):" + +#: ../src/libnm-gtk/wifi.ui.h:5 +msgid "Wi-Fi _adapter:" +msgstr "Wi-Fi এডাপ্টাৰ (_a):" + +#: ../src/main.c:73 +msgid "Usage:" +msgstr "ব্যৱহাৰপদ্ধতি (_U):" + +#: ../src/main.c:75 msgid "" -"Could not find the authentication dialog for VPN connection type '%s'. " -"Contact your system administrator." +"This program is a component of NetworkManager (http://projects.gnome.org/" +"NetworkManager)." msgstr "" -"'%s' ধৰণৰ VPN সংযোগৰ ক্ষেত্ৰত অনুমোদনৰ সম্বাদ পাৱা নাযায় । প্ৰণালী প্ৰশাসকৰ সৈতে " -"যোগাযোগ কৰক ।" +"এই প্ৰগ্ৰাম NetworkManager ৰ এটা উপাদান (http://projects.gnome.org/" +"NetworkManager)।" -#: ../src/vpn-password-dialog.c:258 -#, c-format +#: ../src/main.c:76 msgid "" -"There was a problem launching the authentication dialog for VPN connection " -"type '%s'. Contact your system administrator." +"It is not intended for command-line interaction but instead runs in the " +"GNOME desktop environment." msgstr "" -"'%s' ধৰণৰ VPN সংযোগৰ অনুমোদনৰ সম্বাদ আৰম্ভ কৰিবলৈ সমস্যা দেখা দিছে । প্ৰণালী " -"প্ৰশাসকৰ সৈতে যোগাযোগ কৰক ।" +"ইয়াক কমান্ড-শাৰীৰ মাধ্যমে ব্যৱহাৰৰ বাবে নিৰ্মিত নহয় আৰু GNOME ডেস্কটপ পৰিবেশত " +"সঞ্চালিত হয়।" -#: ../src/wired-dialog.c:99 -msgid "Wired 802.1X authentication" -msgstr "তাঁৰযুক্ত 802.1X অনুমোদন ব্যৱস্থা" +#: ../src/mb-menu-item.c:57 +msgid "EVDO" +msgstr "EVDO" -#: ../src/wireless-dialog.c:474 -msgid "New..." -msgstr "নতুন..." +#: ../src/mb-menu-item.c:61 +msgid "GPRS" +msgstr "GPRS" -#: ../src/wireless-dialog.c:1094 -msgid "C_reate" -msgstr "নিৰ্মাণ (_r)" +#: ../src/mb-menu-item.c:63 +msgid "EDGE" +msgstr "EDGE" + +#: ../src/mb-menu-item.c:65 +msgid "UMTS" +msgstr "UMTS" + +#: ../src/mb-menu-item.c:67 +msgid "HSDPA" +msgstr "HSDPA" + +#: ../src/mb-menu-item.c:69 +msgid "HSUPA" +msgstr "HSUPA" + +#: ../src/mb-menu-item.c:71 +msgid "HSPA" +msgstr "HSPA" + +#: ../src/mb-menu-item.c:73 +msgid "HSPA+" +msgstr "HSPA+" + +#: ../src/mb-menu-item.c:77 +msgid "LTE" +msgstr "LTE" + +#: ../src/mb-menu-item.c:113 +msgid "not enabled" +msgstr "সামৰ্থবান নহয়" -#: ../src/wireless-dialog.c:1175 +#: ../src/mb-menu-item.c:119 +msgid "not registered" +msgstr "ৰেজিস্টাৰ্ড নহয়" + +#: ../src/mb-menu-item.c:137 #, c-format -msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." -msgstr "'%s' বেতাঁৰ নে'টৱৰ্ক ব্যৱহাৰ কৰাৰ বাবে গুপ্তশব্দ বা এনক্ৰিপশন চাবিৰ প্ৰয়োজন ।" +msgid "Home network (%s)" +msgstr "ঘৰৰ নেটৱাৰ্ক (%s)" -#: ../src/wireless-dialog.c:1177 -msgid "Wireless Network Authentication Required" -msgstr "বেতাঁৰ নে'টৱৰ্ক অনুমোদন প্ৰয়োজন" +#: ../src/mb-menu-item.c:139 +#, c-format +msgid "Home network" +msgstr "ঘৰৰ নেটৱাৰ্ক" + +#: ../src/mb-menu-item.c:147 +msgid "searching" +msgstr "অনুসন্ধান কৰা হৈছে" -#: ../src/wireless-dialog.c:1179 -msgid "Authentication required by wireless network" -msgstr "বেতাঁৰ নে'টৱৰ্কৰ বাবে অনুমোদন প্ৰয়োজন" +#: ../src/mb-menu-item.c:150 +msgid "registration denied" +msgstr "ৰেজিস্ট্ৰেষণ নাকচ কৰা হৈছে" -#: ../src/wireless-dialog.c:1184 -msgid "Create New Wireless Network" -msgstr "নতুন বেতাঁৰ নে'টৱৰ্ক নিৰ্মাণ কৰক" +#: ../src/mb-menu-item.c:155 ../src/mb-menu-item.c:161 +#, c-format +msgid "%s (%s roaming)" +msgstr "%s (%s ৰ'মিং)" -#: ../src/wireless-dialog.c:1186 -msgid "New wireless network" -msgstr "নতুন বেতাঁৰ নে'টৱৰ্ক" +#: ../src/mb-menu-item.c:157 ../src/mb-menu-item.c:163 +#, c-format +msgid "%s (roaming)" +msgstr "%s (ৰ'মিং)" -#: ../src/wireless-dialog.c:1187 -msgid "Enter a name for the wireless network you wish to create." -msgstr "নিৰ্মাণ কৰাৰ উদ্দেশ্যে চিহ্নিত বেতাঁৰ নে'টৱৰ্কৰ নাম নিৰ্ধাৰণ কৰক ।" +#: ../src/mb-menu-item.c:166 +#, c-format +msgid "Roaming network (%s)" +msgstr "ৰ'মিং নেটৱাৰ্ক (%s)" -#: ../src/wireless-dialog.c:1189 -msgid "Connect to Hidden Wireless Network" -msgstr "গোপন বেতাঁৰ নে'টৱৰ্কৰ সৈতে সংযোগ স্থাপন কৰক" +#: ../src/mb-menu-item.c:168 +#, c-format +msgid "Roaming network" +msgstr "ৰ'মিং নেটৱাৰ্ক" -#: ../src/wireless-dialog.c:1191 -msgid "Hidden wireless network" -msgstr "গোপন বেতাঁৰ নে'টৱৰ্ক" +#: ../src/utils/nmn-mobile-providers.c:531 +msgid "Default" +msgstr "অবিকল্পিত" -#: ../src/wireless-dialog.c:1192 -msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." -msgstr "" -"সংযোগ কৰাৰ উদ্দেশ্যে চিহ্নিত গোপন বেতাঁৰ নে'টৱৰ্কৰ নাম আৰু নিৰাপত্তা বিষয়ক তথ্য লিখক " -"।" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "%s সংযোগ" -#: ../src/wireless-security/eap-method.c:190 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" -msgstr "কোনো প্ৰমাণপত্ৰ কতৃপক্ষৰ (CA) প্ৰমাণপত্ৰ নিৰ্ব্বাচন কৰা নহয়" +msgstr "কোনো প্ৰমাণপত্ৰ কতৃপক্ষৰ প্ৰমাণপত্ৰ নিৰ্বাচন কৰা নহয়" -#: ../src/wireless-security/eap-method.c:191 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" -"প্ৰমাণপত্ৰ কতৃপক্ষ (CA) প্ৰমাণপত্ৰ ব্যৱহাৰ নকৰিলে সুৰক্ষাবিহীন আৰু বিপজ্জনক নে'টৱৰ্কৰ " -"সৈতে সংযোগ স্থাপন কৰা হ'ব পাৰে । আপুনি এটা প্ৰমাণপত্ৰ কতৃপক্ষ (CA) প্ৰমাণপত্ৰ " -"নিৰ্ব্বাচন কৰিবলৈ বিচাৰে নেকি ?" +"প্ৰমাণপত্ৰ কতৃপক্ষ (CA) প্ৰমাণপত্ৰ ব্যৱহাৰ নকৰিলে সুৰক্ষাবিহীন, বিপদজনক Wi-Fi নেটৱাৰ্কৰ " +"সৈতে সংযোগ স্থাপন কৰা হ'ব পাৰে। আপুনি এটা প্ৰমাণপত্ৰ কতৃপক্ষ প্ৰমাণপত্ৰ নিৰ্বাচন কৰিব " +"বিচাৰে নেকি?" -#: ../src/wireless-security/eap-method.c:200 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" -msgstr "এটা CA প্ৰমাণপত্ৰ নিৰ্ব্বাচন কৰক" +msgstr "এটা CA প্ৰমাণপত্ৰ বাছক" -#: ../src/wireless-security/eap-method.c:515 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" -msgstr "DER, PEM, বা PKCS#12 ব্যক্তিগত চাবি (*.der, *.pem, *.p12)" +msgstr "DER, PEM, বা PKCS#12 ব্যক্তিগত কি'সমূহ (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:518 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" -msgstr "DER বা PEM প্ৰমাণপত্ৰ (*.der, *.pem, *.crt, *.cer)" - -#: ../src/wireless-security/eap-method-peap.c:261 -msgid "MD5" -msgstr "MD5" +msgstr "DER বা PEM প্ৰমাণপত্ৰসমূহ (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-peap.c:277 +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 msgid "GTC" msgstr "GTC" -#: ../src/wireless-security/eap-method-peap.c:366 -#: ../src/wireless-security/eap-method-tls.c:457 -#: ../src/wireless-security/eap-method-ttls.c:365 +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "এটা PAC ফাইল বাছক..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC ফাইলসমূহ (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "সকলো ফাইল" + +#: ../src/wireless-security/eap-method-fast.ui.h:2 +msgid "Anonymous" +msgstr "বেনামী" + +#: ../src/wireless-security/eap-method-fast.ui.h:3 +msgid "Authenticated" +msgstr "প্ৰমাণীত" + +#: ../src/wireless-security/eap-method-fast.ui.h:4 +msgid "Both" +msgstr "দুয়ো" + +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "বেনামী পৰিচয় (_m):" + +#: ../src/wireless-security/eap-method-fast.ui.h:6 +msgid "PAC _file:" +msgstr "PAC ফাইল (_f):" + +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-ttls.ui.h:4 +msgid "_Inner authentication:" +msgstr "অভ্যন্তৰীক প্ৰমাণীকৰণ (_I):" + +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "স্বচালিত PAC যোগানৰ অনুমতি দিয়ক (_v)" + +#: ../src/wireless-security/eap-method-peap.c:263 +#: ../src/wireless-security/wireless-security.c:382 +msgid "MD5" +msgstr "MD5" + +#: ../src/wireless-security/eap-method-peap.c:350 +#: ../src/wireless-security/eap-method-tls.c:416 +#: ../src/wireless-security/eap-method-ttls.c:350 msgid "Choose a Certificate Authority certificate..." -msgstr "প্ৰমাণপত্ৰ কতৃপক্ষৰ প্ৰমাণপত্ৰ নিৰ্ব্বাচন কৰক..." +msgstr "প্ৰমাণপত্ৰ কতৃপক্ষৰ প্ৰমাণপত্ৰ বাছক..." + +#: ../src/wireless-security/eap-method-peap.ui.h:3 +msgid "Version 0" +msgstr "সংস্কৰণ 0" + +#: ../src/wireless-security/eap-method-peap.ui.h:4 +msgid "Version 1" +msgstr "সংস্কৰণ 1" + +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-ttls.ui.h:3 +msgid "C_A certificate:" +msgstr "CA প্ৰমাণপত্ৰ (_A):" + +#: ../src/wireless-security/eap-method-peap.ui.h:8 +msgid "PEAP _version:" +msgstr "PEAP সংস্কৰণ (_v):" + +#: ../src/wireless-security/eap-method-simple.ui.h:3 +msgid "As_k for this password every time" +msgstr "প্ৰতিবাৰ এই পাছৱাৰ্ড লিখাৰ অনুৰোধ কৰা হ'ব (_k)" -#: ../src/wireless-security/eap-method-tls.c:263 +#: ../src/wireless-security/eap-method-tls.c:246 msgid "Unencrypted private keys are insecure" -msgstr "এনক্ৰিপশন বিহীন ব্যক্তিগত চাবি নিৰাপদ নহয়" +msgstr "এনক্ৰিপশন বিহীন ব্যক্তিগত কি' নিৰাপদ নহয়" -#: ../src/wireless-security/eap-method-tls.c:266 +#: ../src/wireless-security/eap-method-tls.c:249 msgid "" "The selected private key does not appear to be protected by a password. " "This could allow your security credentials to be compromised. Please select " @@ -2499,34 +2909,339 @@ "\n" "(You can password-protect your private key with openssl)" msgstr "" -"নিৰ্বাচিত ব্যক্তিগত চাবি সম্ভৱত গুপ্তশব্দ সহায়ত সুৰক্ষিত নহয় । ইয়াৰ ফলত নিৰাপত্তা " -"বিষয়ক পৰিচয়ৰ নিৰাপত্তা হানী হোৱাৰ সম্ভাৱনা আছে । অনুগ্ৰহ কৰি, গুপ্তশব্দ সহায়ত " -"সুৰক্ষিত এটা ব্যক্তিগত চাবি নিৰ্ব্বাচন কৰক ।\n" +"নিৰ্বাচিত ব্যক্তিগত কি' সম্ভৱত পাছৱাৰ্ড সহায়ত সুৰক্ষিত নহয়। ইয়াৰ ফলত সুৰক্ষা বিষয়ক " +"পৰিচয়ৰ সুৰক্ষা হানী হোৱাৰ সম্ভাৱনা আছে। অনুগ্ৰহ কৰি, পাছৱাৰ্ড সহায়ত সুৰক্ষিত এটা " +"ব্যক্তিগত কি' বাছক।\n" "\n" -"(openssl ৰ মাধ্যমে গুপ্তশব্দ সহায়ত ব্যক্তিগত চাবি সুৰক্ষিত কৰা যাব)" +"(openssl ৰ মাধ্যমে পাছৱাৰ্ড সহায়ত ব্যক্তিগত কি' সুৰক্ষিত কৰা যাব)" -#: ../src/wireless-security/eap-method-tls.c:451 +#: ../src/wireless-security/eap-method-tls.c:410 msgid "Choose your personal certificate..." -msgstr "ব্যক্তিগত প্ৰমাণপত্ৰ নিৰ্ব্বাচন কৰক..." +msgstr "ব্যক্তিগত প্ৰমাণপত্ৰ বাছক..." -#: ../src/wireless-security/eap-method-tls.c:463 +#: ../src/wireless-security/eap-method-tls.c:422 msgid "Choose your private key..." -msgstr "ব্যক্তিগত চাবি নিৰ্ব্বাচন কৰক..." +msgstr "ব্যক্তিগত কি' বাছক..." + +#: ../src/wireless-security/eap-method-tls.ui.h:1 +msgid "I_dentity:" +msgstr "পৰিচয় (_d):" + +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "ব্যৱহাৰকাৰী প্ৰমাণপত্ৰ (_U):" -#: ../src/wireless-security/wireless-security.c:329 +#: ../src/wireless-security/eap-method-tls.ui.h:4 +msgid "Private _key:" +msgstr "ব্যক্তিগত কি' (_k):" + +#: ../src/wireless-security/eap-method-tls.ui.h:5 +msgid "_Private key password:" +msgstr "ব্যক্তিগত কি' পাছৱাৰ্ড (_P):" + +#: ../src/wireless-security/nag-user-dialog.ui.h:1 +msgid "Don't _warn me again" +msgstr "মোক আকৌ সতৰ্ক নকৰিব (_w)" + +#: ../src/wireless-security/nag-user-dialog.ui.h:2 +msgid "No" +msgstr "নহয়" + +#: ../src/wireless-security/nag-user-dialog.ui.h:3 +msgid "Yes" +msgstr "হয়" + +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:353 +#: ../src/wireless-security/wireless-security.c:418 +msgid "FAST" +msgstr "FAST" + +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "টানেল কৰা TLS" -#: ../src/wireless-security/wireless-security.c:364 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" -msgstr "প্ৰটেক্টেড EAP (PEAP)" +msgstr "সুৰক্ষিত EAP (PEAP)" + +#: ../src/wireless-security/ws-dynamic-wep.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:9 +#: ../src/wireless-security/ws-wpa-eap.ui.h:2 +msgid "Au_thentication:" +msgstr "প্ৰমাণীকৰণ (_t):" + +#: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "খোলা চিস্টেম" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "অংশীদাৰী কৰা কি'" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 +msgid "1 (Default)" +msgstr "1 (অবিকল্পিত)" + +#: ../src/wireless-security/ws-wep-key.ui.h:4 +msgid "2" +msgstr "2" + +#: ../src/wireless-security/ws-wep-key.ui.h:5 +msgid "3" +msgstr "3" + +#: ../src/wireless-security/ws-wep-key.ui.h:6 +msgid "4" +msgstr "4" + +#: ../src/wireless-security/ws-wep-key.ui.h:7 +msgid "_Key:" +msgstr "কি' (_K):" + +#: ../src/wireless-security/ws-wep-key.ui.h:8 +msgid "Sho_w key" +msgstr "কি' দেখুৱাওক (_w)" + +#: ../src/wireless-security/ws-wep-key.ui.h:10 +msgid "WEP inde_x:" +msgstr "WEP সূচী (_x):" + +#~ msgid "Wireless Networks (%s)" +#~ msgstr "বেতাঁৰ নেটৱাৰ্কসমূহ (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "বেতাঁৰ নেটৱাৰ্ক (%s)" + +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "বেতাঁৰ নেটৱাৰ্ক" +#~ msgstr[1] "বেতাঁৰ নেটৱাৰ্কসমূহ" + +#~ msgid "wireless is disabled" +#~ msgstr "বেতাঁৰ অসামৰ্থবান" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "বেতাঁৰ হাৰ্ডৱেৰ চুইচ দ্বাৰা অসামৰ্থবান কৰা আছে" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "বেতাঁৰ নেটৱাৰ্ক সংযোগ '%s' সৃষ্টি কৰা হৈছে..." + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "বেতাঁৰ নেটৱাৰ্ক '%s' সংৰূপণ কৰা হৈছে..." + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "'%s' ৰ কাৰণে বেতাঁৰ নেটৱাৰ্ক ঠিকনা অনুৰোধ কৰা হৈছে..." + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "বেতাঁৰ নেটৱাৰ্ক সংযোগ '%s' সক্ৰিয়" + +#~ msgid "Wired" +#~ msgstr "তাঁৰযুক্ত" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "তাঁৰযুক্ত সুৰক্ষা সুৰক্ষা ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ ল'ড কৰিব নোৱাৰি।" + +#~ msgid "Wireless" +#~ msgstr "বেতাঁৰ" -#~ msgid "_Routes…" -#~ msgstr "_Routes…" +#~ msgid "Wireless connection %d" +#~ msgstr "বেতাঁৰ সংযোগ %d" + +#~ msgid "_Import" +#~ msgstr "ইমপোৰ্ট কৰক (_I)" + +#~ msgid "An unknown error occurred." +#~ msgstr "এটা অজ্ঞাত ত্ৰুটি হৈছে।" + +#~ msgid "Could not edit new connection" +#~ msgstr "নতুন সংযোগ সম্পাদন কৰা সম্ভৱ নহয়" + +#~ msgid "Could not edit imported connection" +#~ msgstr "ইমপোৰ্ট কৰা সংযোগ সম্পাদন কৰা সম্ভৱ নহয়" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "" +#~ "কোনো VPN প্লাগিন উপলব্ধ নাই। এই বুটাম সামৰ্থবান কৰিবলে অনুগ্ৰহ কৰি এটা ইনস্টল " +#~ "কৰক।" + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "'%s' সংযোগসমূহ কিদৰে সম্পাদন কৰা হব জ্ঞাত নহয়" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "ব্লুটুথ ডিভাইচ পোৱা নাযায়।" + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "ব্লুটুথ সংৰূপ সম্ভৱ নহয় (D-Bus প্ৰক্সি সৃষ্টি কৰিবলৈ বিফল)।" + +#~ msgid "Network Manager" +#~ msgstr "নেটৱাৰ্ক পৰিড্ৰাইভাৰ" + +#~ msgid "An instance of nm-applet is already running.\n" +#~ msgstr "nm-applet ৰ এটা চানেকি বৰ্তমানে চলি আছে।\n" + +#~ msgid "Could not acquire the %s service. (%d)\n" +#~ msgstr "%s সেৱা গ্ৰহণ কৰিবলৈ ব্যৰ্থ। (%d)\n" + +#~ msgid "PUK code required" +#~ msgstr "PUK ক'ড প্ৰয়োজনীয়" + +#~ msgid "PUK code is needed for the mobile broadband device" +#~ msgstr "ম'বাইল ব্ৰ'ডবেণ্ড ডিভাইচৰ কাৰণে PUK ক'ড প্ৰয়োজনীয়" + +#~ msgctxt "No wired security used" +#~ msgid "None" +#~ msgstr "একো নাই" + +#~ msgctxt "Unknown/unrecognized wired or wifi security" +#~ msgid "Unknown" +#~ msgstr "অজ্ঞাত" + +#~ msgid "translator-credits" +#~ msgstr "অমিতাক্ষ ফুকন (aphukan@fedoraproject.org)" + +#~ msgid "" +#~ "Active Network Connections" +#~ msgstr "" +#~ "Active Network Connections" + +#~ msgid "" +#~ "Automatic\n" +#~ "Version 0\n" +#~ "Version 1" +#~ msgstr "" +#~ "Automatic\n" +#~ "Version 0\n" +#~ "Version 1" + +#~ msgid "Other Wireless Network..." +#~ msgstr "বেতাঁৰ নেটৱাৰ্ক" + +#~ msgid "label" +#~ msgstr "লেবেল" + +#~ msgid "Addresses" +#~ msgstr "Addresses" + +#~ msgid "" +#~ "Automatic\n" +#~ "Automatic with manual DNS settings\n" +#~ "Manual\n" +#~ "Link-Local\n" +#~ "Shared to other computers" +#~ msgstr "" +#~ "Automatic\n" +#~ "Automatic with manual DNS settings\n" +#~ "Manual\n" +#~ "Link-Local\n" +#~ "Shared to other computers" + +#~ msgid "_Routes…" +#~ msgstr "ৰুট… (_R)" + +#~ msgid "Basic" +#~ msgstr "Basic" + +#~ msgid "" +#~ "Any\n" +#~ "3G (UMTS/HSPA)\n" +#~ "2G (GPRS/EDGE)\n" +#~ "Prefer 3G (UMTS/HSPA)\n" +#~ "Prefer 2G (GPRS/EDGE)" +#~ msgstr "" +#~ "Any\n" +#~ "3G (UMTS/HSPA)\n" +#~ "2G (GPRS/EDGE)\n" +#~ "Prefer 3G (UMTS/HSPA)\n" +#~ "Prefer 2G (GPRS/EDGE)" + +#~ msgid "Authentication" +#~ msgstr "DSL প্ৰমাণীকৰণ" + +#~ msgid "Echo" +#~ msgstr "Echo" + +#~ msgid "" +#~ "Automatic\n" +#~ "10 Mb/s\n" +#~ "100 Mb/s\n" +#~ "1 Gb/s\n" +#~ "10 Gb/s" +#~ msgstr "" +#~ "Automatic\n" +#~ "10 Mb/s\n" +#~ "100 Mb/s\n" +#~ "1 Gb/s\n" +#~ "10 Gb/s" + +#~ msgid "" +#~ "Automatic\n" +#~ "Twisted Pair (TP)\n" +#~ "Attachment Unit Interface (AUI)\n" +#~ "BNC\n" +#~ "Media Independent Interface (MII)" +#~ msgstr "" +#~ "Automatic\n" +#~ "Twisted Pair (TP)\n" +#~ "Attachment Unit Interface (AUI)\n" +#~ "BNC\n" +#~ "Media Independent Interface (MII)" + +#~ msgid "" +#~ "Automatic\n" +#~ "A (5 GHz)\n" +#~ "B/G (2.4 GHz)" +#~ msgstr "" +#~ "Automatic\n" +#~ "A (5 GHz)\n" +#~ "B/G (2.4 GHz)" + +#~ msgid "_Security:" +#~ msgstr "_Security:" + +#~ msgid "" +#~ "The connection editor could not find some required resources (the " +#~ "NetworkManager applet glade file was not found)." +#~ msgstr "" +#~ "সংযোগ সম্পাদন ব্যৱস্থা দ্বাৰা কিছু আৱশ্যক সম্পদ সন্ধান কৰা সম্ভৱ নহয় " +#~ "(NetworkManager এপ্লেট glade ফাইল পোৱা নাযায়)।" + +#~ msgid "Apply" +#~ msgstr "প্ৰয়োগ কৰক" + +#~ msgid "Save this connection for all users of this machine." +#~ msgstr "এই ডিভাইচৰ সকলো ব্যৱহাৰকাৰীৰ বাবে এই সংযোগ সংৰক্ষণ কৰক।" + +#~ msgid "Apply..." +#~ msgstr "প্ৰয়োগ কৰক..." + +#~ msgid "could not connect to the system bus." +#~ msgstr "প্ৰণালী বাচৰ সৈতে সংযোগ স্থাপন কৰিবলৈ ব্যৰ্থ।" + +#~ msgid "Country" +#~ msgstr "দেশ" + +#~ msgid "United Kingdom" +#~ msgstr "যুক্তৰাজ্য" + +#~ msgid "Cannot start VPN connection '%s'" +#~ msgstr "VPN সংযোগ '%s' আৰম্ভ কৰিবলৈ ব্যৰ্থ" + +#~ msgid "" +#~ "Could not find the authentication dialog for VPN connection type '%s'. " +#~ "Contact your system administrator." +#~ msgstr "" +#~ "'%s' ধৰণৰ VPN সংযোগৰ ক্ষেত্ৰত অনুমোদনৰ বাৰ্তা পোৱা নাযায়। প্ৰণালী প্ৰশাসকৰ সৈতে " +#~ "যোগাযোগ কৰক।" + +#~ msgid "" +#~ "There was a problem launching the authentication dialog for VPN " +#~ "connection type '%s'. Contact your system administrator." +#~ msgstr "" +#~ "'%s' ধৰণৰ VPN সংযোগৰ অনুমোদনৰ বাৰ্তা আৰম্ভ কৰিবলৈ সমস্যা দেখা দিছে। প্ৰণালী " +#~ "প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।" #~ msgid "" #~ "The NetworkManager applet could not find some required resources. It " @@ -2542,7 +3257,8 @@ #~ "Insufficient privileges or unknown error retrieving system connection " #~ "secrets." #~ msgstr "" -#~ "Insufficient privileges or unknown error retrieving system connection secrets." +#~ "Insufficient privileges or unknown error retrieving system connection " +#~ "secrets." #~ msgid "Could not request secrets from the system settings service." #~ msgstr "Could not request secrets from the system settings service." diff -Nru network-manager-applet-0.9.4.1/po/ast.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ast.po --- network-manager-applet-0.9.4.1/po/ast.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ast.po 2012-10-31 13:20:57.000000000 +0000 @@ -1858,7 +1858,7 @@ msgstr "Autenticar pa guardar esta conexón pa tolos usuarios nesti equipu." #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Disponible pa tolos usuarios" #: ../src/connection-editor/nm-connection-editor.ui.h:2 @@ -2422,7 +2422,7 @@ "a la que te quies coneutar." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Co_nexón:" #: ../src/libnm-gtk/wifi.ui.h:3 @@ -2430,7 +2430,7 @@ msgstr "_Adaptador Wifi:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Seguridá inalámbrica:" #: ../src/main.c:73 diff -Nru network-manager-applet-0.9.4.1/po/be.po network-manager-applet-0.9.6.2+git201210311320.2620/po/be.po --- network-manager-applet-0.9.4.1/po/be.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/be.po 2012-10-31 13:20:57.000000000 +0000 @@ -5,9 +5,10 @@ msgid "" msgstr "" "Project-Id-Version: network-manager-applet\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-02-15 22:45+0300\n" -"PO-Revision-Date: 2012-02-15 22:45+0300\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-08-09 18:11+0000\n" +"PO-Revision-Date: 2012-08-19 00:28+0300\n" "Last-Translator: Ihar Hrachyshka \n" "Language-Team: Belarusian \n" "Language: be\n" @@ -25,1006 +26,1058 @@ msgid "Manage your network connections" msgstr "Кіраванне сеткавымі злучэннямі" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Сеткавыя злучэнні" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Настройкі сеткавага злучэння" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Выключыць апавяшчэнні аб злучэнні" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "Выключыць апавяшчэнні пры злучэнні з сеткай." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Выключыць апавяшчэнні аб адлучэнні" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "Выключыць апавяшчэнні пры адлучэнні ад сеткі." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Выключыць апавяшчэнні аб VPN-злучэнні" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "Выключыць апавяшчэнні пры злучэнні і адлучэнні ад VPN-сеткі." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Блакіраваць апавяшчэнні аб наяўнасці сетак" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." -msgstr "Выключыць апавяшчэнні аб наяўнасці бесправадных сетак." +"Set this to true to disable notifications when Wi-Fi networks are available." +msgstr "Выключыць апавяшчэнні аб наяўнасці сетак Wi-Fi." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Адбітак" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "Выкарыстоўваецца для вызначэння патрэбы ў міграцыі настроек на новую версію." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Выключыць магчымасць стварэння WiFi-сеткі" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "Выключыць для аплета магчымасць стварэння adhoc-сеткі." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Сеткавыя злучэнні" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ігнараваць сертыфікат CA" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Настройкі сеткавага злучэння" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "Выключыць папярэджанні аб сертыфікатах CA для EAP-ідэнтыфікацыі." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Даступна" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Выключыць папярэджанні аб сертыфікатах CA у другой фазе EAP-ідэнтыфікацыі." -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Вы злучаны з \"%s\"." +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "Ідэнтыфікацыя 802.1X" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Злучэнне ўсталявана" +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_Назва сеткі:" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Вы злучаны з шырокапалоснай мабільнай сеткай." +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Не ўдалося дадаць/уключыць злучэнне" + +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Невядомая памылка" + +#: ../src/applet.c:493 ../src/applet.c:563 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Няўдалае злучэнне" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Не ўдалося адлучыць прыстасаванне" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Няўдалае адлучэнне" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "Не ўдалося ўключыць злучэнне" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 -#, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Падрыхтоўка шырокапалоснага мабільнага злучэння \"%s\"..." +#: ../src/applet.c:924 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "Больш не паказваць гэта паведамленне" -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1013 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Настройка шырокапалоснага мабільнага злучэння \"%s\"..." +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN-злучэнне \"%s\" не працуе з прычыны яго перапынення." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1016 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." msgstr "" -"Для шырокапалоснага мабільнага злучэння \"%s\" патрабуецца ідэнтыфікацыя " -"карыстальніка..." +"\n" +"VPN-злучэнне \"%s\" не працуе з прычыны нечаканага спынення VPN-службы." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2479 +#: ../src/applet.c:1019 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Запыт сеткавага адрасу для \"%s\"..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"VPN-злучэнне \"%s\" не працуе, бо VPN-служба вярнула хібную канфігурацыю " +"настроек." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1022 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "Шырокапалоснае мабільнае злучэнне \"%s\" уключана" - -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"VPN-злучэнне \"%s\" не працуе, бо дасягнута максімальная колькасць спроб " +"злучэння." -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:430 +#: ../src/applet.c:1025 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Шырокапалоснае мабільнае злучэнне (%s)" - -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 -msgid "Mobile Broadband" -msgstr "Шырокапалоснае мабільнае злучэнне" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"VPN-злучэнне \"%s\" не працуе, бо VPN-служба не запусцілася да часу." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Новае шырокапалоснае мабільнае злучэнне (CDMA)..." +#: ../src/applet.c:1028 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"VPN-злучэнне \"%s\" не працуе з прычыны няўдалася запуску VPN-службы." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Вы злучаны з CDMA-сеткай." +#: ../src/applet.c:1031 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"VPN-злучэнне \"%s\" не працуе з прычыны адсутнасці прыдатных сакрэтных " +"ключоў." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1034 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Шырокапалоснае мабільнае злучэнне \"%s\" уключана: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"VPN-злучэнне \"%s\" не працуе праз хібныя сакрэтныя ключы." -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "роўмінг" +#: ../src/applet.c:1041 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"VPN-злучэнне \"%s\" не працуе." -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "CDMA-сетка." +#: ../src/applet.c:1059 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN-злучэнне \"%s\" разарвана з прычыны яго перапынення." -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Вы зарэгістраваны ў дамашняй сетцы." +#: ../src/applet.c:1062 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"VPN-злучэнне \"%s\" разарвана, бо VPN-служба была спынена." -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Вы зарэгістраваны ў роўмінг-сетцы." +#: ../src/applet.c:1068 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"VPN-злучэнне \"%s\" разарвана." -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"Злучэнне VPN паспяхова ўсталявана.\n" +"\n" +"%s\n" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Новае шырокапалоснае мабільнае злучэнне (GSM)..." +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "Злучэнне VPN паспяхова ўсталявана.\n" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Вы злучаны з GSM-сеткай." +#: ../src/applet.c:1102 +msgid "VPN Login Message" +msgstr "Паведамленне VPN-уваходу" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "Патрэбны PIN-код" +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 +msgid "VPN Connection Failed" +msgstr "Няўдалае VPN-злучэнне" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" +#: ../src/applet.c:1173 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" msgstr "" -"Для выкарыстання прыстасавання шырокапалоснага мабільнага інтэрнэту патрэбны " -"PIN-код" +"\n" +"VPN-злучэнне \"%s\" не працуе, бо не ўдалося запусціць VPN-службу.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:783 +#: ../src/applet.c:1176 #, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "PIN-код для SIM-карты \"%s\" у \"%s\"" +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Не ўдалося запусціць VPN-злучэнне \"%s\".\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "Хібны PIN-код. Звярніцеся да правайдара паслуг." +#: ../src/applet.c:1496 +msgid "device not ready (firmware missing)" +msgstr "прыстасаванне не гатова (няма апаратнага апраграмавання)" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "Хібны PUK-код. Звярніцеся да правайдара паслуг." +#: ../src/applet.c:1498 +msgid "device not ready" +msgstr "прыстасаванне не гатова" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "Пасылка коду разблакіравання..." +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1508 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "няма злучэння" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "Патрэбны код разблакіравання PIN-коду" +#: ../src/applet.c:1524 +msgid "Disconnect" +msgstr "Адлучыцца" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "Патрэбны код разблакіравання PIN-коду" +#: ../src/applet.c:1538 +msgid "device not managed" +msgstr "прыстасаваннем нельга кіраваць" -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "" -"Для выкарыстання прыстасавання шырокапалоснага мабільнага інтэрнэту \"%s\" " -"патрэбны код разблакіравання PIN-коду." +#: ../src/applet.c:1582 +msgid "No network devices available" +msgstr "Няма сеткавых прыстасаванняў" -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "PIN-код:" +#: ../src/applet.c:1670 +msgid "_VPN Connections" +msgstr "VPN-з_лучэнні" -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "Паказаць PIN-код" +#: ../src/applet.c:1727 +msgid "_Configure VPN..." +msgstr "_Настройка VPN..." -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "Патрэбны код разблакіравання PUK-коду" +#: ../src/applet.c:1731 +msgid "_Disconnect VPN" +msgstr "_Адлучыцца ад VPN" -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "Патрэбны код разблакіравання PUK-коду" +#: ../src/applet.c:1825 +msgid "NetworkManager is not running..." +msgstr "NetworkManager не запушчаны..." -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "" -"Для выкарыстання прыстасавання шырокапалоснага мабільнага інтэрнэту \"%s\" " -"патрэбны код разблакіравання PUK-коду." - -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "PUK-код:" - -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "Новы PIN-код:" +#: ../src/applet.c:1830 ../src/applet.c:2631 +msgid "Networking disabled" +msgstr "Сеткавыя паслугі выключаны" -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "Паўторна ўпішыце новы PIN-код:" +#. 'Enable Networking' item +#: ../src/applet.c:2051 +msgid "Enable _Networking" +msgstr "_Уключыць сеткавыя паслугі" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "Паказаць PIN- і PUK-коды" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2060 +msgid "Enable _Wi-Fi" +msgstr "_Уключыць Wi-Fi" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "GSM-сетка." +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2069 +msgid "Enable _Mobile Broadband" +msgstr "Уключыць _шырокапалосную мабільную сувязь" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "Аўта Ethernet" +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2078 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Уключыць шырокапалосную _мабільную WiMAX-сувязь" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "Правадныя сеткі (%s)" +#. Toggle notifications item +#: ../src/applet.c:2089 +msgid "Enable N_otifications" +msgstr "Уключыць _апавяшчэнні" -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "Правадная сетка (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2100 +msgid "Connection _Information" +msgstr "Інфармацыя аб _злучэнні" -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "Правадныя сеткі" +#. 'Edit Connections...' item +#: ../src/applet.c:2110 +msgid "Edit Connections..." +msgstr "Настройка злучэнняў..." -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "Правадная сетка" +#. Help item +#: ../src/applet.c:2124 +msgid "_Help" +msgstr "_Дапамога" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1485 -msgid "disconnected" -msgstr "няма злучэння" +#. About item +#: ../src/applet.c:2133 +msgid "_About" +msgstr "_Аб праграме" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "Вы злучаны з правадной сеткай." +#: ../src/applet.c:2310 +msgid "Disconnected" +msgstr "Адлучана" -#: ../src/applet-device-wired.c:300 -#, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Падрыхтоўка праваднога сеткавага злучэння \"%s\"..." +#: ../src/applet.c:2311 +msgid "The network connection has been disconnected." +msgstr "Сеткавае злучэнне разарвана." -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2494 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "Настройка праваднога сеткавага злучэння \"%s\"..." +msgid "Preparing network connection '%s'..." +msgstr "Падрыхтоўка сеткавага злучэння \"%s\"..." -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2497 #, c-format -msgid "User authentication required for wired network connection '%s'..." +msgid "User authentication required for network connection '%s'..." msgstr "" -"Для праваднога сеткавага злучэння \"%s\" патрабуецца ідэнтыфікацыя " -"карыстальніка..." +"Для сеткавага злучэння \"%s\" патрабуецца ідэнтыфікацыя карыстальніка..." -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2500 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "Запыт сеткавага адрасу для праваднога злучэння \"%s\"..." +msgid "Requesting a network address for '%s'..." +msgstr "Запыт сеткавага адрасу для \"%s\"..." -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2503 #, c-format -msgid "Wired network connection '%s' active" -msgstr "Правадное сеткавае злучэнне \"%s\" уключана" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "DSL-ідэнтыфікацыя" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "_Злучыцца з бесправадной схаванай сеткай..." - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "Стварыць _новую бесправадную сетку..." +msgid "Network connection '%s' active" +msgstr "Сеткавае злучэнне \"%s\" уключана" -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(няма)" +#: ../src/applet.c:2586 +#, c-format +msgid "Starting VPN connection '%s'..." +msgstr "Запуск VPN-злучэння \"%s\"..." -#: ../src/applet-device-wifi.c:803 +#: ../src/applet.c:2589 #, c-format -msgid "Wireless Networks (%s)" -msgstr "Бесправадныя сеткі (%s)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "Для VPN-злучэння \"%s\" патрабуецца ідэнтыфікацыя карыстальніка..." -#: ../src/applet-device-wifi.c:805 +#: ../src/applet.c:2592 #, c-format -msgid "Wireless Network (%s)" -msgstr "Бесправадная сетка (%s)" +msgid "Requesting a VPN address for '%s'..." +msgstr "Запыт сеткавага адрасу для VPN-злучэння \"%s\"..." -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Бесправадная сетка" -msgstr[1] "Бесправадныя сеткі" -msgstr[2] "Бесправадныя сеткі" +#: ../src/applet.c:2595 +#, c-format +msgid "VPN connection '%s' active" +msgstr "VPN-злучэнне \"%s\" уключана" -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "прыстасаванне бесправаднога злучэння выключана" +#: ../src/applet.c:2636 +msgid "No network connection" +msgstr "Няма сеткавага злучэння" -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "" -"прыстасаванне бесправаднога злучэння выключана з дапамогай апаратнага " -"пераключальніка" +#: ../src/applet.c:3336 +msgid "NetworkManager Applet" +msgstr "Аплет NetworkManager" -#: ../src/applet-device-wifi.c:902 -msgid "More networks" -msgstr "Больш сетак" +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Даступна" -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" -msgstr "Даступныя бесправадныя сеткі" - -#: ../src/applet-device-wifi.c:1082 -msgid "Use the network menu to connect to a wireless network" -msgstr "Выкарыстайце меню са спісам сетак, каб злучыцца з бесправадной сеткай" +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "Вы злучаны з \"%s\"." -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:901 -msgid "Don't show this message again" -msgstr "Больш не паказваць гэта паведамленне" +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "Злучэнне ўсталявана" -#: ../src/applet-device-wifi.c:1277 -#, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Вы злучаны з бесправадной сеткай \"%s\"." +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Вы злучаны з шырокапалоснай мабільнай сеткай." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Падрыхтоўка бесправаднога сеткавага злучэння \"%s\"..." +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Падрыхтоўка шырокапалоснага мабільнага злучэння \"%s\"..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Настройка бесправаднога сеткавага злучэння \"%s\"..." +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Настройка шырокапалоснага мабільнага злучэння \"%s\"..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format -msgid "User authentication required for wireless network '%s'..." +msgid "User authentication required for mobile broadband connection '%s'..." msgstr "" -"Для бесправаднога сеткавага злучэння \"%s\" патрабуецца ідэнтыфікацыя " +"Для шырокапалоснага мабільнага злучэння \"%s\" патрабуецца ідэнтыфікацыя " "карыстальніка..." -#: ../src/applet-device-wifi.c:1317 -#, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Запыт сеткавага адрасу для бесправаднога злучэння \"%s\"..." - -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "Бесправадное сеткавае злучэнне \"%s\" уключана: %s (%d%%)" +msgid "Mobile broadband connection '%s' active" +msgstr "Шырокапалоснае мабільнае злучэнне \"%s\" уключана" -#: ../src/applet-device-wifi.c:1343 -#, c-format -msgid "Wireless network connection '%s' active" -msgstr "Бесправадное сеткавае злучэнне \"%s\" уключана" +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:699 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wimax.c:231 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 #, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "Шырокапалоснае мабільнае WiMAX-злучэнне (%s)" - -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr "Шырокапалоснае мабільнае WiMAX-злучэнне" +msgid "Mobile Broadband (%s)" +msgstr "Шырокапалоснае мабільнае злучэнне (%s)" -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "WiMAX-прыстасаванне выключана" +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:85 +#: ../src/connection-editor/page-mobile.c:379 +msgid "Mobile Broadband" +msgstr "Шырокапалоснае мабільнае злучэнне" -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX-прыстасаванне выключана з дапамогай апаратнага пераключальніка" +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Новае шырокапалоснае мабільнае злучэнне (CDMA)..." -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "Вы злучаны з WiMAX-сеткай." +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Вы злучаны з CDMA-сеткай." -#: ../src/applet-dialogs.c:57 -msgid "Error displaying connection information:" -msgstr "Памылка паказу інфармацыі аб злучэнні:" +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "Шырокапалоснае мабільнае злучэнне \"%s\" уключана: (%d%%%s%s)" -#: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "роўмінг" -#: ../src/applet-dialogs.c:111 -msgid "Dynamic WEP" -msgstr "Дынамічны WEP" +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "CDMA-сетка." -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "Вы зарэгістраваны ў дамашняй сетцы." -#: ../src/applet-dialogs.c:244 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "Вы зарэгістраваны ў роўмінг-сетцы." -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "Няма" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "Аўта Ethernet" -#: ../src/applet-dialogs.c:352 ../src/applet-dialogs.c:490 +#: ../src/applet-device-ethernet.c:205 #, c-format -msgid "%u Mb/s" -msgstr "%u Мбіт/с" +msgid "Ethernet Networks (%s)" +msgstr "Сеткі Ethernet (%s)" -#: ../src/applet-dialogs.c:354 ../src/applet-dialogs.c:492 -msgctxt "Speed" -msgid "Unknown" -msgstr "Невядома" - -#: ../src/applet-dialogs.c:367 +#: ../src/applet-device-ethernet.c:207 #, c-format -msgid "%d dB" -msgstr "%d дБ" +msgid "Ethernet Network (%s)" +msgstr "Сетка Ethernet (%s)" -#: ../src/applet-dialogs.c:369 -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "невядома" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "Сеткі Ethernet" -#: ../src/applet-dialogs.c:381 -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "невядома" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "Сетка Ethernet" -#: ../src/applet-dialogs.c:416 +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "Вы злучаны з сеткай Ethernet." + +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "Ethernet (%s)" -msgstr "Ethernet (%s)" +msgid "Preparing ethernet network connection '%s'..." +msgstr "Падрыхтоўка сеткавага злучэння Ethernet \"%s\"..." -#: ../src/applet-dialogs.c:419 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "802.11 WiFi (%s)" -msgstr "802.11 WiFi (%s)" +msgid "Configuring ethernet network connection '%s'..." +msgstr "Настройка сеткавага злучэння Ethernet \"%s\"..." -#: ../src/applet-dialogs.c:426 +#: ../src/applet-device-ethernet.c:306 #, c-format -msgid "GSM (%s)" -msgstr "GSM (%s)" +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "" +"Для сеткавага злучэння Ethernet \"%s\" патрабуецца ідэнтыфікацыя " +"карыстальніка..." -#: ../src/applet-dialogs.c:428 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "CDMA (%s)" -msgstr "CDMA (%s)" +msgid "Requesting an ethernet network address for '%s'..." +msgstr "Запыт сеткавага адрасу для злучэння Ethernet \"%s\"..." -#: ../src/applet-dialogs.c:432 +#: ../src/applet-device-ethernet.c:313 #, c-format -msgid "WiMAX (%s)" -msgstr "WiMAX (%s)" +msgid "Ethernet network connection '%s' active" +msgstr "Сеткавае злучэнне Ethernet \"%s\" уключана" -#. --- General --- -#: ../src/applet-dialogs.c:438 ../src/applet-dialogs.c:797 -msgid "General" -msgstr "Агульнае" +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "DSL-ідэнтыфікацыя" -#: ../src/applet-dialogs.c:442 -msgid "Interface:" -msgstr "Інтэрфейс:" +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:702 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" -#: ../src/applet-dialogs.c:458 -msgid "Hardware Address:" -msgstr "Апаратны адрас:" +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Новае шырокапалоснае мабільнае злучэнне (GSM)..." -#. Driver -#: ../src/applet-dialogs.c:466 -msgid "Driver:" -msgstr "Драйвер:" +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "Вы злучаны з GSM-сеткай." -#: ../src/applet-dialogs.c:495 -msgid "Speed:" -msgstr "Хуткасць:" +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "Патрэбны PIN-код" -#: ../src/applet-dialogs.c:505 -msgid "Security:" -msgstr "Бяспека:" +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "" +"Для выкарыстання прыстасавання шырокапалоснага мабільнага інтэрнэту патрэбны " +"PIN-код" -#: ../src/applet-dialogs.c:518 -msgid "CINR:" -msgstr "CINR:" +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "PIN-код для SIM-карты \"%s\" у \"%s\"" -#: ../src/applet-dialogs.c:531 -msgid "BSID:" -msgstr "BSID:" +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "Хібны PIN-код. Звярніцеся да правайдара паслуг." -#. --- IPv4 --- -#: ../src/applet-dialogs.c:548 -msgid "IPv4" -msgstr "IPv4" +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "Хібны PUK-код. Звярніцеся да правайдара паслуг." -#. Address -#: ../src/applet-dialogs.c:559 ../src/applet-dialogs.c:666 -msgid "IP Address:" -msgstr "IP-адрас:" +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "Пасылка коду разблакіравання..." -#: ../src/applet-dialogs.c:561 ../src/applet-dialogs.c:577 -msgctxt "Address" -msgid "Unknown" -msgstr "Невядома" +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "Патрэбны код разблакіравання PIN-коду" -#: ../src/applet-dialogs.c:575 -msgid "Broadcast Address:" -msgstr "Адрас шырокай трансляцыі:" +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "Патрэбны код разблакіравання PIN-коду" -#. Prefix -#: ../src/applet-dialogs.c:584 -msgid "Subnet Mask:" -msgstr "Маска падсеткі:" +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "" +"Для выкарыстання прыстасавання шырокапалоснага мабільнага інтэрнэту \"%s\" " +"патрэбны код разблакіравання PIN-коду." -#: ../src/applet-dialogs.c:586 -msgctxt "Subnet Mask" -msgid "Unknown" -msgstr "Невядома" +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "PIN-код:" -#: ../src/applet-dialogs.c:594 ../src/applet-dialogs.c:681 -msgid "Default Route:" -msgstr "Прадвызначаны маршрут:" +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "Паказаць PIN-код" -#: ../src/applet-dialogs.c:606 -msgid "Primary DNS:" -msgstr "Першы DNS:" +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "Патрэбны код разблакіравання PUK-коду" -#: ../src/applet-dialogs.c:615 -msgid "Secondary DNS:" -msgstr "Другі DNS:" +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "Патрэбны код разблакіравання PUK-коду" -#: ../src/applet-dialogs.c:625 -msgid "Ternary DNS:" -msgstr "Трэці DNS:" +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "" +"Для выкарыстання прыстасавання шырокапалоснага мабільнага інтэрнэту \"%s\" " +"патрэбны код разблакіравання PUK-коду." -#. --- IPv6 --- -#: ../src/applet-dialogs.c:640 -msgid "IPv6" -msgstr "IPv6" +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "PUK-код:" -#: ../src/applet-dialogs.c:649 -msgid "Ignored" -msgstr "Ігнаравана" +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "Новы PIN-код:" -#: ../src/applet-dialogs.c:802 -msgid "VPN Type:" -msgstr "Тып VPN:" +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "Паўторна ўпішыце новы PIN-код:" -#: ../src/applet-dialogs.c:809 -msgid "VPN Gateway:" -msgstr "Сеткавая брама VPN:" +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "Паказаць PIN- і PUK-коды" -#: ../src/applet-dialogs.c:815 -msgid "VPN Username:" -msgstr "Карыстальнік VPN:" +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "GSM-сетка." -#: ../src/applet-dialogs.c:821 -msgid "VPN Banner:" -msgstr "Банер VPN:" +#: ../src/applet-device-wifi.c:97 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "_Злучыцца са схаванай сеткай Wi-Fi..." -#: ../src/applet-dialogs.c:827 -msgid "Base Connection:" -msgstr "Асноўнае злучэнне:" +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "Стварыць _новую сетку Wi-Fi..." -#: ../src/applet-dialogs.c:829 -msgid "Unknown" -msgstr "Невядома" +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(няма)" -#. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:892 -msgid "No valid active connections found!" -msgstr "Дзейных злучэнняў не знойдзена!" +#: ../src/applet-device-wifi.c:790 +#, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "Сеткі Wi-Fi (%s)" -#: ../src/applet-dialogs.c:945 -msgid "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"and many other community contributors and translators" -msgstr "" -"Аўтарскія правы © 2004-2011 Red Hat, Inc.\n" -"Аўтарскія правы © 2005-2008 Novell, Inc.\n" -"ды іншыя ўдзельнікі праекта" +#: ../src/applet-device-wifi.c:792 +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Сетка Wi-Fi (%s)" -#: ../src/applet-dialogs.c:948 -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "" -"Аплет абшару апавяшчэння для кіравання сеткавымі прыстасаваннямі і " -"злучэннямі." +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Сетка Wi-Fi" +msgstr[1] "Сеткі Wi-Fi" +msgstr[2] "Сеткі Wi-Fi" -#: ../src/applet-dialogs.c:950 -msgid "NetworkManager Website" -msgstr "Сеціўная пляцоўка NetworkManager" +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "Wi-Fi выключаны" -#: ../src/applet-dialogs.c:965 -msgid "Missing resources" -msgstr "Адсутныя рэсурсныя файлы" +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Wi-Fi выключаны з дапамогай апаратнага пераключальніка" -#: ../src/applet-dialogs.c:990 -msgid "Mobile broadband network password" -msgstr "Пароль да шырокапалоснай мабільнай сеткі" +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "Больш сетак" -#: ../src/applet-dialogs.c:999 -#, c-format -msgid "A password is required to connect to '%s'." -msgstr "Для злучэння з сеткай \"%s\" патрэбны пароль." +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "Даступныя сеткі Wi-Fi" -#: ../src/applet-dialogs.c:1018 -msgid "Password:" -msgstr "Пароль:" +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Выкарыстайце меню са спісам сетак, каб злучыцца з сеткай Wi-Fi" -#: ../src/applet.c:990 +#: ../src/applet-device-wifi.c:1263 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"VPN-злучэнне \"%s\" не працуе з прычыны яго перапынення." +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Вы злучаны з сеткай Wi-Fi \"%s\"." -#: ../src/applet.c:993 +#: ../src/applet-device-wifi.c:1294 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"VPN-злучэнне \"%s\" не працуе з прычыны нечаканага спынення VPN-службы." +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Падрыхтоўка сеткавага злучэння Wi-Fi \"%s\"..." -#: ../src/applet.c:996 +#: ../src/applet-device-wifi.c:1297 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"VPN-злучэнне \"%s\" не працуе, бо VPN-служба вярнула хібную канфігурацыю " -"настроек." +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Настройка сеткавага злучэння Wi-Fi \"%s\"..." -#: ../src/applet.c:999 +#: ../src/applet-device-wifi.c:1300 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." +msgid "User authentication required for Wi-Fi network '%s'..." msgstr "" -"\n" -"VPN-злучэнне \"%s\" не працуе, бо дасягнута максімальная колькасць спроб " -"злучэння." +"Для сеткавага злучэння Wi-Fi \"%s\" патрабуецца ідэнтыфікацыя " +"карыстальніка..." -#: ../src/applet.c:1002 +#: ../src/applet-device-wifi.c:1303 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"VPN-злучэнне \"%s\" не працуе, бо VPN-служба не запусцілася да часу." +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Запыт сеткавага адрасу для сеткі Wi-Fi \"%s\"..." -#: ../src/applet.c:1005 +#: ../src/applet-device-wifi.c:1324 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"VPN-злучэнне \"%s\" не працуе з прычыны няўдалася запуску VPN-службы." +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Сеткавае злучэнне Wi-Fi \"%s\" уключана: %s (%d%%)" -#: ../src/applet.c:1008 +#: ../src/applet-device-wifi.c:1329 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"VPN-злучэнне \"%s\" не працуе з прычыны адсутнасці прыдатных сакрэтных " -"ключоў." +msgid "Wi-Fi network connection '%s' active" +msgstr "Сеткавае злучэнне Wi-Fi \"%s\" уключана" -#: ../src/applet.c:1011 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"VPN-злучэнне \"%s\" не працуе праз хібныя сакрэтныя ключы." +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Не ўдалося ўключыць злучэнне" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Не ўдалося дадаць новае злучэнне" -#: ../src/applet.c:1018 +#: ../src/applet-device-wimax.c:231 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"VPN-злучэнне \"%s\" не працуе." +msgid "WiMAX Mobile Broadband (%s)" +msgstr "Шырокапалоснае мабільнае WiMAX-злучэнне (%s)" + +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "Шырокапалоснае мабільнае WiMAX-злучэнне" + +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "WiMAX-прыстасаванне выключана" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX-прыстасаванне выключана з дапамогай апаратнага пераключальніка" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "Вы злучаны з WiMAX-сеткай." + +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "Памылка паказу інфармацыі аб злучэнні:" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" + +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "Дынамічны WEP" -#: ../src/applet.c:1036 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" + +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "Няма" + +#: ../src/applet-dialogs.c:277 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"VPN-злучэнне \"%s\" разарвана з прычыны яго перапынення." +msgid "%s (default)" +msgstr "%s (прадвызначана)" -#: ../src/applet.c:1039 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"VPN-злучэнне \"%s\" разарвана, бо VPN-служба была спынена." +msgid "%u Mb/s" +msgstr "%u Мбіт/с" + +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "Невядома" -#: ../src/applet.c:1045 +#: ../src/applet-dialogs.c:361 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"VPN-злучэнне \"%s\" разарвана." +msgid "%d dB" +msgstr "%d дБ" -#: ../src/applet.c:1079 -msgid "VPN Login Message" -msgstr "Паведамленне VPN-уваходу" +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "невядома" -#: ../src/applet.c:1085 ../src/applet.c:1093 ../src/applet.c:1143 -msgid "VPN Connection Failed" -msgstr "Няўдалае VPN-злучэнне" +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "невядома" -#: ../src/applet.c:1150 +#: ../src/applet-dialogs.c:410 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"VPN-злучэнне \"%s\" не працуе, бо не ўдалося запусціць VPN-службу.\n" -"\n" -"%s" +msgid "Ethernet (%s)" +msgstr "Ethernet (%s)" -#: ../src/applet.c:1153 +#: ../src/applet-dialogs.c:413 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Не ўдалося запусціць VPN-злучэнне \"%s\".\n" -"\n" -"%s" - -#: ../src/applet.c:1473 -msgid "device not ready (firmware missing)" -msgstr "прыстасаванне не гатова (няма апаратнага апраграмавання)" +msgid "802.11 WiFi (%s)" +msgstr "802.11 WiFi (%s)" -#: ../src/applet.c:1475 -msgid "device not ready" -msgstr "прыстасаванне не гатова" +#: ../src/applet-dialogs.c:420 +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" -#: ../src/applet.c:1501 -msgid "Disconnect" -msgstr "Адлучыцца" +#: ../src/applet-dialogs.c:422 +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" -#: ../src/applet.c:1515 -msgid "device not managed" -msgstr "прыстасаваннем нельга кіраваць" +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" -#: ../src/applet.c:1559 -msgid "No network devices available" -msgstr "Няма сеткавых прыстасаванняў" +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "Агульнае" -#: ../src/applet.c:1647 -msgid "_VPN Connections" -msgstr "VPN-з_лучэнні" +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "Інтэрфейс:" -#: ../src/applet.c:1704 -msgid "_Configure VPN..." -msgstr "_Настройка VPN..." +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "Апаратны адрас:" -#: ../src/applet.c:1708 -msgid "_Disconnect VPN" -msgstr "_Адлучыцца ад VPN" +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "Драйвер:" -#: ../src/applet.c:1806 -msgid "NetworkManager is not running..." -msgstr "NetworkManager не запушчаны..." +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "Хуткасць:" -#: ../src/applet.c:1811 ../src/applet.c:2604 -msgid "Networking disabled" -msgstr "Сеткавыя паслугі выключаны" +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "Бяспека:" -#. 'Enable Networking' item -#: ../src/applet.c:2032 -msgid "Enable _Networking" -msgstr "_Уключыць сеткавыя паслугі" +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "CINR:" -#. 'Enable Wireless' item -#: ../src/applet.c:2041 -msgid "Enable _Wireless" -msgstr "Уключыць _бесправадную сувязь" +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "BSID:" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2050 -msgid "Enable _Mobile Broadband" -msgstr "Уключыць _шырокапалосную мабільную сувязь" +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2059 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Уключыць шырокапалосную _мабільную WiMAX-сувязь" +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 +msgid "IP Address:" +msgstr "IP-адрас:" -#. Toggle notifications item -#: ../src/applet.c:2070 -msgid "Enable N_otifications" -msgstr "Уключыць _апавяшчэнні" +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "Невядома" -#. 'Connection Information' item -#: ../src/applet.c:2081 -msgid "Connection _Information" -msgstr "Інфармацыя аб _злучэнні" +#: ../src/applet-dialogs.c:569 +msgid "Broadcast Address:" +msgstr "Адрас шырокай трансляцыі:" -#. 'Edit Connections...' item -#: ../src/applet.c:2091 -msgid "Edit Connections..." -msgstr "Настройка злучэнняў..." +#. Prefix +#: ../src/applet-dialogs.c:578 +msgid "Subnet Mask:" +msgstr "Маска падсеткі:" -#. Help item -#: ../src/applet.c:2105 -msgid "_Help" -msgstr "_Дапамога" +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Невядома" -#. About item -#: ../src/applet.c:2114 -msgid "_About" -msgstr "_Аб праграме" +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 +msgid "Default Route:" +msgstr "Прадвызначаны маршрут:" -#: ../src/applet.c:2291 -msgid "Disconnected" -msgstr "Адлучана" +#: ../src/applet-dialogs.c:600 +msgid "Primary DNS:" +msgstr "Першы DNS:" -#: ../src/applet.c:2292 -msgid "The network connection has been disconnected." -msgstr "Сеткавае злучэнне разарвана." +#: ../src/applet-dialogs.c:609 +msgid "Secondary DNS:" +msgstr "Другі DNS:" -#: ../src/applet.c:2473 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Падрыхтоўка сеткавага злучэння \"%s\"..." +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "Трэці DNS:" -#: ../src/applet.c:2476 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "" -"Для сеткавага злучэння \"%s\" патрабуецца ідэнтыфікацыя карыстальніка..." +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" -#: ../src/applet.c:2482 -#, c-format -msgid "Network connection '%s' active" -msgstr "Сеткавае злучэнне \"%s\" уключана" +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "Ігнаравана" -#: ../src/applet.c:2560 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Запуск VPN-злучэння \"%s\"..." +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "Тып VPN:" -#: ../src/applet.c:2563 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Для VPN-злучэння \"%s\" патрабуецца ідэнтыфікацыя карыстальніка..." +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "Сеткавая брама VPN:" -#: ../src/applet.c:2566 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Запыт сеткавага адрасу для VPN-злучэння \"%s\"..." +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "Карыстальнік VPN:" -#: ../src/applet.c:2569 -#, c-format -msgid "VPN connection '%s' active" -msgstr "VPN-злучэнне \"%s\" уключана" +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "Банер VPN:" -#: ../src/applet.c:2608 -msgid "No network connection" -msgstr "Няма сеткавага злучэння" +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Асноўнае злучэнне:" -#: ../src/applet.c:3258 -msgid "NetworkManager Applet" -msgstr "Аплет NetworkManager" +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "Невядома" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Аўтаматычна разблакіраваць гэта прыстасаванне" +#. Shouldn't really happen but ... +#: ../src/applet-dialogs.c:886 +msgid "No valid active connections found!" +msgstr "Дзейных злучэнняў не знойдзена!" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "_Разблакіраваць" +#: ../src/applet-dialogs.c:939 +msgid "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" +msgstr "" +"Аўтарскія правы © 2004-2011 Red Hat, Inc.\n" +"Аўтарскія правы © 2005-2008 Novell, Inc.\n" +"ды іншыя ўдзельнікі праекта" -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "Інфармацыя аб злучэнні" +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"Аплет абшару апавяшчэння для кіравання сеткавымі прыстасаваннямі і " +"злучэннямі." -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "Дзейныя сеткавыя злучэнні" +#: ../src/applet-dialogs.c:944 +msgid "NetworkManager Website" +msgstr "Сеціўная пляцоўка NetworkManager" -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Ідэнтыфікацыя праз правадную сетку 802.1X" +#: ../src/applet-dialogs.c:959 +msgid "Missing resources" +msgstr "Адсутныя рэсурсныя файлы" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "_Назва сеткі:" +#: ../src/applet-dialogs.c:984 +msgid "Mobile broadband network password" +msgstr "Пароль да шырокапалоснай мабільнай сеткі" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "аўтаматычна" +#: ../src/applet-dialogs.c:993 +#, c-format +msgid "A password is required to connect to '%s'." +msgstr "Для злучэння з сеткай \"%s\" патрэбны пароль." -#: ../src/connection-editor/ce-page.c:310 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "" -"З прычыны невядомай памылкі не ўдалося абнавіць сакрэтныя ключы злучэння." +#: ../src/applet-dialogs.c:1012 +msgid "Password:" +msgstr "Пароль:" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 @@ -1054,6 +1107,45 @@ "connection." msgstr "Калі ўключана, гэтае злучэнне ніколі не будзе прадвызначаным." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "Выберыце тып злучэння" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"Выберыце тып новага злучэння.\n" +"\n" +"Калі вы ствараеце VPN-злучэнне, а патрэбнага тыпу VPN няма ў спісе, гэта " +"значыць, што ў сістэме не ўсталяваны адпаведны VPN-плугін." + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Стварыць..." + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "аўтаматычна" + +#: ../src/connection-editor/ce-page.c:288 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "" +"З прычыны невядомай памылкі не ўдалося абнавіць сакрэтныя ключы злучэння." + #: ../src/connection-editor/ce-page-dsl.ui.h:1 #: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 @@ -1084,15 +1176,112 @@ msgid "_Password:" msgstr "П_ароль:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 #: ../src/connection-editor/ce-page-ip4.ui.h:1 #: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 #: ../src/connection-editor/page-ip6.c:142 #: ../src/wireless-security/eap-method-peap.ui.h:2 msgid "Automatic" msgstr "Аўтаматычна" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Вітая пара (TP)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Мбіт/с" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Мбіт/с" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Гбіт/с" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Гбіт/с" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Порт:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Хуткасць:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "_Поўнадуплекснае злучэнне" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "_Аўтаматычнае дамаўленне" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "MAC-адрас _прыстасавання:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "_Кланіраваны MAC-адрас:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"Упісаны MAC-адрас будзе ўжыты як апаратны адрас сеткавага прыстасавання для " +"гэтага злучэння. Гэтую магчымасць яшчэ называюць кланіраваннем ці спуфінгам " +"MAC-адрасу. Прыклад: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "байтаў" + +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "_Транспартны рэжым:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Дэйтаграмы" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "Злучэнне" + #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 msgid "Automatic with manual DNS settings" @@ -1152,11 +1341,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "_Дамены пошуку:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "DNS-_серверы:" @@ -1276,177 +1469,98 @@ msgid "_Use point-to-point encryption (MPPE)" msgstr "_Шыфраваць PPP-злучэнне (MPPE)" -#: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "_Require 128-bit encryption" -msgstr "_Патрабаваць 128-бітнага шыфравання" - -#: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Use _stateful MPPE" -msgstr "_Ужыць stateful MPPE" - -#: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Allow _BSD data compression" -msgstr "_Дазволіць BSD-сцісканне даных" - -#: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Allow _Deflate data compression" -msgstr "Даз_воліць Deflate-сцісканне даных" - -#: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use TCP _header compression" -msgstr "Сціскаць TCP-_загалоўкі" - -#: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "Echo" -msgstr "Рэха" - -#: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "Send PPP _echo packets" -msgstr "Пасылаць р_эхавыя PPP-пакеты" - -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "Вітая пара (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "Media Independent Interface (MII)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 Мбіт/с" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 Мбіт/с" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Гбіт/с" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 Гбіт/с" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "_Порт:" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "_Хуткасць:" +#: ../src/connection-editor/ce-page-ppp.ui.h:6 +msgid "_Require 128-bit encryption" +msgstr "_Патрабаваць 128-бітнага шыфравання" -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "_Поўнадуплекснае злучэнне" +#: ../src/connection-editor/ce-page-ppp.ui.h:7 +msgid "Use _stateful MPPE" +msgstr "_Ужыць stateful MPPE" -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "_Аўтаматычнае дамаўленне" +#: ../src/connection-editor/ce-page-ppp.ui.h:8 +msgid "Allow _BSD data compression" +msgstr "_Дазволіць BSD-сцісканне даных" -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "MAC-адрас _прыстасавання:" +#: ../src/connection-editor/ce-page-ppp.ui.h:9 +msgid "Allow _Deflate data compression" +msgstr "Даз_воліць Deflate-сцісканне даных" -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "C_loned MAC address:" -msgstr "_Кланіраваны MAC-адрас:" +#: ../src/connection-editor/ce-page-ppp.ui.h:10 +msgid "Use TCP _header compression" +msgstr "Сціскаць TCP-_загалоўкі" -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"Упісаны MAC-адрас будзе ўжыты як апаратны адрас сеткавага прыстасавання для " -"гэтага злучэння. Гэтую магчымасць яшчэ называюць кланіраваннем ці спуфінгам " -"MAC-адрасу. Прыклад: 00:11:22:33:44:55" +#: ../src/connection-editor/ce-page-ppp.ui.h:11 +msgid "Echo" +msgstr "Рэха" -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "_MTU:" -msgstr "_MTU:" +#: ../src/connection-editor/ce-page-ppp.ui.h:12 +msgid "Send PPP _echo packets" +msgstr "Пасылаць р_эхавыя PPP-пакеты" -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "байтаў" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "_Бяспека:" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 ГГц)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 ГГц)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Інфраструктура" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "Ad-hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "мВт" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "_Магутнасць перадачы:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Мбіт/с" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "_Частата:" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"Гэтай опцыяй можна прывязаць злучэнне да пэўнага пункту бесправаднога " -"доступу, вызначанага яго BSSID-ідэнтыфікатарам. Прыклад: 00:11:22:33:44:55" +"Гэтай опцыяй можна прывязаць злучэнне да пэўнага пункту " +"доступу Wi-Fi, вызначанага яго BSSID-ідэнтыфікатарам. Прыклад: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "_Канал:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "_Паласа:" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "_Рэжым:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "SS_ID:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "_Бяспека:" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Дазволеныя метады ідэнтыфікацыі" @@ -1500,77 +1614,343 @@ "ідэнтыфікацыі. Калі ж узнікаюць памылкі злучэння, паспрабуйце выключыць " "некаторыя з метадаў." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Адрас" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Выберыце тып VPN-злучэння" +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Сеткавая маска" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Сеткавая брама" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Метрыка" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Прэфікс" + +#: ../src/connection-editor/new-connection.c:75 +#: ../src/connection-editor/page-ethernet.c:273 +msgid "Ethernet" +msgstr "Ethernet" + +#: ../src/connection-editor/new-connection.c:80 +#: ../src/connection-editor/page-wifi.c:462 +msgid "Wi-Fi" +msgstr "Wi-Fi" + +#: ../src/connection-editor/new-connection.c:90 +#: ../src/connection-editor/page-wimax.c:157 ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:95 +#: ../src/connection-editor/page-dsl.c:139 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:100 +#: ../src/connection-editor/page-infiniband.c:189 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:112 +#: ../src/connection-editor/page-vpn.c:111 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:245 +msgid "Import a saved VPN configuration..." +msgstr "Імпартаваць захаваную VPN-канфігурацыю..." + +#: ../src/connection-editor/nm-connection-editor.c:106 +#, c-format +msgid "Editing %s" +msgstr "Змяненне %s" + +#: ../src/connection-editor/nm-connection-editor.c:110 +msgid "Editing un-named connection" +msgstr "Змяненне безназоўнага злучэння" + +#: ../src/connection-editor/nm-connection-editor.c:297 msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." +"The connection editor could not find some required resources (the .ui file " +"was not found)." msgstr "" -"Вызначыце тып новага VPN-злучэння. Калі патрэбнага тыпу няма ў спісе, гэта " -"значыць, што ў сістэме не ўсталяваны адпаведны VPN-плугін." +"Рэдактар злучэнняў не здолеў адшукаць некаторыя патрэбныя рэсурсы (.ui-файл " +"не знойдзены)." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "Стварыць..." +#: ../src/connection-editor/nm-connection-editor.c:401 +msgid "Error creating connection editor dialog." +msgstr "Памылка стварэння дыялогавага акенца для рэдактара злучэнняў." -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Адрас" +#: ../src/connection-editor/nm-connection-editor.c:413 +msgid "_Save" +msgstr "_Захаваць" + +#: ../src/connection-editor/nm-connection-editor.c:414 +msgid "Save any changes made to this connection." +msgstr "Захаваць усе змены, зробленыя для гэтага злучэння." + +#: ../src/connection-editor/nm-connection-editor.c:415 +msgid "_Save..." +msgstr "_Захаваць..." + +#: ../src/connection-editor/nm-connection-editor.c:416 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "" +"Ідэнтыфікуйце сябе, каб захаваць гэта злучэнне для ўсіх карыстальнікаў " +"камп'ютара." + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "_Назва злучэння:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "_Аўтаматычна злучацца" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "Даступна ўсім карыстальнікам" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "_Экспартаваць..." + +#: ../src/connection-editor/nm-connection-list.c:169 +msgid "never" +msgstr "ніколі" + +#: ../src/connection-editor/nm-connection-list.c:180 +#: ../src/connection-editor/nm-connection-list.c:191 +msgid "now" +msgstr "зараз" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d хвіліна таму" +msgstr[1] "%d хвіліны таму" +msgstr[2] "%d хвілін таму" + +#: ../src/connection-editor/nm-connection-list.c:202 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d гадзіна таму" +msgstr[1] "%d гадзіны таму" +msgstr[2] "%d гадзін таму" + +#: ../src/connection-editor/nm-connection-list.c:214 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d дзень таму" +msgstr[1] "%d дні таму" +msgstr[2] "%d дзён таму" + +#: ../src/connection-editor/nm-connection-list.c:220 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d месяц таму" +msgstr[1] "%d месяцы таму" +msgstr[2] "%d месяцаў таму" + +#: ../src/connection-editor/nm-connection-list.c:224 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "%d год таму" +msgstr[1] "%d гады таму" +msgstr[2] "%d гадоў таму" + +#: ../src/connection-editor/nm-connection-list.c:443 +msgid "Connection add failed" +msgstr "Не ўдалося дадаць злучэнне" + +#: ../src/connection-editor/nm-connection-list.c:472 +msgid "Error saving connection" +msgstr "Памылка захавання злучэння" + +#: ../src/connection-editor/nm-connection-list.c:473 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Уласцівасць \"%s\" / \"%s\" хібная: %d" + +#: ../src/connection-editor/nm-connection-list.c:480 +#: ../src/connection-editor/nm-connection-list.c:598 +msgid "An unknown error occurred." +msgstr "Узнікла невядомая памылка." + +#: ../src/connection-editor/nm-connection-list.c:485 +#: ../src/connection-editor/nm-connection-list.c:638 +msgid "Error initializing editor" +msgstr "Памылка ініцыяцыі рэдактара" + +#: ../src/connection-editor/nm-connection-list.c:503 +#: ../src/connection-editor/nm-connection-list.c:655 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"Не ўдалося ініцыяваць дыялогавае акенца рэдактара злучэнняў з прычыны " +"невядомай памылкі." + +#: ../src/connection-editor/nm-connection-list.c:512 +msgid "Could not create new connection" +msgstr "Не ўдалося стварыць новае злучэнне" + +#: ../src/connection-editor/nm-connection-list.c:524 +msgid "Could not edit new connection" +msgstr "Не ўдалося змяніць новае злучэнне" + +#: ../src/connection-editor/nm-connection-list.c:669 +msgid "Could not edit connection" +msgstr "Не ўдалося змяніць злучэнне" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "Connection delete failed" +msgstr "Не ўдалося выдаліць злучэнне" + +#: ../src/connection-editor/nm-connection-list.c:731 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Ці вы сапраўды хочаце выдаліць злучэнне \"%s\"?" + +#: ../src/connection-editor/nm-connection-list.c:972 +msgid "Name" +msgstr "Назва" + +#: ../src/connection-editor/nm-connection-list.c:985 +msgid "Last Used" +msgstr "Дата апошняга выкарыстання" + +#. Edit +#: ../src/connection-editor/nm-connection-list.c:1026 +msgid "_Edit" +msgstr "_Змяніць" + +#: ../src/connection-editor/nm-connection-list.c:1027 +msgid "Edit the selected connection" +msgstr "Змяніць вылучанае злучэнне" + +#: ../src/connection-editor/nm-connection-list.c:1028 +msgid "_Edit..." +msgstr "_Змяніць..." + +#: ../src/connection-editor/nm-connection-list.c:1029 +msgid "Authenticate to edit the selected connection" +msgstr "Ідэнтыфікуйце сябе, каб змагчы змяняць вылучанае злучэнне" + +#. Delete +#: ../src/connection-editor/nm-connection-list.c:1043 +msgid "_Delete" +msgstr "_Выдаліць" + +#: ../src/connection-editor/nm-connection-list.c:1044 +msgid "Delete the selected connection" +msgstr "Выдаліць вылучанае злучэнне" + +#: ../src/connection-editor/nm-connection-list.c:1045 +msgid "_Delete..." +msgstr "_Выдаліць..." + +#: ../src/connection-editor/nm-connection-list.c:1046 +msgid "Authenticate to delete the selected connection" +msgstr "Ідэнтыфікуйце сябе,, каб змагчы выдаліць вылучанае злучэнне" + +#: ../src/connection-editor/nm-connection-list.c:1285 +msgid "Error creating connection" +msgstr "Памылка стварэння злучэння" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Сеткавая маска" +#: ../src/connection-editor/nm-connection-list.c:1286 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Невядома, як ствараць злучэнні \"%s\"" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Сеткавая брама" +#: ../src/connection-editor/nm-connection-list.c:1341 +msgid "Error editing connection" +msgstr "Памылка змянення злучэння" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Метрыка" +#: ../src/connection-editor/nm-connection-list.c:1342 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Злучэнне з UUID \"%s\" не знойдзена" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Прэфікс" +#: ../src/connection-editor/page-8021x-security.c:119 +msgid "802.1x Security" +msgstr "802.1x-бяспека" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-8021x-security.c:121 +msgid "Could not load 802.1x Security user interface." +msgstr "" +"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек бяспекі " +"802.1x." + +#: ../src/connection-editor/page-8021x-security.c:139 +msgid "Use 802.1_X security for this connection" +msgstr "Ужыць _802.1X для бяспекі гэтага злучэння" #: ../src/connection-editor/page-dsl.c:141 msgid "Could not load DSL user interface." msgstr "" "Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:233 #, c-format msgid "DSL connection %d" msgstr "DSL злучэнне %d" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Гэтай опцыяй можна прывязаць злучэнне да пэўнага сеткавага прыстасавання, " +"вызначанага яго MAC-адрасам. Прыклад: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:275 +msgid "Could not load ethernet user interface." +msgstr "" +"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек " +"Ethernet." + +#: ../src/connection-editor/page-ethernet.c:451 +#, c-format +msgid "Ethernet connection %d" +msgstr "Злучэнне Ethernet %d" + +#: ../src/connection-editor/page-infiniband.c:192 +msgid "Could not load InfiniBand user interface." +msgstr "" +"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек InfiniBand." + +#: ../src/connection-editor/page-infiniband.c:317 +#, c-format +msgid "InfiniBand connection %d" +msgstr "Злучэнне InfiniBand %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1618,16 +1998,26 @@ msgid "Disabled" msgstr "Выключана" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Д_адатковыя DNS-серверы:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "_Дадатковыя домены пошуку:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Змяненне IPv4-маршрутаў для %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "IPv4-настройкі" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "" "Не ўдалося загрузіць інтэрфейс карыстальніка для змянення IPv4-настроек." @@ -1637,7 +2027,7 @@ msgstr "Аўтаматычна, толькі адрасы" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ігнараваць" @@ -1645,16 +2035,16 @@ msgid "Automatic, DHCP only" msgstr "Аўтаматычна, толькі DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Змяненне IPv6-маршрутаў для %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "IPv6-настройкі" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "" "Не ўдалося загрузіць інтэрфейс карыстальніка для змянення IPv6-настроек." @@ -1670,11 +2060,11 @@ msgstr "Гэты тып шырокапалоснага мабільнага злучэння не падтрымліваецца." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:642 msgid "Select Mobile Broadband Provider Type" msgstr "Выберыце тып правайдара шырокапалоснага мабільнага злучэння" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:677 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." @@ -1682,364 +2072,80 @@ "Вызначыце тэхналогію, якой карыстаецца ваш мабільны аператар. Калі вы не " "ўпэўнены, спытайце ў яго прадстаўнікоў." -#: ../src/connection-editor/page-mobile.c:679 -msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "" -"Мой аператар выкарыстоўвае GSM-_тэхналогію (напрыклад, GPRS, EDGE, UMTS, " -"HSDPA)" - -#: ../src/connection-editor/page-mobile.c:686 -msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "Мой аператар выкарыстоўвае CDMA-т_эхналогію (напрыклад, 1xRTT, EVDO)" - -#: ../src/connection-editor/page-ppp.c:134 -msgid "EAP" -msgstr "EAP" - -#: ../src/connection-editor/page-ppp.c:135 -#: ../src/wireless-security/eap-method-ttls.c:230 -msgid "PAP" -msgstr "PAP" - -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:280 -msgid "CHAP" -msgstr "CHAP" - -#: ../src/connection-editor/page-ppp.c:137 -#: ../src/wireless-security/eap-method-fast.c:277 -#: ../src/wireless-security/eap-method-peap.c:246 -#: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "нічога" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Змяненне метадаў PPP-ідэнтыфікацыі для %s" - -#: ../src/connection-editor/page-ppp.c:282 -msgid "PPP Settings" -msgstr "Настройкі PPP-злучэння" - -#: ../src/connection-editor/page-ppp.c:284 -msgid "Could not load PPP user interface." -msgstr "" -"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек PPP-" -"злучэння." - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "" -"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек VPN-" -"злучэння." - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "Не ўдалося адшукаць службу VPN-плугіна для \"%s\"." - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 -#, c-format -msgid "VPN connection %d" -msgstr "VPN злучэнне %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"Гэтай опцыяй можна прывязаць злучэнне да пэўнага сеткавага прыстасавання, " -"вызначанага яго MAC-адрасам. Прыклад: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 -msgid "Wired" -msgstr "Правадное" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "" -"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек " -"праваднога злучэння." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Правадное злучэнне %d" - -#: ../src/connection-editor/page-wired-security.c:116 -msgid "802.1x Security" -msgstr "802.1x-бяспека" - -#: ../src/connection-editor/page-wired-security.c:118 -msgid "Could not load Wired Security security user interface." -msgstr "" -"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення метадаў " -"забеспячэння бяспекі праваднога злучэння." - -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1_X security for this connection" -msgstr "Ужыць _802.1X для бяспекі гэтага злучэння" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "прадвызначана" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u МГц)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 -msgid "Wireless" -msgstr "Бесправадное" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "" -"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек WiFi-" -"злучэння." - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Бесправадное злучэнне %d" - -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "WEP, 40/128-бітны ключ (Hex ці ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 -msgid "WEP 128-bit Passphrase" -msgstr "WEP, 128-бітны пароль" - -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 -msgid "Dynamic WEP (802.1x)" -msgstr "Дынамічны WEP (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 -msgid "WPA & WPA2 Personal" -msgstr "WPA & WPA2 Personal" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA & WPA2 Enterprise" - -#: ../src/connection-editor/page-wireless-security.c:360 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек бяспекі " -"WiFi-злучэння. Адсутнічае настройка WiFi." - -#: ../src/connection-editor/page-wireless-security.c:370 -msgid "Wireless Security" -msgstr "Бяспека бесправаднога злучэння" - -#: ../src/connection-editor/page-wireless-security.c:372 -msgid "Could not load WiFi security user interface." -msgstr "" -"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек бяспекі " -"WiFi-злучэння." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Змяненне %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Змяненне безназоўнага злучэння" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"Рэдактар злучэнняў не здолеў адшукаць некаторыя патрэбныя рэсурсы (.ui-файл " -"не знойдзены)." - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "Памылка стварэння дыялогавага акенца для рэдактара злучэнняў." - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "_Захаваць" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "Захаваць усе змены, зробленыя для гэтага злучэння." - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "_Захаваць..." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "" -"Ідэнтыфікуйце сябе, каб захаваць гэта злучэнне для ўсіх карыстальнікаў " -"камп'ютара." - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "І_мпартаваць" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "_Экспартаваць" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "_Назва злучэння:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "_Аўтаматычна злучацца" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Даступна ўсім карыстальнікам" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "ніколі" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "зараз" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "%d хвіліна таму" -msgstr[1] "%d хвіліны таму" -msgstr[2] "%d хвілін таму" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "%d гадзіна таму" -msgstr[1] "%d гадзіны таму" -msgstr[2] "%d гадзін таму" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "%d дзень таму" -msgstr[1] "%d дні таму" -msgstr[2] "%d дзён таму" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "%d месяц таму" -msgstr[1] "%d месяцы таму" -msgstr[2] "%d месяцаў таму" +#: ../src/connection-editor/page-mobile.c:682 +msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" +msgstr "" +"Мой аператар выкарыстоўвае GSM-_тэхналогію (напрыклад, GPRS, EDGE, UMTS, " +"HSDPA)" -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "%d год таму" -msgstr[1] "%d гады таму" -msgstr[2] "%d гадоў таму" +#: ../src/connection-editor/page-mobile.c:689 +msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" +msgstr "Мой аператар выкарыстоўвае CDMA-т_эхналогію (напрыклад, 1xRTT, EVDO)" -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Не ўдалося дадаць злучэнне" +#: ../src/connection-editor/page-ppp.c:134 +msgid "EAP" +msgstr "EAP" -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Памылка захавання злучэння" +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 +msgid "PAP" +msgstr "PAP" -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "Уласцівасць \"%s\" / \"%s\" хібная: %d" +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Узнікла невядомая памылка." +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Памылка ініцыяцыі рэдактара" +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "" -"Не ўдалося ініцыяваць дыялогавае акенца рэдактара злучэнняў з прычыны " -"невядомай памылкі." +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "нічога" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Не ўдалося стварыць новае злучэнне" +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Змяненне метадаў PPP-ідэнтыфікацыі для %s" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Не ўдалося змяніць новае злучэнне" +#: ../src/connection-editor/page-ppp.c:282 +msgid "PPP Settings" +msgstr "Настройкі PPP-злучэння" -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "Не ўдалося змяніць злучэнне" +#: ../src/connection-editor/page-ppp.c:284 +msgid "Could not load PPP user interface." +msgstr "" +"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек PPP-" +"злучэння." -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Не ўдалося выдаліць злучэнне" +#: ../src/connection-editor/page-vpn.c:113 +msgid "Could not load VPN user interface." +msgstr "" +"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек VPN-" +"злучэння." -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:128 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Ці вы сапраўды хочаце выдаліць злучэнне \"%s\"?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "Не ўдалося адшукаць службу VPN-плугіна для \"%s\"." -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 -msgid "Cannot import VPN connection" -msgstr "Не ўдалося імпартаваць VPN-злучэнне" +#: ../src/connection-editor/page-vpn.c:222 +#: ../src/connection-editor/page-vpn.c:305 +#, c-format +msgid "VPN connection %d" +msgstr "VPN злучэнне %d" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/page-vpn.c:248 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2049,81 +2155,102 @@ "\n" "Памылка: тып VPN-службы не вызначаны." -#: ../src/connection-editor/nm-connection-list.c:945 -msgid "Could not edit imported connection" -msgstr "Не ўдалося змяніць імпартаванае злучэнне" +#: ../src/connection-editor/page-vpn.c:273 +msgid "Choose a VPN Connection Type" +msgstr "Выберыце тып VPN-злучэння" -#: ../src/connection-editor/nm-connection-list.c:1126 -msgid "Name" -msgstr "Назва" +#: ../src/connection-editor/page-vpn.c:274 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Вызначыце тып новага VPN-злучэння. Калі патрэбнага тыпу няма ў спісе, гэта " +"значыць, што ў сістэме не ўсталяваны адпаведны VPN-плугін." -#: ../src/connection-editor/nm-connection-list.c:1138 -msgid "Last Used" -msgstr "Дата апошняга выкарыстання" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "прадвызначана" + +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u МГц)" -#: ../src/connection-editor/nm-connection-list.c:1264 -msgid "No VPN plugin available. Please install one to enable this button." +#: ../src/connection-editor/page-wifi.c:464 +msgid "Could not load Wi-Fi user interface." msgstr "" -"VPN-плугіны не ўсталяваныя. Усталюйце хаця б адзін з іх, каб разблакіраваць " -"гэту кнопку." +"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек WiFi." -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "_Edit" -msgstr "_Змяніць" +#: ../src/connection-editor/page-wifi.c:669 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Злучэнне Wi-Fi %d" -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "Edit the selected connection" -msgstr "Змяніць вылучанае злучэнне" +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Няма" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "_Edit..." -msgstr "_Змяніць..." +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "WEP, 40/128-бітны ключ (Hex ці ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1278 -msgid "Authenticate to edit the selected connection" -msgstr "Ідэнтыфікуйце сябе, каб змагчы змяняць вылучанае злучэнне" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "WEP, 128-бітны пароль" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "_Delete" -msgstr "_Выдаліць" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "Дынамічны WEP (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "Delete the selected connection" -msgstr "Выдаліць вылучанае злучэнне" +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "WPA & WPA2 Personal" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "_Delete..." -msgstr "_Выдаліць..." +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA & WPA2 Enterprise" -#: ../src/connection-editor/nm-connection-list.c:1296 -msgid "Authenticate to delete the selected connection" -msgstr "Ідэнтыфікуйце сябе,, каб змагчы выдаліць вылучанае злучэнне" +#: ../src/connection-editor/page-wifi-security.c:395 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек бяспекі " +"WiFi. Адсутнічае настройка Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1575 -msgid "Error creating connection" -msgstr "Памылка стварэння злучэння" +#: ../src/connection-editor/page-wifi-security.c:405 +msgid "Wi-Fi Security" +msgstr "Бяспека Wi-Fi" -#: ../src/connection-editor/nm-connection-list.c:1576 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Невядома, як ствараць злучэнні \"%s\"" +#: ../src/connection-editor/page-wifi-security.c:407 +msgid "Could not load Wi-Fi security user interface." +msgstr "" +"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек бяспекі " +"WiFi." -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 -msgid "Error editing connection" -msgstr "Памылка змянення злучэння" +#: ../src/connection-editor/page-wimax.c:160 +msgid "Could not load WiMAX user interface." +msgstr "" +"Не ўдалося загрузіць інтэрфейс карыстальніка для змянення настроек WiMAX." -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/page-wimax.c:289 #, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Невядома, як змяняць злучэнні \"%s\"" +msgid "WiMAX connection %d" +msgstr "Злучэнне WiMAX %d" -#: ../src/connection-editor/nm-connection-list.c:1644 -#, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Злучэнне з UUID \"%s\" не знойдзена" +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Не ўдалося імпартаваць VPN-злучэнне" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2136,30 +2263,30 @@ "\n" "Памылка: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Выберыце файл для імпартавання" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Файл з назвай \"%s\" ужо існуе." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "_Замяніць" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "" "Ці вы хочаце замяніць %s на новае VPN-злучэнне, якое вы зараз захоўваеце?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "Не ўдалося экспартаваць VPN-злучэнне" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2170,65 +2297,83 @@ "\n" "Памылка: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Экспартаваць VPN-злучэнне..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Не ўдалося стварыць PAN-злучэнне: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"Аплет NetworkManager не здолеў адшукаць некаторыя патрэбныя рэсурсы (.ui-" +"файл не знойдзены)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Цяпер вы можаце карыстацца сваім тэлефонам." +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "Немагчыма настроіць Bluetooth (не ўдалося злучыцца з D-Bus: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "Сетка %s" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "Немагчыма настроіць Bluetooth (не ўдалося знайсці NetworkManager: (%s) %s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Выкарыстоўваць мабільны тэлефон як сеткавае прыстасаванне (PAN/NAP)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Злучыцца з інтэрнэтам праз мабільны тэлефон (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Памылка: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Не ўдалося стварыць DUN-злучэнне: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Цяпер вы можаце карыстацца сваім тэлефонам." + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Мабільны памочнік скасаваны" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Невядомы тып тэлефона (ні GSM, ні CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "невядомы тып мадэма." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "не ўдалося злучыцца з тэлефонам." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "нечакана адлучана ад тэлефона." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "вычарпаны тэрмін чакання падрабязнасцяў аб тэлефоне." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Апазнанне канфігурацыі тэлефона..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "не ўдалося адшукаць Bluetooth-прыстасаванне." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2236,52 +2381,54 @@ "Для настройкі мадэмнага злучэння спачатку трэба ўключыць прадвызначаны " "Bluetooth-адаптар." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "Немагчыма настроіць Bluetooth (не ўдалося злучыцца з D-Bus: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" -"Немагчыма настроіць Bluetooth (не ўдалося стварыць проксі-сувязь з D-Bus)." +msgid "Failed to create PAN connection: %s" +msgstr "Не ўдалося стварыць PAN-злучэнне: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "Немагчыма настроіць Bluetooth (не ўдалося знайсці NetworkManager: %s)." +msgid "%s Network" +msgstr "Сетка %s" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Выкарыстоўваць мабільны тэлефон як сеткавае прыстасаванне (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Аўтаматычна разблакіраваць гэта прыстасаванне" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Злучыцца з інтэрнэтам праз мабільны тэлефон (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_Разблакіраваць" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Інфармацыя аб злучэнні" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Дзейныя сеткавыя злучэнні" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "" "Ваша шырокапалоснае мабільнае злучэнне мае наступную канфігурацыю настроек:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Прыстасаванне:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Мабільны аператар:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Тарыфны план:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2295,23 +2442,23 @@ "шырокапалоснага мабільнага злучэння, выберыце пункт \"Сеткавыя злучэнні\" ў " "меню \"Асабістыя настройкі\"." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Пацвярджэнне настроек шырокапалоснай мабільнай сувязі" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Не ў спісе" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "_Вызначыце тарыфны план:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "_Пункт доступу тарыфнага плана (APN):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2324,67 +2471,67 @@ "Калі вы не ўпэўнены, якім тарыфным планам вы карыстаецеся, спытайце ў свайго " "мабільнага аператара аб патрэбным пункце доступу (APN)." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Выбар тарыфнага плана" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Мой тарыфны план адсутнічае ў спісе..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "Выберыце свайго мабільнага _аператара са спіса:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Аператар" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "_Я не знайшоў свайго аператара і хачу вызначыць яго самастойна:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Аператар:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Мой аператар выкарыстоўвае GSM-тэхналогію (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Мой аператар выкарыстоўвае CDMA-тэхналогію (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Выбар мабільнага аператара" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Спіс краін і рэгіёнаў:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "Краіна ці рэгіён" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "Маёй краіны няма ў спісе" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Выбар краіны ці рэгіёна мабільнага аператара" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Усталяванае GSM-прыстасаванне" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Усталяванае CDMA-прыстасаванне" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2392,102 +2539,101 @@ "Гэты памочнік дапаможа вам лёгка настроіць шырокапалоснае мабільнае злучэнне " "з сотавай 3G-сеткай." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Вам спатрэбіцца наступная інфармацыя:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "Назва вашага мабільнага аператара" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "Назва вашага тарыфнага плана" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(у некаторых выпадках) Пункт доступу (APN) для вашага тарыфнага плана" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "" "Стварыць злучэнне для _гэтага прыстасавання шырокапалоснай мабільнай сувязі:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Любое прыстасаванне" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Настройка шырокапалоснага мабільнага злучэння" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Новае шырокапалоснае мабільнае злучэнне" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "Стварыць..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "_Стварыць" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network " -"'%s'." +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "" -"Для доступу да бесправадной сеткі \"%s\" патрэбны пароль або ключ шыфравання." +"Для доступу да сеткі Wi-Fi \"%s\" патрэбны пароль або ключ шыфравання." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 -msgid "Wireless Network Authentication Required" -msgstr "Патрэбна ідэнтыфікацыя для бесправадной сеткі" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" +msgstr "Патрэбна ідэнтыфікацыя для сеткі Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 -msgid "Authentication required by wireless network" -msgstr "Патрэбна ідэнтыфікацыя для бесправадной сеткі" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" +msgstr "Патрэбна ідэнтыфікацыя для сеткі Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 -msgid "Create New Wireless Network" -msgstr "Стварэнне новай бесправадной сеткі" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" +msgstr "Стварэнне новай сеткі Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "New wireless network" -msgstr "Новая бесправадная сетка" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" +msgstr "Новая сетка Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 -msgid "Enter a name for the wireless network you wish to create." -msgstr "Упішыце назву новай бесправадной сеткі." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "Упішыце назву новай сеткі Wi-Fi." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 -msgid "Connect to Hidden Wireless Network" -msgstr "Злучэнне са схаванай бесправадной сеткай" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" +msgstr "Злучэнне са схаванай сеткай Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Hidden wireless network" -msgstr "Схаваная бесправадная сетка" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" +msgstr "Схаваная сетка Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." msgstr "" -"Упішыце назву і вызначыце настройкі бяспекі для схаванай бесправадной сеткі, " +"Упішыце назву і вызначыце настройкі бяспекі для схаванай сеткі Wi-Fi, " "з якой трэба злучыцца." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" -msgstr "_Метад бесправадной бяспекі:" +msgid "Wi-Fi _security:" +msgstr "_Бяспека Wi-Fi:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "_Злучэнне:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" -msgstr "_Адаптар бесправаднога злучэння:" +msgid "Wi-Fi _adapter:" +msgstr "_Адаптар Wi-Fi:" #: ../src/main.c:73 msgid "Usage:" @@ -2537,10 +2683,6 @@ msgid "HSPA" msgstr "HSPA" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "выключана" @@ -2591,40 +2733,55 @@ msgid "Default" msgstr "Прадвызначана" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"Аплет NetworkManager не здолеў адшукаць некаторыя патрэбныя рэсурсы (.ui-" -"файл не знойдзены)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "Злучэнне %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Сертыфікат CA не абраны" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" "Адмова ад выкарыстання сертыфіката CA можа прывесці да злучэння з нічым не " -"забяспечанымі ад несанкцыянаванага доступу сетак. Ці вы хочаце вызначыць " -"патрэбны сертыфікат?" +"забяспечанымі ад несанкцыянаванага доступу сетак Wi-Fi. Вызначыць " +"сертыфікат CA?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Вызначэнне сертыфіката CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER-, PEM- ці PKCS#12-прыватныя ключы (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER- ці PEM-сертыфікаты (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Выберыце PAC-файл..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC-файлы (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Усе файлы" + #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Ананімна" @@ -2657,25 +2814,8 @@ msgid "Allow automatic PAC pro_visioning" msgstr "Дазволіць _аўтаматычнае забеспячэнне PAC" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Выберыце PAC-файл..." - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "PAC-файлы (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Усе файлы" - #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2761,19 +2901,19 @@ msgid "Yes" msgstr "Так" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "Тунэльны TLS" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Абаронены EAP (PEAP)" diff -Nru network-manager-applet-0.9.4.1/po/be@latin.po network-manager-applet-0.9.6.2+git201210311320.2620/po/be@latin.po --- network-manager-applet-0.9.4.1/po/be@latin.po 2009-12-23 18:30:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/be@latin.po 2012-10-31 13:20:57.000000000 +0000 @@ -1434,7 +1434,7 @@ msgstr "Zrabi hetaje spałučeńnie dastupnym dla ŭsich karystalnikaŭ kamputara." #: ../src/connection-editor/nm-connection-editor.glade.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Dastupnaje dla ŭsich karystalnikaŭ" #: ../src/connection-editor/nm-connection-editor.glade.h:2 diff -Nru network-manager-applet-0.9.4.1/po/bg.po network-manager-applet-0.9.6.2+git201210311320.2620/po/bg.po --- network-manager-applet-0.9.4.1/po/bg.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/bg.po 2012-10-31 13:20:57.000000000 +0000 @@ -1,8 +1,8 @@ # Bulgarian translation of network-manager-applet po-file -# Copyright (C) 2005, 2007, 2009, 2011 Free Software Foundation, Inc. +# Copyright (C) 2005, 2007, 2009, 2011, 2012 Free Software Foundation, Inc. # Copyright (C) 2009, 2010, 2011, 2012 Krasimir Chonov . # This file is distributed under the same license as the network-manager-applet package. -# Alexander Shopov , 2005, 2007, 2009, 2011. +# Alexander Shopov , 2005, 2007, 2009, 2011, 2012. # Krasimir Chonov , 2009, 2010, 2011, 2012. # Damyan Ivanov , 2010, 2011. # @@ -10,15 +10,15 @@ msgstr "" "Project-Id-Version: network-manager-applet master\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-12 06:42+0200\n" -"PO-Revision-Date: 2012-03-12 06:42+0200\n" +"POT-Creation-Date: 2012-09-22 07:43+0300\n" +"PO-Revision-Date: 2012-09-22 07:43+0300\n" "Last-Translator: Krasimir Chonov \n" "Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../nm-applet.desktop.in.h:1 msgid "Network" @@ -28,1006 +28,1074 @@ msgid "Manage your network connections" msgstr "Управление на мрежовите връзки" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Мрежови връзки" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Управление и промяна на настройките на вашата мрежа" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Изключване на уведомяването за установяването на връзки" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" "Задайте да е истина, за да изключите уведомяванията при установяване на " "връзка към мрежа." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Изключване на уведомяването за прекъсване на връзки" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "" "Задайте да е истина, за да изключите уведомяванията при прекъсването на " "връзка към мрежа." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Изключване на уведомяванията за ВЧМ" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"Задайте да е истина, за да изключите уведомяванията при прекъсването на " +"връзка към ВЧМ." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Без уведомявания за наличие на безжични мрежи" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#, fuzzy msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when Wi-Fi networks are available." msgstr "" "Задайте да е истина, за да изключите уведомяванията при наличие на безжични " "мрежи." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Мигриране" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "Ключът указва дали настройките да се мигрират към нова версия." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Забраняване на създаването на безжична мрежа" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" -"Включете тази опция, за да се забрани създаването на инцидентни мрежи (ад " +"Задайте да е истина, за да се забрани създаването на инцидентни мрежи (ад " "хок) чрез този аплет." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Мрежови връзки" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Избор на сертификат от сертифициращ орган" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Управление и промяна на настройките на вашата мрежа" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Задайте да е истина, за да се изключат предупрежденията за сертификатите на " +"сертифициращите органи при ползване на EAP." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Налични мрежи" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Задайте да е истина, за да се изключат предупрежденията за сертификатите на " +"сертифициращите органи във втората фаза на идентификацията при ползване на " +"EAP." -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Свързани сте към „%s“." +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +#, fuzzy +msgid "802.1X authentication" +msgstr "Жична идентификация 802.1Х" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Връзката е осъществена" +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_Име на мрежа:" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Свързани сте към мобилна мрежа." +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "Неуспешно добавяне/задействане на връзка" + +#: ../src/applet.c:514 ../src/applet.c:558 ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Непозната грешка" + +#: ../src/applet.c:517 ../src/applet.c:587 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Неуспешно установяване на връзка" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "Неуспешно прекъсване на връзка" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "Неуспешно прекъсване" + +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "Неуспешно задействане на връзка" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 -#, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Подготовка на мобилна връзка „%s“…" +#: ../src/applet.c:948 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "Това съобщение да не се показва повече" -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1037 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Настройване на мобилна връзка „%s“…" +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"Връзката към ВЧМ — „%s“ е неуспешна, защото мрежовата връзка беше прекъсната." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1040 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "Необходима е идентификация на потребител за мобилна връзка „%s“…" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"Връзката към ВЧМ — „%s“ е неуспешна, защото услугата за ВЧМ спря неочаквано." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:1043 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Заявка за мрежов адрес за „%s“…" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"Връзката към ВЧМ — „%s“ е неуспешна, защото услугата за ВЧМ върна грешни " +"настройки." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1046 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "Мобилната връзка „%s“ е активна" - -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"Връзката към ВЧМ — „%s“ е неуспешна, защото времето за опити изтече." -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet.c:1049 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Мобилна връзка (%s)" - -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 -msgid "Mobile Broadband" -msgstr "Мобилна връзка" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"Връзката към ВЧМ — „%s“ е неуспешна, защото услугата за ВЧМ не стартира " +"навреме." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Нова мобилна връзка (CDMA)…" +#: ../src/applet.c:1052 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"Връзката към ВЧМ — „%s“ е неуспешна, защото услугата за ВЧМ не успя да " +"стартира." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Свързани сте към мрежа CDMA." +#: ../src/applet.c:1055 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"Връзката към ВЧМ — „%s“ е неуспешна, защото нямаше валидни тайни за ВЧМ." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1058 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Мобилната връзка „%s“ е активна: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"Връзката към ВЧМ — „%s“ е неуспешна, поради невалидни тайни за ВЧМ." -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "роуминг" +#: ../src/applet.c:1065 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"Връзката към ВЧМ — „%s“ е неуспешна." -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "Мрежа по CDMA." +#: ../src/applet.c:1083 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"Връзката към ВЧМ — „%s“ се прекъсна, защото мрежовата връзка беше прекъсната." -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Регистрирани сте в домашната мрежа." +#: ../src/applet.c:1086 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"Връзката към ВЧМ — „%s“ се прекъсна, защото услугата за ВЧМ спря." -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Регистрирани сте в мрежа с роуминг." +#: ../src/applet.c:1092 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"Връзката към ВЧМ — „%s“ се прекъсна." -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1122 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"Успешна връзка към ВЧМ.\n" +"\n" +"%s\n" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Нова мобилна връзка (GSM)…" +#: ../src/applet.c:1124 +msgid "VPN connection has been successfully established.\n" +msgstr "Успешна връзка към ВЧМ.\n" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Свързани сте към мрежа по GSM." +#: ../src/applet.c:1126 +msgid "VPN Login Message" +msgstr "Съобщение при идентификация пред ВЧМ" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "Необходим е PIN" +#: ../src/applet.c:1132 ../src/applet.c:1140 ../src/applet.c:1190 +msgid "VPN Connection Failed" +msgstr "Връзката към ВЧМ е неуспешна" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "Мобилното устройство изисква PIN" +#: ../src/applet.c:1197 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Връзката към ВЧМ „%s“ е неуспешна, защото услугата за ВЧМ не успя да " +"стартира.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:783 +#: ../src/applet.c:1200 #, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "ПИН за картата „%s“ на „%s“" +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Връзката към ВЧМ „%s“ не успя да стартира.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "PIN-ът е грешен. Свържете се с доставчика на услугата." +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "устройството не е готово (липсва фърмуер)" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "PUK-ът е грешен. Свържете се с доставчика на услугата.<" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "устройството не е готово" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "Изпращане на отключващия код…" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "връзката е прекъсната" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "Необходим е PIN" +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr " Прекъсване" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "Необходим е PIN" +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "устройството не се управлява" -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "" -"Мобилното широколентово устройство „%s“ изисква SIM PIN, преди да се свърже." +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "Не са налични мрежови устройства" -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "PIN:" +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "_Връзки към ВЧМ" -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "Показване на PIN" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "_Настройване на ВЧМ…" -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "Необходим е PUK за SIM" +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "_Прекъсване на ВЧМ" -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "Необходим е PUK за отключване на SIM" - -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "" -"Мобилното широколентово устройство „%s“ изисква SIM PUK, преди да се " -"използва." - -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "PUK:" +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "NetworkManager не е включен…" -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "Нов PIN:" +#: ../src/applet.c:1854 ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "Мрежата е изключена" -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "Повторете PIN:" +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "_Включване на мрежата" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "Показване на PIN/PUK" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +#, fuzzy +msgid "Enable _Wi-Fi" +msgstr "Включване на _безжичната мрежа" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "Мрежа по GSM." +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "Включване на _мобилна връзка" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "Автоматична мрежа по Ethernet" +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Включване на мобилна в_ръзка по WiMAX" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "Жични мрежи (%s)" +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "Включване на _уведомяване" -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "Жична мрежа (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "_Информация за връзката" -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "Жични мрежи" +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "Настройки на връзките…" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "Жична мрежа" +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "Помо_щ" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 -msgid "disconnected" -msgstr "връзката е прекъсната" +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "_Относно" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "Свързани сте към жичната мрежа." +#: ../src/applet.c:2335 +msgid "Disconnected" +msgstr "Без връзка" -#: ../src/applet-device-wired.c:300 -#, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Подготовка на жична връзка „%s“…" +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "Връзката към мрежата е прекъсната." -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2519 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "Настройване на жична връзка „%s“…" +msgid "Preparing network connection '%s'..." +msgstr "Подготовка на връзката „%s“…" -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2522 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "Изисква се идентификация на потребител за жична връзка „%s“…" +msgid "User authentication required for network connection '%s'..." +msgstr "Изисква се идентификация на потребител за връзката „%s“…" -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2525 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:541 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "Заявка за жичен мрежов адрес за „%s“…" +msgid "Requesting a network address for '%s'..." +msgstr "Заявка за мрежов адрес за „%s“…" -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2528 #, c-format -msgid "Wired network connection '%s' active" +msgid "Network connection '%s' active" msgstr "Жичната връзка „%s“ е активна" -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "Идентификация за DSL" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "_Свързване към скрита безжична мрежа…" - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "Създаване на _нова безжична мрежа…" - -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(нищо)" +#: ../src/applet.c:2611 +#, c-format +msgid "Starting VPN connection '%s'..." +msgstr "Стартиране на връзката към ВЧМ — „%s“…" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet.c:2614 #, c-format -msgid "Wireless Networks (%s)" -msgstr "Безжични мрежи (%s)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "Изисква се идентификация на потребител за връзката към ВЧМ — „%s“…" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet.c:2617 #, c-format -msgid "Wireless Network (%s)" -msgstr "Безжична мрежа (%s)" +msgid "Requesting a VPN address for '%s'..." +msgstr "Изискване на адрес за ВЧМ за „%s“…" -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Безжична мрежа" -msgstr[1] "Безжични мрежи" +#: ../src/applet.c:2620 +#, c-format +msgid "VPN connection '%s' active" +msgstr "Връзката към ВЧМ „%s“ е активна" -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "безжичното устройство е забранено" +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "Няма връзка към мрежа" -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "безжичното устройство е забранено чрез хардуерен ключ" +#: ../src/applet.c:3362 +msgid "NetworkManager Applet" +msgstr "Аплетът NetworkManager" -#: ../src/applet-device-wifi.c:902 -msgid "More networks" -msgstr "Още мрежи" +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:450 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Налични мрежи" -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" -msgstr "Достъпна е безжична мрежа" +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:492 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "Свързани сте към „%s“." -#: ../src/applet-device-wifi.c:1082 -msgid "Use the network menu to connect to a wireless network" -msgstr "Използвайте менюто с наличните мрежи, за да се свържете" +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:496 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "Връзката е осъществена" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 -msgid "Don't show this message again" -msgstr "Това съобщение да не се показва повече" +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Свързани сте към мобилна мрежа." -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:464 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Свързани сте към безжичната мрежа „%s“." +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Подготовка на мобилна връзка „%s“…" -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:467 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Подготовка на безжична връзка „%s“…" +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Настройване на мобилна връзка „%s“…" -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:538 ../src/applet-device-wimax.c:470 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Настройване на безжична връзка „%s“…" +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "Необходима е идентификация на потребител за мобилна връзка „%s“…" -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:559 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "Изисква се идентификация на потребител за безжична мрежа „%s“…" +msgid "Mobile broadband connection '%s' active" +msgstr "Мобилната връзка „%s“ е активна" -#: ../src/applet-device-wifi.c:1317 -#, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Заявка за безжичен мрежов адрес за „%s“…" +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:714 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:396 +#: ../src/applet-dialogs.c:424 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "Безжичната връзка „%s“ е активна: %s (%d%%)" +msgid "Mobile Broadband (%s)" +msgstr "Мобилна връзка (%s)" -#: ../src/applet-device-wifi.c:1343 -#, c-format -msgid "Wireless network connection '%s' active" -msgstr "Безжичната връзка „%s“ е активна" +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:398 +#: ../src/connection-editor/new-connection.c:87 +#: ../src/connection-editor/page-mobile.c:388 +msgid "Mobile Broadband" +msgstr "Мобилна връзка" -#: ../src/applet-device-wimax.c:231 -#, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "Безжична връзка по WiMAX (%s)" +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Нова мобилна връзка (CDMA)…" -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr "Безжична връзка по WiMAX" +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Свързани сте към мрежа CDMA." -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "WiMAX е изключена" +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:554 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "Мобилната връзка „%s“ е активна: (%d%%%s%s)" -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX е изключена от хардуерен ключ" +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:557 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "роуминг" -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "Свързани сте към мрежа по WiMAX." +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "Мрежа по CDMA." -#: ../src/applet-dialogs.c:57 -msgid "Error displaying connection information:" -msgstr "Грешка при показване на информацията за връзката:" +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on the home network." +msgstr "Регистрирани сте в домашната мрежа." -#: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1208 +msgid "You are now registered on a roaming network." +msgstr "Регистрирани сте в мрежа с роуминг." -#: ../src/applet-dialogs.c:111 -msgid "Dynamic WEP" -msgstr "Динамичен WEP" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "Автоматична мрежа по Ethernet" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-ethernet.c:205 +#, fuzzy, c-format +msgid "Ethernet Networks (%s)" +msgstr "Жични мрежи (%s)" -#: ../src/applet-dialogs.c:244 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-ethernet.c:207 +#, fuzzy, c-format +msgid "Ethernet Network (%s)" +msgstr "Жична мрежа (%s)" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "Без" +#: ../src/applet-device-ethernet.c:210 +#, fuzzy +msgid "Ethernet Networks" +msgstr "Жични мрежи" -#: ../src/applet-dialogs.c:278 -#, c-format -msgid "%s (default)" -msgstr "%s (стандартно)" +#: ../src/applet-device-ethernet.c:212 +#, fuzzy +msgid "Ethernet Network" +msgstr "Жична мрежа" -#: ../src/applet-dialogs.c:347 ../src/applet-dialogs.c:485 -#, c-format -msgid "%u Mb/s" -msgstr "%u Mb/s" +#: ../src/applet-device-ethernet.c:274 +#, fuzzy +msgid "You are now connected to the ethernet network." +msgstr "Свързани сте към жичната мрежа." -#: ../src/applet-dialogs.c:349 ../src/applet-dialogs.c:487 -msgctxt "Speed" -msgid "Unknown" -msgstr "Неопределена" +#: ../src/applet-device-ethernet.c:300 +#, fuzzy, c-format +msgid "Preparing ethernet network connection '%s'..." +msgstr "Подготовка на жична връзка „%s“…" -#: ../src/applet-dialogs.c:362 -#, c-format -msgid "%d dB" -msgstr "%d dB" +#: ../src/applet-device-ethernet.c:303 +#, fuzzy, c-format +msgid "Configuring ethernet network connection '%s'..." +msgstr "Настройване на жична връзка „%s“…" -#: ../src/applet-dialogs.c:364 -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "неизвестно" +#: ../src/applet-device-ethernet.c:306 +#, fuzzy, c-format +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "Изисква се идентификация на потребител за жична връзка „%s“…" -#: ../src/applet-dialogs.c:376 -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "неопределена" +#: ../src/applet-device-ethernet.c:309 +#, fuzzy, c-format +msgid "Requesting an ethernet network address for '%s'..." +msgstr "Заявка за жичен мрежов адрес за „%s“…" -#: ../src/applet-dialogs.c:411 -#, c-format -msgid "Ethernet (%s)" -msgstr "Ethernet (%s)" +#: ../src/applet-device-ethernet.c:313 +#, fuzzy, c-format +msgid "Ethernet network connection '%s' active" +msgstr "Жичната връзка „%s“ е активна" -#: ../src/applet-dialogs.c:414 -#, c-format -msgid "802.11 WiFi (%s)" -msgstr "802.11 WiFi (%s)" +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "Идентификация за DSL" -#: ../src/applet-dialogs.c:421 -#, c-format -msgid "GSM (%s)" -msgstr "GSM (%s)" +#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:717 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" -#: ../src/applet-dialogs.c:423 -#, c-format -msgid "CDMA (%s)" -msgstr "CDMA (%s)" +#. Default connection item +#: ../src/applet-device-gsm.c:463 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Нова мобилна връзка (GSM)…" -#: ../src/applet-dialogs.c:427 -#, c-format -msgid "WiMAX (%s)" -msgstr "WiMAX (%s)" +#: ../src/applet-device-gsm.c:497 +msgid "You are now connected to the GSM network." +msgstr "Свързани сте към мрежа по GSM." -#. --- General --- -#: ../src/applet-dialogs.c:433 ../src/applet-dialogs.c:792 -msgid "General" -msgstr "Общи" +#: ../src/applet-device-gsm.c:658 +msgid "PIN code required" +msgstr "Необходим е PIN" -#: ../src/applet-dialogs.c:437 -msgid "Interface:" -msgstr "Интерфейс:" +#: ../src/applet-device-gsm.c:666 +msgid "PIN code is needed for the mobile broadband device" +msgstr "Мобилното устройство изисква PIN" -#: ../src/applet-dialogs.c:453 -msgid "Hardware Address:" -msgstr "Хардуерен адрес:" +#: ../src/applet-device-gsm.c:787 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "ПИН за картата „%s“ на „%s“" -#. Driver -#: ../src/applet-dialogs.c:461 -msgid "Driver:" -msgstr "Драйвер:" +#: ../src/applet-device-gsm.c:879 +msgid "Wrong PIN code; please contact your provider." +msgstr "PIN-ът е грешен. Свържете се с доставчика на услугата." -#: ../src/applet-dialogs.c:490 -msgid "Speed:" -msgstr "Скорост:" +#: ../src/applet-device-gsm.c:902 +msgid "Wrong PUK code; please contact your provider." +msgstr "PUK-ът е грешен. Свържете се с доставчика на услугата.<" -#: ../src/applet-dialogs.c:500 -msgid "Security:" -msgstr "Защита:" +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:929 +msgid "Sending unlock code..." +msgstr "Изпращане на отключващия код…" -#: ../src/applet-dialogs.c:513 -msgid "CINR:" -msgstr "CINR:" +#: ../src/applet-device-gsm.c:992 +msgid "SIM PIN unlock required" +msgstr "Необходим е PIN" -#: ../src/applet-dialogs.c:526 -msgid "BSID:" -msgstr "BSID:" +#: ../src/applet-device-gsm.c:993 +msgid "SIM PIN Unlock Required" +msgstr "Необходим е PIN" -#. --- IPv4 --- -#: ../src/applet-dialogs.c:543 -msgid "IPv4" -msgstr "IPv4" +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:995 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "" +"Мобилното широколентово устройство „%s“ изисква SIM PIN, преди да се свърже." -#. Address -#: ../src/applet-dialogs.c:554 ../src/applet-dialogs.c:661 -msgid "IP Address:" -msgstr "IP адрес:" +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:997 +msgid "PIN code:" +msgstr "PIN:" -#: ../src/applet-dialogs.c:556 ../src/applet-dialogs.c:572 -msgctxt "Address" -msgid "Unknown" -msgstr "Неопределен" +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:1001 +msgid "Show PIN code" +msgstr "Показване на PIN" -#: ../src/applet-dialogs.c:570 -msgid "Broadcast Address:" -msgstr "Адрес за разпръскване:" +#: ../src/applet-device-gsm.c:1004 +msgid "SIM PUK unlock required" +msgstr "Необходим е PUK за SIM" -#. Prefix -#: ../src/applet-dialogs.c:579 -msgid "Subnet Mask:" -msgstr "Маска на подмрежата:" +#: ../src/applet-device-gsm.c:1005 +msgid "SIM PUK Unlock Required" +msgstr "Необходим е PUK за отключване на SIM" -#: ../src/applet-dialogs.c:581 -msgctxt "Subnet Mask" -msgid "Unknown" -msgstr "Неопределена" +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1007 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "" +"Мобилното широколентово устройство „%s“ изисква SIM PUK, преди да се " +"използва." -#: ../src/applet-dialogs.c:589 ../src/applet-dialogs.c:676 -msgid "Default Route:" -msgstr "Маршрут по подразбиране:" +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1009 +msgid "PUK code:" +msgstr "PUK:" -#: ../src/applet-dialogs.c:601 -msgid "Primary DNS:" -msgstr "Основен сървър за DNS:" +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1012 +msgid "New PIN code:" +msgstr "Нов PIN:" -#: ../src/applet-dialogs.c:610 -msgid "Secondary DNS:" -msgstr "Втори сървър за DNS:" +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1014 +msgid "Re-enter new PIN code:" +msgstr "Повторете PIN:" -#: ../src/applet-dialogs.c:620 -msgid "Ternary DNS:" -msgstr "Трети сървър за DNS:" +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1019 +msgid "Show PIN/PUK codes" +msgstr "Показване на PIN/PUK" -#. --- IPv6 --- -#: ../src/applet-dialogs.c:635 -msgid "IPv6" -msgstr "IPv6" +#: ../src/applet-device-gsm.c:1201 ../src/applet-device-gsm.c:1207 +msgid "GSM network." +msgstr "Мрежа по GSM." -#: ../src/applet-dialogs.c:644 -msgid "Ignored" -msgstr "Игнорирана" +#: ../src/applet-device-wifi.c:97 +#, fuzzy +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "_Свързване към скрита безжична мрежа…" -#: ../src/applet-dialogs.c:797 -msgid "VPN Type:" -msgstr "Вид ВЧМ:" +#: ../src/applet-device-wifi.c:148 +#, fuzzy +msgid "Create _New Wi-Fi Network..." +msgstr "Създаване на _нова безжична мрежа…" -#: ../src/applet-dialogs.c:804 -msgid "VPN Gateway:" -msgstr "Шлюз за ВЧМ:" +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(нищо)" -#: ../src/applet-dialogs.c:810 -msgid "VPN Username:" -msgstr "Потребител за ВЧМ:" +#: ../src/applet-device-wifi.c:790 +#, fuzzy, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "Жични мрежи (%s)" -#: ../src/applet-dialogs.c:816 -msgid "VPN Banner:" -msgstr "Известие за ВЧМ:" +#: ../src/applet-device-wifi.c:792 +#, fuzzy, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Жична мрежа (%s)" -#: ../src/applet-dialogs.c:822 -msgid "Base Connection:" -msgstr "Основна връзка:" +#: ../src/applet-device-wifi.c:794 +#, fuzzy +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Жична мрежа" +msgstr[1] "Жична мрежа" + +#: ../src/applet-device-wifi.c:827 +#, fuzzy +msgid "Wi-Fi is disabled" +msgstr "WiMAX е изключена" -#: ../src/applet-dialogs.c:824 -msgid "Unknown" -msgstr "Неопределена" +#: ../src/applet-device-wifi.c:828 +#, fuzzy +msgid "Wi-Fi is disabled by hardware switch" +msgstr "WiMAX е изключена от хардуерен ключ" -#. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 -msgid "No valid active connections found!" -msgstr "Не са намерени активни връзки!" +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "Още мрежи" -#: ../src/applet-dialogs.c:940 -msgid "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"and many other community contributors and translators" -msgstr "" -"Авторски права © 2004-2011 Red Hat, Inc.\n" -"Авторски права © 2005-2008 Novell, Inc.\n" -"и още много сътрудници и преводачи" +#: ../src/applet-device-wifi.c:1068 +#, fuzzy +msgid "Wi-Fi Networks Available" +msgstr "Достъпна е безжична мрежа" -#: ../src/applet-dialogs.c:943 -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "" -"Аплет за областта за уведомяване за управление на мрежовите устройства и " -"връзки." +#: ../src/applet-device-wifi.c:1069 +#, fuzzy +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Използвайте менюто с наличните мрежи, за да се свържете" -#: ../src/applet-dialogs.c:945 -msgid "NetworkManager Website" -msgstr "Уеб сайт на NetworkManager" +#: ../src/applet-device-wifi.c:1263 +#, fuzzy, c-format +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Свързани сте към безжичната мрежа „%s“." -#: ../src/applet-dialogs.c:960 -msgid "Missing resources" -msgstr "Липсващи ресурси" +#: ../src/applet-device-wifi.c:1294 +#, fuzzy, c-format +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Подготовка на връзката „%s“…" -#: ../src/applet-dialogs.c:985 -msgid "Mobile broadband network password" -msgstr "Парола за мобилна връзка" +#: ../src/applet-device-wifi.c:1297 +#, fuzzy, c-format +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Настройване на жична връзка „%s“…" -#: ../src/applet-dialogs.c:994 -#, c-format -msgid "A password is required to connect to '%s'." -msgstr "За свързване към „%s“ се изисква парола." +#: ../src/applet-device-wifi.c:1300 +#, fuzzy, c-format +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "Изисква се идентификация на потребител за безжична мрежа „%s“…" -#: ../src/applet-dialogs.c:1013 -msgid "Password:" -msgstr "Парола:" +#: ../src/applet-device-wifi.c:1303 +#, fuzzy, c-format +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Заявка за мрежов адрес за „%s“…" -#: ../src/applet.c:995 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"Връзката към ВЧМ — „%s“ е неуспешна, защото мрежовата връзка беше прекъсната." +#: ../src/applet-device-wifi.c:1324 +#, fuzzy, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Безжичната връзка „%s“ е активна: %s (%d%%)" -#: ../src/applet.c:998 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"Връзката към ВЧМ — „%s“ е неуспешна, защото услугата за ВЧМ спря неочаквано." +#: ../src/applet-device-wifi.c:1329 +#, fuzzy, c-format +msgid "Wi-Fi network connection '%s' active" +msgstr "Жичната връзка „%s“ е активна" -#: ../src/applet.c:1001 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"Връзката към ВЧМ — „%s“ е неуспешна, защото услугата за ВЧМ върна грешни " -"настройки." +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Неуспешно задействане на връзка" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Неуспешно добавяне на нова връзка" -#: ../src/applet.c:1004 +#: ../src/applet-device-wimax.c:231 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"Връзката към ВЧМ — „%s“ е неуспешна, защото времето за опити изтече." +msgid "WiMAX Mobile Broadband (%s)" +msgstr "Безжична връзка по WiMAX (%s)" -#: ../src/applet.c:1007 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"Връзката към ВЧМ — „%s“ е неуспешна, защото услугата за ВЧМ не стартира " -"навреме." +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "Безжична връзка по WiMAX" -#: ../src/applet.c:1010 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"Връзката към ВЧМ — „%s“ е неуспешна, защото услугата за ВЧМ не успя да " -"стартира." +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "WiMAX е изключена" -#: ../src/applet.c:1013 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"Връзката към ВЧМ — „%s“ е неуспешна, защото нямаше валидни тайни за ВЧМ." +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX е изключена от хардуерен ключ" -#: ../src/applet.c:1016 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"Връзката към ВЧМ — „%s“ е неуспешна, поради невалидни тайни за ВЧМ." +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "Свързани сте към мрежа по WiMAX." -#: ../src/applet.c:1023 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"Връзката към ВЧМ — „%s“ е неуспешна." +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "Грешка при показване на информацията за връзката:" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:930 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" -#: ../src/applet.c:1041 +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "Динамичен WEP" + +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" + +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:887 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "Без" + +#: ../src/applet-dialogs.c:277 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"Връзката към ВЧМ — „%s“ се прекъсна, защото мрежовата връзка беше прекъсната." +msgid "%s (default)" +msgstr "%s (стандартно)" -#: ../src/applet.c:1044 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"Връзката към ВЧМ — „%s“ се прекъсна, защото услугата за ВЧМ спря." +msgid "%u Mb/s" +msgstr "%u Mb/s" -#: ../src/applet.c:1050 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "Неопределена" + +#: ../src/applet-dialogs.c:361 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"Връзката към ВЧМ — „%s“ се прекъсна." +msgid "%d dB" +msgstr "%d dB" -#: ../src/applet.c:1084 -msgid "VPN Login Message" -msgstr "Съобщение при идентификация пред ВЧМ" +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "неизвестно" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 -msgid "VPN Connection Failed" -msgstr "Връзката към ВЧМ е неуспешна" +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "неопределена" -#: ../src/applet.c:1155 +#: ../src/applet-dialogs.c:410 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Връзката към ВЧМ „%s“ е неуспешна, защото услугата за ВЧМ не успя да " -"стартира.\n" -"\n" -"%s" +msgid "Ethernet (%s)" +msgstr "Ethernet (%s)" -#: ../src/applet.c:1158 +#: ../src/applet-dialogs.c:413 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Връзката към ВЧМ „%s“ не успя да стартира.\n" -"\n" -"%s" - -#: ../src/applet.c:1478 -msgid "device not ready (firmware missing)" -msgstr "устройството не е готово (липсва фърмуер)" - -#: ../src/applet.c:1480 -msgid "device not ready" -msgstr "устройството не е готово" +msgid "802.11 WiFi (%s)" +msgstr "802.11 WiFi (%s)" -#: ../src/applet.c:1506 -msgid "Disconnect" -msgstr " Прекъсване" +#: ../src/applet-dialogs.c:420 +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" -#: ../src/applet.c:1520 -msgid "device not managed" -msgstr "устройството не се управлява" +#: ../src/applet-dialogs.c:422 +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" -#: ../src/applet.c:1564 -msgid "No network devices available" -msgstr "Не са налични мрежови устройства" +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" -#: ../src/applet.c:1652 -msgid "_VPN Connections" -msgstr "_Връзки към ВЧМ" +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "Общи" -#: ../src/applet.c:1709 -msgid "_Configure VPN..." -msgstr "_Настройване на ВЧМ…" +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "Интерфейс:" -#: ../src/applet.c:1713 -msgid "_Disconnect VPN" -msgstr "_Прекъсване на ВЧМ" +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "Хардуерен адрес:" -#: ../src/applet.c:1811 -msgid "NetworkManager is not running..." -msgstr "NetworkManager не е включен…" +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "Драйвер:" -#: ../src/applet.c:1816 ../src/applet.c:2609 -msgid "Networking disabled" -msgstr "Мрежата е изключена" +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "Скорост:" -#. 'Enable Networking' item -#: ../src/applet.c:2037 -msgid "Enable _Networking" -msgstr "_Включване на мрежата" +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "Защита:" -#. 'Enable Wireless' item -#: ../src/applet.c:2046 -msgid "Enable _Wireless" -msgstr "Включване на _безжичната мрежа" +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "CINR:" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 -msgid "Enable _Mobile Broadband" -msgstr "Включване на _мобилна връзка" +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "BSID:" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Включване на мобилна в_ръзка по WiMAX" +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" -#. Toggle notifications item -#: ../src/applet.c:2075 -msgid "Enable N_otifications" -msgstr "Включване на _уведомяване" +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 +msgid "IP Address:" +msgstr "IP адрес:" -#. 'Connection Information' item -#: ../src/applet.c:2086 -msgid "Connection _Information" -msgstr "_Информация за връзката" +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "Неопределен" -#. 'Edit Connections...' item -#: ../src/applet.c:2096 -msgid "Edit Connections..." -msgstr "Настройки на връзките…" +#: ../src/applet-dialogs.c:569 +msgid "Broadcast Address:" +msgstr "Адрес за разпръскване:" -#. Help item -#: ../src/applet.c:2110 -msgid "_Help" -msgstr "Помо_щ" +#. Prefix +#: ../src/applet-dialogs.c:578 +msgid "Subnet Mask:" +msgstr "Маска на подмрежата:" -#. About item -#: ../src/applet.c:2119 -msgid "_About" -msgstr "_Относно" +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Неопределена" -#: ../src/applet.c:2296 -msgid "Disconnected" -msgstr "Без връзка" +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 +msgid "Default Route:" +msgstr "Маршрут по подразбиране:" -#: ../src/applet.c:2297 -msgid "The network connection has been disconnected." -msgstr "Връзката към мрежата е прекъсната." +#: ../src/applet-dialogs.c:600 +msgid "Primary DNS:" +msgstr "Основен сървър за DNS:" -#: ../src/applet.c:2478 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Подготовка на връзката „%s“…" +#: ../src/applet-dialogs.c:609 +msgid "Secondary DNS:" +msgstr "Втори сървър за DNS:" -#: ../src/applet.c:2481 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Изисква се идентификация на потребител за връзката „%s“…" +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "Трети сървър за DNS:" -#: ../src/applet.c:2487 -#, c-format -msgid "Network connection '%s' active" -msgstr "Жичната връзка „%s“ е активна" +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" -#: ../src/applet.c:2565 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Стартиране на връзката към ВЧМ — „%s“…" +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "Игнорирана" -#: ../src/applet.c:2568 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Изисква се идентификация на потребител за връзката към ВЧМ — „%s“…" +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "Вид ВЧМ:" -#: ../src/applet.c:2571 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Изискване на адрес за ВЧМ за „%s“…" +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "Шлюз за ВЧМ:" -#: ../src/applet.c:2574 -#, c-format -msgid "VPN connection '%s' active" -msgstr "Връзката към ВЧМ „%s“ е активна" +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "Потребител за ВЧМ:" -#: ../src/applet.c:2613 -msgid "No network connection" -msgstr "Няма връзка към мрежа" +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "Известие за ВЧМ:" -#: ../src/applet.c:3263 -msgid "NetworkManager Applet" -msgstr "Аплетът NetworkManager" +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Основна връзка:" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Автоматично отключване на това устройство" +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "Неопределена" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "_Отключване" +#. Shouldn't really happen but ... +#: ../src/applet-dialogs.c:886 +msgid "No valid active connections found!" +msgstr "Не са намерени активни връзки!" -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "Информация за връзката" +#: ../src/applet-dialogs.c:939 +msgid "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" +msgstr "" +"Авторски права © 2004-2011 Red Hat, Inc.\n" +"Авторски права © 2005-2008 Novell, Inc.\n" +"и още много сътрудници и преводачи" -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "Активни мрежови връзки" +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"Аплет за областта за уведомяване за управление на мрежовите устройства и " +"връзки." -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Жична идентификация 802.1Х" +#: ../src/applet-dialogs.c:944 +msgid "NetworkManager Website" +msgstr "Уеб сайт на NetworkManager" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "_Име на мрежа:" +#: ../src/applet-dialogs.c:959 +msgid "Missing resources" +msgstr "Липсващи ресурси" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "автоматично" +#: ../src/applet-dialogs.c:984 +msgid "Mobile broadband network password" +msgstr "Парола за мобилна връзка" -#: ../src/connection-editor/ce-page.c:310 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "" -"Неуспех да се обновят тайните на мрежовата връзка поради непозната грешка." +#: ../src/applet-dialogs.c:993 +#, c-format +msgid "A password is required to connect to '%s'." +msgstr "За свързване към „%s“ се изисква парола." + +#: ../src/applet-dialogs.c:1012 +msgid "Password:" +msgstr "Парола:" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 @@ -1059,8 +1127,143 @@ "Ако е включено, тази връзка никога няма да се използва като стандартната " "мрежова връзка." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +#, fuzzy +msgid "Choose a Connection Type" +msgstr "Изберете вид ВЧМ" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +#, fuzzy +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"Изберете вида на ВЧМ, която искате да използвате за новата връзка. Ако " +"видът, който искате да ползвате го няма в списъка, ще трябва да инсталирате " +"съответната приставка за ВЧМ." + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Създаване…" + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "автоматично" + +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "" +"Неуспех да се обновят тайните на мрежовата връзка поради непозната грешка." + +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:4 +#, fuzzy +msgid "Broadcast" +msgstr "Адрес за разпръскване:" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:9 +#, fuzzy +msgid "ARP" +msgstr "EAP" + +#: ../src/connection-editor/ce-page-bond.ui.h:10 +#, fuzzy +msgid "Bonded _connections:" +msgstr "Основна връзка:" + +#: ../src/connection-editor/ce-page-bond.ui.h:11 +#, fuzzy +msgid "_Mode:" +msgstr "Р_ежим:" + +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "_Редактиране" + +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "_Изтриване" + +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:16 +#, fuzzy +msgid "_Interface name:" +msgstr "Интерфейс:" + +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "" +"An IP address, or a comma-separated list of IP addresses, to look for when " +"checking the link status." +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "" + #: ../src/connection-editor/ce-page-dsl.ui.h:1 -#: ../src/connection-editor/ce-page-mobile.ui.h:8 +#: ../src/connection-editor/ce-page-mobile.ui.h:10 #: ../src/wireless-security/eap-method-leap.ui.h:1 #: ../src/wireless-security/eap-method-simple.ui.h:1 #: ../src/wireless-security/ws-leap.ui.h:1 @@ -1081,7 +1284,7 @@ msgstr "Показ_ване на паролата" #: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/connection-editor/ce-page-mobile.ui.h:11 #: ../src/wireless-security/eap-method-leap.ui.h:2 #: ../src/wireless-security/eap-method-simple.ui.h:2 #: ../src/wireless-security/ws-leap.ui.h:2 @@ -1089,15 +1292,113 @@ msgid "_Password:" msgstr "_Парола:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 #: ../src/connection-editor/ce-page-ip4.ui.h:1 #: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 #: ../src/connection-editor/page-ip6.c:142 #: ../src/wireless-security/eap-method-peap.ui.h:2 msgid "Automatic" msgstr "Автоматично" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Усукана двойка (TP)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Интерфейс за прикачване на данни (AUI — 15 пина)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Интерфейс независим от носителя (MII — 40 пина)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/с" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/с" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/с" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/с" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Порт:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Скорост:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Пълен дупле_кс" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "Авто_матичен избор на скорост" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "_Постоянен хардуерен адрес:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "_Подменен хардуерен адрес:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"При активиране на мрежова връзка с това устройство, ще се използва въведения " +"хардуерен адрес. Номерът е известен като клониране или подмяна на хардуерен " +"адрес. Пример: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "MT_U:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "байта" + +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +#, fuzzy +msgid "Connected" +msgstr "връзката е прекъсната" + #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 msgid "Automatic with manual DNS settings" @@ -1157,11 +1458,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "_Търсени домейни:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_Сървъри за DNS:" @@ -1224,43 +1529,52 @@ msgstr "Предпочитана е 2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 +#, fuzzy +msgid "Prefer 4G (LTE)" +msgstr "Предпочитана е 3G (UMTS/HSPA)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:7 +msgid "Use only 4G (LTE)" +msgstr "" + +#: ../src/connection-editor/ce-page-mobile.ui.h:8 msgid "Basic" msgstr "Основна" -#: ../src/connection-editor/ce-page-mobile.ui.h:7 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "Но_мер:" -#: ../src/connection-editor/ce-page-mobile.ui.h:10 +#: ../src/connection-editor/ce-page-mobile.ui.h:12 msgid "Advanced" msgstr "Допълнителни" -#: ../src/connection-editor/ce-page-mobile.ui.h:11 +#: ../src/connection-editor/ce-page-mobile.ui.h:13 msgid "_APN:" msgstr "_APN:" -#: ../src/connection-editor/ce-page-mobile.ui.h:12 +#: ../src/connection-editor/ce-page-mobile.ui.h:14 msgid "N_etwork ID:" msgstr "М_режа (ид.):" -#: ../src/connection-editor/ce-page-mobile.ui.h:13 +#: ../src/connection-editor/ce-page-mobile.ui.h:15 #: ../src/wireless-security/ws-wpa-psk.ui.h:2 msgid "_Type:" msgstr "_Вид:" -#: ../src/connection-editor/ce-page-mobile.ui.h:14 +#: ../src/connection-editor/ce-page-mobile.ui.h:16 msgid "Change..." msgstr "Промяна…" -#: ../src/connection-editor/ce-page-mobile.ui.h:15 +#: ../src/connection-editor/ce-page-mobile.ui.h:17 msgid "P_IN:" msgstr "ПИ_Н:" -#: ../src/connection-editor/ce-page-mobile.ui.h:16 +#: ../src/connection-editor/ce-page-mobile.ui.h:18 msgid "Allow _roaming if home network is not available" msgstr "Позволяване на _роуминг, когато домашната мрежа не е налична" -#: ../src/connection-editor/ce-page-mobile.ui.h:17 +#: ../src/connection-editor/ce-page-mobile.ui.h:19 msgid "Sho_w passwords" msgstr "Пока_зване на паролите" @@ -1312,150 +1626,72 @@ msgid "Send PPP _echo packets" msgstr "Изпращане на пакети _ехо по PPP" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "Усукана двойка (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "Интерфейс за прикачване на данни (AUI — 15 пина)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "Интерфейс независим от носителя (MII — 40 пина)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 Mb/с" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 Mb/с" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Gb/с" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 Gb/с" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "_Порт:" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "_Скорост:" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "Пълен дупле_кс" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "Авто_матичен избор на скорост" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "_Постоянен хардуерен адрес:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "C_loned MAC address:" -msgstr "_Подменен хардуерен адрес:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"При активиране на мрежова връзка с това устройство, ще се използва въведения " -"хардуерен адрес. Номерът е известен като клониране или подмяна на хардуерен " -"адрес. Пример: 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "_MTU:" -msgstr "MT_U:" - -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "байта" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "Защ_ита:" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Инфраструктура" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "Инцидентна (ад хок)" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "mW" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "Сила на предава_не:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "_Скорост:" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +#, fuzzy msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" "Тази опция прави възможно използването на връзката само съвместно с " "безжичната точка за достъп с указания тук хардуерен адрес (BSSID). Пример: " "00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "К_анал:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "Честотна _лента:" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "Р_ежим:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "_SSID:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "Защ_ита:" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Позволени методи за идентификация" @@ -1511,77 +1747,344 @@ "идентификация. Ако връзките са неуспешни, опитайте с изключване на " "поддръжката на някои методи." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Адрес" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Изберете вид ВЧМ" +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Мрежова маска" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Шлюз" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Метрични" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Представка" + +#: ../src/connection-editor/new-connection.c:77 +#: ../src/connection-editor/page-ethernet.c:272 +#, fuzzy +msgid "Ethernet" +msgstr "Автоматична мрежа по Ethernet" + +#: ../src/connection-editor/new-connection.c:82 +#: ../src/connection-editor/page-wifi.c:460 +msgid "Wi-Fi" +msgstr "" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 +#: ../src/connection-editor/new-connection.c:92 +#: ../src/connection-editor/page-wimax.c:155 ../src/mb-menu-item.c:75 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:97 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:102 +#: ../src/connection-editor/page-infiniband.c:191 +msgid "InfiniBand" +msgstr "" + +#: ../src/connection-editor/new-connection.c:107 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "" + +#: ../src/connection-editor/new-connection.c:119 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "ВЧМ" + +#: ../src/connection-editor/new-connection.c:252 +#, fuzzy +msgid "Import a saved VPN configuration..." +msgstr "Изнасяне на връзка към ВЧМ…" + +#: ../src/connection-editor/new-connection.c:274 msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." +"The connection editor dialog could not be initialized due to an unknown " +"error." msgstr "" -"Изберете вида на ВЧМ, която искате да използвате за новата връзка. Ако " -"видът, който искате да ползвате го няма в списъка, ще трябва да инсталирате " -"съответната приставка за ВЧМ." +"Прозорецът на редактора на връзки не може да се инициализира поради " +"неизвестна грешка." + +#: ../src/connection-editor/new-connection.c:283 +msgid "Could not create new connection" +msgstr "Не може да се създаде нова връзка" + +#: ../src/connection-editor/new-connection.c:419 +msgid "Connection delete failed" +msgstr "Неуспешно изтриване на връзка" + +#: ../src/connection-editor/new-connection.c:466 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Сигурни ли сте, че искате да изтриете връзката %s?" + +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "Настройки на %s" + +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "Редактиране на връзка без име" + +#: ../src/connection-editor/nm-connection-editor.c:301 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"Редакторът на връзки не може да намери някои задължителни ресурси (файлът с " +"интерфейса не беше намерен)." + +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "_Запазване" + +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "Запазване на промените в настройките на връзката." + +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "_Запазване..." + +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "" +"Идентифицирайте се, за да запазите тази връзка за всички потребители на този " +"компютър." + +#: ../src/connection-editor/nm-connection-editor.c:447 +#, fuzzy +msgid "Could not create connection" +msgstr "Не може да се създаде нова връзка" + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "Не може да се редактира връзка" + +#: ../src/connection-editor/nm-connection-editor.c:449 +#, fuzzy +msgid "Unknown error creating connection editor dialog." +msgstr "Грешка при създаване на прозорец за редактиране на връзка." + +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "Грешка при запазване на връзката" + +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Свойството „%s“ / „%s“ е неправилно: %d" + +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "Грешка при инициализиране на редактора" + +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "Неуспешно добавяне на връзка" + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "И_ме на връзка:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "_Автоматично свързване" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "_Достъпна за всички потребители" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +#, fuzzy +msgid "_Export..." +msgstr "_Изнасяне" + +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "никога" + +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "сега" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "преди %d минута" +msgstr[1] "преди %d минути" + +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "преди %d час" +msgstr[1] "преди %d часа" + +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "преди %d ден" +msgstr[1] "преди %d дни" + +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "преди %d месец" +msgstr[1] "преди %d месеца" + +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "преди %d година" +msgstr[1] "преди %d години" + +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "Име" + +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "Последно използвана" + +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "Редактиране на избраната връзка" + +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "_Редактиране…" + +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "Идентифицирайте се, за да редактирате избраната връзка" + +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "Изтриване на избраната връзка" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "_Изтриване…" + +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "Идентифицирайте се, за да изтриете избраната връзка" + +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "Грешка при създаване на връзката" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "Създаване…" +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Не може да се създават връзки от вида „%s" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Адрес" +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "Грешка при редактиране на връзката" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Мрежова маска" +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Не може да се открие връзка с идентификатор „%s“" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Шлюз" +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "Защита на 802.1x" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Метрични" +#: ../src/connection-editor/page-8021x-security.c:122 +#, fuzzy +msgid "Could not load 802.1x Security user interface." +msgstr "Потребителският интерфейс за сигурност на WiFi не може да се зареди." -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Представка" +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "Използване на защита на 802.1_X за тази връзка" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "" + +#: ../src/connection-editor/page-bond.c:749 +#, fuzzy +msgid "Could not load bond user interface." +msgstr "Потребителският интерфейс за жична мрежа не може да се зареди." + +#: ../src/connection-editor/page-bond.c:909 +#, fuzzy, c-format +msgid "Bond connection %d" +msgstr "Жична връзка %d" -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-dsl.c:142 msgid "Could not load DSL user interface." msgstr "Потребителският интерфейс за DSL не може да се зареди." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:234 #, c-format msgid "DSL connection %d" msgstr "Връзка по DSL %d" +#: ../src/connection-editor/page-ethernet.c:90 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Тази настройка прави възможно използването на връзката само съвместно с " +"мрежовото устройство с указания тук постоянен хардуерен адрес. Пример: " +"00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:274 +#, fuzzy +msgid "Could not load ethernet user interface." +msgstr "Потребителският интерфейс за жична мрежа не може да се зареди." + +#: ../src/connection-editor/page-ethernet.c:450 +#, fuzzy, c-format +msgid "Ethernet connection %d" +msgstr "Жична връзка %d" + +#: ../src/connection-editor/page-infiniband.c:194 +#, fuzzy +msgid "Could not load InfiniBand user interface." +msgstr "Потребителският интерфейс за безжична мрежа не може да се зареди." + +#: ../src/connection-editor/page-infiniband.c:319 +#, fuzzy, c-format +msgid "InfiniBand connection %d" +msgstr "Жична връзка %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1630,16 +2133,26 @@ msgid "Disabled" msgstr "Изключена" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "_Допълнителни сървъри за DNS:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Допълнителни _търсени домейни:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Редактиране на маршрути по IPv4 за %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:993 msgid "IPv4 Settings" msgstr "Настройки на IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:995 msgid "Could not load IPv4 user interface." msgstr "Потребителският интерфейс за IPv4 не може да се зареди." @@ -1648,7 +2161,7 @@ msgstr "Автоматично, само адреси" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Игнориране" @@ -1656,33 +2169,33 @@ msgid "Automatic, DHCP only" msgstr "Автоматично, само DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Редактиране на маршрути по IPv6 за %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:957 msgid "IPv6 Settings" msgstr "Настройки на IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:959 msgid "Could not load IPv6 user interface." msgstr "Потребителският интерфейс на IPv6 не може да се зареди." -#: ../src/connection-editor/page-mobile.c:381 +#: ../src/connection-editor/page-mobile.c:390 msgid "Could not load mobile broadband user interface." msgstr "Потребителският интерфейс за мобилна връзка не може да се зареди." -#: ../src/connection-editor/page-mobile.c:398 +#: ../src/connection-editor/page-mobile.c:407 msgid "Unsupported mobile broadband connection type." msgstr "Неподдържан вид мобилна връзка." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:657 msgid "Select Mobile Broadband Provider Type" msgstr "Изберете вида на доставчика на мобилен Интернет" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:692 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." @@ -1690,12 +2203,12 @@ "Изберете технологията, която се използва от вашия мобилен доставчик. Ако не " "сте сигурни, го попитайте." -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:697 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "" "_Доставчикът използва технология чрез GSM (като GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:704 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "Доставчикът използва _технология чрез CDMA (като 1xRTT, EVDO)" @@ -1706,332 +2219,59 @@ #: ../src/connection-editor/page-ppp.c:135 #: ../src/wireless-security/eap-method-ttls.c:230 msgid "PAP" -msgstr "PAP" - -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:280 -msgid "CHAP" -msgstr "CHAP" - -#: ../src/connection-editor/page-ppp.c:137 -#: ../src/wireless-security/eap-method-fast.c:277 -#: ../src/wireless-security/eap-method-peap.c:246 -#: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "никакъв" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Редактиране на методите на идентификация чрез PPP за %s" - -#: ../src/connection-editor/page-ppp.c:282 -msgid "PPP Settings" -msgstr "Настройки на PPP" - -#: ../src/connection-editor/page-ppp.c:284 -msgid "Could not load PPP user interface." -msgstr "Потребителският интерфейс за PPP не може да се зареди." - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 -msgid "VPN" -msgstr "ВЧМ" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "Потребителският интерфейс за ВЧМ не може да се зареди." - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "Не може да се намери приставка за ВЧМ за „%s“." - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 -#, c-format -msgid "VPN connection %d" -msgstr "Връзка към ВЧМ %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"Тази настройка прави възможно използването на връзката само съвместно с " -"мрежовото устройство с указания тук постоянен хардуерен адрес. Пример: " -"00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 -msgid "Wired" -msgstr "Жична мрежа" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "Потребителският интерфейс за жична мрежа не може да се зареди." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Жична връзка %d" - -#: ../src/connection-editor/page-wired-security.c:116 -msgid "802.1x Security" -msgstr "Защита на 802.1x" - -#: ../src/connection-editor/page-wired-security.c:118 -msgid "Could not load Wired Security security user interface." -msgstr "" -"Потребителският интерфейс за сигурност на жична връзка не може да се зареди." - -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1_X security for this connection" -msgstr "Използване на защита на 802.1_X за тази връзка" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "стандартно" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 -msgid "Wireless" -msgstr "Безжична мрежа" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "Потребителският интерфейс за безжична мрежа не може да се зареди." - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Безжична връзка %d" - -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "40/128 битов ключ за WEP (шестнайсетичен или ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 -msgid "WEP 128-bit Passphrase" -msgstr "128 битова парола за WEP" - -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 -msgid "Dynamic WEP (802.1x)" -msgstr "Динамичен WEP (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 -msgid "WPA & WPA2 Personal" -msgstr "Частна WPA & WPA2 " - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 -msgid "WPA & WPA2 Enterprise" -msgstr "Корпоративна WPA & WPA2" - -#: ../src/connection-editor/page-wireless-security.c:360 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"Потребителският интерфейс за сигурност на WiFi не може да се зареди. Липсват " -"настройките за WiFi." - -#: ../src/connection-editor/page-wireless-security.c:370 -msgid "Wireless Security" -msgstr "Защита на безжична мрежа:" - -#: ../src/connection-editor/page-wireless-security.c:372 -msgid "Could not load WiFi security user interface." -msgstr "Потребителският интерфейс за сигурност на WiFi не може да се зареди." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Настройки на %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Редактиране на връзка без име" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"Редакторът на връзки не може да намери някои задължителни ресурси (файлът с " -"интерфейса не беше намерен)." - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "Грешка при създаване на прозорец за редактиране на връзка." - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "_Запазване" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "Запазване на промените в настройките на връзката." - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "_Запазване..." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "" -"Идентифицирайте се, за да запазите тази връзка за всички потребители на този " -"компютър." - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "_Внасяне" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "_Изнасяне" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "И_ме на връзка:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "_Автоматично свързване" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Достъпна за всички потребители" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "никога" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "сега" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "преди %d минута" -msgstr[1] "преди %d минути" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "преди %d час" -msgstr[1] "преди %d часа" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "преди %d ден" -msgstr[1] "преди %d дни" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "преди %d месец" -msgstr[1] "преди %d месеца" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "преди %d година" -msgstr[1] "преди %d години" - -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Неуспешно добавяне на връзка" - -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Грешка при запазване на връзката" - -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "Свойството „%s“ / „%s“ е неправилно: %d" +msgstr "PAP" -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Възникна неизвестна грешка." +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Грешка при инициализиране на редактора" +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "" -"Прозорецът на редактора на връзки не може да се инициализира поради " -"неизвестна грешка." +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Не може да се създаде нова връзка" +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "никакъв" + +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Редактиране на методите на идентификация чрез PPP за %s" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Не може да се редактира нова връзка" +#: ../src/connection-editor/page-ppp.c:283 +msgid "PPP Settings" +msgstr "Настройки на PPP" -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "Не може да се редактира връзка" +#: ../src/connection-editor/page-ppp.c:285 +msgid "Could not load PPP user interface." +msgstr "Потребителският интерфейс за PPP не може да се зареди." -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Неуспешно изтриване на връзка" +#: ../src/connection-editor/page-vpn.c:114 +msgid "Could not load VPN user interface." +msgstr "Потребителският интерфейс за ВЧМ не може да се зареди." -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:129 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Сигурни ли сте, че искате да изтриете връзката %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "Не може да се намери приставка за ВЧМ за „%s“." -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 -msgid "Cannot import VPN connection" -msgstr "Връзка към ВЧМ не може да бъде внесена" +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 +#, c-format +msgid "VPN connection %d" +msgstr "Връзка към ВЧМ %d" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/page-vpn.c:249 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2041,81 +2281,105 @@ "\n" "Грешка: видът услуга на ВЧМ липсва." -#: ../src/connection-editor/nm-connection-list.c:945 -msgid "Could not edit imported connection" -msgstr "Не може да се редактира внесена връзка" +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "Изберете вид ВЧМ" -#: ../src/connection-editor/nm-connection-list.c:1126 -msgid "Name" -msgstr "Име" +#: ../src/connection-editor/page-vpn.c:275 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Изберете вида на ВЧМ, която искате да използвате за новата връзка. Ако " +"видът, който искате да ползвате го няма в списъка, ще трябва да инсталирате " +"съответната приставка за ВЧМ." -#: ../src/connection-editor/nm-connection-list.c:1138 -msgid "Last Used" -msgstr "Последно използвана" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "стандартно" -#: ../src/connection-editor/nm-connection-list.c:1264 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "" -"Няма инсталирана приставка за ВЧМ. Инсталирайте такава, за да се активира " -"този бутон." +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "_Edit" -msgstr "_Редактиране" +#: ../src/connection-editor/page-wifi.c:462 +#, fuzzy +msgid "Could not load Wi-Fi user interface." +msgstr "Потребителският интерфейс за безжична мрежа не може да се зареди." -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "Edit the selected connection" -msgstr "Редактиране на избраната връзка" +#: ../src/connection-editor/page-wifi.c:667 +#, fuzzy, c-format +msgid "Wi-Fi connection %d" +msgstr "Жична връзка %d" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "_Edit..." -msgstr "_Редактиране…" +#: ../src/connection-editor/page-wifi-security.c:265 +#, fuzzy +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Без" -#: ../src/connection-editor/nm-connection-list.c:1278 -msgid "Authenticate to edit the selected connection" -msgstr "Идентифицирайте се, за да редактирате избраната връзка" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:904 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "40/128 битов ключ за WEP (шестнайсетичен или ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "_Delete" -msgstr "_Изтриване" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:913 +msgid "WEP 128-bit Passphrase" +msgstr "128 битова парола за WEP" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "Delete the selected connection" -msgstr "Изтриване на избраната връзка" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:943 +msgid "Dynamic WEP (802.1x)" +msgstr "Динамичен WEP (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "_Delete..." -msgstr "_Изтриване…" +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:957 +msgid "WPA & WPA2 Personal" +msgstr "Частна WPA & WPA2 " -#: ../src/connection-editor/nm-connection-list.c:1296 -msgid "Authenticate to delete the selected connection" -msgstr "Идентифицирайте се, за да изтриете избраната връзка" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:971 +msgid "WPA & WPA2 Enterprise" +msgstr "Корпоративна WPA & WPA2" -#: ../src/connection-editor/nm-connection-list.c:1575 -msgid "Error creating connection" -msgstr "Грешка при създаване на връзката" +#: ../src/connection-editor/page-wifi-security.c:396 +#, fuzzy +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"Потребителският интерфейс за сигурност на WiFi не може да се зареди. Липсват " +"настройките за WiFi." -#: ../src/connection-editor/nm-connection-list.c:1576 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Не може да се създават връзки от вида „%s" +#: ../src/connection-editor/page-wifi-security.c:406 +#, fuzzy +msgid "Wi-Fi Security" +msgstr "Защита на безжична мрежа:" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 -msgid "Error editing connection" -msgstr "Грешка при редактиране на връзката" +#: ../src/connection-editor/page-wifi-security.c:408 +#, fuzzy +msgid "Could not load Wi-Fi security user interface." +msgstr "Потребителският интерфейс за сигурност на WiFi не може да се зареди." -#: ../src/connection-editor/nm-connection-list.c:1632 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Не може да се редактират връзки от вида „%s“" +#: ../src/connection-editor/page-wimax.c:158 +#, fuzzy +msgid "Could not load WiMAX user interface." +msgstr "Потребителският интерфейс за безжична мрежа не може да се зареди." -#: ../src/connection-editor/nm-connection-list.c:1644 -#, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Не може да се открие връзка с идентификатор „%s“" +#: ../src/connection-editor/page-wimax.c:287 +#, fuzzy, c-format +msgid "WiMAX connection %d" +msgstr "Жична връзка %d" + +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Връзка към ВЧМ не може да бъде внесена" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2127,29 +2391,29 @@ "\n" "Грешка: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Избор на файл за внасяне" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Вече съществува файл с името „%s“." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "_Замяна" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Искате ли да замените %s с връзката към ВЧМ, която запазвате?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "Връзка по ВЧМ не може да бъде изнесена" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2160,65 +2424,87 @@ "\n" "Грешка: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Изнасяне на връзка към ВЧМ…" -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Не може да се създаде връзка по лична мрежа PAN: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"Аплетът NetworkManager не можа да открие някои задължителни ресурси (файлът ." +"ui не е намерен)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Телефонът ви е готов за работа!" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"Настройването на Bluetooth не е възможно (грешка при свързване с D-Bus: (%s) " +"%s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "Мрежа „%s“" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"Настройването на Bluetooth не е възможно (грешка при намиране на " +"NetworkManager: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Използване на телефон като мрежово устройство (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Достъп до Интернет през мобилния ви телефон (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Грешка: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Не може да се създаде комутируема връзка: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Телефонът ви е готов за работа!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Съветникът беше отказан" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Неизвестен вид устройство (не е GSM или CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "неизвестен вид модем." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "неуспешна връзка с телефона." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "връзката с телефона неочаквано прекъсна." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "времето за откриване на телефон изтече." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Разпознаване на настройките за телефона…" -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "устройството за Bluetooth не може да се открие." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2226,55 +2512,53 @@ "Подразбиращия се адаптер за Bluetooth трябва да е активиран, преди да " "създадете връзка през телефон." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "" -"Настройването на Bluetooth не е възможно (грешка при свързване с D-Bus — %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" -"Настройването на Bluetooth не е възможно (грешка при създаване на обекта за " -"посредничене с D-Bus)." +msgid "Failed to create PAN connection: %s" +msgstr "Не може да се създаде връзка по лична мрежа PAN: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"Настройването на Bluetooth не е възможно (грешка при намиране на " -"NetworkManager — %s)." +msgid "%s Network" +msgstr "Мрежа „%s“" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Използване на телефон като мрежово устройство (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Автоматично отключване на това устройство" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Достъп до Интернет през мобилния ви телефон (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_Отключване" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Информация за връзката" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Активни мрежови връзки" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "Мобилната ви връзка е настроена по следния начин:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Устройството ви:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Доставчикът ви:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Планът ви:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2287,23 +2571,23 @@ "проверете отново вашите настройки. За да промените вашите настройки, " "изберете „Мрежови връзки“ от менюто „Система“ → „Предпочитания“." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Потвърждение на настройки на мобилна връзка" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Не е в списъка" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "_Изберете вашия план" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "_Име на точка за достъп за избрания план (APN):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2316,68 +2600,68 @@ "Ако не сте сигурни за вашия план, попитайте вашия доставчик за името на " "точката за достъп (APN)." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Избор на вашия план за плащане" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Планът не е в списъка…" -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "Изберете вашия доставчик от _списък:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Доставчик" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Доставчикът не е в списъка, ще го въведа _ръчно:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Доставчик:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "" "Доставчикът използва технология чрез GSM (като GPRS, EDGE, UMTS, HSDPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Доставчикът използва технология чрез CDMA (като 1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Изберете вашия доставчик" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Списък с държави или региони:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "Държава или регион" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "Моята държава не е в списъка" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Изберете държавата на вашия доставчик" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Инсталирано устройство за GSM" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Инсталирано устройство за CDMA" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2385,101 +2669,110 @@ "Този помощник ще ви помогне по-лесно да настроите връзка към мобилна (3G) " "мрежа." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Ще ви е нужна следната информация:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "Името на вашия доставчик" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "Името на вашия план за плащане" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "Име на точка за достъп на вашия план за плащане — APN (в някои случаи)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Създаване на връзка за _това устройство:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Което и да е устройство" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Настройване на мобилна връзка" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Нова мобилна връзка" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:439 msgid "New..." msgstr "Нова…" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1058 msgid "C_reate" msgstr "_Създаване" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 -#, c-format +#: ../src/libnm-gtk/nm-wifi-dialog.c:1142 +#, fuzzy, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network " -"'%s'." +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "" "За достъп до безжичната мрежа „%s“ са необходими пароли или криптирани " "ключове." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 -msgid "Wireless Network Authentication Required" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1144 +#, fuzzy +msgid "Wi-Fi Network Authentication Required" msgstr "Изисква се идентификация за безжична мрежа" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 -msgid "Authentication required by wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1146 +#, fuzzy +msgid "Authentication required by Wi-Fi network" msgstr "Изисква се идентификация за безжична мрежа" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 -msgid "Create New Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1151 +#, fuzzy +msgid "Create New Wi-Fi Network" msgstr "Създаване на нова безжична мрежа" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "New wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +#, fuzzy +msgid "New Wi-Fi network" msgstr "Нова безжична мрежа" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 -msgid "Enter a name for the wireless network you wish to create." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1154 +#, fuzzy +msgid "Enter a name for the Wi-Fi network you wish to create." msgstr "Въведете име на безжичната мрежа, която искате да създадете." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 -msgid "Connect to Hidden Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1156 +#, fuzzy +msgid "Connect to Hidden Wi-Fi Network" msgstr "Свързване към скрита безжична мрежа" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Hidden wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 +#, fuzzy +msgid "Hidden Wi-Fi network" msgstr "Скрита безжична мрежа" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1159 +#, fuzzy msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." msgstr "" "Въведете име и данни за сигурност на скритата безжична мрежа, към която " "искате да се свържете." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +#, fuzzy +msgid "Wi-Fi _security:" msgstr "_Защита на безжична мрежа:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Вр_ъзка:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" +#, fuzzy +msgid "Wi-Fi _adapter:" msgstr "Безжична _карта:" #: ../src/main.c:73 @@ -2531,51 +2824,56 @@ msgstr "HSPA" #: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" +#, fuzzy +msgid "HSPA+" +msgstr "HSPA" + +#: ../src/mb-menu-item.c:77 +msgid "LTE" +msgstr "" -#: ../src/mb-menu-item.c:109 +#: ../src/mb-menu-item.c:113 msgid "not enabled" msgstr "не е включено" -#: ../src/mb-menu-item.c:115 +#: ../src/mb-menu-item.c:119 msgid "not registered" msgstr "не е регистрирана" -#: ../src/mb-menu-item.c:133 +#: ../src/mb-menu-item.c:137 #, c-format msgid "Home network (%s)" msgstr "Домашна мрежа (%s)" -#: ../src/mb-menu-item.c:135 +#: ../src/mb-menu-item.c:139 #, c-format msgid "Home network" msgstr "Домашна мрежа" -#: ../src/mb-menu-item.c:143 +#: ../src/mb-menu-item.c:147 msgid "searching" msgstr "търсене" -#: ../src/mb-menu-item.c:146 +#: ../src/mb-menu-item.c:150 msgid "registration denied" msgstr "регистрацията е отхвърлена" -#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 +#: ../src/mb-menu-item.c:155 ../src/mb-menu-item.c:161 #, c-format msgid "%s (%s roaming)" msgstr "%s (роуминг към %s)" -#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 +#: ../src/mb-menu-item.c:157 ../src/mb-menu-item.c:163 #, c-format msgid "%s (roaming)" msgstr "%s (роуминг)" -#: ../src/mb-menu-item.c:162 +#: ../src/mb-menu-item.c:166 #, c-format msgid "Roaming network (%s)" msgstr "Мрежа с роуминг (%s)" -#: ../src/mb-menu-item.c:164 +#: ../src/mb-menu-item.c:168 #, c-format msgid "Roaming network" msgstr "Мрежа с роуминг" @@ -2584,40 +2882,56 @@ msgid "Default" msgstr "По подразбиране" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"Аплетът NetworkManager не можа да открие някои задължителни ресурси (файлът ." -"ui не е намерен)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "Връзка към %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Не е избран сертифициращ орган." -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 +#, fuzzy msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" "Ако не се използва сертификат от сертифициращ орган (CA), връзката може да е " "към несигурна, опасна безжична мрежа. Искате ли да изберете сертификат от " "сертифициращ орган?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Избор на сертификат от сертифициращ орган" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Частни ключове, формат DER, PEM или PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Сертификати, DER или PEM (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Избор на файл за PAC…" + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "Файлове за PAC (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Всички файлове" + #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Анонимен" @@ -2650,25 +2964,8 @@ msgid "Allow automatic PAC pro_visioning" msgstr "_Автоматично снабдяване с PAC" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Избор на файл за PAC…" - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "Файлове за PAC (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Всички файлове" - #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2690,7 +2987,7 @@ #: ../src/wireless-security/eap-method-tls.ui.h:3 #: ../src/wireless-security/eap-method-ttls.ui.h:3 msgid "C_A certificate:" -msgstr "CA с_ертификат:" +msgstr "С_ертификат на CA:" #: ../src/wireless-security/eap-method-peap.ui.h:8 msgid "PEAP _version:" @@ -2754,19 +3051,19 @@ msgid "Yes" msgstr "Да" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "Тунелен TLS" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Защитен EAP (PEAP)" @@ -2811,3 +3108,66 @@ #: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "Индек_с в WEP:" + +#~ msgid "Wireless Networks (%s)" +#~ msgstr "Безжични мрежи (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "Безжична мрежа (%s)" + +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "Безжична мрежа" +#~ msgstr[1] "Безжични мрежи" + +#~ msgid "wireless is disabled" +#~ msgstr "безжичното устройство е забранено" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "безжичното устройство е забранено чрез хардуерен ключ" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "Подготовка на безжична връзка „%s“…" + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "Настройване на безжична връзка „%s“…" + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "Заявка за безжичен мрежов адрес за „%s“…" + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "Безжичната връзка „%s“ е активна" + +#~ msgid "Wired" +#~ msgstr "Жична мрежа" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "" +#~ "Потребителският интерфейс за сигурност на жична връзка не може да се " +#~ "зареди." + +#~ msgid "Wireless" +#~ msgstr "Безжична мрежа" + +#~ msgid "Wireless connection %d" +#~ msgstr "Безжична връзка %d" + +#~ msgid "_Import" +#~ msgstr "_Внасяне" + +#~ msgid "An unknown error occurred." +#~ msgstr "Възникна неизвестна грешка." + +#~ msgid "Could not edit new connection" +#~ msgstr "Не може да се редактира нова връзка" + +#~ msgid "Could not edit imported connection" +#~ msgstr "Не може да се редактира внесена връзка" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "" +#~ "Няма инсталирана приставка за ВЧМ. Инсталирайте такава, за да се активира " +#~ "този бутон." + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "Не може да се редактират връзки от вида „%s“" diff -Nru network-manager-applet-0.9.4.1/po/bn_IN.po network-manager-applet-0.9.6.2+git201210311320.2620/po/bn_IN.po --- network-manager-applet-0.9.4.1/po/bn_IN.po 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/bn_IN.po 2012-10-31 13:20:57.000000000 +0000 @@ -911,7 +911,7 @@ msgstr "সংযোগ করুন (_o)" #: ../src/applet.glade.h:14 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "সংযোগ: (_n)" #: ../src/applet.glade.h:15 @@ -1013,7 +1013,7 @@ msgstr "ব্যবহারকারীর নাম: (_U)" #: ../src/applet.glade.h:39 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "বেতার নিরাপত্তা: (_W)" #: ../src/applet.glade.h:40 @@ -1832,7 +1832,7 @@ msgstr "এই মেশিনের সকল ব্যবহারকারীর জন্য এই সংযোগ সংরক্ষণ করার জন্য অনুমোদন করুন।" #: ../src/connection-editor/nm-connection-editor.glade.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "সকল ব্যবহারকারীর জন্য উপস্থিত" #: ../src/connection-editor/nm-connection-editor.glade.h:2 diff -Nru network-manager-applet-0.9.4.1/po/ca.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ca.po --- network-manager-applet-0.9.4.1/po/ca.po 2012-03-16 16:07:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ca.po 2012-10-31 13:20:57.000000000 +0000 @@ -6,13 +6,15 @@ # David Planella Molas , 2008, 2009, 2011. # Jordi Estrada , 2010. # Gil Forcada , 2011, 2012. +# Jordi Serratosa , 2012. # msgid "" msgstr "" "Project-Id-Version: NetworkManager\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-15 23:15+0100\n" -"PO-Revision-Date: 2012-03-10 17:54+0100\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-08-09 18:11+0000\n" +"PO-Revision-Date: 2012-08-12 21:27+0200\n" "Last-Translator: Gil Forcada \n" "Language-Team: Catalan \n" "Language: ca\n" @@ -29,1018 +31,1070 @@ msgid "Manage your network connections" msgstr "Gestioneu les connexions de xarxa" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Connexions de xarxa" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Gestioneu i modifiqueu els paràmetres de connexió de xarxa" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Inhabilita les notificacions de connexió" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" "Establiu-ho a «TRUE» (cert) per inhabilitar les notificacions en connectar-" "se a una xarxa." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Inhabilita les notificacions de desconnexió" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "" "Establiu-ho a «TRUE» (cert) per inhabilitar les notificacions en " "desconnectar-se d'una xarxa." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Inhabilita les notificacions de la VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"Establiu-ho a «TRUE» (cert) per inhabilitar les notificacions en connectar-" +"se o desconnectar-se d'una VPN." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "No mostris les notificacions de xarxes disponibles" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when Wi-Fi networks are available." msgstr "" "Establiu-ho a «TRUE» (cert) per inhabilitar les notificacions quan hi hagi " "disponibles xarxes sense fil." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Segell" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "S'utilitza per determinar si cal migrar els paràmetres a una versió nova." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" -msgstr "Inhabilita la creació de connexions Wi-Fi" +msgstr "Inhabilita la creació de connexions sense fil" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" "Establiu-ho a «TRUE» (cert) per inhabilitar la creació de xarxes ad hoc en " "utilitzar la miniaplicació." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Connexions de xarxa" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ignora el certificat de CA" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Gestioneu i modifiqueu els paràmetres de connexió de xarxa" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Establiu-ho a «TRUE» (cert) per inhabilitar els avisos sobre els certificats " +"de CA en l'autenticació EAP." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Disponible" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Establiu-ho a «TRUE» (cert) per inhabilitar els avisos sobre els certificats " +"de CA en la segona fase de l'autenticació EAP." -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Esteu connectat a «%s»." +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "Autenticació 802.1X" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "S'ha establert la connexió" +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "Nom de _xarxa:" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Esteu connectat a la xarxa de banda ampla mòbil." +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Ha fallat l'addició/activació de la connexió" + +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Error desconegut" + +#: ../src/applet.c:493 ../src/applet.c:563 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Ha fallat la connexió" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Ha fallat la desconnexió del dispositiu" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Ha fallat la desconnexió" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "Ha fallat l'activació de la connexió" + +#: ../src/applet.c:924 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "No tornis a mostrar aquest missatge" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:1013 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "S'està preparant la connexió de banda ampla mòbil «%s»..." +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"No s'ha pogut establir la connexió VPN «%s» perquè s'ha interromput la " +"connexió de xarxa." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1016 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "S'està configurant la connexió de banda ampla mòbil «%s»..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"No s'ha pogut establir la connexió VPN «%s» perquè el servei VPN s'ha aturat " +"de manera inesperada." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1019 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." msgstr "" -"Cal l'autenticació d'usuari per a la connexió de banda ampla mòbil «%s»..." +"\n" +"No s'ha pogut establir la connexió VPN «%s» perquè el servei VPN ha retornat " +"una configuració no vàlida." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:1022 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "S'està sol·licitant una adreça de xarxa per a «%s»..." +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"No s'ha pogut establir la connexió VPN «%s» perquè s'ha acabat el temps " +"d'espera de l'intent de connexió." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1025 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "La connexió de banda ampla mòbil «%s» és activa" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"No s'ha pogut establir la connexió VPN «%s» perquè el servei VPN no s'ha " +"iniciat en el temps establert." -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1028 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"No s'ha pogut establir la connexió VPN «%s» perquè no s'ha pogut iniciar el " +"servei VPN." -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:424 +#: ../src/applet.c:1031 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Banda ampla mòbil (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"No s'ha pogut establir la connexió VPN «%s» perquè no s'ha trobat cap secret " +"VPN vàlid." -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1510 -msgid "Mobile Broadband" -msgstr "Banda ampla mòbil" +#: ../src/applet.c:1034 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"No s'ha pogut establir la connexió VPN «%s» perquè els secrets VPN no són " +"vàlids." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Connexió de banda ampla mòbil (CDMA) nova..." +#: ../src/applet.c:1041 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"No s'ha pogut establir la connexió VPN «%s»." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Esteu connectat a la xarxa CDMA." +#: ../src/applet.c:1059 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"S'ha desconnectat la connexió VPN «%s» perquè s'ha interromput la connexió " +"de xarxa." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1062 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "La connexió de banda ampla mòbil «%s» és activa: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"S'ha desconnectat la connexió VPN «%s» perquè s'ha aturat el servei VPN." -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "itinerància" +#: ../src/applet.c:1068 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"S'ha desconnectat la connexió VPN «%s»." -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "Xarxa CDMA." +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"S'ha establert correctament la connexió VPN.\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Esteu registrat a la xarxa local." +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "S'ha establert correctament la connexió VPN.\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Esteu registrat a una xarxa d'accés itinerant." +#: ../src/applet.c:1102 +msgid "VPN Login Message" +msgstr "Missatge d'entrada de la VPN" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 +msgid "VPN Connection Failed" +msgstr "No s'ha pogut establir la connexió VPN" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Connexió de banda ampla mòbil (GSM) nova..." +#: ../src/applet.c:1173 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"No s'ha pogut establir la connexió VPN «%s» perquè no s'ha pogut iniciar el " +"servei VPN.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Esteu connectat a la xarxa GSM." +#: ../src/applet.c:1176 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"No s'ha pogut iniciar la connexió VPN «%s».\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "Cal que introduïu el codi PIN" +#: ../src/applet.c:1496 +msgid "device not ready (firmware missing)" +msgstr "el dispositiu no està preparat (manca el microprogramari)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "Cal que introduïu un codi PIN per al dispositiu de banda ampla mòbil" +#: ../src/applet.c:1498 +msgid "device not ready" +msgstr "el dispositiu no està preparat" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "Codi PIN per la targeta SIM «%s» a «%s»" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1508 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "desconnectat" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "El codi PIN no és correcte. Contacteu amb el vostre proveïdor." +#: ../src/applet.c:1524 +msgid "Disconnect" +msgstr "Desconnecta" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "El codi PUK no és correcte. Contacteu amb el vostre proveïdor." +#: ../src/applet.c:1538 +msgid "device not managed" +msgstr "no es gestiona el dispositiu" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "S'està enviant el codi de desbloqueig..." +#: ../src/applet.c:1582 +msgid "No network devices available" +msgstr "No hi ha cap dispositiu de xarxa disponible" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "Cal el codi PIN de desbloqueig de la SIM" +#: ../src/applet.c:1670 +msgid "_VPN Connections" +msgstr "Connexions _VPN" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "Cal el codi PIN de desbloqueig de la SIM" +#: ../src/applet.c:1727 +msgid "_Configure VPN..." +msgstr "_Configura la VPN..." -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "" -"Cal el codi PIN de la SIM per poder utilitzar el dispositiu de banda ampla " -"mòbil «%s»." +#: ../src/applet.c:1731 +msgid "_Disconnect VPN" +msgstr "_Desconnecta la VPN" -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "Codi PIN:" - -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "Mostra el codi PIN" - -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "Cal el codi PUK de desbloqueig de la SIM" - -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "Cal el codi PUK de desbloqueig de la SIM" - -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "" -"Cal el codi PUK de la SIM per poder utilitzar el dispositiu de banda ampla " -"mòbil «%s»." +#: ../src/applet.c:1825 +msgid "NetworkManager is not running..." +msgstr "No s'està executant el NetworkManager..." -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "Codi PUK:" +#: ../src/applet.c:1830 ../src/applet.c:2631 +msgid "Networking disabled" +msgstr "S'ha inhabilitat la gestió de xarxes" -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "Codi PIN nou:" +#. 'Enable Networking' item +#: ../src/applet.c:2051 +msgid "Enable _Networking" +msgstr "Habilita la gestió de _xarxes" -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "Torneu a introduir el codi PIN nou:" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2060 +msgid "Enable _Wi-Fi" +msgstr "Habilita el _sense fil" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "Mostra els codis PIN/PUK" +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2069 +msgid "Enable _Mobile Broadband" +msgstr "Habilita la banda ampla _mòbil" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "Xarxa GSM." +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2078 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Habilita la banda ampla mòbil WiMA_X" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "Ethernet automàtic" +#. Toggle notifications item +#: ../src/applet.c:2089 +msgid "Enable N_otifications" +msgstr "Habilita les n_otificacions" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "Xarxes amb fil (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2100 +msgid "Connection _Information" +msgstr "_Informació de la connexió" -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "Xarxa amb fil (%s)" +#. 'Edit Connections...' item +#: ../src/applet.c:2110 +msgid "Edit Connections..." +msgstr "Edita les connexions..." -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "Xarxes amb fil" +#. Help item +#: ../src/applet.c:2124 +msgid "_Help" +msgstr "A_juda" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "Xarxa amb fil" +#. About item +#: ../src/applet.c:2133 +msgid "_About" +msgstr "_Quant a" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 -msgid "disconnected" -msgstr "desconnectat" +#: ../src/applet.c:2310 +msgid "Disconnected" +msgstr "Desconnectat" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "Esteu connectat a la xarxa amb fil." +#: ../src/applet.c:2311 +msgid "The network connection has been disconnected." +msgstr "S'ha desconnectat la connexió de xarxa." -#: ../src/applet-device-wired.c:300 +#: ../src/applet.c:2494 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "S'està preparant la connexió de xarxa amb fil «%s»..." +msgid "Preparing network connection '%s'..." +msgstr "S'està preparant la connexió de xarxa «%s»..." -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2497 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "S'està configurant la connexió de xarxa amb fil «%s»..." +msgid "User authentication required for network connection '%s'..." +msgstr "Cal l'autenticació d'usuari per a la connexió de xarxa «%s»..." -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2500 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "Cal l'autenticació d'usuari per a la connexió de xarxa amb fil «%s»..." +msgid "Requesting a network address for '%s'..." +msgstr "S'està sol·licitant una adreça de xarxa per a «%s»..." -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2503 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "S'està sol·licitant una adreça de xarxa per a la xarxa amb fil «%s»..." +msgid "Network connection '%s' active" +msgstr "La connexió de xarxa «%s» és activa" -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2586 #, c-format -msgid "Wired network connection '%s' active" -msgstr "La connexió de xarxa amb fil «%s» és activa" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "Autenticació DSL" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "_Connecta a una xarxa sense fil oculta..." - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "Crea una xarxa sense fil _nova..." - -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(cap)" +msgid "Starting VPN connection '%s'..." +msgstr "S'està iniciant la connexió VPN «%s»..." -#: ../src/applet-device-wifi.c:803 +#: ../src/applet.c:2589 #, c-format -msgid "Wireless Networks (%s)" -msgstr "Xarxes sense fil (%s)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "Cal l'autenticació d'usuari per a la connexió VPN «%s»..." -#: ../src/applet-device-wifi.c:805 +#: ../src/applet.c:2592 #, c-format -msgid "Wireless Network (%s)" -msgstr "Xarxa sense fil (%s)" +msgid "Requesting a VPN address for '%s'..." +msgstr "S'està sol·licitant una adreça de xarxa per a la xarxa VPN «%s»..." -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Xarxa sense fil" -msgstr[1] "Xarxes sense fil" +#: ../src/applet.c:2595 +#, c-format +msgid "VPN connection '%s' active" +msgstr "La connexió VPN «%s» és activa" -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "la xarxa sense fil està inhabilitada" - -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "l'interruptor de maquinari inhabilita les xarxes sense fil" +#: ../src/applet.c:2636 +msgid "No network connection" +msgstr "No hi ha cap connexió de xarxa" -#: ../src/applet-device-wifi.c:902 -msgid "More networks" -msgstr "Més xarxes" +#: ../src/applet.c:3336 +msgid "NetworkManager Applet" +msgstr "Miniaplicació NetworkManager" -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" -msgstr "Hi ha xarxes sense fil disponibles" +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Disponible" -#: ../src/applet-device-wifi.c:1082 -msgid "Use the network menu to connect to a wireless network" -msgstr "Utilitzeu el menú de xarxa per connectar-vos a una xarxa sense fil" +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "Esteu connectat a «%s»." -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 -msgid "Don't show this message again" -msgstr "No tornis a mostrar aquest missatge" +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "S'ha establert la connexió" -#: ../src/applet-device-wifi.c:1277 -#, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Esteu connectat a la xarxa sense fil «%s»." +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Esteu connectat a la xarxa de banda ampla mòbil." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "S'està preparant la connexió de xarxa sense fil «%s»..." +msgid "Preparing mobile broadband connection '%s'..." +msgstr "S'està preparant la connexió de banda ampla mòbil «%s»..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "S'està configurant la connexió de xarxa sense fil «%s»..." +msgid "Configuring mobile broadband connection '%s'..." +msgstr "S'està configurant la connexió de banda ampla mòbil «%s»..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format -msgid "User authentication required for wireless network '%s'..." +msgid "User authentication required for mobile broadband connection '%s'..." msgstr "" -"Cal l'autenticació d'usuari per a la connexió de xarxa sense fil «%s»..." +"Cal l'autenticació d'usuari per a la connexió de banda ampla mòbil «%s»..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "" -"S'està sol·licitant una adreça de xarxa per a la xarxa sense fil «%s»..." +msgid "Mobile broadband connection '%s' active" +msgstr "La connexió de banda ampla mòbil «%s» és activa" -#: ../src/applet-device-wifi.c:1338 -#, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "La connexió de xarxa sense fil «%s» és activa: %s (%d%%)" +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:699 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "La connexió de xarxa sense fil «%s» és activa" +msgid "Mobile Broadband (%s)" +msgstr "Banda ampla mòbil (%s)" -#: ../src/applet-device-wimax.c:231 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:85 +#: ../src/connection-editor/page-mobile.c:379 +msgid "Mobile Broadband" +msgstr "Banda ampla mòbil" + +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Connexió de banda ampla mòbil (CDMA) nova..." + +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Esteu connectat a la xarxa CDMA." + +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 #, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "Banda ampla mòbil WiMAX (%s)" +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "La connexió de banda ampla mòbil «%s» és activa: (%d%%%s%s)" -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr "Banda ampla mòbil WiMAX" +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "itinerància" -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "La xarxa WiMAX està inhabilitada" +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "Xarxa CDMA." -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "L'interruptor de maquinari ha inhabilitat la xarxa WiMAX" +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "Esteu registrat a la xarxa local." -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "Esteu connectat a la xarxa WiMAX." +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "Esteu registrat a una xarxa d'accés itinerant." -#: ../src/applet-dialogs.c:57 -msgid "Error displaying connection information:" -msgstr "S'ha produït un error en mostrar la informació de la connexió:" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "Ethernet automàtic" -#: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:286 -#: ../src/libnm-gtk/nm-wireless-dialog.c:948 -#: ../src/wireless-security/wireless-security.c:396 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-ethernet.c:205 +#, c-format +msgid "Ethernet Networks (%s)" +msgstr "Xarxes amb fil (%s)" -#: ../src/applet-dialogs.c:111 -msgid "Dynamic WEP" -msgstr "WEP dinàmic" +#: ../src/applet-device-ethernet.c:207 +#, c-format +msgid "Ethernet Network (%s)" +msgstr "Xarxa amb fil (%s)" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 -#: ../src/applet-dialogs.c:247 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "Xarxes amb fil" -#: ../src/applet-dialogs.c:243 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "Xarxa amb fil" -#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 -#: ../src/connection-editor/page-wireless-security.c:240 -#: ../src/libnm-gtk/nm-wireless-dialog.c:905 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "Cap" +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "Esteu connectat a la xarxa amb fil." -#: ../src/applet-dialogs.c:277 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "%s (default)" -msgstr "%s (predeterminat)" +msgid "Preparing ethernet network connection '%s'..." +msgstr "S'està preparant la connexió de xarxa amb fil «%s»..." -#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "%u Mb/s" -msgstr "%u Mb/s" +msgid "Configuring ethernet network connection '%s'..." +msgstr "S'està configurant la connexió de xarxa amb fil «%s»..." -#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 -msgctxt "Speed" -msgid "Unknown" -msgstr "Desconeguda" +#: ../src/applet-device-ethernet.c:306 +#, c-format +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "Cal l'autenticació d'usuari per a la connexió de xarxa amb fil «%s»..." -#: ../src/applet-dialogs.c:361 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "%d dB" -msgstr "%d dB" +msgid "Requesting an ethernet network address for '%s'..." +msgstr "S'està sol·licitant una adreça de xarxa per a la xarxa amb fil «%s»..." -#: ../src/applet-dialogs.c:363 -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "desconeguda" +#: ../src/applet-device-ethernet.c:313 +#, c-format +msgid "Ethernet network connection '%s' active" +msgstr "La connexió de xarxa amb fil «%s» és activa" -#: ../src/applet-dialogs.c:375 -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "desconegut" - -#: ../src/applet-dialogs.c:410 -#, c-format -msgid "Ethernet (%s)" -msgstr "Ethernet (%s)" - -#: ../src/applet-dialogs.c:413 -#, c-format -msgid "802.11 WiFi (%s)" -msgstr "Wi-Fi 802.11 (%s)" - -#: ../src/applet-dialogs.c:420 -#, c-format -msgid "GSM (%s)" -msgstr "GSM (%s)" - -#: ../src/applet-dialogs.c:422 -#, c-format -msgid "CDMA (%s)" -msgstr "CDMA (%s)" - -#: ../src/applet-dialogs.c:426 -#, c-format -msgid "WiMAX (%s)" -msgstr "WiMAX (%s)" +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "Autenticació DSL" -#. --- General --- -#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 -msgid "General" -msgstr "General" +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:702 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" -#: ../src/applet-dialogs.c:436 -msgid "Interface:" -msgstr "Interfície:" +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Connexió de banda ampla mòbil (GSM) nova..." -#: ../src/applet-dialogs.c:452 -msgid "Hardware Address:" -msgstr "Adreça del maquinari:" +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "Esteu connectat a la xarxa GSM." -#. Driver -#: ../src/applet-dialogs.c:460 -msgid "Driver:" -msgstr "Controlador:" +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "Cal que introduïu el codi PIN" -#: ../src/applet-dialogs.c:489 -msgid "Speed:" -msgstr "Velocitat:" +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "Cal que introduïu un codi PIN per al dispositiu de banda ampla mòbil" -#: ../src/applet-dialogs.c:499 -msgid "Security:" -msgstr "Seguretat:" +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "Codi PIN per la targeta SIM «%s» a «%s»" -#: ../src/applet-dialogs.c:512 -msgid "CINR:" -msgstr "CINR:" +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "El codi PIN no és correcte. Contacteu amb el vostre proveïdor." -#: ../src/applet-dialogs.c:525 -msgid "BSID:" -msgstr "BSSID:" +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "El codi PUK no és correcte. Contacteu amb el vostre proveïdor." -#. --- IPv4 --- -#: ../src/applet-dialogs.c:542 -msgid "IPv4" -msgstr "IPv4" +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "S'està enviant el codi de desbloqueig..." -#. Address -#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 -msgid "IP Address:" -msgstr "Adreça IP:" +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "Cal el codi PIN de desbloqueig de la SIM" -#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 -msgctxt "Address" -msgid "Unknown" -msgstr "Desconeguda" +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "Cal el codi PIN de desbloqueig de la SIM" -#: ../src/applet-dialogs.c:569 -msgid "Broadcast Address:" -msgstr "Adreça de difusió:" +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "" +"Cal el codi PIN de la SIM per poder utilitzar el dispositiu de banda ampla " +"mòbil «%s»." -#. Prefix -#: ../src/applet-dialogs.c:578 -msgid "Subnet Mask:" -msgstr "Màscara de subxarxa:" +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "Codi PIN:" -#: ../src/applet-dialogs.c:580 -msgctxt "Subnet Mask" -msgid "Unknown" -msgstr "Desconeguda" +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "Mostra el codi PIN" -#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 -msgid "Default Route:" -msgstr "Ruta predeterminada:" +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "Cal el codi PUK de desbloqueig de la SIM" -#: ../src/applet-dialogs.c:600 -msgid "Primary DNS:" -msgstr "DNS primari:" +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "Cal el codi PUK de desbloqueig de la SIM" -#: ../src/applet-dialogs.c:609 -msgid "Secondary DNS:" -msgstr "DNS secundari:" +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "" +"Cal el codi PUK de la SIM per poder utilitzar el dispositiu de banda ampla " +"mòbil «%s»." -#: ../src/applet-dialogs.c:619 -msgid "Ternary DNS:" -msgstr "DNS terciari:" +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "Codi PUK:" -#. --- IPv6 --- -#: ../src/applet-dialogs.c:634 -msgid "IPv6" -msgstr "IPv6" +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "Codi PIN nou:" -#: ../src/applet-dialogs.c:643 -msgid "Ignored" -msgstr "Ignorada" +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "Torneu a introduir el codi PIN nou:" -#: ../src/applet-dialogs.c:796 -msgid "VPN Type:" -msgstr "Tipus de VPN:" +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "Mostra els codis PIN/PUK" -#: ../src/applet-dialogs.c:803 -msgid "VPN Gateway:" -msgstr "Passarel·la VPN:" +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "Xarxa GSM." -#: ../src/applet-dialogs.c:809 -msgid "VPN Username:" -msgstr "Nom d'usuari de la VPN:" +#: ../src/applet-device-wifi.c:97 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "_Connecta a una xarxa sense fil oculta..." -#: ../src/applet-dialogs.c:815 -msgid "VPN Banner:" -msgstr "Bàner de la VPN:" +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "Crea una xarxa sense fil _nova..." -#: ../src/applet-dialogs.c:821 -msgid "Base Connection:" -msgstr "Connexió base:" +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(cap)" -#: ../src/applet-dialogs.c:823 -msgid "Unknown" -msgstr "Desconeguda" +#: ../src/applet-device-wifi.c:790 +#, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "Xarxes sense fil (%s)" -#. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:886 -msgid "No valid active connections found!" -msgstr "No s'ha trobat cap connexió activa vàlida" +#: ../src/applet-device-wifi.c:792 +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Xarxa sense fil (%s)" -#: ../src/applet-dialogs.c:939 -msgid "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"and many other community contributors and translators" -msgstr "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"i molts col·laboradors i traductors voluntaris" +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Xarxa sense fil" +msgstr[1] "Xarxes sense fil" -#: ../src/applet-dialogs.c:942 -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "" -"Miniaplicació per a l'àrea de notificació per gestionar els dispositius i " -"les connexions de xarxa." +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "Les xarxes sense fil estan inhabilitades" + +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "L'interruptor de maquinari ha inhabilitat la xarxa sense fil" -#: ../src/applet-dialogs.c:944 -msgid "NetworkManager Website" -msgstr "Lloc web del NetworkManager" +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "Més xarxes" -#: ../src/applet-dialogs.c:959 -msgid "Missing resources" -msgstr "Recursos que manquen" +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "Hi ha xarxes sense fil disponibles" -#: ../src/applet-dialogs.c:984 -msgid "Mobile broadband network password" -msgstr "Contrasenya de la xarxa de banda ampla mòbil" +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Utilitzeu el menú de xarxa per connectar-vos a una xarxa sense fil" -#: ../src/applet-dialogs.c:993 +#: ../src/applet-device-wifi.c:1263 #, c-format -msgid "A password is required to connect to '%s'." -msgstr "Cal que introduïu una contrasenya per connectar-vos a «%s»." - -#: ../src/applet-dialogs.c:1012 -msgid "Password:" -msgstr "Contrasenya:" +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Esteu connectat a la xarxa sense fil «%s»." -#: ../src/applet.c:995 +#: ../src/applet-device-wifi.c:1294 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"No s'ha pogut establir la connexió VPN «%s» perquè s'ha interromput la " -"connexió de xarxa." +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "S'està preparant la connexió de xarxa sense fil «%s»..." -#: ../src/applet.c:998 +#: ../src/applet-device-wifi.c:1297 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"No s'ha pogut establir la connexió VPN «%s» perquè el servei VPN s'ha aturat " -"de manera inesperada." +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "S'està configurant la connexió de xarxa sense fil «%s»..." -#: ../src/applet.c:1001 +#: ../src/applet-device-wifi.c:1300 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." +msgid "User authentication required for Wi-Fi network '%s'..." msgstr "" -"\n" -"No s'ha pogut establir la connexió VPN «%s» perquè el servei VPN ha retornat " -"una configuració no vàlida." +"Cal l'autenticació d'usuari per a la connexió de xarxa sense fil «%s»..." -#: ../src/applet.c:1004 +#: ../src/applet-device-wifi.c:1303 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"No s'ha pogut establir la connexió VPN «%s» perquè s'ha acabat el temps " -"d'espera de l'intent de connexió." +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "S'està sol·licitant una adreça de xarxa sense fil per a «%s»..." -#: ../src/applet.c:1007 +#: ../src/applet-device-wifi.c:1324 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"No s'ha pogut establir la connexió VPN «%s» perquè el servei VPN no s'ha " -"iniciat en el temps establert." +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "La connexió de xarxa sense fil «%s» és activa: %s (%d%%)" -#: ../src/applet.c:1010 +#: ../src/applet-device-wifi.c:1329 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"No s'ha pogut establir la connexió VPN «%s» perquè no s'ha pogut iniciar el " -"servei VPN." +msgid "Wi-Fi network connection '%s' active" +msgstr "La connexió de xarxa sense fil «%s» és activa" -#: ../src/applet.c:1013 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"No s'ha pogut establir la connexió VPN «%s» perquè no s'ha trobat cap secret " -"VPN vàlid." +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Ha fallat l'activació de la connexió" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "No s'ha pogut afegir una connexió nova" -#: ../src/applet.c:1016 +#: ../src/applet-device-wimax.c:231 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"No s'ha pogut establir la connexió VPN «%s» perquè els secrets VPN no són " -"vàlids." +msgid "WiMAX Mobile Broadband (%s)" +msgstr "Banda ampla mòbil WiMAX (%s)" -#: ../src/applet.c:1023 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"No s'ha pogut establir la connexió VPN «%s»." +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "Banda ampla mòbil WiMAX" -#: ../src/applet.c:1041 +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "La xarxa WiMAX està inhabilitada" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "L'interruptor de maquinari ha inhabilitat la xarxa WiMAX" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "Esteu connectat a la xarxa WiMAX." + +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "S'ha produït un error en mostrar la informació de la connexió:" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" + +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "WEP dinàmic" + +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" + +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "Cap" + +#: ../src/applet-dialogs.c:277 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"S'ha desconnectat la connexió VPN «%s» perquè s'ha interromput la connexió " -"de xarxa." +msgid "%s (default)" +msgstr "%s (predeterminat)" -#: ../src/applet.c:1044 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"S'ha desconnectat la connexió VPN «%s» perquè s'ha aturat el servei VPN." +msgid "%u Mb/s" +msgstr "%u Mb/s" + +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "Desconeguda" -#: ../src/applet.c:1050 +#: ../src/applet-dialogs.c:361 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"S'ha desconnectat la connexió VPN «%s»." +msgid "%d dB" +msgstr "%d dB" -#: ../src/applet.c:1084 -msgid "VPN Login Message" -msgstr "Missatge d'entrada de la VPN" +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "desconeguda" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 -msgid "VPN Connection Failed" -msgstr "No s'ha pogut establir la connexió VPN" +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "desconegut" -#: ../src/applet.c:1155 +#: ../src/applet-dialogs.c:410 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"No s'ha pogut establir la connexió VPN «%s» perquè no s'ha pogut iniciar el " -"servei VPN.\n" -"\n" -"%s" +msgid "Ethernet (%s)" +msgstr "Ethernet (%s)" -#: ../src/applet.c:1158 +#: ../src/applet-dialogs.c:413 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"No s'ha pogut iniciar la connexió VPN «%s».\n" -"\n" -"%s" - -#: ../src/applet.c:1478 -msgid "device not ready (firmware missing)" -msgstr "el dispositiu no està preparat (manca el microprogramari)" +msgid "802.11 WiFi (%s)" +msgstr "Wi-Fi 802.11 (%s)" -#: ../src/applet.c:1480 -msgid "device not ready" -msgstr "el dispositiu no està preparat" +#: ../src/applet-dialogs.c:420 +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" -#: ../src/applet.c:1506 -msgid "Disconnect" -msgstr "Desconnecta" +#: ../src/applet-dialogs.c:422 +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" -#: ../src/applet.c:1520 -msgid "device not managed" -msgstr "no es gestiona el dispositiu" +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" -#: ../src/applet.c:1564 -msgid "No network devices available" -msgstr "No hi ha cap dispositiu de xarxa disponible" +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "General" -#: ../src/applet.c:1652 -msgid "_VPN Connections" -msgstr "Connexions _VPN" +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "Interfície:" -#: ../src/applet.c:1709 -msgid "_Configure VPN..." -msgstr "_Configura la VPN..." +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "Adreça del maquinari:" -#: ../src/applet.c:1713 -msgid "_Disconnect VPN" -msgstr "_Desconnecta la VPN" +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "Controlador:" -#: ../src/applet.c:1811 -msgid "NetworkManager is not running..." -msgstr "No s'està executant el NetworkManager..." +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "Velocitat:" -#: ../src/applet.c:1816 ../src/applet.c:2609 -msgid "Networking disabled" -msgstr "S'ha inhabilitat la gestió de xarxes" +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "Seguretat:" -#. 'Enable Networking' item -#: ../src/applet.c:2037 -msgid "Enable _Networking" -msgstr "Habilita la gestió de _xarxes" +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "CINR:" -#. 'Enable Wireless' item -#: ../src/applet.c:2046 -msgid "Enable _Wireless" -msgstr "Habilita la xarxa _sense fil" +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "BSSID:" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 -msgid "Enable _Mobile Broadband" -msgstr "Habilita la banda ampla _mòbil" +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Habilita la banda ampla mòbil WiMA_X" +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 +msgid "IP Address:" +msgstr "Adreça IP:" -#. Toggle notifications item -#: ../src/applet.c:2075 -msgid "Enable N_otifications" -msgstr "Habilita les n_otificacions" +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "Desconeguda" -#. 'Connection Information' item -#: ../src/applet.c:2086 -msgid "Connection _Information" -msgstr "_Informació de la connexió" +#: ../src/applet-dialogs.c:569 +msgid "Broadcast Address:" +msgstr "Adreça de difusió:" -#. 'Edit Connections...' item -#: ../src/applet.c:2096 -msgid "Edit Connections..." -msgstr "Edita les connexions..." +#. Prefix +#: ../src/applet-dialogs.c:578 +msgid "Subnet Mask:" +msgstr "Màscara de subxarxa:" -#. Help item -#: ../src/applet.c:2110 -msgid "_Help" -msgstr "A_juda" +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Desconeguda" -#. About item -#: ../src/applet.c:2119 -msgid "_About" -msgstr "_Quant a" +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 +msgid "Default Route:" +msgstr "Ruta predeterminada:" -#: ../src/applet.c:2296 -msgid "Disconnected" -msgstr "Desconnectat" +#: ../src/applet-dialogs.c:600 +msgid "Primary DNS:" +msgstr "DNS primari:" -#: ../src/applet.c:2297 -msgid "The network connection has been disconnected." -msgstr "S'ha desconnectat la connexió de xarxa." +#: ../src/applet-dialogs.c:609 +msgid "Secondary DNS:" +msgstr "DNS secundari:" -#: ../src/applet.c:2478 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "S'està preparant la connexió de xarxa «%s»..." +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "DNS terciari:" -#: ../src/applet.c:2481 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Cal l'autenticació d'usuari per a la connexió de xarxa «%s»..." +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" -#: ../src/applet.c:2487 -#, c-format -msgid "Network connection '%s' active" -msgstr "La connexió de xarxa «%s» és activa" +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "Ignorada" -#: ../src/applet.c:2565 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "S'està iniciant la connexió VPN «%s»..." +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "Tipus de VPN:" -#: ../src/applet.c:2568 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Cal l'autenticació d'usuari per a la connexió VPN «%s»..." +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "Passarel·la VPN:" -#: ../src/applet.c:2571 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "S'està sol·licitant una adreça de xarxa per a la xarxa VPN «%s»..." +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "Nom d'usuari de la VPN:" -#: ../src/applet.c:2574 -#, c-format -msgid "VPN connection '%s' active" -msgstr "La connexió VPN «%s» és activa" +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "Bàner de la VPN:" -#: ../src/applet.c:2613 -msgid "No network connection" -msgstr "No hi ha cap connexió de xarxa" +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Connexió base:" -#: ../src/applet.c:3263 -msgid "NetworkManager Applet" -msgstr "Miniaplicació NetworkManager" +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "Desconeguda" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Desbloqueja automàticament aquest dispositiu" +#. Shouldn't really happen but ... +#: ../src/applet-dialogs.c:886 +msgid "No valid active connections found!" +msgstr "No s'ha trobat cap connexió activa vàlida" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "_Desbloqueja" +#: ../src/applet-dialogs.c:939 +msgid "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" +msgstr "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"i molts col·laboradors i traductors voluntaris" -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "Informació de la connexió" +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"Miniaplicació per a l'àrea de notificació per gestionar els dispositius i " +"les connexions de xarxa." -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "Connexions de xarxa actives" +#: ../src/applet-dialogs.c:944 +msgid "NetworkManager Website" +msgstr "Lloc web del NetworkManager" -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Autenticació 802.1X amb fil" +#: ../src/applet-dialogs.c:959 +msgid "Missing resources" +msgstr "Recursos que manquen" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "Nom de _xarxa:" +#: ../src/applet-dialogs.c:984 +msgid "Mobile broadband network password" +msgstr "Contrasenya de la xarxa de banda ampla mòbil" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "automàtic" +#: ../src/applet-dialogs.c:993 +#, c-format +msgid "A password is required to connect to '%s'." +msgstr "Cal que introduïu una contrasenya per connectar-vos a «%s»." -#: ../src/connection-editor/ce-page.c:318 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "" -"No s'han pogut actualitzar els secrets de la connexió degut a un error " -"desconegut." +#: ../src/applet-dialogs.c:1012 +msgid "Password:" +msgstr "Contrasenya:" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 @@ -1072,6 +1126,46 @@ "Si s'habilita, aquesta connexió no s'utilitzarà mai com a connexió de xarxa " "predeterminada." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "Seleccioneu un tipus de connexió" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"Seleccioneu el tipus de connexió que voleu crear.\n" +"\n" +"Si voleu crear una connexió VPN i el tipus que voleu crear no apareix a la " +"llista, és probable que no tingueu el connector VPN adequat instal·lat." + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Crea..." + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "automàtic" + +#: ../src/connection-editor/ce-page.c:288 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "" +"No s'han pogut actualitzar els secrets de la connexió degut a un error " +"desconegut." + #: ../src/connection-editor/ce-page-dsl.ui.h:1 #: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 @@ -1102,15 +1196,113 @@ msgid "_Password:" msgstr "_Contrasenya:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 #: ../src/connection-editor/ce-page-ip4.ui.h:1 #: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 #: ../src/connection-editor/page-ip6.c:142 #: ../src/wireless-security/eap-method-peap.ui.h:2 msgid "Automatic" msgstr "Automàtic" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Parell creuat (TP)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Connector Attachment Unit Interface (AUI)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "Connector BNC" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Connector Media Independent Interface (MII)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Port:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Velocitat:" + +# FIXME (dpm) +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Dúple_x complet" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "Negociació aut_omàtica" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "Adreça _MAC del dispositiu:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "Adreça _MAC falsejada:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"El dispositiu de xarxa sobre el que s'activa la connexió utilitzarà aquesta " +"adreça MAC com a adreça de maquinari. Aquest mètode es coneix com a " +"falsejament d'identitat MAC. Exemple: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "bytes" + +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "Mode de _transport:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagrama" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "Connectat" + #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 msgid "Automatic with manual DNS settings" @@ -1171,11 +1363,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "_Dominis de cerca:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "Servidors _DNS:" @@ -1208,15 +1404,15 @@ #: ../src/connection-editor/ce-page-ip6.ui.h:13 msgid "Require IPv_6 addressing for this connection to complete" -msgstr "Cal l'adreçament IPv_6 per completar la connexió" +msgstr "Cal l'adreçament IPv_6 per completar la connexió" #: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "" "When connecting to IPv4-capable networks, allows the connection to complete " "if IPv6 configuration fails but IPv4 configuration succeeds." msgstr "" -"Quan es connecti a xarxes IPv4, permet completar la connexió per IPv4 en cas " -"que la configuració IPv6 falli." +"Quan es connecti a xarxes IPv4, permet completar la connexió per IPv4 en cas " +"que la configuració IPv6 falli." #: ../src/connection-editor/ce-page-mobile.ui.h:1 msgid "Any" @@ -1328,152 +1524,72 @@ msgid "Send PPP _echo packets" msgstr "Envia paquets d'_eco de PPP" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "Parell creuat (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "Connector Attachment Unit Interface (AUI)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "Connector BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "Connector Media Independent Interface (MII)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "_Port:" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "_Velocitat:" - -# FIXME (dpm) -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "Dúple_x complet" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "Negociació aut_omàtica" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "Adreça _MAC del dispositiu:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "C_loned MAC address:" -msgstr "Adreça _MAC falsejada:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"El dispositiu de xarxa sobre el que s'activa la connexió utilitzarà aquesta " -"adreça MAC com a adreça de maquinari. Aquest mètode es coneix com a " -"falsejament d'identitat MAC. Exemple: 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "_MTU:" -msgstr "_MTU:" - -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "bytes" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "_Seguretat:" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "" "Infraestructura\n" "Ad hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "Ad hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "mW" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "Po_tència de transmissió:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "_Velocitat:" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"L'opció bloqueja la connexió al punt d'accés sense fil (AP) especificat per " -"l'identificador BSSID. Exemple: 00:11:22:33:44:55" +"Aquesta opció bloqueja la connexió al punt d'accés sense fil (AP) " +"especificat per l'identificador BSSID. Exemple: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "_Canal:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "Ban_da:" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "M_ode:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "SS_ID:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "_Seguretat:" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Mètodes d'autenticació admesos" @@ -1527,77 +1643,334 @@ "mètodes d'autenticació. En cas que fallin les connexions, intenteu " "inhabilitar-ne alguns." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Adreça" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Seleccioneu un tipus de connexió VPN" +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Màscara de xarxa" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Passarel·la" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Mètrica" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Prefix" + +#: ../src/connection-editor/new-connection.c:75 +#: ../src/connection-editor/page-ethernet.c:273 +msgid "Ethernet" +msgstr "Cable" + +#: ../src/connection-editor/new-connection.c:80 +#: ../src/connection-editor/page-wifi.c:462 +msgid "Wi-Fi" +msgstr "Sense fil" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 +#: ../src/connection-editor/new-connection.c:90 +#: ../src/connection-editor/page-wimax.c:157 ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:95 +#: ../src/connection-editor/page-dsl.c:139 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:100 +#: ../src/connection-editor/page-infiniband.c:189 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:112 +#: ../src/connection-editor/page-vpn.c:111 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:245 +msgid "Import a saved VPN configuration..." +msgstr "Importa una configuració VPN..." + +#: ../src/connection-editor/nm-connection-editor.c:106 +#, c-format +msgid "Editing %s" +msgstr "S'està editant %s" + +#: ../src/connection-editor/nm-connection-editor.c:110 +msgid "Editing un-named connection" +msgstr "S'està editant la connexió sense nom" + +#: ../src/connection-editor/nm-connection-editor.c:297 msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." +"The connection editor could not find some required resources (the .ui file " +"was not found)." msgstr "" -"Seleccioneu el tipus de VPN que vulgueu utilitzar per a la connexió nova. Si " -"el tipus de connexió VPN que voleu crear no apareix a la llista, és probable " -"que no tingueu el connector VPN adequat instal·lat." +"L'editor de connexions no ha pogut trobar alguns dels recursos necessaris " +"(no s'ha trobat el fitxer d'interfície d'usuari)." + +#: ../src/connection-editor/nm-connection-editor.c:401 +msgid "Error creating connection editor dialog." +msgstr "S'ha produït un error en crear el diàleg de l'editor de connexions." + +#: ../src/connection-editor/nm-connection-editor.c:413 +msgid "_Save" +msgstr "_Desa" + +#: ../src/connection-editor/nm-connection-editor.c:414 +msgid "Save any changes made to this connection." +msgstr "Desa els canvis fets a la connexió." + +#: ../src/connection-editor/nm-connection-editor.c:415 +msgid "_Save..." +msgstr "_Desa..." + +#: ../src/connection-editor/nm-connection-editor.c:416 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "" +"Autentiqueu-vos per desar la connexió per a tots els usuaris de l'ordinador." + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "_Nom de la connexió:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "Connecta _automàticament" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "Disponible per a _tots els usuaris" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "E_xporta..." + +#: ../src/connection-editor/nm-connection-list.c:169 +msgid "never" +msgstr "mai" + +#: ../src/connection-editor/nm-connection-list.c:180 +#: ../src/connection-editor/nm-connection-list.c:191 +msgid "now" +msgstr "ara" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "fa %d minut" +msgstr[1] "fa %d minuts" + +#: ../src/connection-editor/nm-connection-list.c:202 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "fa %d hora" +msgstr[1] "fa %d hores" + +#: ../src/connection-editor/nm-connection-list.c:214 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "fa %d dia" +msgstr[1] "fa %d dies" + +#: ../src/connection-editor/nm-connection-list.c:220 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "fa %d mes" +msgstr[1] "fa %d mesos" + +#: ../src/connection-editor/nm-connection-list.c:224 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "fa %d any" +msgstr[1] "fa %d anys" + +#: ../src/connection-editor/nm-connection-list.c:443 +msgid "Connection add failed" +msgstr "No s'ha pogut afegir la connexió" + +#: ../src/connection-editor/nm-connection-list.c:472 +msgid "Error saving connection" +msgstr "S'ha produït un error en desar la connexió" + +#: ../src/connection-editor/nm-connection-list.c:473 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "La propietat «%s» / «%s» no és vàlida: %d" + +#: ../src/connection-editor/nm-connection-list.c:480 +#: ../src/connection-editor/nm-connection-list.c:598 +msgid "An unknown error occurred." +msgstr "S'ha produït un error desconegut." + +#: ../src/connection-editor/nm-connection-list.c:485 +#: ../src/connection-editor/nm-connection-list.c:638 +msgid "Error initializing editor" +msgstr "S'ha produït un error en inicialitzar l'editor" + +#: ../src/connection-editor/nm-connection-list.c:503 +#: ../src/connection-editor/nm-connection-list.c:655 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"No s'ha pogut inicialitzar el diàleg d'edició de les connexions a causa d'un " +"error desconegut." + +#: ../src/connection-editor/nm-connection-list.c:512 +msgid "Could not create new connection" +msgstr "No s'ha pogut crear la connexió nova" + +#: ../src/connection-editor/nm-connection-list.c:524 +msgid "Could not edit new connection" +msgstr "No s'ha pogut editar la connexió nova" + +#: ../src/connection-editor/nm-connection-list.c:669 +msgid "Could not edit connection" +msgstr "No s'ha pogut editar la connexió" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "Connection delete failed" +msgstr "No s'ha pogut suprimir la connexió" + +#: ../src/connection-editor/nm-connection-list.c:731 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Segur que voleu suprimir la connexió %s?" + +#: ../src/connection-editor/nm-connection-list.c:972 +msgid "Name" +msgstr "Nom" + +#: ../src/connection-editor/nm-connection-list.c:985 +msgid "Last Used" +msgstr "Utilitzada per última vegada" + +#. Edit +#: ../src/connection-editor/nm-connection-list.c:1026 +msgid "_Edit" +msgstr "_Edita" + +#: ../src/connection-editor/nm-connection-list.c:1027 +msgid "Edit the selected connection" +msgstr "Edita la connexió seleccionada" + +#: ../src/connection-editor/nm-connection-list.c:1028 +msgid "_Edit..." +msgstr "_Edita..." + +#: ../src/connection-editor/nm-connection-list.c:1029 +msgid "Authenticate to edit the selected connection" +msgstr "Autentiqueu-vos per editar la connexió seleccionada" + +#. Delete +#: ../src/connection-editor/nm-connection-list.c:1043 +msgid "_Delete" +msgstr "_Suprimeix" + +#: ../src/connection-editor/nm-connection-list.c:1044 +msgid "Delete the selected connection" +msgstr "Suprimeix la connexió seleccionada" + +#: ../src/connection-editor/nm-connection-list.c:1045 +msgid "_Delete..." +msgstr "_Suprimeix..." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "Crea..." +#: ../src/connection-editor/nm-connection-list.c:1046 +msgid "Authenticate to delete the selected connection" +msgstr "Autentiqueu-vos per suprimir la connexió seleccionada" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Adreça" +#: ../src/connection-editor/nm-connection-list.c:1285 +msgid "Error creating connection" +msgstr "S'ha produït un error en crear la connexió" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Màscara de xarxa" +#: ../src/connection-editor/nm-connection-list.c:1286 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Es desconeix com crear connexions «%s»" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Passarel·la" +#: ../src/connection-editor/nm-connection-list.c:1341 +msgid "Error editing connection" +msgstr "S'ha produït un error en editar la connexió" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Mètrica" +#: ../src/connection-editor/nm-connection-list.c:1342 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "No s'ha pogut trobar cap connexió amb UUID «%s»" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Prefix" +#: ../src/connection-editor/page-8021x-security.c:119 +msgid "802.1x Security" +msgstr "Seguretat 802.1X" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1518 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-8021x-security.c:121 +msgid "Could not load 802.1x Security user interface." +msgstr "" +"No s'ha pogut carregar la interfície d'usuari per a la seguretat de 802.1X." + +#: ../src/connection-editor/page-8021x-security.c:139 +msgid "Use 802.1_X security for this connection" +msgstr "Utilitza la seguretat 802.1_X per a aquesta connexió" #: ../src/connection-editor/page-dsl.c:141 msgid "Could not load DSL user interface." msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:233 #, c-format msgid "DSL connection %d" msgstr "Connexió DSL %d" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"L'opció bloqueja la connexió al dispositiu de xarxa especificat per l'adreça " +"MAC. Exemple: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:275 +msgid "Could not load ethernet user interface." +msgstr "" +"No s'ha pogut carregar la interfície d'usuari per a la connexió amb fil." + +#: ../src/connection-editor/page-ethernet.c:451 +#, c-format +msgid "Ethernet connection %d" +msgstr "Connexió de xarxa amb fil %d" + +#: ../src/connection-editor/page-infiniband.c:192 +msgid "Could not load InfiniBand user interface." +msgstr "" +"No s'ha pogut carregar la interfície d'usuari per a la connexió InfiniBand." + +#: ../src/connection-editor/page-infiniband.c:317 +#, c-format +msgid "InfiniBand connection %d" +msgstr "Connexió InfiniBand %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1606,7 +1979,7 @@ #: ../src/connection-editor/page-ip4.c:134 #: ../src/connection-editor/page-ip6.c:133 msgid "Automatic (VPN) addresses only" -msgstr "Només adreces (VPN) automàtiques" +msgstr "Només adreces (VPN) automàtiques" #: ../src/connection-editor/page-ip4.c:137 #: ../src/connection-editor/page-ip6.c:136 @@ -1646,16 +2019,26 @@ msgid "Disabled" msgstr "Inhabilitada" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Servidors _DNS addicionals:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Dominis de _cerca addicionals:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Edició de les rutes IPv4 per a %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "Paràmetres IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió IPv4." @@ -1664,7 +2047,7 @@ msgstr "Automàtic, només adreces" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ignora" @@ -1672,16 +2055,16 @@ msgid "Automatic, DHCP only" msgstr "Automàtic, només DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Edició de les rutes IPv6 per a %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "Paràmetres IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió IPv6." @@ -1696,11 +2079,11 @@ msgstr "No s'admet el tipus de connexió de banda ampla mòbil." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:642 msgid "Select Mobile Broadband Provider Type" msgstr "Seleccioneu el tipus de proveïdor de banda ampla mòbil" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:677 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." @@ -1708,13 +2091,13 @@ "Seleccioneu la tecnologia que utilitza el vostre proveïdor de banda ampla " "mòbil. Si no n'esteu segur, demaneu-ho al vostre proveïdor." -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:682 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "" "El meu proveïdor utilitza tecnologia basada en _GSM (és a dir, GPRS, EDGE, " "UMTS, HSDPA)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:689 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "" "El meu proveïdor utilitza tecnologia basada en C_DMA (és a dir, 1xRTT, EVDO)" @@ -1726,334 +2109,59 @@ #: ../src/connection-editor/page-ppp.c:135 #: ../src/wireless-security/eap-method-ttls.c:230 msgid "PAP" -msgstr "PAP" - -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:280 -msgid "CHAP" -msgstr "CHAP" - -#: ../src/connection-editor/page-ppp.c:137 -#: ../src/wireless-security/eap-method-fast.c:277 -#: ../src/wireless-security/eap-method-peap.c:246 -#: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "cap" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Edició dels mètodes d'autenticació PPP per a %s" - -#: ../src/connection-editor/page-ppp.c:282 -msgid "PPP Settings" -msgstr "Paràmetres PPP" - -#: ../src/connection-editor/page-ppp.c:284 -msgid "Could not load PPP user interface." -msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió PPP." - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1514 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió VPN." - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "No s'ha trobat cap servei de connector VPN per a «%s»." - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:899 -#, c-format -msgid "VPN connection %d" -msgstr "Connexió VPN %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"L'opció bloqueja la connexió al dispositiu de xarxa especificat per l'adreça " -"MAC. Exemple: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1502 -msgid "Wired" -msgstr "Amb fil" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "" -"No s'ha pogut carregar la interfície d'usuari per a la connexió amb fil." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Connexió de xarxa amb fil %d" - -#: ../src/connection-editor/page-wired-security.c:119 -msgid "802.1x Security" -msgstr "Seguretat 802.1X" - -#: ../src/connection-editor/page-wired-security.c:121 -msgid "Could not load Wired Security security user interface." -msgstr "" -"No s'ha pogut carregar la interfície d'usuari per a la seguretat de la " -"connexió amb fil." - -#: ../src/connection-editor/page-wired-security.c:139 -msgid "Use 802.1_X security for this connection" -msgstr "Utilitza la seguretat 802.1_X per a aquesta connexió" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "predeterminat" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1506 -msgid "Wireless" -msgstr "Sense fil" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió Wi-Fi." - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Connexió de xarxa sense fil %d" - -#: ../src/connection-editor/page-wireless-security.c:264 -#: ../src/libnm-gtk/nm-wireless-dialog.c:922 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "Clau WEP de 40/128 bits (Hex o ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:273 -#: ../src/libnm-gtk/nm-wireless-dialog.c:931 -msgid "WEP 128-bit Passphrase" -msgstr "Contrasenya WEP de 128 bits" - -#: ../src/connection-editor/page-wireless-security.c:299 -#: ../src/libnm-gtk/nm-wireless-dialog.c:961 -msgid "Dynamic WEP (802.1x)" -msgstr "WEP dinàmic (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:313 -#: ../src/libnm-gtk/nm-wireless-dialog.c:975 -msgid "WPA & WPA2 Personal" -msgstr "WPA i WPA2 Personal" - -#: ../src/connection-editor/page-wireless-security.c:327 -#: ../src/libnm-gtk/nm-wireless-dialog.c:989 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA i WPA2 Enterprise" - -#: ../src/connection-editor/page-wireless-security.c:361 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"No s'ha pogut carregar la interfície d'usuari per a la seguretat de la " -"connexió Wi-Fi. Manca un paràmetre de la connexió Wi-Fi." - -#: ../src/connection-editor/page-wireless-security.c:371 -msgid "Wireless Security" -msgstr "Seguretat de la xarxa sense fil" - -#: ../src/connection-editor/page-wireless-security.c:373 -msgid "Could not load WiFi security user interface." -msgstr "" -"No s'ha pogut carregar la interfície d'usuari per a la seguretat de la " -"connexió Wi-Fi." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "S'està editant %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "S'està editant la connexió sense nom" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"L'editor de connexions no ha pogut trobar alguns dels recursos necessaris " -"(no s'ha trobat el fitxer d'interfície d'usuari)." - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "S'ha produït un error en crear el diàleg de l'editor de connexions." - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "_Desa" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "Desa els canvis fets a la connexió." - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "_Desa..." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "" -"Autentiqueu-vos per desar la connexió per a tots els usuaris de l'ordinador." - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "_Importa" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "E_xporta" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "_Nom de la connexió:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "Connecta _automàticament" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Disponible per a tots els usuaris" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "mai" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "ara" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "fa %d minut" -msgstr[1] "fa %d minuts" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "fa %d hora" -msgstr[1] "fa %d hores" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "fa %d dia" -msgstr[1] "fa %d dies" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "fa %d mes" -msgstr[1] "fa %d mesos" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "fa %d any" -msgstr[1] "fa %d anys" - -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "No s'ha pogut afegir la connexió" - -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "S'ha produït un error en desar la connexió" +msgstr "PAP" -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "La propietat «%s» / «%s» no és vàlida: %d" +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "S'ha produït un error desconegut." +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "S'ha produït un error en inicialitzar l'editor" +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:885 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "" -"No s'ha pogut inicialitzar el diàleg d'edició de les connexions a causa d'un " -"error desconegut." +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "cap" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "No s'ha pogut crear la connexió nova" +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Edició dels mètodes d'autenticació PPP per a %s" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "No s'ha pogut editar la connexió nova" +#: ../src/connection-editor/page-ppp.c:282 +msgid "PPP Settings" +msgstr "Paràmetres PPP" -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "No s'ha pogut editar la connexió" +#: ../src/connection-editor/page-ppp.c:284 +msgid "Could not load PPP user interface." +msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió PPP." -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "No s'ha pogut suprimir la connexió" +#: ../src/connection-editor/page-vpn.c:113 +msgid "Could not load VPN user interface." +msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió VPN." -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:128 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Segur que voleu suprimir la connexió %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "No s'ha trobat cap servei de connector VPN per a «%s»." -#: ../src/connection-editor/nm-connection-list.c:929 -#: ../src/connection-editor/vpn-helpers.c:228 -msgid "Cannot import VPN connection" -msgstr "No es pot importar la connexió VPN" +#: ../src/connection-editor/page-vpn.c:222 +#: ../src/connection-editor/page-vpn.c:305 +#, c-format +msgid "VPN connection %d" +msgstr "Connexió VPN %d" -#: ../src/connection-editor/nm-connection-list.c:931 +#: ../src/connection-editor/page-vpn.c:248 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2063,81 +2171,102 @@ "\n" "Error: no hi ha cap tipus de servei VPN." -#: ../src/connection-editor/nm-connection-list.c:944 -msgid "Could not edit imported connection" -msgstr "No s'ha pogut editar la connexió importada" +#: ../src/connection-editor/page-vpn.c:273 +msgid "Choose a VPN Connection Type" +msgstr "Seleccioneu un tipus de connexió VPN" -#: ../src/connection-editor/nm-connection-list.c:1125 -msgid "Name" -msgstr "Nom" +#: ../src/connection-editor/page-vpn.c:274 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Seleccioneu el tipus de VPN que vulgueu utilitzar per a la connexió nova. Si " +"el tipus de connexió VPN que voleu crear no apareix a la llista, és probable " +"que no tingueu el connector VPN adequat instal·lat." -#: ../src/connection-editor/nm-connection-list.c:1137 -msgid "Last Used" -msgstr "Utilitzada per última vegada" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "predeterminat" + +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1263 -msgid "No VPN plugin available. Please install one to enable this button." +#: ../src/connection-editor/page-wifi.c:464 +msgid "Could not load Wi-Fi user interface." msgstr "" -"No hi ha cap connector de VPN disponible. Instal·leu-ne algun per habilitar " -"aquest botó." +"No s'ha pogut carregar la interfície d'usuari per a la connexió sense fil." -#: ../src/connection-editor/nm-connection-list.c:1274 -msgid "_Edit" -msgstr "_Edita" +#: ../src/connection-editor/page-wifi.c:669 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Connexió de xarxa sense fil %d" -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "Edit the selected connection" -msgstr "Edita la connexió seleccionada" +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Cap" -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "_Edit..." -msgstr "_Edita..." +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "Clau WEP de 40/128 bits (Hex o ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "Authenticate to edit the selected connection" -msgstr "Autentiqueu-vos per editar la connexió seleccionada" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "Contrasenya WEP de 128 bits" -#: ../src/connection-editor/nm-connection-list.c:1292 -msgid "_Delete" -msgstr "_Suprimeix" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "WEP dinàmic (802.1X)" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "Delete the selected connection" -msgstr "Suprimeix la connexió seleccionada" +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "WPA i WPA2 Personal" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "_Delete..." -msgstr "_Suprimeix..." +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA i WPA2 Enterprise" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "Authenticate to delete the selected connection" -msgstr "Autentiqueu-vos per suprimir la connexió seleccionada" +#: ../src/connection-editor/page-wifi-security.c:395 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"No s'ha pogut carregar la interfície d'usuari per a la seguretat de la " +"connexió sense fil. Manca un paràmetre de la connexió sense fil." -#: ../src/connection-editor/nm-connection-list.c:1574 -msgid "Error creating connection" -msgstr "S'ha produït un error en crear la connexió" +#: ../src/connection-editor/page-wifi-security.c:405 +msgid "Wi-Fi Security" +msgstr "Seguretat de la xarxa sense fil" -#: ../src/connection-editor/nm-connection-list.c:1575 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Es desconeix com crear connexions «%s»" +#: ../src/connection-editor/page-wifi-security.c:407 +msgid "Could not load Wi-Fi security user interface." +msgstr "" +"No s'ha pogut carregar la interfície d'usuari per a la seguretat de la " +"connexió sense fil." -#: ../src/connection-editor/nm-connection-list.c:1630 -#: ../src/connection-editor/nm-connection-list.c:1642 -msgid "Error editing connection" -msgstr "S'ha produït un error en editar la connexió" +#: ../src/connection-editor/page-wimax.c:160 +msgid "Could not load WiMAX user interface." +msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió WiMAX." -#: ../src/connection-editor/nm-connection-list.c:1631 +#: ../src/connection-editor/page-wimax.c:289 #, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Es desconeix com editar connexions «%s»" +msgid "WiMAX connection %d" +msgstr "Connexió WiMAX %d" -#: ../src/connection-editor/nm-connection-list.c:1643 -#, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "No s'ha pogut trobar cap connexió amb UUID «%s»" +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "No es pot importar la connexió VPN" -#: ../src/connection-editor/vpn-helpers.c:230 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2150,29 +2279,29 @@ "\n" "Error: %s." -#: ../src/connection-editor/vpn-helpers.c:263 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Seleccioneu el fitxer a importar" -#: ../src/connection-editor/vpn-helpers.c:314 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Ja existeix un fitxer anomenat «%s»." -#: ../src/connection-editor/vpn-helpers.c:316 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "_Reemplaça" -#: ../src/connection-editor/vpn-helpers.c:318 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Voleu reemplaçar %s per la connexió VPN que esteu desant?" -#: ../src/connection-editor/vpn-helpers.c:354 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "No es pot exportar la connexió VPN" -#: ../src/connection-editor/vpn-helpers.c:356 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2183,65 +2312,87 @@ "\n" "Error: %s." -#: ../src/connection-editor/vpn-helpers.c:391 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Exporta una connexió VPN..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Ha fallat la creació de la connexió PAN: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"La miniaplicació NetworkManager no ha pogut trobar alguns dels recursos " +"necessaris (no s'ha trobat el fitxer d'interfície d'usuari)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Ja podeu utilitzar el telèfon." +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"No s'ha pogut configurar el Bluetooth (no s'ha pogut connectar al D-Bus: " +"(%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "Xarxa %s" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"No s'ha pogut configurar el Bluetooth (no s'ha pogut trobar el " +"NetworkManager: (%s) %s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Utilitzeu el telèfon mòbil com a dispositiu de xarxa (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Accediu a Internet a través del telèfon mòbil (DUN)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Error: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "No s'ha pogut crear la connexió DUN: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Ja podeu utilitzar el telèfon." + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "S'ha cancel·lat l'auxiliar per a connexions mòbils" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Tipus de dispositiu de telèfon desconegut (ni GSM ni CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "es desconeix el tipus de mòdem." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "no s'ha pogut connectar al telèfon." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "el telèfon s'ha desconnectat de manera inesperada." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "s'ha acabat el temps d'espera de la detecció dels detalls del telèfon." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "S'està detectant la configuració del telèfon..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "no s'ha pogut trobar el dispositiu Bluetooth." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2249,35 +2400,33 @@ "Cal habilitar l'adaptador de Bluetooth abans d'editar una connexió de xarxa " "de marcatge directe." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "" -"No s'ha pogut configurar el Bluetooth (no s'ha pogut connectar al D-Bus: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" -"No s'ha pogut configurar el Bluetooth (no s'ha pogut crear el servidor " -"intermediari D-Bus)." +msgid "Failed to create PAN connection: %s" +msgstr "Ha fallat la creació de la connexió PAN: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"No s'ha pogut configurar el Bluetooth (no s'ha pogut trobar el " -"NetworkManager: %s)." +msgid "%s Network" +msgstr "Xarxa %s" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Utilitzeu el telèfon mòbil com a dispositiu de xarxa (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Desbloqueja automàticament aquest dispositiu" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Accediu a Internet a través del telèfon mòbil (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_Desbloqueja" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Informació de la connexió" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Connexions de xarxa actives" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "" @@ -2285,21 +2434,21 @@ "següents:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "El dispositiu:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "El proveïdor:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "El pla:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2313,23 +2462,23 @@ "voleu modificar els paràmetres de la connexió de banda ampla mòbil, trieu " "l'entrada «Connexions de xarxa» del menú Sistema >> Preferències." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Confirmeu els paràmetres de la banda ampla mòbil" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "No és a la llista" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "_Seleccioneu el vostre pla:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "_APN (Access Point Name - nom del punt d'accés) del pla seleccionat:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2342,67 +2491,67 @@ "Si no esteu segur de quin és el vostre pla, demaneu al proveïdor que us " "n'indiqui l'APN («Access Point Name», nom del punt d'accés)." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Seleccioneu el pla de facturació" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "No és a la llista..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "Seleccioneu el proveïdor des d'una _llista:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Proveïdor" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "No hi ha el proveïdor i vull introduir-lo _manualment:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Proveïdor:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "El proveïdor utilitza tecnologia GSM (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "El proveïdor utilitza tecnologia CDMA (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Trieu el proveïdor" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Llista de països o regions:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "País o regió:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "El meu país no és a la llista" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Trieu el país o regió del vostre proveïdor" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Dispositiu GSM instal·lat" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Dispositiu CDMA instal·lat" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2410,103 +2559,102 @@ "L'auxiliar us ajudarà a configurar una connexió de banda ampla mòbil a una " "xarxa cel·lular (3G) de manera fàcil." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Us caldrà la informació següent:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "El nom del proveïdor de banda ampla" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "El nom del pla de facturació de banda ampla" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" "L'APN (Access Point Name - nom del punt d'accés) del vostre pla de " "facturació de banda ampla (només en alguns casos)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Crea una connexió per a aques_t dispositiu de banda ampla mòbil:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Qualsevol dispositiu" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Configura una connexió de banda ampla mòbil" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Connexió de banda ampla mòbil nova" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "Nova..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "C_rea" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network " -"'%s'." +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "" "Cal una contrasenya o claus d'encriptació per accedir a la xarxa sense fil " "«%s»." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 -msgid "Wireless Network Authentication Required" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" msgstr "Cal autenticació per a la xarxa sense fil" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 -msgid "Authentication required by wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" msgstr "Cal autenticació per a la xarxa sense fil" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 -msgid "Create New Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" msgstr "Crea una xarxa sense fil nova" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 -msgid "New wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" msgstr "Xarxa sense fil nova" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "Enter a name for the wireless network you wish to create." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." msgstr "Introduïu el nom de la xarxa sense fil que voleu crear." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 -msgid "Connect to Hidden Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" msgstr "Connecta't a la xarxa sense fil oculta" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 -msgid "Hidden wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" msgstr "Xarxa sense fil oculta" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." msgstr "" "Introduïu el nom i els paràmetres de seguretat de la xarxa sense fil oculta " "a la qual us vulgueu connectar." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wi-Fi _security:" msgstr "Seguretat de la _xarxa sense fil:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Co_nnexió:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" +msgid "Wi-Fi _adapter:" msgstr "_Adaptador sense fil:" #: ../src/main.c:73 @@ -2557,10 +2705,6 @@ msgid "HSPA" msgstr "HSPA" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "no està habilitat" @@ -2611,40 +2755,55 @@ msgid "Default" msgstr "Predeterminat" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"La miniaplicació NetworkManager no ha pogut trobar alguns dels recursos " -"necessaris (no s'ha trobat el fitxer d'interfície d'usuari)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "connexió de %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "No s'ha triat cap certificat d'autoritat de certificació (CA)" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" "Si no utilitzeu un certificat d'autoritat de certificació (CA), és possible " "que s'estableixin connexions a xarxes insegures o malicioses. Voleu triar-ne " "un?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Trieu un certificat de CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Claus privades DER, PEM o PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Certificats DER o PEM (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Seleccioneu un fitxer PAC..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "Fitxers PAC (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Tots els fitxers" + #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Anònim" @@ -2655,7 +2814,7 @@ #: ../src/wireless-security/eap-method-fast.ui.h:4 msgid "Both" -msgstr "Ambdós" +msgstr "Ambdós" #: ../src/wireless-security/eap-method-fast.ui.h:5 #: ../src/wireless-security/eap-method-peap.ui.h:5 @@ -2678,25 +2837,8 @@ msgid "Allow automatic PAC pro_visioning" msgstr "_Permet la provisió automàtica PAC" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Seleccioneu un fitxer PAC..." - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "Fitxers PAC (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Tots els fitxers" - #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:372 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2744,7 +2886,7 @@ "vostres credencials de seguretat podrien veure's compromeses. Seleccioneu " "una clau privada protegida per contrasenya.\n" "\n" -"(Podeu utilitzar l'openssl per protegir la vostra clau privada)" +"(Podeu utilitzar l'OpenSSL per protegir la vostra clau privada)" #: ../src/wireless-security/eap-method-tls.c:410 msgid "Choose your personal certificate..." @@ -2782,19 +2924,19 @@ msgid "Yes" msgstr "Sí" -#: ../src/wireless-security/wireless-security.c:384 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:408 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:419 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "TLS per túnel" -#: ../src/wireless-security/wireless-security.c:430 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "EAP protegit (PEAP)" @@ -2840,6 +2982,72 @@ msgid "WEP inde_x:" msgstr "Índe_x WEP:" +#~ msgid "Wireless Networks (%s)" +#~ msgstr "Xarxes sense fil (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "Xarxa sense fil (%s)" + +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "Xarxa sense fil" +#~ msgstr[1] "Xarxes sense fil" + +#~ msgid "wireless is disabled" +#~ msgstr "la xarxa sense fil està inhabilitada" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "l'interruptor de maquinari inhabilita les xarxes sense fil" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "S'està preparant la connexió de xarxa sense fil «%s»..." + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "S'està configurant la connexió de xarxa sense fil «%s»..." + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "" +#~ "S'està sol·licitant una adreça de xarxa per a la xarxa sense fil «%s»..." + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "La connexió de xarxa sense fil «%s» és activa" + +#~ msgid "Wired" +#~ msgstr "Amb fil" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "" +#~ "No s'ha pogut carregar la interfície d'usuari per a la seguretat de la " +#~ "connexió amb fil." + +#~ msgid "Wireless" +#~ msgstr "Sense fil" + +#~ msgid "Wireless connection %d" +#~ msgstr "Connexió de xarxa sense fil %d" + +#~ msgid "_Import" +#~ msgstr "_Importa" + +#~ msgid "Could not edit imported connection" +#~ msgstr "No s'ha pogut editar la connexió importada" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "" +#~ "No hi ha cap connector de VPN disponible. Instal·leu-ne algun per " +#~ "habilitar aquest botó." + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "Es desconeix com editar connexions «%s»" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "no s'ha pogut trobar el dispositiu Bluetooth." + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "" +#~ "No s'ha pogut configurar el Bluetooth (no s'ha pogut crear el servidor " +#~ "intermediari D-Bus)." + #~ msgid "PI_N:" #~ msgstr "P_IN:" diff -Nru network-manager-applet-0.9.4.1/po/ca@valencia.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ca@valencia.po --- network-manager-applet-0.9.4.1/po/ca@valencia.po 2012-03-16 16:07:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ca@valencia.po 2012-10-31 13:20:57.000000000 +0000 @@ -6,13 +6,14 @@ # David Planella Molas , 2008, 2009, 2011. # Jordi Estrada , 2010. # Gil Forcada , 2011, 2012. +# Jordi Serratosa , 2012. # msgid "" msgstr "" "Project-Id-Version: NetworkManager\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-15 23:15+0100\n" -"PO-Revision-Date: 2012-03-10 17:54+0100\n" +"POT-Creation-Date: 2012-08-12 21:28+0200\n" +"PO-Revision-Date: 2012-08-12 21:27+0200\n" "Last-Translator: Gil Forcada \n" "Language-Team: Catalan \n" "Language: ca-XV\n" @@ -34,6 +35,7 @@ msgstr "Inhabilita les notificacions de connexió" #: ../nm-applet.schemas.in.h:2 +#, fuzzy msgid "Set this to TRUE to disable notifications when connecting to a network." msgstr "" "Establiu-ho a «TRUE» (cert) per inhabilitar les notificacions en connectar-" @@ -44,6 +46,7 @@ msgstr "Inhabilita les notificacions de desconnexió" #: ../nm-applet.schemas.in.h:4 +#, fuzzy msgid "" "Set this to TRUE to disable notifications when disconnecting from a network." msgstr "" @@ -55,6 +58,7 @@ msgstr "No mostres les notificacions de xarxes disponibles" #: ../nm-applet.schemas.in.h:6 +#, fuzzy msgid "" "Set this to TRUE to disable notifications when wireless networks are " "available." @@ -73,9 +77,10 @@ #: ../nm-applet.schemas.in.h:9 msgid "Disable WiFi Create" -msgstr "Inhabilita la creació de connexions Wi-Fi" +msgstr "Inhabilita la creació de connexions sense fil" #: ../nm-applet.schemas.in.h:10 +#, fuzzy msgid "" "Set to TRUE to disable creation of adhoc networks when using the applet." msgstr "" @@ -93,7 +98,7 @@ #: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 #: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Disponible" @@ -106,7 +111,7 @@ #: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 #: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "S'ha establit la connexió" @@ -135,7 +140,7 @@ #: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 #: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:2506 #, c-format msgid "Requesting a network address for '%s'..." msgstr "S'està sol·licitant una adreça de xarxa per a «%s»..." @@ -311,66 +316,72 @@ msgstr "Ethernet automàtic" #: ../src/applet-device-wired.c:205 -#, c-format +#, fuzzy, c-format msgid "Wired Networks (%s)" -msgstr "Xarxes amb fil (%s)" +msgstr "Xarxes sense fil (%s)" #: ../src/applet-device-wired.c:207 -#, c-format +#, fuzzy, c-format msgid "Wired Network (%s)" -msgstr "Xarxa amb fil (%s)" +msgstr "Xarxa sense fil (%s)" #: ../src/applet-device-wired.c:210 +#, fuzzy msgid "Wired Networks" -msgstr "Xarxes amb fil" +msgstr "Xarxa sense fil" #: ../src/applet-device-wired.c:212 +#, fuzzy msgid "Wired Network" -msgstr "Xarxa amb fil" +msgstr "Xarxa sense fil" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1510 msgid "disconnected" msgstr "desconnectat" #: ../src/applet-device-wired.c:274 +#, fuzzy msgid "You are now connected to the wired network." -msgstr "Esteu connectat a la xarxa amb fil." +msgstr "Esteu connectat a la xarxa WiMAX." #: ../src/applet-device-wired.c:300 -#, c-format +#, fuzzy, c-format msgid "Preparing wired network connection '%s'..." -msgstr "S'està preparant la connexió de xarxa amb fil «%s»..." +msgstr "S'està preparant la connexió de xarxa sense fil «%s»..." #: ../src/applet-device-wired.c:303 -#, c-format +#, fuzzy, c-format msgid "Configuring wired network connection '%s'..." -msgstr "S'està configurant la connexió de xarxa amb fil «%s»..." +msgstr "S'està configurant la connexió de xarxa sense fil «%s»..." #: ../src/applet-device-wired.c:306 -#, c-format +#, fuzzy, c-format msgid "User authentication required for wired network connection '%s'..." -msgstr "Cal l'autenticació d'usuari per a la connexió de xarxa amb fil «%s»..." +msgstr "Cal l'autenticació d'usuari per a la connexió de xarxa «%s»..." #: ../src/applet-device-wired.c:309 -#, c-format +#, fuzzy, c-format msgid "Requesting a wired network address for '%s'..." -msgstr "S'està sol·licitant una adreça de xarxa per a la xarxa amb fil «%s»..." +msgstr "" +"S'està sol·licitant una adreça de xarxa per a la xarxa sense fil «%s»..." #: ../src/applet-device-wired.c:313 -#, c-format +#, fuzzy, c-format msgid "Wired network connection '%s' active" -msgstr "La connexió de xarxa amb fil «%s» és activa" +msgstr "La connexió de xarxa sense fil «%s» és activa" #: ../src/applet-device-wired.c:494 msgid "DSL authentication" msgstr "Autenticació DSL" #: ../src/applet-device-wifi.c:97 +#, fuzzy msgid "_Connect to Hidden Wireless Network..." msgstr "_Connecta a una xarxa sense fil oculta..." #: ../src/applet-device-wifi.c:150 +#, fuzzy msgid "Create _New Wireless Network..." msgstr "Crea una xarxa sense fil _nova..." @@ -378,83 +389,103 @@ msgid "(none)" msgstr "(cap)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Networks (%s)" msgstr "Xarxes sense fil (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:794 #, c-format msgid "Wireless Network (%s)" msgstr "Xarxa sense fil (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:796 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Xarxa sense fil" msgstr[1] "Xarxes sense fil" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:829 msgid "wireless is disabled" msgstr "la xarxa sense fil està inhabilitada" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:830 msgid "wireless is disabled by hardware switch" msgstr "l'interruptor de maquinari inhabilita les xarxes sense fil" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:891 msgid "More networks" msgstr "Més xarxes" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1071 +#, fuzzy msgid "Wireless Networks Available" msgstr "Hi ha xarxes sense fil disponibles" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1072 +#, fuzzy msgid "Use the network menu to connect to a wireless network" msgstr "Utilitzeu el menú de xarxa per connectar-vos a una xarxa sense fil" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 +#: ../src/applet-device-wifi.c:1075 ../src/applet.c:926 msgid "Don't show this message again" msgstr "No tornes a mostrar este missatge" -#: ../src/applet-device-wifi.c:1277 -#, c-format +#: ../src/applet-device-wifi.c:1267 +#, fuzzy, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Esteu connectat a la xarxa sense fil «%s»." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1298 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "S'està preparant la connexió de xarxa sense fil «%s»..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1301 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "S'està configurant la connexió de xarxa sense fil «%s»..." -#: ../src/applet-device-wifi.c:1314 -#, c-format +#: ../src/applet-device-wifi.c:1304 +#, fuzzy, c-format msgid "User authentication required for wireless network '%s'..." msgstr "" "Cal l'autenticació d'usuari per a la connexió de xarxa sense fil «%s»..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1307 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "" "S'està sol·licitant una adreça de xarxa per a la xarxa sense fil «%s»..." -#: ../src/applet-device-wifi.c:1338 -#, c-format +#: ../src/applet-device-wifi.c:1328 +#, fuzzy, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "La connexió de xarxa sense fil «%s» és activa: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1333 #, c-format msgid "Wireless network connection '%s' active" msgstr "La connexió de xarxa sense fil «%s» és activa" +#: ../src/applet-device-wifi.c:1381 +msgid "Failed to activate connection" +msgstr "Ha fallat l'activació de la connexió" + +#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 +#: ../src/applet.c:492 ../src/applet.c:536 ../src/applet.c:562 +msgid "Unknown error" +msgstr "Error desconegut" + +#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 +#: ../src/applet.c:495 ../src/applet.c:565 +msgid "Connection failure" +msgstr "Ha fallat la connexió" + +#: ../src/applet-device-wifi.c:1400 +msgid "Failed to add new connection" +msgstr "No s'ha pogut afegir una connexió nova" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -481,9 +512,9 @@ msgstr "S'ha produït un error en mostrar la informació de la connexió:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:286 +#: ../src/connection-editor/page-wireless-security.c:313 #: ../src/libnm-gtk/nm-wireless-dialog.c:948 -#: ../src/wireless-security/wireless-security.c:396 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -501,7 +532,7 @@ msgstr "WEP" #: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 -#: ../src/connection-editor/page-wireless-security.c:240 +#: ../src/connection-editor/page-wireless-security.c:265 #: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" @@ -717,7 +748,23 @@ msgid "Password:" msgstr "Contrasenya:" -#: ../src/applet.c:995 +#: ../src/applet.c:490 +msgid "Failed to add/activate connection" +msgstr "Ha fallat l'addició/activació de la connexió" + +#: ../src/applet.c:534 +msgid "Device disconnect failed" +msgstr "Ha fallat la desconnexió del dispositiu" + +#: ../src/applet.c:539 +msgid "Disconnect failure" +msgstr "Ha fallat la desconnexió" + +#: ../src/applet.c:560 +msgid "Connection activation failed" +msgstr "Ha fallat l'activació de la connexió" + +#: ../src/applet.c:1015 #, c-format msgid "" "\n" @@ -728,7 +775,7 @@ "No s'ha pogut establir la connexió VPN «%s» perquè s'ha interromput la " "connexió de xarxa." -#: ../src/applet.c:998 +#: ../src/applet.c:1018 #, c-format msgid "" "\n" @@ -738,7 +785,7 @@ "No s'ha pogut establir la connexió VPN «%s» perquè el servei VPN s'ha parat " "de manera inesperada." -#: ../src/applet.c:1001 +#: ../src/applet.c:1021 #, c-format msgid "" "\n" @@ -749,7 +796,7 @@ "No s'ha pogut establir la connexió VPN «%s» perquè el servei VPN ha retornat " "una configuració no vàlida." -#: ../src/applet.c:1004 +#: ../src/applet.c:1024 #, c-format msgid "" "\n" @@ -759,7 +806,7 @@ "No s'ha pogut establir la connexió VPN «%s» perquè s'ha acabat el temps " "d'espera de l'intent de connexió." -#: ../src/applet.c:1007 +#: ../src/applet.c:1027 #, c-format msgid "" "\n" @@ -769,7 +816,7 @@ "No s'ha pogut establir la connexió VPN «%s» perquè el servei VPN no s'ha " "iniciat en el temps establit." -#: ../src/applet.c:1010 +#: ../src/applet.c:1030 #, c-format msgid "" "\n" @@ -779,7 +826,7 @@ "No s'ha pogut establir la connexió VPN «%s» perquè no s'ha pogut iniciar el " "servei VPN." -#: ../src/applet.c:1013 +#: ../src/applet.c:1033 #, c-format msgid "" "\n" @@ -789,7 +836,7 @@ "No s'ha pogut establir la connexió VPN «%s» perquè no s'ha trobat cap secret " "VPN vàlid." -#: ../src/applet.c:1016 +#: ../src/applet.c:1036 #, c-format msgid "" "\n" @@ -799,7 +846,7 @@ "No s'ha pogut establir la connexió VPN «%s» perquè els secrets VPN no són " "vàlids." -#: ../src/applet.c:1023 +#: ../src/applet.c:1043 #, c-format msgid "" "\n" @@ -808,7 +855,7 @@ "\n" "No s'ha pogut establir la connexió VPN «%s»." -#: ../src/applet.c:1041 +#: ../src/applet.c:1061 #, c-format msgid "" "\n" @@ -819,7 +866,7 @@ "S'ha desconnectat la connexió VPN «%s» perquè s'ha interromput la connexió " "de xarxa." -#: ../src/applet.c:1044 +#: ../src/applet.c:1064 #, c-format msgid "" "\n" @@ -828,7 +875,7 @@ "\n" "S'ha desconnectat la connexió VPN «%s» perquè s'ha parat el servei VPN." -#: ../src/applet.c:1050 +#: ../src/applet.c:1070 #, c-format msgid "" "\n" @@ -837,15 +884,30 @@ "\n" "S'ha desconnectat la connexió VPN «%s»." -#: ../src/applet.c:1084 +#: ../src/applet.c:1100 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"S'ha establit correctament la connexió VPN.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1102 +msgid "VPN connection has been successfully established.\n" +msgstr "S'ha establit correctament la connexió VPN.\n" + +#: ../src/applet.c:1104 msgid "VPN Login Message" msgstr "Missatge d'entrada de la VPN" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 +#: ../src/applet.c:1110 ../src/applet.c:1118 ../src/applet.c:1168 msgid "VPN Connection Failed" msgstr "No s'ha pogut establir la connexió VPN" -#: ../src/applet.c:1155 +#: ../src/applet.c:1175 #, c-format msgid "" "\n" @@ -859,7 +921,7 @@ "\n" "%s" -#: ../src/applet.c:1158 +#: ../src/applet.c:1178 #, c-format msgid "" "\n" @@ -872,139 +934,140 @@ "\n" "%s" -#: ../src/applet.c:1478 +#: ../src/applet.c:1498 msgid "device not ready (firmware missing)" msgstr "el dispositiu no està preparat (manca el microprogramari)" -#: ../src/applet.c:1480 +#: ../src/applet.c:1500 msgid "device not ready" msgstr "el dispositiu no està preparat" -#: ../src/applet.c:1506 +#: ../src/applet.c:1526 msgid "Disconnect" msgstr "Desconnecta" -#: ../src/applet.c:1520 +#: ../src/applet.c:1540 msgid "device not managed" msgstr "no es gestiona el dispositiu" -#: ../src/applet.c:1564 +#: ../src/applet.c:1584 msgid "No network devices available" msgstr "No hi ha cap dispositiu de xarxa disponible" -#: ../src/applet.c:1652 +#: ../src/applet.c:1672 msgid "_VPN Connections" msgstr "Connexions _VPN" -#: ../src/applet.c:1709 +#: ../src/applet.c:1729 msgid "_Configure VPN..." msgstr "_Configura la VPN..." -#: ../src/applet.c:1713 +#: ../src/applet.c:1733 msgid "_Disconnect VPN" msgstr "_Desconnecta la VPN" -#: ../src/applet.c:1811 +#: ../src/applet.c:1831 msgid "NetworkManager is not running..." msgstr "No s'està executant el NetworkManager..." -#: ../src/applet.c:1816 ../src/applet.c:2609 +#: ../src/applet.c:1836 ../src/applet.c:2637 msgid "Networking disabled" msgstr "S'ha inhabilitat la gestió de xarxes" #. 'Enable Networking' item -#: ../src/applet.c:2037 +#: ../src/applet.c:2057 msgid "Enable _Networking" msgstr "Habilita la gestió de _xarxes" #. 'Enable Wireless' item -#: ../src/applet.c:2046 +#: ../src/applet.c:2066 +#, fuzzy msgid "Enable _Wireless" -msgstr "Habilita la xarxa _sense fil" +msgstr "Habilita el _sense fil" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 +#: ../src/applet.c:2075 msgid "Enable _Mobile Broadband" msgstr "Habilita la banda ampla _mòbil" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 +#: ../src/applet.c:2084 msgid "Enable WiMA_X Mobile Broadband" msgstr "Habilita la banda ampla mòbil WiMA_X" #. Toggle notifications item -#: ../src/applet.c:2075 +#: ../src/applet.c:2095 msgid "Enable N_otifications" msgstr "Habilita les n_otificacions" #. 'Connection Information' item -#: ../src/applet.c:2086 +#: ../src/applet.c:2106 msgid "Connection _Information" msgstr "_Informació de la connexió" #. 'Edit Connections...' item -#: ../src/applet.c:2096 +#: ../src/applet.c:2116 msgid "Edit Connections..." msgstr "Edita les connexions..." #. Help item -#: ../src/applet.c:2110 +#: ../src/applet.c:2130 msgid "_Help" msgstr "A_juda" #. About item -#: ../src/applet.c:2119 +#: ../src/applet.c:2139 msgid "_About" msgstr "_Quant a" -#: ../src/applet.c:2296 +#: ../src/applet.c:2316 msgid "Disconnected" msgstr "Desconnectat" -#: ../src/applet.c:2297 +#: ../src/applet.c:2317 msgid "The network connection has been disconnected." msgstr "S'ha desconnectat la connexió de xarxa." -#: ../src/applet.c:2478 +#: ../src/applet.c:2500 #, c-format msgid "Preparing network connection '%s'..." msgstr "S'està preparant la connexió de xarxa «%s»..." -#: ../src/applet.c:2481 +#: ../src/applet.c:2503 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Cal l'autenticació d'usuari per a la connexió de xarxa «%s»..." -#: ../src/applet.c:2487 +#: ../src/applet.c:2509 #, c-format msgid "Network connection '%s' active" msgstr "La connexió de xarxa «%s» és activa" -#: ../src/applet.c:2565 +#: ../src/applet.c:2592 #, c-format msgid "Starting VPN connection '%s'..." msgstr "S'està iniciant la connexió VPN «%s»..." -#: ../src/applet.c:2568 +#: ../src/applet.c:2595 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "Cal l'autenticació d'usuari per a la connexió VPN «%s»..." -#: ../src/applet.c:2571 +#: ../src/applet.c:2598 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "S'està sol·licitant una adreça de xarxa per a la xarxa VPN «%s»..." -#: ../src/applet.c:2574 +#: ../src/applet.c:2601 #, c-format msgid "VPN connection '%s' active" msgstr "La connexió VPN «%s» és activa" -#: ../src/applet.c:2613 +#: ../src/applet.c:2642 msgid "No network connection" msgstr "No hi ha cap connexió de xarxa" -#: ../src/applet.c:3263 +#: ../src/applet.c:3360 msgid "NetworkManager Applet" msgstr "Miniaplicació NetworkManager" @@ -1025,8 +1088,9 @@ msgstr "Connexions de xarxa actives" #: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 +#, fuzzy msgid "Wired 802.1X authentication" -msgstr "Autenticació 802.1X amb fil" +msgstr "Autenticació 802.1X" #: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 msgid "_Network name:" @@ -1171,11 +1235,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "_Dominis de cerca:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "Servidors _DNS:" @@ -1208,15 +1276,15 @@ #: ../src/connection-editor/ce-page-ip6.ui.h:13 msgid "Require IPv_6 addressing for this connection to complete" -msgstr "Cal l'adreçament IPv_6 per completar la connexió" +msgstr "Cal l'adreçament IPv_6 per completar la connexió" #: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "" "When connecting to IPv4-capable networks, allows the connection to complete " "if IPv6 configuration fails but IPv4 configuration succeeds." msgstr "" -"Quan es connecte a xarxes IPv4, permet completar la connexió per IPv4 en cas " -"que la configuració IPv6 falle." +"Quan es connecte a xarxes IPv4, permet completar la connexió per IPv4 en cas " +"que la configuració IPv6 falle." #: ../src/connection-editor/ce-page-mobile.ui.h:1 msgid "Any" @@ -1443,12 +1511,13 @@ msgstr "_Velocitat:" #: ../src/connection-editor/ce-page-wireless.ui.h:15 +#, fuzzy msgid "" "This option locks this connection to the wireless access point (AP) " "specified by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"L'opció bloqueja la connexió al punt d'accés sense fil (AP) especificat per " -"l'identificador BSSID. Exemple: 00:11:22:33:44:55" +"Esta opció bloqueja la connexió al punt d'accés sense fil (AP) especificat " +"per l'identificador BSSID. Exemple: 00:11:22:33:44:55" #: ../src/connection-editor/ce-page-wireless.ui.h:16 msgid "_BSSID:" @@ -1556,20 +1625,20 @@ #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "Adreça" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "Màscara de xarxa" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "Passarel·la" @@ -1579,7 +1648,7 @@ msgstr "Mètrica" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "Prefix" @@ -1593,7 +1662,7 @@ msgid "Could not load DSL user interface." msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "Connexió DSL %d" @@ -1606,7 +1675,7 @@ #: ../src/connection-editor/page-ip4.c:134 #: ../src/connection-editor/page-ip6.c:133 msgid "Automatic (VPN) addresses only" -msgstr "Només adreces (VPN) automàtiques" +msgstr "Només adreces (VPN) automàtiques" #: ../src/connection-editor/page-ip4.c:137 #: ../src/connection-editor/page-ip6.c:136 @@ -1646,16 +1715,26 @@ msgid "Disabled" msgstr "Inhabilitada" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Servidors _DNS addicionals:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Dominis de _cerca addicionals:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Edició de les rutes IPv4 per a %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "Paràmetres IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió IPv4." @@ -1672,16 +1751,16 @@ msgid "Automatic, DHCP only" msgstr "Automàtic, només DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Edició de les rutes IPv6 per a %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "Paràmetres IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió IPv6." @@ -1800,14 +1879,15 @@ msgstr "Amb fil" #: ../src/connection-editor/page-wired.c:274 +#, fuzzy msgid "Could not load wired user interface." msgstr "" -"No s'ha pogut carregar la interfície d'usuari per a la connexió amb fil." +"No s'ha pogut carregar la interfície d'usuari per a la connexió sense fil." #: ../src/connection-editor/page-wired.c:449 -#, c-format +#, fuzzy, c-format msgid "Wired connection %d" -msgstr "Connexió de xarxa amb fil %d" +msgstr "Connexió de xarxa sense fil %d" #: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" @@ -1842,54 +1922,59 @@ msgstr "Sense fil" #: ../src/connection-editor/page-wireless.c:459 +#, fuzzy msgid "Could not load WiFi user interface." -msgstr "No s'ha pogut carregar la interfície d'usuari per a la connexió Wi-Fi." +msgstr "" +"No s'ha pogut carregar la interfície d'usuari per a la connexió sense fil." #: ../src/connection-editor/page-wireless.c:663 #, c-format msgid "Wireless connection %d" msgstr "Connexió de xarxa sense fil %d" -#: ../src/connection-editor/page-wireless-security.c:264 +#: ../src/connection-editor/page-wireless-security.c:290 #: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "Clau WEP de 40/128 bits (Hex o ASCII)" -#: ../src/connection-editor/page-wireless-security.c:273 +#: ../src/connection-editor/page-wireless-security.c:300 #: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "Contrasenya WEP de 128 bits" -#: ../src/connection-editor/page-wireless-security.c:299 +#: ../src/connection-editor/page-wireless-security.c:326 #: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" -msgstr "WEP dinàmic (802.1x)" +msgstr "WEP dinàmic (802.1X)" -#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/connection-editor/page-wireless-security.c:340 #: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA i WPA2 Personal" -#: ../src/connection-editor/page-wireless-security.c:327 +#: ../src/connection-editor/page-wireless-security.c:354 #: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA i WPA2 Enterprise" -#: ../src/connection-editor/page-wireless-security.c:361 +#: ../src/connection-editor/page-wireless-security.c:395 +#, fuzzy msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "" "No s'ha pogut carregar la interfície d'usuari per a la seguretat de la " -"connexió Wi-Fi. Manca un paràmetre de la connexió Wi-Fi." +"connexió sense fil. Manca un paràmetre de la connexió sense fil." -#: ../src/connection-editor/page-wireless-security.c:371 +#: ../src/connection-editor/page-wireless-security.c:405 +#, fuzzy msgid "Wireless Security" msgstr "Seguretat de la xarxa sense fil" -#: ../src/connection-editor/page-wireless-security.c:373 +#: ../src/connection-editor/page-wireless-security.c:407 +#, fuzzy msgid "Could not load WiFi security user interface." msgstr "" "No s'ha pogut carregar la interfície d'usuari per a la seguretat de la " -"connexió Wi-Fi." +"connexió sense fil." #: ../src/connection-editor/nm-connection-editor.c:101 #, c-format @@ -1900,7 +1985,7 @@ msgid "Editing un-named connection" msgstr "S'està editant la connexió sense nom" -#: ../src/connection-editor/nm-connection-editor.c:288 +#: ../src/connection-editor/nm-connection-editor.c:291 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." @@ -1908,23 +1993,23 @@ "L'editor de connexions no ha pogut trobar alguns dels recursos necessaris " "(no s'ha trobat el fitxer d'interfície d'usuari)." -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:394 msgid "Error creating connection editor dialog." msgstr "S'ha produït un error en crear el diàleg de l'editor de connexions." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:406 msgid "_Save" msgstr "Al_ça" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "Save any changes made to this connection." msgstr "Alça els canvis fets a la connexió." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "_Save..." msgstr "Al_ça..." -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "Authenticate to save this connection for all users of this machine." msgstr "" "Autentiqueu-vos per alçar la connexió per a tots els usuaris de l'ordinador." @@ -1934,8 +2019,9 @@ msgstr "_Importa" #: ../src/connection-editor/nm-connection-editor.ui.h:6 +#, fuzzy msgid "E_xport" -msgstr "E_xporta" +msgstr "_Importa" #: ../src/connection-editor/nm-connection-editor.ui.h:9 msgid "Connection _name:" @@ -1946,8 +2032,8 @@ msgstr "Connecta _automàticament" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Disponible per a tots els usuaris" +msgid "A_vailable to all users" +msgstr "Disponible per a _tots els usuaris" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -2250,10 +2336,11 @@ "de marcatge directe." #: ../src/gnome-bluetooth/bt-widget.c:1012 -#, c-format +#, fuzzy, c-format msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." msgstr "" -"No s'ha pogut configurar el Bluetooth (no s'ha pogut connectar al D-Bus: %s)." +"No s'ha pogut configurar el Bluetooth (no s'ha pogut connectar al D-Bus: " +"(%s) %s)." #: ../src/gnome-bluetooth/bt-widget.c:1022 msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." @@ -2262,12 +2349,12 @@ "intermediari D-Bus)." #: ../src/gnome-bluetooth/bt-widget.c:1031 -#, c-format +#, fuzzy, c-format msgid "" "Bluetooth configuration not possible (error finding NetworkManager: %s)." msgstr "" "No s'ha pogut configurar el Bluetooth (no s'ha pogut trobar el " -"NetworkManager: %s)." +"NetworkManager: (%s) %s)." #: ../src/gnome-bluetooth/bt-widget.c:1098 msgid "Use your mobile phone as a network device (PAN/NAP)" @@ -2453,7 +2540,7 @@ msgstr "C_rea" #: ../src/libnm-gtk/nm-wireless-dialog.c:1160 -#, c-format +#, fuzzy, c-format msgid "" "Passwords or encryption keys are required to access the wireless network " "'%s'." @@ -2462,34 +2549,42 @@ "«%s»." #: ../src/libnm-gtk/nm-wireless-dialog.c:1162 +#, fuzzy msgid "Wireless Network Authentication Required" msgstr "Cal autenticació per a la xarxa sense fil" #: ../src/libnm-gtk/nm-wireless-dialog.c:1164 +#, fuzzy msgid "Authentication required by wireless network" msgstr "Cal autenticació per a la xarxa sense fil" #: ../src/libnm-gtk/nm-wireless-dialog.c:1169 +#, fuzzy msgid "Create New Wireless Network" msgstr "Crea una xarxa sense fil nova" #: ../src/libnm-gtk/nm-wireless-dialog.c:1171 +#, fuzzy msgid "New wireless network" -msgstr "Xarxa sense fil nova" +msgstr "Xarxa sense fil" #: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#, fuzzy msgid "Enter a name for the wireless network you wish to create." msgstr "Introduïu el nom de la xarxa sense fil que voleu crear." #: ../src/libnm-gtk/nm-wireless-dialog.c:1174 +#, fuzzy msgid "Connect to Hidden Wireless Network" msgstr "Connecta't a la xarxa sense fil oculta" #: ../src/libnm-gtk/nm-wireless-dialog.c:1176 +#, fuzzy msgid "Hidden wireless network" msgstr "Xarxa sense fil oculta" #: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#, fuzzy msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." @@ -2498,14 +2593,16 @@ "a la qual vos vulgueu connectar." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +#, fuzzy +msgid "Wireless _security:" msgstr "Seguretat de la _xarxa sense fil:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Co_nnexió:" #: ../src/libnm-gtk/wifi.ui.h:5 +#, fuzzy msgid "Wireless _adapter:" msgstr "_Adaptador sense fil:" @@ -2624,6 +2721,7 @@ msgstr "No s'ha triat cap certificat d'autoritat de certificació (CA)" #: ../src/wireless-security/eap-method.c:280 +#, fuzzy msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " @@ -2655,7 +2753,7 @@ #: ../src/wireless-security/eap-method-fast.ui.h:4 msgid "Both" -msgstr "Ambdós" +msgstr "Ambdós" #: ../src/wireless-security/eap-method-fast.ui.h:5 #: ../src/wireless-security/eap-method-peap.ui.h:5 @@ -2696,7 +2794,7 @@ msgstr "Tots els fitxers" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:372 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2744,7 +2842,7 @@ "vostres credencials de seguretat podrien veure's compromeses. Seleccioneu " "una clau privada protegida per contrasenya.\n" "\n" -"(Podeu utilitzar l'openssl per protegir la vostra clau privada)" +"(Podeu utilitzar l'OpenSSL per protegir la vostra clau privada)" #: ../src/wireless-security/eap-method-tls.c:410 msgid "Choose your personal certificate..." @@ -2782,19 +2880,19 @@ msgid "Yes" msgstr "Sí" -#: ../src/wireless-security/wireless-security.c:384 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:408 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:419 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "TLS per túnel" -#: ../src/wireless-security/wireless-security.c:430 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "EAP protegit (PEAP)" @@ -2840,6 +2938,175 @@ msgid "WEP inde_x:" msgstr "Índe_x WEP:" +#~ msgid "Disable VPN notifications" +#~ msgstr "Inhabilita les notificacions de la VPN" + +#~ msgid "" +#~ "Set this to true to disable notifications when connecting to or " +#~ "disconnecting from a VPN." +#~ msgstr "" +#~ "Establiu-ho a «TRUE» (cert) per inhabilitar les notificacions en " +#~ "connectar-se o desconnectar-se d'una VPN." + +#~ msgid "Ignore CA certificate" +#~ msgstr "Ignora el certificat de CA" + +#~ msgid "" +#~ "Set this to true to disable warnings about CA certificates in EAP " +#~ "authentication." +#~ msgstr "" +#~ "Establiu-ho a «TRUE» (cert) per inhabilitar els avisos sobre els " +#~ "certificats de CA en l'autenticació EAP." + +#~ msgid "" +#~ "Set this to true to disable warnings about CA certificates in phase 2 of " +#~ "EAP authentication." +#~ msgstr "" +#~ "Establiu-ho a «TRUE» (cert) per inhabilitar els avisos sobre els " +#~ "certificats de CA en la segona fase de l'autenticació EAP." + +#~ msgid "Ethernet Networks (%s)" +#~ msgstr "Xarxes amb fil (%s)" + +#~ msgid "Ethernet Network (%s)" +#~ msgstr "Xarxa amb fil (%s)" + +#~ msgid "Ethernet Networks" +#~ msgstr "Xarxes amb fil" + +#~ msgid "Ethernet Network" +#~ msgstr "Xarxa amb fil" + +#~ msgid "You are now connected to the ethernet network." +#~ msgstr "Esteu connectat a la xarxa amb fil." + +#~ msgid "Preparing ethernet network connection '%s'..." +#~ msgstr "S'està preparant la connexió de xarxa amb fil «%s»..." + +#~ msgid "Configuring ethernet network connection '%s'..." +#~ msgstr "S'està configurant la connexió de xarxa amb fil «%s»..." + +#~ msgid "User authentication required for ethernet network connection '%s'..." +#~ msgstr "" +#~ "Cal l'autenticació d'usuari per a la connexió de xarxa amb fil «%s»..." + +#~ msgid "Requesting an ethernet network address for '%s'..." +#~ msgstr "" +#~ "S'està sol·licitant una adreça de xarxa per a la xarxa amb fil «%s»..." + +#~ msgid "Ethernet network connection '%s' active" +#~ msgstr "La connexió de xarxa amb fil «%s» és activa" + +#~ msgid "Wi-Fi Networks (%s)" +#~ msgstr "Xarxes sense fil (%s)" + +#~ msgid "Wi-Fi Network (%s)" +#~ msgstr "Xarxa sense fil (%s)" + +#~ msgid "Wi-Fi Network" +#~ msgid_plural "Wi-Fi Networks" +#~ msgstr[0] "Xarxa sense fil" +#~ msgstr[1] "Xarxes sense fil" + +#~ msgid "Wi-Fi is disabled" +#~ msgstr "Les xarxes sense fil estan inhabilitades" + +#~ msgid "Wi-Fi is disabled by hardware switch" +#~ msgstr "L'interruptor de maquinari ha inhabilitat la xarxa sense fil" + +#~ msgid "Preparing Wi-Fi network connection '%s'..." +#~ msgstr "S'està preparant la connexió de xarxa sense fil «%s»..." + +#~ msgid "Configuring Wi-Fi network connection '%s'..." +#~ msgstr "S'està configurant la connexió de xarxa sense fil «%s»..." + +#~ msgid "Requesting a Wi-Fi network address for '%s'..." +#~ msgstr "S'està sol·licitant una adreça de xarxa sense fil per a «%s»..." + +#~ msgid "Wi-Fi network connection '%s' active" +#~ msgstr "La connexió de xarxa sense fil «%s» és activa" + +#~ msgid "Choose a Connection Type" +#~ msgstr "Seleccioneu un tipus de connexió" + +#~ msgid "" +#~ "Select the type of connection you wish to create.\n" +#~ "\n" +#~ "If you are creating a VPN, and the VPN connection you wish to create does " +#~ "not appear in the list, you may not have the correct VPN plugin installed." +#~ msgstr "" +#~ "Seleccioneu el tipus de connexió que voleu crear.\n" +#~ "\n" +#~ "Si voleu crear una connexió VPN i el tipus que voleu crear no apareix a " +#~ "la llista, és probable que no tingueu el connector VPN adequat instal·lat." + +#~ msgid "_Transport mode:" +#~ msgstr "Mode de _transport:" + +#~ msgid "Datagram" +#~ msgstr "Datagrama" + +#~ msgid "Connected" +#~ msgstr "Connectat" + +#~ msgid "Ethernet" +#~ msgstr "Cable" + +#~ msgid "Wi-Fi" +#~ msgstr "Sense fil" + +#~ msgid "InfiniBand" +#~ msgstr "InfiniBand" + +#~ msgid "Import a saved VPN configuration..." +#~ msgstr "Importa una configuració VPN..." + +#~ msgid "_Export..." +#~ msgstr "E_xporta..." + +#~ msgid "Could not load 802.1x Security user interface." +#~ msgstr "" +#~ "No s'ha pogut carregar la interfície d'usuari per a la seguretat de " +#~ "802.1X." + +#~ msgid "Could not load ethernet user interface." +#~ msgstr "" +#~ "No s'ha pogut carregar la interfície d'usuari per a la connexió amb fil." + +#~ msgid "Ethernet connection %d" +#~ msgstr "Connexió de xarxa amb fil %d" + +#~ msgid "Could not load InfiniBand user interface." +#~ msgstr "" +#~ "No s'ha pogut carregar la interfície d'usuari per a la connexió " +#~ "InfiniBand." + +#~ msgid "InfiniBand connection %d" +#~ msgstr "Connexió InfiniBand %d" + +#~ msgid "Wi-Fi connection %d" +#~ msgstr "Connexió de xarxa sense fil %d" + +#~ msgctxt "Wi-Fi/Ethernet security" +#~ msgid "None" +#~ msgstr "Cap" + +#~ msgid "Could not load WiMAX user interface." +#~ msgstr "" +#~ "No s'ha pogut carregar la interfície d'usuari per a la connexió WiMAX." + +#~ msgid "WiMAX connection %d" +#~ msgstr "Connexió WiMAX %d" + +#~ msgid "unknown modem type." +#~ msgstr "es desconeix el tipus de mòdem." + +#~ msgid "New Wi-Fi network" +#~ msgstr "Xarxa sense fil nova" + +#~ msgid "%s connection" +#~ msgstr "connexió de %s" + #~ msgid "PI_N:" #~ msgstr "P_IN:" diff -Nru network-manager-applet-0.9.4.1/po/crh.po network-manager-applet-0.9.6.2+git201210311320.2620/po/crh.po --- network-manager-applet-0.9.4.1/po/crh.po 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/crh.po 2012-10-31 13:20:57.000000000 +0000 @@ -2,30 +2,29 @@ # This file is distributed under the same license as the nm-aplet package. # # Türkçeden çabik uyarlama. -# Reşat SABIQ , 2009, 2010. +# Reşat SABIQ , 2009, 2010, 2011, 2012. +# msgid "" msgstr "" "Project-Id-Version: nm-aplet 0.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-05 01:04-0500\n" -"PO-Revision-Date: 2010-04-06 19:00-0500\n" +"POT-Creation-Date: 2012-03-28 00:54-0500\n" +"PO-Revision-Date: 2012-03-28 01:00-0500\n" "Last-Translator: Reşat SABIQ \n" -"Language-Team: QIRIMTATARCA (Qırım Türkçesi) \n" +"Language-Team: QIRIMTATARCA \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2010-04-01 05:20+0000\n" -"X-Generator: Launchpad (build Unknown)\n" +"Content-Transfer-Encoding: UTF-8\n" +"Plural-Forms: nplurals=1; plural=0\n" #: ../nm-applet.desktop.in.h:1 -msgid "Control your network connections" -msgstr "Şebeke bağlantılarıñıznı muraqabe etiñiz" +msgid "Manage your network connections" +msgstr "Şebeke bağlantılarıñıznı idare etiñiz" #: ../nm-applet.desktop.in.h:2 -msgid "Network Manager" -msgstr "Şebeke İdarecisi" +msgid "Network" +msgstr "Şebeke" #: ../nm-applet.schemas.in.h:1 msgid "Disable WiFi Create" @@ -71,7 +70,7 @@ #: ../nm-applet.schemas.in.h:8 msgid "Stamp" -msgstr "Müür" +msgstr "Mühür" #: ../nm-applet.schemas.in.h:9 msgid "Suppress networks available notifications" @@ -88,36 +87,26 @@ msgstr "Şebeke bağlantısı tesbitleriñizni idare etiñiz ve değiştiriñiz" #: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.glade.h:7 +#: ../src/connection-editor/nm-connection-editor.ui.h:7 msgid "Network Connections" msgstr "Şebeke Bağlantıları" -#: ../src/applet-dbus-manager.c:165 -#, c-format -msgid "An instance of nm-applet is already running.\n" -msgstr "Bir nm-applet danesi endi çapa.\n" - -# tüklü -#: ../src/applet-dbus-manager.c:167 -#, c-format -msgid "Could not acquire the %s service. (%d)\n" -msgstr "%s hızmeti elde etilamadı. (%d)\n" - -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:332 -#: ../src/applet-device-gsm.c:375 ../src/applet-device-wired.c:241 -#: ../src/applet-device-wifi.c:774 +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 +#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Faydalanışlı" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:374 -#: ../src/applet-device-gsm.c:417 ../src/applet-device-wired.c:270 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 +#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 +#: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." -msgstr "Şimdi '%s' şebekesine bağlanğan olasıñız" +msgstr "Şimdi '%s' şebekesine bağlanğan olasıñız." -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:378 -#: ../src/applet-device-gsm.c:421 ../src/applet-device-wired.c:274 -#: ../src/applet-device-wifi.c:1215 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 +#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Bağlantı Tesis Etildi" @@ -125,132 +114,145 @@ msgid "You are now connected to the mobile broadband network." msgstr "Şimdi mobil kenişbant şebekege bağlanğan olasıñız." -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:414 -#: ../src/applet-device-gsm.c:457 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." -msgstr "Mobil keniş-bant bağlantısı azırlana '%s'..." +msgstr "Mobil keniş-bant bağlantısı hazırlana '%s'..." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:417 -#: ../src/applet-device-gsm.c:460 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "Mobil genişbant bağlantısı yapılandırlıyor '%s'..." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:420 -#: ../src/applet-device-gsm.c:463 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "'%s' mobil genişbant bağlantısı için kullanıcı doğrulaması gerekli..." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:423 -#: ../src/applet-device-gsm.c:466 ../src/applet.c:2262 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 +#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2503 #, c-format msgid "Requesting a network address for '%s'..." -msgstr "%s içün bir şebeke adresi rica etile..." +msgstr "'%s' içün bir şebeke adresi rica etile..." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:484 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 +#: ../src/applet-device-gsm.c:555 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "Mobil kenişbant bağlantısı '%s' faal" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:621 -#: ../src/mb-menu-item.c:55 +#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 +#: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:281 ../src/applet-device-gsm.c:325 +#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Mobil Kenişbant (%s)" -#: ../src/applet-device-cdma.c:283 ../src/applet-device-gsm.c:327 -#: ../src/connection-editor/page-mobile.c:318 -#: ../src/connection-editor/nm-connection-editor.glade.h:6 -#: ../src/connection-editor/nm-connection-list.c:1360 +#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 +#: ../src/connection-editor/page-mobile.c:379 +#: ../src/connection-editor/nm-connection-editor.ui.h:6 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "Mobil Kenişbant" #. Default connection item -#: ../src/applet-device-cdma.c:345 +#: ../src/applet-device-cdma.c:412 msgid "New Mobile Broadband (CDMA) connection..." msgstr "Yañı Mobil Keniş-bant (CDMA) bağlantısı..." -#: ../src/applet-device-cdma.c:379 +#: ../src/applet-device-cdma.c:446 msgid "You are now connected to the CDMA network." msgstr "CDMA ağına bağlandınız." -#: ../src/applet-device-cdma.c:436 ../src/applet-device-gsm.c:479 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 +#: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "Mobil kenişbant bağlantısı '%s' faal: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:439 ../src/applet-device-gsm.c:482 +#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 +#: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "kezeleme" -#: ../src/applet-device-gsm.c:210 ../src/connection-editor/page-mobile.c:624 -#: ../src/mb-menu-item.c:60 +#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 +msgid "CDMA network." +msgstr "CDMA şebekesi." + +#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 +msgid "You are now registered on the home network." +msgstr "Şimdi ev şebekesine qaydlısıñız." + +#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 +msgid "You are now registered on a roaming network." +msgstr "Şimdi bir kezeleme şebekesine qaydlısıñız." + +#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 +#: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" #. Default connection item -#: ../src/applet-device-gsm.c:388 +#: ../src/applet-device-gsm.c:459 msgid "New Mobile Broadband (GSM) connection..." msgstr "Yañı Mobil Keniş-bant (GSM) bağlantısı..." -#: ../src/applet-device-gsm.c:422 +#: ../src/applet-device-gsm.c:493 msgid "You are now connected to the GSM network." msgstr "Şimdi GSM şebekesine bağlanğan olasıñız." -#: ../src/applet-device-gsm.c:711 +#: ../src/applet-device-gsm.c:654 msgid "PIN code required" msgstr "PIN kodu gerekli" -#: ../src/applet-device-gsm.c:713 -msgid "PUK code required" -msgstr "PUK kodu gerekli" - -#: ../src/applet-device-gsm.c:722 +#: ../src/applet-device-gsm.c:662 msgid "PIN code is needed for the mobile broadband device" msgstr "Mobil kenişbant cihazı içün PİN kodu kerekli" -#: ../src/applet-device-gsm.c:724 -msgid "PUK code is needed for the mobile broadband device" -msgstr "mobil genişbant aygıtı için PUK kodu gerekli" +#: ../src/applet-device-gsm.c:783 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "'%2$s' üzerindeki '%1$s' SIM kartınıñ PIN kodu" -#: ../src/applet-device-gsm.c:857 +#: ../src/applet-device-gsm.c:875 msgid "Wrong PIN code; please contact your provider." msgstr "" "Yañlış PİN (ŞKN; Şahsiy Kimlik Nomerası) kodu; lütfen teminatçıñız ile temas " "etiñiz." -#: ../src/applet-device-gsm.c:880 +#: ../src/applet-device-gsm.c:898 msgid "Wrong PUK code; please contact your provider." msgstr "" "Yañlış PUK (PİN Kilitsizleme Anahtarı; PKA) kodu; lütfen teminatçıñız ile " "temas etiñiz." #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:907 +#: ../src/applet-device-gsm.c:925 msgid "Sending unlock code..." msgstr "Kilitsizleme kodu yiberile..." -#: ../src/applet-device-gsm.c:966 +#: ../src/applet-device-gsm.c:988 msgid "SIM PIN unlock required" msgstr "" "SİM (Abuneci Kimlik Modüli; AKM) PİN (Şahsiy Kimlik Nomerası; ŞKN) " "kilitsizleme şart" -#: ../src/applet-device-gsm.c:967 +#: ../src/applet-device-gsm.c:989 msgid "SIM PIN Unlock Required" msgstr "" "SİM (Abuneci Kimlik Modüli; AKM) PİN (Şahsiy Kimlik Nomerası; ŞKN) " "Kilitsizleme Şart" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:969 +#: ../src/applet-device-gsm.c:991 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " @@ -259,24 +261,30 @@ "Mobil kenişbant cihazı '%s' qullanılmazdan evel bir SİM (Abuneci Kimlik " "Modüli; AKM) PİN (Şahsiy Kimlik Nomerası; ŞKN) kodunı şart qoya" -#: ../src/applet-device-gsm.c:970 +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:993 msgid "PIN code:" msgstr "PİN kodu:" -#: ../src/applet-device-gsm.c:975 +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:997 +msgid "Show PIN code" +msgstr "PİN kodunı köster" + +#: ../src/applet-device-gsm.c:1000 msgid "SIM PUK unlock required" msgstr "" "SİM (Abuneci Kimlik Modüli; AKM) PUK (PİN Kilitsizleme Anahtarı; PKA) " "kilitsizleme şart" -#: ../src/applet-device-gsm.c:976 +#: ../src/applet-device-gsm.c:1001 msgid "SIM PUK Unlock Required" msgstr "" "SİM (Abuneci Kimlik Modüli; AKM) PUK (PİN Kilitsizleme Anahtarı; PKA) " "Lilitsizleme Şart" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:978 +#: ../src/applet-device-gsm.c:1003 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " @@ -285,316 +293,476 @@ "Mobil kenişbant cihazı '%s' qullanılmazdan evel bir SİM (Abuneci Kimlik " "Modüli; AKM) PUK (PİN Kilitsizleme Anahtarı; PKA) kodunı şart qoya" -#: ../src/applet-device-gsm.c:979 +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1005 msgid "PUK code:" msgstr "PUK kodu:" -#: ../src/applet-device-gsm.c:981 +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1008 msgid "New PIN code:" msgstr "Yañı PİN kodu:" -#: ../src/applet-device-gsm.c:982 +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1010 msgid "Re-enter new PIN code:" msgstr "Yañı PİN kodunı kene kirsetiñiz:" -#: ../src/applet-device-wired.c:63 +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1015 +msgid "Show PIN/PUK codes" +msgstr "PİN/PUK kodlarını köster" + +#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 +msgid "GSM network." +msgstr "GSM şebekesi." + +#: ../src/applet-device-wired.c:62 msgid "Auto Ethernet" msgstr "Oto Eternet" -#: ../src/applet-device-wired.c:206 +#: ../src/applet-device-wired.c:205 #, c-format msgid "Wired Networks (%s)" msgstr "Telli Şebekeler (%s)" -#: ../src/applet-device-wired.c:208 +#: ../src/applet-device-wired.c:207 #, c-format msgid "Wired Network (%s)" msgstr "Telli Şebeke (%s)" -#: ../src/applet-device-wired.c:211 +#: ../src/applet-device-wired.c:210 msgid "Wired Networks" msgstr "Telli Şebekeler" -#: ../src/applet-device-wired.c:213 +#: ../src/applet-device-wired.c:212 msgid "Wired Network" msgstr "Telli Şebeke" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:233 ../src/applet.c:1306 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1509 msgid "disconnected" -msgstr "bağlantı kesilgen" +msgstr "bağlantı qoparılğan" -#: ../src/applet-device-wired.c:275 +#: ../src/applet-device-wired.c:274 msgid "You are now connected to the wired network." msgstr "Şimdi telli şebekege bağlanğan olasıñız." -#: ../src/applet-device-wired.c:301 +#: ../src/applet-device-wired.c:300 #, c-format msgid "Preparing wired network connection '%s'..." -msgstr "'%s' telli şebeke bağlantısı azırlana..." +msgstr "'%s' telli şebeke bağlantısı hazırlana..." -#: ../src/applet-device-wired.c:304 +#: ../src/applet-device-wired.c:303 #, c-format msgid "Configuring wired network connection '%s'..." msgstr "'%s' Telli şebeke bağlantısı yapılandırılıyor ..." -#: ../src/applet-device-wired.c:307 +#: ../src/applet-device-wired.c:306 #, c-format msgid "User authentication required for wired network connection '%s'..." msgstr "'%s' telli şebekesi için kullanıcı doğrulaması gerekiyor..." -#: ../src/applet-device-wired.c:310 +#: ../src/applet-device-wired.c:309 #, c-format msgid "Requesting a wired network address for '%s'..." msgstr "'%s' için telli şebeke adresi isteniyor..." -#: ../src/applet-device-wired.c:314 +#: ../src/applet-device-wired.c:313 #, c-format msgid "Wired network connection '%s' active" msgstr "'%s' telli şebeke bağlantısı etkin" -#: ../src/applet-device-wired.c:565 +#: ../src/applet-device-wired.c:494 msgid "DSL authentication" msgstr "DSL doğrulaması" -#: ../src/applet-device-wifi.c:88 +#: ../src/applet-device-wifi.c:97 msgid "_Connect to Hidden Wireless Network..." msgstr "Gizli Telsiz Şebekege _Bağlan..." -#: ../src/applet-device-wifi.c:121 +#: ../src/applet-device-wifi.c:150 msgid "Create _New Wireless Network..." msgstr "_Yañı Telsiz Şebeke İcat Et..." -#: ../src/applet-device-wifi.c:706 +#: ../src/applet-device-wifi.c:294 +msgid "(none)" +msgstr "(hiçbiri)" + +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Networks (%s)" msgstr "Telsiz Şebekeler (%s)" -#: ../src/applet-device-wifi.c:708 +#: ../src/applet-device-wifi.c:794 #, c-format msgid "Wireless Network (%s)" msgstr "Telsiz Şebeke (%s)" -#: ../src/applet-device-wifi.c:710 +#: ../src/applet-device-wifi.c:796 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Telsiz Şebeke(ler)" -#: ../src/applet-device-wifi.c:740 +#: ../src/applet-device-wifi.c:829 msgid "wireless is disabled" msgstr "telsiz etkin değil" -#: ../src/applet-device-wifi.c:801 +#: ../src/applet-device-wifi.c:830 +msgid "wireless is disabled by hardware switch" +msgstr "telsiz donanım almaştırıcısı ile ğayrıqabilleştirilgen" + +#: ../src/applet-device-wifi.c:891 msgid "More networks" msgstr "Daa çoq şebeke" -#: ../src/applet-device-wifi.c:1005 +#: ../src/applet-device-wifi.c:1071 msgid "Wireless Networks Available" msgstr "Telsiz Şebekeler Faydalanılabilir" -#: ../src/applet-device-wifi.c:1006 -msgid "Click on this icon to connect to a wireless network" -msgstr "Bir telsiz ağa bağlanmak için bu simgeye tıklayın" +#: ../src/applet-device-wifi.c:1072 +msgid "Use the network menu to connect to a wireless network" +msgstr "Bir telsiz şebekege bağlanmaq içün şebeke menüsini qullanıñız" -#: ../src/applet-device-wifi.c:1009 ../src/applet.c:678 +#: ../src/applet-device-wifi.c:1075 ../src/applet.c:925 msgid "Don't show this message again" msgstr "Bu mesajı tekrar gösterme" -#: ../src/applet-device-wifi.c:1213 +#: ../src/applet-device-wifi.c:1267 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Şimdi '%s' telsiz şebekesine bağlanğan olasıñız." -#: ../src/applet-device-wifi.c:1214 ../src/applet-device-wifi.c:1245 -msgid "(none)" -msgstr "(hiçbiri)" - -#: ../src/applet-device-wifi.c:1255 +#: ../src/applet-device-wifi.c:1298 #, c-format msgid "Preparing wireless network connection '%s'..." -msgstr "'%s' telsiz şebeke bağlantısı azırlana..." +msgstr "'%s' telsiz şebeke bağlantısı hazırlana..." -#: ../src/applet-device-wifi.c:1258 +#: ../src/applet-device-wifi.c:1301 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "'%s' Telsiz şebeke bağlantısı yapılandırılıyor..." -#: ../src/applet-device-wifi.c:1261 +#: ../src/applet-device-wifi.c:1304 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "'%s' telsiz şebekesi için kullanıcı doğrulaması gerekiyor..." -#: ../src/applet-device-wifi.c:1264 +#: ../src/applet-device-wifi.c:1307 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "'%s' için telsiz şebeke adresi isteniyor..." -#: ../src/applet-device-wifi.c:1284 +#: ../src/applet-device-wifi.c:1328 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "'%s' telsiz şebekesi faal: %s (%d%%)" -#: ../src/applet-device-wifi.c:1288 +#: ../src/applet-device-wifi.c:1333 #, c-format msgid "Wireless network connection '%s' active" msgstr "'%s' telsiz şebekesi faal" -#: ../src/applet-dialogs.c:56 +#: ../src/applet-device-wifi.c:1381 +msgid "Failed to activate connection" +msgstr "Bağlantısı faalleştirilamadı" + +#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 +#: ../src/applet.c:491 ../src/applet.c:535 ../src/applet.c:561 +msgid "Unknown error" +msgstr "Bilinmegen hata" + +#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 +#: ../src/applet.c:494 ../src/applet.c:564 +msgid "Connection failure" +msgstr "Bağlantı muvaffaqiyetsizligi" + +#: ../src/applet-device-wifi.c:1400 +msgid "Failed to add new connection" +msgstr "Yañı bağlantı eklenamadı" + +#: ../src/applet-device-wimax.c:231 +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "WiMAX Mobil Kenişbant (%s)" + +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "WiMAX Mobil Kenişbant" + +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "WiMAX qabil degildir" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX donanım almaştırıcısı ile ğayrıqabilleştirilgen" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "Şimdi WiMAX şebekesine bağlantılısıñız." + +#: ../src/applet-dialogs.c:57 msgid "Error displaying connection information:" msgstr "Bağlantı bilgisini gösterirken hata:" -#: ../src/applet-dialogs.c:87 -#: ../src/connection-editor/page-wireless-security.c:284 -#: ../src/wireless-dialog.c:931 -#: ../src/wireless-security/wireless-security.c:340 +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" -#: ../src/applet-dialogs.c:89 +#: ../src/applet-dialogs.c:111 msgid "Dynamic WEP" msgstr "Dinamik WEP" -#: ../src/applet-dialogs.c:91 ../src/applet-dialogs.c:192 -#: ../src/applet-dialogs.c:194 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:190 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:198 ../src/applet-dialogs.c:207 -#: ../src/connection-editor/page-wireless-security.c:238 -#: ../src/wireless-dialog.c:888 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 +msgctxt "Wifi/wired security" msgid "None" -msgstr "Yok" +msgstr "Yoq" -#: ../src/applet-dialogs.c:210 ../src/applet-dialogs.c:282 -#: ../src/applet-dialogs.c:384 ../src/applet-dialogs.c:421 -#: ../src/applet-dialogs.c:439 ../src/applet-dialogs.c:450 -msgid "Unknown" -msgstr "Bilinmiyor" +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (ögbelgilengen)" -#: ../src/applet-dialogs.c:280 ../src/applet-dialogs.c:382 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:313 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "Namalüm" + +#: ../src/applet-dialogs.c:361 +#, c-format +msgid "%d dB" +msgstr "%d dB" + +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "namalüm" + +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "namalüm" + +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Eternet (%s)" -#: ../src/applet-dialogs.c:315 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:317 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:319 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:324 +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" + +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "Umumiy" + +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "Arayüz:" -#: ../src/applet-dialogs.c:340 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "Donanım Adresi:" -#: ../src/applet-dialogs.c:350 +#. Driver +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "Sürüci:" -#: ../src/applet-dialogs.c:388 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "Sur'at:" -#: ../src/applet-dialogs.c:397 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "Emniyet:" -#: ../src/applet-dialogs.c:419 +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "CINR:" + +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "BSID:" + +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" + +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "İP Adresi:" +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "Namalüm" + # tüklü -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "Yayın Adresi:" -#: ../src/applet-dialogs.c:448 +#. Prefix +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "Alt-şebeke Maskası:" -#: ../src/applet-dialogs.c:460 +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Namalüm" + +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "Öntanımlı Rota:" -#: ../src/applet-dialogs.c:474 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "Birlemci DNS:" -#: ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "Ekilemci DNS:" +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "Üçlemci DNS:" + +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" + +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "İhmal Etilgen" + +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "VPN Türu:" + +# tüklü +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "VPN Savağı:" + +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "VPN Qullanıcı Adı:" + +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "VPN Afişi:" + +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Temel Bağlantı:" + +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "Bilinmiyor" + #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:548 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "Geçerli etkin bağlantı bulunamadı!" -#: ../src/applet-dialogs.c:674 +#: ../src/applet-dialogs.c:939 msgid "" -"Copyright © 2004-2008 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc." +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" msgstr "" "Telif Hakkı © 2004-2008 Red Hat, Inc.\n" -"Telif Hakkı © 2005-2008 Novell, Inc." +"Telif Hakkı © 2005-2008 Novell, Inc.\n" +"ve çoq diger toplulıq hisse qoşucıları ve tercimeciler" -#: ../src/applet-dialogs.c:676 +#: ../src/applet-dialogs.c:942 msgid "" "Notification area applet for managing your network devices and connections." msgstr "" "Şebeke cihazlarıñız ve bağlantılarıñıznı idare etüv içün bildirim mıntıqası " "uyğulamaçığı." -#: ../src/applet-dialogs.c:678 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "NetworkManager Web sitesi" -#: ../src/applet-dialogs.c:681 -msgid "translator-credits" -msgstr "" -"Reşat SABIQ \n" -"\n" -"Launchpad Contributions:\n" -" Reşat SABIQ https://launchpad.net/~tilde-birlik" - -#: ../src/applet-dialogs.c:697 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "Kaybolan kaynaklar" -#: ../src/applet-dialogs.c:723 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "Mobil genişbant şebeke parolası" -#: ../src/applet-dialogs.c:732 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "'%s' ağına bağlanmak için parola gerekli." -#: ../src/applet-dialogs.c:750 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "Sır-söz:" -#: ../src/applet.c:791 +#: ../src/applet.c:489 +msgid "Failed to add/activate connection" +msgstr "Bağlantı eklenamadı/faalleştirilamadı" + +# tüklü +#: ../src/applet.c:533 +msgid "Device disconnect failed" +msgstr "Cihaz bağlantısı qoparılması muvaffaqiyetsiz edi" + +#: ../src/applet.c:538 +msgid "Disconnect failure" +msgstr "Bağlantını qoparmaqta muvaffaqiyetsizlik" + +#: ../src/applet.c:559 +msgid "Connection activation failed" +msgstr "Bağlantı faalleştirilmesi muvaffaqiyetsiz edi" + +#: ../src/applet.c:1014 #, c-format msgid "" "\n" @@ -604,7 +772,7 @@ "\n" "'%s' VPN bağlantısı başarısız oldu çünkü şebeke bağlantısı engellendi." -#: ../src/applet.c:794 +#: ../src/applet.c:1017 #, c-format msgid "" "\n" @@ -614,7 +782,7 @@ "'%s' VPN bağlantısı başarısız oldu çünkü VPN servisi beklenmedik bir anda " "durmuş." -#: ../src/applet.c:797 +#: ../src/applet.c:1020 #, c-format msgid "" "\n" @@ -625,7 +793,7 @@ "'%s' VPN bağlantısı başarısız oldu çünkü VPN servisi geçersiz ayarlara geri " "dönmüş." -#: ../src/applet.c:800 +#: ../src/applet.c:1023 #, c-format msgid "" "\n" @@ -634,7 +802,7 @@ "\n" "'%s' VPN bağlantısı başarısız oldu. Bağlanma denemesi zaman aşımına uğradı." -#: ../src/applet.c:803 +#: ../src/applet.c:1026 #, c-format msgid "" "\n" @@ -643,7 +811,7 @@ "\n" "'%s' VPN bağlantısı başarısız oldu. VPN hizmeti zamanında başlamadı." -#: ../src/applet.c:806 +#: ../src/applet.c:1029 #, c-format msgid "" "\n" @@ -652,7 +820,7 @@ "\n" "'%s' VPN bağlantısı başarısız oldu çünkü VPN hizmeti başlatılamadı." -#: ../src/applet.c:809 +#: ../src/applet.c:1032 #, c-format msgid "" "\n" @@ -661,7 +829,7 @@ "\n" "'%s' VPN bağlantısı başarısız oldu. Geçerli VPN güvenlikleri yok." -#: ../src/applet.c:812 +#: ../src/applet.c:1035 #, c-format msgid "" "\n" @@ -670,7 +838,7 @@ "\n" "'%s' VPN bağlantısı geçersiz VPN güvenliklerinden dolayı başarısız oldu." -#: ../src/applet.c:819 +#: ../src/applet.c:1042 #, c-format msgid "" "\n" @@ -679,7 +847,7 @@ "\n" "'%s' VPN bağlantısı başarısız oldu." -#: ../src/applet.c:837 +#: ../src/applet.c:1060 #, c-format msgid "" "\n" @@ -689,7 +857,7 @@ "\n" "'%s' VPN bağlantısı kesildi çünkü şebeke bağlantısı engellendi." -#: ../src/applet.c:840 +#: ../src/applet.c:1063 #, c-format msgid "" "\n" @@ -698,7 +866,7 @@ "\n" "'%s' VPN bağlantısı kesildi çünkü VPN hizmeti durduruldu." -#: ../src/applet.c:846 +#: ../src/applet.c:1069 #, c-format msgid "" "\n" @@ -707,15 +875,15 @@ "\n" "'%s' VPN bağlantısı kesildi." -#: ../src/applet.c:877 +#: ../src/applet.c:1103 msgid "VPN Login Message" msgstr "VPN Oturum Açılış İletisi" -#: ../src/applet.c:889 ../src/applet.c:897 ../src/applet.c:944 +#: ../src/applet.c:1109 ../src/applet.c:1117 ../src/applet.c:1167 msgid "VPN Connection Failed" msgstr "VPN Bağlantısı Başarısız" -#: ../src/applet.c:951 +#: ../src/applet.c:1174 #, c-format msgid "" "\n" @@ -728,7 +896,7 @@ "\n" "%s" -#: ../src/applet.c:954 +#: ../src/applet.c:1177 #, c-format msgid "" "\n" @@ -742,382 +910,310 @@ "\n" "%s" -#: ../src/applet.c:1297 +#: ../src/applet.c:1497 +msgid "device not ready (firmware missing)" +msgstr "cihaz hazır degil (bellenim eksik)" + +#: ../src/applet.c:1499 msgid "device not ready" -msgstr "cihaz azır degil" +msgstr "cihaz hazır degil" -#: ../src/applet.c:1322 +#: ../src/applet.c:1525 msgid "Disconnect" msgstr "Bağlantını qopar" -#: ../src/applet.c:1336 +#: ../src/applet.c:1539 msgid "device not managed" msgstr "aygıt kullanılamadı" -#: ../src/applet.c:1382 +#: ../src/applet.c:1583 msgid "No network devices available" msgstr "Şebeke aygıtı bulunamıyor" # tüklü -#: ../src/applet.c:1470 +#: ../src/applet.c:1671 msgid "_VPN Connections" msgstr "_VPN Bağlantıları" -#: ../src/applet.c:1523 +#: ../src/applet.c:1728 msgid "_Configure VPN..." msgstr "_VPN Yapılandır..." -#: ../src/applet.c:1527 +#: ../src/applet.c:1732 msgid "_Disconnect VPN" msgstr "VPN Bağlantısını _Qopar..." -#: ../src/applet.c:1614 +#: ../src/applet.c:1830 msgid "NetworkManager is not running..." msgstr "Şebeke Yöneticisi çalışmıyor..." -#: ../src/applet.c:1619 ../src/applet.c:2390 +#: ../src/applet.c:1835 ../src/applet.c:2634 msgid "Networking disabled" msgstr "Şebeke etkin değil" #. 'Enable Networking' item -#: ../src/applet.c:1836 +#: ../src/applet.c:2056 msgid "Enable _Networking" msgstr "_Şebekelemeni Qabilleştir" #. 'Enable Wireless' item -#: ../src/applet.c:1845 +#: ../src/applet.c:2065 msgid "Enable _Wireless" msgstr "_Telsizni Qabilleştir" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:1854 +#: ../src/applet.c:2074 msgid "Enable _Mobile Broadband" msgstr "_Mobil Kenişbant Qabil Olsun" +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2083 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "WiMA_X Mobil Kenişbant Qabil Olsun" + #. Toggle notifications item -#: ../src/applet.c:1865 +#: ../src/applet.c:2094 msgid "Enable N_otifications" msgstr "_Bildirimler Qabil Olsun" #. 'Connection Information' item -#: ../src/applet.c:1876 +#: ../src/applet.c:2105 msgid "Connection _Information" msgstr "Bağlantı _Malümatı" #. 'Edit Connections...' item -#: ../src/applet.c:1886 +#: ../src/applet.c:2115 msgid "Edit Connections..." -msgstr "Bağlantılarnı Tarir Et..." +msgstr "Bağlantılarnı Tahrir Et..." #. Help item -#: ../src/applet.c:1900 +#: ../src/applet.c:2129 msgid "_Help" msgstr "_Yardım" #. About item -#: ../src/applet.c:1909 +#: ../src/applet.c:2138 msgid "_About" -msgstr "_Aqqında" +msgstr "_Haqqında" -#: ../src/applet.c:2095 +#: ../src/applet.c:2315 msgid "Disconnected" msgstr "Bağlantı qoparılğan" -#: ../src/applet.c:2096 +#: ../src/applet.c:2316 msgid "The network connection has been disconnected." msgstr "Şebeke bağlantısı qoparılğandır." -#: ../src/applet.c:2256 +#: ../src/applet.c:2497 #, c-format msgid "Preparing network connection '%s'..." -msgstr "Şebeke bağlantısı azırlana '%s'..." +msgstr "Şebeke bağlantısı hazırlana '%s'..." -#: ../src/applet.c:2259 +#: ../src/applet.c:2500 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Şebeke bağlantısı için kullanıcı doğrulaması gerekli '%s'..." -#: ../src/applet.c:2265 +#: ../src/applet.c:2506 #, c-format msgid "Network connection '%s' active" msgstr "Şebeke bağlantısı '%s' etkin" -#: ../src/applet.c:2346 +#: ../src/applet.c:2589 #, c-format msgid "Starting VPN connection '%s'..." msgstr "VPN bağlantısı başlatılıyor '%s'..." -#: ../src/applet.c:2349 +#: ../src/applet.c:2592 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "VPN bağlantısı için kullanıcı doğrulaması gerekli '%s'..." -#: ../src/applet.c:2352 +#: ../src/applet.c:2595 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "'%s' için bir VPN adresi isteniyor..." -#: ../src/applet.c:2355 +#: ../src/applet.c:2598 #, c-format msgid "VPN connection '%s' active" msgstr "VPN bağlantısı '%s' etkin" -#: ../src/applet.c:2394 +#: ../src/applet.c:2639 msgid "No network connection" msgstr "Şebeke bağlantısı yok" -#: ../src/applet.c:2943 +#: ../src/applet.c:3394 msgid "NetworkManager Applet" msgstr "NetworkManager Uygulamacığı" -#: ../src/applet.c:2949 ../src/wired-dialog.c:128 -msgid "" -"The NetworkManager Applet could not find some required resources (the glade " -"file was not found)." -msgstr "" -"NetworkManager Uygulamacığı bazı gerekli kaynakları bulamadı (glade dosyası " -"bulunamadı)." - -#: ../src/applet.glade.h:1 ../src/connection-editor/ce-vpn-wizard.glade.h:1 -msgid " " -msgstr " " - -#: ../src/applet.glade.h:2 -msgid "" -"1 (Default)\n" -"2\n" -"3\n" -"4" -msgstr "" -"1(Ög-belgilengen)\n" -"2\n" -"3\n" -"4" - -#: ../src/applet.glade.h:6 -msgid "Active Network Connections" -msgstr "Faal Şebeke Bağlantıları" - -# tüklü -#: ../src/applet.glade.h:7 -msgid "Anony_mous identity:" -msgstr "_Anonim kimlik:" - -#: ../src/applet.glade.h:8 -msgid "As_k for this password every time" -msgstr "Bu sır-söz içün er sefer _sora" - -#: ../src/applet.glade.h:9 -msgid "" -"Automatic\n" -"Version 0\n" -"Version 1" -msgstr "" -"Otomatik\n" -"Sürüm 0\n" -"Sürüm 1" - -#: ../src/applet.glade.h:12 -msgid "C_A certificate:" -msgstr "Şeadetname _Salâhiyeti (ŞS; CA) şeadetnamesi:" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Bu cihaznı avtomatik olaraq kilitsizle" -#: ../src/applet.glade.h:13 -msgid "C_onnect" -msgstr "_Bağlan" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "Kilit_sizle" -#: ../src/applet.glade.h:14 -msgid "Co_nnection:" -msgstr "_Bağlantı:" +#: ../src/info.ui.h:1 +msgid "Active Network Connections" +msgstr "Faal Şebeke Bağlantıları" -#: ../src/applet.glade.h:15 +#: ../src/info.ui.h:2 msgid "Connection Information" msgstr "Bağlantı Malümatı" -#: ../src/applet.glade.h:16 -msgid "Don't _warn me again" -msgstr "Meni artıq _tenbileme" +#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 +msgid "Wired 802.1X authentication" +msgstr "Telli 802.1X doğrulaması" -#: ../src/applet.glade.h:17 -msgid "I_dentity:" -msgstr "_Kimlik:" +#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:4 +msgid "_Network name:" +msgstr "Şebeke _adı:" -#: ../src/applet.glade.h:18 -msgid "I_nner authentication:" -msgstr "_İç sahihlenüv:" +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "otomatik" -#: ../src/applet.glade.h:19 -msgid "No" -msgstr "Hayır" +#: ../src/connection-editor/ce-page.c:318 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "Bilinmegen bir hatadan dolayı bağlantı sırları yañartılamadı." -#: ../src/applet.glade.h:20 +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 +#: ../src/connection-editor/ce-page-ip6.ui.h:5 msgid "" -"Open System\n" -"Shared Key" +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." msgstr "" -"Açıq Sistem\n" -"Üleşilgen Anahtar" - -#: ../src/applet.glade.h:22 -msgid "Other Wireless Network..." -msgstr "Diger Telsiz Şebeke..." +"İP adresleri bilgisayarıñıznı şebeke üzerinde kimliklendirirler. Bir İP " +"adresini eklemek içün \"Ekle\" dögmesine çertiñiz." -#: ../src/applet.glade.h:23 -msgid "Private _key:" -msgstr "Hususiy _anahtar:" +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "" +"If enabled, this connection will never be used as the default network " +"connection." +msgstr "" +"Etkinleştirilirse, bu bağlantı asla öntanımlı şebeke bağlantısı olarak " +"kullanılamayacak." -#: ../src/applet.glade.h:24 -msgid "Sho_w key" -msgstr "Anahtarnı _köster" +# tüklü +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +msgid "Ig_nore automatically obtained routes" +msgstr "Öz-özünden elde etilgen marşrutlarnı _ihmal et" -#: ../src/applet.glade.h:25 ../src/connection-editor/ce-page-dsl.glade.h:1 +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 +msgid "_Use this connection only for resources on its network" +msgstr "_Bu bağlantını ancaq şebekesi üzerindeki qaynaqlar içün qullan" + +#: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/wireless-security/eap-method-leap.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:4 +#: ../src/wireless-security/ws-leap.ui.h:1 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 msgid "Sho_w password" msgstr "Sır-sözni _köster" -#: ../src/applet.glade.h:26 -msgid "WEP inde_x:" -msgstr "WEP _indeksi:" - -# tüklü -#: ../src/applet.glade.h:27 -msgid "Wireless _adapter:" -msgstr "Telsiz _uyarlayıcı:" - -#: ../src/applet.glade.h:28 -msgid "Yes" -msgstr "Ebet" - -#: ../src/applet.glade.h:29 -msgid "_Authentication:" -msgstr "_Sahihlenme:" - -#: ../src/applet.glade.h:30 -msgid "_Key:" -msgstr "_Anahtar:" - -#: ../src/applet.glade.h:31 -msgid "_Network name:" -msgstr "Şebeke _adı:" - -#: ../src/applet.glade.h:32 -msgid "_PEAP version:" -msgstr "_PEAP sürümi:" - -#: ../src/applet.glade.h:33 ../src/connection-editor/ce-page-dsl.glade.h:2 -#: ../src/connection-editor/ce-page-mobile.glade.h:15 +#: ../src/connection-editor/ce-page-dsl.ui.h:2 +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:3 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 msgid "_Password:" msgstr "_Parola:" -#: ../src/applet.glade.h:34 -msgid "_Private key password:" -msgstr "_Hususiy anahtar sır-sözü:" - -#: ../src/applet.glade.h:35 ../src/connection-editor/ce-page-mobile.glade.h:16 -msgid "_Type:" -msgstr "_Tür:" - -#: ../src/applet.glade.h:36 -msgid "_Unlock" -msgstr "Kilit_sizle" - -#: ../src/applet.glade.h:37 -msgid "_User certificate:" -msgstr "_Qullanıcı şeadetnamesi:" +#: ../src/connection-editor/ce-page-dsl.ui.h:3 +msgid "_Service:" +msgstr "_Hızmet:" -#: ../src/applet.glade.h:38 ../src/connection-editor/ce-page-dsl.glade.h:4 -#: ../src/connection-editor/ce-page-mobile.glade.h:17 +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +#: ../src/wireless-security/eap-method-leap.ui.h:3 +#: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/ws-leap.ui.h:3 msgid "_Username:" msgstr "_Qullanıcı adı:" -#: ../src/applet.glade.h:39 -msgid "_Wireless security:" -msgstr "_Telsiz emniyet:" - -#: ../src/applet.glade.h:40 -msgid "label" -msgstr "etiket" - -#: ../src/connection-editor/ce-page.c:69 -msgid "automatic" -msgstr "otomatik" - -#: ../src/connection-editor/ce-page.c:221 -#: ../src/connection-editor/nm-connection-editor.c:623 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "Bilinmegen bir hatadan dolayı bağlantı sırları yañartılamadı." - -#: ../src/connection-editor/ce-page-dsl.glade.h:3 -msgid "_Service:" -msgstr "_Hızmet:" +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +msgid "Addresses" +msgstr "Adresler" + +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 +#: ../src/connection-editor/ce-page-wired.ui.h:7 +#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:3 +msgid "Automatic" +msgstr "Avtomatik" -#: ../src/connection-editor/ce-page-ip4.glade.h:1 -#: ../src/connection-editor/ce-page-ip6.glade.h:1 -msgid "Addresses" -msgstr "Adresler" - -#: ../src/connection-editor/ce-page-ip4.glade.h:2 -#: ../src/connection-editor/ce-page-ip6.glade.h:2 -msgid "" -"Automatic\n" -"Automatic with manual DNS settings\n" -"Manual\n" -"Link-Local\n" -"Shared to other computers" -msgstr "" -"Kendiliğinden\n" -"Kendiliğinden ve elle DNS ayarları\n" -"Elle\n" -"Yerel-Bağlantı\n" -"Diğer bilgisayarlara paylaştırılmış" +# tüklü +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 +msgid "Automatic with manual DNS settings" +msgstr "Avtomatik, elnen ayarlanğan DNS ile" -#: ../src/connection-editor/ce-page-ip4.glade.h:7 +#: ../src/connection-editor/ce-page-ip4.ui.h:4 msgid "D_HCP client ID:" msgstr "D_HCP müşteri kimligi:" -#: ../src/connection-editor/ce-page-ip4.glade.h:8 -#: ../src/connection-editor/ce-page-ip6.glade.h:7 +#: ../src/connection-editor/ce-page-ip4.ui.h:5 +#: ../src/connection-editor/ce-page-ip6.ui.h:4 msgid "" "Domains used when resolving host names. Use commas to separate multiple " "domains." msgstr "" -"Qonaqbay adlarını çezgende qullanılğan saalar. Müteaddit saanı ayırmaq " +"Qonaqbay adlarını çezgende qullanılğan sahalar. Müteaddit sahanı ayırmaq " "içün virgüllerni qullanıñız." -#: ../src/connection-editor/ce-page-ip4.glade.h:9 -#: ../src/connection-editor/ce-page-ip6.glade.h:8 -msgid "" -"IP addresses identify your computer on the network. Click the \"Add\" " -"button to add an IP address." -msgstr "" -"İP adresleri bilgisayarıñıznı şebeke üzerinde kimliklendirirler. Bir İP " -"adresini eklemek içün \"Ekle\" dögmesine çertiñiz." - # tüklü -#: ../src/connection-editor/ce-page-ip4.glade.h:10 -#: ../src/connection-editor/ce-page-ip6.glade.h:9 +#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip6.ui.h:6 msgid "" "IP addresses of domain name servers used to resolve host names. Use commas " "to separate multiple domain name server addresses." msgstr "" -"Qonaqbay adlarını çezmek içün qullanılğan saa adı sunucılarınıñ İP " -"adresleri. Müteaddit saa adı sunucısı adreslerini ayırmaq içün virgüllerni " +"Qonaqbay adlarını çezmek içün qullanılğan saha adı sunucılarınıñ İP " +"adresleri. Müteaddit saha adı sunucısı adreslerini ayırmaq içün virgüllerni " "qullanıñız." -#: ../src/connection-editor/ce-page-ip4.glade.h:11 -#: ../src/connection-editor/ce-page-ip6.glade.h:10 -msgid "" -"If enabled, this connection will never be used as the default network " -"connection." -msgstr "" -"Etkinleştirilirse, bu bağlantı asla öntanımlı şebeke bağlantısı olarak " -"kullanılamayacak." - # tüklü -#: ../src/connection-editor/ce-page-ip4.glade.h:12 -#: ../src/connection-editor/ce-page-ip6.glade.h:11 -msgid "Ig_nore automatically obtained routes" -msgstr "Öz-özünden elde etilgen marşrutlarnı _ihmal et" +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:7 +msgid "Link-Local" +msgstr "İlişim-Yerli" + +#: ../src/connection-editor/ce-page-ip4.ui.h:9 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "Elle" + +#: ../src/connection-editor/ce-page-ip4.ui.h:10 +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "Bu bağlantınıñ tamamlanması içün IPv_4 adreslemesini zarur yap" + +#: ../src/connection-editor/ce-page-ip4.ui.h:11 +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +msgid "S_earch domains:" +msgstr "_Sahalarnı qıdır:" + +#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "Diger bilgisayarlarğa üleşimli" -#: ../src/connection-editor/ce-page-ip4.glade.h:13 +#: ../src/connection-editor/ce-page-ip4.ui.h:13 msgid "" "The DHCP client identifier allows the network administrator to customize " "your computer's configuration. If you wish to use a DHCP client identifier, " @@ -1127,480 +1223,532 @@ "şahsiyleştirmege izin berir. Bir DHCP müşterisi kimligini qullanmağa " "isteseñiz, onı mında kirsetiñiz." -#: ../src/connection-editor/ce-page-ip4.glade.h:14 -#: ../src/connection-editor/ce-page-ip6.glade.h:12 -msgid "Use this c_onnection only for resources on its network" -msgstr "Bu _bağlantını faqat bu şebekedeki çoqraqlar içün qullan" +# tr +#: ../src/connection-editor/ce-page-ip4.ui.h:14 +msgid "" +"When connecting to IPv6-capable networks, allows the connection to complete " +"if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "" +"IPv6 uyumlu ağlara bağlandığında, IPv6 yapılandırması çalışıp IPv4 " +"yapılandırması çalışmadığında bağlantının tamamlanmasına izin verir." -#: ../src/connection-editor/ce-page-ip4.glade.h:15 -#: ../src/connection-editor/ce-page-ip6.glade.h:13 +#: ../src/connection-editor/ce-page-ip4.ui.h:15 +#: ../src/connection-editor/ce-page-ip6.ui.h:13 msgid "_DNS servers:" msgstr "_DNS sunucıları:" -#: ../src/connection-editor/ce-page-ip4.glade.h:16 -#: ../src/connection-editor/ce-page-ip6.glade.h:14 +#: ../src/connection-editor/ce-page-ip4.ui.h:16 +#: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "_Method:" msgstr "_Usul:" -#: ../src/connection-editor/ce-page-ip4.glade.h:17 +#: ../src/connection-editor/ce-page-ip4.ui.h:17 +#: ../src/connection-editor/ce-page-ip6.ui.h:15 msgid "_Routes…" msgstr "_Marşrutlar…" -#: ../src/connection-editor/ce-page-ip4.glade.h:18 -#: ../src/connection-editor/ce-page-ip6.glade.h:16 -msgid "_Search domains:" -msgstr "_Saalarnı qıdır:" - -#: ../src/connection-editor/ce-page-ip6.glade.h:15 -msgid "_Routes…" -msgstr "_Marşrutlar…" - -#: ../src/connection-editor/ce-page-mobile.glade.h:1 -msgid "Advanced" -msgstr "Gelişmiş" - -#: ../src/connection-editor/ce-page-mobile.glade.h:2 -msgid "Basic" -msgstr "Temel" - -#: ../src/connection-editor/ce-page-mobile.glade.h:3 -msgid "Allow roaming if home network is not available" -msgstr "Ev şebekesi faydalanışlı degil ise kezelemege izin ber" - -#: ../src/connection-editor/ce-page-mobile.glade.h:4 -msgid "" -"Any\n" -"3G (UMTS/HSPA)\n" -"2G (GPRS/EDGE)\n" -"Prefer 3G (UMTS/HSPA)\n" -"Prefer 2G (GPRS/EDGE)" -msgstr "" -"Herhangi biri\n" -"3N (UMTS/HSPA)\n" -"2N (GPRS/EDGE)\n" -"Öncelikli 3N (UMTS/HSPA)\n" -"Öncelikli 2N (GPRS/EDGE)" +#: ../src/connection-editor/ce-page-ip6.ui.h:9 +msgid "Require IPv_6 addressing for this connection to complete" +msgstr "Bu bağlantınıñ tamamlanması içün IPv_6 adreslemesini zarur yap" + +# tr +#: ../src/connection-editor/ce-page-ip6.ui.h:12 +msgid "" +"When connecting to IPv4-capable networks, allows the connection to complete " +"if IPv6 configuration fails but IPv4 configuration succeeds." +msgstr "" +"IPv6 uyumlu ağlara bağlandığında, IPv6 yapılandırması çalışıp IPv4 " +"yapılandırması çalışmadığında bağlantının tamamlanmasına izin verir." + +#: ../src/connection-editor/ce-page-mobile.ui.h:1 +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:2 +msgid "3G (UMTS/HSPA)" +msgstr "3G (UMTS/HSPA)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:3 +msgid "Advanced" +msgstr "İleriletilgen" + +#: ../src/connection-editor/ce-page-mobile.ui.h:4 +msgid "Allow _roaming if home network is not available" +msgstr "Ev şebekesi müsait degil ise _kezelemege izin ber" + +#: ../src/connection-editor/ce-page-mobile.ui.h:5 +msgid "Any" +msgstr "Her hangisi" + +#: ../src/connection-editor/ce-page-mobile.ui.h:6 +msgid "Basic" +msgstr "Temel" -#: ../src/connection-editor/ce-page-mobile.glade.h:9 +#: ../src/connection-editor/ce-page-mobile.ui.h:7 msgid "Change..." msgstr "Deñiştir..." -#: ../src/connection-editor/ce-page-mobile.glade.h:10 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 msgid "N_etwork ID:" msgstr "_Şebeke Kimligi:" -#: ../src/connection-editor/ce-page-mobile.glade.h:11 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "_Nomera:" -#: ../src/connection-editor/ce-page-mobile.glade.h:12 -msgid "PI_N:" -msgstr "Şahsiy _Kimlik Nomerası (ŞKN; PIN):" +# tüklü +#: ../src/connection-editor/ce-page-mobile.ui.h:10 +msgid "P_IN:" +msgstr "P_IN:" + +#: ../src/connection-editor/ce-page-mobile.ui.h:11 +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE) tercih et" + +#: ../src/connection-editor/ce-page-mobile.ui.h:12 +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "Prefer 3G (UMTS/HSPA) tercih et" -#: ../src/connection-editor/ce-page-mobile.glade.h:13 +#: ../src/connection-editor/ce-page-mobile.ui.h:13 msgid "Sho_w passwords" msgstr "Sır-sözlerni _köster" # tüklü -#: ../src/connection-editor/ce-page-mobile.glade.h:14 +#: ../src/connection-editor/ce-page-mobile.ui.h:14 msgid "_APN:" msgstr "_APN:" -#: ../src/connection-editor/ce-page-ppp.glade.h:1 -msgid "Allowed Authentication Methods" -msgstr "Caiz Sahihlenüv Usulları" - -#: ../src/connection-editor/ce-page-ppp.glade.h:2 -msgid "Authentication" -msgstr "Sahihlenüv" - -#: ../src/connection-editor/ce-page-ppp.glade.h:3 -msgid "Compression" -msgstr "Sıqıştırma" - -#: ../src/connection-editor/ce-page-ppp.glade.h:4 -msgid "Echo" -msgstr "Yansılayıcı" - -#: ../src/connection-editor/ce-page-ppp.glade.h:5 -msgid "" -"In most cases, the provider's PPP servers will support all authentication " -"methods. If connections fail, try disabling support for some methods." -msgstr "" -"çoğu durumda, sağlayıcının PPP sunucuları tüm kimlik doğrulama " -"yöntemlerini destekler. Eğer bağlantılar hata verirse, bazı yöntemler için " -"devre dışı bırakmayı deneyin." +#: ../src/connection-editor/ce-page-mobile.ui.h:16 +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "_Type:" +msgstr "_Tür:" -#: ../src/connection-editor/ce-page-ppp.glade.h:6 +#: ../src/connection-editor/ce-page-ppp.ui.h:1 msgid "Allow _BSD data compression" msgstr "_BSD veriler sıqıştırmasına izin ber" # tüklü -#: ../src/connection-editor/ce-page-ppp.glade.h:7 +#: ../src/connection-editor/ce-page-ppp.ui.h:2 msgid "Allow _Deflate data compression" msgstr "\"_Deflate\" veriler sıqıştırmasına izin ber" -#: ../src/connection-editor/ce-page-ppp.glade.h:8 +#: ../src/connection-editor/ce-page-ppp.ui.h:3 msgid "Allowed methods:" -msgstr "Caiz Usullar:" +msgstr "Caiz usullar:" -# tüklü -#: ../src/connection-editor/ce-page-ppp.glade.h:9 -msgid "C_HAP" -msgstr "C_HAP" +#: ../src/connection-editor/ce-page-ppp.ui.h:4 +msgid "Authentication" +msgstr "Sahihlenim" -#: ../src/connection-editor/ce-page-ppp.glade.h:10 -msgid "Challenge Handshake Authentication Protocol" -msgstr "Challenge Handshake Doğrulama Protokolü" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "Compression" +msgstr "Sıqıştırma" -#: ../src/connection-editor/ce-page-ppp.glade.h:11 +#: ../src/connection-editor/ce-page-ppp.ui.h:6 msgid "Configure _Methods…" msgstr "_Usullarnı Ayarla..." -# tüklü -#: ../src/connection-editor/ce-page-ppp.glade.h:12 -msgid "Extensible Authentication Protocol" -msgstr "Uzatılabilir Sahihlenüv Protokolı" - -#: ../src/connection-editor/ce-page-ppp.glade.h:13 -msgid "MSCHAP v_2" -msgstr "MSCHAP sürüm _2" - -#: ../src/connection-editor/ce-page-ppp.glade.h:14 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft Challenge Handshake Doğrulama Protokolü" - -#: ../src/connection-editor/ce-page-ppp.glade.h:15 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft Challenge Handshake Doğrulama Protokolü sürüm 2" - -#: ../src/connection-editor/ce-page-ppp.glade.h:16 -msgid "Password Authentication Protocol" -msgstr "Parola Doğrulaması Protokolü" +#: ../src/connection-editor/ce-page-ppp.ui.h:7 +msgid "Echo" +msgstr "Akisseda" -#: ../src/connection-editor/ce-page-ppp.glade.h:17 +#: ../src/connection-editor/ce-page-ppp.ui.h:8 msgid "Send PPP _echo packets" msgstr "PPP _akisseda paketlerini yiber" -#: ../src/connection-editor/ce-page-ppp.glade.h:18 +#: ../src/connection-editor/ce-page-ppp.ui.h:9 msgid "Use TCP _header compression" msgstr "TCP _başlıq sıqıştırmasını qullan" -#: ../src/connection-editor/ce-page-ppp.glade.h:19 +#: ../src/connection-editor/ce-page-ppp.ui.h:10 msgid "Use _stateful MPPE" msgstr "_Durumlı MPPE qullan" -#: ../src/connection-editor/ce-page-ppp.glade.h:20 -msgid "_EAP" -msgstr "_EAP" - -#: ../src/connection-editor/ce-page-ppp.glade.h:21 -msgid "_MSCHAP" -msgstr "_MSCHAP" - -#: ../src/connection-editor/ce-page-ppp.glade.h:22 -msgid "_PAP" -msgstr "_PAP" - -#: ../src/connection-editor/ce-page-ppp.glade.h:23 +#: ../src/connection-editor/ce-page-ppp.ui.h:11 msgid "_Require 128-bit encryption" msgstr "128-bit şifrelendirme şart _olsun" -#: ../src/connection-editor/ce-page-ppp.glade.h:24 +#: ../src/connection-editor/ce-page-ppp.ui.h:12 msgid "_Use point-to-point encryption (MPPE)" msgstr "_Noqtadan-noqtağa şifrelendirme (MPPE) qullan" -#: ../src/connection-editor/ce-page-wired.glade.h:1 +#: ../src/connection-editor/ce-page-wired.ui.h:1 +msgid "1 Gb/s" +msgstr "1 Gb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:2 +msgid "10 Gb/s" +msgstr "10 Gb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:3 +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:4 +msgid "100 Mb/s" +msgstr "100 Mb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:5 +msgid "Attachment Unit Interface (AUI)" +msgstr "İlişik Birlemi Arayüzü (İBA; AUI)" + +#: ../src/connection-editor/ce-page-wired.ui.h:6 msgid "Aut_onegotiate" msgstr "_Avto-añlaş" -#: ../src/connection-editor/ce-page-wired.glade.h:2 -msgid "" -"Automatic\n" -"10 Mb/s\n" -"100 Mb/s\n" -"1 Gb/s\n" -"10 Gb/s" -msgstr "" -"Otomatik\n" -"10 Mb/s\n" -"100 Mb/s\n" -"1 Gb/s\n" -"10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.glade.h:7 -msgid "" -"Automatic\n" -"Twisted Pair (TP)\n" -"Attachment Unit Interface (AUI)\n" -"BNC\n" -"Media Independent Interface (MII)" -msgstr "" -"Automatic\n" -"Twisted Pair (TP)\n" -"Attachment Unit Interface (AUI)\n" -"BNC\n" -"Media Independent Interface (MII)" +#: ../src/connection-editor/ce-page-wired.ui.h:8 +msgid "BNC" +msgstr "BNC" -#: ../src/connection-editor/ce-page-wired.glade.h:12 +# tüklü +#: ../src/connection-editor/ce-page-wired.ui.h:9 +#: ../src/connection-editor/ce-page-wireless.ui.h:7 +msgid "C_loned MAC address:" +msgstr "_Klonlanğan MAC adresi:" + +#: ../src/connection-editor/ce-page-wired.ui.h:10 msgid "Full duple_x" msgstr "Tam çift _yönlü" # tüklü -#: ../src/connection-editor/ce-page-wired.glade.h:13 -#: ../src/connection-editor/ce-page-wireless.glade.h:8 -msgid "MT_U:" -msgstr "MT_U:" +#: ../src/connection-editor/ce-page-wired.ui.h:11 +msgid "Media Independent Interface (MII)" +msgstr "Vasattan Bağımsız Arayüz (MII)" + +# tüklü +#: ../src/connection-editor/ce-page-wired.ui.h:12 +#: ../src/connection-editor/ce-page-wireless.ui.h:12 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"Buraya girilen MAC adresi, bu bağlantı etkinleştirildiğinde donanım adresi " +"olarak kullanılacak. Bu özellik MAC çoklama ya da aldatma olarak bilinir. " +"Örnek: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-wired.ui.h:13 +msgid "Twisted Pair (TP)" +msgstr "Qayırılğan Çift (TP)" # tüklü -#: ../src/connection-editor/ce-page-wired.glade.h:14 -#: ../src/connection-editor/ce-page-wireless.glade.h:13 -msgid "_MAC address:" -msgstr "_MAC adresi:" +#: ../src/connection-editor/ce-page-wired.ui.h:14 +#: ../src/connection-editor/ce-page-wireless.ui.h:16 +msgid "_Device MAC address:" +msgstr "_Cihaz MAC adresi:" + +#: ../src/connection-editor/ce-page-wired.ui.h:15 +#: ../src/connection-editor/ce-page-wireless.ui.h:17 +msgid "_MTU:" +msgstr "_MTU:" -#: ../src/connection-editor/ce-page-wired.glade.h:15 +#: ../src/connection-editor/ce-page-wired.ui.h:16 msgid "_Port:" msgstr "_Port:" -#: ../src/connection-editor/ce-page-wired.glade.h:16 +#: ../src/connection-editor/ce-page-wired.ui.h:17 msgid "_Speed:" msgstr "_Sur'at:" -#: ../src/connection-editor/ce-page-wired.glade.h:17 -#: ../src/connection-editor/ce-page-wireless.glade.h:16 +#: ../src/connection-editor/ce-page-wired.ui.h:18 +#: ../src/connection-editor/ce-page-wireless.ui.h:19 msgid "bytes" msgstr "bayt" -#: ../src/connection-editor/ce-page-wireless.glade.h:1 -msgid "" -"Automatic\n" -"A (5 GHz)\n" -"B/G (2.4 GHz)" -msgstr "" -"Otomatik\n" -"A (5 GHz)\n" -"B/G (2.4 GHz)" +#: ../src/connection-editor/ce-page-wireless.ui.h:1 +msgid "A (5 GHz)" +msgstr "A (5 GHz)" + +# tüklü +#: ../src/connection-editor/ce-page-wireless.ui.h:2 +msgid "Ad-hoc" +msgstr "Ad-hoc (Halükârğa mahsus)" -#: ../src/connection-editor/ce-page-wireless.glade.h:4 +#: ../src/connection-editor/ce-page-wireless.ui.h:4 +msgid "B/G (2.4 GHz)" +msgstr "B/G (2.4 GHz)" + +#: ../src/connection-editor/ce-page-wireless.ui.h:5 msgid "Ban_d:" msgstr "Ban_t:" -#: ../src/connection-editor/ce-page-wireless.glade.h:5 +#: ../src/connection-editor/ce-page-wireless.ui.h:6 msgid "C_hannel:" msgstr "k_anal:" -#: ../src/connection-editor/ce-page-wireless.glade.h:6 -msgid "" -"Infrastructure\n" -"Ad-hoc" -msgstr "" -"Altyapı\n" -"Ad-hoc" +#: ../src/connection-editor/ce-page-wireless.ui.h:8 +msgid "Infrastructure" +msgstr "Altyapı" -#: ../src/connection-editor/ce-page-wireless.glade.h:9 +#: ../src/connection-editor/ce-page-wireless.ui.h:9 msgid "M_ode:" msgstr "K_ip:" -#: ../src/connection-editor/ce-page-wireless.glade.h:10 +#: ../src/connection-editor/ce-page-wireless.ui.h:10 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.glade.h:11 +#: ../src/connection-editor/ce-page-wireless.ui.h:11 +msgid "SS_ID:" +msgstr "SS_ID:" + +# tr +#: ../src/connection-editor/ce-page-wireless.ui.h:13 +msgid "" +"This option locks this connection to the wireless access point (AP) " +"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Bu seçenek burada girilen BSSID tarafından belirlenen kablosuz erişim " +"noktalarına(AP) olan bağlantıyı kilitler. Örneğin: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-wireless.ui.h:14 msgid "Transmission po_wer:" msgstr "Gönderim gü_cü:" -#: ../src/connection-editor/ce-page-wireless.glade.h:12 +#: ../src/connection-editor/ce-page-wireless.ui.h:15 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.glade.h:14 +#: ../src/connection-editor/ce-page-wireless.ui.h:18 msgid "_Rate:" msgstr "_Nisbet:" -#: ../src/connection-editor/ce-page-wireless.glade.h:15 -msgid "_SSID:" -msgstr "_SSID:" - -#: ../src/connection-editor/ce-page-wireless.glade.h:17 +#: ../src/connection-editor/ce-page-wireless.ui.h:20 msgid "mW" msgstr "mW" -#: ../src/connection-editor/ce-page-wireless-security.glade.h:1 -msgid "_Security:" +#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 +msgid "S_ecurity:" msgstr "_Emniyet:" -#: ../src/connection-editor/ce-vpn-wizard.glade.h:2 -msgid "" -"Choose a VPN Connection Type\n" -"\n" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 +msgid "Allowed Authentication Methods" +msgstr "Caiz Sahihlenim Usulları" + +# tüklü +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 +msgid "C_HAP" +msgstr "C_HAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +msgid "Challenge Handshake Authentication Protocol" +msgstr "Challenge Handshake Doğrulama Protokolü" + +# tüklü +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "Extensible Authentication Protocol" +msgstr "Uzatılabilir Sahihlenüv Protokolı" + +# tr +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." msgstr "" -"Bir VPN Bağlantı Türü Seçin\n" -"\n" -"Yeni bağlantı için kullanmak istediğiniz VPN türünü seçin. Oluşturmak " -"istediğiniz VPN bağlantı türü listede görünmüyorsa, VPN eklentisi doğru " -"şekilde kurulmamış olabilir." +"Genellikle, sağlayıcının PPP sunucuları tüm doğrulama yöntemlerini " +"destekleyecektir. Eğer bağlantı sağlanamazsa, bazı yöntemler için desteği " +"devre dışı bırakmayı deneyin." + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 +msgid "MSCHAP v_2" +msgstr "MSCHAP sürüm _2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft Challenge Handshake Doğrulama Protokolü" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft Challenge Handshake Doğrulama Protokolü sürüm 2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Password Authentication Protocol" +msgstr "Parola Doğrulaması Protokolü" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "_EAP" +msgstr "_EAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "_MSCHAP" +msgstr "_MSCHAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 +msgid "_PAP" +msgstr "_PAP" + +#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " -#: ../src/connection-editor/ce-vpn-wizard.glade.h:5 +#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 +msgid "Choose a VPN Connection Type" +msgstr "Bir VPN Bağlantı Türü Saylañız" + +#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 msgid "Create…" -msgstr "İcat Et..." +msgstr "İcat Et…" -#: ../src/connection-editor/ip4-routes-dialog.c:501 -#: ../src/connection-editor/ip6-routes-dialog.c:459 -#: ../src/connection-editor/page-ip4.c:634 -#: ../src/connection-editor/page-ip6.c:611 +#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Yañı bağlantı içün qullanmağa istegeniñiz VPN türüni saylañız. İcat etmege " +"istegeniñiz VPN bağlantı türü listede körünmey ise, belki de qurulğan doğru " +"VPN plaginiñiz yoq." + +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:900 +#: ../src/connection-editor/page-ip6.c:866 msgid "Address" msgstr "Adres" -#: ../src/connection-editor/ip4-routes-dialog.c:517 -#: ../src/connection-editor/page-ip4.c:650 +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:917 msgid "Netmask" msgstr "Şebeke maskası" -#: ../src/connection-editor/ip4-routes-dialog.c:533 -#: ../src/connection-editor/ip6-routes-dialog.c:491 -#: ../src/connection-editor/page-ip4.c:666 +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:934 +#: ../src/connection-editor/page-ip6.c:900 msgid "Gateway" msgstr "Veri yolu" -#: ../src/connection-editor/ip4-routes-dialog.c:549 -#: ../src/connection-editor/ip6-routes-dialog.c:507 +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 msgid "Metric" msgstr "Ölçü" -#: ../src/connection-editor/ip6-routes-dialog.c:475 -#: ../src/connection-editor/page-ip6.c:627 +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:883 msgid "Prefix" msgstr "Ög-yalğama" -#: ../src/connection-editor/page-dsl.c:140 -#: ../src/connection-editor/page-dsl.c:147 -msgid "Could not load DSL user interface." -msgstr "DSL qullanıcı arayüzü yüklenamadı." - -#: ../src/connection-editor/page-dsl.c:153 -#: ../src/connection-editor/nm-connection-editor.glade.h:4 -#: ../src/connection-editor/nm-connection-list.c:1368 +#: ../src/connection-editor/page-dsl.c:139 +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" -#: ../src/connection-editor/page-dsl.c:241 +#: ../src/connection-editor/page-dsl.c:141 +msgid "Could not load DSL user interface." +msgstr "DSL qullanıcı arayüzü yüklenamadı." + +#: ../src/connection-editor/page-dsl.c:231 #, c-format msgid "DSL connection %d" msgstr "DSL bağlantısı %d" -#: ../src/connection-editor/page-ip4.c:116 -#: ../src/connection-editor/page-ip6.c:114 +#: ../src/connection-editor/page-ip4.c:133 +#: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" msgstr "Otomatik (VPN)" -#: ../src/connection-editor/page-ip4.c:117 -#: ../src/connection-editor/page-ip6.c:115 +#: ../src/connection-editor/page-ip4.c:134 +#: ../src/connection-editor/page-ip6.c:133 msgid "Automatic (VPN) addresses only" msgstr "Sadece otomatik (VPN) adresleri" -#: ../src/connection-editor/page-ip4.c:120 -#: ../src/connection-editor/page-ip6.c:118 +#: ../src/connection-editor/page-ip4.c:137 +#: ../src/connection-editor/page-ip6.c:136 msgid "Automatic (PPP)" msgstr "Otomatik (PPP)" -#: ../src/connection-editor/page-ip4.c:121 -#: ../src/connection-editor/page-ip6.c:119 +#: ../src/connection-editor/page-ip4.c:138 +#: ../src/connection-editor/page-ip6.c:137 msgid "Automatic (PPP) addresses only" msgstr "Sadece otomatik (PPP) adresleri" -#: ../src/connection-editor/page-ip4.c:123 -#: ../src/connection-editor/page-ip6.c:121 +#: ../src/connection-editor/page-ip4.c:140 +#: ../src/connection-editor/page-ip6.c:139 msgid "Automatic (PPPoE)" msgstr "Otomatik (PPPoE)" -#: ../src/connection-editor/page-ip4.c:124 -#: ../src/connection-editor/page-ip6.c:122 +#: ../src/connection-editor/page-ip4.c:141 +#: ../src/connection-editor/page-ip6.c:140 msgid "Automatic (PPPoE) addresses only" msgstr "Sadece otomatik (PPPoE) adresleri" -#: ../src/connection-editor/page-ip4.c:126 +#: ../src/connection-editor/page-ip4.c:143 msgid "Automatic (DHCP)" msgstr "Otomatik (DHCP)" -#: ../src/connection-editor/page-ip4.c:127 +#: ../src/connection-editor/page-ip4.c:144 msgid "Automatic (DHCP) addresses only" msgstr "Sadece otomatik (DHCP) adresleri" -#: ../src/connection-editor/page-ip4.c:152 -#: ../src/connection-editor/page-ip6.c:162 -msgid "Manual" -msgstr "Elle" - # tüklü -#: ../src/connection-editor/page-ip4.c:164 -#: ../src/connection-editor/page-ip6.c:175 +#: ../src/connection-editor/page-ip4.c:181 +#: ../src/connection-editor/page-ip6.c:204 msgid "Link-Local Only" msgstr "Faqat Yerli-İlişim" -#: ../src/connection-editor/page-ip4.c:170 -#: ../src/connection-editor/page-ip6.c:182 -msgid "Shared to other computers" -msgstr "Diger bilgisayarlarğa üleşimli" +#: ../src/connection-editor/page-ip4.c:197 +msgid "Disabled" +msgstr "Ğayrıqabilleştirilgen" -#: ../src/connection-editor/page-ip4.c:597 +#: ../src/connection-editor/page-ip4.c:832 #, c-format msgid "Editing IPv4 routes for %s" msgstr "%s için IPv4 yönlendiricisi düzenleniyor" -#: ../src/connection-editor/page-ip4.c:711 -#: ../src/connection-editor/page-ip4.c:718 -msgid "Could not load IPv4 user interface." -msgstr "İPv4 qullanıcı arayüzü yüklenamadı." - -#: ../src/connection-editor/page-ip4.c:724 +#: ../src/connection-editor/page-ip4.c:981 msgid "IPv4 Settings" msgstr "IPv4 Tesbitleri" -#: ../src/connection-editor/page-ip6.c:124 -msgid "Automatic" -msgstr "Avtomatik" +#: ../src/connection-editor/page-ip4.c:983 +msgid "Could not load IPv4 user interface." +msgstr "İPv4 qullanıcı arayüzü yüklenamadı." -#: ../src/connection-editor/page-ip6.c:125 +#: ../src/connection-editor/page-ip6.c:143 msgid "Automatic, addresses only" msgstr "Avtomatik, faqat adresler" -#: ../src/connection-editor/page-ip6.c:137 -#: ../src/wireless-security/eap-method.c:196 +#: ../src/connection-editor/page-ip6.c:155 +#: ../src/wireless-security/eap-method.c:285 msgid "Ignore" msgstr "Yoksay" -#: ../src/connection-editor/page-ip6.c:574 +#: ../src/connection-editor/page-ip6.c:179 +msgid "Automatic, DHCP only" +msgstr "Avtomatik, ancaq DHCP" + +#: ../src/connection-editor/page-ip6.c:798 #, c-format msgid "Editing IPv6 routes for %s" -msgstr "%s içün İPv6 marşrutlarını tarir etüv" +msgstr "%s içün İPv6 marşrutlarını tahrir etüv" -#: ../src/connection-editor/page-ip6.c:670 -#: ../src/connection-editor/page-ip6.c:677 -msgid "Could not load IPv6 user interface." -msgstr "İPv6 qullanıcı arayüzü yüklenamadı." - -#: ../src/connection-editor/page-ip6.c:683 +#: ../src/connection-editor/page-ip6.c:945 msgid "IPv6 Settings" msgstr "İPv6 Ayarları" -#: ../src/connection-editor/page-mobile.c:305 -#: ../src/connection-editor/page-mobile.c:312 +#: ../src/connection-editor/page-ip6.c:947 +msgid "Could not load IPv6 user interface." +msgstr "İPv6 qullanıcı arayüzü yüklenamadı." + +#: ../src/connection-editor/page-mobile.c:381 msgid "Could not load mobile broadband user interface." msgstr "Mobil keniş-bant qullanıcı arayüzü yüklenamadı." -#: ../src/connection-editor/page-mobile.c:333 +#: ../src/connection-editor/page-mobile.c:398 msgid "Unsupported mobile broadband connection type." msgstr "Desteklenmegen mobil keniş-bant bağlantı türü." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:574 +#: ../src/connection-editor/page-mobile.c:639 msgid "Select Mobile Broadband Provider Type" msgstr "Mobil Keniş-bant Teminatçı Türüni Saylañız" -#: ../src/connection-editor/page-mobile.c:601 +#: ../src/connection-editor/page-mobile.c:674 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." @@ -1608,325 +1756,339 @@ "Mobil keniş-bant teminatçıñıznıñ qullanğanı tehnologiyanı saylañız. Emin " "degil iseñiz, teminatçıñızğa sorañız." -#: ../src/connection-editor/page-mobile.c:606 +#: ../src/connection-editor/page-mobile.c:679 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "" "Teminatçım _GSM-esaslı tehnologiya qullana (yani, GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/page-mobile.c:611 +#: ../src/connection-editor/page-mobile.c:686 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "Teminatçım C_DMA-esaslı tehnologiya qullana (yani, 1xRTT, EVDO)" +msgstr "Teminatçım _CDMA-esaslı tehnologiya qullana (yani, 1xRTT, EVDO)" -#: ../src/connection-editor/page-ppp.c:132 +#: ../src/connection-editor/page-ppp.c:134 msgid "EAP" msgstr "EAP" -#: ../src/connection-editor/page-ppp.c:133 -#: ../src/wireless-security/eap-method-ttls.c:227 +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 msgid "PAP" msgstr "PAP" -#: ../src/connection-editor/page-ppp.c:134 -#: ../src/wireless-security/eap-method-ttls.c:272 +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 msgid "CHAP" msgstr "CHAP" -#: ../src/connection-editor/page-ppp.c:135 -#: ../src/wireless-security/eap-method-peap.c:244 -#: ../src/wireless-security/eap-method-ttls.c:257 +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 msgid "MSCHAPv2" msgstr "MSCHAPv2" -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:242 +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 msgid "MSCHAP" msgstr "MSCHAP" #. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:139 +#: ../src/connection-editor/page-ppp.c:141 msgid "none" msgstr "hiçbiri" -#: ../src/connection-editor/page-ppp.c:199 +#: ../src/connection-editor/page-ppp.c:201 #, c-format msgid "Editing PPP authentication methods for %s" msgstr "%s için PPP doğrulama yöntemleri düzenleniyor" -#: ../src/connection-editor/page-ppp.c:283 -#: ../src/connection-editor/page-ppp.c:290 -msgid "Could not load PPP user interface." -msgstr "PPP qullanıcı arayüzü yüklenamadı." - -#: ../src/connection-editor/page-ppp.c:296 +#: ../src/connection-editor/page-ppp.c:282 msgid "PPP Settings" msgstr "PPP Tesbitleri" -#: ../src/connection-editor/page-vpn.c:108 -#: ../src/connection-editor/nm-connection-editor.glade.h:8 -#: ../src/connection-editor/nm-connection-list.c:1364 +#: ../src/connection-editor/page-ppp.c:284 +msgid "Could not load PPP user interface." +msgstr "PPP qullanıcı arayüzü yüklenamadı." + +#: ../src/connection-editor/page-vpn.c:109 +#: ../src/connection-editor/nm-connection-editor.ui.h:8 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" -#: ../src/connection-editor/page-vpn.c:119 +#: ../src/connection-editor/page-vpn.c:111 +msgid "Could not load VPN user interface." +msgstr "VPN qullanıcı arayüzü yüklenamadı." + +#: ../src/connection-editor/page-vpn.c:126 #, c-format msgid "Could not find VPN plugin service for '%s'." msgstr "'%s' içün VPN plagin hızmeti tapılamadı." -#: ../src/connection-editor/page-vpn.c:213 -#: ../src/connection-editor/nm-connection-list.c:949 +#: ../src/connection-editor/page-vpn.c:201 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "VPN bağlantısı %d" -#: ../src/connection-editor/page-wired.c:207 -#: ../src/connection-editor/page-wired.c:214 -msgid "Could not load wired user interface." -msgstr "Telli qullanıcı arayüzü yüklenamadı." +# tüklü +#: ../src/connection-editor/page-wired.c:89 +#: ../src/connection-editor/page-wireless.c:94 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Bu seçenek burada girilen kalıcı MAC adreslerine göre belirlenen ağ " +"aygıtlarına olan bağlantıyı kilitler. Örneğin: 00:11:22:33:44:55" -#: ../src/connection-editor/page-wired.c:220 -#: ../src/connection-editor/nm-connection-editor.glade.h:9 -#: ../src/connection-editor/nm-connection-list.c:1352 +#: ../src/connection-editor/page-wired.c:272 +#: ../src/connection-editor/nm-connection-editor.ui.h:9 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Telli" -#: ../src/connection-editor/page-wired.c:339 +#: ../src/connection-editor/page-wired.c:274 +msgid "Could not load wired user interface." +msgstr "Telli qullanıcı arayüzü yüklenamadı." + +#: ../src/connection-editor/page-wired.c:449 #, c-format msgid "Wired connection %d" msgstr "Telli bağlantı %d" -#: ../src/connection-editor/page-wired-security.c:115 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "802.1x Emniyeti" -#: ../src/connection-editor/page-wired-security.c:123 -msgid "Use 802.1X security for this connection" -msgstr "Bu bağlantı içün 802.1x emniyetini qullan" - -#: ../src/connection-editor/page-wireless.c:144 -#: ../src/connection-editor/page-wireless.c:148 +#: ../src/connection-editor/page-wired-security.c:121 +msgid "Could not load Wired Security security user interface." +msgstr "Telli Emniyet emniyet qullanıcı arayüzü yüklenamadı." + +#: ../src/connection-editor/page-wired-security.c:139 +msgid "Use 802.1_X security for this connection" +msgstr "Bu bağlantı içün 802.1_X emniyetini qullan" + +#: ../src/connection-editor/page-wireless.c:171 +#: ../src/connection-editor/page-wireless.c:175 +#: ../src/connection-editor/page-wireless.c:196 +#, c-format msgid "default" msgstr "öntanımlı" -#: ../src/connection-editor/page-wireless.c:166 +#: ../src/connection-editor/page-wireless.c:200 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:351 -#: ../src/connection-editor/page-wireless.c:358 -msgid "Could not load WiFi user interface." -msgstr "Wifi (Telsiz Vefa) qullanıcı arayüzü yüklenamadı." - -#: ../src/connection-editor/page-wireless.c:364 -#: ../src/connection-editor/nm-connection-editor.glade.h:10 -#: ../src/connection-editor/nm-connection-list.c:1356 +#: ../src/connection-editor/page-wireless.c:457 +#: ../src/connection-editor/nm-connection-editor.ui.h:10 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Telsiz" -#: ../src/connection-editor/page-wireless.c:511 +#: ../src/connection-editor/page-wireless.c:459 +msgid "Could not load WiFi user interface." +msgstr "Wifi (Telsiz Vefa) qullanıcı arayüzü yüklenamadı." + +#: ../src/connection-editor/page-wireless.c:663 #, c-format msgid "Wireless connection %d" msgstr "Telsiz bağlantı %d" -#: ../src/connection-editor/page-wireless-security.c:262 -#: ../src/wireless-dialog.c:905 -msgid "WEP 40/128-bit Key" -msgstr "WEP 40/128-bit Anahtarı" +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "WEP 40/128-bit Anahtarı (Onaltışarlama ya da ASCII)" -#: ../src/connection-editor/page-wireless-security.c:271 -#: ../src/wireless-dialog.c:914 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128-bit Sır-ibaresi" -#: ../src/connection-editor/page-wireless-security.c:297 -#: ../src/wireless-dialog.c:944 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "Dinamik WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:311 -#: ../src/wireless-dialog.c:958 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 Kişisel" -#: ../src/connection-editor/page-wireless-security.c:325 -#: ../src/wireless-dialog.c:972 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA & WPA2 Kurum" -#: ../src/connection-editor/page-wireless-security.c:365 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "" "Wifi (Telsiz Vefa) emniyeti qullanıcı arayüzü yüklenamadı; WiFi ayarı eksik." -#: ../src/connection-editor/page-wireless-security.c:372 -#: ../src/connection-editor/page-wireless-security.c:379 -msgid "Could not load WiFi security user interface." -msgstr "Wifi (Telsiz Vefa) emniyeti qullanıcı arayüzü yüklenamadı." - -#: ../src/connection-editor/page-wireless-security.c:385 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "Telsiz Emniyet" -#: ../src/connection-editor/nm-connection-editor.c:107 +#: ../src/connection-editor/page-wireless-security.c:407 +msgid "Could not load WiFi security user interface." +msgstr "Wifi (Telsiz Vefa) emniyeti qullanıcı arayüzü yüklenamadı." + +#: ../src/connection-editor/nm-connection-editor.c:101 #, c-format msgid "Editing %s" msgstr "Düzenleniyor %s" -#: ../src/connection-editor/nm-connection-editor.c:111 +#: ../src/connection-editor/nm-connection-editor.c:105 msgid "Editing un-named connection" msgstr "Ad-sız bağlantı düzenleniyor" -#: ../src/connection-editor/nm-connection-editor.c:294 +# tr +#: ../src/connection-editor/nm-connection-editor.c:291 msgid "" -"The connection editor could not find some required resources (the " -"NetworkManager applet glade file was not found)." -msgstr "" -"Bağlantı düzenleyici gerekli olan bazı kaynakları bulamadı (Şebeke " -"Yöneticisi uygulamacığı 'glade' dosyası bulunamadı)." - -#: ../src/connection-editor/nm-connection-editor.c:307 -msgid "" -"The connection editor could not find some required resources (the glade file " +"The connection editor could not find some required resources (the .ui file " "was not found)." msgstr "" -"Bağlantı düzenleyici gerekli bazı kaynakları bulamadı (glade dosyası " -"bulunamadı) ." +"Bağlantı düzenleyici bazı gerekli kaynakları bulamadı ( .ui dosyası " +"bulunamadı)." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:394 msgid "Error creating connection editor dialog." -msgstr "Bağlantı muarriri dialogı icat etilamadı." +msgstr "Bağlantı muharriri dialogı icat etilamadı." -#: ../src/connection-editor/nm-connection-editor.c:426 -msgid "Apply" -msgstr "Uyğula" +#: ../src/connection-editor/nm-connection-editor.c:406 +msgid "_Save" +msgstr "_Saqla" -#: ../src/connection-editor/nm-connection-editor.c:427 -msgid "Save this connection for all users of this machine." -msgstr "Bu makinenin tüm kullanıcıları için bağlantıyı kaydet." +#: ../src/connection-editor/nm-connection-editor.c:407 +msgid "Save any changes made to this connection." +msgstr "Bu bağlantığa yapılğan her hangi deñişikliklerni saqla." -#: ../src/connection-editor/nm-connection-editor.c:428 -msgid "Apply..." -msgstr "Uyğula..." +#: ../src/connection-editor/nm-connection-editor.c:408 +msgid "_Save..." +msgstr "_Saqla..." -#: ../src/connection-editor/nm-connection-editor.c:429 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "Authenticate to save this connection for all users of this machine." msgstr "Bu makinenin tüm kullanıcıları için bağlantı doğrulamasını kaydedin." -#: ../src/connection-editor/nm-connection-editor.glade.h:1 -msgid "Available to all users" -msgstr "Qullanıcılarnıñ episi tarafından faydalanılabilir" +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "A_vailable to all users" +msgstr "Qullanıcılarnıñ hepsi tarafından faydalanılabilir" -#: ../src/connection-editor/nm-connection-editor.glade.h:2 +#: ../src/connection-editor/nm-connection-editor.ui.h:2 msgid "Connect _automatically" msgstr "Öz-özünden _bağlan" -#: ../src/connection-editor/nm-connection-editor.glade.h:3 +#: ../src/connection-editor/nm-connection-editor.ui.h:3 msgid "Connection _name:" msgstr "Bağlantı _adı:" -#: ../src/connection-editor/nm-connection-editor.glade.h:5 +#: ../src/connection-editor/nm-connection-editor.ui.h:5 msgid "E_xport" msgstr "İh_raç Et" -#: ../src/connection-editor/nm-connection-editor.glade.h:11 +#: ../src/connection-editor/nm-connection-editor.ui.h:11 msgid "_Import" -msgstr "_İtal Et" +msgstr "_İthal Et" -#: ../src/connection-editor/nm-connection-list.c:219 +#: ../src/connection-editor/nm-connection-list.c:216 msgid "never" msgstr "asla" -#: ../src/connection-editor/nm-connection-list.c:230 -#: ../src/connection-editor/nm-connection-list.c:241 +#: ../src/connection-editor/nm-connection-list.c:227 +#: ../src/connection-editor/nm-connection-list.c:238 msgid "now" msgstr "şimdi" #. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:248 +#: ../src/connection-editor/nm-connection-list.c:245 #, c-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d daqqa evel" -#: ../src/connection-editor/nm-connection-list.c:252 +#: ../src/connection-editor/nm-connection-list.c:249 #, c-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d saat önce" -#: ../src/connection-editor/nm-connection-list.c:264 +#: ../src/connection-editor/nm-connection-list.c:261 #, c-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d kün evel" -#: ../src/connection-editor/nm-connection-list.c:270 +#: ../src/connection-editor/nm-connection-list.c:267 #, c-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d ay evel" -#: ../src/connection-editor/nm-connection-list.c:274 +#: ../src/connection-editor/nm-connection-list.c:271 #, c-format msgid "%d year ago" msgid_plural "%d years ago" msgstr[0] "%d yıl evel" -#: ../src/connection-editor/nm-connection-list.c:575 +#: ../src/connection-editor/nm-connection-list.c:486 msgid "Connection add failed" msgstr "Bağlantı eklev muvafaqiyetsiz" -#: ../src/connection-editor/nm-connection-list.c:598 +#: ../src/connection-editor/nm-connection-list.c:515 +msgid "Error saving connection" +msgstr "Bağlantını saqlağanda hata" + +#: ../src/connection-editor/nm-connection-list.c:516 #, c-format -msgid "Error editing connection: property '%s' / '%s' invalid: %d" -msgstr "Bağlantını tarir etkende hata: hasiyet '%s' / '%s' keçersiz: %d" +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Hasiyet '%s' / '%s' keçersizdir: %d" -#: ../src/connection-editor/nm-connection-list.c:605 -#: ../src/connection-editor/nm-connection-list.c:720 +#: ../src/connection-editor/nm-connection-list.c:523 +#: ../src/connection-editor/nm-connection-list.c:662 msgid "An unknown error occurred." -msgstr "Bilinmegen bir hata asıl oldı." +msgstr "Bilinmegen bir hata hasıl oldı." -#: ../src/connection-editor/nm-connection-list.c:610 -#: ../src/connection-editor/nm-connection-list.c:755 +#: ../src/connection-editor/nm-connection-list.c:528 +#: ../src/connection-editor/nm-connection-list.c:702 msgid "Error initializing editor" -msgstr "Muarrirni başlanğıçlandırğanda hata" +msgstr "Muharrirni başlanğıçlandırğanda hata" -#: ../src/connection-editor/nm-connection-list.c:626 -#: ../src/connection-editor/nm-connection-list.c:772 -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/nm-connection-list.c:546 +#: ../src/connection-editor/nm-connection-list.c:719 +#: ../src/connection-editor/nm-connection-list.c:885 msgid "" "The connection editor dialog could not be initialized due to an unknown " "error." msgstr "" -"Bağlantı muarriri bilinmegen bir hatadan dolayı başlanğıçlandırılamadı." +"Bağlantı muharriri bilinmegen bir hatadan dolayı başlanğıçlandırılamadı." -#: ../src/connection-editor/nm-connection-list.c:635 +#: ../src/connection-editor/nm-connection-list.c:557 msgid "Could not create new connection" msgstr "Yañı bağlantı icat etilamadı" -#: ../src/connection-editor/nm-connection-list.c:646 +#: ../src/connection-editor/nm-connection-list.c:569 msgid "Could not edit new connection" -msgstr "Yañı bağlantı tarir etilamadı" +msgstr "Yañı bağlantı tahrir etilamadı" -#: ../src/connection-editor/nm-connection-list.c:787 +#: ../src/connection-editor/nm-connection-list.c:733 msgid "Could not edit connection" -msgstr "Bağlantı tarir etilamadı" +msgstr "Bağlantı tahrir etilamadı" -#: ../src/connection-editor/nm-connection-list.c:812 +#: ../src/connection-editor/nm-connection-list.c:763 msgid "Connection delete failed" msgstr "Bağlantı silinamadı" -#: ../src/connection-editor/nm-connection-list.c:836 +#: ../src/connection-editor/nm-connection-list.c:795 #, c-format msgid "Are you sure you wish to delete the connection %s?" msgstr "%s bağlantısını silmek istediğinize emin misiniz?" -#: ../src/connection-editor/nm-connection-list.c:979 +#: ../src/connection-editor/nm-connection-list.c:929 #: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "VPN bağlantısı içe aktarılamıyor" -#: ../src/connection-editor/nm-connection-list.c:981 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -1936,50 +2098,81 @@ "\n" "Hata: VPN hizmeti türü yok." -#: ../src/connection-editor/nm-connection-list.c:994 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" -msgstr "İtal etilgen bağlantı tarir etilamadı" +msgstr "İthal etilgen bağlantı tahrir etilamadı" -#: ../src/connection-editor/nm-connection-list.c:1128 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "İsim" -#: ../src/connection-editor/nm-connection-list.c:1140 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "Soñki Qullanılğan" -#: ../src/connection-editor/nm-connection-list.c:1243 -msgid "Edit" -msgstr "Tarir Et" +# tr +#: ../src/connection-editor/nm-connection-list.c:1263 +msgid "No VPN plugin available. Please install one to enable this button." +msgstr "" +"Kullanılabilir VPN eklentisi yok. Bu butonu etkinleştirmek için birini " +"yükleyin." + +#: ../src/connection-editor/nm-connection-list.c:1274 +msgid "_Edit" +msgstr "_Tahrir Et" -#: ../src/connection-editor/nm-connection-list.c:1244 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" -msgstr "Saylanğan bağlantını tarir et" +msgstr "Saylanğan bağlantını tahrir et" -#: ../src/connection-editor/nm-connection-list.c:1245 -msgid "Edit..." -msgstr "Tarir Et..." +#: ../src/connection-editor/nm-connection-list.c:1276 +msgid "_Edit..." +msgstr "_Tahrir Et..." -#: ../src/connection-editor/nm-connection-list.c:1246 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" -msgstr "Saylanğan bağlantını tarir etmek içün sahihleniñiz" +msgstr "Saylanğan bağlantını tahrir etmek içün sahihleniñiz" -#: ../src/connection-editor/nm-connection-list.c:1260 -msgid "Delete" -msgstr "Sil" +#: ../src/connection-editor/nm-connection-list.c:1292 +msgid "_Delete" +msgstr "_Sil" -#: ../src/connection-editor/nm-connection-list.c:1261 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "Saylanğan bağlantını sil" -#: ../src/connection-editor/nm-connection-list.c:1262 -msgid "Delete..." -msgstr "Sil..." +#: ../src/connection-editor/nm-connection-list.c:1294 +msgid "_Delete..." +msgstr "_Sil..." -#: ../src/connection-editor/nm-connection-list.c:1263 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "Saylanğan bağlantını silmek içün sahihleniñiz" +#: ../src/connection-editor/nm-connection-list.c:1574 +msgid "Error creating connection" +msgstr "Bağlantını icat etkende hata" + +#: ../src/connection-editor/nm-connection-list.c:1575 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "'%s' bağlantılarınıñ nasıl icat etilgenini bilmeyim" + +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 +msgid "Error editing connection" +msgstr "Bağlantını tahrir etkende hata" + +#: ../src/connection-editor/nm-connection-list.c:1631 +#, c-format +msgid "Don't know how to edit '%s' connections" +msgstr "'%s' bağlantılarınıñ nasıl tahrir etilgenini bilmeyim" + +#: ../src/connection-editor/nm-connection-list.c:1643 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "UUID '%s' ile bir bağlantı tapılmadı." + #: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" @@ -1992,29 +2185,29 @@ "\n" "Hata: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "İçe aktarılacak dosyayı seç" -#: ../src/connection-editor/vpn-helpers.c:310 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "'%s' isminde bir dosya zaten mevcut." -#: ../src/connection-editor/vpn-helpers.c:312 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "_Değiştir" -#: ../src/connection-editor/vpn-helpers.c:314 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "VPN bağlantısını %s ile yer değiştirme isteğiniz kaydedilsin mi?" -#: ../src/connection-editor/vpn-helpers.c:350 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "VPN bağlantısı dışa aktarılamıyor" -#: ../src/connection-editor/vpn-helpers.c:352 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2025,59 +2218,66 @@ "\n" "Hata: %s." -#: ../src/connection-editor/vpn-helpers.c:386 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "VPN bağlantısı dışa aktarılıyor..." -#: ../src/gnome-bluetooth/network-manager-applet.c:214 +#: ../src/gnome-bluetooth/bt-widget.c:220 +#, c-format +msgid "Failed to create PAN connection: %s" +msgstr "PAN bağlantısı icat etilamadı: %s" + +#: ../src/gnome-bluetooth/bt-widget.c:225 +#: ../src/gnome-bluetooth/bt-widget.c:493 +msgid "Your phone is now ready to use!" +msgstr "Telefonıñız şimdi qullanımğa hazırdır!" + +#: ../src/gnome-bluetooth/bt-widget.c:249 #, c-format msgid "%s Network" msgstr "%s Şebekesi" -#: ../src/gnome-bluetooth/network-manager-applet.c:323 +#: ../src/gnome-bluetooth/bt-widget.c:375 #, c-format msgid "Error: %s" msgstr "Hata: %s" -#: ../src/gnome-bluetooth/network-manager-applet.c:442 +#: ../src/gnome-bluetooth/bt-widget.c:488 +#, c-format +msgid "Failed to create DUN connection: %s" +msgstr "DUN bağlantısı icat etilamadı: %s" + +#: ../src/gnome-bluetooth/bt-widget.c:511 msgid "Mobile wizard was canceled" -msgstr "Mobil siirbaz iptal etildi" +msgstr "Mobil sihirbaz iptal etildi" -#: ../src/gnome-bluetooth/network-manager-applet.c:451 +#: ../src/gnome-bluetooth/bt-widget.c:520 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Namalüm telefon cihazı türü (GSM yaki CDMA degil)" -#: ../src/gnome-bluetooth/network-manager-applet.c:479 -msgid "Your phone is now ready to use!" -msgstr "Telefonıñız şimdi qullanımğa azırdır!" - -#: ../src/gnome-bluetooth/network-manager-applet.c:652 -#: ../src/gnome-bluetooth/network-manager-applet.c:658 +#: ../src/gnome-bluetooth/bt-widget.c:714 +#: ../src/gnome-bluetooth/bt-widget.c:720 msgid "failed to connect to the phone." msgstr "telefonğa bağlanılamağandır." -#: ../src/gnome-bluetooth/network-manager-applet.c:691 +#: ../src/gnome-bluetooth/bt-widget.c:753 msgid "unexpectedly disconnected from the phone." msgstr "beklenilmegen bir şekilde telefon bağlantısı qoparılğan." -#: ../src/gnome-bluetooth/network-manager-applet.c:700 +#: ../src/gnome-bluetooth/bt-widget.c:762 msgid "timed out detecting phone details." msgstr "telefon tafsilâtını alğılağanda zaman aşıldı." -#: ../src/gnome-bluetooth/network-manager-applet.c:715 -msgid "could not connect to the system bus." -msgstr "sistem-busqa bağlanılamadı." - -#: ../src/gnome-bluetooth/network-manager-applet.c:720 +#: ../src/gnome-bluetooth/bt-widget.c:774 msgid "Detecting phone configuration..." msgstr "Telefon yapılandırılışı alğılana..." -#: ../src/gnome-bluetooth/network-manager-applet.c:786 +#: ../src/gnome-bluetooth/bt-widget.c:840 msgid "could not find the Bluetooth device." msgstr "Bluetooth cihazı tapılamadı." # tüklü -#: ../src/gnome-bluetooth/network-manager-applet.c:916 +#: ../src/gnome-bluetooth/bt-widget.c:980 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2085,135 +2285,60 @@ "Aramalı Şebekeleme bağlantısını ayarlamazdan evel ögbelgilengen Bluetooth " "uyarlayıcısı qabilleştirilgen olmalı." -#: ../src/gnome-bluetooth/network-manager-applet.c:969 -msgid "Use your mobile phone as a network device (PAN/NAP)" +# tr +#: ../src/gnome-bluetooth/bt-widget.c:1012 +#, c-format +msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." msgstr "" -"Mobil telefonıñıznı bir şebeke cihazı olaraq qullan (PAN/NAP; Şebeke İrişimi " -"Profili (ŞİP))" +"Bluetooth yapılandırılması mümkün değil (D-Bus'a bağlanma başarısız: %s)." -#: ../src/gnome-bluetooth/network-manager-applet.c:978 -msgid "Access the Internet using your mobile phone (DUN)" +# tr +#: ../src/gnome-bluetooth/bt-widget.c:1022 +msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." msgstr "" -"İnternetke mobil telefonıñıznı qullanaraq irişiñiz (DUN; Aramalı Şebekeleme " -"(AŞ))" - -#: ../src/main.c:70 -msgid "Usage:" -msgstr "Qullanılış:" +"Bluetooth yapılandırılması mümkün değil (D-Bus vekil sunucusu oluşturma " +"başarısız)." -#: ../src/main.c:72 +#: ../src/gnome-bluetooth/bt-widget.c:1031 +#, c-format msgid "" -"This program is a component of NetworkManager (http://projects.gnome.org/" -"NetworkManager)." +"Bluetooth configuration not possible (error finding NetworkManager: %s)." msgstr "" -"Bu program Şebeke İdarecisi'niñ bir bileşenidir (http://projects.gnome.org/" -"NetworkManager)." +"Bluetooth yapılandırılması mümkün değil (AğYöneticisi bulma hatası:%s)." -# tüklü -#: ../src/main.c:73 -msgid "" -"It is not intended for command-line interaction but instead runs in the " -"GNOME desktop environment." +#: ../src/gnome-bluetooth/bt-widget.c:1098 +msgid "Use your mobile phone as a network device (PAN/NAP)" msgstr "" -"O, buyruq-satrı tesirleşimi içün tasarımlanmağandır, onıñ yerine GNOME " -"masaüstü çevresinde çapar." - -#: ../src/mb-menu-item.c:58 -msgid "EVDO" -msgstr "EVDO" - -#: ../src/mb-menu-item.c:62 -msgid "GPRS" -msgstr "GPRS (Umumiy Paket Radio Hızmeti; UPRH)" - -#: ../src/mb-menu-item.c:64 -msgid "EDGE" -msgstr "EDGE" - -#: ../src/mb-menu-item.c:66 -msgid "UMTS" -msgstr "UMTS (Alemiy Mobil Telehaberleşme Sistemi; AMTS)" - -#: ../src/mb-menu-item.c:68 -msgid "HSDPA" -msgstr "HSDPA (Yüksek-Sur'at Aşağı-ilişim Paket İrişimi; YSAPİ)" - -#: ../src/mb-menu-item.c:70 -msgid "HSUPA" -msgstr "HSUPA (Yüksek-Sur'at Yuqarı-ilişim Paket İrişimi; YSYPİ)" - -#: ../src/mb-menu-item.c:72 -msgid "HSPA" -msgstr "HSPA (Yüksek-Sur'at Paket İrişimi; YSPİ)" - -#: ../src/mb-menu-item.c:104 -msgid "not enabled" -msgstr "qabilleştirilmegen" - -#: ../src/mb-menu-item.c:110 -msgid "not registered" -msgstr "qayd etilmegen" - -#: ../src/mb-menu-item.c:128 -#, c-format -msgid "Home network (%s)" -msgstr "Ev şebekesi (%s)" - -#: ../src/mb-menu-item.c:130 -#, c-format -msgid "Home network" -msgstr "Ev şebekesi" - -#: ../src/mb-menu-item.c:138 -msgid "searching" -msgstr "qıdırıla" - -#: ../src/mb-menu-item.c:141 -msgid "registration denied" -msgstr "qayd inkâr etile" - -# tüklü -#: ../src/mb-menu-item.c:146 ../src/mb-menu-item.c:152 -#, c-format -msgid "%s (%s roaming)" -msgstr "%s (%s kezeleme)" - -#: ../src/mb-menu-item.c:148 ../src/mb-menu-item.c:154 -#, c-format -msgid "%s (roaming)" -msgstr "%s (kezeleme)" - -#: ../src/mb-menu-item.c:157 -#, c-format -msgid "Roaming network (%s)" -msgstr "Kezeleme şebekesi (%s)" +"Mobil telefonıñıznı bir şebeke cihazı olaraq qullan (PAN/NAP; Şebeke İrişimi " +"Profili (ŞİP))" -#: ../src/mb-menu-item.c:159 -#, c-format -msgid "Roaming network" -msgstr "Kezeleme şebekesi" +#: ../src/gnome-bluetooth/bt-widget.c:1107 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "" +"İnternetke mobil telefonıñıznı qullanaraq irişiñiz (DUN; Aramalı Şebekeleme " +"(AŞ))" -#: ../src/utils/mobile-wizard.c:196 +#: ../src/libnm-gtk/nm-mobile-wizard.c:198 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "Mobil keniş-bant bağlantıñız aşağıdaki ayarlar ile yapılandırılğandır:" #. Device -#: ../src/utils/mobile-wizard.c:203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 msgid "Your Device:" msgstr "Cihazıñız:" #. Provider -#: ../src/utils/mobile-wizard.c:214 +#: ../src/libnm-gtk/nm-mobile-wizard.c:216 msgid "Your Provider:" msgstr "Teminatçıñız:" #. Plan and APN -#: ../src/utils/mobile-wizard.c:225 +#: ../src/libnm-gtk/nm-mobile-wizard.c:227 msgid "Your Plan:" msgstr "Planıñız:" -#: ../src/utils/mobile-wizard.c:246 +#: ../src/libnm-gtk/nm-mobile-wizard.c:252 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2227,97 +2352,97 @@ "ayarlarıñıznı deñiştirmek içün, Sistem >> Tercihler menüsinden \"Şebeke " "Bağlantıları\"nı saylañız." -#: ../src/utils/mobile-wizard.c:258 +#: ../src/libnm-gtk/nm-mobile-wizard.c:264 msgid "Confirm Mobile Broadband Settings" msgstr "Mobil Keniş-bant Ayarlarıñıznı Tasdiqlañız" -#: ../src/utils/mobile-wizard.c:319 +#: ../src/libnm-gtk/nm-mobile-wizard.c:325 msgid "Unlisted" msgstr "Listelenmegen" -#: ../src/utils/mobile-wizard.c:437 +#: ../src/libnm-gtk/nm-mobile-wizard.c:480 msgid "_Select your plan:" msgstr "_Planıñıznı saylañız:" -#: ../src/utils/mobile-wizard.c:461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:504 msgid "Selected plan _APN (Access Point Name):" msgstr "Saylanğan plan İrişim Noqtası _Adı (İNA; APN):" # tüklü -#: ../src/utils/mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:528 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"Tenbi: Yañlış bir plannıñ saylanuvı keniş-bant esabıñız içün faturalama " +"Tenbi: Yañlış bir plannıñ saylanuvı keniş-bant hesabıñız içün faturalama " "meselelerine yol açabilir yaki bağlanabilirlikke yol bermeybilir.\n" "\n" -"Planıñız aqqında emin degil iseñiz teminatçıñızdan planıñıznıñ İrişim " +"Planıñız haqqında emin degil iseñiz teminatçıñızdan planıñıznıñ İrişim " "Noqtası Adını (İNA, APN) sorañız." -#: ../src/utils/mobile-wizard.c:487 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "Choose your Billing Plan" msgstr "Faturalama Planıñıznı Saylañız" -#: ../src/utils/mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:583 msgid "My plan is not listed..." msgstr "Planım listelenmegendir..." -#: ../src/utils/mobile-wizard.c:688 +#: ../src/libnm-gtk/nm-mobile-wizard.c:740 msgid "Select your provider from a _list:" msgstr "Teminatçıñıznı bir _cedvelden saylañız:" -#: ../src/utils/mobile-wizard.c:701 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Provider" msgstr "Teminatçı" -#: ../src/utils/mobile-wizard.c:726 +#: ../src/libnm-gtk/nm-mobile-wizard.c:778 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Teminatçımnı tapalmayıım ve onı _elnen kirsetmege isteyim:" -#: ../src/utils/mobile-wizard.c:737 +#: ../src/libnm-gtk/nm-mobile-wizard.c:789 msgid "Provider:" msgstr "Teminatçı:" -#: ../src/utils/mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:813 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Teminatçım GSM tehnologiyasını qullana (GPRS, EDGE, UMTS, HSPA)" -#: ../src/utils/mobile-wizard.c:755 +#: ../src/libnm-gtk/nm-mobile-wizard.c:819 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Teminatçım CDMA tehnologiyasını qullana (1xRTT, EVDO)" -#: ../src/utils/mobile-wizard.c:766 +#: ../src/libnm-gtk/nm-mobile-wizard.c:830 msgid "Choose your Provider" msgstr "Teminatçıñıznı Saylañız" -#: ../src/utils/mobile-wizard.c:1012 -msgid "Country List:" -msgstr "Memleket Cedveli:" - -#: ../src/utils/mobile-wizard.c:1024 -msgid "Country" -msgstr "Memleket" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +msgid "Country or Region List:" +msgstr "Ülke yaki Bölge Cedveli:" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +msgid "Country or region" +msgstr "Memleket yaki bölge" -#: ../src/utils/mobile-wizard.c:1031 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "My country is not listed" msgstr "Ülkem listelenmegendir" -#: ../src/utils/mobile-wizard.c:1077 -msgid "Choose your Provider's Country" -msgstr "Teminatçıñıznıñ Memleketini Saylañız" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +msgid "Choose your Provider's Country or Region" +msgstr "Teminatçıñıznıñ Memleket yaki Bölgesini Saylañız" -#: ../src/utils/mobile-wizard.c:1126 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 msgid "Installed GSM device" msgstr "Kurulu GSM aygıtı" -#: ../src/utils/mobile-wizard.c:1129 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 msgid "Installed CDMA device" msgstr "Kurulu CDMA aygıtı" -#: ../src/utils/mobile-wizard.c:1297 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2325,125 +2450,220 @@ "Bu muavin sizge bir hüceyresel (3G) şebekege mobil keniş-bant bağlantısını " "qolayca ayarlamağa yardım eter." -#: ../src/utils/mobile-wizard.c:1302 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 msgid "You will need the following information:" msgstr "Aşağıdaki malümatqa ihtiyacıñız olacaq:" -#: ../src/utils/mobile-wizard.c:1313 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 msgid "Your broadband provider's name" msgstr "Keniş-bant teminatçıñıznıñ adı" -#: ../src/utils/mobile-wizard.c:1319 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 msgid "Your broadband billing plan name" msgstr "Keniş-bant faturalama planıñıznıñ adı" -#: ../src/utils/mobile-wizard.c:1325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" "(bazan) Keniş-bant faturalama planıñıznıñ İrişim Noqtası Adı (İNA; APN)" -#: ../src/utils/mobile-wizard.c:1352 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 msgid "Create a connection for _this mobile broadband device:" msgstr "_Bu mobil keniş-bant cihazı içün bir bağlantı icat etiñiz:" -#: ../src/utils/mobile-wizard.c:1367 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 msgid "Any device" -msgstr "Er angi cihaz" +msgstr "Her hangi cihaz" -#: ../src/utils/mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Set up a Mobile Broadband Connection" msgstr "Bir Mobil Keniş-bant Bağlantısını Ayarlañız" -#: ../src/utils/mobile-wizard.c:1554 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 msgid "New Mobile Broadband Connection" msgstr "Yañı Mobil Keniş-bant Bağlantısı" -#: ../src/utils/nmn-mobile-providers.c:515 -msgid "Default" -msgstr "Ög-belgileme" - -#: ../src/vpn-password-dialog.c:137 ../src/vpn-password-dialog.c:255 -#, c-format -msgid "Cannot start VPN connection '%s'" -msgstr "'%s' VPN bağlantısı başlatılamadı" - -#: ../src/vpn-password-dialog.c:140 -#, c-format -msgid "" -"Could not find the authentication dialog for VPN connection type '%s'. " -"Contact your system administrator." -msgstr "" -"'%s' VPN bağlantı türü için doğrulama diyalogu bulunamadı. Sistem " -"yöneticiniz ile irtibat kurun." - -#: ../src/vpn-password-dialog.c:258 -#, c-format -msgid "" -"There was a problem launching the authentication dialog for VPN connection " -"type '%s'. Contact your system administrator." -msgstr "" -"'%s' VPN bağlantı türü için doğrulama diyalogu çalıştırılırken hata oluştu. " -"Sistem yöneticiniz ile irtibat kurun." - -#: ../src/wired-dialog.c:99 -msgid "Wired 802.1X authentication" -msgstr "Telli 802.1X doğrulaması" - -#: ../src/wireless-dialog.c:452 +#: ../src/libnm-gtk/nm-wireless-dialog.c:457 msgid "New..." msgstr "Yañı..." -#: ../src/wireless-dialog.c:1056 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "İcat _Et" -#: ../src/wireless-dialog.c:1137 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." +"Passwords or encryption keys are required to access the wireless network " +"'%s'." msgstr "'%s' ağına erişim için parola ya da şifreleme anahtarı gerekli." -#: ../src/wireless-dialog.c:1139 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "Telsiz Şebeke Sahihlenüvi Şart" -#: ../src/wireless-dialog.c:1141 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "Telsiz şebeke sahihlenüvni talap ete" -#: ../src/wireless-dialog.c:1146 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "Yañı Telsiz Şebeke İcat Et" -#: ../src/wireless-dialog.c:1148 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "Yeni telsiz şebeke" -#: ../src/wireless-dialog.c:1149 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "Oluşturmak istediğiniz telsiz şebeke için bir isim girin." -#: ../src/wireless-dialog.c:1151 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "Gizli Telsiz Şebekege Bağlan" -#: ../src/wireless-dialog.c:1153 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "Gizli telsiz şebeke" -#: ../src/wireless-dialog.c:1154 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." msgstr "" "Bağlanmak istediğiniz gizli telsiz ağın ismini ve güvenlik detaylarını girin." -#: ../src/wireless-security/eap-method.c:190 +#: ../src/libnm-gtk/wifi.ui.h:2 +msgid "C_onnection:" +msgstr "_Bağlantı:" + +# tüklü +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "Wireless _adapter:" +msgstr "Telsiz _uyarlayıcı:" + +#: ../src/libnm-gtk/wifi.ui.h:5 +msgid "Wireless _security:" +msgstr "_Telsiz emniyet:" + +#: ../src/main.c:73 +msgid "Usage:" +msgstr "Qullanılış:" + +#: ../src/main.c:75 +msgid "" +"This program is a component of NetworkManager (http://projects.gnome.org/" +"NetworkManager)." +msgstr "" +"Bu program Şebeke İdarecisi'niñ bir bileşenidir (http://projects.gnome.org/" +"NetworkManager)." + +# tüklü +#: ../src/main.c:76 +msgid "" +"It is not intended for command-line interaction but instead runs in the " +"GNOME desktop environment." +msgstr "" +"O, buyruq-satrı tesirleşimi içün tasarımlanmağandır, onıñ yerine GNOME " +"masaüstü çevresinde çapar." + +#: ../src/mb-menu-item.c:57 +msgid "EVDO" +msgstr "EVDO" + +#: ../src/mb-menu-item.c:61 +msgid "GPRS" +msgstr "GPRS (Umumiy Paket Radio Hızmeti; UPRH)" + +#: ../src/mb-menu-item.c:63 +msgid "EDGE" +msgstr "EDGE" + +#: ../src/mb-menu-item.c:65 +msgid "UMTS" +msgstr "UMTS (Alemiy Mobil Telehaberleşme Sistemi; AMTS)" + +#: ../src/mb-menu-item.c:67 +msgid "HSDPA" +msgstr "HSDPA (Yüksek-Sur'at Aşağı-ilişim Paket İrişimi; YSAPİ)" + +#: ../src/mb-menu-item.c:69 +msgid "HSUPA" +msgstr "HSUPA (Yüksek-Sur'at Yuqarı-ilişim Paket İrişimi; YSYPİ)" + +#: ../src/mb-menu-item.c:71 +msgid "HSPA" +msgstr "HSPA (Yüksek-Sur'at Paket İrişimi; YSPİ)" + +#: ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/mb-menu-item.c:109 +msgid "not enabled" +msgstr "qabilleştirilmegen" + +#: ../src/mb-menu-item.c:115 +msgid "not registered" +msgstr "qayd etilmegen" + +#: ../src/mb-menu-item.c:133 +#, c-format +msgid "Home network (%s)" +msgstr "Ev şebekesi (%s)" + +#: ../src/mb-menu-item.c:135 +#, c-format +msgid "Home network" +msgstr "Ev şebekesi" + +#: ../src/mb-menu-item.c:143 +msgid "searching" +msgstr "qıdırıla" + +#: ../src/mb-menu-item.c:146 +msgid "registration denied" +msgstr "qayd inkâr etile" + +# tüklü +#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 +#, c-format +msgid "%s (%s roaming)" +msgstr "%s (%s kezeleme)" + +#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 +#, c-format +msgid "%s (roaming)" +msgstr "%s (kezeleme)" + +#: ../src/mb-menu-item.c:162 +#, c-format +msgid "Roaming network (%s)" +msgstr "Kezeleme şebekesi (%s)" + +#: ../src/mb-menu-item.c:164 +#, c-format +msgid "Roaming network" +msgstr "Kezeleme şebekesi" + +#: ../src/utils/nmn-mobile-providers.c:531 +msgid "Default" +msgstr "Ögbelgileme" + +# tr +#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"NetworkManager Uygulamacığı bazı gerekli kaynakları bulamadı (.ui dosyası " +"bulunamadı)." + +#: ../src/wireless-security/eap-method.c:279 msgid "No Certificate Authority certificate chosen" msgstr "Seçili Sertifika Yetkilisi sertifikası yok" -#: ../src/wireless-security/eap-method.c:191 +#: ../src/wireless-security/eap-method.c:280 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " @@ -2453,37 +2673,107 @@ "haydut telsiz ağlara neden olabilir. Bir Sertifika Yetkilisi sertifikasını " "seçmek ister misiniz?" -#: ../src/wireless-security/eap-method.c:200 +#: ../src/wireless-security/eap-method.c:289 msgid "Choose CA Certificate" msgstr "CA Sertifikası Seç" -#: ../src/wireless-security/eap-method.c:515 +#: ../src/wireless-security/eap-method.c:648 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM, veya PKCS#12 özel anahtarları (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:518 +#: ../src/wireless-security/eap-method.c:651 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER veya PEM sertifikaları (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-peap.c:259 -msgid "MD5" -msgstr "MD5" +# tüklü +#: ../src/wireless-security/eap-method-fast.ui.h:2 +msgid "Allow automatic PAC pro_visioning" +msgstr "Avtomatik PAC tedarikine izin ber" -#: ../src/wireless-security/eap-method-peap.c:274 +# tüklü +#: ../src/wireless-security/eap-method-fast.ui.h:3 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "_Anonim kimlik:" + +#: ../src/wireless-security/eap-method-fast.ui.h:4 +msgid "Anonymous" +msgstr "İsimsiz" + +#: ../src/wireless-security/eap-method-fast.ui.h:5 +msgid "Authenticated" +msgstr "Sahihlengen" + +#: ../src/wireless-security/eap-method-fast.ui.h:6 +msgid "Both" +msgstr "Ekisi de" + +#: ../src/wireless-security/eap-method-fast.ui.h:7 +msgid "PAC _file:" +msgstr "PAC _dosyesi:" + +#: ../src/wireless-security/eap-method-fast.ui.h:8 +#: ../src/wireless-security/eap-method-peap.ui.h:8 +#: ../src/wireless-security/eap-method-ttls.ui.h:4 +msgid "_Inner authentication:" +msgstr "_İç sahihlenme:" + +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 msgid "GTC" msgstr "GTC" -#: ../src/wireless-security/eap-method-peap.c:361 -#: ../src/wireless-security/eap-method-tls.c:457 -#: ../src/wireless-security/eap-method-ttls.c:359 +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Bir PAC dosyesini saylañız..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC dosyeleri (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Dosyelerniñ hepsi" + +#: ../src/wireless-security/eap-method-peap.c:263 +#: ../src/wireless-security/wireless-security.c:382 +msgid "MD5" +msgstr "MD5" + +#: ../src/wireless-security/eap-method-peap.c:350 +#: ../src/wireless-security/eap-method-tls.c:416 +#: ../src/wireless-security/eap-method-ttls.c:350 msgid "Choose a Certificate Authority certificate..." msgstr "Bir Sertifika Yetkilisi sertifikası seçin..." -#: ../src/wireless-security/eap-method-tls.c:263 +#: ../src/wireless-security/eap-method-peap.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:3 +msgid "C_A certificate:" +msgstr "Şehadetname _Salâhiyeti (ŞS; CA) şehadetnamesi:" + +#: ../src/wireless-security/eap-method-peap.ui.h:5 +msgid "PEAP _version:" +msgstr "PEAP _sürümi:" + +#: ../src/wireless-security/eap-method-peap.ui.h:6 +msgid "Version 0" +msgstr "Sürüm 0" + +#: ../src/wireless-security/eap-method-peap.ui.h:7 +msgid "Version 1" +msgstr "Sürüm 1" + +#: ../src/wireless-security/eap-method-simple.ui.h:1 +msgid "As_k for this password every time" +msgstr "Bu sır-söz içün her sefer _sora" + +#: ../src/wireless-security/eap-method-tls.c:246 msgid "Unencrypted private keys are insecure" msgstr "Şifrelenmegen hususiy anahtarlar emniyetsizdir" -#: ../src/wireless-security/eap-method-tls.c:266 +#: ../src/wireless-security/eap-method-tls.c:249 msgid "" "The selected private key does not appear to be protected by a password. " "This could allow your security credentials to be compromised. Please select " @@ -2491,34 +2781,285 @@ "\n" "(You can password-protect your private key with openssl)" msgstr "" -"Saylanğan hususiy anahtar bir sır-söz ile imaye etilgen körünmey. Bu, " -"emniyet itimatnameleriñizniñ ihlâline izin berir. Lütfen sır-söz-imayeli " +"Saylanğan hususiy anahtar bir sır-söz ile himaye etilgen körünmey. Bu, " +"emniyet itimatnameleriñizniñ ihlâline izin berir. Lütfen sır-söz-himayeli " "bir hususiy anahtarnı saylañız.\n" "\n" -"(Hususiy anahtarıñıznı openssl ile sır-söz-imayeli yapabilirsiñiz)" +"(Hususiy anahtarıñıznı openssl ile sır-söz-himayeli yapabilirsiñiz)" -#: ../src/wireless-security/eap-method-tls.c:451 +#: ../src/wireless-security/eap-method-tls.c:410 msgid "Choose your personal certificate..." msgstr "Kişisel sertifikanızı seçin..." -#: ../src/wireless-security/eap-method-tls.c:463 +#: ../src/wireless-security/eap-method-tls.c:422 msgid "Choose your private key..." msgstr "Özel anahtarınızı seçin..." -#: ../src/wireless-security/wireless-security.c:328 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "I_dentity:" +msgstr "_Kimlik:" + +#: ../src/wireless-security/eap-method-tls.ui.h:3 +msgid "Private _key:" +msgstr "Hususiy _anahtar:" + +#: ../src/wireless-security/eap-method-tls.ui.h:5 +msgid "_Private key password:" +msgstr "_Hususiy anahtar sır-sözü:" + +#: ../src/wireless-security/eap-method-tls.ui.h:6 +msgid "_User certificate:" +msgstr "_Qullanıcı şehadetnamesi:" + +#: ../src/wireless-security/nag-user-dialog.ui.h:1 +msgid "Don't _warn me again" +msgstr "Meni artıq _tenbihleme" + +#: ../src/wireless-security/nag-user-dialog.ui.h:2 +msgid "No" +msgstr "Hayır" + +#: ../src/wireless-security/nag-user-dialog.ui.h:3 +msgid "Yes" +msgstr "Ebet" + +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:352 +#: ../src/wireless-security/wireless-security.c:418 +msgid "FAST" +msgstr "FAST" + +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "Tünnelli TLS" -#: ../src/wireless-security/wireless-security.c:363 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" -msgstr "İmayeli EAP (PEAP)" +msgstr "Himayeli EAP (PEAP)" -#~ msgid "GSM network." -#~ msgstr "GSM şebekesi." +#: ../src/wireless-security/ws-dynamic-wep.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:5 +#: ../src/wireless-security/ws-wpa-eap.ui.h:2 +msgid "Au_thentication:" +msgstr "_Sahihlenim:" + +#: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "1 (Default)" +msgstr "1 (Ögbelgilengen)" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "2" +msgstr "2" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 +msgid "3" +msgstr "3" + +#: ../src/wireless-security/ws-wep-key.ui.h:4 +msgid "4" +msgstr "4" + +#: ../src/wireless-security/ws-wep-key.ui.h:6 +msgid "Open System" +msgstr "Açıq Sistem" + +#: ../src/wireless-security/ws-wep-key.ui.h:7 +msgid "Shared Key" +msgstr "Üleşilgen Anahtar" + +#: ../src/wireless-security/ws-wep-key.ui.h:8 +msgid "Sho_w key" +msgstr "Anahtarnı _köster" + +#: ../src/wireless-security/ws-wep-key.ui.h:9 +msgid "WEP inde_x:" +msgstr "WEP _indeksi:" + +#: ../src/wireless-security/ws-wep-key.ui.h:10 +msgid "_Key:" +msgstr "_Anahtar:" + +#~ msgid "Network Manager" +#~ msgstr "Şebeke İdarecisi" + +#~ msgid "An instance of nm-applet is already running.\n" +#~ msgstr "Bir nm-applet danesi endi çapa.\n" + +# tüklü +#~ msgid "Could not acquire the %s service. (%d)\n" +#~ msgstr "%s hızmeti elde etilamadı. (%d)\n" + +#~ msgid "PUK code required" +#~ msgstr "PUK kodu gerekli" + +#~ msgid "PUK code is needed for the mobile broadband device" +#~ msgstr "mobil genişbant aygıtı için PUK kodu gerekli" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Reşat SABIQ \n" +#~ "\n" +#~ "Launchpad Contributions:\n" +#~ " Reşat SABIQ https://launchpad.net/~tilde-birlik" + +#~ msgid "" +#~ "Active Network Connections" +#~ msgstr "" +#~ "Faal Şebeke Bağlantıları" + +#~ msgid "" +#~ "Automatic\n" +#~ "Version 0\n" +#~ "Version 1" +#~ msgstr "" +#~ "Otomatik\n" +#~ "Sürüm 0\n" +#~ "Sürüm 1" + +#~ msgid "C_onnect" +#~ msgstr "_Bağlan" + +#~ msgid "Other Wireless Network..." +#~ msgstr "Diger Telsiz Şebeke..." + +#~ msgid "_Authentication:" +#~ msgstr "_Sahihlenme:" + +#~ msgid "label" +#~ msgstr "etiket" + +#~ msgid "Addresses" +#~ msgstr "Adresler" + +#~ msgid "" +#~ "Automatic\n" +#~ "Automatic with manual DNS settings\n" +#~ "Manual\n" +#~ "Link-Local\n" +#~ "Shared to other computers" +#~ msgstr "" +#~ "Kendiliğinden\n" +#~ "Kendiliğinden ve elle DNS ayarları\n" +#~ "Elle\n" +#~ "Yerel-Bağlantı\n" +#~ "Diğer bilgisayarlara paylaştırılmış" + +#~ msgid "Use this c_onnection only for resources on its network" +#~ msgstr "Bu _bağlantını faqat bu şebekedeki çoqraqlar içün qullan" + +#~ msgid "_Routes…" +#~ msgstr "_Marşrutlar…" + +#~ msgid "Basic" +#~ msgstr "Temel" + +#~ msgid "" +#~ "Any\n" +#~ "3G (UMTS/HSPA)\n" +#~ "2G (GPRS/EDGE)\n" +#~ "Prefer 3G (UMTS/HSPA)\n" +#~ "Prefer 2G (GPRS/EDGE)" +#~ msgstr "" +#~ "Herhangi biri\n" +#~ "3N (UMTS/HSPA)\n" +#~ "2N (GPRS/EDGE)\n" +#~ "Öncelikli 3N (UMTS/HSPA)\n" +#~ "Öncelikli 2N (GPRS/EDGE)" + +#~ msgid "PI_N:" +#~ msgstr "Şahsiy _Kimlik Nomerası (ŞKN; PIN):" + +#~ msgid "Authentication" +#~ msgstr "Sahihlenüv" + +#~ msgid "Echo" +#~ msgstr "Yansılayıcı" + +#~ msgid "" +#~ "Automatic\n" +#~ "10 Mb/s\n" +#~ "100 Mb/s\n" +#~ "1 Gb/s\n" +#~ "10 Gb/s" +#~ msgstr "" +#~ "Otomatik\n" +#~ "10 Mb/s\n" +#~ "100 Mb/s\n" +#~ "1 Gb/s\n" +#~ "10 Gb/s" + +#~ msgid "" +#~ "Automatic\n" +#~ "Twisted Pair (TP)\n" +#~ "Attachment Unit Interface (AUI)\n" +#~ "BNC\n" +#~ "Media Independent Interface (MII)" +#~ msgstr "" +#~ "Automatic\n" +#~ "Twisted Pair (TP)\n" +#~ "Attachment Unit Interface (AUI)\n" +#~ "BNC\n" +#~ "Media Independent Interface (MII)" + +# tüklü +#~ msgid "MT_U:" +#~ msgstr "MT_U:" + +#~ msgid "" +#~ "Automatic\n" +#~ "A (5 GHz)\n" +#~ "B/G (2.4 GHz)" +#~ msgstr "" +#~ "Otomatik\n" +#~ "A (5 GHz)\n" +#~ "B/G (2.4 GHz)" + +#~ msgid "_SSID:" +#~ msgstr "_SSID:" + +#~ msgid "_Security:" +#~ msgstr "_Emniyet:" + +#~ msgid "" +#~ "The connection editor could not find some required resources (the " +#~ "NetworkManager applet glade file was not found)." +#~ msgstr "" +#~ "Bağlantı düzenleyici gerekli olan bazı kaynakları bulamadı (Şebeke " +#~ "Yöneticisi uygulamacığı 'glade' dosyası bulunamadı)." + +#~ msgid "Apply" +#~ msgstr "Uyğula" + +#~ msgid "Save this connection for all users of this machine." +#~ msgstr "Bu makinenin tüm kullanıcıları için bağlantıyı kaydet." + +#~ msgid "Apply..." +#~ msgstr "Uyğula..." + +#~ msgid "could not connect to the system bus." +#~ msgstr "sistem-busqa bağlanılamadı." + +#~ msgid "Country" +#~ msgstr "Memleket" + +#~ msgid "Cannot start VPN connection '%s'" +#~ msgstr "'%s' VPN bağlantısı başlatılamadı" + +#~ msgid "" +#~ "Could not find the authentication dialog for VPN connection type '%s'. " +#~ "Contact your system administrator." +#~ msgstr "" +#~ "'%s' VPN bağlantı türü için doğrulama diyalogu bulunamadı. Sistem " +#~ "yöneticiniz ile irtibat kurun." + +#~ msgid "" +#~ "There was a problem launching the authentication dialog for VPN " +#~ "connection type '%s'. Contact your system administrator." +#~ msgstr "" +#~ "'%s' VPN bağlantı türü için doğrulama diyalogu çalıştırılırken hata " +#~ "oluştu. Sistem yöneticiniz ile irtibat kurun." #~ msgid "Disconnected - you are now offline" #~ msgstr "Bağlantı kesildi - çevrimdışı oldunuz" @@ -2562,15 +3103,6 @@ #~ msgid "Configure..." #~ msgstr "Yapılandırma..." -#~ msgid "Anonymous Identity:" -#~ msgstr "Anonim Kimlik:" - -#~ msgid "Authentication:" -#~ msgstr "Sahihlenüv:" - -#~ msgid "Connection:" -#~ msgstr "Bağlantı:" - #~ msgid "Don't warn me again" #~ msgstr "Bir daha uyarma" @@ -2580,15 +3112,9 @@ #~ msgid "Key:" #~ msgstr "Anahtar:" -#~ msgid "PEAP Version:" -#~ msgstr "PEAP Sürümü:" - #~ msgid "Show key" #~ msgstr "Anahtarı göster" -#~ msgid "Type:" -#~ msgstr "Tür:" - #~ msgid "User Name:" #~ msgstr "Qullanıcı Adı:" @@ -2625,18 +3151,12 @@ #~ msgid "Routes..." #~ msgstr "Yönler..." -#~ msgid "Use this connection only for resources on its network" -#~ msgstr "Şebeke kaynakları için yalnızca bu bağlantıyı kullanın" - #~ msgid "APN:" #~ msgstr "APN:" #~ msgid "Band:" #~ msgstr "Bant:" -#~ msgid "Network:" -#~ msgstr "Şebeke:" - #~ msgid "Number:" #~ msgstr "Numara:" @@ -2686,7 +3206,7 @@ #~ msgstr "Saylanğan bağlantını sil." #~ msgid "CA Certificate:" -#~ msgstr "CA Şeadetnamesi:" +#~ msgstr "CA Şehadetnamesi:" #~ msgid "Inner Authentication:" #~ msgstr "İç Sahihlenüv:" @@ -2701,7 +3221,7 @@ #~ msgstr "Sır-sözni köster" #~ msgid "User Certificate:" -#~ msgstr "Qullanıcı Şeadetnamesi:" +#~ msgstr "Qullanıcı Şehadetnamesi:" #~ msgid "Service:" #~ msgstr "Hızmet:" @@ -2716,7 +3236,7 @@ #~ msgstr "Usul:" #~ msgid "Search Domains:" -#~ msgstr "Saalarnı Qıdır:" +#~ msgstr "Sahalarnı Qıdır:" #~ msgid "Show passwords" #~ msgstr "Sır-sözlerni köster" @@ -2729,4 +3249,134 @@ #~ msgstr "Noqtadan-Noktağa Şifreleme Qullan (MPPE)" #~ msgid "Edit the selected connection." -#~ msgstr "Saylanğan bağlantını tarir et" +#~ msgstr "Saylanğan bağlantını tahrir et" + +#~ msgid "Wired network" +#~ msgstr "Telli şebeke" + +#~ msgid "Click on this icon to connect to a wireless network" +#~ msgstr "Bir telsiz ağa bağlanmak için bu simgeye tıklayın" + +#~ msgctxt "Wifi/wired security" +#~ msgid "Unknown" +#~ msgstr "Namalüm" + +#~ msgid "United Kingdom" +#~ msgstr "Birleşik Qırallıq" + +#~ msgid "" +#~ "Copyright © 2004-2008 Red Hat, Inc.\n" +#~ "Copyright © 2005-2008 Novell, Inc." +#~ msgstr "" +#~ "Telif Hakkı © 2004-2008 Red Hat, Inc.\n" +#~ "Telif Hakkı © 2005-2008 Novell, Inc." + +#~ msgid "" +#~ "The NetworkManager Applet could not find some required resources (the " +#~ "glade file was not found)." +#~ msgstr "" +#~ "NetworkManager Uygulamacığı bazı gerekli kaynakları bulamadı (glade " +#~ "dosyası bulunamadı)." + +#~ msgid "Advanced" +#~ msgstr "Gelişmiş" + +#~ msgid "" +#~ "In most cases, the provider's PPP servers will support all " +#~ "authentication methods. If connections fail, try disabling support for " +#~ "some methods." +#~ msgstr "" +#~ "çoğu durumda, sağlayıcının PPP sunucuları tüm kimlik doğrulama " +#~ "yöntemlerini destekler. Eğer bağlantılar hata verirse, bazı yöntemler " +#~ "için devre dışı bırakmayı deneyin." + +#~ msgid "" +#~ "Infrastructure\n" +#~ "Ad-hoc" +#~ msgstr "" +#~ "Altyapı\n" +#~ "Ad-hoc" + +#~ msgid "" +#~ "Choose a VPN Connection Type\n" +#~ "\n" +#~ "Select the type of VPN you wish to use for the new connection. If the " +#~ "type of VPN connection you wish to create does not appear in the list, " +#~ "you may not have the correct VPN plugin installed." +#~ msgstr "" +#~ "Bir VPN Bağlantı Türü Seçin\n" +#~ "\n" +#~ "Yeni bağlantı için kullanmak istediğiniz VPN türünü seçin. Oluşturmak " +#~ "istediğiniz VPN bağlantı türü listede görünmüyorsa, VPN eklentisi doğru " +#~ "şekilde kurulmamış olabilir." + +#~ msgid "" +#~ "The connection editor could not find some required resources (the glade " +#~ "file was not found)." +#~ msgstr "" +#~ "Bağlantı düzenleyici gerekli bazı kaynakları bulamadı (glade dosyası " +#~ "bulunamadı) ." + +#~ msgid "Delete..." +#~ msgstr "Sil..." + +#~ msgid "Delete" +#~ msgstr "Sil" + +#~ msgid "" +#~ "1 (Default)\n" +#~ "2\n" +#~ "3\n" +#~ "4" +#~ msgstr "" +#~ "1(Ög-belgilengen)\n" +#~ "2\n" +#~ "3\n" +#~ "4" + +#~ msgid "" +#~ "Open System\n" +#~ "Shared Key" +#~ msgstr "" +#~ "Açıq Sistem\n" +#~ "Üleşilgen Anahtar" + +#~ msgid "Allowed Authentication Methods" +#~ msgstr "Caiz Sahihlenüv Usulları" + +#~ msgid "Compression" +#~ msgstr "Sıqıştırma" + +#~ msgid "Edit..." +#~ msgstr "Tahrir Et..." + +#~ msgid "Edit" +#~ msgstr "Tahrir Et" + +#~ msgid "My provider uses _CDMA-based technology (i.e. 1xRTT, EVDO)" +#~ msgstr "Teminatçım _CDMA-esaslı tehnologiya qullana (yani, 1xRTT, EVDO)" + +#~ msgid "Error editing connection: property '%s' / '%s' invalid: %d" +#~ msgstr "Bağlantını tahrir etkende hata: hasiyet '%s' / '%s' keçersiz: %d" + +#~ msgid "Country List:" +#~ msgstr "Memleket Cedveli:" + +#~ msgid "Choose your Provider's Country" +#~ msgstr "Teminatçıñıznıñ Memleketini Saylañız" + +#~ msgid "_Disconnect VPN..." +#~ msgstr "VPN Bağlantısını _Qopar..." + +#~ msgid "N_etwork:" +#~ msgstr "_Şebeke:" + +#~ msgid "An unknown error ocurred." +#~ msgstr "Bilinmegen bir hata hasıl oldı." + +#~ msgid "Access the Internet using your mobile phone" +#~ msgstr "İnternetke mobil telefonıñıznı qullanaraq irişiñiz" + +#~ msgid "Network:" +#~ msgstr "Şebeke:" diff -Nru network-manager-applet-0.9.4.1/po/cs.po network-manager-applet-0.9.6.2+git201210311320.2620/po/cs.po --- network-manager-applet-0.9.4.1/po/cs.po 2012-03-23 14:14:18.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/cs.po 2012-10-31 13:20:57.000000000 +0000 @@ -6,7 +6,7 @@ # Miloslav Trmac , 2004, 2005, 2006. # Jakub Friedl , 2006. # Adrian Guniš , 2008, 2009. -# Petr Kovar , 2008, 2009. +# Petr Kovar , 2008, 2009, 2012. # Marek Černocký , 2010. # Zdeněk Hataš , 2009, 2010, 2011, 2012. # @@ -14,15 +14,17 @@ msgstr "" "Project-Id-Version: network-manager-applet\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-23 08:27+0000\n" -"PO-Revision-Date: 2012-03-23 10:53+0100\n" +"POT-Creation-Date: 2012-08-20 16:14+0000\n" +"PO-Revision-Date: 2012-08-23 14:10+0100\n" "Last-Translator: Zdeněk Hataš \n" "Language-Team: Czech \n" +"Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" #: ../nm-applet.desktop.in.h:1 msgid "Network" @@ -32,535 +34,884 @@ msgid "Manage your network connections" msgstr "Spravovat svá připojení k síti" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Připojení k síti" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Spravovat a měnit nastavení připojení k síti" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Zakázat upozornění na připojení" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "Nastavením na TRUE zakážete upozornění na připojení k síti." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "Nastavením na zapnuto zakážete upozornění na připojení k síti." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Zakázat upozornění na odpojení" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "Nastavením na TRUE zakážete upozornění na odpojení ze sítě." +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "Set this to true to disable notifications when disconnecting from a network." +msgstr "Nastavením na zapnuto zakážete upozornění na odpojení ze sítě." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Zakázat upozornění na VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "Set this to true to disable notifications when connecting to or disconnecting from a VPN." +msgstr "Nastavením na zapnuto zakážete upozornění na připojení či odpojení z VPN." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Potlačit upozornění na dostupné sítě" -#: ../nm-applet.schemas.in.h:6 -msgid "Set this to TRUE to disable notifications when wireless networks are available." -msgstr "Nastavením na TRUE zakážete upozornění na dostupnost bezdrátových sítí." +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +msgid "" +"Set this to true to disable notifications when Wi-Fi networks are available." +msgstr "Nastavením na zapnuto zakážete upozornění na dostupnost sítí Wi-Fi." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Údaj" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "Účelem je zjištění, zda by měla být nastavení přenesena na novou verzi." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Zakázat vytváření WiFi" -#: ../nm-applet.schemas.in.h:10 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "Když je používán applet, nastavením na TRUE zakážete vytváření adhoc sítí." +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +msgid "Set to true to disable creation of adhoc networks when using the applet." +msgstr "" +"Když je používán applet, nastavením na zapnuto zakážete vytváření adhoc sítí." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Připojení k síti" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ignorovat certifikát CA" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Spravovat a měnit nastavení připojení k síti" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Nastavením na zapnuto zakážete upozornění na certifikáty CA v ověření EAP." -#: ../src/applet-device-bt.c:174 -#: ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 -#: ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:864 -#: ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Dostupné" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Nastavením na zapnuto zakážete upozornění na certifikáty CA v druhé fázi " +"ověření EAP." -#: ../src/applet-device-bt.c:200 -#: ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 -#: ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Jste právě připojeni k „%s“." +#: ../src/8021x.ui.h:1 +#: ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "Ověření 802.1X" -#: ../src/applet-device-bt.c:204 -#: ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 -#: ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1268 -#: ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Spojení navázáno" +#: ../src/8021x.ui.h:2 +#: ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_Název sítě:" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Jste právě připojeni k mobilní širokopásmové síti." +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "Nepodařilo se přidat/aktivovat připojení" -#: ../src/applet-device-bt.c:231 -#: ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 -#: ../src/applet-device-wimax.c:464 +#: ../src/applet.c:514 +#: ../src/applet.c:558 +#: ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 +#: ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Neznámá chyba" + +#: ../src/applet.c:517 +#: ../src/applet.c:587 +#: ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Selhání připojení" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "Odpojení zařízení selhalo" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "Selhání odpojení" + +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "Aktivace připojení selhala" + +#: ../src/applet.c:948 +#: ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "Tuto zprávu již příště nezobrazovat" + +#: ../src/applet.c:1037 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Připravuje se mobilní širokopásmové připojení „%s“…" +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was interrupted." +msgstr "" +"\n" +"Připojení k VPN „%s“ selhalo, protože bylo přerušeno připojení k síti." -#: ../src/applet-device-bt.c:234 -#: ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 -#: ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1040 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Nastavuje se mobilní širokopásmové připojení „%s“…" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"Připojení k VPN „%s“ selhalo, protože se služba VPN neočekávaně zastavila." -#: ../src/applet-device-bt.c:237 -#: ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 -#: ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1043 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "Je vyžadováno ověření uživatele pro mobilní širokopásmové připojení „%s“…" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid configuration." +msgstr "" +"\n" +"Připojení k VPN „%s“ selhalo, protože služba VPN vrátila neplatnou konfiguraci." -#: ../src/applet-device-bt.c:240 -#: ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 -#: ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2503 +#: ../src/applet.c:1046 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Žádá se o síťovou adresu pro „%s“…" +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"Připojení k VPN „%s“ selhalo, protože vypršel časový limit pro připojení." -#: ../src/applet-device-bt.c:244 -#: ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1049 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "Mobilní širokopásmové připojení „%s“ je aktivní" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"Připojení k VPN „%s“ selhalo, protože se služba VPN nespustila včas." -#: ../src/applet-device-cdma.c:184 -#: ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1052 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"Připojení k VPN „%s“ selhalo, protože se nezdařilo spuštění služby VPN." -#: ../src/applet-device-cdma.c:345 -#: ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:424 +#: ../src/applet.c:1055 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Mobilní širokopásmová (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"Připojení k VPN „%s“ selhalo, protože nebyly zadány platné tajné klíče k VPN." -#: ../src/applet-device-cdma.c:347 -#: ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1510 -msgid "Mobile Broadband" -msgstr "Mobilní širokopásmová" +#: ../src/applet.c:1058 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"Připojení k VPN „%s“ selhalo kvůli neplatným tajným klíčům k VPN." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Nové mobilní širokopásmové připojení (CDMA)…" +#: ../src/applet.c:1065 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"Připojení k VPN „%s“ selhalo." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Jste právě připojeni k síti CDMA." +#: ../src/applet.c:1083 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was interrupted." +msgstr "" +"\n" +"Připojení k VPN „%s“ bylo odpojeno, protože bylo přerušeno připojení k síti." -#: ../src/applet-device-cdma.c:503 -#: ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1086 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Aktivní mobilní širokopásmové připojení „%s“: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"Připojení k VPN „%s“ bylo odpojeno, protože se zastavila služba VPN." -#: ../src/applet-device-cdma.c:506 -#: ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "roaming" +#: ../src/applet.c:1092 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"Připojení k VPN „%s“ bylo odpojeno." -#: ../src/applet-device-cdma.c:647 -#: ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "Síť CDMA." +#: ../src/applet.c:1122 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"Připojení k VPN bylo úspěšně navázáno.\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 -#: ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Jste právě připojeni k domácí síti." +#: ../src/applet.c:1124 +msgid "VPN connection has been successfully established.\n" +msgstr "Připojení k VPN bylo úspěšně navázáno.\n" -#: ../src/applet-device-cdma.c:654 -#: ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Jste právě připojeni k roamingové síti." +#: ../src/applet.c:1126 +msgid "VPN Login Message" +msgstr "Zpráva po přihlášení VPN" -#: ../src/applet-device-gsm.c:213 -#: ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1132 +#: ../src/applet.c:1140 +#: ../src/applet.c:1190 +msgid "VPN Connection Failed" +msgstr "Připojení k VPN selhalo" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Nové mobilní širokopásmové připojení (GSM)…" +#: ../src/applet.c:1197 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Připojení k VPN „%s“ selhalo, protože se nezdařilo spuštění služby VPN.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Jste právě připojeni k síti GSM." +#: ../src/applet.c:1200 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Připojení k VPN „%s“ se nepodařilo spustit.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "Požadován kód PIN" +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "zařízení není připraveno (chybí firmware)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "Pro mobilní širokopásmové zařízení je vyžadován kód PIN" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "zařízení není připraveno" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "Kód PIN pro kartu SIM „%s“ na „%s“" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 +#: ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "odpojeno" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "Nesprávný kód PIN. Obraťte se prosím na svého poskytovatele." +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "Odpojit" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "Nesprávný kód PUK. Obraťte se prosím na svého poskytovatele." +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "zařízení není spravováno" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "Odemykací kód je zasílán…" +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "Nejsou dostupná žádná síťová zařízení" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "Požadováno odemčení SIM PIN" +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "Připojení k _VPN" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "Požadováno odemčení SIM PIN" - -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." -msgstr "Před použitím požaduje mobilní širokopásmové zařízení „%s“ SIM kód PIN." - -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "Kód PIN:" - -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "Ukázat kód PIN" - -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "Požadováno odemčení SIM PUK" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "_Nastavit VPN…" -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "Požadováno odemčení SIM PUK" +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "O_dpojit VPN" -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 -#, c-format -msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." -msgstr "Před použitím požaduje mobilní širokopásmové zařízení „%s“ SIM kód PUK." +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "NetworkManager neběží…" -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "Kód PUK:" +#: ../src/applet.c:1854 +#: ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "Síť zakázána" -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "Nový kód PIN:" +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "Povolit _síť" -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "Nový kód PIN znovu:" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +msgid "Enable _Wi-Fi" +msgstr "Povolit _Wi-Fi" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "Ukázat kód PIN/PUK" +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "Povolit _mobilní širokopásmová připojení" -#: ../src/applet-device-gsm.c:1197 -#: ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "Síť GSM." +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Povolit mobilní širokopásmová připojení WiMA_X" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "Auto Ethernet" +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "Povolit up_ozornění" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "Drátové sítě (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "_Informace o spojení" -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "Drátová síť (%s)" +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "Upravit připojení…" -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "Drátové sítě" +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "_Nápověda" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "Drátová síť" +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "O _aplikaci" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 -#: ../src/applet.c:1509 -msgid "disconnected" -msgstr "odpojeno" +#: ../src/applet.c:2335 +msgid "Disconnected" +msgstr "Odpojen" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "Jste právě připojeni k drátové síti." +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "Připojení k síti bylo odpojeno." -#: ../src/applet-device-wired.c:300 +#: ../src/applet.c:2519 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Připravuje se drátové připojení k síti „%s“…" +msgid "Preparing network connection '%s'..." +msgstr "Připravuje se připojení k síti „%s“…" -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2522 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "Nastavuje se drátové připojení k síti „%s“…" +msgid "User authentication required for network connection '%s'..." +msgstr "Je vyžadováno ověření uživatele k připojení „%s“…" -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2525 +#: ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "Je vyžadováno ověření uživatele pro drátové připojení k síti „%s“…" +msgid "Requesting a network address for '%s'..." +msgstr "Žádá se o síťovou adresu pro „%s“…" -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2528 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "Žádá se o síťovou adresu k drátové síti pro „%s“…" +msgid "Network connection '%s' active" +msgstr "Připojení k síti „%s“ je aktivní" -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2611 #, c-format -msgid "Wired network connection '%s' active" -msgstr "Drátové připojení k síti „%s“ je aktivní" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "Ověření DSL" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "_Připojit se ke skryté bezdrátové síti…" - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "Vytvořit _novou bezdrátovou síť…" +msgid "Starting VPN connection '%s'..." +msgstr "Spouští se připojení k VPN „%s“…" -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(žádné)" +#: ../src/applet.c:2614 +#, c-format +msgid "User authentication required for VPN connection '%s'..." +msgstr "Je vyžadováno ověření uživatele pro připojení k VPN „%s“…" -#: ../src/applet-device-wifi.c:792 +#: ../src/applet.c:2617 #, c-format -msgid "Wireless Networks (%s)" -msgstr "Bezdrátové sítě (%s)" +msgid "Requesting a VPN address for '%s'..." +msgstr "Žádá se o síťovou adresu k VPN pro „%s“…" -#: ../src/applet-device-wifi.c:794 +#: ../src/applet.c:2620 #, c-format -msgid "Wireless Network (%s)" -msgstr "Bezdrátová síť (%s)" +msgid "VPN connection '%s' active" +msgstr "Připojení k VPN „%s“ je aktivní" -#: ../src/applet-device-wifi.c:796 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Bezdrátová síť" -msgstr[1] "Bezdrátové sítě" -msgstr[2] "Bezdrátové sítě" - -#: ../src/applet-device-wifi.c:829 -msgid "wireless is disabled" -msgstr "bezdrátová síť je zakázána" - -#: ../src/applet-device-wifi.c:830 -msgid "wireless is disabled by hardware switch" -msgstr "bezdrátová síť je zakázána hardwarovým přepínačem" +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "Žádné připojení k síti" -#: ../src/applet-device-wifi.c:891 -msgid "More networks" -msgstr "Více sítí" +#: ../src/applet.c:3361 +msgid "NetworkManager Applet" +msgstr "Applet NetworkManager" -#: ../src/applet-device-wifi.c:1071 -msgid "Wireless Networks Available" -msgstr "Dostupné bezdrátové sítě" +#: ../src/applet-device-bt.c:173 +#: ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 +#: ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 +#: ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Dostupné" -#: ../src/applet-device-wifi.c:1072 -msgid "Use the network menu to connect to a wireless network" -msgstr "Použijte nabídku sítí pro připojení k bezdrátové síti" +#: ../src/applet-device-bt.c:199 +#: ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 +#: ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "Jste právě připojeni k „%s“." -#: ../src/applet-device-wifi.c:1075 -#: ../src/applet.c:925 -msgid "Don't show this message again" -msgstr "Tuto zprávu již příště nezobrazovat" +#: ../src/applet-device-bt.c:203 +#: ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 +#: ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 +#: ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "Spojení navázáno" -#: ../src/applet-device-wifi.c:1267 -#, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Jste právě připojeni k bezdrátové síti „%s“." +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Jste právě připojeni k mobilní širokopásmové síti." -#: ../src/applet-device-wifi.c:1298 +#: ../src/applet-device-bt.c:230 +#: ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 +#: ../src/applet-device-wimax.c:464 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Připravuje se bezdrátové připojení k síti „%s“…" +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Připravuje se mobilní širokopásmové připojení „%s“…" -#: ../src/applet-device-wifi.c:1301 +#: ../src/applet-device-bt.c:233 +#: ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 +#: ../src/applet-device-wimax.c:467 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Nastavuje se bezdrátové připojení k síti „%s“…" +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Nastavuje se mobilní širokopásmové připojení „%s“…" -#: ../src/applet-device-wifi.c:1304 +#: ../src/applet-device-bt.c:236 +#: ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 +#: ../src/applet-device-wimax.c:470 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "Je vyžadováno ověření uživatele k bezdrátové síti „%s“…" +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "Je vyžadováno ověření uživatele pro mobilní širokopásmové připojení „%s“…" -#: ../src/applet-device-wifi.c:1307 +#: ../src/applet-device-bt.c:243 +#: ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Žádá se o síťovou adresu k bezdrátové síti pro „%s“…" +msgid "Mobile broadband connection '%s' active" +msgstr "Mobilní širokopásmové připojení „%s“ je aktivní" -#: ../src/applet-device-wifi.c:1328 -#, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "Bezdrátové připojení k síti „%s“ je aktivní: %s (%d%%)" +#: ../src/applet-device-cdma.c:181 +#: ../src/connection-editor/page-mobile.c:700 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wifi.c:1333 +#: ../src/applet-device-cdma.c:342 +#: ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "Bezdrátové připojení k síti „%s“ je aktivní" - -#: ../src/applet-device-wifi.c:1381 -msgid "Failed to activate connection" -msgstr "Aktivace připojení se nezdařila" +msgid "Mobile Broadband (%s)" +msgstr "Mobilní širokopásmová (%s)" -#: ../src/applet-device-wifi.c:1383 -#: ../src/applet-device-wifi.c:1402 -#: ../src/applet.c:491 -#: ../src/applet.c:535 -#: ../src/applet.c:561 -msgid "Unknown error" -msgstr "Neznámá chyba" +#: ../src/applet-device-cdma.c:344 +#: ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:87 +#: ../src/connection-editor/page-mobile.c:380 +msgid "Mobile Broadband" +msgstr "Mobilní širokopásmová" -#: ../src/applet-device-wifi.c:1386 -#: ../src/applet-device-wifi.c:1405 -#: ../src/applet.c:494 -#: ../src/applet.c:564 -msgid "Connection failure" -msgstr "Selhání připojení" +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Nové mobilní širokopásmové připojení (CDMA)…" -#: ../src/applet-device-wifi.c:1400 -msgid "Failed to add new connection" -msgstr "Přidání nového připojení se nezdařilo" +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Jste právě připojeni k síti CDMA." -#: ../src/applet-device-wimax.c:231 +#: ../src/applet-device-cdma.c:500 +#: ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 #, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "Mobilní širokopásmové připojení WiMAX (%s)" +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "Aktivní mobilní širokopásmové připojení „%s“: (%d%%%s%s)" -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr "Mobilní širokopásmové připojení WiMAX" +#: ../src/applet-device-cdma.c:503 +#: ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "roaming" -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "WiMAX je zakázána " +#: ../src/applet-device-cdma.c:644 +#: ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "Síť CDMA." -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX je zakázána hardwarovým přepínačem" +#: ../src/applet-device-cdma.c:645 +#: ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "Jste právě připojeni k domácí síti." -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "Jste právě připojeni k síti WiMAX." +#: ../src/applet-device-cdma.c:651 +#: ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "Jste právě připojeni k roamingové síti." -#: ../src/applet-dialogs.c:57 -msgid "Error displaying connection information:" -msgstr "Chyba při zobrazování informací o spojení:" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "Auto Ethernet" -#: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:313 -#: ../src/libnm-gtk/nm-wireless-dialog.c:948 -#: ../src/wireless-security/wireless-security.c:406 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-ethernet.c:205 +#, c-format +msgid "Ethernet Networks (%s)" +msgstr "Drátové sítě (%s)" -#: ../src/applet-dialogs.c:111 -msgid "Dynamic WEP" -msgstr "Dynamické WEP" +#: ../src/applet-device-ethernet.c:207 +#, c-format +msgid "Ethernet Network (%s)" +msgstr "Drátová síť (%s)" -#: ../src/applet-dialogs.c:113 -#: ../src/applet-dialogs.c:245 -#: ../src/applet-dialogs.c:247 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "Drátové sítě" -#: ../src/applet-dialogs.c:243 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "Drátová síť" -#: ../src/applet-dialogs.c:251 -#: ../src/applet-dialogs.c:260 -#: ../src/connection-editor/page-wireless-security.c:265 -#: ../src/libnm-gtk/nm-wireless-dialog.c:905 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "Žádná" +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "Jste právě připojeni k drátové síti." -#: ../src/applet-dialogs.c:277 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "%s (default)" -msgstr "%s (výchozí)" +msgid "Preparing ethernet network connection '%s'..." +msgstr "Připravuje se přípojení k drátové síti „%s“…" -#: ../src/applet-dialogs.c:346 -#: ../src/applet-dialogs.c:484 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "%u Mb/s" -msgstr "%u Mb/s" +msgid "Configuring ethernet network connection '%s'..." +msgstr "Nastavuje se připojení k drátové síti „%s“…" -#: ../src/applet-dialogs.c:348 -#: ../src/applet-dialogs.c:486 -msgctxt "Speed" -msgid "Unknown" -msgstr "Neznámá" +#: ../src/applet-device-ethernet.c:306 +#, c-format +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "Je vyžadováno ověření uživatele pro připojení k drátové síti „%s“…" -#: ../src/applet-dialogs.c:361 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "%d dB" +msgid "Requesting an ethernet network address for '%s'..." +msgstr "Žádá se o síťovou adresu k drátové síti pro „%s“…" + +#: ../src/applet-device-ethernet.c:313 +#, c-format +msgid "Ethernet network connection '%s' active" +msgstr "Připojení k drátové síti „%s“ je aktivní" + +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "Ověření DSL" + +#: ../src/applet-device-gsm.c:211 +#: ../src/connection-editor/page-mobile.c:703 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" + +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Nové mobilní širokopásmové připojení (GSM)…" + +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "Jste právě připojeni k síti GSM." + +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "Požadován kód PIN" + +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "Pro mobilní širokopásmové zařízení je vyžadován kód PIN" + +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "Kód PIN pro kartu SIM „%s“ na „%s“" + +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "Nesprávný kód PIN. Obraťte se prosím na svého poskytovatele." + +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "Nesprávný kód PUK. Obraťte se prosím na svého poskytovatele." + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "Odemykací kód je zasílán…" + +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "Požadováno odemčení SIM PIN" + +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "Požadováno odemčení SIM PIN" + +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." +msgstr "Před použitím požaduje mobilní širokopásmové zařízení „%s“ SIM kód PIN." + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "Kód PIN:" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "Ukázat kód PIN" + +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "Požadováno odemčení SIM PUK" + +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "Požadováno odemčení SIM PUK" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." +msgstr "Před použitím požaduje mobilní širokopásmové zařízení „%s“ SIM kód PUK." + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "Kód PUK:" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "Nový kód PIN:" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "Nový kód PIN znovu:" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "Ukázat kód PIN/PUK" + +#: ../src/applet-device-gsm.c:1195 +#: ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "Síť GSM." + +#: ../src/applet-device-wifi.c:97 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "_Připojit se ke skryté síti Wi-Fi…" + +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "Vytvořit _novou síť Wi-Fi…" + +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(žádné)" + +#: ../src/applet-device-wifi.c:790 +#, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "Sítě Wi-Fi (%s)" + +#: ../src/applet-device-wifi.c:792 +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Síť Wi-Fi (%s)" + +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Síť Wi-Fi" +msgstr[1] "Sítě Wi-Fi" +msgstr[2] "Sítě Wi-Fi" + +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "Wi-Fi je zakázána" + +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Wi-Fi je zakázána hardwarovým přepínačem" + +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "Více sítí" + +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "Dostupné sítě Wi-Fi" + +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Použijte nabídku sítí pro připojení k síti Wi-Fi" + +#: ../src/applet-device-wifi.c:1263 +#, c-format +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Jste právě připojeni k síti Wi-Fi „%s“." + +#: ../src/applet-device-wifi.c:1294 +#, c-format +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Připravuje se připojení k síti Wi-Fi „%s“…" + +#: ../src/applet-device-wifi.c:1297 +#, c-format +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Nastavuje se připojení k síti Wi-Fi „%s“…" + +#: ../src/applet-device-wifi.c:1300 +#, c-format +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "Je vyžadováno ověření uživatele k síti Wi-Fi „%s“…" + +#: ../src/applet-device-wifi.c:1303 +#, c-format +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Žádá se o síťovou adresu k síti Wi-Fi pro „%s“…" + +#: ../src/applet-device-wifi.c:1324 +#, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Připojení k síti Wi-Fi „%s“ je aktivní: %s (%d%%)" + +#: ../src/applet-device-wifi.c:1329 +#, c-format +msgid "Wi-Fi network connection '%s' active" +msgstr "Připojení k síti Wi-Fi „%s“ je aktivní" + +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Aktivace připojení se nezdařila" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Přidání nového připojení se nezdařilo" + +#: ../src/applet-device-wimax.c:231 +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "Mobilní širokopásmové připojení WiMAX (%s)" + +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "Mobilní širokopásmové připojení WiMAX" + +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "WiMAX je zakázána " + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX je zakázána hardwarovým přepínačem" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "Jste právě připojeni k síti WiMAX." + +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "Chyba při zobrazování informací o spojení:" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" + +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "Dynamické WEP" + +#: ../src/applet-dialogs.c:113 +#: ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" + +#: ../src/applet-dialogs.c:251 +#: ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "Žádná" + +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (výchozí)" + +#: ../src/applet-dialogs.c:346 +#: ../src/applet-dialogs.c:484 +#, c-format +msgid "%u Mb/s" +msgstr "%u Mb/s" + +#: ../src/applet-dialogs.c:348 +#: ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "Neznámá" + +#: ../src/applet-dialogs.c:361 +#, c-format +msgid "%d dB" msgstr "%d dB" #: ../src/applet-dialogs.c:363 @@ -754,397 +1105,282 @@ msgid "Password:" msgstr "Heslo:" -#: ../src/applet.c:489 -msgid "Failed to add/activate connection" -msgstr "Nepodařilo se přidat/aktivovat připojení" +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 +msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." +msgstr "IP adresa identifikuje váš počítač v síti. Pro přidání IP adresy klikněte na tlačítko „Přidat“." -#: ../src/applet.c:533 -msgid "Device disconnect failed" -msgstr "Odpojení zařízení selhalo" +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "Ig_nore automatically obtained routes" +msgstr "Ig_norovat automaticky získané trasy" -#: ../src/applet.c:538 -msgid "Disconnect failure" -msgstr "Selhání odpojení" +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +msgid "_Use this connection only for resources on its network" +msgstr "Po_užít toto připojení jen pro prostředky ve vlastní síti" -#: ../src/applet.c:559 -msgid "Connection activation failed" -msgstr "Aktivace připojení selhala" +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 +msgid "If enabled, this connection will never be used as the default network connection." +msgstr "Pokud je povoleno, toto připojení nebude nikdy použito jako výchozí připojení k síti." -#: ../src/applet.c:1014 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was interrupted." -msgstr "" -"\n" -"Připojení k VPN „%s“ selhalo, protože bylo přerušeno připojení k síti." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " -#: ../src/applet.c:1017 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"Připojení k VPN „%s“ selhalo, protože se služba VPN neočekávaně zastavila." +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "Vyberte typ připojení" -#: ../src/applet.c:1020 -#, c-format +#: ../src/connection-editor/ce-new-connection.ui.h:3 msgid "" +"Select the type of connection you wish to create.\n" "\n" -"The VPN connection '%s' failed because the VPN service returned invalid configuration." +"If you are creating a VPN, and the VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." msgstr "" +"Vyberte typ připojení, který si přejete vytvořit.\n" "\n" -"Připojení k VPN „%s“ selhalo, protože služba VPN vrátila neplatnou konfiguraci." +"Pokud vytváříte VPN a typ připojení k VPN, který si přejete vytvořit, není v seznamu, nemáte zřejmě nainstalován správný zásuvný modul VPN." -#: ../src/applet.c:1023 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"Připojení k VPN „%s“ selhalo, protože vypršel časový limit pro připojení." - -#: ../src/applet.c:1026 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"Připojení k VPN „%s“ selhalo, protože se služba VPN nespustila včas." - -#: ../src/applet.c:1029 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"Připojení k VPN „%s“ selhalo, protože se nezdařilo spuštění služby VPN." - -#: ../src/applet.c:1032 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"Připojení k VPN „%s“ selhalo, protože nebyly zadány platné tajné klíče k VPN." - -#: ../src/applet.c:1035 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"Připojení k VPN „%s“ selhalo kvůli neplatným tajným klíčům k VPN." - -#: ../src/applet.c:1042 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"Připojení k VPN „%s“ selhalo." - -#: ../src/applet.c:1060 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was interrupted." -msgstr "" -"\n" -"Připojení k VPN „%s“ bylo odpojeno, protože bylo přerušeno připojení k síti." - -#: ../src/applet.c:1063 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"Připojení k VPN „%s“ bylo odpojeno, protože se zastavila služba VPN." - -#: ../src/applet.c:1069 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"Připojení k VPN „%s“ bylo odpojeno." - -#: ../src/applet.c:1103 -msgid "VPN Login Message" -msgstr "Zpráva po přihlášení VPN" - -#: ../src/applet.c:1109 -#: ../src/applet.c:1117 -#: ../src/applet.c:1167 -msgid "VPN Connection Failed" -msgstr "Připojení k VPN selhalo" - -#: ../src/applet.c:1174 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Připojení k VPN „%s“ selhalo, protože se nezdařilo spuštění služby VPN.\n" -"\n" -"%s" - -#: ../src/applet.c:1177 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Připojení k VPN „%s“ se nepodařilo spustit.\n" -"\n" -"%s" - -#: ../src/applet.c:1497 -msgid "device not ready (firmware missing)" -msgstr "zařízení není připraveno (chybí firmware)" - -#: ../src/applet.c:1499 -msgid "device not ready" -msgstr "zařízení není připraveno" - -#: ../src/applet.c:1525 -msgid "Disconnect" -msgstr "Odpojit" - -#: ../src/applet.c:1539 -msgid "device not managed" -msgstr "zařízení není spravováno" - -#: ../src/applet.c:1583 -msgid "No network devices available" -msgstr "Nejsou dostupná žádná síťová zařízení" - -#: ../src/applet.c:1671 -msgid "_VPN Connections" -msgstr "Připojení k _VPN" - -#: ../src/applet.c:1728 -msgid "_Configure VPN..." -msgstr "_Nastavit VPN…" - -#: ../src/applet.c:1732 -msgid "_Disconnect VPN" -msgstr "O_dpojit VPN" - -#: ../src/applet.c:1830 -msgid "NetworkManager is not running..." -msgstr "NetworkManager neběží…" - -#: ../src/applet.c:1835 -#: ../src/applet.c:2634 -msgid "Networking disabled" -msgstr "Síť zakázána" - -#. 'Enable Networking' item -#: ../src/applet.c:2056 -msgid "Enable _Networking" -msgstr "Povolit _síť" - -#. 'Enable Wireless' item -#: ../src/applet.c:2065 -msgid "Enable _Wireless" -msgstr "Povolit _bezdrátové" - -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2074 -msgid "Enable _Mobile Broadband" -msgstr "Povolit _mobilní širokopásmová připojení" - -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2083 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Povolit mobilní širokopásmová připojení WiMA_X" - -#. Toggle notifications item -#: ../src/applet.c:2094 -msgid "Enable N_otifications" -msgstr "Povolit up_ozornění" - -#. 'Connection Information' item -#: ../src/applet.c:2105 -msgid "Connection _Information" -msgstr "_Informace o spojení" - -#. 'Edit Connections...' item -#: ../src/applet.c:2115 -msgid "Edit Connections..." -msgstr "Upravit připojení…" - -#. Help item -#: ../src/applet.c:2129 -msgid "_Help" -msgstr "_Nápověda" +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Vytvořit…" -#. About item -#: ../src/applet.c:2138 -msgid "_About" -msgstr "O _aplikaci" +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "automatické" -#: ../src/applet.c:2315 -msgid "Disconnected" -msgstr "Odpojen" +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "Aktualizace připojení selhala kvůli neznámé chybě." -#: ../src/applet.c:2316 -msgid "The network connection has been disconnected." -msgstr "Připojení k síti bylo odpojeno." +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" +msgstr "Round-robin" + +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" +msgstr "Aktivní záloha" + +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" +msgstr "XOR" + +#: ../src/connection-editor/ce-page-bond.ui.h:4 +msgid "Broadcast" +msgstr "Adresa všesměrového vysílání" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "802.3ad" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" +msgstr "Adaptivní rozklad zátěže odesílání" + +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" +msgstr "Adaptivní rozklad zátěže" + +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "MII (doporučeno)" + +#: ../src/connection-editor/ce-page-bond.ui.h:9 +msgid "ARP" +msgstr "ARP" + +#: ../src/connection-editor/ce-page-bond.ui.h:10 +msgid "Bonded _connections:" +msgstr "_Svázaná připojení:" -#: ../src/applet.c:2497 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Připravuje se připojení k síti „%s“…" +#: ../src/connection-editor/ce-page-bond.ui.h:11 +msgid "_Mode:" +msgstr "_Režim:" -#: ../src/applet.c:2500 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Je vyžadováno ověření uživatele k připojení „%s“…" +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "Upr_avit" -#: ../src/applet.c:2506 -#, c-format -msgid "Network connection '%s' active" -msgstr "Připojení k síti „%s“ je aktivní" +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "O_dstranit" -#: ../src/applet.c:2589 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Spouští se připojení k VPN „%s“…" +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "Č_etnost sledování:" + +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "ms" + +#: ../src/connection-editor/ce-page-bond.ui.h:16 +msgid "_Interface name:" +msgstr "Název _rozhraní:" + +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "Sledování _linky:" + +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "Cí_le ARP:" + +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "An IP address, or a comma-separated list of IP addresses, to look for when checking the link status." +msgstr "Adresa IP, nebo čárkami oddělený seznam adres IP, které se kontrolují při zjišťování stavu linky." + +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "Prodleva _navázání spojení:" + +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "Prodleva o_dpojení:" -#: ../src/applet.c:2592 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Je vyžadováno ověření uživatele pro připojení k VPN „%s“…" +#: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 +#: ../src/wireless-security/eap-method-leap.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/ws-leap.ui.h:1 +msgid "_Username:" +msgstr "_Uživatelské jméno:" -#: ../src/applet.c:2595 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Žádá se o síťovou adresu k VPN pro „%s“…" +#: ../src/connection-editor/ce-page-dsl.ui.h:2 +msgid "_Service:" +msgstr "_Služba:" -#: ../src/applet.c:2598 -#, c-format -msgid "VPN connection '%s' active" -msgstr "Připojení k VPN „%s“ je aktivní" +#: ../src/connection-editor/ce-page-dsl.ui.h:3 +#: ../src/wireless-security/eap-method-leap.ui.h:3 +#: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 +#: ../src/wireless-security/ws-leap.ui.h:3 +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "_Zobrazit heslo" -#: ../src/applet.c:2639 -msgid "No network connection" -msgstr "Žádné připojení k síti" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_Heslo:" -#: ../src/applet.c:3394 -msgid "NetworkManager Applet" -msgstr "Applet NetworkManager" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "Automaticky" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Automaticky odemykat toto zařízení" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Kroucená dvoulinka (TP)" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "Odemkno_ut" +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "Informace o spojení" +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "Aktivní připojení k síti" +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" -#: ../src/wired-8021x.ui.h:1 -#: ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Ověření drátového připojení 802.1X" +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" -#: ../src/wired-8021x.ui.h:2 -#: ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "_Název sítě:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "automatické" +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" -#: ../src/connection-editor/ce-page.c:318 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "Aktualizace připojení selhala kvůli neznámé chybě." +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" -#: ../src/connection-editor/ce-ip4-routes.ui.h:1 -#: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:8 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 -msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." -msgstr "IP adresa identifikuje váš počítač v síti. Pro přidání IP adresy klikněte na tlačítko „Přidat“." +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Port:" -#: ../src/connection-editor/ce-ip4-routes.ui.h:2 -#: ../src/connection-editor/ce-ip6-routes.ui.h:2 -msgid "Ig_nore automatically obtained routes" -msgstr "Ig_norovat automaticky získané trasy" +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Rychlost:" -#: ../src/connection-editor/ce-ip4-routes.ui.h:3 -#: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "_Use this connection only for resources on its network" -msgstr "Po_užít toto připojení jen pro prostředky ve vlastní síti" +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Plně duple_xní komunikace" -#: ../src/connection-editor/ce-ip4-routes.ui.h:4 -#: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "If enabled, this connection will never be used as the default network connection." -msgstr "Pokud je povoleno, toto připojení nebude nikdy použito jako výchozí připojení k síti." +# automatické nastavení Ethernet komunikace +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "Aut_onegotiate" -#: ../src/connection-editor/ce-page-dsl.ui.h:1 -#: ../src/connection-editor/ce-page-mobile.ui.h:8 -#: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:1 -#: ../src/wireless-security/ws-leap.ui.h:1 -msgid "_Username:" -msgstr "_Uživatelské jméno:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "A_dresa MAC zařízení:" -#: ../src/connection-editor/ce-page-dsl.ui.h:2 -msgid "_Service:" -msgstr "_Služba:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "K_lonovaná adresa MAC:" -#: ../src/connection-editor/ce-page-dsl.ui.h:3 -#: ../src/wireless-security/eap-method-leap.ui.h:3 -#: ../src/wireless-security/eap-method-simple.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:6 -#: ../src/wireless-security/ws-leap.ui.h:3 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "Sho_w password" -msgstr "_Zobrazit heslo" +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "Adresa MAC sem vložená bude použita jako hardwarová adresa síťového zařízení, na němž je toto připojení aktivováno. Tato vlastnost je známá jako klonování nebo podvržení MAC. Např. 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:9 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "_Password:" -msgstr "_Heslo:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -msgid "Automatic" -msgstr "Automaticky" +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "bajty" + +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "Režim _transportu:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagram" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "Připojeno" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 @@ -1195,11 +1431,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" -msgstr "Hl_edat domény:" +msgstr "Prol_edat domény:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "Servery _DNS:" @@ -1338,142 +1578,68 @@ msgid "Send PPP _echo packets" msgstr "Odeslat _echo pakety PPP" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "Kroucená dvoulinka (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "Media Independent Interface (MII)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "_Port:" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "_Rychlost:" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "Plně duple_xní komunikace" - -# automatické nastavení Ethernet komunikace -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "Aut_onegotiate" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "A_dresa MAC zařízení:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "C_loned MAC address:" -msgstr "K_lonovaná adresa MAC:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "Adresa MAC sem vložená bude použita jako hardwarová adresa síťového zařízení, na němž je toto připojení aktivováno. Tato vlastnost je známá jako klonování nebo podvržení MAC. Např. 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "_MTU:" -msgstr "_MTU:" - -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "bajty" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "Zab_ezpečení:" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Infrastruktura" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "Ad-hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "mW" # Přenosový výkon? -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "Přeno_sový výkon:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" # Nebo "Rychlost"? ale to je zde jako "Speed" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "_Poměr:" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "This option locks this connection to the wireless access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "Tato volba umožní připojení pouze prostřednictvím bezdrátového přístupového bodu (AP) se specifickým zde uvedeným BSSID. Např. 00:11:22:33:44:55" +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +msgid "This option locks this connection to the Wi-Fi access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "Tato volba umožní připojení pouze prostřednictvím přístupového bodu Wi-Fi (AP) se zde uvedeným BSSID. Např. 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "_Kanál:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "_Pásmo:" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "_Režim:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "SS_ID:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "Zab_ezpečení:" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Povolené metody ověření" @@ -1498,96 +1664,351 @@ msgid "C_HAP" msgstr "C_HAP" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Challenge Handshake Authentication Protocol" -msgstr "Challenge Handshake Authentication Protocol" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 +msgid "Challenge Handshake Authentication Protocol" +msgstr "Challenge Handshake Authentication Protocol" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "_MSCHAP" +msgstr "_MSCHAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft Challenge Handshake Authentication Protocol" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft Challenge Handshake Authentication Protocol verze 2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 +msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." +msgstr "Ve většině případů podporují servery s protokolem PPP všechny metody ověření. Pokud připojení selže, zkuste zakázat podporu pro některé metody." + +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Adresa" + +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Síťová maska" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Brána" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Metrika" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Předpona" + +#: ../src/connection-editor/new-connection.c:77 +#: ../src/connection-editor/page-ethernet.c:274 +msgid "Ethernet" +msgstr "Ethernet" + +#: ../src/connection-editor/new-connection.c:82 +#: ../src/connection-editor/page-wifi.c:463 +msgid "Wi-Fi" +msgstr "Wi-Fi" + +#: ../src/connection-editor/new-connection.c:92 +#: ../src/connection-editor/page-wimax.c:158 +#: ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:97 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:102 +#: ../src/connection-editor/page-infiniband.c:190 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:107 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "Svazek" + +#: ../src/connection-editor/new-connection.c:119 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:252 +msgid "Import a saved VPN configuration..." +msgstr "Importovat uložené nastavení VPN…" + +#: ../src/connection-editor/new-connection.c:274 +msgid "The connection editor dialog could not be initialized due to an unknown error." +msgstr "Rozhraní editoru připojení nemohlo být kvůli neznámé chybě inicializováno." + +#: ../src/connection-editor/new-connection.c:283 +msgid "Could not create new connection" +msgstr "Nelze vytvořit nové připojení" + +#: ../src/connection-editor/new-connection.c:419 +msgid "Connection delete failed" +msgstr "Smazání připojení selhalo" + +#: ../src/connection-editor/new-connection.c:466 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Jste si jisti, že chcete smazat připojení %s?" + +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "Úprava %s" + +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "Úprava nepojmenovaného připojení" + +#: ../src/connection-editor/nm-connection-editor.c:301 +msgid "The connection editor could not find some required resources (the .ui file was not found)." +msgstr "Editor připojení nemohl nalézt některé požadované zdroje (soubor .ui nebyl nalezen)." + +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "_Uložit" + +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "Uložit změny provedené v tomto připojení." + +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "_Uložit…" + +# Ověření k uložení...? +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "Uložení tohoto připojení u všech uživatelů tohoto počítače je možné po ověření." + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not create connection" +msgstr "Nelze vytvořit připojení" + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "Nelze upravit připojení" + +#: ../src/connection-editor/nm-connection-editor.c:449 +msgid "Unknown error creating connection editor dialog." +msgstr "Neznámá chyba při vytváření rozhraní editoru připojení." + +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "Chyba při ukládání připojení" + +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Vlastnost „%s“ / „%s“ je neplatná: %d" + +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "Chyba při inicializaci editoru" + +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "Přidání připojení selhalo" + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "_Název připojení:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "Připojit _automaticky" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "Dostupné pro _všechny uživatele" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "E_xport…" + +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "nikdy" + +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "nyní" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "před %d minutou" +msgstr[1] "před %d minutami" +msgstr[2] "před %d minutami" + +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "před %d hodinou" +msgstr[1] "před %d hodinami" +msgstr[2] "před %d hodinami" + +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "před %d dnem" +msgstr[1] "před %d dny" +msgstr[2] "před %d dny" + +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "před %d měsícem" +msgstr[1] "před %d měsíci" +msgstr[2] "před %d měsíci" + +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "před %d rokem" +msgstr[1] "před %d roky" +msgstr[2] "před %d lety" + +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "Název" + +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "Poslední použité" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "_MSCHAP" -msgstr "_MSCHAP" +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "Upravit zvolené připojení" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft Challenge Handshake Authentication Protocol" +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "Upr_avit…" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "Před úpravou zvoleného připojení musíte být ověřeni" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft Challenge Handshake Authentication Protocol verze 2" +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "Odstranit zvolené připojení" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." -msgstr "Ve většině případů podporují servery s protokolem PPP všechny metody ověření. Pokud připojení selže, zkuste zakázat podporu pro některé metody." +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "O_dstranit…" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 -#: ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "Před smazáním zvoleného připojení musíte být ověřeni" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Vyberte typ připojení VPN" +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "Chyba při vytváření připojení" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." -msgstr "Vyberte typ VPN, který si přejete použít pro nové připojení. Pokud typ připojení k VPN, který si přejete vytvořit, není v seznamu, nemáte možná nainstalován správný zásuvný modul VPN." +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Není známo, jak vytvořit připojení „%s“" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "Vytvořit…" +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "Chyba při úpravě připojení" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Adresa" +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Připojení s UUID „%s“ nebylo nalezeno" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Síťová maska" +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "Zabezpečení 802.1x" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Brána" +#: ../src/connection-editor/page-8021x-security.c:122 +msgid "Could not load 802.1x Security user interface." +msgstr "Nelze nahrát uživatelské rozhraní bezpečnosti 802.1x." -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Metrika" +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "Použít pro toto připojení zabezpečení 802.1_X" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Předpona" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "%s podřízené %d" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1518 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:749 +msgid "Could not load bond user interface." +msgstr "Nelze nahrát uživatelské rozhraní svazku připojení." + +#: ../src/connection-editor/page-bond.c:909 +#, c-format +msgid "Bond connection %d" +msgstr "Svazek připojení %d" -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-dsl.c:142 msgid "Could not load DSL user interface." msgstr "Nelze nahrát uživatelské rozhraní DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:234 #, c-format msgid "DSL connection %d" msgstr "Připojení pomocí DSL %d" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "Tato volba umožní připojení pouze prostřednictvím zařízení s pevnou zde uvedenou adresou MAC. Např. 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:276 +msgid "Could not load ethernet user interface." +msgstr "Nelze nahrát uživatelské rozhraní drátové sítě." + +#: ../src/connection-editor/page-ethernet.c:452 +#, c-format +msgid "Ethernet connection %d" +msgstr "Drátové připojení %d" + +#: ../src/connection-editor/page-infiniband.c:193 +msgid "Could not load InfiniBand user interface." +msgstr "Nelze nahrát uživatelské rozhraní InfiniBand." + +#: ../src/connection-editor/page-infiniband.c:318 +#, c-format +msgid "InfiniBand connection %d" +msgstr "Připojení InfiniBand %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1635,16 +2056,26 @@ msgid "Disabled" msgstr "Zakázané" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Další servery _DNS:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Prol_edat také domény:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Úprava tras IPv4 pro %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:993 msgid "IPv4 Settings" msgstr "Nastavení IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:995 msgid "Could not load IPv4 user interface." msgstr "Nelze nahrát uživatelské rozhraní IPv4." @@ -1653,7 +2084,7 @@ msgstr "Automaticky, pouze adresy" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ignorovat" @@ -1661,365 +2092,104 @@ msgid "Automatic, DHCP only" msgstr "Automaticky, pouze DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Úprava směrovacích tras IPv6 pro %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:957 msgid "IPv6 Settings" msgstr "Nastavení IPv6" -#: ../src/connection-editor/page-ip6.c:947 -msgid "Could not load IPv6 user interface." -msgstr "Nelze nahrát uživatelské rozhraní IPv6." - -#: ../src/connection-editor/page-mobile.c:381 -msgid "Could not load mobile broadband user interface." -msgstr "Nelze nahrát uživatelské rozhraní mobilního připojení." - -#: ../src/connection-editor/page-mobile.c:398 -msgid "Unsupported mobile broadband connection type." -msgstr "Nepodporovaný typ mobilního širokopásmového připojení." - -#. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 -msgid "Select Mobile Broadband Provider Type" -msgstr "Vybrat typ poskytovatele mobilního připojení" - -#: ../src/connection-editor/page-mobile.c:674 -msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." -msgstr "Vyberte technologii, kterou používá váš poskytovatel mobilního připojení. Pokud si nejste jistí, obraťte se na svého poskytovatele." - -#: ../src/connection-editor/page-mobile.c:679 -msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "Můj poskytovatel používá technologii založenou na _GSM (tj. GPRS, EDGE, UTMS, HSDPA)" - -#: ../src/connection-editor/page-mobile.c:686 -msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "Můj poskytovatel používá technologii založenou na C_DMA (tj. 1xRTT, EVDO)" - -#: ../src/connection-editor/page-ppp.c:134 -msgid "EAP" -msgstr "EAP" - -#: ../src/connection-editor/page-ppp.c:135 -#: ../src/wireless-security/eap-method-ttls.c:230 -msgid "PAP" -msgstr "PAP" - -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:280 -msgid "CHAP" -msgstr "CHAP" - -#: ../src/connection-editor/page-ppp.c:137 -#: ../src/wireless-security/eap-method-fast.c:277 -#: ../src/wireless-security/eap-method-peap.c:246 -#: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "žádné" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Úprava metod ověření PPP pro %s" - -#: ../src/connection-editor/page-ppp.c:282 -msgid "PPP Settings" -msgstr "Nastavení PPP" - -#: ../src/connection-editor/page-ppp.c:284 -msgid "Could not load PPP user interface." -msgstr "Nelze nahrát uživatelské rozhraní PPP." - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1514 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "Nelze nahrát uživatelské rozhraní VPN." - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "Nelze nalézt službu zásuvných modulů VPN pro „%s“." - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:899 -#, c-format -msgid "VPN connection %d" -msgstr "Připojení k VPN %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "Tato volba umožní připojení pouze prostřednictvím zařízení s pevnou zde uvedenou adresou MAC. Např. 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1502 -msgid "Wired" -msgstr "Drátová" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "Nelze nahrát uživatelské rozhraní drátové sítě." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Drátové připojení %d" - -#: ../src/connection-editor/page-wired-security.c:119 -msgid "802.1x Security" -msgstr "Zabezpečení 802.1x" - -#: ../src/connection-editor/page-wired-security.c:121 -msgid "Could not load Wired Security security user interface." -msgstr "Nelze nahrát uživatelské rozhraní bezpečnosti drátové sítě." - -#: ../src/connection-editor/page-wired-security.c:139 -msgid "Use 802.1_X security for this connection" -msgstr "Použít pro toto připojení zabezpečení 802.1_X" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "výchozí" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1506 -msgid "Wireless" -msgstr "Bezdrátová" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "Nelze nahrát uživatelské rozhraní WiFi." - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Bezdrátové připojení %d" - -#: ../src/connection-editor/page-wireless-security.c:290 -#: ../src/libnm-gtk/nm-wireless-dialog.c:922 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "Klíč WEP 40/128 bitů (Hex nebo ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:300 -#: ../src/libnm-gtk/nm-wireless-dialog.c:931 -msgid "WEP 128-bit Passphrase" -msgstr "Heslo WEP 128 bitů" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:961 -msgid "Dynamic WEP (802.1x)" -msgstr "Dynamické WEP (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:340 -#: ../src/libnm-gtk/nm-wireless-dialog.c:975 -msgid "WPA & WPA2 Personal" -msgstr "WPA & WPA2 Personal" - -#: ../src/connection-editor/page-wireless-security.c:354 -#: ../src/libnm-gtk/nm-wireless-dialog.c:989 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA & WPA2 Enterprise" - -#: ../src/connection-editor/page-wireless-security.c:395 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "Nelze nahrát uživatelské rozhraní bezpečnosti WiFi. Chybí volby WiFi." - -#: ../src/connection-editor/page-wireless-security.c:405 -msgid "Wireless Security" -msgstr "Bezdrátové zabezpečení" - -#: ../src/connection-editor/page-wireless-security.c:407 -msgid "Could not load WiFi security user interface." -msgstr "Nelze nahrát uživatelské rozhraní bezpečnosti WiFi." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Úprava %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Úprava nepojmenovaného připojení" - -#: ../src/connection-editor/nm-connection-editor.c:291 -msgid "The connection editor could not find some required resources (the .ui file was not found)." -msgstr "Editor připojení nemohl nalézt některé požadované zdroje (soubor .ui nebyl nalezen)." - -#: ../src/connection-editor/nm-connection-editor.c:394 -msgid "Error creating connection editor dialog." -msgstr "Chyba při vytváření rozhraní editoru." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "_Save" -msgstr "_Uložit" - -#: ../src/connection-editor/nm-connection-editor.c:407 -msgid "Save any changes made to this connection." -msgstr "Uložit změny provedené v tomto připojení." - -#: ../src/connection-editor/nm-connection-editor.c:408 -msgid "_Save..." -msgstr "_Uložit…" - -# Ověření k uložení...? -#: ../src/connection-editor/nm-connection-editor.c:409 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "Uložení tohoto připojení u všech uživatelů tohoto počítače je možné po ověření." - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "_Importovat" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "E_xportovat" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "_Název připojení:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "Připojit _automaticky" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Dostupné pro všechny uživatele" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "nikdy" +#: ../src/connection-editor/page-ip6.c:959 +msgid "Could not load IPv6 user interface." +msgstr "Nelze nahrát uživatelské rozhraní IPv6." -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "nyní" +#: ../src/connection-editor/page-mobile.c:382 +msgid "Could not load mobile broadband user interface." +msgstr "Nelze nahrát uživatelské rozhraní mobilního připojení." -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "před %d minutou" -msgstr[1] "před %d minutami" -msgstr[2] "před %d minutami" +#: ../src/connection-editor/page-mobile.c:399 +msgid "Unsupported mobile broadband connection type." +msgstr "Nepodporovaný typ mobilního širokopásmového připojení." -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "před %d hodinou" -msgstr[1] "před %d hodinami" -msgstr[2] "před %d hodinami" +#. Fall back to just asking for GSM vs. CDMA +#: ../src/connection-editor/page-mobile.c:643 +msgid "Select Mobile Broadband Provider Type" +msgstr "Vybrat typ poskytovatele mobilního připojení" -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "před %d dnem" -msgstr[1] "před %d dny" -msgstr[2] "před %d dny" +#: ../src/connection-editor/page-mobile.c:678 +msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." +msgstr "Vyberte technologii, kterou používá váš poskytovatel mobilního připojení. Pokud si nejste jistí, obraťte se na svého poskytovatele." -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "před %d měsícem" -msgstr[1] "před %d měsíci" -msgstr[2] "před %d měsíci" +#: ../src/connection-editor/page-mobile.c:683 +msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" +msgstr "Můj poskytovatel používá technologii založenou na _GSM (tj. GPRS, EDGE, UTMS, HSDPA)" -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "před %d rokem" -msgstr[1] "před %d roky" -msgstr[2] "před %d lety" +#: ../src/connection-editor/page-mobile.c:690 +msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" +msgstr "Můj poskytovatel používá technologii založenou na C_DMA (tj. 1xRTT, EVDO)" -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Přidání připojení selhalo" +#: ../src/connection-editor/page-ppp.c:134 +msgid "EAP" +msgstr "EAP" -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Chyba při ukládání připojení" +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 +msgid "PAP" +msgstr "PAP" -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "Vlastnost „%s“ / „%s“ je neplatná: %d" +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Došlo k neznámé chybě." +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Chyba při inicializaci editoru" +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:885 -msgid "The connection editor dialog could not be initialized due to an unknown error." -msgstr "Rozhraní editoru připojení nemohlo být kvůli neznámé chybě inicializováno." +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "žádné" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Nelze vytvořit nové připojení" +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Úprava metod ověření PPP pro %s" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Nelze upravit nové připojení" +#: ../src/connection-editor/page-ppp.c:283 +msgid "PPP Settings" +msgstr "Nastavení PPP" -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "Nelze upravit připojení" +#: ../src/connection-editor/page-ppp.c:285 +msgid "Could not load PPP user interface." +msgstr "Nelze nahrát uživatelské rozhraní PPP." -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Smazání připojení selhalo" +#: ../src/connection-editor/page-vpn.c:114 +msgid "Could not load VPN user interface." +msgstr "Nelze nahrát uživatelské rozhraní VPN." -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:129 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Jste si jisti, že chcete smazat připojení %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "Nelze nalézt službu zásuvných modulů VPN pro „%s“." -#: ../src/connection-editor/nm-connection-list.c:929 -#: ../src/connection-editor/vpn-helpers.c:228 -msgid "Cannot import VPN connection" -msgstr "Nelze importovat připojení k VPN" +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 +#, c-format +msgid "VPN connection %d" +msgstr "Připojení k VPN %d" -#: ../src/connection-editor/nm-connection-list.c:931 +#: ../src/connection-editor/page-vpn.c:249 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2029,79 +2199,91 @@ "\n" "Chyba: žádný typ služby VPN." -#: ../src/connection-editor/nm-connection-list.c:944 -msgid "Could not edit imported connection" -msgstr "Nelze upravit importované připojení" +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "Vyberte typ připojení VPN" -#: ../src/connection-editor/nm-connection-list.c:1125 -msgid "Name" -msgstr "Název" +#: ../src/connection-editor/page-vpn.c:275 +msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." +msgstr "Vyberte typ VPN, který si přejete použít pro nové připojení. Pokud typ připojení k VPN, který si přejete vytvořit, není v seznamu, nemáte možná nainstalován správný zásuvný modul VPN." -#: ../src/connection-editor/nm-connection-list.c:1137 -msgid "Last Used" -msgstr "Poslední použité" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "výchozí" -#: ../src/connection-editor/nm-connection-list.c:1263 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "Žádný zásuvný modul VPN není k dispozici. Toto tlačítko bude aktivní po instalaci modulu VPN." +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1274 -msgid "_Edit" -msgstr "Upr_avit" +#: ../src/connection-editor/page-wifi.c:465 +msgid "Could not load Wi-Fi user interface." +msgstr "Nelze nahrát uživatelské rozhraní Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "Edit the selected connection" -msgstr "Upravit zvolené připojení" +#: ../src/connection-editor/page-wifi.c:670 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Připojení Wi-Fi %d" -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "_Edit..." -msgstr "Upr_avit…" +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Žádné" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "Authenticate to edit the selected connection" -msgstr "Před úpravou zvoleného připojení musíte být ověřeni" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "Klíč WEP 40/128 bitů (Hex nebo ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1292 -msgid "_Delete" -msgstr "O_dstranit" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "Heslo WEP 128 bitů" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "Delete the selected connection" -msgstr "Odstranit zvolené připojení" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "Dynamické WEP (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "_Delete..." -msgstr "O_dstranit…" +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "WPA & WPA2 Personal" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "Authenticate to delete the selected connection" -msgstr "Před smazáním zvoleného připojení musíte být ověřeni" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA & WPA2 Enterprise" -#: ../src/connection-editor/nm-connection-list.c:1574 -msgid "Error creating connection" -msgstr "Chyba při vytváření připojení" +#: ../src/connection-editor/page-wifi-security.c:396 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "Nelze nahrát uživatelské rozhraní zabezpečení Wi-Fi. Chybí volby Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1575 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Není známo, jak vytvořit připojení „%s“" +#: ../src/connection-editor/page-wifi-security.c:406 +msgid "Wi-Fi Security" +msgstr "Zabezpečení Wi-Fi" -#: ../src/connection-editor/nm-connection-list.c:1630 -#: ../src/connection-editor/nm-connection-list.c:1642 -msgid "Error editing connection" -msgstr "Chyba při úpravě připojení" +#: ../src/connection-editor/page-wifi-security.c:408 +msgid "Could not load Wi-Fi security user interface." +msgstr "Nelze nahrát uživatelské rozhraní zabezpečení Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1631 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Není známo, jak upravit připojení „%s“" +#: ../src/connection-editor/page-wimax.c:161 +msgid "Could not load WiMAX user interface." +msgstr "Nelze nahrát uživatelské rozhraní WiMAX." -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/page-wimax.c:290 #, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Připojení s UUID „%s“ nebylo nalezeno" +msgid "WiMAX connection %d" +msgstr "Připojení WinMAX %d" + +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Nelze importovat připojení k VPN" -#: ../src/connection-editor/vpn-helpers.c:230 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN connection information\n" @@ -2112,29 +2294,29 @@ "\n" "Chyba: %s." -#: ../src/connection-editor/vpn-helpers.c:263 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Vyberte soubor k importu" -#: ../src/connection-editor/vpn-helpers.c:314 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Soubor s názvem „%s“ už existuje." -#: ../src/connection-editor/vpn-helpers.c:316 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "_Nahradit" -#: ../src/connection-editor/vpn-helpers.c:318 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Chcete nahradit %s připojením k VPN, které jste právě uložili?" -#: ../src/connection-editor/vpn-helpers.c:354 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "Nelze exportovat připojení k VPN" -#: ../src/connection-editor/vpn-helpers.c:356 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2145,130 +2327,147 @@ "\n" "Chyba: %s." -#: ../src/connection-editor/vpn-helpers.c:391 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Exportovat připojení k VPN…" -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Selhalo vytvoření připojení PAN: %s" +#: ../src/ethernet-dialog.c:91 +#: ../src/ethernet-dialog.c:99 +msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." +msgstr "Applet NetworkManager nemohl nalézt některé požadované zdroje (soubor .ui nebyl nalezen)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Váš telefon je nyní připravený k použití!" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "Nastavení Bluetooth není možné (selhalo připojení k D-Bus: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "Síť %s" +msgid "Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "Nastavení Bluetooth není možné (nebyl nalezen NetworkManager: (%s) %s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Použít váš mobilní telefon jako síťové zařízení (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Přístupovat k Internetu prostřednictvím vašeho mobilního telefonu (DUN)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Chyba: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Selhalo vytvoření připojení DUN: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Váš telefon je nyní připravený k použití!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Průvodce mobilním připojením byl zrušen" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Neznámý typ telefonního zařízení (nejedná se o GSM ani CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "neznámý typ modemu." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "připojení k telefonu selhalo." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "neočekávaně odpojeno od telefonu." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "vypršel časový limit při zjišťování podrobností o telefonu." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Zjišťuje se nastavení telefonu…" -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "nelze najít zařízení Bluetooth." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection." msgstr "Před nastavováním vytáčeného připojení k síti musí být povolen výchozí adaptér Bluetooth. " -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "Konfigurace Bluetooth není možná (selhalo připojení k D-Bus: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Konfigurace Bluetooth není možná (selhalo vytvoření proxy D-Bus)." +msgid "Failed to create PAN connection: %s" +msgstr "Selhalo vytvoření připojení PAN: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "Konfigurace Bluetooth není možná (nebyl nalezen NetworkManager: %s)." +msgid "%s Network" +msgstr "Síť %s" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Použít váš mobilní telefon jako síťové zařízení (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Automaticky odemykat toto zařízení" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Přístupovat k Internetu prostřednictvím vašeho mobilního telefonu (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "Odemkno_ut" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Informace o spojení" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Aktivní připojení k síti" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "Your mobile broadband connection is configured with the following settings:" msgstr "Vaše mobilní širokopásmové připojení je nastaveno s těmito parametry:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Vaše zařízení:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Váš poskytovatel:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Váš tarif:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose \"Network Connections\" from the System >> Preferences menu." msgstr "S vámi zvoleným nastavením bude navázáno spojení k vašemu poskytovateli mobilního připojení. Pokud připojení selže, nebo nemůžete přistupovat ke zdrojům v síti, zkontrolujte prosím svá nastavení. Změny v nastavení připojení provedete volbou „Připojení k síti“ z nabídky Systém >> Nastavení." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Potvrdit volby širokopásmového připojení" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Není v seznamu" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "_Vybrat tarif:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "Zvolený přístupový bod vašeho tarifu (_APN):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity.\n" "\n" @@ -2278,158 +2477,158 @@ "\n" "Nejste-li si jistí přístupovým bodem, obraťte se na svého poskytovatele." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Vyberte svůj tarif" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Můj plán není v seznamu…" -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "Vybrat poskytovate_le ze seznamu:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Poskytovatel" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Ne_mohu najít svého poskytovatele, chci jej zadat ručně:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Poskytovatel:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Můj poskytovatel používá technologii GSM (GPRS, EDGE, UTMS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Můj poskytovatel používá technologii CDMA (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Vyberte svého poskytovatele" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Seznam zemí: nebo regionů:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "Země nebo region" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "Moje země není v seznamu" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Zvolte zemi nebo region svého poskytovatele" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Nainstalované zařízení GSM" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Nainstalované zařízení CDMA" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network." msgstr "Tento pomocník vám pomůže snadno nastavit širokopásmové připojení k mobilní (3G) síti." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Budete potřebovat tyto informace:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "Název poskytovatele širokopásmového připojení" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "Název vašeho tarifu" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(v některých případech) Přístupový bod (APN) pro váš tarif" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Vytvořit připojení pro _toto mobilní širokopásmové zařízení:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Jakékoli zařízení" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Nastavit mobilní širokopásmové připojení" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Nové mobilní širokopásmové připojení" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "Nový…" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "_Vytvořit" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format -msgid "Passwords or encryption keys are required to access the wireless network '%s'." -msgstr "Pro přístup k bezdrátové síti „%s“ jsou vyžadována hesla nebo šifrovací klíče." +msgid "Passwords or encryption keys are required to access the Wi-Fi network '%s'." +msgstr "Pro přístup k síti Wi-Fi „%s“ jsou vyžadována hesla nebo šifrovací klíče." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 -msgid "Wireless Network Authentication Required" -msgstr "K bezdrátové síti je vyžadováno ověření" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 -msgid "Authentication required by wireless network" -msgstr "K bezdrátové síti je vyžadováno ověření" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 -msgid "Create New Wireless Network" -msgstr "Vytvořit novou bezdrátovou síť" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 -msgid "New wireless network" -msgstr "Nová bezdrátová síť" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "Enter a name for the wireless network you wish to create." -msgstr "Zadejte název bezdrátové sítě, kterou chcete vytvořit." - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 -msgid "Connect to Hidden Wireless Network" -msgstr "Připojit se ke skryté bezdrátové síti" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 -msgid "Hidden wireless network" -msgstr "Skrytá bezdrátová síť" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Enter the name and security details of the hidden wireless network you wish to connect to." -msgstr "Zadejte název a podrobnosti o zabezpečení skryté bezdrátové sítě, ke které se chcete připojit." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" +msgstr "K síti Wi-Fi je vyžadováno ověření" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" +msgstr "Síť Wi-Fi vyžadovuje ověření" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" +msgstr "Vytvořit novou síť Wi-Fi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" +msgstr "Nová síť Wi-Fi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "Zadejte název sítě Wi-Fi, kterou chcete vytvořit." + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" +msgstr "Připojit se ke skryté síti Wi-Fi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" +msgstr "Skrytá síť Wi-Fi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 +msgid "Enter the name and security details of the hidden Wi-Fi network you wish to connect to." +msgstr "Zadejte název a podrobnosti o zabezpečení skryté sítě Wi-Fi, ke které se chcete připojit." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" -msgstr "_Bezdrátové zabezpečení:" +msgid "Wi-Fi _security:" +msgstr "Zabezpečení _Wi-Fi:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" -msgstr "Připoje_ní:" +msgid "C_onnection:" +msgstr "_Připojení:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" -msgstr "Bezdrátový _adaptér:" +msgid "Wi-Fi _adapter:" +msgstr "_Adaptér Wi-Fi:" #: ../src/main.c:73 msgid "Usage:" @@ -2471,10 +2670,6 @@ msgid "HSPA" msgstr "HSPA" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "není povoleno" @@ -2527,31 +2722,49 @@ msgid "Default" msgstr "Výchozí" -#: ../src/wired-dialog.c:91 -#: ../src/wired-dialog.c:99 -msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." -msgstr "Applet NetworkManager nemohl nalézt některé požadované zdroje (soubor .ui nebyl nalezen)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "Připojení %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Nevybrán žádný certifikát certifikační autority" -#: ../src/wireless-security/eap-method.c:280 -msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue wireless networks. Would you like to choose a Certificate Authority certificate?" -msgstr "Nepoužívání certifikátu certifikační autority (CA) může vést k nezabezpečenému připojení nebo neoprávněnému přístupu k bezdrátové síti. Chtěli byste vybrat certifikát certifikační autority?" +#: ../src/wireless-security/eap-method.c:276 +msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate Authority certificate?" +msgstr "Nepoužívání certifikátu certifikační autority (CA) může vést k nezabezpečenému připojení nebo neoprávněnému přístupu k síti Wi-Fi. Chtěli byste vybrat certifikát certifikační autority?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Vyberte certifikát CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Soukromé klíče DER, PEM nebo PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Certifikáty DER nebo PEM (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Vyberte soubor PAC…" + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "Soubory PAC (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Všechny soubory" + #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Anonymní" @@ -2584,23 +2797,6 @@ msgid "Allow automatic PAC pro_visioning" msgstr "Po_volit automatické nastavení PAC" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Vyberte soubor PAC…" - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "Soubory PAC (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Všechny soubory" - #: ../src/wireless-security/eap-method-peap.c:263 #: ../src/wireless-security/wireless-security.c:382 msgid "MD5" @@ -2736,7 +2932,7 @@ #: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" -msgstr "_Zobrazit klíč" +msgstr "Z_obrazit klíč" #: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" diff -Nru network-manager-applet-0.9.4.1/po/da.po network-manager-applet-0.9.6.2+git201210311320.2620/po/da.po --- network-manager-applet-0.9.4.1/po/da.po 2012-03-19 14:53:53.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/da.po 2012-10-31 13:20:57.000000000 +0000 @@ -15,8 +15,8 @@ msgstr "" "Project-Id-Version: NetworkManager\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-19 09:54+0100\n" -"PO-Revision-Date: 2012-03-18 16:57+0100\n" +"POT-Creation-Date: 2012-09-22 12:24+0200\n" +"PO-Revision-Date: 2012-09-16 15:05+0200\n" "Last-Translator: Ask Hjorth Larsen\n" "Language-Team: Danish \n" "Language: da\n" @@ -27,517 +27,902 @@ "X-Poedit-Language: Danish\n" #: ../nm-applet.desktop.in.h:1 +msgid "Network" +msgstr "Netværk" + +#: ../nm-applet.desktop.in.h:2 msgid "Manage your network connections" msgstr "Håndter dine netværksforbindelser" -#: ../nm-applet.desktop.in.h:2 -msgid "Network" -msgstr "Netværk" +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Netværksforbindelser" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "Afbryd oprettelse til trådløs forbindelse" +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Rediger og ændr dine indstillinger til netværksforbindelser" -#: ../nm-applet.schemas.in.h:2 +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Deaktivér påmindelse ved etableret forbindelse" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "" +"Sæt denne til sand for at deaktivere påmindelser ved oprettelse af " +"forbindelse til et netværk." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Deaktivér påmindelse ved afbrudt forbindelse" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "" -"Vælg TRUE for at deaktivere påmindelser ved oprettelse af forbindelse til " -"netværk." - -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "" -"Vælg TRUE for at deaktivere påmindelser ved afbrydelse af forbindelse til " -"netværk." +"Sæt denne til sand for at deaktivere påmindelser ved afbrydelse af " +"forbindelse til et netværk." -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Deaktivér VPN-påmindelser" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." msgstr "" -"Vælg TRUE for at deaktivere påmindelser, når trådløse netværk er " -"tilgængelige." +"Sæt denne til sand for at deaktivere påmindelser når der forbindes til et " +"VPN, eller når forbindelsen afbrydes." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 +msgid "Suppress networks available notifications" +msgstr "Tilbagehold påmindelser om tilgængelige netværk" -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#, fuzzy msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set this to true to disable notifications when Wi-Fi networks are available." msgstr "" -"Vælg TRUE for at deaktivere oprettelse af adhoc-netværk, når dette program " -"bruges." +"Sæt denne til sand for at deaktivere påmindelser, når der er tilgængelige " +"trådløse netværk." -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Stempel" -#: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" -msgstr "Tilbagehold påmindelser om tilgængelige netværk" - -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "Bliver brugt til at bestemme, hvorvidt indstillinger skal genbruges til en " "ny version." -#: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "Rediger og ændr dine indstillinger til netværksforbindelser" +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "Afbryd oprettelse til trådløs forbindelse" -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -msgid "Network Connections" -msgstr "Netværksforbindelser" +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +msgid "" +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "" +"Sæt denne til sand for at deaktivere oprettelse af adhoc-netværk, når " +"panelprogrammet bruges." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Tilgængelig" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ignorér CA-certifikat" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Du er nu tilsluttet \"%s\"." +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Sæt denne til sand for at deaktivere advarsler om CA-certifikater i EAP-" +"godkendelsen." -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Forbindelse oprettet" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Sæt denne til sand for at deaktivere advarsler om CA-certifikater i fase 2 " +"af EAP-godkendelsen." -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Du er nu forbundet til det mobile bredbåndsnetværk." +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +#, fuzzy +msgid "802.1X authentication" +msgstr "Kablet 802.1x-godkendelse" + +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_Netværksnavn:" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "Kunne ikke tilføje/aktivere forbindelse" + +#: ../src/applet.c:514 ../src/applet.c:558 ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Ukendt fejl" + +#: ../src/applet.c:517 ../src/applet.c:587 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Forbindelsesfejl" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "Frakobling af enhed mislykkedes" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "Frakoblingsfejl" + +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "Aktivering af forbindelse mislykkedes" + +#: ../src/applet.c:948 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "Vis ikke denne besked igen" + +#: ../src/applet.c:1037 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Forbereder mobil bredbåndsforbindelse \"%s\"…" +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" fejlede, fordi netværksforbindelsen blev afbrudt." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1040 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Konfigurerer mobil bredbåndsforbindelse \"%s\"…" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" fejlede, fordi VPN-tjenesten stoppede uventet." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1043 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "Der kræves brugergodkendelse for mobil bredbåndsforbindelse \"%s\"…" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" fejlede, fordi VPN-tjenesten returnerede ugyldig " +"konfiguration." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:1046 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Anmoder om en netværksadresse for \"%s\"…" +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" fejlede, fordi forsøget på at forbinde overskred " +"tidsgrænsen." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1049 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "Mobil bredbåndsforbindelse \"%s\" er aktiv" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" fejlede, fordi VPN-tjenesten ikke startede i tide." -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1052 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" fejlede, fordi VPN-tjenestens opstart fejlede." -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:424 +#: ../src/applet.c:1055 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Mobilt bredbånd (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" fejlede, fordi der ikke fandtes nogen gyldige VPN-" +"koder." -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -#: ../src/connection-editor/nm-connection-list.c:1510 -msgid "Mobile Broadband" -msgstr "Mobilt bredbånd" +#: ../src/applet.c:1058 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" fejlede på grund af ugyldige VPN-koder." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Ny mobil bredbåndsforbindelse (CDMA)..." +#: ../src/applet.c:1065 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" fejlede." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Du er nu tilsluttet CDMA-netværket." +#: ../src/applet.c:1083 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" blev afbrudt, fordi netværksforbindelsen blev " +"afbrudt." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1086 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Mobil bredbåndsforbindelsen \"%s\" er aktiv: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" blev afbrudt, fordi VPN-tjenesten stoppede." -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "roaming" +#: ../src/applet.c:1092 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" blev afbrudt." -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "CDMA-netværk." +#: ../src/applet.c:1122 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN-forbindelsen er blevet etableret.\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Du er nu registreret på hjemmenetværket." +#: ../src/applet.c:1124 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN-forbindelsen er blevet etableret.\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Du er nu registreret på et roamingnetværk." +#: ../src/applet.c:1126 +msgid "VPN Login Message" +msgstr "Log ind-meddelelse for VPN" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1132 ../src/applet.c:1140 ../src/applet.c:1190 +msgid "VPN Connection Failed" +msgstr "VPN-forbindelse fejlede" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Ny mobil bredbåndsforbindelse (GSM)..." +#: ../src/applet.c:1197 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" fejlede, fordi VPN-tjenestens opstart fejlede.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Du er nu tilsluttet GSM-netværket." +#: ../src/applet.c:1200 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN-forbindelsen \"%s\" kunne ikke starte.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "PIN-kode kræves" +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "enheden er ikke klar (firmware mangler)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "Der skal bruges en PIN-kode til den mobile bredbåndsenhed" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "enhed er ikke klar" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "PIN-kode til SIM-kortet \"%s\" på \"%s\"" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "ikke tilsluttet" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "Forkert PIN-kode; kontakt venligst din udbyder." +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "Afbryd" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "Forkert PUK-kode; kontakt venligst din udbyder." +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "enhed er ikke redigeret" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "Sender oplåsnings-kode..." +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "Ingen tilgængelige netværksenheder" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "SIM PIN-oplåsning kræves" +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "_VPN-forbindelser" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "SIM PIN-oplåsning kræves" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "_Konfigurér VPN..." -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "Mobil bredbåndsenhed \"%s\" kræver en SIM PIN-kode før den kan bruges." - -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "PIN-kode:" - -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "Vis PIN-kode" - -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "SIM PUK oplåsning kræves" - -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "SIM PUK oplåsning kræves" +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "_Afbryd VPN" -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "Mobil bredbåndsenhed \"%s\" kræver en SIM PUK-kode før den kan bruges." +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "Netværkshåndtering kører ikke..." -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "PUK-kode:" +#: ../src/applet.c:1854 ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "Netværk deaktiveret" -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "Ny PIN-kode:" +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "Aktivér _netværk" -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "Gentag ny PIN-kode:" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +#, fuzzy +msgid "Enable _Wi-Fi" +msgstr "Aktivér _trådløst netværk" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "Vis PIN-/PUK-koder" +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "Aktiver _mobilt bredbånd" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "GSM-netværk." +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Aktiver WiMA_X mobilt bredbånd" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "Automatisk ethernet" +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "Aktivér _påmindelser" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "Kablede netværk (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "Forbindelses_information" -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "Kablet netværk (%s)" +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "Håndter forbindelser..." -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "Kablede netværk" +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "_Hjælp" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "Kablet netværk" +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "_Om" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 -msgid "disconnected" -msgstr "ikke tilsluttet" +#: ../src/applet.c:2335 +msgid "Disconnected" +msgstr "Afbrudt" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "Du er nu tilsluttet kablet netværk." +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "Netværksforbindelsen er blevet afbrudt." -#: ../src/applet-device-wired.c:300 +#: ../src/applet.c:2519 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Forbereder kablet netværksforbindelse \"%s\"…" +msgid "Preparing network connection '%s'..." +msgstr "Forbereder netværksforbindelse \"%s\"…" -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2522 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "Konfigurerer kablet netværksforbindelse \"%s\"…" +msgid "User authentication required for network connection '%s'..." +msgstr "Der kræves brugergodkendelse til netværksforbindelse \"%s\"…" -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2525 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:541 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "Der kræves brugergodkendelse til kablet netværksforbindelse \"%s\"…" +msgid "Requesting a network address for '%s'..." +msgstr "Anmoder om en netværksadresse for \"%s\"…" -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2528 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "Anmoder om en kablet netværksadresse for \"%s\"…" +msgid "Network connection '%s' active" +msgstr "Netværksforbindelse \"%s\" er aktiv" -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2611 #, c-format -msgid "Wired network connection '%s' active" -msgstr "Kablet netværksforbindelse \"%s\" er aktiv" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "DSL-godkendelse" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "_Forbind til skjult trådløs netværk..." - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "Opret _nyt trådløst netværk..." - -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(ingen)" +msgid "Starting VPN connection '%s'..." +msgstr "Starter VPN-forbindelse \"%s\"…" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet.c:2614 #, c-format -msgid "Wireless Networks (%s)" -msgstr "Trådløse netværk (%s)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "Der kræves brugergodkendelse til VPN-forbindelse \"%s\"…" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet.c:2617 #, c-format -msgid "Wireless Network (%s)" -msgstr "Trådløst netværk (%s)" +msgid "Requesting a VPN address for '%s'..." +msgstr "Anmoder om en VPN-adresse for \"%s\"…" -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Trådløst netværk" -msgstr[1] "Trådløse netværk" +#: ../src/applet.c:2620 +#, c-format +msgid "VPN connection '%s' active" +msgstr "VPN-forbindelse \"%s\" er aktiv" -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "trådløs er deaktiveret" +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "Ingen netværksforbindelse" -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "trådløst er deaktiveret af hardwareknap" +#: ../src/applet.c:3362 +msgid "NetworkManager Applet" +msgstr "Panelprogram til Netværkhåndtering" -#: ../src/applet-device-wifi.c:902 -msgid "More networks" -msgstr "Flere netværk" +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:450 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Tilgængelig" -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" -msgstr "Trådløse netværk tilgængelige" +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:492 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "Du er nu tilsluttet \"%s\"." -#: ../src/applet-device-wifi.c:1082 -msgid "Use the network menu to connect to a wireless network" -msgstr "Brug netværksmenuen til at forbinde til et trådløst netværk" +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:496 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "Forbindelse oprettet" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 -msgid "Don't show this message again" -msgstr "Vis ikke denne besked igen" +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Du er nu forbundet til det mobile bredbåndsnetværk." -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:464 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Du er nu tilsluttet det trådløse netværk \"%s\"." +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Forbereder mobil bredbåndsforbindelse \"%s\"…" -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:467 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Forbereder trådløs netværksforbindelse \"%s\"…" +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Konfigurerer mobil bredbåndsforbindelse \"%s\"…" -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:538 ../src/applet-device-wimax.c:470 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Konfigurerer trådløs netværksforbindelse \"%s\"…" +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "Der kræves brugergodkendelse for mobil bredbåndsforbindelse \"%s\"…" -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:559 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "Der kræves brugergodkendelse til trådløst netværk \"%s\"…" +msgid "Mobile broadband connection '%s' active" +msgstr "Mobil bredbåndsforbindelse \"%s\" er aktiv" -#: ../src/applet-device-wifi.c:1317 -#, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Anmoder om en trådløs netværksadresse for \"%s\"…" +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:714 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:396 +#: ../src/applet-dialogs.c:424 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "Trådløs netværksforbindelse \"%s\" er aktiv: %s (%d%%)" +msgid "Mobile Broadband (%s)" +msgstr "Mobilt bredbånd (%s)" -#: ../src/applet-device-wifi.c:1343 -#, c-format -msgid "Wireless network connection '%s' active" -msgstr "Trådløs netværksforbindelse \"%s\" er aktiv" +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:398 +#: ../src/connection-editor/new-connection.c:87 +#: ../src/connection-editor/page-mobile.c:388 +msgid "Mobile Broadband" +msgstr "Mobilt bredbånd" -#: ../src/applet-device-wimax.c:231 -#, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "WiMAX mobilt bredbånd (%s)" +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Ny mobil bredbåndsforbindelse (CDMA)..." -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr "WiMAX mobilt bredbånd" +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Du er nu tilsluttet CDMA-netværket." -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "WiMAX er deaktiveret" +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:554 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "Mobil bredbåndsforbindelsen \"%s\" er aktiv: (%d%%%s%s)" -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX er deaktiveret af hardwareknap" +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:557 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "roaming" -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "Du er nu tilsluttet WiMAX-netværket." +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "CDMA-netværk." -#: ../src/applet-dialogs.c:57 -msgid "Error displaying connection information:" -msgstr "Fejl ved visning af forbindelsesinformation:" +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on the home network." +msgstr "Du er nu registreret på hjemmenetværket." -#: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:313 -#: ../src/libnm-gtk/nm-wireless-dialog.c:948 -#: ../src/wireless-security/wireless-security.c:406 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1208 +msgid "You are now registered on a roaming network." +msgstr "Du er nu registreret på et roamingnetværk." -#: ../src/applet-dialogs.c:111 -msgid "Dynamic WEP" -msgstr "Dynamisk WEP" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "Automatisk ethernet" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 -#: ../src/applet-dialogs.c:247 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-ethernet.c:205 +#, fuzzy, c-format +msgid "Ethernet Networks (%s)" +msgstr "Kablede netværk (%s)" -#: ../src/applet-dialogs.c:243 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-ethernet.c:207 +#, fuzzy, c-format +msgid "Ethernet Network (%s)" +msgstr "Kablet netværk (%s)" -#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 -#: ../src/connection-editor/page-wireless-security.c:265 -#: ../src/libnm-gtk/nm-wireless-dialog.c:905 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "Ingen" +#: ../src/applet-device-ethernet.c:210 +#, fuzzy +msgid "Ethernet Networks" +msgstr "Kablede netværk" -#: ../src/applet-dialogs.c:277 -#, c-format -msgid "%s (default)" -msgstr "%s (standard)" +#: ../src/applet-device-ethernet.c:212 +#, fuzzy +msgid "Ethernet Network" +msgstr "Kablet netværk" -#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 -#, c-format -msgid "%u Mb/s" -msgstr "%u Mb/s" +#: ../src/applet-device-ethernet.c:274 +#, fuzzy +msgid "You are now connected to the ethernet network." +msgstr "Du er nu tilsluttet kablet netværk." -#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 -msgctxt "Speed" -msgid "Unknown" -msgstr "Ukendt" +#: ../src/applet-device-ethernet.c:300 +#, fuzzy, c-format +msgid "Preparing ethernet network connection '%s'..." +msgstr "Forbereder kablet netværksforbindelse \"%s\"…" -#: ../src/applet-dialogs.c:361 -#, c-format -msgid "%d dB" -msgstr "%d dB" +#: ../src/applet-device-ethernet.c:303 +#, fuzzy, c-format +msgid "Configuring ethernet network connection '%s'..." +msgstr "Konfigurerer kablet netværksforbindelse \"%s\"…" -#: ../src/applet-dialogs.c:363 -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "ukendt" +#: ../src/applet-device-ethernet.c:306 +#, fuzzy, c-format +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "Der kræves brugergodkendelse til kablet netværksforbindelse \"%s\"…" -#: ../src/applet-dialogs.c:375 -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "ukendt" +#: ../src/applet-device-ethernet.c:309 +#, fuzzy, c-format +msgid "Requesting an ethernet network address for '%s'..." +msgstr "Anmoder om en kablet netværksadresse for \"%s\"…" -#: ../src/applet-dialogs.c:410 -#, c-format +#: ../src/applet-device-ethernet.c:313 +#, fuzzy, c-format +msgid "Ethernet network connection '%s' active" +msgstr "Kablet netværksforbindelse \"%s\" er aktiv" + +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "DSL-godkendelse" + +#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:717 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" + +#. Default connection item +#: ../src/applet-device-gsm.c:463 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Ny mobil bredbåndsforbindelse (GSM)..." + +#: ../src/applet-device-gsm.c:497 +msgid "You are now connected to the GSM network." +msgstr "Du er nu tilsluttet GSM-netværket." + +#: ../src/applet-device-gsm.c:658 +msgid "PIN code required" +msgstr "PIN-kode kræves" + +#: ../src/applet-device-gsm.c:666 +msgid "PIN code is needed for the mobile broadband device" +msgstr "Der skal bruges en PIN-kode til den mobile bredbåndsenhed" + +#: ../src/applet-device-gsm.c:787 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "PIN-kode til SIM-kortet \"%s\" på \"%s\"" + +#: ../src/applet-device-gsm.c:879 +msgid "Wrong PIN code; please contact your provider." +msgstr "Forkert PIN-kode; kontakt venligst din udbyder." + +#: ../src/applet-device-gsm.c:902 +msgid "Wrong PUK code; please contact your provider." +msgstr "Forkert PUK-kode; kontakt venligst din udbyder." + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:929 +msgid "Sending unlock code..." +msgstr "Sender oplåsnings-kode..." + +#: ../src/applet-device-gsm.c:992 +msgid "SIM PIN unlock required" +msgstr "SIM PIN-oplåsning kræves" + +#: ../src/applet-device-gsm.c:993 +msgid "SIM PIN Unlock Required" +msgstr "SIM PIN-oplåsning kræves" + +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:995 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "Mobil bredbåndsenhed \"%s\" kræver en SIM PIN-kode før den kan bruges." + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:997 +msgid "PIN code:" +msgstr "PIN-kode:" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:1001 +msgid "Show PIN code" +msgstr "Vis PIN-kode" + +#: ../src/applet-device-gsm.c:1004 +msgid "SIM PUK unlock required" +msgstr "SIM PUK oplåsning kræves" + +#: ../src/applet-device-gsm.c:1005 +msgid "SIM PUK Unlock Required" +msgstr "SIM PUK oplåsning kræves" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1007 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "Mobil bredbåndsenhed \"%s\" kræver en SIM PUK-kode før den kan bruges." + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1009 +msgid "PUK code:" +msgstr "PUK-kode:" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1012 +msgid "New PIN code:" +msgstr "Ny PIN-kode:" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1014 +msgid "Re-enter new PIN code:" +msgstr "Gentag ny PIN-kode:" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1019 +msgid "Show PIN/PUK codes" +msgstr "Vis PIN-/PUK-koder" + +#: ../src/applet-device-gsm.c:1201 ../src/applet-device-gsm.c:1207 +msgid "GSM network." +msgstr "GSM-netværk." + +#: ../src/applet-device-wifi.c:97 +#, fuzzy +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "_Forbind til skjult trådløs netværk..." + +#: ../src/applet-device-wifi.c:148 +#, fuzzy +msgid "Create _New Wi-Fi Network..." +msgstr "Opret _nyt trådløst netværk..." + +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(ingen)" + +#: ../src/applet-device-wifi.c:790 +#, fuzzy, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "Kablede netværk (%s)" + +#: ../src/applet-device-wifi.c:792 +#, fuzzy, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Kablet netværk (%s)" + +#: ../src/applet-device-wifi.c:794 +#, fuzzy +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Kablet netværk" +msgstr[1] "Kablet netværk" + +#: ../src/applet-device-wifi.c:827 +#, fuzzy +msgid "Wi-Fi is disabled" +msgstr "WiMAX er deaktiveret" + +#: ../src/applet-device-wifi.c:828 +#, fuzzy +msgid "Wi-Fi is disabled by hardware switch" +msgstr "WiMAX er deaktiveret af hardwareknap" + +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "Flere netværk" + +#: ../src/applet-device-wifi.c:1068 +#, fuzzy +msgid "Wi-Fi Networks Available" +msgstr "Trådløse netværk tilgængelige" + +#: ../src/applet-device-wifi.c:1069 +#, fuzzy +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Brug netværksmenuen til at forbinde til et trådløst netværk" + +#: ../src/applet-device-wifi.c:1263 +#, fuzzy, c-format +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Du er nu tilsluttet det trådløse netværk \"%s\"." + +#: ../src/applet-device-wifi.c:1294 +#, fuzzy, c-format +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Forbereder netværksforbindelse \"%s\"…" + +#: ../src/applet-device-wifi.c:1297 +#, fuzzy, c-format +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Konfigurerer kablet netværksforbindelse \"%s\"…" + +#: ../src/applet-device-wifi.c:1300 +#, fuzzy, c-format +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "Der kræves brugergodkendelse til trådløst netværk \"%s\"…" + +#: ../src/applet-device-wifi.c:1303 +#, fuzzy, c-format +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Anmoder om en netværksadresse for \"%s\"…" + +#: ../src/applet-device-wifi.c:1324 +#, fuzzy, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Trådløs netværksforbindelse \"%s\" er aktiv: %s (%d%%)" + +#: ../src/applet-device-wifi.c:1329 +#, fuzzy, c-format +msgid "Wi-Fi network connection '%s' active" +msgstr "Kablet netværksforbindelse \"%s\" er aktiv" + +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Kunne ikke aktivere forbindelse" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Kunne ikke tilføje ny forbindelse" + +#: ../src/applet-device-wimax.c:231 +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "WiMAX mobilt bredbånd (%s)" + +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "WiMAX mobilt bredbånd" + +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "WiMAX er deaktiveret" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX er deaktiveret af hardwareknap" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "Du er nu tilsluttet WiMAX-netværket." + +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "Fejl ved visning af forbindelsesinformation:" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:930 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" + +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "Dynamisk WEP" + +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" + +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:887 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "Ingen" + +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (standard)" + +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 +#, c-format +msgid "%u Mb/s" +msgstr "%u Mb/s" + +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "Ukendt" + +#: ../src/applet-dialogs.c:361 +#, c-format +msgid "%d dB" +msgstr "%d dB" + +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "ukendt" + +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "ukendt" + +#: ../src/applet-dialogs.c:410 +#, c-format msgid "Ethernet (%s)" msgstr "Ethernet (%s)" @@ -717,464 +1102,393 @@ msgid "Password:" msgstr "Adgangskode:" -#: ../src/applet.c:995 -#, c-format +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." msgstr "" -"\n" -"VPN-forbindelsen \"%s\" fejlede, fordi netværksforbindelsen blev afbrudt." +"IP-adresser identificerer din computer på netværket. Klik \"Tilføj\"-knappen " +"for at tilføje en IP-adresse." -#: ../src/applet.c:998 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"VPN-forbindelsen \"%s\" fejlede, fordi VPN-tjenesten stoppede uventet." +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "Ig_nore automatically obtained routes" +msgstr "Ig_norér automatisk fundne ruter" -#: ../src/applet.c:1001 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"VPN-forbindelsen \"%s\" fejlede, fordi VPN-tjenesten returnerede ugyldig " -"konfiguration." +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +msgid "_Use this connection only for resources on its network" +msgstr "_Brug kun denne forbindelse til ressourcer på dens netværk" -#: ../src/applet.c:1004 -#, c-format +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." +"If enabled, this connection will never be used as the default network " +"connection." msgstr "" -"\n" -"VPN-forbindelsen \"%s\" fejlede, fordi forsøget på at forbinde overskred " -"tidsgrænsen." +"Hvis aktiveret, så vil denne forbindelse aldrig blive brugt som " +"standardnetværksforbindelse." -#: ../src/applet.c:1007 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"VPN-forbindelsen \"%s\" fejlede, fordi VPN-tjenesten ikke startede i tide." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " -#: ../src/applet.c:1010 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"VPN-forbindelsen \"%s\" fejlede, fordi VPN-tjenestens opstart fejlede." +#: ../src/connection-editor/ce-new-connection.ui.h:2 +#, fuzzy +msgid "Choose a Connection Type" +msgstr "Vælg type af VPN-forbindelse" -#: ../src/applet.c:1013 -#, c-format +#: ../src/connection-editor/ce-new-connection.ui.h:3 +#, fuzzy msgid "" +"Select the type of connection you wish to create.\n" "\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." msgstr "" -"\n" -"VPN-forbindelsen \"%s\" fejlede, fordi der ikke fandtes nogen gyldige VPN-" -"koder." +"Vælg den type VPN du ønsker at bruge til den nye forbindelse. Hvis typen af " +"VPN-forbindelse du ønsker at oprette ikke fremgår af listen, har du måske " +"ikke installeret det korrekte VPN-udvidelsesmodul." -#: ../src/applet.c:1016 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"VPN-forbindelsen \"%s\" fejlede på grund af ugyldige VPN-koder." +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Opret…" -#: ../src/applet.c:1023 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"VPN-forbindelsen \"%s\" fejlede." +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "automatisk" -#: ../src/applet.c:1041 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "Kunne ikke opdatere forbindelseskoder på grund af en ukendt fejl." + +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" msgstr "" -"\n" -"VPN-forbindelsen \"%s\" blev afbrudt, fordi netværksforbindelsen blev " -"afbrudt." -#: ../src/applet.c:1044 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" msgstr "" -"\n" -"VPN-forbindelsen \"%s\" blev afbrudt, fordi VPN-tjenesten stoppede." -#: ../src/applet.c:1050 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" msgstr "" -"\n" -"VPN-forbindelsen \"%s\" blev afbrudt." -#: ../src/applet.c:1084 -msgid "VPN Login Message" -msgstr "Log ind-meddelelse for VPN" +#: ../src/connection-editor/ce-page-bond.ui.h:4 +#, fuzzy +msgid "Broadcast" +msgstr "Rundsendings-adresse:" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 -msgid "VPN Connection Failed" -msgstr "VPN-forbindelse fejlede" +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "" -#: ../src/applet.c:1155 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" msgstr "" -"\n" -"VPN-forbindelsen \"%s\" fejlede, fordi VPN-tjenestens opstart fejlede.\n" -"\n" -"%s" -#: ../src/applet.c:1158 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" msgstr "" -"\n" -"VPN-forbindelsen \"%s\" kunne ikke starte.\n" -"\n" -"%s" -#: ../src/applet.c:1478 -msgid "device not ready (firmware missing)" -msgstr "enheden er ikke klar (firmware mangler)" +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "" -#: ../src/applet.c:1480 -msgid "device not ready" -msgstr "enhed er ikke klar" +#: ../src/connection-editor/ce-page-bond.ui.h:9 +#, fuzzy +msgid "ARP" +msgstr "EAP" -#: ../src/applet.c:1506 -msgid "Disconnect" -msgstr "Afbryd" +#: ../src/connection-editor/ce-page-bond.ui.h:10 +#, fuzzy +msgid "Bonded _connections:" +msgstr "Basisforbindelse:" -#: ../src/applet.c:1520 -msgid "device not managed" -msgstr "enhed er ikke redigeret" +#: ../src/connection-editor/ce-page-bond.ui.h:11 +#, fuzzy +msgid "_Mode:" +msgstr "Til_stand:" -#: ../src/applet.c:1564 -msgid "No network devices available" -msgstr "Ingen tilgængelige netværksenheder" +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "_Redigér" -#: ../src/applet.c:1652 -msgid "_VPN Connections" -msgstr "_VPN-forbindelser" +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "_Slet" -#: ../src/applet.c:1709 -msgid "_Configure VPN..." -msgstr "_Konfigurér VPN..." +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "" -#: ../src/applet.c:1713 -msgid "_Disconnect VPN" -msgstr "_Afbryd VPN" +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "" -#: ../src/applet.c:1811 -msgid "NetworkManager is not running..." -msgstr "Netværkshåndtering kører ikke..." +#: ../src/connection-editor/ce-page-bond.ui.h:16 +#, fuzzy +msgid "_Interface name:" +msgstr "Grænseflade:" -#: ../src/applet.c:1816 ../src/applet.c:2609 -msgid "Networking disabled" -msgstr "Netværk deaktiveret" +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "" -#. 'Enable Networking' item -#: ../src/applet.c:2037 -msgid "Enable _Networking" -msgstr "Aktivér _netværk" +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "" -#. 'Enable Wireless' item -#: ../src/applet.c:2046 -msgid "Enable _Wireless" -msgstr "Aktivér _trådløst netværk" +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "" +"An IP address, or a comma-separated list of IP addresses, to look for when " +"checking the link status." +msgstr "" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 -msgid "Enable _Mobile Broadband" -msgstr "Aktiver _mobilt bredbånd" +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Aktiver WiMA_X mobilt bredbånd" +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "" -#. Toggle notifications item -#: ../src/applet.c:2075 -msgid "Enable N_otifications" -msgstr "Aktivér _påmindelser" +#: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:10 +#: ../src/wireless-security/eap-method-leap.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/ws-leap.ui.h:1 +msgid "_Username:" +msgstr "Br_ugernavn:" -#. 'Connection Information' item -#: ../src/applet.c:2086 -msgid "Connection _Information" -msgstr "Forbindelses_information" +#: ../src/connection-editor/ce-page-dsl.ui.h:2 +msgid "_Service:" +msgstr "_Tjeneste:" -#. 'Edit Connections...' item -#: ../src/applet.c:2096 -msgid "Edit Connections..." -msgstr "Håndter forbindelser..." +#: ../src/connection-editor/ce-page-dsl.ui.h:3 +#: ../src/wireless-security/eap-method-leap.ui.h:3 +#: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 +#: ../src/wireless-security/ws-leap.ui.h:3 +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "_Vis adgangskode" -#. Help item -#: ../src/applet.c:2110 -msgid "_Help" -msgstr "_Hjælp" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:11 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_Adgangskode:" -#. About item -#: ../src/applet.c:2119 -msgid "_About" -msgstr "_Om" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "Automatisk" -#: ../src/applet.c:2296 -msgid "Disconnected" -msgstr "Afbrudt" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Parsnoet kabel (TP)" -#: ../src/applet.c:2297 -msgid "The network connection has been disconnected." -msgstr "Netværksforbindelsen er blevet afbrudt." +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" -#: ../src/applet.c:2478 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Forbereder netværksforbindelse \"%s\"…" +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" -#: ../src/applet.c:2481 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Der kræves brugergodkendelse til netværksforbindelse \"%s\"…" +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" -#: ../src/applet.c:2487 -#, c-format -msgid "Network connection '%s' active" -msgstr "Netværksforbindelse \"%s\" er aktiv" +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" -#: ../src/applet.c:2565 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Starter VPN-forbindelse \"%s\"…" +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" -#: ../src/applet.c:2568 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Der kræves brugergodkendelse til VPN-forbindelse \"%s\"…" +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" -#: ../src/applet.c:2571 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Anmoder om en VPN-adresse for \"%s\"…" +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" -#: ../src/applet.c:2574 -#, c-format -msgid "VPN connection '%s' active" -msgstr "VPN-forbindelse \"%s\" er aktiv" +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Port:" -#: ../src/applet.c:2613 -msgid "No network connection" -msgstr "Ingen netværksforbindelse" +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Hastighed:" -#: ../src/applet.c:3263 -msgid "NetworkManager Applet" -msgstr "Panelprogram til Netværkhåndtering" +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Fuld duple_x" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Lås automatisk denne enhed op" +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "Aut_omatisk forhandling" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "_Lås op" - -#: ../src/info.ui.h:1 -msgid "Active Network Connections" -msgstr "Aktive netværksforbindelser" - -#: ../src/info.ui.h:2 -msgid "Connection Information" -msgstr "Forbindelsesinformation" - -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Kablet 802.1x-godkendelse" - -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:4 -msgid "_Network name:" -msgstr "_Netværksnavn:" - -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "automatisk" - -#: ../src/connection-editor/ce-page.c:318 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "Kunne ikke opdatere forbindelseskoder på grund af en ukendt fejl." +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "_Enheds MAC-adresse:" -#: ../src/connection-editor/ce-ip4-routes.ui.h:1 -#: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 -msgid "" -"IP addresses identify your computer on the network. Click the \"Add\" " -"button to add an IP address." -msgstr "" -"IP-adresser identificerer din computer på netværket. Klik \"Tilføj\"-knappen " -"for at tilføje en IP-adresse." +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "_Klonet MAC-adresse:" -#: ../src/connection-editor/ce-ip4-routes.ui.h:2 -#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 msgid "" -"If enabled, this connection will never be used as the default network " -"connection." +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" msgstr "" -"Hvis aktiveret, så vil denne forbindelse aldrig blive brugt som " -"standardnetværksforbindelse." - -#: ../src/connection-editor/ce-ip4-routes.ui.h:3 -#: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" -msgstr "Ig_norér automatisk fundne ruter" - -#: ../src/connection-editor/ce-ip4-routes.ui.h:4 -#: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "_Use this connection only for resources on its network" -msgstr "_Brug kun denne forbindelse til ressourcer på dens netværk" +"MAC-adressen som skrives her vil blive brugt som hardware-adresse for " +"netværksenheden, denne forbindelse er aktiveret på. Denne funktion kaldes " +"MAC-kloning eller spoofing. Eksempel: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-dsl.ui.h:1 -#: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 -#: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "_Vis adgangskode" +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" -#: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "_Adgangskode:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "byte" -#: ../src/connection-editor/ce-page-dsl.ui.h:3 -msgid "_Service:" -msgstr "_Tjeneste:" +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 -#: ../src/wireless-security/eap-method-leap.ui.h:3 -#: ../src/wireless-security/eap-method-simple.ui.h:4 -#: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "Br_ugernavn:" +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "" -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -msgid "Addresses" -msgstr "Adresser" +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +#, fuzzy +msgid "Connected" +msgstr "ikke tilsluttet" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 -msgid "Automatic" -msgstr "Automatisk" +msgid "Automatic with manual DNS settings" +msgstr "Automatisk med manuelle DNS-indstillinger" #: ../src/connection-editor/ce-page-ip4.ui.h:3 #: ../src/connection-editor/ce-page-ip6.ui.h:3 -msgid "Automatic with manual DNS settings" -msgstr "Automatisk med manuelle DNS-indstillinger" +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "Manuelt" #: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" -msgstr "D_HCP-klient-id:" +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "Link-lokal" #: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "" -"Domains used when resolving host names. Use commas to separate multiple " -"domains." -msgstr "" -"Domæner brugt ved evaluering af værtsnavne. Brug komma til at adskille flere " -"domæner." +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "Delt til andre computere" -#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 #: ../src/connection-editor/ce-page-ip6.ui.h:6 -msgid "" -"IP addresses of domain name servers used to resolve host names. Use commas " -"to separate multiple domain name server addresses." -msgstr "" -"Domæne-navnservers IP-adresser brugt ved evaluering af værtsnavne. Brug " -"komma til at adskille flere domæne-navnserveres adresser." +msgid "_Method:" +msgstr "_Metode:" -#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip4.ui.h:7 #: ../src/connection-editor/ce-page-ip6.ui.h:7 -msgid "Link-Local" -msgstr "Link-lokal" +msgid "Addresses" +msgstr "Adresser" #: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 -#: ../src/connection-editor/page-ip4.c:169 -#: ../src/connection-editor/page-ip6.c:191 -msgid "Manual" -msgstr "Manuelt" +msgid "" +"The DHCP client identifier allows the network administrator to customize " +"your computer's configuration. If you wish to use a DHCP client identifier, " +"enter it here." +msgstr "" +"DHCP-klient identifikationen tillader netværksadministratorer at tilpasse " +"din computers konfiguration. Hvis du ønsker at bruge en DHCP-klient-" +"identifikation, så skriv det her." #: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv_4 addressing for this connection to complete" -msgstr "Kræv IPv_4-adressering for at denne forbindelse kan oprettes" +#: ../src/connection-editor/ce-page-ip6.ui.h:9 +msgid "" +"Domains used when resolving host names. Use commas to separate multiple " +"domains." +msgstr "" +"Domæner brugt ved evaluering af værtsnavne. Brug komma til at adskille flere " +"domæner." -# Er dette Søgedomæner eller Søg domæner? #: ../src/connection-editor/ce-page-ip4.ui.h:11 +msgid "D_HCP client ID:" +msgstr "D_HCP-klient-id:" + +# Er dette Søgedomæner eller Søg domæner? +#: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Søg_edomæner:" -#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 -#: ../src/connection-editor/page-ip4.c:187 -#: ../src/connection-editor/page-ip6.c:211 -msgid "Shared to other computers" -msgstr "Delt til andre computere" +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 +msgid "_DNS servers:" +msgstr "_DNS-servere:" -#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip6.ui.h:12 msgid "" -"The DHCP client identifier allows the network administrator to customize " -"your computer's configuration. If you wish to use a DHCP client identifier, " -"enter it here." +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." msgstr "" -"DHCP-klient identifikationen tillader netværksadministratorer at tilpasse " -"din computers konfiguration. Hvis du ønsker at bruge en DHCP-klient-" -"identifikation, så skriv det her." +"Domæne-navnservers IP-adresser brugt ved evaluering af værtsnavne. Brug " +"komma til at adskille flere domæne-navnserveres adresser." -#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip4.ui.h:15 +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "Kræv IPv_4-adressering for at denne forbindelse kan oprettes" + +#: ../src/connection-editor/ce-page-ip4.ui.h:16 msgid "" "When connecting to IPv6-capable networks, allows the connection to complete " "if IPv4 configuration fails but IPv6 configuration succeeds." @@ -1183,26 +1497,16 @@ "tilslutte hvis IPv4-konfigurationen fejler, men IPv6-konfigurationen " "lykkedes." -#: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 -msgid "_DNS servers:" -msgstr "_DNS-servere:" - -#: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Method:" -msgstr "_Metode:" - #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 msgid "_Routes…" msgstr "_Ruter…" -#: ../src/connection-editor/ce-page-ip6.ui.h:9 +#: ../src/connection-editor/ce-page-ip6.ui.h:13 msgid "Require IPv_6 addressing for this connection to complete" msgstr "Kræv IPv_6-adressering for at denne forbindelse kan oprettes" -#: ../src/connection-editor/ce-page-ip6.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "" "When connecting to IPv4-capable networks, allows the connection to complete " "if IPv6 configuration fails but IPv4 configuration succeeds." @@ -1212,274 +1516,233 @@ "lykkedes." #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "Enhver" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -msgid "Advanced" -msgstr "Avanceret" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -msgid "Allow _roaming if home network is not available" -msgstr "Tillad _roaming hvis hjemmenetværket ikke er tilgængeligt" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "Foretræk 3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "Enhver" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "Foretræk 2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 -msgid "Basic" -msgstr "Grundlæggende" +#, fuzzy +msgid "Prefer 4G (LTE)" +msgstr "Foretræk 3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "Ændr..." +msgid "Use only 4G (LTE)" +msgstr "" #: ../src/connection-editor/ce-page-mobile.ui.h:8 -msgid "N_etwork ID:" -msgstr "N_etværks-ID:" +msgid "Basic" +msgstr "Grundlæggende" #: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "Nu_mmer:" -#: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "P_IN:" -msgstr "P_IN:" - -#: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "Foretræk 2G (GPRS/EDGE)" - #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "Foretræk 3G (UMTS/HSPA)" +msgid "Advanced" +msgstr "Avanceret" #: ../src/connection-editor/ce-page-mobile.ui.h:13 -msgid "Sho_w passwords" -msgstr "_Vis adgangskoder" - -#: ../src/connection-editor/ce-page-mobile.ui.h:14 msgid "_APN:" msgstr "_APN:" -#: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "_Type:" - +#: ../src/connection-editor/ce-page-mobile.ui.h:14 +msgid "N_etwork ID:" +msgstr "N_etværks-ID:" + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "_Type:" + +#: ../src/connection-editor/ce-page-mobile.ui.h:16 +msgid "Change..." +msgstr "Ændr..." + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "P_IN:" +msgstr "P_IN:" + +#: ../src/connection-editor/ce-page-mobile.ui.h:18 +msgid "Allow _roaming if home network is not available" +msgstr "Tillad _roaming hvis hjemmenetværket ikke er tilgængeligt" + +#: ../src/connection-editor/ce-page-mobile.ui.h:19 +msgid "Sho_w passwords" +msgstr "_Vis adgangskoder" + #: ../src/connection-editor/ce-page-ppp.ui.h:1 -msgid "Allow _BSD data compression" -msgstr "Tillad _BSD-datakomprimering" +msgid "Authentication" +msgstr "Godkendelse" #: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "Tillad _Deflate-datakomprimering" - -#: ../src/connection-editor/ce-page-ppp.ui.h:3 msgid "Allowed methods:" msgstr "Tilladte metoder:" -#: ../src/connection-editor/ce-page-ppp.ui.h:4 -msgid "Authentication" -msgstr "Godkendelse" +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "Konfigurerings_metoder…" -#: ../src/connection-editor/ce-page-ppp.ui.h:5 +#: ../src/connection-editor/ce-page-ppp.ui.h:4 msgid "Compression" msgstr "Komprimering" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "Br_ug punkt-til-punkt-kryptering (MPPE)" + #: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" -msgstr "Konfigurerings_metoder…" +msgid "_Require 128-bit encryption" +msgstr "_Kræv 128-bit kryptering" #: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" -msgstr "Echo" +msgid "Use _stateful MPPE" +msgstr "Brug til_svarende MPPE" #: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" -msgstr "Send PPP-_ekkopakker" +msgid "Allow _BSD data compression" +msgstr "Tillad _BSD-datakomprimering" #: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" -msgstr "Brug TCP_headerkomprimering" +msgid "Allow _Deflate data compression" +msgstr "Tillad _Deflate-datakomprimering" #: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" -msgstr "Brug til_svarende MPPE" +msgid "Use TCP _header compression" +msgstr "Brug TCP_headerkomprimering" #: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" -msgstr "_Kræv 128-bit kryptering" +msgid "Echo" +msgstr "Echo" #: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "Br_ug punkt-til-punkt-kryptering (MPPE)" - -#: ../src/connection-editor/ce-page-wired.ui.h:1 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "10 Mb/s" -msgstr "10 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "100 Mb/s" -msgstr "100 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "Aut_omatisk forhandling" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "C_loned MAC address:" -msgstr "_Klonet MAC-adresse:" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "Full duple_x" -msgstr "Fuld duple_x" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "Media Independent Interface (MII)" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:12 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"MAC-adressen som skrives her vil blive brugt som hardware-adresse for " -"netværksenheden, denne forbindelse er aktiveret på. Denne funktion kaldes " -"MAC-kloning eller spoofing. Eksempel: 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Twisted Pair (TP)" -msgstr "Parsnoet kabel (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 -msgid "_Device MAC address:" -msgstr "_Enheds MAC-adresse:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:17 -msgid "_MTU:" -msgstr "_MTU:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -msgid "_Port:" -msgstr "_Port:" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Speed:" -msgstr "_Hastighed:" +msgid "Send PPP _echo packets" +msgstr "Send PPP-_ekkopakker" -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:19 -msgid "bytes" -msgstr "byte" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "S_ikkerhed:" -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "Ad-hoc" - -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" -msgstr "Bån_d:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "_Kanal:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:8 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Infrastruktur" -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" -msgstr "Til_stand:" +#: ../src/connection-editor/ce-page-wifi.ui.h:5 +msgid "Ad-hoc" +msgstr "Ad-hoc" + +#: ../src/connection-editor/ce-page-wifi.ui.h:11 +msgid "mW" +msgstr "mW" + +#: ../src/connection-editor/ce-page-wifi.ui.h:12 +msgid "Transmission po_wer:" +msgstr "Sendest_yrke:" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "SS_ID:" -msgstr "SS_ID:" +#: ../src/connection-editor/ce-page-wifi.ui.h:14 +msgid "_Rate:" +msgstr "_Styrke:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +#, fuzzy msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" "Denne indstilling låser denne forbindelse til det trådløse adgangspunkt " "(AP), ved brug af BSSID'en skrevet her. Eksempel: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 -msgid "Transmission po_wer:" -msgstr "Sendest_yrke:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_Rate:" -msgstr "_Styrke:" +#: ../src/connection-editor/ce-page-wifi.ui.h:17 +msgid "C_hannel:" +msgstr "_Kanal:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "mW" -msgstr "mW" +#: ../src/connection-editor/ce-page-wifi.ui.h:18 +msgid "Ban_d:" +msgstr "Bån_d:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "S_ikkerhed:" +#: ../src/connection-editor/ce-page-wifi.ui.h:19 +msgid "M_ode:" +msgstr "Til_stand:" + +#: ../src/connection-editor/ce-page-wifi.ui.h:20 +msgid "SS_ID:" +msgstr "SS_ID:" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Tilladte godkendelsesmetoder" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 +msgid "_EAP" +msgstr "_EAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +msgid "Extensible Authentication Protocol" +msgstr "Extensible Authentication Protocol" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "_PAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +msgid "Password Authentication Protocol" +msgstr "Protokol til adgangskodegodkendelse" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 msgid "C_HAP" msgstr "C_HAP" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 msgid "Challenge Handshake Authentication Protocol" msgstr "Challenge Handshake-godkendelsesprotokol" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 -msgid "Extensible Authentication Protocol" -msgstr "Extensible Authentication Protocol" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "_MSCHAP" +msgstr "_MSCHAP" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft Challenge Handshake Authentication Protocol" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft Challenge Handshake Authentication Protocol version 2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 msgid "" "In most cases, the provider's PPP servers will support all authentication " "methods. If connections fail, try disabling support for some methods." @@ -1488,105 +1751,341 @@ "godkendelsesmetoder. Hvis forbindelsen slår fejl, så prøv at deaktivere " "understøttelse af nogle af metoderne." -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Adresse" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft Challenge Handshake Authentication Protocol" +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Netmaske" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft Challenge Handshake Authentication Protocol version 2" +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Gateway" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" -msgstr "Protokol til adgangskodegodkendelse" +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Metersystem" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "_EAP" +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Præfiks" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "_MSCHAP" +#: ../src/connection-editor/new-connection.c:77 +#: ../src/connection-editor/page-ethernet.c:272 +#, fuzzy +msgid "Ethernet" +msgstr "Automatisk ethernet" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "_PAP" +#: ../src/connection-editor/new-connection.c:82 +#: ../src/connection-editor/page-wifi.c:460 +msgid "Wi-Fi" +msgstr "" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/new-connection.c:92 +#: ../src/connection-editor/page-wimax.c:155 ../src/mb-menu-item.c:75 +msgid "WiMAX" +msgstr "WiMAX" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Vælg type af VPN-forbindelse" +#: ../src/connection-editor/new-connection.c:97 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "Opret…" +#: ../src/connection-editor/new-connection.c:102 +#: ../src/connection-editor/page-infiniband.c:191 +msgid "InfiniBand" +msgstr "" + +#: ../src/connection-editor/new-connection.c:107 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 +#: ../src/connection-editor/new-connection.c:119 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:252 +#, fuzzy +msgid "Import a saved VPN configuration..." +msgstr "Eksportér VPN-forbindelse..." + +#: ../src/connection-editor/new-connection.c:274 msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." +"The connection editor dialog could not be initialized due to an unknown " +"error." msgstr "" -"Vælg den type VPN du ønsker at bruge til den nye forbindelse. Hvis typen af " -"VPN-forbindelse du ønsker at oprette ikke fremgår af listen, har du måske " -"ikke installeret det korrekte VPN-udvidelsesmodul." +"Forbindelsesredigeringen kunne ikke initialiseres på grund af en ukendt fejl." + +#: ../src/connection-editor/new-connection.c:283 +msgid "Could not create new connection" +msgstr "Kunne ikke oprette ny forbindelse" + +#: ../src/connection-editor/new-connection.c:419 +msgid "Connection delete failed" +msgstr "Sletning af forbindelse fejlede" + +#: ../src/connection-editor/new-connection.c:466 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Er du sikker på, at du ønsker at slette forbindelsen %s?" + +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "Redigerer %s" + +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "Redigerer unavngiven forbindelse" + +#: ../src/connection-editor/nm-connection-editor.c:301 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"Forbindelsesredigering kunne ikke finde nogle krævede ressourcer (.ui-filen " +"blev ikke fundet)." + +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "_Gem" + +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "Gem ændringer til denne forbindelse." + +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "_Gem..." + +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "" +"Godkend for at gemme denne forbindelse for alle brugere af denne maskine." + +#: ../src/connection-editor/nm-connection-editor.c:447 +#, fuzzy +msgid "Could not create connection" +msgstr "Kunne ikke oprette ny forbindelse" + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "Kunne ikke redigere forbindelse" + +#: ../src/connection-editor/nm-connection-editor.c:449 +#, fuzzy +msgid "Unknown error creating connection editor dialog." +msgstr "Fejl ved oprettelse af vindue til forbindelsesredigering." + +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "Fejl da forbindelsen blev gemt" + +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Egenskaben \"%s\" / \"%s\" er ugyldig: %d" + +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "Kunne ikke initialisere redigeringen" + +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "Tilføjelse af forbindelse fejlede" + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "Forbindelses_navn:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "Forbind _automatisk" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "_Tilgængelig for alle brugere" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +#, fuzzy +msgid "_Export..." +msgstr "E_ksportér" + +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "aldrig" + +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "nu" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minutter siden" +msgstr[1] "%d minutter siden" + +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d timer siden" +msgstr[1] "%d timer siden" + +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d dage siden" +msgstr[1] "%d dage siden" + +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d måneder siden" +msgstr[1] "%d måneder siden" + +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "%d år siden" +msgstr[1] "%d år siden" + +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "Navn" + +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "Sidst brugt" + +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "Redigér den valgte forbindelse" + +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "_Redigér..." + +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "Bekræft identitet for at redigere den valgte forbindelse" + +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "Slet den valgte forbindelse" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "_Slet..." + +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "Bekræft identitet for at slette den valgte forbindelse" + +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "Fejl ved oprettelse af forbindelse" + +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Ved ikke, hvordan man opretter \"%s\"-forbindelser" + +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "Fejl ved redigering af forbindelsen" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Adresse" +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Fandt ikke en forbindelse med UUID \"%s\"" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Netmaske" +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "802.1x sikkerhed" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Gateway" +#: ../src/connection-editor/page-8021x-security.c:122 +#, fuzzy +msgid "Could not load 802.1x Security user interface." +msgstr "Kunne ikke indlæse brugerflade for trådløs sikkerhed." -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Metersystem" +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "Brug 802.1_X-sikkerhed til denne forbindelse" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Præfiks" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1518 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:749 +#, fuzzy +msgid "Could not load bond user interface." +msgstr "Kunne ikke indlæse brugerflade til kablet forbindelse." + +#: ../src/connection-editor/page-bond.c:909 +#, fuzzy, c-format +msgid "Bond connection %d" +msgstr "Kablet forbindelse %d" -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-dsl.c:142 msgid "Could not load DSL user interface." msgstr "Kunne ikke indlæse DSL-brugerflade." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:234 #, c-format msgid "DSL connection %d" msgstr "DSL-forbindelse %d" +#: ../src/connection-editor/page-ethernet.c:90 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Denne indstilling låser forbindelsen til netværksenheden angivet med sin MAC-" +"adresse her. Eksempel: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:274 +#, fuzzy +msgid "Could not load ethernet user interface." +msgstr "Kunne ikke indlæse brugerflade til kablet forbindelse." + +#: ../src/connection-editor/page-ethernet.c:450 +#, fuzzy, c-format +msgid "Ethernet connection %d" +msgstr "Kablet forbindelse %d" + +#: ../src/connection-editor/page-infiniband.c:194 +#, fuzzy +msgid "Could not load InfiniBand user interface." +msgstr "Kunne ikke indlæse brugerflade til trådløs forbindelse." + +#: ../src/connection-editor/page-infiniband.c:319 +#, fuzzy, c-format +msgid "InfiniBand connection %d" +msgstr "Kablet forbindelse %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1634,16 +2133,26 @@ msgid "Disabled" msgstr "Afbrudt" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Yderligere _DNS-servere:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Yderligere søg_edomæner:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Redigerer IPv4-ruter for %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:993 msgid "IPv4 Settings" msgstr "IPv4-indstillinger" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:995 msgid "Could not load IPv4 user interface." msgstr "Kunne ikke indlæse IPv4-brugerflade." @@ -1652,7 +2161,7 @@ msgstr "Automatisk, kun adresser" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ignorér" @@ -1660,33 +2169,33 @@ msgid "Automatic, DHCP only" msgstr "Automatisk, kun DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Redigerer IPv6-ruter for %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:957 msgid "IPv6 Settings" msgstr "IPv6-indstillinger" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:959 msgid "Could not load IPv6 user interface." msgstr "Kunne ikke indlæse IPv6-brugerflade." -#: ../src/connection-editor/page-mobile.c:381 +#: ../src/connection-editor/page-mobile.c:390 msgid "Could not load mobile broadband user interface." msgstr "Kunne ikke indlæse brugerflade til mobilt bredbånd." -#: ../src/connection-editor/page-mobile.c:398 +#: ../src/connection-editor/page-mobile.c:407 msgid "Unsupported mobile broadband connection type." msgstr "Ikke-understøttet type mobil bredbåndsforbindelse." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:657 msgid "Select Mobile Broadband Provider Type" msgstr "Vælg type udbyder af mobilt bredbånd" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:692 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." @@ -1694,11 +2203,11 @@ "Vælg den teknologi, din mobile bredbåndsudbyder bruger. Spørg din udbyder, " "hvis du er i tvivl." -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:697 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "Min udbyder bruger _GSM-teknologi (GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:704 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "Min udbyder bruger C_DMA-teknologi (f.eks. 1xRTT, EVDO)" @@ -1738,383 +2247,138 @@ msgid "Editing PPP authentication methods for %s" msgstr "Redigerer PPP-godkendelsesmetoder for %s" -#: ../src/connection-editor/page-ppp.c:282 +#: ../src/connection-editor/page-ppp.c:283 msgid "PPP Settings" msgstr "PPP-indstillinger" -#: ../src/connection-editor/page-ppp.c:284 +#: ../src/connection-editor/page-ppp.c:285 msgid "Could not load PPP user interface." msgstr "Kunne ikke indlæse PPP-brugerflade." -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1514 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 +#: ../src/connection-editor/page-vpn.c:114 msgid "Could not load VPN user interface." msgstr "Kunne ikke indlæse VPN-brugerflade." -#: ../src/connection-editor/page-vpn.c:126 +#: ../src/connection-editor/page-vpn.c:129 #, c-format msgid "Could not find VPN plugin service for '%s'." msgstr "Kunne ikke finde VPN-udvidelsesmodultjeneste for \"%s\"." -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:899 +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 #, c-format msgid "VPN connection %d" msgstr "VPN-forbindelse %d" -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 +#: ../src/connection-editor/page-vpn.c:249 msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" +"The VPN plugin failed to import the VPN connection correctly\n" +"\n" +"Error: no VPN service type." msgstr "" -"Denne indstilling låser forbindelsen til netværksenheden angivet med sin MAC-" -"adresse her. Eksempel: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -#: ../src/connection-editor/nm-connection-list.c:1502 -msgid "Wired" -msgstr "Kablet" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "Kunne ikke indlæse brugerflade til kablet forbindelse." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Kablet forbindelse %d" - -#: ../src/connection-editor/page-wired-security.c:119 -msgid "802.1x Security" -msgstr "802.1x sikkerhed" +"VPN-udvidelsesmodulet kunne ikke importere VPN-forbindelsen korrekt\n" +"\n" +"Fejl: Ingen VPN-tjenestetype." -#: ../src/connection-editor/page-wired-security.c:121 -msgid "Could not load Wired Security security user interface." -msgstr "Kunne ikke indlæse brugerflade for kablet sikkerhed." +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "Vælg type af VPN-forbindelse" -#: ../src/connection-editor/page-wired-security.c:139 -msgid "Use 802.1_X security for this connection" -msgstr "Brug 802.1_X-sikkerhed til denne forbindelse" +#: ../src/connection-editor/page-vpn.c:275 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Vælg den type VPN du ønsker at bruge til den nye forbindelse. Hvis typen af " +"VPN-forbindelse du ønsker at oprette ikke fremgår af listen, har du måske " +"ikke installeret det korrekte VPN-udvidelsesmodul." -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 #, c-format msgid "default" msgstr "standard" -#: ../src/connection-editor/page-wireless.c:200 +#: ../src/connection-editor/page-wifi.c:200 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -#: ../src/connection-editor/nm-connection-list.c:1506 -msgid "Wireless" -msgstr "Trådløs" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." +#: ../src/connection-editor/page-wifi.c:462 +#, fuzzy +msgid "Could not load Wi-Fi user interface." msgstr "Kunne ikke indlæse brugerflade til trådløs forbindelse." -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Trådløs forbindelse %d" +#: ../src/connection-editor/page-wifi.c:667 +#, fuzzy, c-format +msgid "Wi-Fi connection %d" +msgstr "Kablet forbindelse %d" + +#: ../src/connection-editor/page-wifi-security.c:265 +#, fuzzy +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Ingen" -#: ../src/connection-editor/page-wireless-security.c:290 -#: ../src/libnm-gtk/nm-wireless-dialog.c:922 +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:904 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP 40/128-bit-nøgle (Hex eller ASCII)" -#: ../src/connection-editor/page-wireless-security.c:300 -#: ../src/libnm-gtk/nm-wireless-dialog.c:931 +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:913 msgid "WEP 128-bit Passphrase" msgstr "WEP 128-bit adgangsfrase" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:961 +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:943 msgid "Dynamic WEP (802.1x)" msgstr "Dynamisk WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:340 -#: ../src/libnm-gtk/nm-wireless-dialog.c:975 -msgid "WPA & WPA2 Personal" -msgstr "WPA og WPA2 personlig" - -#: ../src/connection-editor/page-wireless-security.c:354 -#: ../src/libnm-gtk/nm-wireless-dialog.c:989 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA og WPA2 enterprise" - -#: ../src/connection-editor/page-wireless-security.c:395 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"Kunne ikke indlæse brugerflade for trådløs sikkerhed; mangler indstilling " -"til trådløs forbindelse." - -#: ../src/connection-editor/page-wireless-security.c:405 -msgid "Wireless Security" -msgstr "Trådløs sikkerhed" - -#: ../src/connection-editor/page-wireless-security.c:407 -msgid "Could not load WiFi security user interface." -msgstr "Kunne ikke indlæse brugerflade for trådløs sikkerhed." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Redigerer %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Redigerer unavngiven forbindelse" - -#: ../src/connection-editor/nm-connection-editor.c:291 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"Forbindelsesredigering kunne ikke finde nogle krævede ressourcer (.ui-filen " -"blev ikke fundet)." - -#: ../src/connection-editor/nm-connection-editor.c:394 -msgid "Error creating connection editor dialog." -msgstr "Fejl ved oprettelse af vindue til forbindelsesredigering." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "_Save" -msgstr "_Gem" - -#: ../src/connection-editor/nm-connection-editor.c:407 -msgid "Save any changes made to this connection." -msgstr "Gem ændringer til denne forbindelse." - -#: ../src/connection-editor/nm-connection-editor.c:408 -msgid "_Save..." -msgstr "_Gem..." - -#: ../src/connection-editor/nm-connection-editor.c:409 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "" -"Godkend for at gemme denne forbindelse for alle brugere af denne maskine." - -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "Tilgængelig for alle brugere" - -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "Forbind _automatisk" - -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -msgid "Connection _name:" -msgstr "Forbindelses_navn:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "E_ksportér" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "_Importér" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "aldrig" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "nu" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "%d minutter siden" -msgstr[1] "%d minutter siden" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "%d timer siden" -msgstr[1] "%d timer siden" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "%d dage siden" -msgstr[1] "%d dage siden" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "%d måneder siden" -msgstr[1] "%d måneder siden" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "%d år siden" -msgstr[1] "%d år siden" - -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Tilføjelse af forbindelse fejlede" - -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Fejl da forbindelsen blev gemt" - -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "Egenskaben \"%s\" / \"%s\" er ugyldig: %d" - -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Der opstod en ukendt fejl." - -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Kunne ikke initialisere redigeringen" - -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:885 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "" -"Forbindelsesredigeringen kunne ikke initialiseres på grund af en ukendt fejl." - -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Kunne ikke oprette ny forbindelse" - -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Kunne ikke redigere ny forbindelse" - -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "Kunne ikke redigere forbindelse" - -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Sletning af forbindelse fejlede" - -#: ../src/connection-editor/nm-connection-list.c:795 -#, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Er du sikker på, at du ønsker at slette forbindelsen %s?" - -#: ../src/connection-editor/nm-connection-list.c:929 -#: ../src/connection-editor/vpn-helpers.c:228 -msgid "Cannot import VPN connection" -msgstr "Kan ikke importere VPN-forbindelse" - -#: ../src/connection-editor/nm-connection-list.c:931 -msgid "" -"The VPN plugin failed to import the VPN connection correctly\n" -"\n" -"Error: no VPN service type." -msgstr "" -"VPN-udvidelsesmodulet kunne ikke importere VPN-forbindelsen korrekt\n" -"\n" -"Fejl: Ingen VPN-tjenestetype." - -#: ../src/connection-editor/nm-connection-list.c:944 -msgid "Could not edit imported connection" -msgstr "Kunne ikke redigere importeret forbindelse" - -#: ../src/connection-editor/nm-connection-list.c:1125 -msgid "Name" -msgstr "Navn" - -#: ../src/connection-editor/nm-connection-list.c:1137 -msgid "Last Used" -msgstr "Sidst brugt" - -#: ../src/connection-editor/nm-connection-list.c:1263 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "" -"Intet VPN-udvidelsesmodul til rådighed. Installer et for at aktivere denne " -"knap." - -#: ../src/connection-editor/nm-connection-list.c:1274 -msgid "_Edit" -msgstr "_Redigér" - -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "Edit the selected connection" -msgstr "Redigér den valgte forbindelse" - -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "_Edit..." -msgstr "_Redigér..." - -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "Authenticate to edit the selected connection" -msgstr "Bekræft identitet for at redigere den valgte forbindelse" - -#: ../src/connection-editor/nm-connection-list.c:1292 -msgid "_Delete" -msgstr "_Slet" - -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "Delete the selected connection" -msgstr "Slet den valgte forbindelse" +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:957 +msgid "WPA & WPA2 Personal" +msgstr "WPA og WPA2 personlig" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "_Delete..." -msgstr "_Slet..." +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:971 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA og WPA2 enterprise" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "Authenticate to delete the selected connection" -msgstr "Bekræft identitet for at slette den valgte forbindelse" +#: ../src/connection-editor/page-wifi-security.c:396 +#, fuzzy +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"Kunne ikke indlæse brugerflade for trådløs sikkerhed; mangler indstilling " +"til trådløs forbindelse." -#: ../src/connection-editor/nm-connection-list.c:1574 -msgid "Error creating connection" -msgstr "Fejl ved oprettelse af forbindelse" +#: ../src/connection-editor/page-wifi-security.c:406 +#, fuzzy +msgid "Wi-Fi Security" +msgstr "Trådløs sikkerhed" -#: ../src/connection-editor/nm-connection-list.c:1575 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Ved ikke, hvordan man opretter \"%s\"-forbindelser" +#: ../src/connection-editor/page-wifi-security.c:408 +#, fuzzy +msgid "Could not load Wi-Fi security user interface." +msgstr "Kunne ikke indlæse brugerflade for trådløs sikkerhed." -#: ../src/connection-editor/nm-connection-list.c:1630 -#: ../src/connection-editor/nm-connection-list.c:1642 -msgid "Error editing connection" -msgstr "Fejl ved redigering af forbindelsen" +#: ../src/connection-editor/page-wimax.c:158 +#, fuzzy +msgid "Could not load WiMAX user interface." +msgstr "Kunne ikke indlæse brugerflade til trådløs forbindelse." -#: ../src/connection-editor/nm-connection-list.c:1631 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Ved ikke, hvordan man redigerer \"%s\"-forbindelser" +#: ../src/connection-editor/page-wimax.c:287 +#, fuzzy, c-format +msgid "WiMAX connection %d" +msgstr "Kablet forbindelse %d" -#: ../src/connection-editor/nm-connection-list.c:1643 -#, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Fandt ikke en forbindelse med UUID \"%s\"" +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Kan ikke importere VPN-forbindelse" -#: ../src/connection-editor/vpn-helpers.c:230 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2127,29 +2391,29 @@ "\n" "Fejl:%s." -#: ../src/connection-editor/vpn-helpers.c:263 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Vælg fil til import" -#: ../src/connection-editor/vpn-helpers.c:314 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "En fil ved navn \"%s\" findes allerede." -#: ../src/connection-editor/vpn-helpers.c:316 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "_Erstat" -#: ../src/connection-editor/vpn-helpers.c:318 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Ønsker du at erstatte %s med den VPN-forbindelse, du gemmer?" -#: ../src/connection-editor/vpn-helpers.c:354 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "Kan ikke eksportere VPN-forbindelse" -#: ../src/connection-editor/vpn-helpers.c:356 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2160,65 +2424,87 @@ "\n" "Fejl: %s." -#: ../src/connection-editor/vpn-helpers.c:391 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Eksportér VPN-forbindelse..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Kunne ikke oprette PAN-forbindelse: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"Panelprogrammet til Netværkshåndtering kunne ikke finde nogle krævede " +"ressourcer (.ui-filen blev ikke fundet)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Din telefon er klar til brug!" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"Konfiguration af Bluetooth er ikke mulig (kunne ikke forbinde til D-Bus: " +"(%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s Netværk" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"Konfiguration af Bluetooth er ikke mulig (fejl ved søgning efter " +"Netværkshåndtering: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Brug din mobiltelefon som en netværksenhed (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Tilslut internettet ved brug af din mobiltelefon (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Fejl: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Kunne ikke oprette DUN-forbindelse: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Din telefon er klar til brug!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Mobil-guiden blev afbrudt" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Ukendt telefonenhed (ikke GSM eller CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "ukendt modemtype." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "kunne ikke forbinde til telefonen." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "blev uventet afbrudt fra telefonen." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "tidsudløb for søgning efter telefondetaljer." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Opdagelse af telefon-konfiguration..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "kunne ikke finde Bluetooth-enheden." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2226,56 +2512,54 @@ "Standard-adapteren til Bluetooth skal være aktiveret før oprettelse af en " "netværk-opkaldsforbindelse." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "" -"Konfiguration af Bluetooth er ikke mulig (kunne ikke forbinde til D-Bus:%s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" -"Konfiguration af Bluetooth er ikke mulig (kunne ikke forbinde til D-Bus " -"proxy)." +msgid "Failed to create PAN connection: %s" +msgstr "Kunne ikke oprette PAN-forbindelse: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"Konfiguration af Bluetooth er ikke mulig (fejl ved søgning af " -"Netværkshåndtering: %s)." +msgid "%s Network" +msgstr "%s Netværk" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Brug din mobiltelefon som en netværksenhed (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Lås automatisk denne enhed op" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Tilslut internettet ved brug af din mobiltelefon (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_Lås op" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Forbindelsesinformation" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Aktive netværksforbindelser" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "" "Din mobile bredbåndsforbindelse er konfigureret med følgende indstillinger:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Din enhed:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Din udbyder:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Din løsning:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2289,23 +2573,23 @@ "Hvis du vil tilpasse dine indstillinger for mobil bredbåndsforbindelse, så " "vælg 'Netværksforbindelser' fra menuen System >> Indstillinger." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Bekræft indstillinger for mobilt bredbånd" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Ikke på listen" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "_Vælg din løsning:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "Valgt løsning _APN (Access Point Name):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2317,67 +2601,67 @@ "\n" "Spørg din udbyder om din løsnings APN, hvis du er i tvivl om din løsning." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Vælg betalingsmetode" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Min betalingsmetode er ikke på listen..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "Vælg din udbyder på en _liste:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Udbyder" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Jeg kan ikke finde min udbyder og jeg ønsker at indtaste den _manuelt:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Udbyder:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Min udbyder bruger GSM-teknologi (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Min udbyder bruger CDMA-teknologi (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Vælg din udbyder" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Land- eller regionsliste:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "Land eller region" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "Mit land er ikke på listen" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Vælg din udbyders land eller region" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Installeret GSM-enhed" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Installeret CDMA-enhed" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2385,103 +2669,112 @@ "Denne guide hjælper dig med at oprette en mobil bredbåndsforbindelse til et " "mobilt (3G) netværk." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Du har brug for følgende oplysninger:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "Navnet på din bredbåndsudbyder" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "Navnet på din bredbånd-afregningsløsning" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" "(i visse tilfælde) Din bredbånd-afregningsløsnings APN (Access Point Name)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Opret en forbindelse til _denne mobile bredbåndsenhed:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Enhver enhed" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Opsæt en mobil bredbåndsforbindelse" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Ny mobil bredbåndsforbindelse" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:439 msgid "New..." msgstr "Ny..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1058 msgid "C_reate" msgstr "O_pret" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 -#, c-format +#: ../src/libnm-gtk/nm-wifi-dialog.c:1142 +#, fuzzy, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network " -"'%s'." +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "" "Der kræves adgangskoder eller krypteringsnøgler for at få adgang til det " "trådløse netværk \"%s\"." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 -msgid "Wireless Network Authentication Required" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1144 +#, fuzzy +msgid "Wi-Fi Network Authentication Required" msgstr "Trådløst netværk kræver godkendelse" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 -msgid "Authentication required by wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1146 +#, fuzzy +msgid "Authentication required by Wi-Fi network" msgstr "Godkendelse kræves af trådløst netværk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 -msgid "Create New Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1151 +#, fuzzy +msgid "Create New Wi-Fi Network" msgstr "Opret nyt trådløst netværk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 -msgid "New wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +#, fuzzy +msgid "New Wi-Fi network" msgstr "Nyt trådløst netværk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "Enter a name for the wireless network you wish to create." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1154 +#, fuzzy +msgid "Enter a name for the Wi-Fi network you wish to create." msgstr "Indtast et navn til det trådløse netværk du ønsker at oprette." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 -msgid "Connect to Hidden Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1156 +#, fuzzy +msgid "Connect to Hidden Wi-Fi Network" msgstr "Forbind til skjult trådløst netværk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 -msgid "Hidden wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 +#, fuzzy +msgid "Hidden Wi-Fi network" msgstr "Skjult trådløst netværk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1159 +#, fuzzy msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." msgstr "" "Indtast navn og sikkerhedsoplysninger til det trådløse netværk du ønsker at " "forbinde til." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" -msgstr "Forbi_ndelse:" +#, fuzzy +msgid "Wi-Fi _security:" +msgstr "Trådløs _sikkerhed:" -#: ../src/libnm-gtk/wifi.ui.h:3 -msgid "Wireless _adapter:" -msgstr "Trådløs _adapter:" +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "Forbi_ndelse:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "Trådløs _sikkerhed:" +#, fuzzy +msgid "Wi-Fi _adapter:" +msgstr "Trådløs _adapter:" #: ../src/main.c:73 msgid "Usage:" @@ -2532,51 +2825,56 @@ msgstr "HSPA" #: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" +#, fuzzy +msgid "HSPA+" +msgstr "HSPA" + +#: ../src/mb-menu-item.c:77 +msgid "LTE" +msgstr "" -#: ../src/mb-menu-item.c:109 +#: ../src/mb-menu-item.c:113 msgid "not enabled" msgstr "ikke aktiveret" -#: ../src/mb-menu-item.c:115 +#: ../src/mb-menu-item.c:119 msgid "not registered" msgstr "ikke registreret" -#: ../src/mb-menu-item.c:133 +#: ../src/mb-menu-item.c:137 #, c-format msgid "Home network (%s)" msgstr "Hjemmenetværk (%s)" -#: ../src/mb-menu-item.c:135 +#: ../src/mb-menu-item.c:139 #, c-format msgid "Home network" msgstr "Hjemmenetværk" -#: ../src/mb-menu-item.c:143 +#: ../src/mb-menu-item.c:147 msgid "searching" msgstr "søger" -#: ../src/mb-menu-item.c:146 +#: ../src/mb-menu-item.c:150 msgid "registration denied" msgstr "registrering nægtet" -#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 +#: ../src/mb-menu-item.c:155 ../src/mb-menu-item.c:161 #, c-format msgid "%s (%s roaming)" msgstr "%s (%s roaming)" -#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 +#: ../src/mb-menu-item.c:157 ../src/mb-menu-item.c:163 #, c-format msgid "%s (roaming)" msgstr "%s (roaming)" -#: ../src/mb-menu-item.c:162 +#: ../src/mb-menu-item.c:166 #, c-format msgid "Roaming network (%s)" msgstr "Roaming netværk (%s)" -#: ../src/mb-menu-item.c:164 +#: ../src/mb-menu-item.c:168 #, c-format msgid "Roaming network" msgstr "Roaming netværk" @@ -2585,88 +2883,87 @@ msgid "Default" msgstr "Standard" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"Panelprogrammet til Netværkshåndtering kunne ikke finde nogle krævede " -"ressourcer (.ui-filen blev ikke fundet)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "Forbindelse til %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Intet certifikat fra certifikatsautoritet er valgt" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 +#, fuzzy msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" "Hvis man ikke bruger et certifikat fra en certifikatautoritet (CA), kan det " "resultere i forbindelser til usikre, ondsindede trådløse netværk. Ønsker du " "at vælge et certifikat fra certifikatautoritet?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Vælg CA-certifikat" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER-, PEM- eller PKCS#12-private nøgler (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER- eller PEM-certifikater (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-fast.ui.h:2 -msgid "Allow automatic PAC pro_visioning" -msgstr "Tillad automatisk PAC-pro_vision" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" -#: ../src/wireless-security/eap-method-fast.ui.h:3 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -#: ../src/wireless-security/eap-method-ttls.ui.h:2 -msgid "Anony_mous identity:" -msgstr "Anony_m identitet:" +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Vælg en PAC-fil..." -#: ../src/wireless-security/eap-method-fast.ui.h:4 +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC-filer (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Alle filer" + +#: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Anonym" -#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-fast.ui.h:3 msgid "Authenticated" msgstr "Godkendt" -#: ../src/wireless-security/eap-method-fast.ui.h:6 +#: ../src/wireless-security/eap-method-fast.ui.h:4 msgid "Both" msgstr "Begge" -#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "Anony_m identitet:" + +#: ../src/wireless-security/eap-method-fast.ui.h:6 msgid "PAC _file:" msgstr "PAC-_fil:" -#: ../src/wireless-security/eap-method-fast.ui.h:8 -#: ../src/wireless-security/eap-method-peap.ui.h:8 +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 msgid "_Inner authentication:" msgstr "_Indre godkendelse:" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Vælg en PAC-fil..." - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "PAC-filer (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Alle filer" +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "Tillad automatisk PAC-pro_vision" #: ../src/wireless-security/eap-method-peap.c:263 #: ../src/wireless-security/wireless-security.c:382 @@ -2679,25 +2976,25 @@ msgid "Choose a Certificate Authority certificate..." msgstr "Vælg et certifikat fra certifikatautoritet..." +#: ../src/wireless-security/eap-method-peap.ui.h:3 +msgid "Version 0" +msgstr "Version 0" + #: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 +msgid "Version 1" +msgstr "Version 1" + +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 #: ../src/wireless-security/eap-method-ttls.ui.h:3 msgid "C_A certificate:" msgstr "C_A-certifikat:" -#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:8 msgid "PEAP _version:" msgstr "PEAP-_version:" -#: ../src/wireless-security/eap-method-peap.ui.h:6 -msgid "Version 0" -msgstr "Version 0" - -#: ../src/wireless-security/eap-method-peap.ui.h:7 -msgid "Version 1" -msgstr "Version 1" - -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "Spørg efter denne adgangs_kode hver gang" @@ -2727,11 +3024,15 @@ msgid "Choose your private key..." msgstr "Vælg din private nøgle..." -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "I_dentitet:" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "Br_ugercertifikat:" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "Privat nøg_le:" @@ -2739,10 +3040,6 @@ msgid "_Private key password:" msgstr "Adgangskode til _privat nøgle:" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "Br_ugercertifikat:" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "Advar mi_g ikke igen" @@ -2772,46 +3069,115 @@ msgstr "Beskyttet EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 -#: ../src/wireless-security/ws-wep-key.ui.h:5 +#: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 msgid "Au_thentication:" msgstr "_Godkendelse:" #: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "Åbent system" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "Delt nøgle" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (Standard)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:6 -msgid "Open System" -msgstr "Åbent system" - #: ../src/wireless-security/ws-wep-key.ui.h:7 -msgid "Shared Key" -msgstr "Delt nøgle" +msgid "_Key:" +msgstr "_Nøgle:" #: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "Vis nøg_le" -#: ../src/wireless-security/ws-wep-key.ui.h:9 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "WEP-inde_ks:" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "_Nøgle:" +#~ msgid "Wireless Networks (%s)" +#~ msgstr "Trådløse netværk (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "Trådløst netværk (%s)" + +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "Trådløst netværk" +#~ msgstr[1] "Trådløse netværk" + +#~ msgid "wireless is disabled" +#~ msgstr "trådløs er deaktiveret" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "trådløst er deaktiveret af hardwareknap" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "Forbereder trådløs netværksforbindelse \"%s\"…" + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "Konfigurerer trådløs netværksforbindelse \"%s\"…" + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "Anmoder om en trådløs netværksadresse for \"%s\"…" + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "Trådløs netværksforbindelse \"%s\" er aktiv" + +#~ msgid "Wired" +#~ msgstr "Kablet" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "Kunne ikke indlæse brugerflade for kablet sikkerhed." + +#~ msgid "Wireless" +#~ msgstr "Trådløs" + +#~ msgid "Wireless connection %d" +#~ msgstr "Trådløs forbindelse %d" + +#~ msgid "_Import" +#~ msgstr "_Importér" + +#~ msgid "An unknown error occurred." +#~ msgstr "Der opstod en ukendt fejl." + +#~ msgid "Could not edit new connection" +#~ msgstr "Kunne ikke redigere ny forbindelse" + +#~ msgid "Could not edit imported connection" +#~ msgstr "Kunne ikke redigere importeret forbindelse" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "" +#~ "Intet VPN-udvidelsesmodul til rådighed. Installer et for at aktivere " +#~ "denne knap." + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "Ved ikke, hvordan man redigerer \"%s\"-forbindelser" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "kunne ikke finde Bluetooth-enheden." + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "" +#~ "Konfiguration af Bluetooth er ikke mulig (kunne ikke forbinde til D-Bus " +#~ "proxy)." #~ msgid "Click on this icon to connect to a wireless network" #~ msgstr "Klik på dette ikon for at forbinde til et trådløst netværk" diff -Nru network-manager-applet-0.9.4.1/po/de.po network-manager-applet-0.9.6.2+git201210311320.2620/po/de.po --- network-manager-applet-0.9.4.1/po/de.po 2012-03-23 22:52:46.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/de.po 2012-10-31 13:20:57.000000000 +0000 @@ -2,6 +2,7 @@ # Copyright (C) 2005 Dan Williams # This file is distributed under the same license as the NetworkManager package. # +# # Hendrik Brandt , 2004, 2005. # Frank Arnold , 2005. # Hendrik Richter , 2006. @@ -11,475 +12,831 @@ # Mario Blättermann , 2008-2012. # Stefan Horning , 2009. # Timo Trinks , 2010. -# Wolfgang Stöggl , 2011. +# Wolfgang Stöggl , 2011, 2012. # Paul Seyfert , 2011, 2012. # Christian Kirbach , 2009, 2010, 2012. -# +# Hedda Peters , 2012. msgid "" msgstr "" "Project-Id-Version: network-manager-applet master\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 21:56+0100\n" -"PO-Revision-Date: 2012-03-23 21:57+0100\n" -"Last-Translator: Christian Kirbach \n" +"POT-Creation-Date: 2012-09-13 23:17+0200\n" +"PO-Revision-Date: 2012-09-13 23:19+0100\n" +"Last-Translator: Christian Kirbach \n" "Language-Team: Deutsch \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bits\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: German\n" "X-Poedit-Country: GERMANY\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: Lokalize 1.0\n" #: ../nm-applet.desktop.in.h:1 +msgid "Network" +msgstr "Netzwerk" + +#: ../nm-applet.desktop.in.h:2 msgid "Manage your network connections" msgstr "Verwaltung der Netzwerkverbindungen" -#: ../nm-applet.desktop.in.h:2 -msgid "Network" -msgstr "Netzwerk" +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Netzwerkverbindungen" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "Das Erstellen von WiFi-Netzen ausschalten" +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Einstellungen für Verbindungen mit Netzwerken verwalten" -#: ../nm-applet.schemas.in.h:2 +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Benachrichtigungen über neue Verbindung abschalten" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "Legt fest, ob Benachrichtigungen über Verbindungen mit einem Netzwerk abgeschaltet werden." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Benachrichtigungen über Verbindungstrennung abschalten" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "" -"Legt fest, ob Benachrichtigungen über Verbindungen mit einem Netzwerk " -"abgeschaltet werden." - -#: ../nm-applet.schemas.in.h:5 -msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "" -"Legt fest, ob Benachrichtigungen über die Verbindungstrennung von einem " -"Netzwerk abgeschaltet werden." +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "Set this to true to disable notifications when disconnecting from a network." +msgstr "Legt fest, ob Benachrichtigungen über die Verbindungstrennung von einem Netzwerk abgeschaltet werden." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "VPN-Benachrichtigungen abschalten" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "Set this to true to disable notifications when connecting to or disconnecting from a VPN." +msgstr "Legt fest, ob Benachrichtigungen über die Verbindungstrennung von einem VPN-Netzwerk abgeschaltet werden." -#: ../nm-applet.schemas.in.h:6 -msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." -msgstr "" -"Legt fest, ob Benachrichtigungen über neue Funknetzwerke abgeschaltet werden." +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 +msgid "Suppress networks available notifications" +msgstr "Benachrichtigung über neue Funknetzwerke unterdrücken" -#: ../nm-applet.schemas.in.h:7 -msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "" -"Legt fest, ob die Erstellung von Adhoc-Netzwerken mit dem Applet " -"abgeschaltet ist." +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +msgid "Set this to true to disable notifications when Wi-Fi networks are available." +msgstr "Legt fest, ob Benachrichtigungen über neue Funknetzwerke abgeschaltet werden." -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Einstellungen übernehmen" -#: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" -msgstr "Benachrichtigung über neue Funknetzwerke unterdrücken" - -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." -msgstr "" -"Legt fest, ob die Einstellungen in eine neue Version übernommen werden " -"sollen." +msgstr "Legt fest, ob die Einstellungen in eine neue Version übernommen werden sollen." -#: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "Einstellungen für Verbindungen mit Netzwerken verwalten" +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "Das Erstellen von WiFi-Netzen ausschalten" -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -msgid "Network Connections" -msgstr "Netzwerkverbindungen" +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +msgid "Set to true to disable creation of adhoc networks when using the applet." +msgstr "Legt fest, ob die Erstellung von Adhoc-Netzwerken mit dem Applet abgeschaltet ist." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "CA-Zertifikat ignorieren" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "Set this to true to disable warnings about CA certificates in EAP authentication." +msgstr "Legt fest, ob Warnungen zu CA-Zertifikaten in der EAP-Authentifizierung abgeschaltet werden." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "Set this to true to disable warnings about CA certificates in phase 2 of EAP authentication." +msgstr "Legt fest, ob Warnungen zu CA-Zertifikaten in Phase 2 der EAP-Authentifizierung abgeschaltet werden." + +#: ../src/8021x.ui.h:1 +#: ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "802.1X-Legitimierung" -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Verfügbar" +#: ../src/8021x.ui.h:2 +#: ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_Netzwerkname:" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Sie sind nun mit »%s« verbunden." +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "Hinzufügen/Aktivierung der Verbindung schlug fehl" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Verbindung hergestellt" +#: ../src/applet.c:514 +#: ../src/applet.c:558 +#: ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 +#: ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Unbekannter Fehler" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Sie sind nun mit dem mobilen Breitbandnetzwerk verbunden." +# +#: ../src/applet.c:517 +#: ../src/applet.c:587 +#: ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Verbindung fehlgeschlagen" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "Trennen des Gerätes schlug fehl" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "Trennen schlug fehl" + +# +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "Aktivierung der Verbindung fehlgeschlagen" + +#: ../src/applet.c:948 +#: ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "Diesen Hinweis nicht mehr anzeigen" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:1037 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Mobile Breitbandverbindung »%s« wird vorbereitet …" +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was interrupted." +msgstr "" +"\n" +"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil die Netzwerkverbindung getrennt wurde." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1040 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Mobile Breitbandverbindung »%s« wird konfiguriert" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil der VPN-Dienst unerwartet beendet wurde." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1043 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid configuration." msgstr "" -"Benutzerlegitimierung für mobile Breitbandverbindung »%s« wird benötigt …" +"\n" +"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil der VPN-Server keine geeignete Netzwerkkonfiguration lieferte." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2503 +#: ../src/applet.c:1046 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Netzwerkadresse für »%s« wird angefordert …" +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil die Netzwerkverbindung eine Zeitüberschreitung verursacht hat." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1049 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "Mobile Breitbandverbindung »%s« ist aktiv" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil der VPN-Dienst nicht in der vorgesehenen Zeit gestartet wurde." -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1052 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil der Start des VPN-Dienstes fehlgeschlagen ist." -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:424 +#: ../src/applet.c:1055 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Mobiles Breitband (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil keine gültigen VPN-Geheimnisse vorliegen." -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -#: ../src/connection-editor/nm-connection-list.c:1510 -msgid "Mobile Broadband" -msgstr "Mobiles Breitband" +#: ../src/applet.c:1058 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil VPN-Geheimnisse ungültig sind." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Neue mobile CDMA-Verbindung …" +#: ../src/applet.c:1065 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"Die VPN-Verbindung »%s« konnte nicht hergestellt werden." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Sie sind nun mit einem CDMA-Netz verbunden." +#: ../src/applet.c:1083 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was interrupted." +msgstr "" +"\n" +"Die VPN-Verbindung »%s« wurde getrennt, weil die Netzwerkverbindung getrennt wurde." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1086 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Mobile Breitbandverbindung »%s« ist aktiv: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"Die VPN-Verbindung »%s« wurde getrennt, weil der VPN-Dienst sich beendet hat." -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "Roaming" +#: ../src/applet.c:1092 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"Die VPN-Verbindung »%s« wurde getrennt." -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "CDMA-Netzwerk." +#: ../src/applet.c:1122 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"Die VPN-Verbindung wurde erfolgreich eingerichtet.\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Sie sind nun im Heimnetzwerk angemeldet." +#: ../src/applet.c:1124 +msgid "VPN connection has been successfully established.\n" +msgstr "Die VPN-Verbindung wurde erfolgreich eingerichtet.\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Sie sind nun in einem Roaming-Netzwerk angemeldet." +#: ../src/applet.c:1126 +msgid "VPN Login Message" +msgstr "VPN-Anmeldemitteilung" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +# +#: ../src/applet.c:1132 +#: ../src/applet.c:1140 +#: ../src/applet.c:1190 +msgid "VPN Connection Failed" +msgstr "VPN-Verbindung fehlgeschlagen" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Neue mobile GSM-Breitbandverbindung …" +#: ../src/applet.c:1197 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil das Starten des VPN-Dienstes fehlgeschlagen ist.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Sie sind nun mit einem GSM-Netz verbunden." +#: ../src/applet.c:1200 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Das Starten der VPN-Verbindung »%s« ist fehlgeschlagen.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "PIN-Code erforderlich" +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "Gerät ist nicht betriebsbereit (Firmware fehlt)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "Für das mobile Breitbandgerät ist ein PIN-Code erforderlich" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "Gerät ist nicht betriebsbereit" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "PIN-Code für SIM-Karte »%s« auf »%s«" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 +#: ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "nicht verbunden" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "Falscher PIN-Code. Bitte kontaktieren Sie Ihren Dienstanbieter." +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "Verbindung trennen" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "Falscher PUK-Code. Bitte kontaktieren Sie Ihren Dienstanbieter." +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "Gerät wird nicht verwaltet" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "Code zum Entsperren wird gesendet …" +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "Es sind keine Netzwerkgeräte verfügbar" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "Entsperren der SIM-Karte mittels PIN-Code erforderlich" +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "_VPN-Verbindungen" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "Entsperren der SIM-Karte mittels PIN-Code erforderlich" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "VPN _konfigurieren …" -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "" -"Das mobile Breitband-Gerät »%s« erfordert vor Verwendung eine SIM-PIN-Nummer." +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "VPN _trennen" -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "PIN-Code:" +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "Der Netzwerk-Manager läuft zur Zeit nicht …" -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "PIN-Code anzeigen" +#: ../src/applet.c:1854 +#: ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "Netzwerk deaktiviert" -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "Entsperren der SIM-Karte mittels PUK-Code erforderlich" +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "_Netzwerk aktivieren" -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "Entsperren der SIM-Karte mittels PUK-Code erforderlich" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +msgid "Enable _Wi-Fi" +msgstr "_Funknetzwerk aktivieren" -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "_Mobiles Breitband aktivieren" + +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "WiMA_X Mobiles Breitband aktivieren" + +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "_Benachrichtigungen aktivieren" + +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "Verbindungs_informationen" + +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "Verbindungen bearbeiten …" + +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "_Hilfe" + +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "_Info" + +#: ../src/applet.c:2335 +msgid "Disconnected" +msgstr "Verbindung getrennt" + +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "Die Netzwerkverbindung wurde getrennt." + +#: ../src/applet.c:2519 #, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "" -"Das mobile Breitband-Gerät »%s« erfordert vor Verwendung einen SIM-PUK-Code." +msgid "Preparing network connection '%s'..." +msgstr "Netzwerkverbindung »%s« wird vorbereitet …" -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "PUK-Code:" +#: ../src/applet.c:2522 +#, c-format +msgid "User authentication required for network connection '%s'..." +msgstr "Benutzerlegitimierung ist erforderlich für Netzwerkverbindung »%s«" -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "Neuer PIN-Code:" +#: ../src/applet.c:2525 +#: ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:541 +#: ../src/applet-device-wimax.c:473 +#, c-format +msgid "Requesting a network address for '%s'..." +msgstr "Netzwerkadresse für »%s« wird angefordert …" -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "Geben Sie den neuen PIN-Code erneut ein:" +#: ../src/applet.c:2528 +#, c-format +msgid "Network connection '%s' active" +msgstr "Netzwerkverbindungen »%s« aktiv" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "PIN/PUK-Codes anzeigen" +#: ../src/applet.c:2611 +#, c-format +msgid "Starting VPN connection '%s'..." +msgstr "VPN-Verbindung »%s« wird gestartet …" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "GSM-Netzwerk" +#: ../src/applet.c:2614 +#, c-format +msgid "User authentication required for VPN connection '%s'..." +msgstr "Benutzerlegitimierung ist erforderlich für VPN-Verbindung »%s«" + +#: ../src/applet.c:2617 +#, c-format +msgid "Requesting a VPN address for '%s'..." +msgstr "Anfordern einer Netzwerkadresse von VPN-Verbindung »%s« …" + +#: ../src/applet.c:2620 +#, c-format +msgid "VPN connection '%s' active" +msgstr "VPN-Verbindung »%s« aktiv" + +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "Keine Netzwerkverbindung" + +#: ../src/applet.c:3362 +msgid "NetworkManager Applet" +msgstr "Netzwerk-Manager-Applet" + +#: ../src/applet-device-bt.c:173 +#: ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 +#: ../src/applet-device-gsm.c:450 +#: ../src/applet-device-wifi.c:862 +#: ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Verfügbar" + +#: ../src/applet-device-bt.c:199 +#: ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 +#: ../src/applet-device-gsm.c:492 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "Sie sind nun mit »%s« verbunden." + +#: ../src/applet-device-bt.c:203 +#: ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 +#: ../src/applet-device-gsm.c:496 +#: ../src/applet-device-wifi.c:1264 +#: ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "Verbindung hergestellt" + +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Sie sind nun mit dem mobilen Breitbandnetzwerk verbunden." + +#: ../src/applet-device-bt.c:230 +#: ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:532 +#: ../src/applet-device-wimax.c:464 +#, c-format +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Mobile Breitbandverbindung »%s« wird vorbereitet …" + +#: ../src/applet-device-bt.c:233 +#: ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:467 +#, c-format +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Mobile Breitbandverbindung »%s« wird konfiguriert" + +#: ../src/applet-device-bt.c:236 +#: ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:538 +#: ../src/applet-device-wimax.c:470 +#, c-format +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "Benutzerlegitimierung ist erforderlich für mobile Breitbandverbindung »%s«" + +#: ../src/applet-device-bt.c:243 +#: ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:559 +#, c-format +msgid "Mobile broadband connection '%s' active" +msgstr "Mobile Breitbandverbindung »%s« ist aktiv" + +#: ../src/applet-device-cdma.c:181 +#: ../src/connection-editor/page-mobile.c:700 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" + +#: ../src/applet-device-cdma.c:342 +#: ../src/applet-device-gsm.c:396 +#: ../src/applet-dialogs.c:424 +#, c-format +msgid "Mobile Broadband (%s)" +msgstr "Mobiles Breitband (%s)" + +#: ../src/applet-device-cdma.c:344 +#: ../src/applet-device-gsm.c:398 +#: ../src/connection-editor/new-connection.c:87 +#: ../src/connection-editor/page-mobile.c:380 +msgid "Mobile Broadband" +msgstr "Mobiles Breitband" + +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Neue mobile CDMA-Verbindung …" + +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Sie sind nun mit einem CDMA-Netz verbunden." + +#: ../src/applet-device-cdma.c:500 +#: ../src/applet-device-gsm.c:554 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "Mobile Breitbandverbindung »%s« ist aktiv: (%d%%%s%s)" + +#: ../src/applet-device-cdma.c:503 +#: ../src/applet-device-gsm.c:557 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "Roaming" + +#: ../src/applet-device-cdma.c:644 +#: ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "CDMA-Netzwerk." + +#: ../src/applet-device-cdma.c:645 +#: ../src/applet-device-gsm.c:1202 +msgid "You are now registered on the home network." +msgstr "Sie sind nun im Heimnetzwerk angemeldet." + +#: ../src/applet-device-cdma.c:651 +#: ../src/applet-device-gsm.c:1208 +msgid "You are now registered on a roaming network." +msgstr "Sie sind nun in einem Roaming-Netzwerk angemeldet." -#: ../src/applet-device-wired.c:62 +#: ../src/applet-device-ethernet.c:62 msgid "Auto Ethernet" msgstr "Auto-Ethernet" -#: ../src/applet-device-wired.c:205 +#: ../src/applet-device-ethernet.c:205 #, c-format -msgid "Wired Networks (%s)" +msgid "Ethernet Networks (%s)" msgstr "Kabelnetzwerke (%s)" -#: ../src/applet-device-wired.c:207 +#: ../src/applet-device-ethernet.c:207 #, c-format -msgid "Wired Network (%s)" +msgid "Ethernet Network (%s)" msgstr "Kabelnetzwerk (%s)" -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" msgstr "Kabelnetzwerke" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" msgstr "Kabelnetzwerk" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1509 -msgid "disconnected" -msgstr "nicht verbunden" - -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." msgstr "Sie sind nun über Kabel mit dem Netzwerk verbunden." -#: ../src/applet-device-wired.c:300 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Kabelnetzwerkverbindung »%s« vorbereitet …" +msgid "Preparing ethernet network connection '%s'..." +msgstr "Kabelnetzwerkverbindung »%s« wird vorbereitet …" -#: ../src/applet-device-wired.c:303 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "Configuring wired network connection '%s'..." +msgid "Configuring ethernet network connection '%s'..." msgstr "Kabelnetzwerkverbindung »%s« wird konfiguriert …" -#: ../src/applet-device-wired.c:306 +#: ../src/applet-device-ethernet.c:306 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "Benutzerlegitimierung für Kabelnetzwerkverbindung »%s« wird benötigt …" +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "Benutzerlegitimierung ist erforderlich für Kabelnetzwerkverbindung »%s«" -#: ../src/applet-device-wired.c:309 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "Requesting a wired network address for '%s'..." +msgid "Requesting an ethernet network address for '%s'..." msgstr "Netzwerkadresse für Kabelnetzwerkverbindung »%s« wird angefordert …" -#: ../src/applet-device-wired.c:313 +#: ../src/applet-device-ethernet.c:313 #, c-format -msgid "Wired network connection '%s' active" +msgid "Ethernet network connection '%s' active" msgstr "Kabelnetzwerkverbindung »%s« ist aktiv" -#: ../src/applet-device-wired.c:494 +#: ../src/applet-device-ethernet.c:494 msgid "DSL authentication" msgstr "DSL-Legitimierung" +#: ../src/applet-device-gsm.c:213 +#: ../src/connection-editor/page-mobile.c:703 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" + +#. Default connection item +#: ../src/applet-device-gsm.c:463 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Neue mobile GSM-Breitbandverbindung …" + +#: ../src/applet-device-gsm.c:497 +msgid "You are now connected to the GSM network." +msgstr "Sie sind nun mit einem GSM-Netz verbunden." + +#: ../src/applet-device-gsm.c:658 +msgid "PIN code required" +msgstr "PIN-Code erforderlich" + +#: ../src/applet-device-gsm.c:666 +msgid "PIN code is needed for the mobile broadband device" +msgstr "Für das mobile Breitbandgerät ist ein PIN-Code erforderlich" + +#: ../src/applet-device-gsm.c:787 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "PIN-Code für SIM-Karte »%s« auf »%s«" + +#: ../src/applet-device-gsm.c:879 +msgid "Wrong PIN code; please contact your provider." +msgstr "Falscher PIN-Code. Bitte kontaktieren Sie Ihren Dienstanbieter." + +#: ../src/applet-device-gsm.c:902 +msgid "Wrong PUK code; please contact your provider." +msgstr "Falscher PUK-Code. Bitte kontaktieren Sie Ihren Dienstanbieter." + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:929 +msgid "Sending unlock code..." +msgstr "Code zum Entsperren wird gesendet …" + +#: ../src/applet-device-gsm.c:992 +msgid "SIM PIN unlock required" +msgstr "Entsperren der SIM-Karte mittels PIN-Code erforderlich" + +#: ../src/applet-device-gsm.c:993 +msgid "SIM PIN Unlock Required" +msgstr "Entsperren der SIM-Karte mittels PIN-Code erforderlich" + +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:995 +#, c-format +msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." +msgstr "Das mobile Breitband-Gerät »%s« erfordert vor Verwendung eine SIM-PIN-Nummer." + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:997 +msgid "PIN code:" +msgstr "PIN-Code:" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:1001 +msgid "Show PIN code" +msgstr "PIN-Code anzeigen" + +#: ../src/applet-device-gsm.c:1004 +msgid "SIM PUK unlock required" +msgstr "Entsperren der SIM-Karte mittels PUK-Code erforderlich" + +#: ../src/applet-device-gsm.c:1005 +msgid "SIM PUK Unlock Required" +msgstr "Entsperren der SIM-Karte mittels PUK-Code erforderlich" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1007 +#, c-format +msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." +msgstr "Das mobile Breitband-Gerät »%s« erfordert vor Verwendung einen SIM-PUK-Code." + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1009 +msgid "PUK code:" +msgstr "PUK-Code:" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1012 +msgid "New PIN code:" +msgstr "Neuer PIN-Code:" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1014 +msgid "Re-enter new PIN code:" +msgstr "Geben Sie den neuen PIN-Code erneut ein:" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1019 +msgid "Show PIN/PUK codes" +msgstr "PIN/PUK-Codes anzeigen" + +#: ../src/applet-device-gsm.c:1201 +#: ../src/applet-device-gsm.c:1207 +msgid "GSM network." +msgstr "GSM-Netzwerk" + #: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." +msgid "_Connect to Hidden Wi-Fi Network..." msgstr "Mit einem verborgenen Funknetzwerk _verbinden …" -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." msgstr "_Neues Funknetzwerk erstellen …" -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(keine)" -#: ../src/applet-device-wifi.c:792 +#: ../src/applet-device-wifi.c:790 #, c-format -msgid "Wireless Networks (%s)" +msgid "Wi-Fi Networks (%s)" msgstr "Funknetzwerke (%s)" -#: ../src/applet-device-wifi.c:794 +#: ../src/applet-device-wifi.c:792 #, c-format -msgid "Wireless Network (%s)" +msgid "Wi-Fi Network (%s)" msgstr "Funknetzwerk (%s)" -#: ../src/applet-device-wifi.c:796 -msgid "Wireless Network" -msgid_plural "Wireless Networks" +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" msgstr[0] "Funknetzwerk" msgstr[1] "Funknetzwerke" -#: ../src/applet-device-wifi.c:829 -msgid "wireless is disabled" -msgstr "Funknetzwerke sind deaktiviert" - -#: ../src/applet-device-wifi.c:830 -msgid "wireless is disabled by hardware switch" -msgstr "Funknetzwerke sind durch Hardware-Schalter deaktiviert" +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "Funknetzwerk ist deaktiviert" + +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Funknetzwerk wurde durch Schalter deaktiviert" -#: ../src/applet-device-wifi.c:891 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "Weitere Netzwerke" -#: ../src/applet-device-wifi.c:1071 -msgid "Wireless Networks Available" +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" msgstr "Funknetzwerke sind verfügbar" -#: ../src/applet-device-wifi.c:1072 -msgid "Use the network menu to connect to a wireless network" -msgstr "" -"Verwenden Sie das Netzwerkmenü, um sich mit einem Funknetzwerk zu verbinden" - -#: ../src/applet-device-wifi.c:1075 ../src/applet.c:925 -msgid "Don't show this message again" -msgstr "Diesen Hinweis nicht mehr anzeigen" +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Verwenden Sie das Netzwerkmenü, um sich mit einem Funknetzwerk zu verbinden" -#: ../src/applet-device-wifi.c:1267 +#: ../src/applet-device-wifi.c:1263 #, c-format -msgid "You are now connected to the wireless network '%s'." +msgid "You are now connected to the Wi-Fi network '%s'." msgstr "Sie sind nun mit dem Funknetzwerk »%s« verbunden." -#: ../src/applet-device-wifi.c:1298 +#: ../src/applet-device-wifi.c:1294 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Funknetzwerkverbindung mit »%s« wird vorbereitet …" +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Funknetzwerkverbindung »%s« wird vorbereitet …" -#: ../src/applet-device-wifi.c:1301 +#: ../src/applet-device-wifi.c:1297 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Funknetzwerkverbindung mit »%s« wird vorbereitet …" +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Funknetzwerkverbindung »%s« wird konfiguriert …" -#: ../src/applet-device-wifi.c:1304 +#: ../src/applet-device-wifi.c:1300 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "" -"Benutzerlegitimierung für Funknetzwerkverbindung mit »%s« wird benötigt …" +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "Benutzerlegitimierung ist erforderlich für Funknetzwerk »%s«" -#: ../src/applet-device-wifi.c:1307 +#: ../src/applet-device-wifi.c:1303 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Anfordern einer Netzwerkadresse vom Funknetzwerk »%s« …" +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Funknetzwerkadresse für »%s« wird angefordert …" -#: ../src/applet-device-wifi.c:1328 +#: ../src/applet-device-wifi.c:1324 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" msgstr "Funknetzwerkverbindung mit »%s« ist aktiv: %s (%d%%)" -#: ../src/applet-device-wifi.c:1333 +#: ../src/applet-device-wifi.c:1329 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "Funknetzwerkverbindung mit »%s« ist aktiv" +msgid "Wi-Fi network connection '%s' active" +msgstr "Funknetzwerkverbindung »%s« ist aktiv" -#: ../src/applet-device-wifi.c:1381 +#: ../src/applet-device-wifi.c:1377 msgid "Failed to activate connection" msgstr "Aktivierung der Verbindung schlug fehl" -#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 -#: ../src/applet.c:491 ../src/applet.c:535 ../src/applet.c:561 -msgid "Unknown error" -msgstr "Unbekannter Fehler" - -# -#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 -#: ../src/applet.c:494 ../src/applet.c:564 -msgid "Connection failure" -msgstr "Verbindung fehlgeschlagen" - -#: ../src/applet-device-wifi.c:1400 +#: ../src/applet-device-wifi.c:1396 msgid "Failed to add new connection" msgstr "Hinzufügen einer neuen Verbindung schlug fehl" @@ -498,7 +855,7 @@ #: ../src/applet-device-wimax.c:260 msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX wurde durch Hardware-Schalter deaktiviert" +msgstr "WiMAX wurde durch Schalter deaktiviert" #: ../src/applet-device-wimax.c:428 msgid "You are now connected to the WiMAX network." @@ -509,8 +866,8 @@ msgstr "Die Verbindungsinformationen konnten nicht angezeigt werden:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:313 -#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 #: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -519,7 +876,8 @@ msgid "Dynamic WEP" msgstr "Dynamisches WEP" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:113 +#: ../src/applet-dialogs.c:245 #: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" @@ -528,9 +886,9 @@ msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 -#: ../src/connection-editor/page-wireless-security.c:265 -#: ../src/libnm-gtk/nm-wireless-dialog.c:905 +#: ../src/applet-dialogs.c:251 +#: ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 msgctxt "Wifi/wired security" msgid "None" msgstr "Keine" @@ -540,12 +898,14 @@ msgid "%s (default)" msgstr "%s (Vorgabe)" -#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 +#: ../src/applet-dialogs.c:346 +#: ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +#: ../src/applet-dialogs.c:348 +#: ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Unbekannt" @@ -591,7 +951,8 @@ msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +#: ../src/applet-dialogs.c:432 +#: ../src/applet-dialogs.c:791 msgid "General" msgstr "Allgemein" @@ -630,11 +991,13 @@ msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 +#: ../src/applet-dialogs.c:553 +#: ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP-Adresse:" -#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +#: ../src/applet-dialogs.c:555 +#: ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "Unbekannt" @@ -653,7 +1016,8 @@ msgid "Unknown" msgstr "Unbekannt" -#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 +#: ../src/applet-dialogs.c:588 +#: ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "Vorgaberoute:" @@ -718,11 +1082,8 @@ "und viele andere Mitwirkende und Übersetzer" #: ../src/applet-dialogs.c:942 -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "" -"Ein Applet für das Benachrichtigungsfeld, mit dem Sie Ihre Netzwerkgeräte " -"und Netzwerkverbindungen verwalten können." +msgid "Notification area applet for managing your network devices and connections." +msgstr "Ein Applet für das Benachrichtigungsfeld, mit dem Sie Ihre Netzwerkgeräte und Netzwerkverbindungen verwalten können." #: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" @@ -745,909 +1106,904 @@ msgid "Password:" msgstr "Passwort:" -#: ../src/applet.c:489 -#, fuzzy -msgid "Failed to add/activate connection" -msgstr "PAN-Verbindung konnte nicht erstellt werden: %s" +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 +msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." +msgstr "IP-Adressen identifizieren Ihren Rechner im Netzwerk. Klicken Sie auf den Knopf »Hinzufügen«, um eine IP-Adresse hinzuzufügen." -#: ../src/applet.c:533 -#, fuzzy -msgid "Device disconnect failed" -msgstr "nicht verbunden" +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "Ig_nore automatically obtained routes" +msgstr "Automatisch bezogene Routen ig_norieren" -#: ../src/applet.c:538 -#, fuzzy -msgid "Disconnect failure" -msgstr "Verbindung getrennt" +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +msgid "_Use this connection only for resources on its network" +msgstr "Diese Verbindung nur für Ress_ourcen dieses Netzwerks verwenden" -# -#: ../src/applet.c:559 -#, fuzzy -msgid "Connection activation failed" -msgstr "Hinzufügen der Verbindung fehlgeschlagen" +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 +msgid "If enabled, this connection will never be used as the default network connection." +msgstr "Falls aktiviert, wird diese Verbindung niemals als Standard-Netzwerkverbindung verwendet." -#: ../src/applet.c:1014 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil die " -"Netzwerkverbindung getrennt wurde." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " -#: ../src/applet.c:1017 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil der VPN-Dienst " -"unerwartet beendet wurde." +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "Verbindungstyp wählen" -#: ../src/applet.c:1020 -#, c-format +#: ../src/connection-editor/ce-new-connection.ui.h:3 msgid "" +"Select the type of connection you wish to create.\n" "\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil der VPN-Server " -"keine geeignete Netzwerkkonfiguration lieferte." +"If you are creating a VPN, and the VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." +msgstr "Wählen Sie den Typ, den Sie für die neue Verbindung verwenden möchten. Falls Sie ein VPN erstellen möchten und die gewünschte VPN-Verbindung nicht in der Liste erscheint, haben Sie möglicherweise nicht das richtige VPN-Plugin installiert." -#: ../src/applet.c:1023 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil die " -"Netzwerkverbindung eine Zeitüberschreitung verursacht hat." +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Erzeugen …" -#: ../src/applet.c:1026 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil der VPN-Dienst " -"nicht in der vorgesehenen Zeit gestartet wurde." +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "Automatisch" -#: ../src/applet.c:1029 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil der Start des " -"VPN-Dienstes fehlgeschlagen ist." +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "Das Aktualisieren der Verbindungspasswörter ist wegen eines unbekannten Fehlers fehlgeschlagen." -#: ../src/applet.c:1032 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" msgstr "" -"\n" -"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil keine gültigen " -"VPN-Geheimnisse vorliegen." -#: ../src/applet.c:1035 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" msgstr "" -"\n" -"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil VPN-" -"Geheimnisse ungültig sind." -#: ../src/applet.c:1042 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" msgstr "" -"\n" -"Die VPN-Verbindung »%s« konnte nicht hergestellt werden." -#: ../src/applet.c:1060 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." +#: ../src/connection-editor/ce-page-bond.ui.h:4 +msgid "Broadcast" +msgstr "Broadcast" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "802.3ad" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" msgstr "" -"\n" -"Die VPN-Verbindung »%s« wurde getrennt, weil die Netzwerkverbindung getrennt " -"wurde." -#: ../src/applet.c:1063 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" msgstr "" -"\n" -"Die VPN-Verbindung »%s« wurde getrennt, weil der VPN-Dienst sich beendet hat." -#: ../src/applet.c:1069 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" msgstr "" -"\n" -"Die VPN-Verbindung »%s« wurde getrennt." -#: ../src/applet.c:1103 -msgid "VPN Login Message" -msgstr "VPN-Anmeldemitteilung" +#: ../src/connection-editor/ce-page-bond.ui.h:9 +msgid "ARP" +msgstr "ARP" -# -#: ../src/applet.c:1109 ../src/applet.c:1117 ../src/applet.c:1167 -msgid "VPN Connection Failed" -msgstr "VPN-Verbindung fehlgeschlagen" +#: ../src/connection-editor/ce-page-bond.ui.h:10 +#, fuzzy +msgid "Bonded _connections:" +msgstr "Zugordnete Verbindung:" -#: ../src/applet.c:1174 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" +#: ../src/connection-editor/ce-page-bond.ui.h:11 +#, fuzzy +msgid "_Mode:" +msgstr "M_odus:" + +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "_Bearbeiten" + +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "_Löschen" + +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" msgstr "" -"\n" -"Die VPN-Verbindung »%s« konnte nicht hergestellt werden, weil das Starten " -"des VPN-Dienstes fehlgeschlagen ist.\n" -"\n" -"%s" -#: ../src/applet.c:1177 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" msgstr "" -"\n" -"Das Starten der VPN-Verbindung »%s« ist fehlgeschlagen.\n" -"\n" -"%s" -#: ../src/applet.c:1497 -msgid "device not ready (firmware missing)" -msgstr "Gerät ist nicht betriebsbereit (Firmware fehlt)" +#: ../src/connection-editor/ce-page-bond.ui.h:16 +msgid "_Interface name:" +msgstr "Name der _Schnittstelle:" -#: ../src/applet.c:1499 -msgid "device not ready" -msgstr "Gerät ist nicht betriebsbereit" +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "" -#: ../src/applet.c:1525 -msgid "Disconnect" -msgstr "Verbindung trennen" +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "ARP-_Ziele:" -#: ../src/applet.c:1539 -msgid "device not managed" -msgstr "Gerät wird nicht verwaltet" +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "An IP address, or a comma-separated list of IP addresses, to look for when checking the link status." +msgstr "" -#: ../src/applet.c:1583 -msgid "No network devices available" -msgstr "Es sind keine Netzwerkgeräte verfügbar" +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "" -#: ../src/applet.c:1671 -msgid "_VPN Connections" -msgstr "_VPN-Verbindungen" +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "" -#: ../src/applet.c:1728 -msgid "_Configure VPN..." -msgstr "VPN _konfigurieren …" +#: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 +#: ../src/wireless-security/eap-method-leap.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/ws-leap.ui.h:1 +msgid "_Username:" +msgstr "Ben_utzername:" -#: ../src/applet.c:1732 -msgid "_Disconnect VPN" -msgstr "VPN _trennen" +#: ../src/connection-editor/ce-page-dsl.ui.h:2 +msgid "_Service:" +msgstr "_Dienst:" -#: ../src/applet.c:1830 -msgid "NetworkManager is not running..." -msgstr "Der Netzwerk-Manager läuft zur Zeit nicht …" +#: ../src/connection-editor/ce-page-dsl.ui.h:3 +#: ../src/wireless-security/eap-method-leap.ui.h:3 +#: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 +#: ../src/wireless-security/ws-leap.ui.h:3 +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "Passwort _anzeigen" -#: ../src/applet.c:1835 ../src/applet.c:2634 -msgid "Networking disabled" -msgstr "Netzwerk deaktiviert" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_Passwort:" -#. 'Enable Networking' item -#: ../src/applet.c:2056 -msgid "Enable _Networking" -msgstr "_Netzwerk aktivieren" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "Automatisch" -#. 'Enable Wireless' item -#: ../src/applet.c:2065 -msgid "Enable _Wireless" -msgstr "_Funknetzwerk aktivieren" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Twisted Pair (TP)" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2074 -msgid "Enable _Mobile Broadband" -msgstr "_Mobiles Breitband aktivieren" +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2083 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "WiMA_X Mobiles Breitband aktivieren" +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" -#. Toggle notifications item -#: ../src/applet.c:2094 -msgid "Enable N_otifications" -msgstr "_Benachrichtigungen aktivieren" +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" -#. 'Connection Information' item -#: ../src/applet.c:2105 -msgid "Connection _Information" -msgstr "Verbindungs_informationen" +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mbit/s" -#. 'Edit Connections...' item -#: ../src/applet.c:2115 -msgid "Edit Connections..." -msgstr "Verbindungen bearbeiten …" +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mbit/s" -#. Help item -#: ../src/applet.c:2129 -msgid "_Help" -msgstr "_Hilfe" +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gbit/s" -#. About item -#: ../src/applet.c:2138 -msgid "_About" -msgstr "_Info" +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gbit/s" -#: ../src/applet.c:2315 -msgid "Disconnected" -msgstr "Verbindung getrennt" +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Port:" -#: ../src/applet.c:2316 -msgid "The network connection has been disconnected." -msgstr "Die Netzwerkverbindung wurde getrennt." +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Geschwindigkeit:" -#: ../src/applet.c:2497 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Netzwerkverbindung »%s« wird vorbereitet …" - -#: ../src/applet.c:2500 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Benutzerlegitimierung für Netzwerkverbindung »%s« wird benötigt …" - -#: ../src/applet.c:2506 -#, c-format -msgid "Network connection '%s' active" -msgstr "Netzwerkverbindungen »%s« aktiv" - -#: ../src/applet.c:2589 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "VPN-Verbindung »%s« wird gestartet …" - -#: ../src/applet.c:2592 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Benutzerlegitimierung für VPN-Verbindung »%s« wird benötigt …" - -#: ../src/applet.c:2595 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Anfordern einer Netzwerkadresse von VPN-Verbindung »%s« …" - -#: ../src/applet.c:2598 -#, c-format -msgid "VPN connection '%s' active" -msgstr "VPN-Verbindung »%s« aktiv" - -#: ../src/applet.c:2639 -msgid "No network connection" -msgstr "Keine Netzwerkverbindung" - -#: ../src/applet.c:3394 -msgid "NetworkManager Applet" -msgstr "Netzwerk-Manager-Applet" - -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Dieses Gerät automatisch entsperren" - -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "_Entsperren" - -#: ../src/info.ui.h:1 -msgid "Active Network Connections" -msgstr "Aktive Netzwerkverbindungen" - -#: ../src/info.ui.h:2 -msgid "Connection Information" -msgstr "Verbindungsinformationen" - -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "802.1X-Legitimierung" - -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:4 -msgid "_Network name:" -msgstr "_Netzwerkname:" - -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "Automatisch" - -#: ../src/connection-editor/ce-page.c:318 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "" -"Das Aktualisieren der Verbindungspasswörter ist wegen eines unbekannten " -"Fehlers fehlgeschlagen." - -#: ../src/connection-editor/ce-ip4-routes.ui.h:1 -#: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 -msgid "" -"IP addresses identify your computer on the network. Click the \"Add\" " -"button to add an IP address." -msgstr "" -"IP-Adressen identifizieren Ihren Rechner im Netzwerk. Klicken Sie auf den " -"Knopf »Hinzufügen«, um eine IP-Adresse hinzuzufügen." - -#: ../src/connection-editor/ce-ip4-routes.ui.h:2 -#: ../src/connection-editor/ce-ip6-routes.ui.h:2 -msgid "" -"If enabled, this connection will never be used as the default network " -"connection." -msgstr "" -"Falls aktiviert, wird diese Verbindung niemals als Standard-" -"Netzwerkverbindung verwendet." - -#: ../src/connection-editor/ce-ip4-routes.ui.h:3 -#: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" -msgstr "Automatisch bezogene Routen ig_norieren" +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Vollduple_x" -#: ../src/connection-editor/ce-ip4-routes.ui.h:4 -#: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "_Use this connection only for resources on its network" -msgstr "Diese Verbindung nur für Ress_ourcen dieses Netzwerks verwenden" +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "Aut_onegotiate" -#: ../src/connection-editor/ce-page-dsl.ui.h:1 -#: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 -#: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "Passwort _anzeigen" +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "MAC-Adresse des Ger_ätes:" -#: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "_Passwort:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "Benutzerdefinierte MA_C-Adresse:" -#: ../src/connection-editor/ce-page-dsl.ui.h:3 -msgid "_Service:" -msgstr "_Dienst:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "Die hier eingegebene Mac-Adresse wird als Hardware-Adresse des Netzwerkgerätes verwendet, für das diese Verbindung aktiviert ist. Dieses Funktionsmerkmal ist als »MAC-Cloning« oder »MAC-Spoofing« bekannt. Beispiel: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 -#: ../src/wireless-security/eap-method-leap.ui.h:3 -#: ../src/wireless-security/eap-method-simple.ui.h:4 -#: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "Ben_utzername:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "Bytes" -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -msgid "Addresses" -msgstr "Adressen" +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "Über_tragungsmodus:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagramm" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "Verbunden" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 -msgid "Automatic" -msgstr "Automatisch" +msgid "Automatic with manual DNS settings" +msgstr "Automatisch mit manuellen DNS-Einstellungen" #: ../src/connection-editor/ce-page-ip4.ui.h:3 #: ../src/connection-editor/ce-page-ip6.ui.h:3 -msgid "Automatic with manual DNS settings" -msgstr "Automatisch mit manuellen DNS-Einstellungen" +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "Manuell" #: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" -msgstr "D_HCP Client-Kennung:" +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "Link-Local" #: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "" -"Domains used when resolving host names. Use commas to separate multiple " -"domains." -msgstr "" -"Beim Auflösen von Rechnernamen verwendete Domänen. Mehrere Domänen werden " -"durch Kommata getrennt." +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "Gemeinsam mit anderen Rechnern" -#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 #: ../src/connection-editor/ce-page-ip6.ui.h:6 -msgid "" -"IP addresses of domain name servers used to resolve host names. Use commas " -"to separate multiple domain name server addresses." -msgstr "" -"IP-Adressen von Domänennamen-Servern, die zum Auflösen von Rechnernamen " -"verwendet werden. Verwenden Sie Kommata zum Trennen mehrerer Server-Adressen." +msgid "_Method:" +msgstr "_Methode:" -#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip4.ui.h:7 #: ../src/connection-editor/ce-page-ip6.ui.h:7 -msgid "Link-Local" -msgstr "Link-Local" +msgid "Addresses" +msgstr "Adressen" #: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 -#: ../src/connection-editor/page-ip4.c:169 -#: ../src/connection-editor/page-ip6.c:191 -msgid "Manual" -msgstr "Manuell" +msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." +msgstr "Der Bezeichner des DHCP-Clients ermöglicht dem Netzwerk-Administrator die Konfiguration Ihres Rechners anzupassen. Geben Sie hier einen Bezeichner ein, wenn Sie ihn verwenden möchten." #: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv_4 addressing for this connection to complete" -msgstr "IPv_4-Adressierung zur Fertigstellung dieser Verbindung erforderlich" +#: ../src/connection-editor/ce-page-ip6.ui.h:9 +msgid "Domains used when resolving host names. Use commas to separate multiple domains." +msgstr "Beim Auflösen von Rechnernamen verwendete Domänen. Mehrere Domänen werden durch Kommata getrennt." #: ../src/connection-editor/ce-page-ip4.ui.h:11 +msgid "D_HCP client ID:" +msgstr "D_HCP Client-Kennung:" + +#: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "_Suchdomänen:" -#: ../src/connection-editor/ce-page-ip4.ui.h:12 -#: ../src/connection-editor/ce-page-ip6.ui.h:11 -#: ../src/connection-editor/page-ip4.c:187 -#: ../src/connection-editor/page-ip6.c:211 -msgid "Shared to other computers" -msgstr "Gemeinsam mit anderen Rechnern" - #: ../src/connection-editor/ce-page-ip4.ui.h:13 -msgid "" -"The DHCP client identifier allows the network administrator to customize " -"your computer's configuration. If you wish to use a DHCP client identifier, " -"enter it here." -msgstr "" -"Der Bezeichner des DHCP-Clients ermöglicht dem Netzwerk-Administrator die " -"Konfiguration Ihres Rechners anzupassen. Geben Sie hier einen Bezeichner " -"ein, wenn Sie ihn verwenden möchten." +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 +msgid "_DNS servers:" +msgstr "_DNS-Server:" #: ../src/connection-editor/ce-page-ip4.ui.h:14 -msgid "" -"When connecting to IPv6-capable networks, allows the connection to complete " -"if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "" -"Ermöglicht bei der Verbindung mit IPv6-fähigen Netzwerken das Herstellen " -"einer Verbindung, falls die IPv4-Konfiguration fehlschlägt, die IPv6-" -"Konfiguration dagegen erfolgreich ist." +#: ../src/connection-editor/ce-page-ip6.ui.h:12 +msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." +msgstr "IP-Adressen von Domänennamen-Servern, die zum Auflösen von Rechnernamen verwendet werden. Verwenden Sie Kommata zum Trennen mehrerer Server-Adressen." #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 -msgid "_DNS servers:" -msgstr "_DNS-Server:" +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "IPv_4-Adressierung zur Fertigstellung dieser Verbindung erforderlich" #: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Method:" -msgstr "_Methode:" +msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "Ermöglicht bei der Verbindung mit IPv6-fähigen Netzwerken das Herstellen einer Verbindung, falls die IPv4-Konfiguration fehlschlägt, die IPv6-Konfiguration dagegen erfolgreich ist." #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 msgid "_Routes…" msgstr "_Routen …" -#: ../src/connection-editor/ce-page-ip6.ui.h:9 +#: ../src/connection-editor/ce-page-ip6.ui.h:13 msgid "Require IPv_6 addressing for this connection to complete" msgstr "IPv_6-Adressierung zur Fertigstellung dieser Verbindung erforderlich" -#: ../src/connection-editor/ce-page-ip6.ui.h:12 -msgid "" -"When connecting to IPv4-capable networks, allows the connection to complete " -"if IPv6 configuration fails but IPv4 configuration succeeds." -msgstr "" -"Ermöglicht bei der Verbindung mit IPv4-fähigen Netzwerken das Herstellen " -"einer Verbindung, falls die IPv6-Konfiguration fehlschlägt, die IPv4-" -"Konfiguration dagegen erfolgreich ist." +#: ../src/connection-editor/ce-page-ip6.ui.h:14 +msgid "When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds." +msgstr "Ermöglicht bei der Verbindung mit IPv4-fähigen Netzwerken das Herstellen einer Verbindung, falls die IPv6-Konfiguration fehlschlägt, die IPv4-Konfiguration dagegen erfolgreich ist." #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "Beliebig" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -msgid "Advanced" -msgstr "Erweitert" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -msgid "Allow _roaming if home network is not available" -msgstr "_Roaming erlauben, falls das Heimnetzwerk nicht verfügbar ist" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "3G bevorzugen (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "Beliebig" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "2G bevorzugen (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 msgid "Basic" msgstr "Grundlegend" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "Ändern …" - -#: ../src/connection-editor/ce-page-mobile.ui.h:8 -msgid "N_etwork ID:" -msgstr "N_etzwerkkennung:" - -#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "Nu_mmer:" #: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "P_IN:" -msgstr "PI_N:" +msgid "Advanced" +msgstr "Erweitert" #: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "2G bevorzugen (GPRS/EDGE)" +msgid "_APN:" +msgstr "_APN:" #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "3G bevorzugen (UMTS/HSPA)" +msgid "N_etwork ID:" +msgstr "N_etzwerkkennung:" #: ../src/connection-editor/ce-page-mobile.ui.h:13 -msgid "Sho_w passwords" -msgstr "Pass_wörter anzeigen" +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "_Typ:" #: ../src/connection-editor/ce-page-mobile.ui.h:14 -msgid "_APN:" -msgstr "_APN:" +msgid "Change..." +msgstr "Ändern …" + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +msgid "P_IN:" +msgstr "PI_N:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "_Typ:" +msgid "Allow _roaming if home network is not available" +msgstr "_Roaming erlauben, falls das Heimnetzwerk nicht verfügbar ist" + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "Pass_wörter anzeigen" #: ../src/connection-editor/ce-page-ppp.ui.h:1 -msgid "Allow _BSD data compression" -msgstr "_BSD-Datenkomprimierung erlauben" +msgid "Authentication" +msgstr "Legitimierung" #: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "_Deflate-Datenkomprimierung erlauben" - -#: ../src/connection-editor/ce-page-ppp.ui.h:3 msgid "Allowed methods:" msgstr "Zulässige Methoden:" -#: ../src/connection-editor/ce-page-ppp.ui.h:4 -msgid "Authentication" -msgstr "Legitimierung" +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "_Methoden konfigurieren …" -#: ../src/connection-editor/ce-page-ppp.ui.h:5 +#: ../src/connection-editor/ce-page-ppp.ui.h:4 msgid "Compression" msgstr "Komprimierung" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "P_unkt-zu-Punkt-Verschlüsselung (MPPE) verwenden" + #: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" -msgstr "_Methoden konfigurieren …" +msgid "_Require 128-bit encryption" +msgstr "128-Bit-Verschlüsselung anfo_rdern" #: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" -msgstr "Echo" +msgid "Use _stateful MPPE" +msgstr "_Stateful MPPE verwenden" #: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" -msgstr "PPP-_Echopakete senden" +msgid "Allow _BSD data compression" +msgstr "_BSD-Datenkomprimierung erlauben" #: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" -msgstr "TCP-_Header-Komprimierung verwenden" +msgid "Allow _Deflate data compression" +msgstr "_Deflate-Datenkomprimierung erlauben" #: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" -msgstr "_Stateful MPPE verwenden" +msgid "Use TCP _header compression" +msgstr "TCP-_Header-Komprimierung verwenden" #: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" -msgstr "128-Bit-Verschlüsselung anfo_rdern" +msgid "Echo" +msgstr "Echo" #: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "P_unkt-zu-Punkt-Verschlüsselung (MPPE) verwenden" - -#: ../src/connection-editor/ce-page-wired.ui.h:1 -msgid "1 Gb/s" -msgstr "1 Gbit/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 Gbit/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "10 Mb/s" -msgstr "10 Mbit/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "100 Mb/s" -msgstr "100 Mbit/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "Aut_onegotiate" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "C_loned MAC address:" -msgstr "Benutzerdefinierte MA_C-Adresse:" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "Full duple_x" -msgstr "Vollduple_x" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "Media Independent Interface (MII)" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:12 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"Die hier eingegebene Mac-Adresse wird als Hardware-Adresse des " -"Netzwerkgerätes verwendet, für das diese Verbindung aktiviert ist. Dieses " -"Funktionsmerkmal ist als »MAC-Cloning« oder »MAC-Spoofing« bekannt. " -"Beispiel: 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Twisted Pair (TP)" -msgstr "Twisted Pair (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 -msgid "_Device MAC address:" -msgstr "MAC-Adresse des Ger_ätes:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:17 -msgid "_MTU:" -msgstr "_MTU:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -msgid "_Port:" -msgstr "_Port:" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Speed:" -msgstr "_Geschwindigkeit:" +msgid "Send PPP _echo packets" +msgstr "PPP-_Echopakete senden" -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:19 -msgid "bytes" -msgstr "Bytes" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "Sich_erheit:" -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "Ad-hoc" - -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" -msgstr "Ban_d:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "_Kanal:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:8 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Infrastruktur" -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" -msgstr "M_odus:" +#: ../src/connection-editor/ce-page-wifi.ui.h:5 +msgid "Ad-hoc" +msgstr "Ad-hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 +msgid "mW" +msgstr "mW" + +#: ../src/connection-editor/ce-page-wifi.ui.h:12 +msgid "Transmission po_wer:" +msgstr "_Sendeleistung:" + +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "SS_ID:" -msgstr "_SSID:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:13 -msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "" -"Diese Option ordnet diese Verbindung eindeutig dem Wireless-Access-Point " -"(AP), der durch die hier eingegebene BSSID spezifiziert wird, zu. Beispiel: " -"00:11:22:33:44:55" +#: ../src/connection-editor/ce-page-wifi.ui.h:14 +msgid "_Rate:" +msgstr "_Rate:" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 -msgid "Transmission po_wer:" -msgstr "_Sendeleistung:" +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +msgid "This option locks this connection to the Wi-Fi access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "Diese Option ordnet diese Verbindung eindeutig dem Wireless-Access-Point (AP) zu, der durch die hier eingegebene BSSID spezifiziert wird. Beispiel: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_Rate:" -msgstr "_Rate:" +#: ../src/connection-editor/ce-page-wifi.ui.h:17 +msgid "C_hannel:" +msgstr "_Kanal:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "mW" -msgstr "mW" +#: ../src/connection-editor/ce-page-wifi.ui.h:18 +msgid "Ban_d:" +msgstr "Ban_d:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "Sich_erheit:" +#: ../src/connection-editor/ce-page-wifi.ui.h:19 +msgid "M_ode:" +msgstr "M_odus:" + +#: ../src/connection-editor/ce-page-wifi.ui.h:20 +msgid "SS_ID:" +msgstr "_SSID:" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Zulässige Legitimierungsmethoden" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 -msgid "C_HAP" -msgstr "C_HAP" +msgid "_EAP" +msgstr "_EAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 -msgid "Challenge Handshake Authentication Protocol" -msgstr "»Challenge Handshake Authentication Protocol«" - -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 msgid "Extensible Authentication Protocol" msgstr "Erweiterbares Legitimierungsprotokoll" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "_PAP" + #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 -msgid "" -"In most cases, the provider's PPP servers will support all authentication " -"methods. If connections fail, try disabling support for some methods." -msgstr "" -"In den meisten Fällen erlauben die PPP-Server des Anbieters alle " -"Legitimierungsmethoden. Falls eine Verbindung fehlschlägt, versuchen Sie, " -"die Unterstützung für einige Methoden zu deaktivieren." +msgid "Password Authentication Protocol" +msgstr "Passwort-Legitimierungsprotokoll" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +msgid "C_HAP" +msgstr "C_HAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "»Microsoft Challenge Handshake Authentication Protocol«" +msgid "Challenge Handshake Authentication Protocol" +msgstr "»Challenge Handshake Authentication Protocol«" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "»Microsoft Challenge Handshake Authentication Protocol« Version 2" +msgid "_MSCHAP" +msgstr "_MSCHAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" -msgstr "Passwort-Legitimierungsprotokoll" +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "»Microsoft Challenge Handshake Authentication Protocol«" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "_EAP" +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "_MSCHAP" +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "»Microsoft Challenge Handshake Authentication Protocol« Version 2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 +msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." +msgstr "In den meisten Fällen erlauben die PPP-Server des Anbieters alle Legitimierungsmethoden. Falls eine Verbindung fehlschlägt, versuchen Sie, die Unterstützung für einige Methoden zu deaktivieren." + +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Adresse" + +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Netzmaske" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Gateway" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Metrik" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Präfix" + +#: ../src/connection-editor/new-connection.c:77 +#: ../src/connection-editor/page-ethernet.c:272 +msgid "Ethernet" +msgstr "Ethernet" + +#: ../src/connection-editor/new-connection.c:82 +#: ../src/connection-editor/page-wifi.c:460 +msgid "Wi-Fi" +msgstr "Funknetzwerk" + +#: ../src/connection-editor/new-connection.c:92 +#: ../src/connection-editor/page-wimax.c:155 +#: ../src/mb-menu-item.c:75 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:97 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:102 +#: ../src/connection-editor/page-infiniband.c:191 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:107 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "" + +#: ../src/connection-editor/new-connection.c:119 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:252 +msgid "Import a saved VPN configuration..." +msgstr "Gespeicherte VPN-Konfiguration importieren …" + +#: ../src/connection-editor/new-connection.c:274 +msgid "The connection editor dialog could not be initialized due to an unknown error." +msgstr "Der Verbindungseditor kann wegen eines unbekannten Fehlers nicht initialisiert werden." + +#: ../src/connection-editor/new-connection.c:283 +msgid "Could not create new connection" +msgstr "Neue Verbindung konnte nicht erstellt werden" + +# +#: ../src/connection-editor/new-connection.c:419 +msgid "Connection delete failed" +msgstr "Löschen der Verbindung fehlgeschlagen" + +#: ../src/connection-editor/new-connection.c:466 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Sind Sie sicher, dass Sie die Verbindung %s löschen möchten?" + +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "%s bearbeiten" + +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "Unbenannte Verbindung bearbeiten" + +#: ../src/connection-editor/nm-connection-editor.c:301 +msgid "The connection editor could not find some required resources (the .ui file was not found)." +msgstr "Der Verbindungseditor konnte benötigte Ressourcen nicht finden (Die .ui-Datei wurde nicht gefunden)." + +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "_Speichern" + +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "Alle Änderungen an dieser Verbindung speichern." + +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "_Speichern …" + +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "Legitimieren, um diese Verbindung für alle Benutzer dieses Rechners zu speichern." + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not create connection" +msgstr "Verbindung konnte nicht erstellt werden" + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "Verbindung konnte nicht bearbeitet werden" + +#: ../src/connection-editor/nm-connection-editor.c:449 +#, fuzzy +msgid "Unknown error creating connection editor dialog." +msgstr "Fehler beim Erstellen des Dialoges zur Bearbeitung der Verbindung." + +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "Fehler beim Speichern der Verbindung" + +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Eigenschaft »%s« / »%s« ist ungültig: %d" + +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "Fehler beim Initialisieren des Editors" + +# +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "Hinzufügen der Verbindung fehlgeschlagen" + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "Verbindungs_name:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "_Automatisch verbinden" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "Für alle Benutzer _verfügbar" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "E_xportieren …" + +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "nie" + +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "jetzt" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "vor %d Minute" +msgstr[1] "vor %d Minuten" + +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "vor %d Stunde" +msgstr[1] "vor %d Stunden" + +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "vor %d Tag" +msgstr[1] "vor %d Tagen" + +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "vor %d Monat" +msgstr[1] "vor %d Monaten" + +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "vor %d Jahr" +msgstr[1] "vor %d Jahren" + +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "Name" + +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "Zuletzt verwendet" + +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "Die ausgewählte Verbindung bearbeiten" + +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "_Bearbeiten …" + +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "Legitimieren, um die ausgewählte Verbindung zu bearbeiten" + +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "Die ausgewählte Verbindung löschen" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "_Löschen …" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "_PAP" +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "Legitimieren, um die ausgewählte Verbindung zu löschen" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "Fehler beim Erstellen der Verbindung" -# -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "VPN-Verbindungstyp wählen" +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Es ist unbekannt, wie »%s«-Verbindungen erstellt werden können" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "Erzeugen …" +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "Fehler beim Bearbeiten der Verbindung" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" -"Wählen Sie den VPN-Typ, den Sie für die neue Verbindung verwenden möchten. " -"Wenn der Typ der VPN-Verbindung, die Sie erstellen möchten, nicht in der " -"Liste erscheint, haben Sie möglicherweise nicht das richtige VPN-Plugin " -"installiert." +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Eine Verbindung mit der UUID »%s« konnte nicht gefunden werden" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Adresse" +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "802.1x-Sicherheit" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Netzmaske" +#: ../src/connection-editor/page-8021x-security.c:122 +msgid "Could not load 802.1x Security user interface." +msgstr "Sichere 802.1x-Benutzerschnittstelle konnte nicht geladen werden." -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Gateway" +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "802.1_X-Sicherheit für diese Verbindung verwenden" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Metrik" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Präfix" +#: ../src/connection-editor/page-bond.c:749 +#, fuzzy +msgid "Could not load bond user interface." +msgstr "DSL-Benutzerschnittstelle konnte nicht geladen werden." -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1518 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:909 +#, fuzzy, c-format +msgid "Bond connection %d" +msgstr "InfiniBand-Verbindung %d" -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-dsl.c:142 msgid "Could not load DSL user interface." msgstr "DSL-Benutzerschnittstelle konnte nicht geladen werden." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:234 #, c-format msgid "DSL connection %d" msgstr "DSL-Verbindung %d" +#: ../src/connection-editor/page-ethernet.c:90 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "Diese Option ordnet diese Verbindung eindeutig dem hier durch die permanente MAC-Adresse spezifizierten Netzwerkgerät zu. Beispiel: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:274 +msgid "Could not load ethernet user interface." +msgstr "Kabel-Benutzerschnittstelle konnte nicht geladen werden." + +#: ../src/connection-editor/page-ethernet.c:450 +#, c-format +msgid "Ethernet connection %d" +msgstr "Kabelnetzwerkverbindung %d" + +#: ../src/connection-editor/page-infiniband.c:194 +msgid "Could not load InfiniBand user interface." +msgstr "InfiniBand-Benutzerschnittstelle konnte nicht geladen werden." + +#: ../src/connection-editor/page-infiniband.c:319 +#, c-format +msgid "InfiniBand connection %d" +msgstr "InfiniBand-Verbindung %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1695,16 +2051,26 @@ msgid "Disabled" msgstr "Deaktiviert" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Zusätzliche _DNS-Server:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Zusätzliche Suchdomän_en:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "IPv4-Routen für »%s« bearbeiten" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:993 msgid "IPv4 Settings" msgstr "IPv4-Einstellungen" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:995 msgid "Could not load IPv4 user interface." msgstr "IPv4-Benutzerschnittstelle konnte nicht geladen werden." @@ -1713,7 +2079,7 @@ msgstr "Automatisch, nur Adressen" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ignorieren" @@ -1721,52 +2087,43 @@ msgid "Automatic, DHCP only" msgstr "Automatisch, nur DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "IPv6-Routen für »%s« bearbeiten" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:957 msgid "IPv6 Settings" msgstr "IPv6-Einstellungen" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:959 msgid "Could not load IPv6 user interface." msgstr "IPv6-Benutzerschnittstelle konnte nicht geladen werden." -#: ../src/connection-editor/page-mobile.c:381 +#: ../src/connection-editor/page-mobile.c:382 msgid "Could not load mobile broadband user interface." -msgstr "" -"Benutzerschnittstelle für mobile Breitbandverbindungen konnte nicht geladen " -"werden." +msgstr "Benutzerschnittstelle für mobile Breitbandverbindungen konnte nicht geladen werden." -#: ../src/connection-editor/page-mobile.c:398 +#: ../src/connection-editor/page-mobile.c:399 msgid "Unsupported mobile broadband connection type." msgstr "Typ der mobilen Breitbandverbindung wird nicht unterstützt." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:643 msgid "Select Mobile Broadband Provider Type" msgstr "Typ des mobilen Breitbandanbieters auswählen" -#: ../src/connection-editor/page-mobile.c:674 -msgid "" -"Select the technology your mobile broadband provider uses. If you are " -"unsure, ask your provider." -msgstr "" -"Wählen Sie die von Ihrem mobilen Breitbandanbieter verwendete Technologie. " -"Im Zweifelsfall fragen Sie bei Ihrem Dienstanbieter nach." +#: ../src/connection-editor/page-mobile.c:678 +msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." +msgstr "Wählen Sie die von Ihrem mobilen Breitbandanbieter verwendete Technologie. Im Zweifelsfall fragen Sie bei Ihrem Dienstanbieter nach." -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:683 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "" -"Mein Dienstanbieter verwendet _GSM-basierte Technologien (z.B. GPRS, EDGE, " -"UMTS, HSDPA)" +msgstr "Mein Dienstanbieter verwendet _GSM-basierte Technologien (z.B. GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:690 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "" -"Mein Dienstanbieter verwendet C_DMA-basierte Technologien (z.B. 1xRTT, EVDO)" +msgstr "Mein Dienstanbieter verwendet C_DMA-basierte Technologien (z.B. 1xRTT, EVDO)" #: ../src/connection-editor/page-ppp.c:134 msgid "EAP" @@ -1804,423 +2161,158 @@ msgid "Editing PPP authentication methods for %s" msgstr "PPP-Legitimierungsmethoden für »%s« bearbeiten" -#: ../src/connection-editor/page-ppp.c:282 +#: ../src/connection-editor/page-ppp.c:283 msgid "PPP Settings" msgstr "PPP-Einstellungen" -#: ../src/connection-editor/page-ppp.c:284 +#: ../src/connection-editor/page-ppp.c:285 msgid "Could not load PPP user interface." msgstr "PPP-Benutzerschnittstelle konnte nicht geladen werden." -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1514 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 +#: ../src/connection-editor/page-vpn.c:114 msgid "Could not load VPN user interface." msgstr "VPN-Benutzerschnittstelle konnte nicht geladen werden." -#: ../src/connection-editor/page-vpn.c:126 +#: ../src/connection-editor/page-vpn.c:129 #, c-format msgid "Could not find VPN plugin service for '%s'." msgstr "VPN-Plugin-Dienst für »%s« konnte nicht gefunden werden." -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:899 +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 #, c-format msgid "VPN connection %d" msgstr "VPN-Verbindung %d" -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 +#: ../src/connection-editor/page-vpn.c:249 msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" +"The VPN plugin failed to import the VPN connection correctly\n" +"\n" +"Error: no VPN service type." msgstr "" -"Diese Option ordnet diese Verbindung eindeutig dem hier durch die permanente " -"MAC-Adresse spezifizierten Netzwerkgerät zu. Beispiel: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -#: ../src/connection-editor/nm-connection-list.c:1502 -msgid "Wired" -msgstr "Kabelgebunden" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "Kabel-Benutzerschnittstelle konnte nicht geladen werden." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Kabelnetzwerkverbindung %d" - -#: ../src/connection-editor/page-wired-security.c:119 -msgid "802.1x Security" -msgstr "802.1x-Sicherheit" - -#: ../src/connection-editor/page-wired-security.c:121 -msgid "Could not load Wired Security security user interface." -msgstr "Sichere WiFi-Benutzerschnittstelle konnte nicht geladen werden." +"Das VPN-Plugin konnte die VPN-Verbindung nicht richtig importieren\n" +"\n" +"Fehler: Kein VPN-Diensttyp." -#: ../src/connection-editor/page-wired-security.c:139 -msgid "Use 802.1_X security for this connection" -msgstr "802.1_X-Sicherheit für diese Verbindung verwenden" +# +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "VPN-Verbindungstyp wählen" -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 +#: ../src/connection-editor/page-vpn.c:275 +msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." +msgstr "Wählen Sie den VPN-Typ, den Sie für die neue Verbindung verwenden möchten. Wenn der Typ der VPN-Verbindung, die Sie erstellen möchten, nicht in der Liste erscheint, haben Sie möglicherweise nicht das richtige VPN-Plugin installiert." + +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 #, c-format msgid "default" msgstr "Vorgabe" -#: ../src/connection-editor/page-wireless.c:200 +#: ../src/connection-editor/page-wifi.c:200 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -#: ../src/connection-editor/nm-connection-list.c:1506 -msgid "Wireless" -msgstr "Funknetzwerk" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "WiFi-Benutzerschnittstelle konnte nicht geladen werden." +#: ../src/connection-editor/page-wifi.c:462 +msgid "Could not load Wi-Fi user interface." +msgstr "Benutzerschnittstelle für Funknetzwerke konnte nicht geladen werden." -#: ../src/connection-editor/page-wireless.c:663 +#: ../src/connection-editor/page-wifi.c:667 #, c-format -msgid "Wireless connection %d" +msgid "Wi-Fi connection %d" msgstr "Funknetzwerkverbindung %d" -#: ../src/connection-editor/page-wireless-security.c:290 -#: ../src/libnm-gtk/nm-wireless-dialog.c:922 +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Keine" + +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP 40/128-bit-Schlüssel (Hexadezimal oder ASCII)" -#: ../src/connection-editor/page-wireless-security.c:300 -#: ../src/libnm-gtk/nm-wireless-dialog.c:931 +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 msgid "WEP 128-bit Passphrase" msgstr "WEP 128-bit Kennwort" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:961 -msgid "Dynamic WEP (802.1x)" -msgstr "Dynamisches WEP (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:340 -#: ../src/libnm-gtk/nm-wireless-dialog.c:975 -msgid "WPA & WPA2 Personal" -msgstr "WPA & WPA2 Personal" - -#: ../src/connection-editor/page-wireless-security.c:354 -#: ../src/libnm-gtk/nm-wireless-dialog.c:989 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA & WPA2 Enterprise" - -#: ../src/connection-editor/page-wireless-security.c:395 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"Sichere WiFi-Benutzerschnittstelle konnte nicht geladen werden, weil WiFi-" -"Einstellungen fehlen." - -#: ../src/connection-editor/page-wireless-security.c:405 -msgid "Wireless Security" -msgstr "Sicherheit des Funknetzwerks" - -#: ../src/connection-editor/page-wireless-security.c:407 -msgid "Could not load WiFi security user interface." -msgstr "Sichere WiFi-Benutzerschnittstelle konnte nicht geladen werden." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "%s bearbeiten" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Unbenannte Verbindung bearbeiten" - -#: ../src/connection-editor/nm-connection-editor.c:291 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"Der Verbindungseditor konnte benötigte Ressourcen nicht finden (Die .ui-" -"Datei wurde nicht gefunden)." - -#: ../src/connection-editor/nm-connection-editor.c:394 -msgid "Error creating connection editor dialog." -msgstr "Fehler beim Erstellen des Dialoges zur Bearbeitung der Verbindung." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "_Save" -msgstr "_Speichern" - -#: ../src/connection-editor/nm-connection-editor.c:407 -msgid "Save any changes made to this connection." -msgstr "Alle Änderungen an dieser Verbindung speichern." - -#: ../src/connection-editor/nm-connection-editor.c:408 -msgid "_Save..." -msgstr "_Speichern …" - -#: ../src/connection-editor/nm-connection-editor.c:409 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "" -"Legitimieren, um diese Verbindung für alle Benutzer dieses Rechners zu " -"speichern." - -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "Für alle Benutzer verfügbar" - -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "_Automatisch verbinden" - -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -msgid "Connection _name:" -msgstr "Verbindungs_name:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "E_xportieren" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "_Importieren" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "nie" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "jetzt" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "vor %d Minute" -msgstr[1] "vor %d Minuten" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "vor %d Stunde" -msgstr[1] "vor %d Stunden" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "vor %d Tag" -msgstr[1] "vor %d Tagen" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "vor %d Monat" -msgstr[1] "vor %d Monaten" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "vor %d Jahr" -msgstr[1] "vor %d Jahren" - -# -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Hinzufügen der Verbindung fehlgeschlagen" - -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Fehler beim Speichern der Verbindung" - -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "Eigenschaft »%s« / »%s« ist ungültig: %d" - -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Ein unbekannter Fehler ist aufgetreten." - -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Fehler beim Initialisieren des Editors" - -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:885 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "" -"Der Verbindungseditor kann wegen eines unbekannten Fehlers nicht " -"initialisiert werden." - -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Neue Verbindung konnte nicht erstellt werden" - -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Neue Verbindung konnte nicht bearbeitet werden" - -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "Verbindung konnte nicht bearbeitet werden" - -# -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Löschen der Verbindung fehlgeschlagen" - -#: ../src/connection-editor/nm-connection-list.c:795 -#, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Sind Sie sicher, dass Sie die Verbindung %s löschen möchten?" - -#: ../src/connection-editor/nm-connection-list.c:929 -#: ../src/connection-editor/vpn-helpers.c:228 -msgid "Cannot import VPN connection" -msgstr "Die VPN-Verbindung konnte nicht importiert werden" - -#: ../src/connection-editor/nm-connection-list.c:931 -msgid "" -"The VPN plugin failed to import the VPN connection correctly\n" -"\n" -"Error: no VPN service type." -msgstr "" -"Das VPN-Plugin konnte die VPN-Verbindung nicht richtig importieren\n" -"\n" -"Fehler: Kein VPN-Diensttyp." - -#: ../src/connection-editor/nm-connection-list.c:944 -msgid "Could not edit imported connection" -msgstr "Importierte Verbindung konnte nicht bearbeitet werden" - -#: ../src/connection-editor/nm-connection-list.c:1125 -msgid "Name" -msgstr "Name" - -#: ../src/connection-editor/nm-connection-list.c:1137 -msgid "Last Used" -msgstr "Zuletzt verwendet" - -#: ../src/connection-editor/nm-connection-list.c:1263 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "" -"Kein VPN-Plugin verfügbar. Bitte installieren Sie eines, um diesen Knopf zu " -"aktivieren." - -#: ../src/connection-editor/nm-connection-list.c:1274 -msgid "_Edit" -msgstr "_Bearbeiten" - -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "Edit the selected connection" -msgstr "Die ausgewählte Verbindung bearbeiten" - -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "_Edit..." -msgstr "_Bearbeiten …" - -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "Authenticate to edit the selected connection" -msgstr "Legitimieren, um die ausgewählte Verbindung zu bearbeiten" - -#: ../src/connection-editor/nm-connection-list.c:1292 -msgid "_Delete" -msgstr "_Löschen" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "Dynamisches WEP (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "Delete the selected connection" -msgstr "Die ausgewählte Verbindung löschen" +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "WPA & WPA2 Personal" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "_Delete..." -msgstr "_Löschen …" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA & WPA2 Enterprise" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "Authenticate to delete the selected connection" -msgstr "Legitimieren, um die ausgewählte Verbindung zu löschen" +#: ../src/connection-editor/page-wifi-security.c:396 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "Sichere Benutzerschnittstelle für Funknetzwerke konnte nicht geladen werden, weil Funknetzwerkeinstellungen fehlen." -#: ../src/connection-editor/nm-connection-list.c:1574 -msgid "Error creating connection" -msgstr "Fehler beim Erstellen der Verbindung" +#: ../src/connection-editor/page-wifi-security.c:406 +msgid "Wi-Fi Security" +msgstr "Sicherheit des Funknetzwerks" -#: ../src/connection-editor/nm-connection-list.c:1575 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Es ist unbekannt, wie »%s«-Verbindungen erstellt werden können" +#: ../src/connection-editor/page-wifi-security.c:408 +msgid "Could not load Wi-Fi security user interface." +msgstr "Sichere Benutzerschnittstelle für Funknetzwerke konnte nicht geladen werden." -#: ../src/connection-editor/nm-connection-list.c:1630 -#: ../src/connection-editor/nm-connection-list.c:1642 -msgid "Error editing connection" -msgstr "Fehler beim Bearbeiten der Verbindung" +#: ../src/connection-editor/page-wimax.c:158 +msgid "Could not load WiMAX user interface." +msgstr "WiMAX-Benutzerschnittstelle konnte nicht geladen werden." -#: ../src/connection-editor/nm-connection-list.c:1631 +#: ../src/connection-editor/page-wimax.c:287 #, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Es ist unbekannt, wie »%s«-Verbindungen bearbeitet werden können" +msgid "WiMAX connection %d" +msgstr "WiMAX-Verbindung %d" -#: ../src/connection-editor/nm-connection-list.c:1643 -#, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Eine Verbindung mit der UUID »%s« konnte nicht gefunden werden" +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Die VPN-Verbindung konnte nicht importiert werden" -#: ../src/connection-editor/vpn-helpers.c:230 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" -"The file '%s' could not be read or does not contain recognized VPN " -"connection information\n" +"The file '%s' could not be read or does not contain recognized VPN connection information\n" "\n" "Error: %s." msgstr "" -"Die Datei »%s« konnte nicht gelesen werden oder enthält keine erkennbaren " -"Informationen über eine VPN-Verbindung\n" +"Die Datei »%s« konnte nicht gelesen werden oder enthält keine erkennbaren Informationen über eine VPN-Verbindung\n" "\n" "Fehler: %s." -#: ../src/connection-editor/vpn-helpers.c:263 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Datei zum Import auswählen" -#: ../src/connection-editor/vpn-helpers.c:314 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Eine Datei mit dem Namen »%s« existiert bereits." -#: ../src/connection-editor/vpn-helpers.c:316 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "_Ersetzen" -#: ../src/connection-editor/vpn-helpers.c:318 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" -msgstr "" -"Möchten Sie %s durch die VPN-Verbindung ersetzen, die Sie gerade speichern?" +msgstr "Möchten Sie %s durch die VPN-Verbindung ersetzen, die Sie gerade speichern?" -#: ../src/connection-editor/vpn-helpers.c:354 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "Die VPN-Verbindung konnte nicht exportiert werden" -#: ../src/connection-editor/vpn-helpers.c:356 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2231,355 +2323,320 @@ "\n" "Fehler: %s." -#: ../src/connection-editor/vpn-helpers.c:391 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "VPN-Verbindung exportieren …" -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "PAN-Verbindung konnte nicht erstellt werden: %s" +#: ../src/ethernet-dialog.c:91 +#: ../src/ethernet-dialog.c:99 +msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." +msgstr "Das Netzwerk-Manager-Applet konnte benötigte Ressourcen nicht finden (Die .ui-Datei wurde nicht gefunden)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Sie können Ihr Telefon nun benutzen!" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "Keine Bluetooth-Konfiguration möglich (Verbindung mit D-Bus fehlgeschlagen: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s-Netzwerk" +msgid "Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "Keine Bluetooth-Konfiguration möglich (NetworkManager nicht gefunden: (%s) %s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Benutzung Ihres Mobiltelefons als Netzwerkgerät (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Zugriff auf das Internet über Ihr Mobiltelefon (DUN)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Fehler: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "DUN-Verbindung konnte nicht erstellt werden: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Sie können Ihr Telefon nun benutzen!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Mobilassistent wurde abgebrochen" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Unbekannter Gerätetyp des Telefons (weder GSM noch CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "Unbekannter Modemtyp." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "Fehler bei Verbindung zum Telefon." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "Unerwarteter Abbruch der Verbindung zum Telefon." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "Zeitüberschreitung beim Ermitteln der Details zum Telefon." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Konfiguration des Telefons wird ermittelt …" -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "Das Bluetooth-Gerät konnte nicht gefunden werden." +#: ../src/gnome-bluetooth/nma-bt-device.c:794 +msgid "The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection." +msgstr "Der vorgegebene Bluetooth-Adapter muss aktiviert werden, bevor eine Einwählverbindung eingerichtet werden kann." -#: ../src/gnome-bluetooth/bt-widget.c:980 -msgid "" -"The default Bluetooth adapter must be enabled before setting up a Dial-Up-" -"Networking connection." -msgstr "" -"Der vorgegebene Bluetooth-Adapter muss aktiviert werden, bevor eine " -"Einwählverbindung eingerichtet werden kann." +#: ../src/gnome-bluetooth/nma-bt-device.c:831 +#, c-format +msgid "Failed to create PAN connection: %s" +msgstr "PAN-Verbindung konnte nicht erstellt werden: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "" -"Keine Bluetooth-Konfiguration möglich (Verbindung mit D-Bus fehlgeschlagen: " -"%s)." +msgid "%s Network" +msgstr "%s-Netzwerk" -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" -"Keine Bluetooth-Konfiguration möglich (Verbindung mit D-Bus-Proxy " -"fehlgeschlagen)." +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Dieses Gerät automatisch entsperren" -#: ../src/gnome-bluetooth/bt-widget.c:1031 -#, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"Keine Bluetooth-Konfiguration möglich (Kein NetworkManager gefunden: %s)." +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_Entsperren" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Benutzung Ihres Mobiltelefons als Netzwerkgerät (PAN/NAP)" +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Verbindungsinformationen" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Zugriff auf das Internet über Ihr Mobiltelefon (DUN)" +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Aktive Netzwerkverbindungen" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 -msgid "" -"Your mobile broadband connection is configured with the following settings:" -msgstr "" -"Ihre mobile Breitbandverbindung wurde mit den folgenden Einstellungen " -"eingerichtet:" +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 +msgid "Your mobile broadband connection is configured with the following settings:" +msgstr "Ihre mobile Breitbandverbindung wurde mit den folgenden Einstellungen eingerichtet:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Ihr Gerät:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Ihr Dienstanbieter:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Ihr Abrechnungsmodus:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 -msgid "" -"A connection will now be made to your mobile broadband provider using the " -"settings you selected. If the connection fails or you cannot access network " -"resources, double-check your settings. To modify your mobile broadband " -"connection settings, choose \"Network Connections\" from the System >> " -"Preferences menu." -msgstr "" -"Eine Verbindung zu Ihrem mobilen Breitbandanbieter wird nun anhand Ihrer " -"gewählten Einstellungen eingerichtet. Falls die Verbindung scheitert oder " -"Sie nicht auf Netzwerkressourcen zugreifen können, überprüfen Sie Ihre " -"Einstellungen nochmals. Um die Einstellungen für mobile " -"Breitbandverbindungen zu ändern, wählen Sie »Netzwerkverbindungen« im Menü " -"System → Einstellungen." +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 +msgid "A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose \"Network Connections\" from the System >> Preferences menu." +msgstr "Eine Verbindung zu Ihrem mobilen Breitbandanbieter wird nun anhand Ihrer gewählten Einstellungen eingerichtet. Falls die Verbindung scheitert oder Sie nicht auf Netzwerkressourcen zugreifen können, überprüfen Sie Ihre Einstellungen nochmals. Um die Einstellungen für mobile Breitbandverbindungen zu ändern, wählen Sie »Netzwerkverbindungen« im Menü System → Einstellungen." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Mobile Breitbandeinstellungen bestätigen" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Nicht aufgelistet" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "Abrechnung_smodus auswählen:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "Zugangspunkt (APN) zum ausgewählten _Abrechnungsmodus:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" -"Warning: Selecting an incorrect plan may result in billing issues for your " -"broadband account or may prevent connectivity.\n" +"Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"Warnung: Die Auswahl des falschen Abrechnungsmodus könnte zu " -"Bezahlungsproblemen für Ihren Breitbandzugang führen oder eine Verbindung " -"verhindern.\n" +"Warnung: Die Auswahl des falschen Abrechnungsmodus könnte zu Bezahlungsproblemen für Ihren Breitbandzugang führen oder eine Verbindung verhindern.\n" "\n" -"Im Zweifelsfall sollten Sie Ihren Dienstanbieter nach dem Abrechnungsmodus " -"Ihres Zugangspunktes fragen." +"Im Zweifelsfall sollten Sie Ihren Dienstanbieter nach dem Abrechnungsmodus Ihres Zugangspunktes fragen." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Abrechnungsmodus wählen" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Mein Abrechnungsmodus ist nicht aufgelistet …" -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "Dienstanbieter aus einer _Liste auswählen:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Dienstanbieter" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" -msgstr "" -"Ich kann meinen Dienstanbieter nicht finden und möchte ihn _manuell eingeben:" +msgstr "Ich kann meinen Dienstanbieter nicht finden und möchte ihn _manuell eingeben:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Dienstanbieter:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" -msgstr "" -"Mein Dienstanbieter verwendet GSM-Technologien (GPRS, EDGE, UMTS, HSPA)" +msgstr "Mein Dienstanbieter verwendet GSM-Technologien (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Mein Dienstanbieter verwendet CDMA-Technologien (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Dienstanbieter auswählen" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Länder- oder Regionsliste:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "Land oder Region" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "Mein Land ist nicht aufgelistet" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Land oder Region des Dienstanbieters auswählen" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Installiertes GSM-Gerät" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Installiertes CDMA-Gerät" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 -msgid "" -"This assistant helps you easily set up a mobile broadband connection to a " -"cellular (3G) network." -msgstr "" -"Dieser Assistent hilft Ihnen bei der Einrichtung einer mobilen " -"Breitbandverbindung über ein UMTS-(3G)-Netzwerk." +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 +msgid "This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network." +msgstr "Dieser Assistent hilft Ihnen bei der Einrichtung einer mobilen Breitbandverbindung über ein UMTS-(3G)-Netzwerk." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Folgende Informationen sind notwendig:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "Name Ihres Breitbandanbieters" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "Name des Abrechnungsmodus Ihres Dienstanbieters" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" -msgstr "" -"(in einigen Fällen) Name des Zugangspunktes für Ihren Abrechnungsmodus:" +msgstr "(in einigen Fällen) Name des Zugangspunktes für Ihren Abrechnungsmodus:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Eine Verbindung für dieses mobile Brei_tbandgerät einrichten:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Irgendein Gerät" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Eine mobile Breitbandverbindung einrichten" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Neue mobile Breitbandverbindung" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "Neu …" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "E_rzeugen" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format -msgid "" -"Passwords or encryption keys are required to access the wireless network " -"'%s'." -msgstr "" -"Es werden Passwörter oder Schlüssel für die Verschlüsselung benötigt, um " -"sich mit dem Funknetzwerk »%s« zu verbinden." +msgid "Passwords or encryption keys are required to access the Wi-Fi network '%s'." +msgstr "Es werden Passwörter oder Schlüssel für die Verschlüsselung benötigt, um sich mit dem Funknetzwerk »%s« zu verbinden." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 -msgid "Wireless Network Authentication Required" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" msgstr "Legitimierung für Funknetzwerk wird benötigt" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 -msgid "Authentication required by wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" msgstr "Legitimierung für Funknetzwerk wird benötigt" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 -msgid "Create New Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" msgstr "Neues Funknetzwerk erstellen" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 -msgid "New wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" msgstr "Neues Funknetzwerk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "Enter a name for the wireless network you wish to create." -msgstr "" -"Bitte geben Sie den Namen des Funknetzwerks ein, das Sie erstellen möchten." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "Bitte geben Sie den Namen des Funknetzwerks ein, das Sie erstellen möchten." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 -msgid "Connect to Hidden Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" msgstr "Mit einem verborgenen Funknetzwerk verbinden" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 -msgid "Hidden wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" msgstr "Verborgenes Funknetzwerk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." -msgstr "" -"Bitte geben Sie den Namen und die Sicherheitseinstellungen des verborgenen " -"Funknetzwerks ein, mit dem Sie sich verbinden möchten." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 +msgid "Enter the name and security details of the hidden Wi-Fi network you wish to connect to." +msgstr "Bitte geben Sie den Namen und die Sicherheitseinstellungen des verborgenen Funknetzwerks ein, mit dem Sie sich verbinden möchten." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" -msgstr "Verbi_ndung:" +msgid "Wi-Fi _security:" +msgstr "Sicherheit des _Funknetzwerks:" -#: ../src/libnm-gtk/wifi.ui.h:3 -msgid "Wireless _adapter:" -msgstr "Funknetzwerkk_arte:" +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "_Verbindung:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "_Sicherheit des Funknetzwerks:" +msgid "Wi-Fi _adapter:" +msgstr "Funknetzwerkk_arte:" #: ../src/main.c:73 msgid "Usage:" msgstr "Aufruf:" #: ../src/main.c:75 -msgid "" -"This program is a component of NetworkManager (http://projects.gnome.org/" -"NetworkManager)." -msgstr "" -"Dieses Programm ist eine Komponente von NetworkManager (http://projects." -"gnome.org/NetworkManager)." +msgid "This program is a component of NetworkManager (http://projects.gnome.org/NetworkManager)." +msgstr "Dieses Programm ist eine Komponente von NetworkManager (http://projects.gnome.org/NetworkManager)." #: ../src/main.c:76 -msgid "" -"It is not intended for command-line interaction but instead runs in the " -"GNOME desktop environment." -msgstr "" -"Es ist nicht für die Befehlszeileninteraktion bestimmt, sondern für den " -"Betrieb innerhalb der GNOME-Arbeitsumgebung." +msgid "It is not intended for command-line interaction but instead runs in the GNOME desktop environment." +msgstr "Es ist nicht für die Befehlszeileninteraktion bestimmt, sondern für den Betrieb innerhalb der GNOME-Arbeitsumgebung." #: ../src/mb-menu-item.c:57 msgid "EVDO" @@ -2610,51 +2667,57 @@ msgstr "HSPA" #: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" +msgid "HSPA+" +msgstr "HSPA+" -#: ../src/mb-menu-item.c:109 +#: ../src/mb-menu-item.c:77 +msgid "LTE" +msgstr "LTE" + +#: ../src/mb-menu-item.c:113 msgid "not enabled" msgstr "nicht aktiviert" -#: ../src/mb-menu-item.c:115 +#: ../src/mb-menu-item.c:119 msgid "not registered" msgstr "nicht angemeldet" -#: ../src/mb-menu-item.c:133 +#: ../src/mb-menu-item.c:137 #, c-format msgid "Home network (%s)" msgstr "Heimnetzwerk (%s)" -#: ../src/mb-menu-item.c:135 +#: ../src/mb-menu-item.c:139 #, c-format msgid "Home network" msgstr "Heimnetzwerk" -#: ../src/mb-menu-item.c:143 +#: ../src/mb-menu-item.c:147 msgid "searching" msgstr "Suche läuft" -#: ../src/mb-menu-item.c:146 +#: ../src/mb-menu-item.c:150 msgid "registration denied" msgstr "Registrierung abgelehnt" -#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 +#: ../src/mb-menu-item.c:155 +#: ../src/mb-menu-item.c:161 #, c-format msgid "%s (%s roaming)" msgstr "%s (%s-Roaming)" -#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 +#: ../src/mb-menu-item.c:157 +#: ../src/mb-menu-item.c:163 #, c-format msgid "%s (roaming)" msgstr "%s (Roaming)" -#: ../src/mb-menu-item.c:162 +#: ../src/mb-menu-item.c:166 #, c-format msgid "Roaming network (%s)" msgstr "Roaming-Netzwerk (%s)" -#: ../src/mb-menu-item.c:164 +#: ../src/mb-menu-item.c:168 #, c-format msgid "Roaming network" msgstr "Roaming-Netzwerk" @@ -2663,87 +2726,80 @@ msgid "Default" msgstr "Vorgabe" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"Das Netzwerk-Manager-Applet konnte benötigte Ressourcen nicht finden (Die ." -"ui-Datei wurde nicht gefunden)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "Verbindung mit %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Es wurde kein CA-Zertifikat ausgewählt" -#: ../src/wireless-security/eap-method.c:280 -msgid "" -"Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" -msgstr "" -"Benutzt man kein CA-Zertifikat, kann dies zu unsicheren Verbindungen oder " -"schadhaften Funknetzwerken führen. Möchten Sie ein CA-Zertifikat auswählen?" +#: ../src/wireless-security/eap-method.c:276 +msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate Authority certificate?" +msgstr "Benutzt man kein CA-Zertifikat, kann dies zu unsicheren Verbindungen oder schadhaften Funknetzwerken führen. Möchten Sie ein CA-Zertifikat auswählen?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "CA-Zertifikat auswählen" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER-, PEM- oder PKCS#12-Schlüssel (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER- oder PEM-Zertifikate (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-fast.ui.h:2 -msgid "Allow automatic PAC pro_visioning" -msgstr "_Automatische PAC-Bereitstellung erlauben" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" -#: ../src/wireless-security/eap-method-fast.ui.h:3 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -#: ../src/wireless-security/eap-method-ttls.ui.h:2 -msgid "Anony_mous identity:" -msgstr "Anony_me Identität:" +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "PAC-Datei wählen …" -#: ../src/wireless-security/eap-method-fast.ui.h:4 +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC-Dateien (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Alle Dateien" + +#: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Anonym" -#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-fast.ui.h:3 msgid "Authenticated" msgstr "Legitimiert" -#: ../src/wireless-security/eap-method-fast.ui.h:6 +#: ../src/wireless-security/eap-method-fast.ui.h:4 msgid "Both" msgstr "Beide" -#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "Anony_me Identität:" + +#: ../src/wireless-security/eap-method-fast.ui.h:6 msgid "PAC _file:" msgstr "_PAC-Datei:" -#: ../src/wireless-security/eap-method-fast.ui.h:8 -#: ../src/wireless-security/eap-method-peap.ui.h:8 +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 msgid "_Inner authentication:" msgstr "I_nnere Legitimierung:" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "PAC-Datei wählen …" - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "PAC-Dateien (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Alle Dateien" +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "_Automatische PAC-Bereitstellung erlauben" #: ../src/wireless-security/eap-method-peap.c:263 #: ../src/wireless-security/wireless-security.c:382 @@ -2756,25 +2812,25 @@ msgid "Choose a Certificate Authority certificate..." msgstr "CA-Zertifikat auswählen …" +#: ../src/wireless-security/eap-method-peap.ui.h:3 +msgid "Version 0" +msgstr "Version 0" + #: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 +msgid "Version 1" +msgstr "Version 1" + +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 #: ../src/wireless-security/eap-method-ttls.ui.h:3 msgid "C_A certificate:" msgstr "C_A-Zertifikat:" -#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:8 msgid "PEAP _version:" msgstr "_PEAP-Version:" -#: ../src/wireless-security/eap-method-peap.ui.h:6 -msgid "Version 0" -msgstr "Version 0" - -#: ../src/wireless-security/eap-method-peap.ui.h:7 -msgid "Version 1" -msgstr "Version 1" - -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "_Jedesmal nach diesem Passwort fragen" @@ -2784,15 +2840,11 @@ #: ../src/wireless-security/eap-method-tls.c:249 msgid "" -"The selected private key does not appear to be protected by a password. " -"This could allow your security credentials to be compromised. Please select " -"a password-protected private key.\n" +"The selected private key does not appear to be protected by a password. This could allow your security credentials to be compromised. Please select a password-protected private key.\n" "\n" "(You can password-protect your private key with openssl)" msgstr "" -"Der ausgewählte geheime Schlüssel scheint nicht durch ein Passwort geschützt " -"zu sein. Dadurch könnte die Sicherheit Ihrer Anmeldedaten gefährdet werden. " -"Bitte wählen Sie einen passwortgeschützten privaten Schlüssel.\n" +"Der ausgewählte geheime Schlüssel scheint nicht durch ein Passwort geschützt zu sein. Dadurch könnte die Sicherheit Ihrer Anmeldedaten gefährdet werden. Bitte wählen Sie einen passwortgeschützten privaten Schlüssel.\n" "\n" "Sie können Ihren Schlüssel mittels Openssl durch ein Passwort schützen." @@ -2804,11 +2856,15 @@ msgid "Choose your private key..." msgstr "Ihren geheimen Schlüssel auswählen …" -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "I_dentität:" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "Benu_tzerzertifikat:" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "Geheimer _Schlüssel:" @@ -2816,10 +2872,6 @@ msgid "_Private key password:" msgstr "_Passwort des geheimen Schlüssels:" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "Benu_tzerzertifikat:" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "Diese _Warnung nicht mehr anzeigen" @@ -2849,46 +2901,116 @@ msgstr "Geschütztes EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 -#: ../src/wireless-security/ws-wep-key.ui.h:5 +#: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 msgid "Au_thentication:" msgstr "_Legitimierung:" #: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "Offenes System" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "Gemeinsamer Schlüssel" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (Vorgabe)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:6 -msgid "Open System" -msgstr "Offenes System" - #: ../src/wireless-security/ws-wep-key.ui.h:7 -msgid "Shared Key" -msgstr "Gemeinsamer Schlüssel" +msgid "_Key:" +msgstr "_Schlüssel:" #: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "Schlüssel an_zeigen" -#: ../src/wireless-security/ws-wep-key.ui.h:9 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "WEP-Inde_x:" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "_Schlüssel:" +#~ msgid "An unknown error occurred." +#~ msgstr "Ein unbekannter Fehler ist aufgetreten." + +#~ msgid "Could not edit new connection" +#~ msgstr "Neue Verbindung konnte nicht bearbeitet werden" + +#~ msgid "Wireless Networks (%s)" +#~ msgstr "Funknetzwerke (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "Funknetzwerk (%s)" + +#~ msgid "Wireless Network" + +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "Funknetzwerk" +#~ msgstr[1] "Funknetzwerke" + +#~ msgid "wireless is disabled" +#~ msgstr "Funknetzwerke sind deaktiviert" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "Funknetzwerke sind durch Hardware-Schalter deaktiviert" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "Funknetzwerkverbindung mit »%s« wird vorbereitet …" + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "Funknetzwerkverbindung mit »%s« wird vorbereitet …" + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "Anfordern einer Netzwerkadresse vom Funknetzwerk »%s« …" + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "Funknetzwerkverbindung mit »%s« ist aktiv" + +#~ msgid "Wired" +#~ msgstr "Kabelgebunden" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "Sichere WiFi-Benutzerschnittstelle konnte nicht geladen werden." + +#~ msgid "Wireless" +#~ msgstr "Funknetzwerk" + +#~ msgid "Wireless connection %d" +#~ msgstr "Funknetzwerkverbindung %d" + +#~ msgid "_Import" +#~ msgstr "_Importieren" + +#~ msgid "Could not edit imported connection" +#~ msgstr "Importierte Verbindung konnte nicht bearbeitet werden" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "" +#~ "Kein VPN-Plugin verfügbar. Bitte installieren Sie eines, um diesen Knopf " +#~ "zu aktivieren." + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "Es ist unbekannt, wie »%s«-Verbindungen bearbeitet werden können" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "Das Bluetooth-Gerät konnte nicht gefunden werden." + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "" +#~ "Keine Bluetooth-Konfiguration möglich (Verbindung mit D-Bus-Proxy " +#~ "fehlgeschlagen)." #~ msgid "_Security:" #~ msgstr "_Sicherheit:" @@ -2900,9 +3022,6 @@ #~ msgid "United Kingdom" #~ msgstr "Vereinigtes Königreich" -#~ msgid "C_onnect" -#~ msgstr "_Verbinden" - #~ msgid "Other Wireless Network..." #~ msgstr "Anderes Funknetzwerk …" diff -Nru network-manager-applet-0.9.4.1/po/el.po network-manager-applet-0.9.6.2+git201210311320.2620/po/el.po --- network-manager-applet-0.9.4.1/po/el.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/el.po 2012-10-31 13:20:57.000000000 +0000 @@ -11,80 +11,115 @@ msgid "" msgstr "" "Project-Id-Version: network-manager-applet\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-11-21 11:49+0200\n" -"PO-Revision-Date: 2011-11-21 11:55+0200\n" -"Last-Translator: Kostas Papadimas \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-06-25 18:50+0000\n" +"PO-Revision-Date: 2012-06-28 18:03+0200\n" +"Last-Translator: Tom Tryfonidis \n" "Language-Team: Greek \n" -"Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Virtaal 0.6.1\n" #: ../nm-applet.desktop.in.h:1 +msgid "Network" +msgstr "Δίκτυο" + +#: ../nm-applet.desktop.in.h:2 msgid "Manage your network connections" msgstr "Διαχείριση των συνδέσεων δικτύου" -#: ../nm-applet.desktop.in.h:2 -msgid "Network" -msgstr "Δίκτυο" +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Συνδέσεις δικτύου" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "Απενεργοποίηση δημιουργίας WiFi" +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Διαχείριση και αλλαγή ρυθμίσεων των συνδέσεων δικτύου" -#: ../nm-applet.schemas.in.h:2 +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Απενεργοποίηση ειδοποιήσεων σύνδεσης" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +#| msgid "" +#| "Set this to TRUE to disable notifications when connecting to a network." +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "Ορίστε ως αληθής για να απενεργοποιήσετε τις ειδοποιήσεις όποτε συνδέεστε σε δίκτυο." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Απενεργοποίηση ειδοποιήσεων αποσύνδεσης" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "Ορίστε ως TRUE για να απενεργοποιήσετε τις ειδοποιήσεις όποτε συνδέεστε σε δίκτυο." - -#: ../nm-applet.schemas.in.h:5 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "Ορίστε ως TRUE για να απενεργοποιήσετε τις ειδοποιήσεις όποτε αποσυνδέεστε από δίκτυο." - -#: ../nm-applet.schemas.in.h:6 -msgid "Set this to TRUE to disable notifications when wireless networks are available." -msgstr "Ορίστε ως TRUE για να απενεργοποιήσετε τις ειδοποιήσεις όποτε υπάρχουν διαθέσιμα ασύρματα δίκτυα." - -#: ../nm-applet.schemas.in.h:7 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "Ορισμός ως TRUE για να απενεργοποιήσετε την δημιουργία adhoc δικτύων κατά τη χρήση της μικροεφαρμογής." - -#: ../nm-applet.schemas.in.h:8 -msgid "Stamp" -msgstr "Σφραγίδα" +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "Set this to true to disable notifications when disconnecting from a network." +msgstr "Ορίστε ως αληθής για να απενεργοποιήσετε τις ειδοποιήσεις όποτε αποσυνδέεστε από δίκτυο." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +#| msgid "Disable connected notifications" +msgid "Disable VPN notifications" +msgstr "Απενεργοποίηση ειδοποιήσεων VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "Set this to true to disable notifications when connecting to or disconnecting from a VPN." +msgstr "Ορίστε ως αληθής για να απενεργοποιήσετε τις ειδοποιήσεις όποτε αποσυνδέεστε από ένα δίκτυο VPN." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Απενεργοποίηση ειδοποιήσεων διαθέσιμων δικτύων" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#| msgid "" +#| "Set this to TRUE to disable notifications when wireless networks are " +#| "available." +msgid "Set this to true to disable notifications when wireless networks are available." +msgstr "Ορίστε ως αληθής για να απενεργοποιήσετε τις ειδοποιήσεις όποτε υπάρχουν διαθέσιμα ασύρματα δίκτυα." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 +msgid "Stamp" +msgstr "Σφραγίδα" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "Χρησιμοποιείται για να καθορίζει αν οι ρυθμίσεις πρέπει να μεταφερθούν σε νέα έκδοση." -#: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "Διαχείριση και αλλαγή ρυθμίσεων των συνδέσεων δικτύου" +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "Απενεργοποίηση δημιουργίας WiFi" -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -msgid "Network Connections" -msgstr "Συνδέσεις δικτύου" +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +#| msgid "" +#| "Set to TRUE to disable creation of adhoc networks when using the applet." +msgid "Set to true to disable creation of adhoc networks when using the applet." +msgstr "Ορισμός ως αληθής για να απενεργοποιήσετε την δημιουργία adhoc δικτύων κατά τη χρήση της μικροεφαρμογής." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +#| msgid "Choose CA Certificate" +msgid "Ignore CA certificate" +msgstr "Αγνόηση πιστοποιητικού CA" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "Set this to true to disable warnings about CA certificates in EAP authentication." +msgstr "Ορίστε ως αληθής για να απενεργοποιήσετε τις προειδοποιήσεις σχετικά με τα πιστοποιητικά CA στην EAP πιστοποίηση." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "Set this to true to disable warnings about CA certificates in phase 2 of EAP authentication." +msgstr "Ορίστε ως αληθής για να απενεργοποιήσετε τις προειδοποιήσεις σχετικά με τα πιστοποιητικά CA στην 2η φάσης της EAP πιστοποίησης." #: ../src/applet-device-bt.c:174 #: ../src/applet-device-cdma.c:399 #: ../src/applet-device-gsm.c:446 #: ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 +#: ../src/applet-device-wifi.c:862 #: ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Διαθέσιμα" @@ -102,7 +137,7 @@ #: ../src/applet-device-cdma.c:445 #: ../src/applet-device-gsm.c:492 #: ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1280 +#: ../src/applet-device-wifi.c:1264 #: ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Η σύνδεση επιτεύχθηκε" @@ -139,7 +174,7 @@ #: ../src/applet-device-cdma.c:490 #: ../src/applet-device-gsm.c:537 #: ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2479 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "Ζητείται διεύθυνση δικτύου για το '%s'..." @@ -159,7 +194,7 @@ #: ../src/applet-device-cdma.c:345 #: ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:430 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Κινητή ευρυζωνική (%s)" @@ -167,8 +202,8 @@ #: ../src/applet-device-cdma.c:347 #: ../src/applet-device-gsm.c:394 #: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -#: ../src/connection-editor/nm-connection-list.c:1474 +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "Κινητή ευρυζωνική" @@ -337,7 +372,7 @@ #. Notify user of unmanaged or unavailable device #: ../src/applet-device-wired.c:232 -#: ../src/applet.c:1485 +#: ../src/applet.c:1508 msgid "disconnected" msgstr "χωρίς σύνδεση" @@ -378,94 +413,113 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "Σύνδεση σε _κρυφό ασύρματο δίκτυο..." -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "_Δημιουργία νέου ασύρματου δικτύου..." -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(κανένα)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "Ασύρματα δίκτυα (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "Ασύρματο δίκτυο (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Ασύρματο δίκτυο" msgstr[1] "Ασύρματα δίκτυα" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "Ασύρματη δικτύωση απενεργοποιημένη" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "η ασύρματη δικτύωση είναι απενεργοποιημένη από το διακόπτη" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "Περισσότερα δίκτυα" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "Ασύρματα δίκτυα διαθέσιμα" -#: ../src/applet-device-wifi.c:1083 -msgid "Click on this icon to connect to a wireless network" -msgstr "Κάντε κλικ στο εικονίδιο για να συνδεθείτε σε ασύρματο δίκτυο" - -#: ../src/applet-device-wifi.c:1084 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "Χρησιμοποιήστε το μενού δικτύου για να συνδεθείτε σε ασύρματο δίκτυο" -#: ../src/applet-device-wifi.c:1087 -#: ../src/applet.c:901 +#: ../src/applet-device-wifi.c:1072 +#: ../src/applet.c:924 msgid "Don't show this message again" msgstr "Να μην εμφανιστεί αυτό το μήνυμα ξανά" -#: ../src/applet-device-wifi.c:1279 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Συνδεθήκατε στο ασύρματο δίκτυο '%s'." -#: ../src/applet-device-wifi.c:1310 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "Προετοιμασία της ασύρματης σύνδεσης '%s'..." -#: ../src/applet-device-wifi.c:1313 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "Ρύθμιση της ασύρματης σύνδεσης '%s'..." -#: ../src/applet-device-wifi.c:1316 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "Απαιτείται πιστοποίηση του χρήστη για το ασύρματο δίκτυο '%s'..." -#: ../src/applet-device-wifi.c:1319 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "Ζητείται διεύθυνση ασύρματου δικτύου για το '%s'..." -#: ../src/applet-device-wifi.c:1340 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "Ασύρματη σύνδεση '%s' ενεργή: %s (%d%%)" -#: ../src/applet-device-wifi.c:1345 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "Ασύρματη σύνδεση '%s' ενεργή" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Αποτυχία ενεργοποίησης της σύνδεσης" + +#: ../src/applet-device-wifi.c:1379 +#: ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 +#: ../src/applet.c:534 +#: ../src/applet.c:560 +msgid "Unknown error" +msgstr "Άγνωστο σφάλμα" + +#: ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 +#: ../src/applet.c:563 +msgid "Connection failure" +msgstr "Αποτυχία σύνδεσης" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Αποτυχία προσθήκης νέας σύνδεσης" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -492,9 +546,9 @@ msgstr "Σφάλμα εμφάνισης πληροφοριών σύνδεσης:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:396 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -503,197 +557,202 @@ msgstr "Δυναμικό WEP" #: ../src/applet-dialogs.c:113 -#: ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 -#: ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 +#: ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "Κανένα" -#: ../src/applet-dialogs.c:352 -#: ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (προεπιλογή)" + +#: ../src/applet-dialogs.c:346 +#: ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:354 -#: ../src/applet-dialogs.c:492 +#: ../src/applet-dialogs.c:348 +#: ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Άγνωστο" -#: ../src/applet-dialogs.c:367 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:369 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "άγνωστο" -#: ../src/applet-dialogs.c:381 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "άγνωστο" -#: ../src/applet-dialogs.c:416 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Ethernet (%s)" -#: ../src/applet-dialogs.c:419 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:426 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:428 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:432 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:438 -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:432 +#: ../src/applet-dialogs.c:791 msgid "General" msgstr "Γενικό" -#: ../src/applet-dialogs.c:442 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "Διεπαφή:" -#: ../src/applet-dialogs.c:458 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "Διεύθυνση υλικού:" #. Driver -#: ../src/applet-dialogs.c:466 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "Οδηγός:" -#: ../src/applet-dialogs.c:495 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "Ταχύτητα:" -#: ../src/applet-dialogs.c:505 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "Ασφάλεια:" -#: ../src/applet-dialogs.c:518 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:531 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:548 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:559 -#: ../src/applet-dialogs.c:666 +#: ../src/applet-dialogs.c:553 +#: ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "Διεύθυνση IP:" -#: ../src/applet-dialogs.c:561 -#: ../src/applet-dialogs.c:577 +#: ../src/applet-dialogs.c:555 +#: ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "Άγνωστο" -#: ../src/applet-dialogs.c:575 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "Διεύθυνση μετάδοσης:" #. Prefix -#: ../src/applet-dialogs.c:584 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "Μάσκα υποδικτύου:" -#: ../src/applet-dialogs.c:586 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "Άγνωστο" -#: ../src/applet-dialogs.c:594 -#: ../src/applet-dialogs.c:681 +#: ../src/applet-dialogs.c:588 +#: ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "Default Route:" -#: ../src/applet-dialogs.c:606 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "Πρωτεύον DNS:" -#: ../src/applet-dialogs.c:615 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "Δευτερεύον DNS:" -#: ../src/applet-dialogs.c:625 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "Τριτεύον DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:640 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:649 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "Αγνόηση" -#: ../src/applet-dialogs.c:802 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "Τύπος VPN:" -#: ../src/applet-dialogs.c:809 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "Πύλη VPN:" -#: ../src/applet-dialogs.c:815 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "Όνομα χρήστη VPN:" -#: ../src/applet-dialogs.c:821 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "Διαφημιστικό VPN:" -#: ../src/applet-dialogs.c:827 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "Σύνδεση βάσης:" -#: ../src/applet-dialogs.c:829 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "Άγνωστο" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:892 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "Δε βρέθηκαν έγκυρες ενεργές συνδέσεις!" -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -703,32 +762,48 @@ "Copyright © 2005-2008 Novell, Inc.\n" "και πολλοί άλλοι προγραμματιστές της κοινότητας και μεταφραστές" -#: ../src/applet-dialogs.c:948 +#: ../src/applet-dialogs.c:942 msgid "Notification area applet for managing your network devices and connections." msgstr "Μικροεφαρμογή για τη διαχείριση των συσκευών και των συνδέσεων δικτύου σας." -#: ../src/applet-dialogs.c:950 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "Ιστοσελίδα NetworkManager" -#: ../src/applet-dialogs.c:965 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "Λείπουν πόροι" -#: ../src/applet-dialogs.c:990 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "Συνθηματικό κινητού ευρυζωνικού δικτύου" -#: ../src/applet-dialogs.c:999 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "Απαιτείται συνθηματικό για σύνδεση στο '%s'." -#: ../src/applet-dialogs.c:1018 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "Συνθηματικό:" -#: ../src/applet.c:990 +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Αποτυχία προσθήκης/ενεργοποίησης σύνδεσης" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Αποτυχία αποσύνδεσης της συσκευής" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Αποτυχία αποσύνδεσης" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "Απέτυχε η ενεργοποίηση της σύνδεσης" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -737,7 +812,7 @@ "\n" "Απέτυχε η σύνδεση VPN '%s', γιατί διακόπηκε η σύνδεση δικτύου." -#: ../src/applet.c:993 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" @@ -746,7 +821,7 @@ "\n" "Απέτυχε η σύνδεση VPN '%s', γιατί η υπηρεσία VPN διακόπηκε ανεξήγητα." -#: ../src/applet.c:996 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -755,7 +830,7 @@ "\n" "Απέτυχε η σύνδεση VPN '%s', γιατί η υπηρεσία VPN επέστρεψε άκυρες ρυθμίσεις." -#: ../src/applet.c:999 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -764,7 +839,7 @@ "\n" "Απέτυχε η σύνδεση VPN '%s', γιατί έληξε το χρονικό όριο σύνδεσης." -#: ../src/applet.c:1002 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -773,7 +848,7 @@ "\n" "Απέτυχε η σύνδεση VPN '%s', γιατί δεν έγινε έγκαιρη εκκίνηση της υπηρεσίας VPN." -#: ../src/applet.c:1005 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -782,7 +857,7 @@ "\n" "Απέτυχε η σύνδεση VPN '%s', γιατί απέτυχε η εκκίνηση της υπηρεσίας VPN." -#: ../src/applet.c:1008 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -791,7 +866,7 @@ "\n" "Απέτυχε η σύνδεση VPN '%s', γιατί δεν βρέθηκαν έγκυρα VPN secrets." -#: ../src/applet.c:1011 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -800,7 +875,7 @@ "\n" "Απέτυχε η σύνδεση VPN '%s', γιατί τα VPN secrets ήταν άκυρα." -#: ../src/applet.c:1018 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -809,7 +884,7 @@ "\n" "Απέτυχε η σύνδεση VPN '%s'." -#: ../src/applet.c:1036 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -818,7 +893,7 @@ "\n" "Αποσυνδεθήκατε από το VPN '%s', γιατί διακόπηκε η σύνδεση δικτύου." -#: ../src/applet.c:1039 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -827,7 +902,7 @@ "\n" "Αποσυνδεθήκατε από το VPN '%s', γιατί διακόπηκε η υπηρεσία VPN." -#: ../src/applet.c:1045 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -836,17 +911,32 @@ "\n" "Αποσυνδεθήκατε από το VPN '%s'." -#: ../src/applet.c:1079 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"Έχει πραγματοποιηθεί επιτυχώς η σύνδεση VPN.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "Έχει πραγματοποιηθεί επιτυχώς η σύνδεση VPN.\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "Μήνυμα εισόδου VPN" -#: ../src/applet.c:1085 -#: ../src/applet.c:1093 -#: ../src/applet.c:1143 +#: ../src/applet.c:1108 +#: ../src/applet.c:1116 +#: ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "Απέτυχε η σύνδεση VPN" -#: ../src/applet.c:1150 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -858,7 +948,7 @@ "Απέτυχε η σύνδεση VPN '%s', γιατί απέτυχε η εκκίνηση της υπηρεσίας VPN.\n" "
%s" -#: ../src/applet.c:1153 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -870,140 +960,140 @@ "Απέτυχε η εκκίνηση της σύνδεσης VPN '%s'.\n" "
%s" -#: ../src/applet.c:1473 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "η συσκευή δεν είναι έτοιμη (λείπει το firmware)" -#: ../src/applet.c:1475 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "η συσκευή δεν είναι έτοιμη" -#: ../src/applet.c:1501 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "Αποσύνδεση" -#: ../src/applet.c:1515 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "δε γίνεται διαχείριση της συσκευής" -#: ../src/applet.c:1559 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "Δε βρέθηκαν συσκευές δικτύου" -#: ../src/applet.c:1647 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "Συνδέσεις _VPN" -#: ../src/applet.c:1704 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "_Ρύθμιση VPN..." -#: ../src/applet.c:1708 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "Α_ποσύνδεση VPN" -#: ../src/applet.c:1806 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "Ο NetworkManager δεν εκτελείται..." -#: ../src/applet.c:1811 -#: ../src/applet.c:2604 +#: ../src/applet.c:1830 +#: ../src/applet.c:2631 msgid "Networking disabled" msgstr "Δικτύωση απενεργοποιημένη" #. 'Enable Networking' item -#: ../src/applet.c:2032 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "Ενεργοποίηση _δικτύωσης" #. 'Enable Wireless' item -#: ../src/applet.c:2041 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "Ενεργοποίηση α_σύρματης δικτύωσης" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2050 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "Ενεργοποίηση _κινητής ευρυζωνικής" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2059 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "Ενεργοποίηση κινητής ευρυζωνικής WiMA_X" #. Toggle notifications item -#: ../src/applet.c:2070 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "Ενεργοποίηση ει_δοποιήσεων" #. 'Connection Information' item -#: ../src/applet.c:2081 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "Π_ληροφορίες σύνδεσης" #. 'Edit Connections...' item -#: ../src/applet.c:2091 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "Επεξεργασία συνδέσεων..." #. Help item -#: ../src/applet.c:2105 +#: ../src/applet.c:2124 msgid "_Help" msgstr "_Βοήθεια" #. About item -#: ../src/applet.c:2114 +#: ../src/applet.c:2133 msgid "_About" msgstr "Πε_ρί" -#: ../src/applet.c:2291 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "Χωρίς σύνδεση" -#: ../src/applet.c:2292 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "Αποσυνδεθήκατε από το δίκτυο." -#: ../src/applet.c:2473 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "Προετοιμασία της σύνδεσης '%s'..." -#: ../src/applet.c:2476 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Απαιτείται πιστοποίηση του χρήστη για τη σύνδεση '%s'..." -#: ../src/applet.c:2482 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "Σύνδεση '%s' ενεργή" -#: ../src/applet.c:2560 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "Εκκίνηση της σύνδεσης VPN '%s'..." -#: ../src/applet.c:2563 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "Απαιτείται πιστοποίηση του χρήστη για τη σύνδεση VPN '%s'..." -#: ../src/applet.c:2566 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "Ζητείται διεύθυνση VPN για το '%s'..." -#: ../src/applet.c:2569 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "Σύνδεση VPN '%s' ενεργή" -#: ../src/applet.c:2608 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "Δεν υπάρχει σύνδεση δικτύου" -#: ../src/applet.c:3258 +#: ../src/applet.c:3327 msgid "NetworkManager Applet" msgstr "Μικροεφαρμογή NetworkManager" @@ -1016,20 +1106,20 @@ msgstr "_Ξεκλείδωμα" #: ../src/info.ui.h:1 -msgid "Active Network Connections" -msgstr "Ενεργές συνδέσεις δικτύου" - -#: ../src/info.ui.h:2 msgid "Connection Information" msgstr "Πληροφορίες σύνδεσης" +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Ενεργές συνδέσεις δικτύου" + #: ../src/wired-8021x.ui.h:1 #: ../src/wired-dialog.c:104 msgid "Wired 802.1X authentication" msgstr "Πιστοποίηση ενσύρματου 802.1X" #: ../src/wired-8021x.ui.h:2 -#: ../src/libnm-gtk/wifi.ui.h:4 +#: ../src/libnm-gtk/wifi.ui.h:3 msgid "_Network name:" msgstr "Ό_νομα δικτύου:" @@ -1037,446 +1127,451 @@ msgid "automatic" msgstr "αυτόματα" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "Απέτυχε η ενημέρωση των μυστικών της σύνδεσης εξαιτίας άγνωστου σφάλματος." #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." msgstr "Οι διευθύνσεις IP επιτρέπουν την αναγνώριση του υπολογιστή σας στο δίκτυο. Πατήστε το κουμπί \"Προσθήκη\" για να προσθέσετε διεύθυνση IP." #: ../src/connection-editor/ce-ip4-routes.ui.h:2 #: ../src/connection-editor/ce-ip6-routes.ui.h:2 -msgid "If enabled, this connection will never be used as the default network connection." -msgstr "Αν είναι ενεργοποιημένο, αυτή η σύνδεση δε θα χρησιμοποιείται ποτέ ως προεπιλεγμένη σύνδεση δικτύου." +msgid "Ig_nore automatically obtained routes" +msgstr "Α_γνόηση διαδρομών που ελήφθησαν αυτόματα" #: ../src/connection-editor/ce-ip4-routes.ui.h:3 #: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" -msgstr "Α_γνόηση διαδρομών που ελήφθησαν αυτόματα" +msgid "_Use this connection only for resources on its network" +msgstr "Χρ_ησιμοποιήστε αυτή τη σύνδεση μόνο για πόρους του δικτύου της" #: ../src/connection-editor/ce-ip4-routes.ui.h:4 #: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "Use this c_onnection only for resources on its network" -msgstr "Χ_ρήση αυτής της σύνδεσης μόνο για πόρους του δικτύου της." +msgid "If enabled, this connection will never be used as the default network connection." +msgstr "Αν είναι ενεργοποιημένο, αυτή η σύνδεση δε θα χρησιμοποιείται ποτέ ως προεπιλεγμένη σύνδεση δικτύου." #: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 +#: ../src/wireless-security/eap-method-simple.ui.h:1 #: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "Εμ_φάνιση συνθηματικού" +msgid "_Username:" +msgstr "Όνομα _χρήστη:" #: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "_Συνθηματικό:" - -#: ../src/connection-editor/ce-page-dsl.ui.h:3 msgid "_Service:" msgstr "_Υπηρεσία:" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 +#: ../src/connection-editor/ce-page-dsl.ui.h:3 #: ../src/wireless-security/eap-method-leap.ui.h:3 #: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 #: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "Όνομα _χρήστη:" +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "Εμ_φάνιση συνθηματικού" + +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_Συνθηματικό:" #: ../src/connection-editor/ce-page-ip4.ui.h:1 #: ../src/connection-editor/ce-page-ip6.ui.h:1 -msgid "Addresses" -msgstr "Διευθύνσεις" - -#: ../src/connection-editor/ce-page-ip4.ui.h:2 -#: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wired.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:1 #: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 +#: ../src/wireless-security/eap-method-peap.ui.h:2 msgid "Automatic" msgstr "Αυτόματα" -#: ../src/connection-editor/ce-page-ip4.ui.h:3 -#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 msgid "Automatic with manual DNS settings" msgstr "Αυτόματα με χειροκίνητες ρυθμίσεις DNS" +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "Χειροκίνητα" + #: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" -msgstr "Ταυτότητα πελάτη D_HCP:" +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "Τοπικό ιδιωτικό (Link-Local)" #: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "Domains used when resolving host names. Use commas to separate multiple domains." -msgstr "Οι τομείς χρησιμοποιούνται για την ανάλυση του ονόματος συστημάτων. Χρησιμοποιήστε κόμματα για τον διαχωρισμό πολλαπλών τομέων" +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "Κοινή χρήση με άλλους υπολογιστές" -#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 #: ../src/connection-editor/ce-page-ip6.ui.h:6 -msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." -msgstr "Οι διευθύνσεις IP των name servers των domains χρησιμοποιούνται για την ανάλυση του ονόματος των συστημάτων. Χρησιμοποιήστε κόμματα για τον διαχωρισμό των διευθύνσεων των πολλαπλών domain name server." +msgid "_Method:" +msgstr "_Μέθοδος:" -#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip4.ui.h:7 #: ../src/connection-editor/ce-page-ip6.ui.h:7 -msgid "Link-Local" -msgstr "Τοπικό ιδιωτικό (Link-Local)" +msgid "Addresses" +msgstr "Διευθύνσεις" #: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 -#: ../src/connection-editor/page-ip4.c:169 -#: ../src/connection-editor/page-ip6.c:191 -msgid "Manual" -msgstr "Χειροκίνητα" +msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." +msgstr "Το αναγνωριστικό πελάτη DHCP επιτρέπει στον διαχειριστή του δικτύου να προσαρμόζει την ρύθμιση του υπολογιστή σας. Αν χρησιμοποιείται ένα αναγνωριστικό πελάτη DHCP, εισάγετε το εδώ." #: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv4 addressing for this connection to complete" -msgstr "Αίτημα διευθυνσιοδότησης IPv4 για ολοκλήρωση αυτής της σύνδεσης" +#: ../src/connection-editor/ce-page-ip6.ui.h:9 +msgid "Domains used when resolving host names. Use commas to separate multiple domains." +msgstr "Οι τομείς χρησιμοποιούνται για την ανάλυση του ονόματος συστημάτων. Χρησιμοποιήστε κόμματα για τον διαχωρισμό πολλαπλών τομέων" #: ../src/connection-editor/ce-page-ip4.ui.h:11 -#: ../src/connection-editor/ce-page-ip6.ui.h:10 -#: ../src/connection-editor/page-ip4.c:187 -#: ../src/connection-editor/page-ip6.c:211 -msgid "Shared to other computers" -msgstr "Κοινή χρήση με άλλους υπολογιστές" +msgid "D_HCP client ID:" +msgstr "Ταυτότητα πελάτη D_HCP:" #: ../src/connection-editor/ce-page-ip4.ui.h:12 -msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." -msgstr "Το αναγνωριστικό πελάτη DHCP επιτρέπει στον διαχειριστή του δικτύου να προσαρμόζει την ρύθμιση του υπολογιστή σας. Αν χρησιμοποιείται ένα αναγνωριστικό πελάτη DHCP, εισάγετε το εδώ." +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 +msgid "S_earch domains:" +msgstr "Τομείς ανα_ζήτησης:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 -msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "Κατά τη σύνδεση σε δίκτυα με IPv6, επιτρέπει στη σύνδεση να ολοκληρωθεί αν αποτύχει η διαμόρφωση IPv4 αλλά επιτύχει η διαμόρφωση IPv6." +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 +msgid "_DNS servers:" +msgstr "Εξυπηρετητές _DNS:" #: ../src/connection-editor/ce-page-ip4.ui.h:14 #: ../src/connection-editor/ce-page-ip6.ui.h:12 -msgid "_DNS servers:" -msgstr "Εξυπηρετητές _DNS:" +msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." +msgstr "Οι διευθύνσεις IP των name servers των domains χρησιμοποιούνται για την ανάλυση του ονόματος των συστημάτων. Χρησιμοποιήστε κόμματα για τον διαχωρισμό των διευθύνσεων των πολλαπλών domain name server." #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 -msgid "_Method:" -msgstr "_Μέθοδος:" +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "Απαιτείται IPv_4 διευθυνσιοδότηση για την ολοκλήρωση αυτής της σύνδεσης" #: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Routes…" -msgstr "Διαδ_ρομές..." +msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "Κατά τη σύνδεση σε δίκτυα με IPv6, επιτρέπει στη σύνδεση να ολοκληρωθεί αν αποτύχει η διαμόρφωση IPv4 αλλά επιτύχει η διαμόρφωση IPv6." #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 -msgid "_Search domains:" -msgstr "Τομείς ανα_ζήτησης:" +msgid "_Routes…" +msgstr "Διαδ_ρομές..." -#: ../src/connection-editor/ce-page-ip6.ui.h:9 -msgid "Require IPv6 addressing for this connection to complete" -msgstr "Αίτημα διευθυνσιοδότησης IPv6 για ολοκλήρωση αυτής της σύνδεσης" +#: ../src/connection-editor/ce-page-ip6.ui.h:13 +msgid "Require IPv_6 addressing for this connection to complete" +msgstr "Απαιτείται IPv_6 διευθυνσιοδότηση για την ολοκλήρωση αυτής της σύνδεσης" -#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds." msgstr "Κατά τη σύνδεση σε δίκτυα με IPv4, επιτρέπει στη σύνδεση να ολοκληρωθεί αν αποτύχει η διαμόρφωση IPv6 αλλά επιτύχει η διαμόρφωση IPv4." #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "Οποιαδήποτε" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -msgid "Advanced" -msgstr "Για προχωρημένους" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -msgid "Allow roaming if home network is not available" -msgstr "Να επιτρέπεται η περιαγωγή αν το οικιακό δίκτυο δεν είναι διαθέσιμο" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "Να προτιμάται το 3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "Οποιαδήποτε" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "Να προτιμάται το 2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 msgid "Basic" msgstr "Βασικό" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "Αλλαγή..." - -#: ../src/connection-editor/ce-page-mobile.ui.h:8 -msgid "N_etwork ID:" -msgstr "ID _δικτύου:" - -#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "Αριθ_μός:" #: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "PI_N:" -msgstr "PI_N:" +msgid "Advanced" +msgstr "Για προχωρημένους" #: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "Να προτιμάται το 2G (GPRS/EDGE)" +msgid "_APN:" +msgstr "_APN:" #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "Να προτιμάται το 3G (UMTS/HSPA)" +msgid "N_etwork ID:" +msgstr "ID _δικτύου:" #: ../src/connection-editor/ce-page-mobile.ui.h:13 -msgid "Sho_w passwords" -msgstr "Εμ_φάνιση συνθηματικών" +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "_Τύπος:" #: ../src/connection-editor/ce-page-mobile.ui.h:14 -msgid "_APN:" -msgstr "_APN:" +msgid "Change..." +msgstr "Αλλαγή..." + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +msgid "P_IN:" +msgstr "P_IN:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "_Τύπος:" +msgid "Allow _roaming if home network is not available" +msgstr "Να επιτρέπεται η περιαγωγή αν το οικιακό δίκτυο δεν είναι διαθέσιμο" + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "Εμ_φάνιση συνθηματικών" #: ../src/connection-editor/ce-page-ppp.ui.h:1 -msgid "Allow _BSD data compression" -msgstr "Να επιτρέπεται η συμπίεση _BSD" +msgid "Authentication" +msgstr "Πιστοποίηση" #: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "Να επιτρέπεται η συμπίεση _Deflate" - -#: ../src/connection-editor/ce-page-ppp.ui.h:3 msgid "Allowed methods:" msgstr "Επιτρεπτές μέθοδοι:" -#: ../src/connection-editor/ce-page-ppp.ui.h:4 -msgid "Authentication" -msgstr "Πιστοποίηση" +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "Ρύθμιση _μεθόδων..." -#: ../src/connection-editor/ce-page-ppp.ui.h:5 +#: ../src/connection-editor/ce-page-ppp.ui.h:4 msgid "Compression" msgstr "Συμπίεση" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "Χρήση κρυπτο_γράφησης Point-to-Point (MPPE)" + #: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" -msgstr "Ρύθμιση _μεθόδων..." +msgid "_Require 128-bit encryption" +msgstr "Να _απαιτείται κρυπτογράφηση 128-bit" #: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" -msgstr "Echo" +msgid "Use _stateful MPPE" +msgstr "Χρήση _stateful MPPE" #: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" -msgstr "Αποστολή πακέτων _echo PPP" +msgid "Allow _BSD data compression" +msgstr "Να επιτρέπεται η συμπίεση _BSD" #: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" -msgstr "Χρήση συμπίεσης κεφα_λίδων TCP" +msgid "Allow _Deflate data compression" +msgstr "Να επιτρέπεται η συμπίεση _Deflate" #: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" -msgstr "Χρήση _stateful MPPE" +msgid "Use TCP _header compression" +msgstr "Χρήση συμπίεσης κεφα_λίδων TCP" #: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" -msgstr "Να _απαιτείται κρυπτογράφηση 128-bit" +msgid "Echo" +msgstr "Echo" #: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "Χρήση κρυπτο_γράφησης Point-to-Point (MPPE)" - -#: ../src/connection-editor/ce-page-wired.ui.h:1 -msgid "1 Gb/s" -msgstr "1 Gb/s" +msgid "Send PPP _echo packets" +msgstr "Αποστολή πακέτων _echo PPP" #: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 Gb/s" +msgid "Twisted Pair (TP)" +msgstr "Συστραμμένο ζεύγος (TP)" #: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "10 Mb/s" -msgstr "10 Mb/s" +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" #: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "100 Mb/s" -msgstr "100 Mb/s" +msgid "BNC" +msgstr "BNC" #: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" #: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "Α_υτόματη διαπραγμάτευση" +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" #: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" +msgid "1 Gb/s" +msgstr "1 Gb/s" #: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "Full duple_x" -msgstr "Full duple_x" +msgid "10 Gb/s" +msgstr "10 Gb/s" #: ../src/connection-editor/ce-page-wired.ui.h:10 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "MT_U:" -msgstr "MT_U:" +msgid "_Port:" +msgstr "_Θύρα:" #: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "Media Independent Interface (MII)" +msgid "_Speed:" +msgstr "Τα_χύτητα:" #: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "Η διεύθυνση MAC που θα εισαχθεί εδώ θα χρησιμοποιηθεί ως διεύθυνση υλικού για τη συσκευή δικτύου στην οποία ενεργοποιείται αυτή η σύνδεση. Αυτό το χαρακτηριστικό είναι γνωστό ως κλωνοποίηση ή προστασία εκχώρησης MAC. Παράδειγμα: 00:11:22:33:44:55" +msgid "Full duple_x" +msgstr "Full duple_x" #: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Twisted Pair (TP)" -msgstr "Συστραμμένο ζεύγος (TP)" +msgid "Aut_onegotiate" +msgstr "Α_υτόματη διαπραγμάτευση" #: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "_Cloned MAC address:" -msgstr "_Κλωνοποιημένη διεύθυνση MAC:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wireless.ui.h:8 msgid "_Device MAC address:" msgstr "Διεύθυνση _MAC συσκευής:" +#: ../src/connection-editor/ce-page-wired.ui.h:15 +#: ../src/connection-editor/ce-page-wireless.ui.h:10 +msgid "C_loned MAC address:" +msgstr "_Κλωνοποιημένη διεύθυνση MAC:" + #: ../src/connection-editor/ce-page-wired.ui.h:16 -msgid "_Port:" -msgstr "_Θύρα:" +#: ../src/connection-editor/ce-page-wireless.ui.h:9 +msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "Η διεύθυνση MAC που θα εισαχθεί εδώ θα χρησιμοποιηθεί ως διεύθυνση υλικού για τη συσκευή δικτύου στην οποία ενεργοποιείται αυτή η σύνδεση. Αυτό το χαρακτηριστικό είναι γνωστό ως κλωνοποίηση ή προστασία εκχώρησης MAC. Παράδειγμα: 00:11:22:33:44:55" #: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Speed:" -msgstr "Τα_χύτητα:" +#: ../src/connection-editor/ce-page-wireless.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" #: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wireless.ui.h:6 msgid "bytes" msgstr "bytes" -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "Ad-hoc" - -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wireless.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" -msgstr "_Ζώνη:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "Κα_νάλι:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:7 +#: ../src/connection-editor/ce-page-wireless.ui.h:4 msgid "Infrastructure" msgstr "Υποδομή" -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" -msgstr "_Κατάσταση:" +#: ../src/connection-editor/ce-page-wireless.ui.h:5 +msgid "Ad-hoc" +msgstr "Ad-hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "Mb/s" -msgstr "Mb/s" +#: ../src/connection-editor/ce-page-wireless.ui.h:11 +msgid "mW" +msgstr "mW" #: ../src/connection-editor/ce-page-wireless.ui.h:12 -msgid "This option locks this connection to the wireless access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "Αυτή η επιλογή κλειδώνει αυτή τη σύνδεση στο ασύρματο σημείο πρόσβασης (AP) που καθορίζεται από το BSSID που εισήχθη εδώ. Παράδειγμα: 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wireless.ui.h:13 msgid "Transmission po_wer:" msgstr "Ισ_χύς μετάδοσης:" +#: ../src/connection-editor/ce-page-wireless.ui.h:13 +msgid "Mb/s" +msgstr "Mb/s" + #: ../src/connection-editor/ce-page-wireless.ui.h:14 +msgid "_Rate:" +msgstr "_Ρυθμός:" + +#: ../src/connection-editor/ce-page-wireless.ui.h:15 +msgid "This option locks this connection to the wireless access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "Αυτή η επιλογή κλειδώνει αυτή τη σύνδεση στο ασύρματο σημείο πρόσβασης (AP) που καθορίζεται από το BSSID που εισήχθη εδώ. Παράδειγμα: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-wireless.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" #: ../src/connection-editor/ce-page-wireless.ui.h:17 -msgid "_Rate:" -msgstr "_Ρυθμός:" +msgid "C_hannel:" +msgstr "Κα_νάλι:" #: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_SSID:" -msgstr "_SSID:" +msgid "Ban_d:" +msgstr "_Ζώνη:" + +#: ../src/connection-editor/ce-page-wireless.ui.h:19 +msgid "M_ode:" +msgstr "_Κατάσταση:" #: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "mW" -msgstr "mW" +msgid "SS_ID:" +msgstr "SS_ID:" #: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "_Security:" -msgstr "Ασ_φάλεια:" +msgid "S_ecurity:" +msgstr "Α_σφάλεια:" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Επιτρεπτές μέθοδοι πιστοποίησης" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 -msgid "C_HAP" -msgstr "C_HAP" +msgid "_EAP" +msgstr "_EAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 -msgid "Challenge Handshake Authentication Protocol" -msgstr "Challenge Handshake Authentication Protocol" - -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 msgid "Extensible Authentication Protocol" msgstr "Extensible Authentication Protocol" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "_PAP" + #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 -msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." -msgstr "Στις περισσότερες περιπτώσεις, οι εξυπηρετητές PPP του παρόχου υποστηρίζουν όλες τις μεθόδους πιστοποίησης. Αν αποτυγχάνει η σύνδεση, δοκιμάστε να απενεργοποιήσετε κάποιες μεθόδους." +msgid "Password Authentication Protocol" +msgstr "Password Authentication Protocol" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +msgid "C_HAP" +msgstr "C_HAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft Challenge Handshake Authentication Protocol" +msgid "Challenge Handshake Authentication Protocol" +msgstr "Challenge Handshake Authentication Protocol" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft Challenge Handshake Authentication Protocol έκδοση 2" +msgid "_MSCHAP" +msgstr "_MSCHAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" -msgstr "Password Authentication Protocol" +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft Challenge Handshake Authentication Protocol" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "_EAP" +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "_MSCHAP" +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft Challenge Handshake Authentication Protocol έκδοση 2" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "_PAP" +msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." +msgstr "Στις περισσότερες περιπτώσεις, οι εξυπηρετητές PPP του παρόχου υποστηρίζουν όλες τις μεθόδους πιστοποίησης. Αν αποτυγχάνει η σύνδεση, δοκιμάστε να απενεργοποιήσετε κάποιες μεθόδους." #: ../src/connection-editor/ce-vpn-wizard.ui.h:1 #: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 #: ../src/wireless-security/eap-method-peap.ui.h:1 #: ../src/wireless-security/eap-method-ttls.ui.h:1 #: ../src/wireless-security/ws-dynamic-wep.ui.h:1 @@ -1489,29 +1584,29 @@ msgstr "Επιλογή τύπου σύνδεσης VPN" #: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "Δημιουργία..." - -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." msgstr "Επιλέξτε τον τύπο VPN που επιθυμείτε να χρησιμοποιήσετε για τη νέα σύνδεση. Αν ο τύπος σύνδεσης VPN που επιθυμείτε να δημιουργήσετε δεν εμφανίζεται στη λίστα, ίσως δεν είναι εγκατεστημένο το κατάλληλο πρόσθετο VPN." +#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 +msgid "Create…" +msgstr "Δημιουργία..." + #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:901 -#: ../src/connection-editor/page-ip6.c:867 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "Διεύθυνση" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:918 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "Μάσκα δικτύου" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:935 -#: ../src/connection-editor/page-ip6.c:901 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "Gateway" @@ -1521,13 +1616,13 @@ msgstr "Απόσταση (metric)" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:884 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "Πρόθεμα" #: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1482 +#: ../src/connection-editor/nm-connection-editor.ui.h:8 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1535,7 +1630,7 @@ msgid "Could not load DSL user interface." msgstr "Αδυναμία φόρτωσης της διεπαφής χρήστη DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "Σύνδεση DSL %d" @@ -1587,16 +1682,26 @@ msgid "Disabled" msgstr "Απενεργοποιημένο" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Επιπλέον εξυπηρετητές _DNS:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Επιπλέον τομείς ανα_ζήτησης:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Επεξεργασία των διαδρομών IPv4 για την %s" -#: ../src/connection-editor/page-ip4.c:982 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "Ρυθμίσεις IPv4" -#: ../src/connection-editor/page-ip4.c:984 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Αδυναμία φόρτωσης της διεπαφής χρήστη IPv4." @@ -1605,7 +1710,7 @@ msgstr "Αυτόματα, μόνο διευθύνσεις" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:280 msgid "Ignore" msgstr "Αγνόηση" @@ -1613,16 +1718,16 @@ msgid "Automatic, DHCP only" msgstr "Αυτόματα, μόνο DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Επεξεργασία των διαδρομών IPv6 για την %s" -#: ../src/connection-editor/page-ip6.c:946 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "Ρυθμίσεις IPv6" -#: ../src/connection-editor/page-ip6.c:948 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Αδυναμία φόρτωσης της διεπαφής χρήστη IPv6." @@ -1666,6 +1771,7 @@ msgstr "CHAP" #: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 #: ../src/wireless-security/eap-method-peap.c:246 #: ../src/wireless-security/eap-method-ttls.c:263 msgid "MSCHAPv2" @@ -1686,17 +1792,17 @@ msgid "Editing PPP authentication methods for %s" msgstr "Επεξεργασία των μεθόδων πιστοποίησης PPP για την %s" -#: ../src/connection-editor/page-ppp.c:283 +#: ../src/connection-editor/page-ppp.c:282 msgid "PPP Settings" msgstr "Ρυθμίσεις PPP" -#: ../src/connection-editor/page-ppp.c:285 +#: ../src/connection-editor/page-ppp.c:284 msgid "Could not load PPP user interface." msgstr "Αδυναμία φόρτωσης της διεπαφής χρήστη PPP." #: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1478 +#: ../src/connection-editor/nm-connection-editor.ui.h:7 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1710,159 +1816,159 @@ msgstr "Δε βρέθηκε η υπηρεσία πρόσθετου VPN για το '%s'." #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:884 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "Σύνδεση VPN %d" -#: ../src/connection-editor/page-wired.c:88 -#: ../src/connection-editor/page-wireless.c:93 +#: ../src/connection-editor/page-wired.c:89 +#: ../src/connection-editor/page-wireless.c:94 msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" msgstr "Αυτή η επιλογή κλειδώνει αυτή τη σύνδεση στη συσκευή δικτύου που καθορίζεται από τη μόνιμη διεύθυνση MAC που εισήχθη εδώ. Παράδειγμα: 00:11:22:33:44:55" -#: ../src/connection-editor/page-wired.c:267 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -#: ../src/connection-editor/nm-connection-list.c:1466 +#: ../src/connection-editor/page-wired.c:272 +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Ενσύρματη" -#: ../src/connection-editor/page-wired.c:269 +#: ../src/connection-editor/page-wired.c:274 msgid "Could not load wired user interface." msgstr "Αδυναμία φόρτωσης της διεπαφής χρήστη ενσύρματης σύνδεσης." -#: ../src/connection-editor/page-wired.c:444 +#: ../src/connection-editor/page-wired.c:449 #, c-format msgid "Wired connection %d" msgstr "Ενσύρματη σύνδεση %d" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "Ασφάλεια 802.1X" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "Αδυναμία φόρτωσης της διεπαφής χρήστη ασφάλειας ενσύρματου δικτύου." -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1X security for this connection" +#: ../src/connection-editor/page-wired-security.c:139 +msgid "Use 802.1_X security for this connection" msgstr "Χρήση ασφάλειας 802.1X για αυτή τη σύνδεση" -#: ../src/connection-editor/page-wireless.c:166 -#: ../src/connection-editor/page-wireless.c:170 -#: ../src/connection-editor/page-wireless.c:191 +#: ../src/connection-editor/page-wireless.c:171 +#: ../src/connection-editor/page-wireless.c:175 +#: ../src/connection-editor/page-wireless.c:196 #, c-format msgid "default" msgstr "προεπιλεγμένη" -#: ../src/connection-editor/page-wireless.c:195 +#: ../src/connection-editor/page-wireless.c:200 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:452 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -#: ../src/connection-editor/nm-connection-list.c:1470 +#: ../src/connection-editor/page-wireless.c:457 +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Ασύρματη" -#: ../src/connection-editor/page-wireless.c:454 +#: ../src/connection-editor/page-wireless.c:459 msgid "Could not load WiFi user interface." msgstr "Αδυναμία φόρτωσης της διεπαφής χρήστη ασύρματης σύνδεσης." -#: ../src/connection-editor/page-wireless.c:658 +#: ../src/connection-editor/page-wireless.c:663 #, c-format msgid "Wireless connection %d" msgstr "Ασύρματη σύνδεση %d" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "Κλειδί WEP 40/128-bit (Hex ή ASCII)" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "Συνθηματική φράση WEP 128-bit" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "Δυναμικό WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 Personal" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA & WPA2 Enterprise" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "Αδυναμία φόρτωσης της διεπαφής χρήστη ασφάλειας ασύρματης σύνδεσης. Λείπει μια ρύθμιση της ασύρματου δικτύου." -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "Ασφάλεια ασύρματου δικτύου" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "Αδυναμία φόρτωσης της διεπαφής χρήστη ασφάλειας ασύρματου δικτύου." -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "Επεξεργασία %s" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "Επεξεργασία σύνδεσης χωρίς όνομα" -#: ../src/connection-editor/nm-connection-editor.c:288 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "The connection editor could not find some required resources (the .ui file was not found)." msgstr "Ο επεξεργαστής σύνδεσης δεν μπόρεσε να βρει κάποιους απαιτούμενους πόρους (δε βρέθηκε το αρχείο .ui)." -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "Σφάλμα δημιουργίας διαλόγου επεξεργασίας συνδέσεων." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "Α_ποθήκευση" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "Αποθήκευση οποιωνδήποτε αλλαγών έγιναν σε αυτή τη σύνδεση." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "Απ_οθήκευση..." -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." msgstr "Απαιτείται πιστοποίηση για την αποθήκευση αυτής της σύνδεσης για όλους τους χρήστες του συστήματος." -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "Διαθέσιμη σε όλους τους χρήστες" +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Import" +msgstr "Εισα_γωγή" -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "Α_υτόματη σύνδεση" +#: ../src/connection-editor/nm-connection-editor.ui.h:6 +msgid "E_xport" +msgstr "Ε_ξαγωγή" -#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-editor.ui.h:9 msgid "Connection _name:" msgstr "Ό_νομα σύνδεσης:" -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "Ε_ξαγωγή" +#: ../src/connection-editor/nm-connection-editor.ui.h:10 +msgid "Connect _automatically" +msgstr "Α_υτόματη σύνδεση" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "Εισα_γωγή" +msgid "A_vailable to all users" +msgstr "Διαθέσιμη σε όλους τους χρήστες" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -1923,18 +2029,18 @@ msgstr "Η ιδιότητα '%s' / '%s' δεν είναι έγκυρη: %d" #: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:642 +#: ../src/connection-editor/nm-connection-list.c:662 msgid "An unknown error occurred." msgstr "Προέκυψε άγνωστο σφάλμα." #: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:686 +#: ../src/connection-editor/nm-connection-list.c:702 msgid "Error initializing editor" msgstr "Σφάλμα αρχικοποίησης επεξεργασίας" #: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:703 -#: ../src/connection-editor/nm-connection-list.c:870 +#: ../src/connection-editor/nm-connection-list.c:719 +#: ../src/connection-editor/nm-connection-list.c:885 msgid "The connection editor dialog could not be initialized due to an unknown error." msgstr "Απέτυχε η αρχικοποίηση του διαλόγου επεξεργασίας συνδέσεων για άγνωστο λόγο." @@ -1946,25 +2052,25 @@ msgid "Could not edit new connection" msgstr "Αδύνατη η επεξεργασία της νέας σύνδεσης" -#: ../src/connection-editor/nm-connection-list.c:717 +#: ../src/connection-editor/nm-connection-list.c:733 msgid "Could not edit connection" msgstr "Αδύνατη η επεξεργασία της σύνδεσης" -#: ../src/connection-editor/nm-connection-list.c:747 +#: ../src/connection-editor/nm-connection-list.c:763 msgid "Connection delete failed" msgstr "Απέτυχε η διαγραφή της σύνδεσης" -#: ../src/connection-editor/nm-connection-list.c:779 +#: ../src/connection-editor/nm-connection-list.c:795 #, c-format msgid "Are you sure you wish to delete the connection %s?" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε τη σύνδεση %s;" -#: ../src/connection-editor/nm-connection-list.c:914 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "Αδύνατη η εισαγωγή της σύνδεσης VPN" -#: ../src/connection-editor/nm-connection-list.c:916 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -1973,79 +2079,79 @@ "Το πρόσθετο VPN απέτυχε να εισάγει σωστά τη σύνδεση VPN\n" "
Σφάλμα: δεν υπάρχει o τύπος υπηρεσίας VPN." -#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "Αδύνατη η επεξεργασία της εισηγμένης σύνδεσης" -#: ../src/connection-editor/nm-connection-list.c:1099 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "Όνομα" -#: ../src/connection-editor/nm-connection-list.c:1111 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "Τελευταία χρήση" -#: ../src/connection-editor/nm-connection-list.c:1227 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." msgstr "Δεν υπάρχει διαθέσιμο πρόσθετο VPN. Παρακαλούμε εγκαταστήστε ένα για να ενεργοποιήσετε αυτό το κουμπί." -#: ../src/connection-editor/nm-connection-list.c:1238 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "_Επεξεργασία" -#: ../src/connection-editor/nm-connection-list.c:1239 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "Επεξεργασία της επιλεγμένης σύνδεσης" -#: ../src/connection-editor/nm-connection-list.c:1240 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "Ε_πεξεργασία..." -#: ../src/connection-editor/nm-connection-list.c:1241 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "Απαιτείται πιστοποίηση για την επεξεργασία της επιλεγμένης σύνδεσης" -#: ../src/connection-editor/nm-connection-list.c:1256 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "_Διαγραφή" -#: ../src/connection-editor/nm-connection-list.c:1257 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "Διαγραφή της επιλεγμένης σύνδεσης" -#: ../src/connection-editor/nm-connection-list.c:1258 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "Δια_γραφή..." -#: ../src/connection-editor/nm-connection-list.c:1259 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "Απαιτείται πιστοποίηση για τη διαγραφή της επιλεγμένης σύνδεσης" -#: ../src/connection-editor/nm-connection-list.c:1538 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "Σφάλμα δημιουργίας σύνδεσης" -#: ../src/connection-editor/nm-connection-list.c:1539 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "Δε γνωρίζω πως μπορούν να πραγματοποιηθούν συνδέσεις τύπου «%s»" -#: ../src/connection-editor/nm-connection-list.c:1594 -#: ../src/connection-editor/nm-connection-list.c:1606 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "Σφάλμα επεξεργασίας σύνδεσης" -#: ../src/connection-editor/nm-connection-list.c:1595 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "Δε γνωρίζω πως μπορεί να γίνει η επεξεργασία συνδέσεων τύπου «%s»" -#: ../src/connection-editor/nm-connection-list.c:1607 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "Δε βρέθηκε σύνδεση με UUID «%s»" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN connection information\n" @@ -2055,29 +2161,29 @@ "Δεν ήταν δυνατή η ανάγνωση του αρχείου '%s', ή το αρχείο δε διαθέτει αναγνωρίσιμες πληροφορίες σύνδεσης VPN\n" "
Σφάλμα: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "Επιλέξτε το αρχείο που θέλετε να εισάγετε" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "Ένα αρχείο με το όνομα \"%s\" υπάρχει ήδη." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "_Αντικατάσταση" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Θέλετε να αντικαστήσετε την %s με τη σύνδεση VPN που αποθηκεύετε;" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "Αδύνατη η εξαγωγή της σύνδεσης VPN" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2088,7 +2194,7 @@ "\n" "Σφάλμα: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "Εξαγωγή σύνδεσης VPN..." @@ -2257,63 +2363,63 @@ msgid "Choose your Provider" msgstr "Επιλέξτε τον πάροχό σας" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1080 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 msgid "Country or Region List:" msgstr "Λίστα χωρών ή περιοχών:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1092 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 msgid "Country or region" msgstr "Χώρα ή περιοχή" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1099 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "My country is not listed" msgstr "Η χώρα μου δεν είναι στη λίστα" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1145 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 msgid "Choose your Provider's Country or Region" msgstr "Επιλέξτε τη χώρα ή περιοχή του παρόχου σας" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1199 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 msgid "Installed GSM device" msgstr "Εγκατεστημένη συσκευή GSM" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1202 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 msgid "Installed CDMA device" msgstr "Εγκατεστημένη συσκευή CDMA" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1374 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 msgid "This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network." msgstr "Ο βοηθός αυτός σας επιτρέπει να συνδεθείτε εύκολα σε ένα κινητό ευρυζωνικό (3G) δίκτυο." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1379 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 msgid "You will need the following information:" msgstr "Θα χρειαστείτε τις ακόλουθες πληροφορίες:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1394 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 msgid "Your broadband provider's name" msgstr "Το όνομα του παρόχου της σύνδεσης σας" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1400 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 msgid "Your broadband billing plan name" msgstr "Το όνομα της συνδρομής σας" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1406 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(ενδεχομένως) Το APN (Access Point Name) της συνδρομής σας" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1433 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 msgid "Create a connection for _this mobile broadband device:" msgstr "Δημιουργία σύνδεσης για την _ακόλουθη συσκευή:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1448 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 msgid "Any device" msgstr "Οποιαδήποτε συσκευή" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Set up a Mobile Broadband Connection" msgstr "Ρύθμιση κινητής ευρυζωνικής σύνδεσης" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1625 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 msgid "New Mobile Broadband Connection" msgstr "Νέα κινητή ευρυζωνική σύνδεση" @@ -2321,59 +2427,59 @@ msgid "New..." msgstr "Νέο..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "Δ_ημιουργία" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "Passwords or encryption keys are required to access the wireless network '%s'." msgstr "Απαιτούνται συνθηματικά ή κλειδιά κρυπτογράφησης για σύνδεση στο ασύρματο δίκτυο '%s'." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "Απαιτείται πιστοποίηση ασύρματου δικτύου" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "Απαιτείται πιστοποίηση από το ασύρματο δικτύο" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "Δημιουργία νέου ασύρματου δικτύου" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "Νέο ασύρματο δικτύο" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "Εισάγετε το όνομα του ασύρματου δικτύου που επιθυμείτε να δημιουργήσετε." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "Σύνδεση σε κρυφό ασύρματο δίκτυο" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "Κρυφό ασύρματο δικτύο" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 msgid "Enter the name and security details of the hidden wireless network you wish to connect to." msgstr "Εισάγετε το όνομα και τις ρυθμίσεις ασφαλείας του κρυφού ασύρματου δικτύου στο οποίο επιθυμείτε να συνδεθείτε." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "Wireless _security:" +msgstr "Ασ_φάλεια ασύρματου δικτύου:" + +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" msgstr "Σύν_δεση:" -#: ../src/libnm-gtk/wifi.ui.h:3 +#: ../src/libnm-gtk/wifi.ui.h:5 msgid "Wireless _adapter:" msgstr "_Προσαρμογέας ασύρματης δικτύωσης:" -#: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "Ασ_φάλεια ασύρματου δικτύου:" - #: ../src/main.c:73 msgid "Usage:" msgstr "Χρήση:" @@ -2475,70 +2581,105 @@ msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." msgstr "Η μικροεφαρμογή NetworkManager δεν μπόρεσε να βρει κάποιους απαιτούμενους πόρους (δε βρέθηκε το αρχείο .ui)." -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:274 msgid "No Certificate Authority certificate chosen" msgstr "Δεν έχει επιλεχθεί πιστοποιητικό Αρχής Πιστοποίησης" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:275 msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue wireless networks. Would you like to choose a Certificate Authority certificate?" msgstr "Αν δε χρησιμοποιήσετε πιστοποιητικό Αρχής Πιστοποίησης (CA), μπορεί να συνδεθείτε σε μη ασφαλή και ευάλωτα ασύρματα δίκτυα. Θέλετε να επιλέξετε πιστοποιητικό Αρχής Πιστοποίησης;" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:284 msgid "Choose CA Certificate" msgstr "Επιλέξτε πιστοποιητικό CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:643 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Ιδιωτικά κλειδιά DER, PEM ή PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:646 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Πιστοποιητικά DER ή PEM (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:372 -msgid "MD5" -msgstr "MD5" +#: ../src/wireless-security/eap-method-fast.ui.h:2 +msgid "Anonymous" +msgstr "Ανώνυμος" + +#: ../src/wireless-security/eap-method-fast.ui.h:3 +msgid "Authenticated" +msgstr "Πιστοποιήθηκε" + +#: ../src/wireless-security/eap-method-fast.ui.h:4 +msgid "Both" +msgstr "Και τα δύο" + +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "Α_νώνυμη ταυτότητα:" + +#: ../src/wireless-security/eap-method-fast.ui.h:6 +msgid "PAC _file:" +msgstr "Α_ρχείο PAC:" + +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-ttls.ui.h:4 +msgid "_Inner authentication:" +msgstr "_Εσωτερική πιστοποίηση:" +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "Επιτρέψτε την αυτόματη παροχή PAC" + +#: ../src/wireless-security/eap-method-fast.c:261 #: ../src/wireless-security/eap-method-peap.c:280 msgid "GTC" msgstr "GTC" +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Επιλέξτε ένα αρχείο PAC..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "Αρχεία PAC (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Όλα τα αρχεία" + +#: ../src/wireless-security/eap-method-peap.c:263 +#: ../src/wireless-security/wireless-security.c:382 +msgid "MD5" +msgstr "MD5" + #: ../src/wireless-security/eap-method-peap.c:350 #: ../src/wireless-security/eap-method-tls.c:416 #: ../src/wireless-security/eap-method-ttls.c:350 msgid "Choose a Certificate Authority certificate..." msgstr "Επιλέξτε πιστοποιητικό Αρχής Πιστοποίησης..." -#: ../src/wireless-security/eap-method-peap.ui.h:2 -#: ../src/wireless-security/eap-method-ttls.ui.h:2 -msgid "Anony_mous identity:" -msgstr "Α_νώνυμη ταυτότητα:" - -#: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:3 -msgid "C_A certificate:" -msgstr "Πιστοποιητικό C_A:" - -#: ../src/wireless-security/eap-method-peap.ui.h:5 -#: ../src/wireless-security/eap-method-ttls.ui.h:4 -msgid "I_nner authentication:" -msgstr "_Εσωτερική πιστοποίηση:" - -#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-peap.ui.h:3 msgid "Version 0" msgstr "Έκδοση 0" -#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:4 msgid "Version 1" msgstr "Έκδοση 1" +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-ttls.ui.h:3 +msgid "C_A certificate:" +msgstr "Πιστοποιητικό C_A:" + #: ../src/wireless-security/eap-method-peap.ui.h:8 -msgid "_PEAP version:" -msgstr "Έκδοση P_EAP:" +msgid "PEAP _version:" +msgstr "Έκ_δοση PEAP:" -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "Ε_ρώτηση για κωδικό κάθε φορά " @@ -2564,11 +2705,15 @@ msgid "Choose your private key..." msgstr "Επιλέξτε το ιδιωτικό σας κλειδί..." -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "_Ταυτότητα:" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "Πιστοποιητικό _χρήστη:" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "Ιδιωτικό κ_λειδί:" @@ -2576,10 +2721,6 @@ msgid "_Private key password:" msgstr "Συνθηματικό _ιδιωτικού κλειδιού:" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "Πιστοποιητικό _χρήστη:" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "Να _μη γίνει προειδοποίηση ξανά" @@ -2592,59 +2733,69 @@ msgid "Yes" msgstr "Ναι" -#: ../src/wireless-security/wireless-security.c:384 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:408 +#: ../src/wireless-security/wireless-security.c:418 +msgid "FAST" +msgstr "ΓΡΗΓΟΡΑ" + +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "Tunneled TLS" -#: ../src/wireless-security/wireless-security.c:419 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Προστατευμένο EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 #: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 -msgid "_Authentication:" +msgid "Au_thentication:" msgstr "_Πιστοποίηση:" #: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "Ανοικτό σύστημα" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "Κοινόχρηστο κλειδί" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (προεπιλογή)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:5 -msgid "Open System" -msgstr "Ανοικτό σύστημα" - -#: ../src/wireless-security/ws-wep-key.ui.h:6 -msgid "Shared Key" -msgstr "Κοινόχρηστο κλειδί" - #: ../src/wireless-security/ws-wep-key.ui.h:7 +msgid "_Key:" +msgstr "Κ_λειδί:" + +#: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "Εμ_φάνιση κλειδιού" -#: ../src/wireless-security/ws-wep-key.ui.h:8 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "Δείκτης _WEP:" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "Κ_λειδί:" +#~ msgid "Click on this icon to connect to a wireless network" +#~ msgstr "Κάντε κλικ στο εικονίδιο για να συνδεθείτε σε ασύρματο δίκτυο" + +#~ msgid "_Security:" +#~ msgstr "Ασ_φάλεια:" #~ msgid "United Kingdom" #~ msgstr "Ηνωμένο Βασίλειο" @@ -3021,8 +3172,8 @@ #~ msgid "Failed to initialize the decryption cipher context: %s / %s." #~ msgstr "" -#~ "Αποτυχία αρχικοποίησης του περιεχομένου αποτυπώματος αποκρυπτογράφησης: " -#~ "%s / %s." +#~ "Αποτυχία αρχικοποίησης του περιεχομένου αποτυπώματος αποκρυπτογράφησης: %" +#~ "s / %s." #~ msgid "Failed to set symmetric key for decryption: %s / %s." #~ msgstr "" diff -Nru network-manager-applet-0.9.4.1/po/en_GB.po network-manager-applet-0.9.6.2+git201210311320.2620/po/en_GB.po --- network-manager-applet-0.9.4.1/po/en_GB.po 2012-03-16 16:07:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/en_GB.po 2012-10-31 13:20:57.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: NetworkManager\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-16 14:26+0000\n" -"PO-Revision-Date: 2012-03-16 14:26+0100\n" +"POT-Creation-Date: 2012-09-05 14:49+0100\n" +"PO-Revision-Date: 2012-09-05 14:50+0100\n" "Last-Translator: Bruce Cowan \n" "Language-Team: British English \n" "Language: en_GB\n" @@ -26,83 +26,114 @@ msgid "Manage your network connections" msgstr "Manage your network connections" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Network Connections" + +# +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Manage and change your network connection settings" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Disable connected notifications" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "" -"Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "Set this to true to disable notifications when connecting to a network." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Disable disconnected notifications" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "" +"Set this to true to disable notifications when disconnecting from a network." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Disable VPN notifications" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." msgstr "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Suppress networks available notifications" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " +"Set this to true to disable notifications when wireless networks are " "available." msgstr "" -"Set this to TRUE to disable notifications when wireless networks are " +"Set this to true to disable notifications when wireless networks are " "available." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Stamp" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "Used to determine whether settings should be migrated to a new version." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Disable WiFi Create" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Network Connections" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ignore CA certificate" -# -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Manage and change your network connection settings" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-gsm.c:444 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Available" # -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-gsm.c:486 ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "You are now connected to '%s'." -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-gsm.c:490 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Connection Established" @@ -110,50 +141,50 @@ msgid "You are now connected to the mobile broadband network." msgstr "You are now connected to the mobile broadband network." -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "Preparing mobile broadband connection '%s'…" -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "Configuring mobile broadband connection '%s'…" -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "User authentication required for mobile broadband connection '%s'…" # -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "Requesting a network address for '%s'…" -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "Mobile broadband connection '%s' active" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:696 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 #: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Mobile Broadband (%s)" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 #: ../src/connection-editor/page-mobile.c:379 #: ../src/connection-editor/nm-connection-editor.ui.h:4 #: ../src/connection-editor/nm-connection-list.c:1510 @@ -161,87 +192,87 @@ msgstr "Mobile Broadband" #. Default connection item -#: ../src/applet-device-cdma.c:412 +#: ../src/applet-device-cdma.c:409 msgid "New Mobile Broadband (CDMA) connection..." msgstr "New Mobile Broadband (CDMA) connection…" -#: ../src/applet-device-cdma.c:446 +#: ../src/applet-device-cdma.c:443 msgid "You are now connected to the CDMA network." msgstr "You are now connected to the CDMA network." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "Mobile broadband connection '%s' active: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "roaming" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 msgid "CDMA network." msgstr "CDMA network." -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 msgid "You are now registered on the home network." msgstr "You are now registered on the home network." -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 msgid "You are now registered on a roaming network." msgstr "You are now registered on a roaming network." -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" #. Default connection item -#: ../src/applet-device-gsm.c:459 +#: ../src/applet-device-gsm.c:457 msgid "New Mobile Broadband (GSM) connection..." msgstr "New Mobile Broadband (GSM) connection…" -#: ../src/applet-device-gsm.c:493 +#: ../src/applet-device-gsm.c:491 msgid "You are now connected to the GSM network." msgstr "You are now connected to the GSM network." -#: ../src/applet-device-gsm.c:654 +#: ../src/applet-device-gsm.c:652 msgid "PIN code required" msgstr "PIN code required" -#: ../src/applet-device-gsm.c:662 +#: ../src/applet-device-gsm.c:660 msgid "PIN code is needed for the mobile broadband device" msgstr "PIN code is needed for the mobile broadband device" -#: ../src/applet-device-gsm.c:783 +#: ../src/applet-device-gsm.c:781 #, c-format msgid "PIN code for SIM card '%s' on '%s'" msgstr "PIN code for SIM card '%s' on '%s'" -#: ../src/applet-device-gsm.c:875 +#: ../src/applet-device-gsm.c:873 msgid "Wrong PIN code; please contact your provider." msgstr "Wrong PIN code; please contact your provider." -#: ../src/applet-device-gsm.c:898 +#: ../src/applet-device-gsm.c:896 msgid "Wrong PUK code; please contact your provider." msgstr "Wrong PUK code; please contact your provider." #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 +#: ../src/applet-device-gsm.c:923 msgid "Sending unlock code..." msgstr "Sending unlock code…" -#: ../src/applet-device-gsm.c:988 +#: ../src/applet-device-gsm.c:986 msgid "SIM PIN unlock required" msgstr "SIM PIN unlock required" -#: ../src/applet-device-gsm.c:989 +#: ../src/applet-device-gsm.c:987 msgid "SIM PIN Unlock Required" msgstr "SIM PIN Unlock Required" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 +#: ../src/applet-device-gsm.c:989 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " @@ -251,25 +282,25 @@ "used." #. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 +#: ../src/applet-device-gsm.c:991 msgid "PIN code:" msgstr "PIN code:" #. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 +#: ../src/applet-device-gsm.c:995 msgid "Show PIN code" msgstr "Show PIN code" -#: ../src/applet-device-gsm.c:1000 +#: ../src/applet-device-gsm.c:998 msgid "SIM PUK unlock required" msgstr "SIM PUK unlock required" -#: ../src/applet-device-gsm.c:1001 +#: ../src/applet-device-gsm.c:999 msgid "SIM PUK Unlock Required" msgstr "SIM PUK Unlock Required" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#: ../src/applet-device-gsm.c:1001 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " @@ -279,26 +310,26 @@ "used." #. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 +#: ../src/applet-device-gsm.c:1003 msgid "PUK code:" msgstr "PUK code:" #. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 +#: ../src/applet-device-gsm.c:1006 msgid "New PIN code:" msgstr "New PIN code:" #. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 +#: ../src/applet-device-gsm.c:1008 msgid "Re-enter new PIN code:" msgstr "Re-enter new PIN code:" #. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 +#: ../src/applet-device-gsm.c:1013 msgid "Show PIN/PUK codes" msgstr "Show PIN/PUK codes" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 msgid "GSM network." msgstr "GSM network." @@ -325,7 +356,7 @@ msgstr "Wired Network" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "disconnected" @@ -367,94 +398,112 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "_Connect to Hidden Wireless Network…" -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "Create _New Wireless Network…" -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(none)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "Wireless Networks (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "Wireless Network (%s)" # -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Wireless Network" msgstr[1] "Wireless Networks" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "wireless is disabled" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "wireless is disabled by hardware switch" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "More networks" # -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "Wireless Networks Available" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "Use the network menu to connect to a wireless network" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "Don't show this message again" # -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "You are now connected to the wireless network '%s'." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "Preparing wireless network connection '%s'…" -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "Configuring wireless network connection '%s'…" # -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "User authentication required for wireless network '%s'…" # -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "Requesting a wireless network address for '%s'…" -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "Wireless network connection '%s' active: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "Wireless network connection '%s' active" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Failed to activate connection" + +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +msgid "Unknown error" +msgstr "Unknown error" + +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 +msgid "Connection failure" +msgstr "Connection failure" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Failed to add new connection" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -481,9 +530,9 @@ msgstr "Error displaying connection information:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:286 +#: ../src/connection-editor/page-wireless-security.c:313 #: ../src/libnm-gtk/nm-wireless-dialog.c:948 -#: ../src/wireless-security/wireless-security.c:396 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -501,7 +550,7 @@ msgstr "WEP" #: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 -#: ../src/connection-editor/page-wireless-security.c:240 +#: ../src/connection-editor/page-wireless-security.c:265 #: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" @@ -717,7 +766,23 @@ msgid "Password:" msgstr "Password:" -#: ../src/applet.c:995 +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Failed to add/activate connection" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Device disconnect failed" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Disconnect failure" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "Connection activation failed" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -728,7 +793,7 @@ "The VPN connection '%s' failed because the network connection was " "interrupted." -#: ../src/applet.c:998 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" @@ -737,7 +802,7 @@ "\n" "The VPN connection '%s' failed because the VPN service stopped unexpectedly." -#: ../src/applet.c:1001 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -748,7 +813,7 @@ "The VPN connection '%s' failed because the VPN service returned invalid " "configuration." -#: ../src/applet.c:1004 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -757,7 +822,7 @@ "\n" "The VPN connection '%s' failed because the connection attempt timed out." -#: ../src/applet.c:1007 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -766,7 +831,7 @@ "\n" "The VPN connection '%s' failed because the VPN service did not start in time." -#: ../src/applet.c:1010 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -775,7 +840,7 @@ "\n" "The VPN connection '%s' failed because the VPN service failed to start." -#: ../src/applet.c:1013 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -784,7 +849,7 @@ "\n" "The VPN connection '%s' failed because there were no valid VPN secrets." -#: ../src/applet.c:1016 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -793,7 +858,7 @@ "\n" "The VPN connection '%s' failed because of invalid VPN secrets." -#: ../src/applet.c:1023 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -802,7 +867,7 @@ "\n" "The VPN connection '%s' failed." -#: ../src/applet.c:1041 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -813,7 +878,7 @@ "The VPN connection '%s' disconnected because the network connection was " "interrupted." -#: ../src/applet.c:1044 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -822,7 +887,7 @@ "\n" "The VPN connection '%s' disconnected because the VPN service stopped." -#: ../src/applet.c:1050 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -831,15 +896,30 @@ "\n" "The VPN connection '%s' disconnected." -#: ../src/applet.c:1084 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN connection has been successfully established.\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "VPN Login Message" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "VPN Connection Failed" -#: ../src/applet.c:1155 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -852,7 +932,7 @@ "\n" "%s" -#: ../src/applet.c:1158 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -865,140 +945,140 @@ "\n" "%s" -#: ../src/applet.c:1478 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "device not ready (firmware missing)" -#: ../src/applet.c:1480 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "device not ready" -#: ../src/applet.c:1506 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "Disconnect" -#: ../src/applet.c:1520 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "device not managed" -#: ../src/applet.c:1564 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "No network devices available" -#: ../src/applet.c:1652 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "_VPN Connections" -#: ../src/applet.c:1709 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "_Configure VPN…" -#: ../src/applet.c:1713 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "_Disconnect VPN" -#: ../src/applet.c:1811 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "NetworkManager is not running…" -#: ../src/applet.c:1816 ../src/applet.c:2609 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "Networking disabled" #. 'Enable Networking' item -#: ../src/applet.c:2037 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "Enable _Networking" #. 'Enable Wireless' item -#: ../src/applet.c:2046 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "Enable _Wireless" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "Enable _Mobile Broadband" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "Enable WiMA_X Mobile Broadband" #. Toggle notifications item -#: ../src/applet.c:2075 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "Enable N_otifications" #. 'Connection Information' item -#: ../src/applet.c:2086 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "Connection _Information" #. 'Edit Connections...' item -#: ../src/applet.c:2096 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "Edit Connections…" #. Help item -#: ../src/applet.c:2110 +#: ../src/applet.c:2124 msgid "_Help" msgstr "_Help" #. About item -#: ../src/applet.c:2119 +#: ../src/applet.c:2133 msgid "_About" msgstr "_About" -#: ../src/applet.c:2296 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "Disconnected" -#: ../src/applet.c:2297 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "The network connection has been disconnected." -#: ../src/applet.c:2478 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "Preparing network connection '%s'…" -#: ../src/applet.c:2481 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "User authentication required for network connection '%s'…" -#: ../src/applet.c:2487 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "Network connection '%s' active" -#: ../src/applet.c:2565 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "Starting VPN connection '%s'…" -#: ../src/applet.c:2568 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "User authentication required for VPN connection '%s'…" # -#: ../src/applet.c:2571 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "Requesting a VPN address for '%s'…" -#: ../src/applet.c:2574 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "VPN connection '%s' active" -#: ../src/applet.c:2613 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "No network connection" -#: ../src/applet.c:3263 +#: ../src/applet.c:3336 msgid "NetworkManager Applet" msgstr "NetworkManager Applet" @@ -1162,11 +1242,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "S_earch domains:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_DNS servers:" @@ -1542,20 +1626,20 @@ #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "Address" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "Netmask" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "Gateway" @@ -1565,7 +1649,7 @@ msgstr "Metric" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "Prefix" @@ -1579,7 +1663,7 @@ msgid "Could not load DSL user interface." msgstr "Could not load DSL user interface." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "DSL connection %d" @@ -1631,16 +1715,26 @@ msgid "Disabled" msgstr "Disabled" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Additional _DNS servers:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Additional s_earch domains:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Editing IPv4 routes for %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "IPv4 Settings" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Could not load IPv4 user interface." @@ -1649,7 +1743,7 @@ msgstr "Automatic, addresses only" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ignore" @@ -1657,16 +1751,16 @@ msgid "Automatic, DHCP only" msgstr "Automatic, DHCP only" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Editing IPv6 routes for %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "IPv6 Settings" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Could not load IPv6 user interface." @@ -1764,8 +1858,8 @@ msgid "VPN connection %d" msgstr "VPN connection %d" -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 +#: ../src/connection-editor/page-wired.c:91 +#: ../src/connection-editor/page-wireless.c:95 msgid "" "This option locks this connection to the network device specified by its " "permanent MAC address entered here. Example: 00:11:22:33:44:55" @@ -1773,17 +1867,17 @@ "This option locks this connection to the network device specified by its " "permanent MAC address entered here. Example: 00:11:22:33:44:55" -#: ../src/connection-editor/page-wired.c:272 +#: ../src/connection-editor/page-wired.c:271 #: ../src/connection-editor/nm-connection-editor.ui.h:2 #: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Wired" -#: ../src/connection-editor/page-wired.c:274 +#: ../src/connection-editor/page-wired.c:273 msgid "Could not load wired user interface." msgstr "Could not load wired user interface." -#: ../src/connection-editor/page-wired.c:449 +#: ../src/connection-editor/page-wired.c:448 #, c-format msgid "Wired connection %d" msgstr "Wired connection %d" @@ -1801,81 +1895,81 @@ msgid "Use 802.1_X security for this connection" msgstr "Use 802.1_X security for this connection" -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 +#: ../src/connection-editor/page-wireless.c:172 +#: ../src/connection-editor/page-wireless.c:176 +#: ../src/connection-editor/page-wireless.c:197 #, c-format msgid "default" msgstr "default" -#: ../src/connection-editor/page-wireless.c:200 +#: ../src/connection-editor/page-wireless.c:201 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:457 +#: ../src/connection-editor/page-wireless.c:455 #: ../src/connection-editor/nm-connection-editor.ui.h:3 #: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Wireless" -#: ../src/connection-editor/page-wireless.c:459 +#: ../src/connection-editor/page-wireless.c:457 msgid "Could not load WiFi user interface." msgstr "Could not load WiFi user interface." -#: ../src/connection-editor/page-wireless.c:663 +#: ../src/connection-editor/page-wireless.c:661 #, c-format msgid "Wireless connection %d" msgstr "Wireless connection %d" -#: ../src/connection-editor/page-wireless-security.c:264 +#: ../src/connection-editor/page-wireless-security.c:290 #: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP 40/128-bit Key (Hex or ASCII)" -#: ../src/connection-editor/page-wireless-security.c:273 +#: ../src/connection-editor/page-wireless-security.c:300 #: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128-bit Passphrase" -#: ../src/connection-editor/page-wireless-security.c:299 +#: ../src/connection-editor/page-wireless-security.c:326 #: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "Dynamic WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/connection-editor/page-wireless-security.c:340 #: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 Personal" -#: ../src/connection-editor/page-wireless-security.c:327 +#: ../src/connection-editor/page-wireless-security.c:354 #: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA & WPA2 Enterprise" -#: ../src/connection-editor/page-wireless-security.c:361 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "Could not load WiFi security user interface; missing WiFi setting." # -#: ../src/connection-editor/page-wireless-security.c:371 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "Wireless Security" -#: ../src/connection-editor/page-wireless-security.c:373 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "Could not load WiFi security user interface." -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "Editing %s" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "Editing un-named connection" -#: ../src/connection-editor/nm-connection-editor.c:288 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." @@ -1883,23 +1977,23 @@ "The connection editor could not find some required resources (the .ui file " "was not found)." -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "Error creating connection editor dialogue." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "_Save" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "Save any changes made to this connection." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "_Save…" -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." msgstr "Authenticate to save this connection for all users of this machine." @@ -1920,8 +2014,8 @@ msgstr "Connect _automatically" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Available to all users" +msgid "A_vailable to all users" +msgstr "A_vailable to all users" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -2159,61 +2253,74 @@ msgid "Export VPN connection..." msgstr "Export VPN connection…" -#: ../src/gnome-bluetooth/bt-widget.c:220 +#: ../src/gnome-bluetooth/bt-widget.c:321 #, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Failed to create PAN connection: %s" - -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Your phone is now ready to use!" +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s Network" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %" +"s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Use your mobile phone as a network device (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Access the Internet using your mobile phone (DUN)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Error: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Failed to create DUN connection: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Your phone is now ready to use!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Mobile wizard was cancelled" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Unknown phone device type (not GSM or CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "unknown modem type." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "failed to connect to the phone." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "unexpectedly disconnected from the phone." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "timed out detecting phone details." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Detecting phone configuration…" -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "could not find the Bluetooth device." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2221,52 +2328,38 @@ "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Bluetooth configuration not possible (failed to create D-Bus proxy)." +msgid "Failed to create PAN connection: %s" +msgstr "Failed to create PAN connection: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Use your mobile phone as a network device (PAN/NAP)" - -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Access the Internet using your mobile phone (DUN)" +msgid "%s Network" +msgstr "%s Network" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "" "Your mobile broadband connection is configured with the following settings:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:212 msgid "Your Device:" msgstr "Your Device:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:223 msgid "Your Provider:" msgstr "Your Provider:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:234 msgid "Your Plan:" msgstr "Your Plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:259 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2280,23 +2373,23 @@ "connection settings, choose \"Network Connections\" from the System >> " "Preferences menu." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:271 msgid "Confirm Mobile Broadband Settings" msgstr "Confirm Mobile Broadband Settings" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:332 msgid "Unlisted" msgstr "Unlisted" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:487 msgid "_Select your plan:" msgstr "_Select your plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:511 msgid "Selected plan _APN (Access Point Name):" msgstr "Selected plan _APN (Access Point Name):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2308,67 +2401,67 @@ "\n" "If you are unsure of your plan please ask your provider for your plan's APN." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:542 msgid "Choose your Billing Plan" msgstr "Choose your Billing Plan" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:590 msgid "My plan is not listed..." msgstr "My plan is not listed…" -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:747 msgid "Select your provider from a _list:" msgstr "Select your provider from a _list:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:760 msgid "Provider" msgstr "Provider" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:785 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "I can't find my provider and I wish to enter it _manually:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:796 msgid "Provider:" msgstr "Provider:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:820 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "My provider uses CDMA technology (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:837 msgid "Choose your Provider" msgstr "Choose your Provider" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1088 msgid "Country or Region List:" msgstr "Country or Region List:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "Country or region" msgstr "Country or region" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1107 msgid "My country is not listed" msgstr "My country is not listed" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1153 msgid "Choose your Provider's Country or Region" msgstr "Choose your Provider's Country or Region" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1207 msgid "Installed GSM device" msgstr "Installed GSM device" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1210 msgid "Installed CDMA device" msgstr "Installed CDMA device" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1382 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2376,35 +2469,35 @@ "This assistant helps you easily set up a mobile broadband connection to a " "mobile (3G) network." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1387 msgid "You will need the following information:" msgstr "You will need the following information:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1402 msgid "Your broadband provider's name" msgstr "Your broadband provider's name" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband billing plan name" msgstr "Your broadband billing plan name" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(in some cases) Your broadband billing plan APN (Access Point Name)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1441 msgid "Create a connection for _this mobile broadband device:" msgstr "Create a connection for _this mobile broadband device:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1456 msgid "Any device" msgstr "Any device" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1469 msgid "Set up a Mobile Broadband Connection" msgstr "Set up a Mobile Broadband Connection" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1633 msgid "New Mobile Broadband Connection" msgstr "New Mobile Broadband Connection" @@ -2467,11 +2560,11 @@ # #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Wireless security:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Co_nnection:" # @@ -2581,6 +2674,12 @@ msgid "Default" msgstr "Default" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "%s connection" + #: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 msgid "" "The NetworkManager Applet could not find some required resources (the .ui " @@ -2589,11 +2688,11 @@ "The NetworkManager Applet could not find some required resources (the .ui " "file was not found)." -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "No Certificate Authority certificate chosen" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " @@ -2603,15 +2702,15 @@ "to insecure, rogue wireless networks. Would you like to choose a " "Certificate Authority certificate?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Choose CA Certificate" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" @@ -2665,7 +2764,7 @@ msgstr "All files" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:372 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2751,19 +2850,19 @@ msgid "Yes" msgstr "Yes" -#: ../src/wireless-security/wireless-security.c:384 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:408 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:419 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "Tunnelled TLS" -#: ../src/wireless-security/wireless-security.c:430 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Protected EAP (PEAP)" @@ -2809,6 +2908,13 @@ msgid "WEP inde_x:" msgstr "WEP inde_x:" +#~ msgid "could not find the Bluetooth device." +#~ msgstr "could not find the Bluetooth device." + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "" +#~ "Bluetooth configuration not possible (failed to create D-Bus proxy)." + # #~ msgid "Click on this icon to connect to a wireless network" #~ msgstr "Click on this icon to connect to a wireless network" @@ -2859,9 +2965,6 @@ #~ msgid "Running PPP on device %s..." #~ msgstr "Running PPP on device %s..." -#~ msgid "CDMA connection" -#~ msgstr "CDMA connection" - #~ msgid "Auto GSM network connection" #~ msgstr "Auto GSM network connection" diff -Nru network-manager-applet-0.9.4.1/po/eo.po network-manager-applet-0.9.6.2+git201210311320.2620/po/eo.po --- network-manager-applet-0.9.4.1/po/eo.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/eo.po 2012-10-31 13:20:57.000000000 +0000 @@ -1864,7 +1864,7 @@ msgstr "Konekti _aŭtomate" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Disponebla al ĉiuj uzantoj" #: ../src/connection-editor/nm-connection-list.c:216 @@ -2368,11 +2368,11 @@ msgstr "Entajpu la nomon kaj sekurecdetalojn de la kaŝita sendrata reto al kiu vi volas fari konekton." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Sendrata sekureco:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Ko_nekto:" #: ../src/libnm-gtk/wifi.ui.h:5 diff -Nru network-manager-applet-0.9.4.1/po/es.po network-manager-applet-0.9.6.2+git201210311320.2620/po/es.po --- network-manager-applet-0.9.4.1/po/es.po 2012-03-23 14:14:18.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/es.po 2012-10-31 13:20:57.000000000 +0000 @@ -15,14 +15,15 @@ "Project-Id-Version: networkmanager-applet.master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-23 08:27+0000\n" -"PO-Revision-Date: 2012-03-23 11:09+0100\n" +"POT-Creation-Date: 2012-08-20 16:44+0000\n" +"PO-Revision-Date: 2012-08-20 19:38+0200\n" "Last-Translator: Daniel Mustieles \n" "Language-Team: Español \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: Gtranslator 2.91.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../nm-applet.desktop.in.h:1 @@ -33,1051 +34,1064 @@ msgid "Manage your network connections" msgstr "Gestione sus conexiones de red" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Conexiones de red" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Gestione y cambie sus ajustes de la conexión de red" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Desactivar las notificaciones de conexión" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" "Establecer esto a cierto para desactivar las notificaciones al conectarse " "con una red." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Desactivar las notificaciones de desconexión" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "" "Establecer esto a cierto para desactivar las notificaciones al desconectarse " "de una red." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Desactivar las notificaciones de VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"Establecer esto a cierto para desactivar las notificaciones al conectarse o " +"desconectarse de una VPN." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Suprimir notificaciones de redes disponibles" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when Wi-Fi networks are available." msgstr "" "Establecer esto a cierto para desactivar las notificaciones cuando hay redes " "inalámbricas disponibles." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Marca de tiempo" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "Se usa para determinar si los ajustes de deben migrar a la nueva versión." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Desactivar la creación de red inalámbrica" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" "Establecer esto a cierto para desactivar la creación de redes inalámbricas " -"adhoc al usar la aplicación." +"adhoc al usar la miniaplicación." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Conexiones de red" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ignorar certificado CA" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Gestione y cambie sus ajustes de la conexión de red" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Establecer esto a cierto para desactivar las notificaciones sobre " +"certificados CA en autenticación EAP." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Disponible" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Establecer esto a cierto para desactivar las notificaciones sobre " +"certificados CA en la fase 2 de la autenticación EAP." -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Ahora está conectado a «%s»." +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "Autenticación 802.1x" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Se ha establecido la conexión" +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_Nombre de red:" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Ahora está conectado a la red de banda ancha móvil." +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "Falló al añadir/activar la conexión" + +#: ../src/applet.c:514 ../src/applet.c:558 ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Error desconocido" + +#: ../src/applet.c:517 ../src/applet.c:587 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Falló la conexión" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "Falló al desconectar el dispositivo" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "Falló al desconectar" + +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "Falló al activar la conexión" + +#: ../src/applet.c:948 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "No mostrar este mensaje de nuevo" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:1037 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Preparando la conexión de banda ancha móvil «%s»…" +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"La conexión VPN «%s» ha fallado porque se interrumpió la conexión de red." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1040 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Configurando la conexión de banda ancha móvil «%s»…" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"La conexión de red «%s» ha fallado porque el servicio VPN se interrumpió " +"inesperadamente." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1043 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." msgstr "" -"Se necesita autenticación de usuario para la conexión de banda ancha móvil «%" -"s»…" +"\n" +"La conexión VPN «%s» ha fallado porque el servicio VPN devolvió una " +"configuración no válida." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2503 +#: ../src/applet.c:1046 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Solicitando una dirección de red para «%s»…" +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"La conexión VPN «%s» ha fallado porque expiró el tiempo de conexión." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1049 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "La conexión de banda ancha móvil «%s» está activa" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"La conexión VPN «%s» ha fallado porque el servicio VPN no se inició a tiempo." -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1052 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"La conexión VPN «%s» ha fallado porque el servició VPN no pudo iniciarse." -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:424 +#: ../src/applet.c:1055 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Banda ancha móvil (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"La conexión VPN «%s» falló porque no había secretos VPN válidos." -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1510 -msgid "Mobile Broadband" -msgstr "Banda ancha móvil" +#: ../src/applet.c:1058 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"La conexión VPN «%s» falló porque los secretos VPN no eran válidos." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Conexión de banda ancha móvil (CDMA) nueva…" +#: ../src/applet.c:1065 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"La conexión VPN «%s» ha fallado." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Ahora está conectado a la red CDMA." +#: ../src/applet.c:1083 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"La conexión VPN «%s» se desconectó porque se interrumpió la conexión de red." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1086 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "La conexión de banda ancha móvil «%s» está activa: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"La conexión VPN «%s» se desconectó porque paró el servicio VPN." -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "roaming" +#: ../src/applet.c:1092 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"La conexión VPN «%s» se ha desconectado." -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "Red CDMA." +#: ../src/applet.c:1122 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"La conexión VPN se ha establecido con éxito.\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Ahora está registrado en la red de casa." +#: ../src/applet.c:1124 +msgid "VPN connection has been successfully established.\n" +msgstr "La conexión VPN se ha establecido con éxito.\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Ahora está registrado en una red de «roaming»." +#: ../src/applet.c:1126 +msgid "VPN Login Message" +msgstr "Mensaje de acceso VPN" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1132 ../src/applet.c:1140 ../src/applet.c:1190 +msgid "VPN Connection Failed" +msgstr "Falló la conexión VPN" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Conexión de banda ancha móvil (GSM) nueva…" +#: ../src/applet.c:1197 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"La conexión VPN «%s» ha fallado porque el servicio VPN falló al iniciarse.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Ahora está conectado a la red GSM." +#: ../src/applet.c:1200 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"La conexión VPN «%s» falló al iniciarse.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "Se necesita un código PIN" +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "el dispositivo no está listo (falta el firmware)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "Se necesita un código PIN para el dispositivo de banda ancha móvil" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "el dispositivo no está listo" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "Código PIN para la tarjeta SIM «%s» en «%s»" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "desconectado" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "Código PIN erróneo; contacte con el proveedor de su servicio." +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "Desconectar" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "Código PUK erróneo; contacte con el proveedor de su servicio." +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "el dispositivo no está gestionado" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "Enviando código de desbloqueo…" +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "No hay dispositivos de red disponibles" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "Se necesita un código PIN de desbloqueo" +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "Conexiones _VPN" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "Se necesita un código PIN de desbloqueo" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "_Configurar VPN…" -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "" -"El dispositivo de banda ancha «%s» necesita un código SIM PIN antes de poder " -"usarlo." - -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "Código PIN:" - -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "Mostrar el código PIN" - -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "Se necesita un código PUK" - -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "Se necesita un código PUK" +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "_Desconectar VPN" -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "" -"El dispositivo de banda ancha «%s» necesita un código SIM PUK antes de poder " -"usarlo." +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "El Gestor de la red no se está ejecutando…" -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "Código PUK:" +#: ../src/applet.c:1854 ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "Red desactivada" -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "Código PIN nuevo:" +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "Activar _red" -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "Introducir de nuevo el código PIN nuevo:" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +msgid "Enable _Wi-Fi" +msgstr "Activar _inalámbrica" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "Mostrar códigos PIN/PUK" +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "Activar la banda ancha _móvil" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "Red GSM." +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Activar la banda ancha móvil WiMA_X" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "Ethernet automática" +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "Activar n_otificaciones" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "Redes cableadas (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "_Información de la conexión" -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "Red cableada (%s)" +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "Editar las conexiones…" -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "Redes cableadas" +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "Ay_uda" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "Red cableada" +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "_Acerca de" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1509 -msgid "disconnected" -msgstr "desconectado" +#: ../src/applet.c:2335 +msgid "Disconnected" +msgstr "Desconectado" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "Ahora está conectado a la red cableada." +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "La conexión de red se ha desconectado." -#: ../src/applet-device-wired.c:300 +#: ../src/applet.c:2519 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Preparando la conexión cableada «%s»…" +msgid "Preparing network connection '%s'..." +msgstr "Preparando la conexión de red «%s»…" -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2522 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "Configurando la conexión de red cableada «%s»…" +msgid "User authentication required for network connection '%s'..." +msgstr "Se necesita autenticación de usuario para la conexión de red «%s»…" -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2525 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "Se necesita autenticación de usuario para la red cableada «%s»…" +msgid "Requesting a network address for '%s'..." +msgstr "Solicitando una dirección de red para «%s»…" -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2528 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "Solicitando una dirección de red cableada para «%s»…" +msgid "Network connection '%s' active" +msgstr "Conexión de red «%s» activa" -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2611 #, c-format -msgid "Wired network connection '%s' active" -msgstr "La conexión de red cableada «%s» está activa" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "Autenticación DSL" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "_Conectar a una red inalámbrica oculta…" - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "Crear una red inalámbrica _nueva…" - -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(ninguna)" +msgid "Starting VPN connection '%s'..." +msgstr "Iniciando conexión VPN «%s»…" -#: ../src/applet-device-wifi.c:792 +#: ../src/applet.c:2614 #, c-format -msgid "Wireless Networks (%s)" -msgstr "Redes inalámbricas (%s)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "Se necesita autenticación de usuario para la conexión VPN «%s»…" -#: ../src/applet-device-wifi.c:794 +#: ../src/applet.c:2617 #, c-format -msgid "Wireless Network (%s)" -msgstr "Red inalámbrica (%s)" +msgid "Requesting a VPN address for '%s'..." +msgstr "Solicitando una dirección VPN para «%s»…" -#: ../src/applet-device-wifi.c:796 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Red inalámbrica" -msgstr[1] "Redes inalámbricas" +#: ../src/applet.c:2620 +#, c-format +msgid "VPN connection '%s' active" +msgstr "Conexión VPN «%s» activa" -#: ../src/applet-device-wifi.c:829 -msgid "wireless is disabled" -msgstr "la red inalámbrica está desactivada" - -#: ../src/applet-device-wifi.c:830 -msgid "wireless is disabled by hardware switch" -msgstr "la red inalámbrica está desactivada por el interruptor físico" +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "Sin conexión de red" -#: ../src/applet-device-wifi.c:891 -msgid "More networks" -msgstr "Más redes" +#: ../src/applet.c:3361 +msgid "NetworkManager Applet" +msgstr "Miniaplicación Gestor de la red" -#: ../src/applet-device-wifi.c:1071 -msgid "Wireless Networks Available" -msgstr "Redes inalámbricas disponibles" +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Disponible" -#: ../src/applet-device-wifi.c:1072 -msgid "Use the network menu to connect to a wireless network" -msgstr "Usar el menú de red para conectarse a una red inalámbrica" +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "Ahora está conectado a «%s»." -#: ../src/applet-device-wifi.c:1075 ../src/applet.c:925 -msgid "Don't show this message again" -msgstr "No mostrar este mensaje de nuevo" +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "Se ha establecido la conexión" -#: ../src/applet-device-wifi.c:1267 -#, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Ahora está conectado a la red inalámbrica «%s»." +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Ahora está conectado a la red de banda ancha móvil." -#: ../src/applet-device-wifi.c:1298 +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Preparando la conexión de red inalámbrica «%s»…" +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Preparando la conexión de banda ancha móvil «%s»…" -#: ../src/applet-device-wifi.c:1301 +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Configurando la conexión de red inalámbrica «%s»…" +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Configurando la conexión de banda ancha móvil «%s»…" -#: ../src/applet-device-wifi.c:1304 +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "Se necesita autenticación de usuario para la conexión de red «%s»…" +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "" +"Se necesita autenticación de usuario para la conexión de banda ancha móvil " +"«%s»…" -#: ../src/applet-device-wifi.c:1307 +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Solicitando una dirección de red inalámbrica para «%s»…" +msgid "Mobile broadband connection '%s' active" +msgstr "La conexión de banda ancha móvil «%s» está activa" -#: ../src/applet-device-wifi.c:1328 -#, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "La conexión de red inalámbrica a «%s» está activa: %s (%d%%)" +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:700 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wifi.c:1333 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "La conexión de red «%s» está activa" - -#: ../src/applet-device-wifi.c:1381 -#| msgid "Failed to create PAN connection: %s" -msgid "Failed to activate connection" -msgstr "Falló al activar la conexión" +msgid "Mobile Broadband (%s)" +msgstr "Banda ancha móvil (%s)" -#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 -#: ../src/applet.c:491 ../src/applet.c:535 ../src/applet.c:561 -#| msgid "Unknown" -msgid "Unknown error" -msgstr "Error desconocido" +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:87 +#: ../src/connection-editor/page-mobile.c:380 +msgid "Mobile Broadband" +msgstr "Banda ancha móvil" -#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 -#: ../src/applet.c:494 ../src/applet.c:564 -#| msgid "Connection add failed" -msgid "Connection failure" -msgstr "Falló la conexión" +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Conexión de banda ancha móvil (CDMA) nueva…" -#: ../src/applet-device-wifi.c:1400 -#| msgid "Could not edit new connection" -msgid "Failed to add new connection" -msgstr "Falló al añadir la conexión nueva" +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Ahora está conectado a la red CDMA." -#: ../src/applet-device-wimax.c:231 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 #, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "Banda ancha móvil WiMAX (%s)" +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "La conexión de banda ancha móvil «%s» está activa: (%d%%%s%s)" -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr "Banda ancha móvil WiMAX" +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "roaming" -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "WiMAX está desactivada" +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "Red CDMA." -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX está desactivada por el interruptor físico" +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "Ahora está registrado en la red de casa." -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "Ahora está conectado a la red WiMAX." +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "Ahora está registrado en una red de «roaming»." -#: ../src/applet-dialogs.c:57 -msgid "Error displaying connection information:" -msgstr "Ha ocurrido un error al mostrar información de la conexión:" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "Cableada automática" -#: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:313 -#: ../src/libnm-gtk/nm-wireless-dialog.c:948 -#: ../src/wireless-security/wireless-security.c:406 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-ethernet.c:205 +#, c-format +msgid "Ethernet Networks (%s)" +msgstr "Redes cableadas (%s)" -#: ../src/applet-dialogs.c:111 -msgid "Dynamic WEP" -msgstr "WEP dinámica " +#: ../src/applet-device-ethernet.c:207 +#, c-format +msgid "Ethernet Network (%s)" +msgstr "Red cableada (%s)" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 -#: ../src/applet-dialogs.c:247 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "Redes cableadas" -#: ../src/applet-dialogs.c:243 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "Red cableada" -#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 -#: ../src/connection-editor/page-wireless-security.c:265 -#: ../src/libnm-gtk/nm-wireless-dialog.c:905 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "Ninguna" +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "Ahora está conectado a la red cableada." -#: ../src/applet-dialogs.c:277 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "%s (default)" -msgstr "%s (predeterminada)" +msgid "Preparing ethernet network connection '%s'..." +msgstr "Preparando la conexión cableada «%s»…" -#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "%u Mb/s" -msgstr "%u Mb/s" +msgid "Configuring ethernet network connection '%s'..." +msgstr "Configurando la conexión de red cableada «%s»…" -#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 -msgctxt "Speed" -msgid "Unknown" -msgstr "Desconocida" +#: ../src/applet-device-ethernet.c:306 +#, c-format +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "Se necesita autenticación de usuario para la red cableada «%s»…" -#: ../src/applet-dialogs.c:361 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "%d dB" -msgstr "%d dB" +msgid "Requesting an ethernet network address for '%s'..." +msgstr "Solicitando una dirección de red cableada para «%s»…" -#: ../src/applet-dialogs.c:363 -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "Desconocido" +#: ../src/applet-device-ethernet.c:313 +#, c-format +msgid "Ethernet network connection '%s' active" +msgstr "La conexión de red cableada «%s» está activa" -#: ../src/applet-dialogs.c:375 -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "Desconocido" +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "Autenticación DSL" -#: ../src/applet-dialogs.c:410 -#, c-format -msgid "Ethernet (%s)" -msgstr "Ethernet (%s)" +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:703 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" -#: ../src/applet-dialogs.c:413 -#, c-format -msgid "802.11 WiFi (%s)" -msgstr "802.11 WiFi (%s)" +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Conexión de banda ancha móvil (GSM) nueva…" -#: ../src/applet-dialogs.c:420 -#, c-format -msgid "GSM (%s)" -msgstr "GSM (%s)" +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "Ahora está conectado a la red GSM." -#: ../src/applet-dialogs.c:422 -#, c-format -msgid "CDMA (%s)" -msgstr "CDMA (%s)" +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "Se necesita un código PIN" -#: ../src/applet-dialogs.c:426 +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "Se necesita un código PIN para el dispositivo de banda ancha móvil" + +#: ../src/applet-device-gsm.c:781 #, c-format -msgid "WiMAX (%s)" -msgstr "WiMAX (%s)" +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "Código PIN para la tarjeta SIM «%s» en «%s»" -#. --- General --- -#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 -msgid "General" -msgstr "General" +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "Código PIN erróneo; contacte con el proveedor de su servicio." -#: ../src/applet-dialogs.c:436 -msgid "Interface:" -msgstr "Interfaz:" +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "Código PUK erróneo; contacte con el proveedor de su servicio." -#: ../src/applet-dialogs.c:452 -msgid "Hardware Address:" -msgstr "Dirección hardware:" +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "Enviando código de desbloqueo…" -#. Driver -#: ../src/applet-dialogs.c:460 -msgid "Driver:" -msgstr "Controlador:" +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "Se necesita un código PIN de desbloqueo" -#: ../src/applet-dialogs.c:489 -msgid "Speed:" -msgstr "Velocidad:" +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "Se necesita un código PIN de desbloqueo" -#: ../src/applet-dialogs.c:499 -msgid "Security:" -msgstr "Seguridad:" +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "" +"El dispositivo de banda ancha «%s» necesita un código SIM PIN antes de poder " +"usarlo." -#: ../src/applet-dialogs.c:512 -msgid "CINR:" -msgstr "CINR:" +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "Código PIN:" -#: ../src/applet-dialogs.c:525 -msgid "BSID:" -msgstr "BSID:" +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "Mostrar el código PIN" -#. --- IPv4 --- -#: ../src/applet-dialogs.c:542 -msgid "IPv4" -msgstr "IPv4" +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "Se necesita un código PUK" -#. Address -#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 -msgid "IP Address:" -msgstr "Dirección IP:" +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "Se necesita un código PUK" -#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 -msgctxt "Address" -msgid "Unknown" -msgstr "Desconocida" +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "" +"El dispositivo de banda ancha «%s» necesita un código SIM PUK antes de poder " +"usarlo." -#: ../src/applet-dialogs.c:569 -msgid "Broadcast Address:" -msgstr "Dirección de difusión:" +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "Código PUK:" -#. Prefix -#: ../src/applet-dialogs.c:578 -msgid "Subnet Mask:" -msgstr "Máscara de subred:" +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "Código PIN nuevo:" -#: ../src/applet-dialogs.c:580 -msgctxt "Subnet Mask" -msgid "Unknown" -msgstr "Desconocida" +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "Introducir de nuevo el código PIN nuevo:" -#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 -msgid "Default Route:" -msgstr "Ruta predeterminada:" +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "Mostrar códigos PIN/PUK" -#: ../src/applet-dialogs.c:600 -msgid "Primary DNS:" -msgstr "DNS primario:" +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "Red GSM." -#: ../src/applet-dialogs.c:609 -msgid "Secondary DNS:" -msgstr "DNS secundario:" +#: ../src/applet-device-wifi.c:97 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "_Conectar a una red inalámbrica oculta…" -#: ../src/applet-dialogs.c:619 -msgid "Ternary DNS:" -msgstr "DNS terciario:" +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "Crear una red inalámbrica _nueva…" -#. --- IPv6 --- -#: ../src/applet-dialogs.c:634 -msgid "IPv6" -msgstr "IPv6" +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(ninguna)" -#: ../src/applet-dialogs.c:643 -msgid "Ignored" -msgstr "Ignorado" +#: ../src/applet-device-wifi.c:790 +#, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "Redes inalámbricas (%s)" -#: ../src/applet-dialogs.c:796 -msgid "VPN Type:" -msgstr "Tipo de VPN:" +#: ../src/applet-device-wifi.c:792 +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Red inalámbrica (%s)" -#: ../src/applet-dialogs.c:803 -msgid "VPN Gateway:" -msgstr "Puerta de enlace VPN:" +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Red inalámbrica" +msgstr[1] "Redes inalámbricas" -#: ../src/applet-dialogs.c:809 -msgid "VPN Username:" -msgstr "Nombre del usuario VPN:" +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "La red inalámbrica está desactivada" + +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Red inalámbrica desactivada por el interruptor físico" -#: ../src/applet-dialogs.c:815 -msgid "VPN Banner:" -msgstr "Mensaje VPN:" +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "Más redes" -#: ../src/applet-dialogs.c:821 -msgid "Base Connection:" -msgstr "Conexión base:" +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "Redes inalámbricas disponibles" -#: ../src/applet-dialogs.c:823 -msgid "Unknown" -msgstr "Desconocida" +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Usar el menú de red para conectarse a una red inalámbrica" -#. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:886 -msgid "No valid active connections found!" -msgstr "No se encontró ninguna conexión activa válida" +#: ../src/applet-device-wifi.c:1263 +#, c-format +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Ahora está conectado a la red inalámbrica «%s»." -#: ../src/applet-dialogs.c:939 -msgid "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"and many other community contributors and translators" -msgstr "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"y muchos otros colaboradores y traductores de la comunidad" +#: ../src/applet-device-wifi.c:1294 +#, c-format +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Preparando la conexión de red inalámbrica «%s»…" -#: ../src/applet-dialogs.c:942 -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "" -"Miniaplicación del área de notificación para gestionar sus dispositivos de " -"red y conexiones." +#: ../src/applet-device-wifi.c:1297 +#, c-format +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Configurando la conexión de red inalámbrica «%s»…" -#: ../src/applet-dialogs.c:944 -msgid "NetworkManager Website" -msgstr "Página web del Gestor de la red" +#: ../src/applet-device-wifi.c:1300 +#, c-format +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "" +"Se necesita autenticación de usuario para la conexión de red inalámbrica " +"«%s»…" -#: ../src/applet-dialogs.c:959 -msgid "Missing resources" -msgstr "Recursos faltantes" +#: ../src/applet-device-wifi.c:1303 +#, c-format +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Solicitando una dirección de red inalámbrica para «%s»…" -#: ../src/applet-dialogs.c:984 -msgid "Mobile broadband network password" -msgstr "Contraseña de la red de banda ancha móvil" +#: ../src/applet-device-wifi.c:1324 +#, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "La conexión de red inalámbrica a «%s» está activa: %s (%d%%)" -#: ../src/applet-dialogs.c:993 +#: ../src/applet-device-wifi.c:1329 #, c-format -msgid "A password is required to connect to '%s'." -msgstr "Se necesita una contraseña para conectar con «%s»" +msgid "Wi-Fi network connection '%s' active" +msgstr "La conexión de red inalámbrica «%s» está activa" -#: ../src/applet-dialogs.c:1012 -msgid "Password:" -msgstr "Contraseña:" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Falló al activar la conexión" -#: ../src/applet.c:489 -#| msgid "Failed to create PAN connection: %s" -msgid "Failed to add/activate connection" -msgstr "Falló al añadir/activar la conexión" +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Falló al añadir la conexión nueva" -#: ../src/applet.c:533 -#| msgid "disconnected" -msgid "Device disconnect failed" -msgstr "Falló al desconectar el dispositivo" +#: ../src/applet-device-wimax.c:231 +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "Banda ancha móvil WiMAX (%s)" -#: ../src/applet.c:538 -#| msgid "Disconnected" -msgid "Disconnect failure" -msgstr "Falló al desconectar" +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "Banda ancha móvil WiMAX" -#: ../src/applet.c:559 -#| msgid "Connection add failed" -msgid "Connection activation failed" -msgstr "Falló al activar la conexión" +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "WiMAX está desactivada" -#: ../src/applet.c:1014 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"La conexión VPN «%s» ha fallado porque se interrumpió la conexión de red." +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX está desactivada por el interruptor físico" -#: ../src/applet.c:1017 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"La conexión de red «%s» ha fallado porque el servicio VPN se interrumpió " -"inesperadamente." +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "Ahora está conectado a la red WiMAX." -#: ../src/applet.c:1020 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"La conexión VPN «%s» ha fallado porque el servicio VPN devolvió una " -"configuración no válida." +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "Ha ocurrido un error al mostrar información de la conexión:" -#: ../src/applet.c:1023 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"La conexión VPN «%s» ha fallado porque expiró el tiempo de conexión." +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" -#: ../src/applet.c:1026 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"La conexión VPN «%s» ha fallado porque el servicio VPN no se inició a tiempo." +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "WEP dinámica " -#: ../src/applet.c:1029 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"La conexión VPN «%s» ha fallado porque el servició VPN no pudo iniciarse." +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" -#: ../src/applet.c:1032 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"La conexión VPN «%s» falló porque no había secretos VPN válidos." +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" -#: ../src/applet.c:1035 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"La conexión VPN «%s» falló porque los secretos VPN no eran válidos." +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "Ninguna" -#: ../src/applet.c:1042 +#: ../src/applet-dialogs.c:277 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"La conexión VPN «%s» ha fallado." +msgid "%s (default)" +msgstr "%s (predeterminada)" -#: ../src/applet.c:1060 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"La conexión VPN «%s» se desconectó porque se interrumpió la conexión de red." +msgid "%u Mb/s" +msgstr "%u Mb/s" -#: ../src/applet.c:1063 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"La conexión VPN «%s» se desconectó porque paró el servicio VPN." +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "Desconocida" -#: ../src/applet.c:1069 +#: ../src/applet-dialogs.c:361 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"La conexión VPN «%s» se ha desconectado." +msgid "%d dB" +msgstr "%d dB" -#: ../src/applet.c:1103 -msgid "VPN Login Message" -msgstr "Mensaje de acceso VPN" +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "Desconocido" -#: ../src/applet.c:1109 ../src/applet.c:1117 ../src/applet.c:1167 -msgid "VPN Connection Failed" -msgstr "Falló la conexión VPN" +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "Desconocido" -#: ../src/applet.c:1174 +#: ../src/applet-dialogs.c:410 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"La conexión VPN «%s» ha fallado porque el servicio VPN falló al iniciarse.\n" -"\n" -"%s" +msgid "Ethernet (%s)" +msgstr "Cableada (%s)" -#: ../src/applet.c:1177 +#: ../src/applet-dialogs.c:413 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"La conexión VPN «%s» falló al iniciarse.\n" -"\n" -"%s" - -#: ../src/applet.c:1497 -msgid "device not ready (firmware missing)" -msgstr "el dispositivo no está listo (falta el firmware)" +msgid "802.11 WiFi (%s)" +msgstr "802.11 WiFi (%s)" -#: ../src/applet.c:1499 -msgid "device not ready" -msgstr "el dispositivo no está listo" +#: ../src/applet-dialogs.c:420 +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" -#: ../src/applet.c:1525 -msgid "Disconnect" -msgstr "Desconectar" +#: ../src/applet-dialogs.c:422 +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" -#: ../src/applet.c:1539 -msgid "device not managed" -msgstr "el dispositivo no está gestionado" +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" -#: ../src/applet.c:1583 -msgid "No network devices available" -msgstr "No hay dispositivos de red disponibles" +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "General" -#: ../src/applet.c:1671 -msgid "_VPN Connections" -msgstr "Conexiones _VPN" +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "Interfaz:" -#: ../src/applet.c:1728 -msgid "_Configure VPN..." -msgstr "_Configurar VPN…" +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "Dirección hardware:" -#: ../src/applet.c:1732 -msgid "_Disconnect VPN" -msgstr "_Desconectar VPN" +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "Controlador:" -#: ../src/applet.c:1830 -msgid "NetworkManager is not running..." -msgstr "El Gestor de la red no se está ejecutando…" +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "Velocidad:" -#: ../src/applet.c:1835 ../src/applet.c:2634 -msgid "Networking disabled" -msgstr "Red desactivada" +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "Seguridad:" -#. 'Enable Networking' item -#: ../src/applet.c:2056 -msgid "Enable _Networking" -msgstr "Activar _red" +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "CINR:" -#. 'Enable Wireless' item -#: ../src/applet.c:2065 -msgid "Enable _Wireless" -msgstr "Activar _inalámbrico" +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "BSID:" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2074 -msgid "Enable _Mobile Broadband" -msgstr "Activar la banda ancha _móvil" +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2083 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Activar la banda ancha móvil WiMA_X" +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 +msgid "IP Address:" +msgstr "Dirección IP:" -#. Toggle notifications item -#: ../src/applet.c:2094 -msgid "Enable N_otifications" -msgstr "Activar n_otificaciones" +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "Desconocida" -#. 'Connection Information' item -#: ../src/applet.c:2105 -msgid "Connection _Information" -msgstr "_Información de la conexión" +#: ../src/applet-dialogs.c:569 +msgid "Broadcast Address:" +msgstr "Dirección de difusión:" -#. 'Edit Connections...' item -#: ../src/applet.c:2115 -msgid "Edit Connections..." -msgstr "Editar las conexiones…" +#. Prefix +#: ../src/applet-dialogs.c:578 +msgid "Subnet Mask:" +msgstr "Máscara de subred:" -#. Help item -#: ../src/applet.c:2129 -msgid "_Help" -msgstr "Ay_uda" +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Desconocida" -#. About item -#: ../src/applet.c:2138 -msgid "_About" -msgstr "_Acerca de" +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 +msgid "Default Route:" +msgstr "Ruta predeterminada:" -#: ../src/applet.c:2315 -msgid "Disconnected" -msgstr "Desconectado" +#: ../src/applet-dialogs.c:600 +msgid "Primary DNS:" +msgstr "DNS primario:" -#: ../src/applet.c:2316 -msgid "The network connection has been disconnected." -msgstr "La conexión de red se ha desconectado." +#: ../src/applet-dialogs.c:609 +msgid "Secondary DNS:" +msgstr "DNS secundario:" -#: ../src/applet.c:2497 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Preparando la conexión de red «%s»…" +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "DNS terciario:" -#: ../src/applet.c:2500 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Se necesita autenticación de usuario para la conexión de red «%s»…" +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" -#: ../src/applet.c:2506 -#, c-format -msgid "Network connection '%s' active" -msgstr "Conexión de red «%s» activa" +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "Ignorado" -#: ../src/applet.c:2589 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Iniciando conexión VPN «%s»…" +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "Tipo de VPN:" -#: ../src/applet.c:2592 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Se necesita autenticación de usuario para la conexión VPN «%s»…" +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "Puerta de enlace VPN:" -#: ../src/applet.c:2595 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Solicitando una dirección VPN para «%s»…" +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "Nombre del usuario VPN:" -#: ../src/applet.c:2598 -#, c-format -msgid "VPN connection '%s' active" -msgstr "Conexión VPN «%s» activa" +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "Mensaje VPN:" -#: ../src/applet.c:2639 -msgid "No network connection" -msgstr "Sin conexión de red" +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Conexión base:" -#: ../src/applet.c:3394 -msgid "NetworkManager Applet" -msgstr "Miniaplicación Gestor de la red" +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "Desconocida" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Desbloquear automáticamente este dispositivo" +#. Shouldn't really happen but ... +#: ../src/applet-dialogs.c:886 +msgid "No valid active connections found!" +msgstr "No se encontró ninguna conexión activa válida" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "Desbloq_uear" +#: ../src/applet-dialogs.c:939 +msgid "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" +msgstr "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"y muchos otros colaboradores y traductores de la comunidad" -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "Información de la conexión" +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"Miniaplicación del área de notificación para gestionar sus dispositivos de " +"red y conexiones." -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "Conexiones de red activas" +#: ../src/applet-dialogs.c:944 +msgid "NetworkManager Website" +msgstr "Página web del Gestor de la red" -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Autenticación cableada 802.1x" +#: ../src/applet-dialogs.c:959 +msgid "Missing resources" +msgstr "Recursos faltantes" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "_Nombre de red:" +#: ../src/applet-dialogs.c:984 +msgid "Mobile broadband network password" +msgstr "Contraseña de la red de banda ancha móvil" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "automático" +#: ../src/applet-dialogs.c:993 +#, c-format +msgid "A password is required to connect to '%s'." +msgstr "Se necesita una contraseña para conectar con «%s»" -#: ../src/connection-editor/ce-page.c:318 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "" -"Falló al actualizar los secretos de la conexión debido a un error " -"desconocido." +#: ../src/applet-dialogs.c:1012 +msgid "Password:" +msgstr "Contraseña:" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 @@ -1109,6 +1123,143 @@ "Si está activado, esta conexión nunca se usará como la conexión de red " "predeterminada." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "Elegir un tipo de conexión" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"Seleccione el tipo de conexión que quiere crear.\n" +"\n" +"Si está creando una conexión VPN, y la que quiere crear no aparece en la " +"lista, puede que no tenga instalado el complemento de VPN correcto." + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Crear…" + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "automático" + +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "" +"Falló al actualizar los secretos de la conexión debido a un error " +"desconocido." + +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" +msgstr "Round-robin" + +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" +msgstr "Copia de respaldo activa" + +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" +msgstr "XOR" + +#: ../src/connection-editor/ce-page-bond.ui.h:4 +#| msgid "Broadcast Address:" +msgid "Broadcast" +msgstr "Difusión" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "802.3ad" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" +msgstr "Balanceo de carga de transmisión adaptativo" + +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" +msgstr "Balanceo de carga adaptativo" + +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "MII (recomendado)" + +#: ../src/connection-editor/ce-page-bond.ui.h:9 +#| msgid "EAP" +msgid "ARP" +msgstr "ARP" + +#: ../src/connection-editor/ce-page-bond.ui.h:10 +#| msgid "Base Connection:" +msgid "Bonded _connections:" +msgstr "_Conexiones redundadas:" + +#: ../src/connection-editor/ce-page-bond.ui.h:11 +#| msgid "M_ode:" +msgid "_Mode:" +msgstr "_Modo:" + +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "_Editar" + +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "_Eliminar" + +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "_Frecuencia de monitorización:" + +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "ms" + +#: ../src/connection-editor/ce-page-bond.ui.h:16 +#| msgid "Interface:" +msgid "_Interface name:" +msgstr "Nombre de la _interfaz:" + +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "Monitorizar en_lace:" + +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "Obje_tivos ARP:" + +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "" +"An IP address, or a comma-separated list of IP addresses, to look for when " +"checking the link status." +msgstr "" +"Una dirección IP, o una lista de direcciones IP separadas por comas que " +"mirar al comprobar el estado del enlace." + +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "_Retardo al levantar el enlace:" + +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "Retardo al _desconectar el enlace:" + #: ../src/connection-editor/ce-page-dsl.ui.h:1 #: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 @@ -1130,23 +1281,120 @@ msgid "Sho_w password" msgstr "_Mostrar la contraseña" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:9 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "_Password:" -msgstr "Contrase_ña:" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "Contrase_ña:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "Automático" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Par cruzado (TP)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Interfaz de unidad de acoplamiento (AUI)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Interfaz independiente de medios (MII)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Puerto:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Velocidad:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Full duple_x" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "Aut_onegociar" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "Dirección MAC del _dispositivo:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "Dirección MAC _clonada:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"La dirección MAC aquí introducida se usará como dirección de hardware para " +"el dispositivo de red en el que se activa esta conexión. Esta característica " +"se conoce como clonado MAC o «spoofing». Ejemplo: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -msgid "Automatic" -msgstr "Automático" +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "bytes" + +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "Moto de _transporte:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagrama" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "Conectado" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 @@ -1207,11 +1455,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Dominios de bú_squeda:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "Servidores _DNS:" @@ -1363,149 +1615,70 @@ msgid "Send PPP _echo packets" msgstr "Enviar paquetes _echo PPP" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "Par cruzado (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "Interfaz de unidad de acoplamiento (AUI)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "Interfaz independiente de medios (MII)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "_Puerto:" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "_Velocidad:" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "Full duple_x" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "Aut_onegociar" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "Dirección MAC del _dispositivo:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "C_loned MAC address:" -msgstr "Dirección MAC _clonada:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"La dirección MAC aquí introducida se usará como dirección de hardware para " -"el dispositivo de red en el que se activa esta conexión. Esta característica " -"se conoce como clonado MAC o «spoofing». Ejemplo: 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "_MTU:" -msgstr "_MTU:" - -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "bytes" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "S_eguridad:" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Infraestructura" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "Ad-hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "mW" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "_Potencia de la transmisión:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "_Tasa:" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" "Esta opción bloquea esta conexión al punto de acceso inalámbrico (AP) " -"especificado por el BSSID ingresado aquí. Por ejemplo " +"especificado por el BSSID introducido aquí. Por ejemplo 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "_Canal:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "Ban_da:" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "M_odo:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "SS_ID:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "S_eguridad:" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Métodos de autenticación permitidos" @@ -1560,77 +1733,336 @@ "métodos de autenticación. Si la conexión falla, intente desactivar el " "soporte para algunos métodos." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Dirección" + +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Máscara de red" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Puerta de enlace" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Métrica" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Prefijo" + +#: ../src/connection-editor/new-connection.c:77 +#: ../src/connection-editor/page-ethernet.c:274 +msgid "Ethernet" +msgstr "Cableada" + +#: ../src/connection-editor/new-connection.c:82 +#: ../src/connection-editor/page-wifi.c:463 +msgid "Wi-Fi" +msgstr "Inalámbrica" + +#: ../src/connection-editor/new-connection.c:92 +#: ../src/connection-editor/page-wimax.c:158 ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:97 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:102 +#: ../src/connection-editor/page-infiniband.c:190 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:107 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "Bond" + +#: ../src/connection-editor/new-connection.c:119 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:252 +msgid "Import a saved VPN configuration..." +msgstr "Importar una configuración VPN guardada…" + +#: ../src/connection-editor/new-connection.c:274 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"El editor de la conexión no se pudo iniciar debido a un error desconocido." + +#: ../src/connection-editor/new-connection.c:283 +msgid "Could not create new connection" +msgstr "No se pudo crear la nueva conexión" + +#: ../src/connection-editor/new-connection.c:419 +msgid "Connection delete failed" +msgstr "Falló al eliminar la conexión" + +#: ../src/connection-editor/new-connection.c:466 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "¿Está seguro de que quiere eliminar la conexión %s?" + +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "Editando %s" + +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "Editando la conexión sin nombre" + +#: ../src/connection-editor/nm-connection-editor.c:301 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"El editor de la conexión no pudo encontrar algunos archivos de recursos (no " +"se encontró el archivo .iu)." + +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "_Guardar" + +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "Guardar cualquier cambio realizado en esta conexión." + +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "_Guardar…" + +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "" +"Autenticar para guardar esta conexión para todos los usuarios en este equipo." + +#: ../src/connection-editor/nm-connection-editor.c:447 +#| msgid "Could not create new connection" +msgid "Could not create connection" +msgstr "No se pudo crear la conexión" + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "No se pudo editar la conexión" + +#: ../src/connection-editor/nm-connection-editor.c:449 +#| msgid "Error creating connection editor dialog." +msgid "Unknown error creating connection editor dialog." +msgstr "Error desconocido al crear el diálogo del editor de conexión." + +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "Error al guardar la conexión" + +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "La propiedad «%s» / «%s» no es válida: %d" + +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "Error al inicializar el editor" + +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "Falló al añadir la conexión" + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "_Nombre de la conexión:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "Conectar _automáticamente" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "Disponible para _todos los usuarios" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "E_xportar…" + +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "nunca" + +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "ahora" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "hace %d minuto" +msgstr[1] "hace %d minutos" + +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "hace %d hora" +msgstr[1] "hace %d horas" + +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "hace %d día" +msgstr[1] "hace %d días" + +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "hace %d mes" +msgstr[1] "hace %d meses" + +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "hace %d año" +msgstr[1] "hace %d años" + +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "Nombre" + +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "Usada por última vez" + +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "Editar la conexión seleccionada" + +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "_Editar…" + +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "Autentíquese para editar la conexión seleccionada" + +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "Eliminar la conexión seleccionada" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "_Eliminar…" + +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "Autentíquese para eliminar la conexión seleccionada" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Elegir un tipo de conexión VPN" +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "Error al crear la conexión" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" -"Seleccione el tipo de VPN que quiere usar para la nueva conexión. Si el tipo " -"de conexión VPN que quiere crear no aparece en la lista, puede que no tenga " -"instalado el complemento de VPN correcto." +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Se desconoce cómo crear conexiones «%s»" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "Crear…" +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "Error al editar la conexión" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Dirección" +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "No se encontró una conexión con UUID «%s»" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Máscara de red" +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "Seguridad 802.1x" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Puerta de enlace" +#: ../src/connection-editor/page-8021x-security.c:122 +msgid "Could not load 802.1x Security user interface." +msgstr "No se pudo cargar la interfaz de usuario de seguridad 802.1x." -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Métrica" +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "Usar seguridad 802.1_X para esta conexión" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Prefijo" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "%s esclavo %d" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1518 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:749 +#| msgid "Could not load DSL user interface." +msgid "Could not load bond user interface." +msgstr "No se pudo cargar la interfaz de usuario para Bond." -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-bond.c:909 +#, c-format +#| msgid "InfiniBand connection %d" +msgid "Bond connection %d" +msgstr "Conexión Bond %d" + +#: ../src/connection-editor/page-dsl.c:142 msgid "Could not load DSL user interface." msgstr "No se pudo cargar la interfaz de usuario para DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:234 #, c-format msgid "DSL connection %d" msgstr "Conexión DSL %d" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Esta opción bloquea esta conexión al dispositivo de red especificado por su " +"dirección permanente MAC aquí introducida. Por ejemplo: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:276 +msgid "Could not load ethernet user interface." +msgstr "No se pudo cargar la interfaz de usuario cableada." + +#: ../src/connection-editor/page-ethernet.c:452 +#, c-format +msgid "Ethernet connection %d" +msgstr "Conexión cableada %d" + +#: ../src/connection-editor/page-infiniband.c:193 +msgid "Could not load InfiniBand user interface." +msgstr "No se pudo cargar la interfaz de usuario InfiniBand." + +#: ../src/connection-editor/page-infiniband.c:318 +#, c-format +msgid "InfiniBand connection %d" +msgstr "Conexión InfiniBand %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1678,16 +2110,26 @@ msgid "Disabled" msgstr "Inhabilitado" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Servidores _DNS adicionales:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Dominios de bú_squeda adicionales:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Editando las rutas IPv4 para %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:993 msgid "IPv4 Settings" msgstr "Ajustes de IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:995 msgid "Could not load IPv4 user interface." msgstr "No se pudo cargar la interfaz de usuario para IPv4." @@ -1696,7 +2138,7 @@ msgstr "Automático, sólo direcciones" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ignorar" @@ -1704,33 +2146,33 @@ msgid "Automatic, DHCP only" msgstr "Automático, DHCP únicamente" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Editando las rutas IPv6 para %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:957 msgid "IPv6 Settings" msgstr "Ajustes de IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:959 msgid "Could not load IPv6 user interface." msgstr "No se pudo cargar la interfaz de usuario para IPv6." -#: ../src/connection-editor/page-mobile.c:381 +#: ../src/connection-editor/page-mobile.c:382 msgid "Could not load mobile broadband user interface." msgstr "No se pudo cargar la interfaz de usuario de banda ancha móvil." -#: ../src/connection-editor/page-mobile.c:398 +#: ../src/connection-editor/page-mobile.c:399 msgid "Unsupported mobile broadband connection type." msgstr "El tipo de conexión de banda ancha móvil no está soportado." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:643 msgid "Select Mobile Broadband Provider Type" msgstr "Seleccionar el tipo de proveedor de banda ancha móvil" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:678 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." @@ -1738,12 +2180,12 @@ "Seleccionar la tecnología que el proveedor de su banda ancha móvil usa. Si " "no está seguro pregúntele a su proveedor." -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:683 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "" "Mi proveedor usa tecnología basada en _GSM (ej. GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:690 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "Mi proveedor usa tecnología basada en C_DMA (ej. 1xRTT, EVDO)" @@ -1756,326 +2198,57 @@ msgid "PAP" msgstr "PAP" -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:280 -msgid "CHAP" -msgstr "CHAP" - -#: ../src/connection-editor/page-ppp.c:137 -#: ../src/wireless-security/eap-method-fast.c:277 -#: ../src/wireless-security/eap-method-peap.c:246 -#: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "ninguno" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Editando los métodos de autenticación PPP para %s" - -#: ../src/connection-editor/page-ppp.c:282 -msgid "PPP Settings" -msgstr "Ajustes de PPP" - -#: ../src/connection-editor/page-ppp.c:284 -msgid "Could not load PPP user interface." -msgstr "No se pudo cargar la interfaz de usuario para PPP." - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1514 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "No se pudo cargar la interfaz de usuario para la VPN." - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "No se pudo encontrar el complemento de servicio VPN para «%s»." - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:899 -#, c-format -msgid "VPN connection %d" -msgstr "Conexión VPN %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"Esta opción bloquea esta conexión al dispositivo de red especificado por su " -"dirección permanente MAC aquí introducida. Por ejemplo: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1502 -msgid "Wired" -msgstr "Cableado" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "No se pudo cargar la interfaz de usuario cableada." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Conexión cableada %d" - -#: ../src/connection-editor/page-wired-security.c:119 -msgid "802.1x Security" -msgstr "Seguridad 802.1x" - -#: ../src/connection-editor/page-wired-security.c:121 -msgid "Could not load Wired Security security user interface." -msgstr "No se pudo cargar la interfaz de usuario de seguridad cableada." - -#: ../src/connection-editor/page-wired-security.c:139 -msgid "Use 802.1_X security for this connection" -msgstr "Usar seguridad 802.1_X para esta conexión" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "predeterminado" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1506 -msgid "Wireless" -msgstr "Inalámbrico" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "No se pudo cargar la interfaz de usuario inalámbrica." - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Conexión inalámbrica %d" - -#: ../src/connection-editor/page-wireless-security.c:290 -#: ../src/libnm-gtk/nm-wireless-dialog.c:922 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "Clave WEP 40/128-bit (Hexadecimal o ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:300 -#: ../src/libnm-gtk/nm-wireless-dialog.c:931 -msgid "WEP 128-bit Passphrase" -msgstr "Frase de paso WEP de 128 bits" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:961 -msgid "Dynamic WEP (802.1x)" -msgstr "WEP dinámica (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:340 -#: ../src/libnm-gtk/nm-wireless-dialog.c:975 -msgid "WPA & WPA2 Personal" -msgstr "WPA y WPA2 personal" - -#: ../src/connection-editor/page-wireless-security.c:354 -#: ../src/libnm-gtk/nm-wireless-dialog.c:989 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA y WPA2 enterprise" - -#: ../src/connection-editor/page-wireless-security.c:395 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"No se pudo cargar la interfaz de usuario de seguridad inalámbrica; faltan " -"los ajustes inalámbricos." - -#: ../src/connection-editor/page-wireless-security.c:405 -msgid "Wireless Security" -msgstr "Seguridad inalámbrica" - -#: ../src/connection-editor/page-wireless-security.c:407 -msgid "Could not load WiFi security user interface." -msgstr "No se pudo cargar la interfaz de usuario de seguridad inalámbrica." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Editando %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Editando la conexión sin nombre" - -#: ../src/connection-editor/nm-connection-editor.c:291 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"El editor de la conexión no pudo encontrar algunos archivos de recursos (no " -"se encontró el archivo .iu)." - -#: ../src/connection-editor/nm-connection-editor.c:394 -msgid "Error creating connection editor dialog." -msgstr "Error al crear el diálogo del editor de conexión." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "_Save" -msgstr "_Guardar" - -#: ../src/connection-editor/nm-connection-editor.c:407 -msgid "Save any changes made to this connection." -msgstr "Guardar cualquier cambio realizado en esta conexión." - -#: ../src/connection-editor/nm-connection-editor.c:408 -msgid "_Save..." -msgstr "_Guardar…" - -#: ../src/connection-editor/nm-connection-editor.c:409 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "" -"Autenticar para guardar esta conexión para todos los usuarios en este equipo." - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "_Importar" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "E_xportar" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "_Nombre de la conexión:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "Conectar _automáticamente" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Disponible para todos los usuarios" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "nunca" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "ahora" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "hace %d minuto" -msgstr[1] "hace %d minutos" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "hace %d hora" -msgstr[1] "hace %d horas" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "hace %d día" -msgstr[1] "hace %d días" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "hace %d mes" -msgstr[1] "hace %d meses" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "hace %d año" -msgstr[1] "hace %d años" - -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Falló al añadir la conexión" - -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Error al guardar la conexión" - -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "La propiedad «%s» / «%s» es inválida: %d" +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Ocurrió un error desconocido." +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Error al inicializar el editor" +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:885 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "" -"El editor de la conexión no se pudo iniciar debido a un error desconocido." +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "ninguno" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "No se pudo crear la nueva conexión" +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Editando los métodos de autenticación PPP para %s" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "No se pudo editar la conexión nueva" +#: ../src/connection-editor/page-ppp.c:283 +msgid "PPP Settings" +msgstr "Ajustes de PPP" -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "No se pudo editar la conexión" +#: ../src/connection-editor/page-ppp.c:285 +msgid "Could not load PPP user interface." +msgstr "No se pudo cargar la interfaz de usuario para PPP." -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Falló al eliminar la conexión" +#: ../src/connection-editor/page-vpn.c:114 +msgid "Could not load VPN user interface." +msgstr "No se pudo cargar la interfaz de usuario para la VPN." -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:129 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "¿Está seguro de que quiere eliminar la conexión %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "No se pudo encontrar el complemento de servicio VPN para «%s»." -#: ../src/connection-editor/nm-connection-list.c:929 -#: ../src/connection-editor/vpn-helpers.c:228 -msgid "Cannot import VPN connection" -msgstr "No se puede importar la conexión VPN" +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 +#, c-format +msgid "VPN connection %d" +msgstr "Conexión VPN %d" -#: ../src/connection-editor/nm-connection-list.c:931 +#: ../src/connection-editor/page-vpn.c:249 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2085,81 +2258,99 @@ "\n" "Error: no existe el tipo de servicio VPN." -#: ../src/connection-editor/nm-connection-list.c:944 -msgid "Could not edit imported connection" -msgstr "No se pudo editar la conexión importada" +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "Elegir un tipo de conexión VPN" -#: ../src/connection-editor/nm-connection-list.c:1125 -msgid "Name" -msgstr "Nombre" +#: ../src/connection-editor/page-vpn.c:275 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Seleccione el tipo de VPN que quiere usar para la nueva conexión. Si el tipo " +"de conexión VPN que quiere crear no aparece en la lista, puede que no tenga " +"instalado el complemento de VPN correcto." -#: ../src/connection-editor/nm-connection-list.c:1137 -msgid "Last Used" -msgstr "Usada por última vez" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "predeterminado" -#: ../src/connection-editor/nm-connection-list.c:1263 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "" -"No existe un complemento de VPN disponible. Instale uno para activar este " -"botón." +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1274 -msgid "_Edit" -msgstr "_Editar" +#: ../src/connection-editor/page-wifi.c:465 +msgid "Could not load Wi-Fi user interface." +msgstr "No se pudo cargar la interfaz de usuario inalámbrica." -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "Edit the selected connection" -msgstr "Editar la conexión seleccionada" +#: ../src/connection-editor/page-wifi.c:670 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Conexión inalámbrica %d" -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "_Edit..." -msgstr "_Editar…" +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Ninguna" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "Authenticate to edit the selected connection" -msgstr "Autentíquese para editar la conexión seleccionada" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "Clave WEP 40/128-bit (Hexadecimal o ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1292 -msgid "_Delete" -msgstr "_Eliminar" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "Frase de paso WEP de 128 bits" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "Delete the selected connection" -msgstr "Eliminar la conexión seleccionada" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "WEP dinámica (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "_Delete..." -msgstr "_Eliminar…" +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "WPA y WPA2 personal" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "Authenticate to delete the selected connection" -msgstr "Autentíquese para eliminar la conexión seleccionada" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA y WPA2 enterprise" -#: ../src/connection-editor/nm-connection-list.c:1574 -msgid "Error creating connection" -msgstr "Error al crear la conexión" +#: ../src/connection-editor/page-wifi-security.c:396 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"No se pudo cargar la interfaz de usuario de seguridad inalámbrica; faltan " +"los ajustes inalámbricos." -#: ../src/connection-editor/nm-connection-list.c:1575 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Se desconoce cómo crear conexiones «%s»" +#: ../src/connection-editor/page-wifi-security.c:406 +msgid "Wi-Fi Security" +msgstr "Seguridad inalámbrica" -#: ../src/connection-editor/nm-connection-list.c:1630 -#: ../src/connection-editor/nm-connection-list.c:1642 -msgid "Error editing connection" -msgstr "Error al editar la conexión" +#: ../src/connection-editor/page-wifi-security.c:408 +msgid "Could not load Wi-Fi security user interface." +msgstr "No se pudo cargar la interfaz de usuario de seguridad inalámbrica." -#: ../src/connection-editor/nm-connection-list.c:1631 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Se desconoce cómo editar conexiones «%s»" +#: ../src/connection-editor/page-wimax.c:161 +msgid "Could not load WiMAX user interface." +msgstr "No se pudo cargar la interfaz de usuario WiMAX." -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/page-wimax.c:290 #, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "No se encontró una conexión con UUID «%s»" +msgid "WiMAX connection %d" +msgstr "Conexión WiMAX %d" + +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "No se puede importar la conexión VPN" -#: ../src/connection-editor/vpn-helpers.c:230 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2167,34 +2358,34 @@ "\n" "Error: %s." msgstr "" -"No se pudo leer el archivo «%s» o no contiene información de conexión VPN que " -"se pueda reconocer\n" +"No se pudo leer el archivo «%s» o no contiene información de conexión VPN " +"que se pueda reconocer\n" "\n" "Error: %s." -#: ../src/connection-editor/vpn-helpers.c:263 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Seleccione el archivo que importar" -#: ../src/connection-editor/vpn-helpers.c:314 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Ya existe un archivo llamado «%s»." -#: ../src/connection-editor/vpn-helpers.c:316 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "_Reemplazar" -#: ../src/connection-editor/vpn-helpers.c:318 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "¿Quiere reemplazar %s con la conexión VPN que está guardando?" -#: ../src/connection-editor/vpn-helpers.c:354 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "No se puede exportar la conexión VPN" -#: ../src/connection-editor/vpn-helpers.c:356 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2205,65 +2396,87 @@ "\n" "Error: %s." -#: ../src/connection-editor/vpn-helpers.c:391 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Exportar conexión VPN…" -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Falló al crear la conexión PAN: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"La miniaplicación Gestor de red no pudo encontrar algunos archivos de " +"recursos (no se encontró el archivo .ui)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Su teléfono está listo para usarse" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"La configuración de Bluetooth no es posible (No se pudo conectar a D-Bus: " +"(%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "Red %s" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"La configuración de Bluetooth no es posible (error al buscar NetworkManager: " +"(%s) %s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Usar su teléfono móvil como un dispositivo de red (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Acceder a Internet usando su teléfono móvil (DUN)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Error: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Falló al crear la conexión DUN: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Su teléfono está listo para usarse" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Se canceló el asistente móvil" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Tipo de dispositivo de teléfono desconocido (no es GSM ni CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "tipo de módem desconocido." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "falló al conectar con el teléfono." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "el teléfono se desconectó de forma inesperada." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "expiró el tiempo al detectar los detalles del teléfono." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Detectando la configuración del teléfono…" -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "no se pudo encontrar el dispositivo Bluetooth." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2271,56 +2484,54 @@ "El adaptador de Bluetooth predeterminado debe estar activado antes de " "configurar una conexión de red de marcado telefónico." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "" -"La configuración de Bluetooth no es posible (No se pudo conectar a D-Bus: %" -"s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" -"La configuración de Bluetooth no es posible (No se pudo crear proxy D-Bus)" +msgid "Failed to create PAN connection: %s" +msgstr "Falló al crear la conexión PAN: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"La configuración de Bluetooth no es posible (error al buscar NetworkManager: " -"%s)." +msgid "%s Network" +msgstr "Red %s" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Usar su teléfono móvil como un dispositivo de red (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Desbloquear automáticamente este dispositivo" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Acceder a Internet usando su teléfono móvil (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "Desbloq_uear" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Información de la conexión" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Conexiones de red activas" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "" "Su conexión de banda ancha móvil está configurada con los siguientes ajustes:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Su dispositivo:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Su proveedor:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Su plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2334,23 +2545,23 @@ "ajustes de conexión de la banda ancha móvil, elija \"«Conexiones de red» " "desde el menú Sistema » Preferencias." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Confirmar los ajustes de la banda ancha móvil" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Sin listar" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "_Seleccionar su plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "Plan _APN (nombre del punto de acceso) seleccionado:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2362,67 +2573,67 @@ "\n" "Si no está seguro de su plan consulte a su proveedor para su plan APN." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Elegir su plan de precios" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Mi plan no está en la lista…" -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "Seleccionar su proveedor de la _lista:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Proveedor" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "No puedo encontrar mi proveedor y querría introducirlo _manualmente:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Proveedor:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Mi proveedor usa tecnología GSM (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Mi proveedor usa tecnología CDMA (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Elegir su proveedor" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Lista de países o regiones:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "País o región" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "Mi país no está en la lista" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Elegir el país o la región de su proveedor" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Dispositivo GSM instalado" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Dispositivo CDMA instalado" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2430,101 +2641,100 @@ "Este asistente le ayuda a configurar una conexión de banda ancha móvil con " "una red móvil (3G)." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Necesitará la siguiente información:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "El nombre de su proveedor de banda ancha" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "El nombre de su plan de precios" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(En algunos casos) su plan de precios APN (nombre del punto de acceso)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Crear una conexión para es_te dispositivo de banda ancha móvil:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Cualquier dispositivo" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Configurar una conexión de banda ancha móvil" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Conexión de banda ancha móvil nueva" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "Nueva…" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "C_rear" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "" "Se necesitan contraseñas o claves de cifrado para acceder a la red " "inalámbrica «%s»." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 -msgid "Wireless Network Authentication Required" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" msgstr "Se requiere autenticación para la red inalámbrica" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 -msgid "Authentication required by wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" msgstr "La red inalámbrica necesita autenticación" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 -msgid "Create New Wireless Network" -msgstr "Crear una red inalámbrica nueva" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" +msgstr "Crear una red inalámbrica" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 -msgid "New wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" msgstr "Red inalámbrica nueva" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "Enter a name for the wireless network you wish to create." -msgstr "Introduzca un nombre para la red inalámbrica que desea crear." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "Introduzca un nombre para la red inalámbrica que quiere crear." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 -msgid "Connect to Hidden Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" msgstr "Conectar con una red inalámbrica oculta" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 -msgid "Hidden wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" msgstr "Red inalámbrica oculta" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." msgstr "" "Introduzca el nombre y los detalles de seguridad de la red inalámbrica " "oculta a la que quiere conectarse." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wi-Fi _security:" msgstr "_Seguridad inalámbrica:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Co_nexión:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" +msgid "Wi-Fi _adapter:" msgstr "_Adaptador inalámbrico:" #: ../src/main.c:73 @@ -2575,10 +2785,6 @@ msgid "HSPA" msgstr "HSPA" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "No habilitado" @@ -2629,40 +2835,55 @@ msgid "Default" msgstr "Predeterminado" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"La miniaplicación Gestor de red no pudo encontrar algunos archivos de " -"recursos (no se encontró el archivo .ui)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "Conexión %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "No se ha elegido ningún certificado CA" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" "No usar un certificado de Certificate Authority (CA) puede dar lugar a " -"conexiones inseguras, redes inalámbricas promiscuas. ¿Quiere elegir un " +"conexiones inseguras a redes inalámbricas promiscuas. ¿Quiere elegir un " "certificado Certificate Authority?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Elija un certificado CA:" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Certificados DER o PEM (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Certificados DER o PEM (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Elegir un archivo PAC…" + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "Archivos PAC (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Todos los archivos" + #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Anónimo" @@ -2695,23 +2916,6 @@ msgid "Allow automatic PAC pro_visioning" msgstr "Permitir la provisión PAC _automática" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Elegir un archivo PAC…" - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "Archivos PAC (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Todos los archivos" - #: ../src/wireless-security/eap-method-peap.c:263 #: ../src/wireless-security/wireless-security.c:382 msgid "MD5" @@ -2857,6 +3061,81 @@ msgid "WEP inde_x:" msgstr "Ín_dice WEP:" +#~ msgid "An unknown error occurred." +#~ msgstr "Ocurrió un error desconocido." + +#~ msgid "Could not edit new connection" +#~ msgstr "No se pudo editar la conexión nueva" + +#~ msgid "Wireless Networks (%s)" +#~ msgstr "Redes inalámbricas (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "Red inalámbrica (%s)" + +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "Red inalámbrica" +#~ msgstr[1] "Redes inalámbricas" + +#~ msgid "wireless is disabled" +#~ msgstr "la red inalámbrica está desactivada" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "la red inalámbrica está desactivada por el interruptor físico" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "Preparando la conexión de red inalámbrica «%s»…" + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "Configurando la conexión de red inalámbrica «%s»…" + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "Solicitando una dirección de red inalámbrica para «%s»…" + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "La conexión de red «%s» está activa" + +#~ msgid "Wired" +#~ msgstr "Cableado" + +#~ msgid "Wireless" +#~ msgstr "Inalámbrico" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "No se pudo cargar la interfaz de usuario de seguridad cableada." + +#~ msgid "Wireless connection %d" +#~ msgstr "Conexión inalámbrica %d" + +#~ msgid "" +#~ "failed to find Bluetooth device (unknown gnome-bluetooth proxy object " +#~ "type)." +#~ msgstr "" +#~ "falló al buscar el dispositivo Bluetooth (tipo de objeto de proxy gnome-" +#~ "bluetooth desconocido)" + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "" +#~ "La configuración de Bluetooth no es posible (No se pudo crear proxy D-Bus)" + +#~ msgid "_Import" +#~ msgstr "_Importar" + +#~ msgid "Could not edit imported connection" +#~ msgstr "No se pudo editar la conexión importada" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "" +#~ "No existe un complemento de VPN disponible. Instale uno para activar este " +#~ "botón." + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "Se desconoce cómo editar conexiones «%s»" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "no se pudo encontrar el dispositivo Bluetooth." + #~ msgid "_Security:" #~ msgstr "_Seguridad:" @@ -2866,9 +3145,6 @@ #~ msgid "United Kingdom" #~ msgstr "Reino Unido" -#~ msgid "C_onnect" -#~ msgstr "C_onectar" - #~ msgid "Other Wireless Network..." #~ msgstr "Otras redes inalámbricas…" @@ -2902,7 +3178,8 @@ #~ "connection type '%s'. Contact your system administrator." #~ msgstr "" #~ "Ha habido un problema al iniciar el diálogo de autenticación para el tipo " -#~ "de conexión VPN «%s». Póngase en contacto con su administrador de sistemas." +#~ "de conexión VPN «%s». Póngase en contacto con su administrador de " +#~ "sistemas." #~ msgid "Country" #~ msgstr "País" diff -Nru network-manager-applet-0.9.4.1/po/et.po network-manager-applet-0.9.6.2+git201210311320.2620/po/et.po --- network-manager-applet-0.9.4.1/po/et.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/et.po 2012-10-31 13:20:57.000000000 +0000 @@ -14,8 +14,8 @@ "Project-Id-Version: Network Manager MASTER\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-11 16:13+0000\n" -"PO-Revision-Date: 2012-03-12 00:47+0200\n" +"POT-Creation-Date: 2012-09-22 10:25+0000\n" +"PO-Revision-Date: 2012-09-23 13:15+0300\n" "Last-Translator: Mattias Põldaru \n" "Language-Team: Estonian <>\n" "Language: et\n" @@ -32,27 +32,39 @@ msgid "Manage your network connections" msgstr "Võrguühenduste haldamine" +msgid "Network Connections" +msgstr "Võrguühendused" + +msgid "Manage and change your network connection settings" +msgstr "Võrguühenduse sätete haldus" + msgid "Disable connected notifications" msgstr "Ühendumise saavutamisest ei teatata" -msgid "Set this to TRUE to disable notifications when connecting to a network." +msgid "Set this to true to disable notifications when connecting to a network." msgstr "Kui tõene, siis on võrguga ühendumise teated keelatud." msgid "Disable disconnected notifications" msgstr "Ühenduse katkemisest ei teatata" msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "Kui tõene, siis on võrguühenduse katkemise teated keelatud." +msgid "Disable VPN notifications" +msgstr "VPN teadete keelamine" + +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "Kui tõene, siis on VPN ühenduse loomise ja katkemise teated keelatud." + msgid "Suppress networks available notifications" msgstr "Saadaolevatest võrkudest ei teatata" msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." -msgstr "" -"Kui tõene, siis on saadaolevatest juhtmeta võrkudest teatamine keelatud." +"Set this to true to disable notifications when Wi-Fi networks are available." +msgstr "Kui tõene, siis on saadaolevatest Wi-Fi võrkudest teatamine keelatud." msgid "Stamp" msgstr "Tempel" @@ -66,771 +78,968 @@ msgstr "WiFi loomine keelatud" msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "Kui tõene, siis on ad-hoc võrgu loomine rakendi abil keelatud." +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "Kui tõene, siis on adhoc võrgu loomine rakendi abil keelatud." -msgid "Network Connections" -msgstr "Võrguühendused" +msgid "Ignore CA certificate" +msgstr "Sertifitseerimiskeskuse sertifikaadi eiramine" -msgid "Manage and change your network connection settings" -msgstr "Võrguühenduse sätete haldus" +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Märgi see, et keelata hoiatused sertifitseerimiskeskuse (CA) sertide kohta " +"EAP autentimisel." -msgid "Available" -msgstr "Saadaval" +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Märgi see, et keelata hoiatused sertifitseerimiskeskuse (CA) sertide kohta " +"EAP autentimise teises faasis." -#, c-format -msgid "You are now connected to '%s'." -msgstr "Oled nüüd ühendatud võrku '%s'." +msgid "802.1X authentication" +msgstr "802.1X autentimine" -msgid "Connection Established" -msgstr "Ühendus loodud" +msgid "_Network name:" +msgstr "_Võrgu nimi:" -msgid "You are now connected to the mobile broadband network." -msgstr "Oled nüüd ühendatud mobiiliinternetti." +msgid "Failed to add/activate connection" +msgstr "Ühenduse lisamine/aktiveerimine nurjus" -#, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Mobiiliühenduse '%s' ettevalmistamine..." +msgid "Unknown error" +msgstr "Tundmatu viga" -#, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Mobiiliühenduse '%s' häälestamine..." +msgid "Connection failure" +msgstr "Ühendus nurjus" -#, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "Kasutaja autentimine on vajalik mobiiliühenduse '%s' jaoks..." +msgid "Device disconnect failed" +msgstr "Seadmega ühenduse katkestamine nurjus" -#, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Võrguaadressi pärimine võrgu '%s' jaoks..." +msgid "Disconnect failure" +msgstr "Ühenduse katkestamine nurjus" -#, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "Mobiiliühendus '%s' on aktiivne" +msgid "Connection activation failed" +msgstr "Ühenduse aktiveerimine nurjus" -msgid "CDMA" -msgstr "CDMA" +msgid "Don't show this message again" +msgstr "Ära seda uuesti näita" #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Mobiiliühendus (%s)" - -msgid "Mobile Broadband" -msgstr "Mobiiliühendus" - -#. Default connection item -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Uus mobiiliühendus (CDMA)..." - -msgid "You are now connected to the CDMA network." -msgstr "Oled nüüd ühendatud CDMA-võrku." +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN-ühendus '%s' nurjus, kuna võrguühendus katkestati." #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Mobiiliühendus '%s' on aktiivne: (%d%%%s%s)" - -msgid "roaming" -msgstr "rändlus (roaming)" - -msgid "CDMA network." -msgstr "CDMA võrk." - -msgid "You are now registered on the home network." -msgstr "Oled nüüd ühendatud koduvõrku." - -msgid "You are now registered on a roaming network." -msgstr "Oled nüüd ühendatud rändlusvõrku (roaming)." - -msgid "GSM" -msgstr "GSM" - -#. Default connection item -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Uus mobiiliühendus (GSM)..." - -msgid "You are now connected to the GSM network." -msgstr "Oled nüüd ühendatud GSM-võrku." - -msgid "PIN code required" -msgstr "Vajalik on PIN-kood" - -msgid "PIN code is needed for the mobile broadband device" -msgstr "Mobiiliühenduse seadmele on vaja PIN-koodi" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"VPN-ühendus '%s' nurjus, kuna VPN-teenus peatus ootamatult." #, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "'%s' SIM kaardi PIN kood seadmes '%s'" - -msgid "Wrong PIN code; please contact your provider." -msgstr "Vale PIN-kood; võta ühendust oma teenusepakkujaga." - -msgid "Wrong PUK code; please contact your provider." -msgstr "Vale PUK-kood; võta ühendust oma teenusepakkujaga." - -#. Start the spinner to show the progress of the unlock -msgid "Sending unlock code..." -msgstr "Luku avamise koodi saatmine..." - -msgid "SIM PIN unlock required" -msgstr "Vajalik on SIM-kaardi PIN-kood" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"VPN-ühendus '%s' nurjus, kuna VPN-teenus tagastas vigase seadistuse." -msgid "SIM PIN Unlock Required" -msgstr "Vajalik on SIM-kaardi PIN-kood" +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"VPN-ühendus '%s' nurjus, kuna ühendumise katse aegus." -#. FIXME: some warning about # of times you can enter incorrect PIN #, c-format msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." msgstr "" -"Mobiiliühenduse seadme '%s' kasutamiseks on vajalik SIM-kaardi PIN-kood." +"\n" +"VPN-ühendus '%s' nurjus, kuna VPN-teenus ei käivitunud õigeaegselt." -#. Translators: PIN code entry label -msgid "PIN code:" -msgstr "PIN-kood:" +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"VPN-ühendus '%s' nurjus, kuna VPN-teenuse käivitamine nurjus." -#. Translators: Show/obscure PIN checkbox label -msgid "Show PIN code" -msgstr "Näita PIN-koodi" +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"VPN-ühendus '%s' nurjus, kuna ei leitud sobivat VPN'i parooli." -msgid "SIM PUK unlock required" -msgstr "Vajalik on SIM-kaardi PUK-kood" +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"VPN-ühendus '%s' nurjus sobimatu VPN'i parooli tõttu." -msgid "SIM PUK Unlock Required" -msgstr "Vajalik on SIM-kaardi PUK-kood" +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"VPN-ühendus '%s' nurjus." -#. FIXME: some warning about # of times you can enter incorrect PUK #, c-format msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." msgstr "" -"Mobiiliühenduse seadme '%s' kasutamiseks on vajalik SIM-kaardi PUK-kood." +"\n" +"VPN-ühendus '%s' katkes, kuna võrguühendus katkestati." -#. Translators: PUK code entry label -msgid "PUK code:" -msgstr "PUK-kood:" +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"VPN-ühendus '%s' katkestati, kuna VPN-teenus peatus." -#. Translators: New PIN entry label -msgid "New PIN code:" -msgstr "Uus PIN-kood:" +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"VPN-ühendus '%s' katkes." -#. Translators: New PIN verification entry label -msgid "Re-enter new PIN code:" -msgstr "Uus PIN-kood uuesti:" +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN ühenduse loomine edukas.\n" +"\n" +"%s\n" -#. Translators: Show/obscure PIN/PUK checkbox label -msgid "Show PIN/PUK codes" -msgstr "Näita PIN/PUK-koodi" +msgid "VPN connection has been successfully established.\n" +msgstr "VPN ühenduse loomine edukas.\n" -msgid "GSM network." -msgstr "GSM võrk." +msgid "VPN Login Message" +msgstr "VPN'i sisselogimise teade" -msgid "Auto Ethernet" -msgstr "Automaatne juhtmega ühendus" +msgid "VPN Connection Failed" +msgstr "VPN-ühendus nurjus" #, c-format -msgid "Wired Networks (%s)" -msgstr "Juhtmega võrgud (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN-ühendus '%s' nurjus, kuna VPN-teenuse käivitamine nurjus.\n" +"\n" +"%s" #, c-format -msgid "Wired Network (%s)" -msgstr "Juhtmega võrk (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN-ühenduse '%s' käivitamine nurjus.\n" +"\n" +"%s" -msgid "Wired Networks" -msgstr "Juhtmega võrgud" +msgid "device not ready (firmware missing)" +msgstr "seade pole valmis (puudub püsivara)" -msgid "Wired Network" -msgstr "Juhtmega võrk" +msgid "device not ready" +msgstr "seade pole valmis" #. Notify user of unmanaged or unavailable device msgid "disconnected" msgstr "ühendamata" -msgid "You are now connected to the wired network." -msgstr "Oled nüüd ühendatud juhtmega võrku." - -#, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Juhtmega võrguühenduse '%s' ettevalmistamine..." +msgid "Disconnect" +msgstr "Katkesta ühendus" -#, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "Juhtmega võrguühenduse '%s' häälestamine..." +msgid "device not managed" +msgstr "seade pole hallatud" -#, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "Juhtmega võrguühenduse '%s' jaoks on vajalik kasutaja autentimine..." +msgid "No network devices available" +msgstr "Võrguseadmeid ei leitud" -#, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "Võrguaadressi pärimine juhtmega võrgu '%s' jaoks..." +msgid "_VPN Connections" +msgstr "_VPN-ühendused" -#, c-format -msgid "Wired network connection '%s' active" -msgstr "Juhtmega võrguühendus '%s' on aktiivne" +msgid "_Configure VPN..." +msgstr "_Seadista VPN..." -msgid "DSL authentication" -msgstr "DSL autentimine" +msgid "_Disconnect VPN" +msgstr "_Katkesta VPN-ühendus" -msgid "_Connect to Hidden Wireless Network..." -msgstr "_Ühendu varjatud juhtmeta võrku..." +msgid "NetworkManager is not running..." +msgstr "Võrguhaldur ei tööta..." -msgid "Create _New Wireless Network..." -msgstr "Loo _uus juhtmeta võrk..." +msgid "Networking disabled" +msgstr "Võrguühendused keelatud" -msgid "(none)" -msgstr "(puudub)" +#. 'Enable Networking' item +msgid "Enable _Networking" +msgstr "_Võrguühendused lubatud" -#, c-format -msgid "Wireless Networks (%s)" -msgstr "Juhtmeta võrgud (%s)" +#. 'Enable Wi-Fi' item +msgid "Enable _Wi-Fi" +msgstr "_Wi-Fi ühendused lubatud" -#, c-format -msgid "Wireless Network (%s)" -msgstr "Juhtmeta võrk (%s)" +#. 'Enable Mobile Broadband' item +msgid "Enable _Mobile Broadband" +msgstr "_Mobiiliühendus lubatud" -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Juhtmeta võrk" -msgstr[1] "Juhtmeta võrgud" +#. 'Enable WiMAX Mobile Broadband' item +msgid "Enable WiMA_X Mobile Broadband" +msgstr "WiMA_X-ühendus lubatud" -msgid "wireless is disabled" -msgstr "juhtmeta võrgud on keelatud" +#. Toggle notifications item +msgid "Enable N_otifications" +msgstr "_Teated lubatud" -msgid "wireless is disabled by hardware switch" -msgstr "juhtmeta ühendus on keelatud riistvaralisest lülitist" +#. 'Connection Information' item +msgid "Connection _Information" +msgstr "Ü_henduse andmed" -msgid "More networks" -msgstr "Veel võrke" +#. 'Edit Connections...' item +msgid "Edit Connections..." +msgstr "Ühenduste muutmine..." -msgid "Wireless Networks Available" -msgstr "Saadaval on juhtmeta võrgud" +#. Help item +msgid "_Help" +msgstr "A_bi" -msgid "Use the network menu to connect to a wireless network" -msgstr "Juhtmeta võrku ühendumiseks kasuta võrgumenüüd" +#. About item +msgid "_About" +msgstr "_Programmist lähemalt" -msgid "Don't show this message again" -msgstr "Ära seda uuesti näita" +msgid "Disconnected" +msgstr "Ühendus katkestatud" -#, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Oled nüüd ühendatud juhtmeta võrku '%s'." +msgid "The network connection has been disconnected." +msgstr "Võrguühendus katkes." #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Juhtmeta võrguühenduse '%s' ettevalmistamine..." +msgid "Preparing network connection '%s'..." +msgstr "Võrguühenduse '%s' ettevalmistamine..." #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Juhtmeta võrguühenduse '%s' häälestamine..." +msgid "User authentication required for network connection '%s'..." +msgstr "Võrguühenduse '%s' jaoks on vajalik kasutaja autentimine..." #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "Juhtmeta võrgu '%s' jaoks on vajalik kasutaja autentimine..." +msgid "Requesting a network address for '%s'..." +msgstr "Võrguaadressi pärimine võrgu '%s' jaoks..." #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Võrguaadressi pärimine juhtmeta võrgu '%s' jaoks..." +msgid "Network connection '%s' active" +msgstr "Võrguühendus '%s' on aktiivne" #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "Juhtmeta ühendus võrku '%s' on aktiivne: %s (%d%%)" +msgid "Starting VPN connection '%s'..." +msgstr "VPN-ühenduse '%s' alustamine..." #, c-format -msgid "Wireless network connection '%s' active" -msgstr "Juhtmeta ühendus võrku '%s' on aktiivne" +msgid "User authentication required for VPN connection '%s'..." +msgstr "VPN-ühenduse '%s' jaoks on vajalik kasutaja autentimine..." #, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "WiMAX mobiiliühendus (%s)" - -msgid "WiMAX Mobile Broadband" -msgstr "WiMAX mobiiliühendus" +msgid "Requesting a VPN address for '%s'..." +msgstr "VPN'i aadressi pärimine võrgu '%s' jaoks..." -msgid "WiMAX is disabled" -msgstr "WiMAX on keelatud" +#, c-format +msgid "VPN connection '%s' active" +msgstr "VPN-ühendus '%s' on aktiivne" -msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX on keelatud riistvaralisest lülitist" +msgid "No network connection" +msgstr "Võrguühendus puudub" -msgid "You are now connected to the WiMAX network." -msgstr "Oled nüüd ühendatud WiMAX-võrku." +msgid "NetworkManager Applet" +msgstr "Võrguhalduri rakend" -msgid "Error displaying connection information:" -msgstr "Viga ühenduse andmete kuvamisel:" +msgid "Available" +msgstr "Saadaval" -msgid "LEAP" -msgstr "LEAP" +#, c-format +msgid "You are now connected to '%s'." +msgstr "Oled nüüd ühendatud võrku '%s'." -msgid "Dynamic WEP" -msgstr "Dünaamiline WEP" +msgid "Connection Established" +msgstr "Ühendus loodud" -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +msgid "You are now connected to the mobile broadband network." +msgstr "Oled nüüd ühendatud mobiiliinternetti." -msgid "WEP" -msgstr "WEP" +#, c-format +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Mobiiliühenduse '%s' ettevalmistamine..." -msgctxt "Wifi/wired security" -msgid "None" -msgstr "Puudub" +#, c-format +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Mobiiliühenduse '%s' häälestamine..." #, c-format -msgid "%s (default)" -msgstr "%s (vaikimisi)" +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "Kasutaja autentimine on vajalik mobiiliühenduse '%s' jaoks..." #, c-format -msgid "%u Mb/s" -msgstr "%u Mb/s" +msgid "Mobile broadband connection '%s' active" +msgstr "Mobiiliühendus '%s' on aktiivne" -msgctxt "Speed" -msgid "Unknown" -msgstr "Tundmatu" +msgid "CDMA" +msgstr "CDMA" #, c-format -msgid "%d dB" -msgstr "%d dB" +msgid "Mobile Broadband (%s)" +msgstr "Mobiiliühendus (%s)" -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "tundmatu" +msgid "Mobile Broadband" +msgstr "Mobiiliühendus" -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "tundmatu" +#. Default connection item +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Uus mobiiliühendus (CDMA)..." -#, c-format -msgid "Ethernet (%s)" -msgstr "Ethernet (%s)" +msgid "You are now connected to the CDMA network." +msgstr "Oled nüüd ühendatud CDMA-võrku." #, c-format -msgid "802.11 WiFi (%s)" -msgstr "802.11 WiFi (%s)" +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "Mobiiliühendus '%s' on aktiivne: (%d%%%s%s)" -#, c-format -msgid "GSM (%s)" -msgstr "GSM (%s)" +msgid "roaming" +msgstr "rändlus (roaming)" -#, c-format -msgid "CDMA (%s)" -msgstr "CDMA (%s)" +msgid "CDMA network." +msgstr "CDMA võrk." -#, c-format -msgid "WiMAX (%s)" -msgstr "WiMAX (%s)" +msgid "You are now registered on the home network." +msgstr "Oled nüüd ühendatud koduvõrku." -#. --- General --- -msgid "General" -msgstr "Üldine" +msgid "You are now registered on a roaming network." +msgstr "Oled nüüd ühendatud rändlusvõrku (roaming)." -msgid "Interface:" -msgstr "Liides:" +msgid "Auto Ethernet" +msgstr "Automaatne juhtmega ühendus" -msgid "Hardware Address:" -msgstr "Riistvara aadress:" +#, c-format +msgid "Ethernet Networks (%s)" +msgstr "Ethernet võrgud (%s)" -#. Driver -msgid "Driver:" -msgstr "Draiver:" +#, c-format +msgid "Ethernet Network (%s)" +msgstr "Ethernet võrk (%s)" -msgid "Speed:" -msgstr "Kiirus:" +msgid "Ethernet Networks" +msgstr "Ethernet võrgud" -msgid "Security:" -msgstr "Turvalisus:" +msgid "Ethernet Network" +msgstr "Ethernet võrk" -msgid "CINR:" -msgstr "CINR:" +msgid "You are now connected to the ethernet network." +msgstr "Oled nüüd ühendatud ethernet võrku." -msgid "BSID:" -msgstr "BSID:" +#, c-format +msgid "Preparing ethernet network connection '%s'..." +msgstr "Ethernet võrgu ühenduse '%s' ettevalmistamine..." -#. --- IPv4 --- -msgid "IPv4" -msgstr "IPv4" +#, c-format +msgid "Configuring ethernet network connection '%s'..." +msgstr "Ethernet võrgu ühenduse '%s' häälestamine..." -#. Address -msgid "IP Address:" -msgstr "IP-aadress:" +#, c-format +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "Ethernet võrguühenduse '%s' jaoks on vajalik kasutaja autentimine..." -msgctxt "Address" -msgid "Unknown" -msgstr "Tundmatu" +#, c-format +msgid "Requesting an ethernet network address for '%s'..." +msgstr "Võrguaadressi pärimine ethernet võrgu '%s' jaoks..." -msgid "Broadcast Address:" -msgstr "Eetri aadress:" +#, c-format +msgid "Ethernet network connection '%s' active" +msgstr "Ethernet võrguühendus '%s' on aktiivne" -#. Prefix -msgid "Subnet Mask:" -msgstr "Alamvõrgu mask:" +msgid "DSL authentication" +msgstr "DSL autentimine" -msgctxt "Subnet Mask" -msgid "Unknown" -msgstr "Tundmatu" +msgid "GSM" +msgstr "GSM" -msgid "Default Route:" -msgstr "Vaikimisi marsruut:" +#. Default connection item +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Uus mobiiliühendus (GSM)..." -msgid "Primary DNS:" -msgstr "Esmane DNS:" +msgid "You are now connected to the GSM network." +msgstr "Oled nüüd ühendatud GSM-võrku." -msgid "Secondary DNS:" -msgstr "Teisene DNS:" +msgid "PIN code required" +msgstr "Vajalik on PIN-kood" -msgid "Ternary DNS:" -msgstr "Kolmas DNS:" +msgid "PIN code is needed for the mobile broadband device" +msgstr "Mobiiliühenduse seadmele on vaja PIN-koodi" -#. --- IPv6 --- -msgid "IPv6" -msgstr "IPv6" +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "'%s' SIM kaardi PIN kood seadmes '%s'" -msgid "Ignored" -msgstr "Eiratakse" +msgid "Wrong PIN code; please contact your provider." +msgstr "Vale PIN-kood; võta ühendust oma teenusepakkujaga." -msgid "VPN Type:" -msgstr "VPNi liik:" +msgid "Wrong PUK code; please contact your provider." +msgstr "Vale PUK-kood; võta ühendust oma teenusepakkujaga." -msgid "VPN Gateway:" -msgstr "VPNi lüüs:" +#. Start the spinner to show the progress of the unlock +msgid "Sending unlock code..." +msgstr "Luku avamise koodi saatmine..." -msgid "VPN Username:" -msgstr "VPNi kasutajanimi:" +msgid "SIM PIN unlock required" +msgstr "Vajalik on SIM-kaardi PIN-kood" -msgid "VPN Banner:" -msgstr "VPN-i pealkiri (banner):" +msgid "SIM PIN Unlock Required" +msgstr "Vajalik on SIM-kaardi PIN-kood" -msgid "Base Connection:" -msgstr "Baasühendus:" +#. FIXME: some warning about # of times you can enter incorrect PIN +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "" +"Mobiiliühenduse seadme '%s' kasutamiseks on vajalik SIM-kaardi PIN-kood." -msgid "Unknown" -msgstr "Tundmatu" +#. Translators: PIN code entry label +msgid "PIN code:" +msgstr "PIN-kood:" -#. Shouldn't really happen but ... -msgid "No valid active connections found!" -msgstr "Sobivaid aktiivseid ühendusi pole!" +#. Translators: Show/obscure PIN checkbox label +msgid "Show PIN code" +msgstr "Näita PIN-koodi" + +msgid "SIM PUK unlock required" +msgstr "Vajalik on SIM-kaardi PUK-kood" + +msgid "SIM PUK Unlock Required" +msgstr "Vajalik on SIM-kaardi PUK-kood" +#. FIXME: some warning about # of times you can enter incorrect PUK +#, c-format msgid "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"and many other community contributors and translators" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." msgstr "" -"Autoriõigused © 2004–2011 Red Hat, Inc.\n" -"Autoriõigused © 2005-2008 Novell, Inc.\n" -"ja paljud teised kaasosalised ja tõlkijad kogukonnast" +"Mobiiliühenduse seadme '%s' kasutamiseks on vajalik SIM-kaardi PUK-kood." -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "Teateala rakend võrguühenduste ja seadmete haldamiseks." +#. Translators: PUK code entry label +msgid "PUK code:" +msgstr "PUK-kood:" -msgid "NetworkManager Website" -msgstr "Võrguhalduri veebileht" +#. Translators: New PIN entry label +msgid "New PIN code:" +msgstr "Uus PIN-kood:" -msgid "Missing resources" -msgstr "Puuduvad allikad" +#. Translators: New PIN verification entry label +msgid "Re-enter new PIN code:" +msgstr "Uus PIN-kood uuesti:" -msgid "Mobile broadband network password" -msgstr "Mobiiliühenduse võrguparool" +#. Translators: Show/obscure PIN/PUK checkbox label +msgid "Show PIN/PUK codes" +msgstr "Näita PIN/PUK-koodi" + +msgid "GSM network." +msgstr "GSM võrk." + +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "_Ühendu varjatud Wi-Fi võrku..." + +msgid "Create _New Wi-Fi Network..." +msgstr "Loo _uus Wi-Fi võrk..." + +msgid "(none)" +msgstr "(puudub)" #, c-format -msgid "A password is required to connect to '%s'." -msgstr "Võrku '%s' ühendumiseks on vaja parooli." +msgid "Wi-Fi Networks (%s)" +msgstr "Wi-Fi võrgud (%s)" -msgid "Password:" -msgstr "Parool:" +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Wi-Fi võrk (%s)" + +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Wi-Fi võrk" +msgstr[1] "Wi-Fi võrgud" + +msgid "Wi-Fi is disabled" +msgstr "Wi-Fi on keelatud" + +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Wi-Fi on keelatud riistvaralisest lülitist" + +msgid "More networks" +msgstr "Veel võrke" + +msgid "Wi-Fi Networks Available" +msgstr "Wi-Fi võrgud on saadaval" + +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Wi-Fi võrku ühendumiseks kasuta võrgumenüüd" #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"VPN-ühendus '%s' nurjus, kuna võrguühendus katkestati." +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Oled nüüd ühendatud Wi-Fi võrku '%s'." #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"VPN-ühendus '%s' nurjus, kuna VPN-teenus peatus ootamatult." +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Wi-Fi võrgu '%s' ühenduse ettevalmistamine..." #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"VPN-ühendus '%s' nurjus, kuna VPN-teenus tagastas vigase seadistuse." +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Wi-Fi võrgu '%s' ühenduse häälestamine..." #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"VPN-ühendus '%s' nurjus, kuna ühendumise katse aegus." +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "Wi-Fi võrgu '%s' jaoks on vajalik kasutaja autentimine..." #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"VPN-ühendus '%s' nurjus, kuna VPN-teenus ei käivitunud õigeaegselt." +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Võrguaadressi pärimine Wi-Fi võrgu '%s' jaoks..." + +#, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Wi-Fi ühendus võrku '%s' on aktiivne: %s (%d%%)" + +#, c-format +msgid "Wi-Fi network connection '%s' active" +msgstr "Wi-Fi võrguühendus '%s' on aktiivne" + +msgid "Failed to activate connection" +msgstr "Ühenduse aktiveerimine nurjus" + +msgid "Failed to add new connection" +msgstr "Uut ühendust pole võimalik lisada" + +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "WiMAX mobiiliühendus (%s)" + +msgid "WiMAX Mobile Broadband" +msgstr "WiMAX mobiiliühendus" + +msgid "WiMAX is disabled" +msgstr "WiMAX on keelatud" + +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX on keelatud riistvaralisest lülitist" + +msgid "You are now connected to the WiMAX network." +msgstr "Oled nüüd ühendatud WiMAX-võrku." + +msgid "Error displaying connection information:" +msgstr "Viga ühenduse andmete kuvamisel:" + +msgid "LEAP" +msgstr "LEAP" + +msgid "Dynamic WEP" +msgstr "Dünaamiline WEP" + +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +msgid "WEP" +msgstr "WEP" + +msgctxt "Wifi/wired security" +msgid "None" +msgstr "Puudub" + +#, c-format +msgid "%s (default)" +msgstr "%s (vaikimisi)" + +#, c-format +msgid "%u Mb/s" +msgstr "%u Mb/s" + +msgctxt "Speed" +msgid "Unknown" +msgstr "Tundmatu" + +#, c-format +msgid "%d dB" +msgstr "%d dB" + +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "tundmatu" + +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "tundmatu" + +#, c-format +msgid "Ethernet (%s)" +msgstr "Ethernet (%s)" + +#, c-format +msgid "802.11 WiFi (%s)" +msgstr "802.11 WiFi (%s)" + +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" + +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" + +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" + +#. --- General --- +msgid "General" +msgstr "Üldine" + +msgid "Interface:" +msgstr "Liides:" + +msgid "Hardware Address:" +msgstr "Riistvara aadress:" + +#. Driver +msgid "Driver:" +msgstr "Draiver:" + +msgid "Speed:" +msgstr "Kiirus:" + +msgid "Security:" +msgstr "Turvalisus:" + +msgid "CINR:" +msgstr "CINR:" + +msgid "BSID:" +msgstr "BSID:" + +#. --- IPv4 --- +msgid "IPv4" +msgstr "IPv4" + +#. Address +msgid "IP Address:" +msgstr "IP-aadress:" + +msgctxt "Address" +msgid "Unknown" +msgstr "Tundmatu" + +msgid "Broadcast Address:" +msgstr "Eetri aadress:" + +#. Prefix +msgid "Subnet Mask:" +msgstr "Alamvõrgu mask:" + +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Tundmatu" + +msgid "Default Route:" +msgstr "Vaikimisi marsruut:" + +msgid "Primary DNS:" +msgstr "Esmane DNS:" + +msgid "Secondary DNS:" +msgstr "Teisene DNS:" + +msgid "Ternary DNS:" +msgstr "Kolmas DNS:" + +#. --- IPv6 --- +msgid "IPv6" +msgstr "IPv6" + +msgid "Ignored" +msgstr "Eiratakse" + +msgid "VPN Type:" +msgstr "VPNi liik:" + +msgid "VPN Gateway:" +msgstr "VPNi lüüs:" + +msgid "VPN Username:" +msgstr "VPNi kasutajanimi:" + +msgid "VPN Banner:" +msgstr "VPN-i pealkiri (banner):" + +msgid "Base Connection:" +msgstr "Baasühendus:" + +msgid "Unknown" +msgstr "Tundmatu" + +#. Shouldn't really happen but ... +msgid "No valid active connections found!" +msgstr "Sobivaid aktiivseid ühendusi pole!" -#, c-format msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" msgstr "" -"\n" -"VPN-ühendus '%s' nurjus, kuna VPN-teenuse käivitamine nurjus." +"Autoriõigused © 2004–2011 Red Hat, Inc.\n" +"Autoriõigused © 2005-2008 Novell, Inc.\n" +"ja paljud teised kaasosalised ja tõlkijad kogukonnast" -#, c-format msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"VPN-ühendus '%s' nurjus, kuna ei leitud sobivat VPN'i parooli." +"Notification area applet for managing your network devices and connections." +msgstr "Teateala rakend võrguühenduste ja seadmete haldamiseks." -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"VPN-ühendus '%s' nurjus sobimatu VPN'i parooli tõttu." +msgid "NetworkManager Website" +msgstr "Võrguhalduri veebileht" -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"VPN-ühendus '%s' nurjus." +msgid "Missing resources" +msgstr "Puuduvad allikad" -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"VPN-ühendus '%s' katkes, kuna võrguühendus katkestati." +msgid "Mobile broadband network password" +msgstr "Mobiiliühenduse võrguparool" #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"VPN-ühendus '%s' katkestati, kuna VPN-teenus peatus." +msgid "A password is required to connect to '%s'." +msgstr "Võrku '%s' ühendumiseks on vaja parooli." + +msgid "Password:" +msgstr "Parool:" -#, c-format msgid "" -"\n" -"The VPN connection '%s' disconnected." +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." msgstr "" -"\n" -"VPN-ühendus '%s' katkes." +"IP-aadress on arvuti nimi võrgus. Klõpsa \"Lisa\", et lisada IP-aadress." -msgid "VPN Login Message" -msgstr "VPN'i sisselogimise teade" +msgid "Ig_nore automatically obtained routes" +msgstr "Automaatselt saadud marsruute _eiratakse" -msgid "VPN Connection Failed" -msgstr "VPN-ühendus nurjus" +msgid "_Use this connection only for resources on its network" +msgstr "Ü_hendust kasutatakse ainult selle kohtvõrgu jaoks" -#, c-format msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" +"If enabled, this connection will never be used as the default network " +"connection." msgstr "" -"\n" -"VPN-ühendus '%s' nurjus, kuna VPN-teenuse käivitamine nurjus.\n" -"\n" -"%s" +"Kui märgitud, ei kasutata seda ühendust mitte kunagi vaikimisi " +"võrguühendusena." + +msgid " " +msgstr " " + +msgid "Choose a Connection Type" +msgstr "Ühenduse liigi valimine" -#, c-format msgid "" +"Select the type of connection you wish to create.\n" "\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." msgstr "" +"Vali, mis liiki ühenduse tahad luua.\n" "\n" -"VPN-ühenduse '%s' käivitamine nurjus.\n" -"\n" -"%s" +"Kui soovid luua VPN ühendust ning soovitud VPN ühenduse liiki nimekirjas ei " +"leidu, võib vajalik VPN plugin olla paigaldamata." -msgid "device not ready (firmware missing)" -msgstr "seade pole valmis (puudub püsivara)" +msgid "Create…" +msgstr "Loo…" -msgid "device not ready" -msgstr "seade pole valmis" +msgid "automatic" +msgstr "automaatne" -msgid "Disconnect" -msgstr "Katkesta ühendus" +msgid "Failed to update connection secrets due to an unknown error." +msgstr "Tundmatu vea tõttu nurjus ühenduse paroolide uuendamine." -msgid "device not managed" -msgstr "seade pole hallatud" +msgid "Round-robin" +msgstr "Round-robin" -msgid "No network devices available" -msgstr "Võrguseadmeid ei leitud" +msgid "Active backup" +msgstr "Aktiivne varundus" -msgid "_VPN Connections" -msgstr "_VPN-ühendused" +msgid "XOR" +msgstr "XOR" -msgid "_Configure VPN..." -msgstr "_Seadista VPN..." +msgid "Broadcast" +msgstr "Eetriaadress" -msgid "_Disconnect VPN" -msgstr "_Katkesta VPN-ühendus" +msgid "802.3ad" +msgstr "802.3ad" -msgid "NetworkManager is not running..." -msgstr "Võrguhaldur ei tööta..." +msgid "Adaptive transmit load balancing" +msgstr "Kohanev ülekande koormuse jaotus" -msgid "Networking disabled" -msgstr "Võrguühendused keelatud" +msgid "Adaptive load balancing" +msgstr "Kohanev koormusjaotus" -#. 'Enable Networking' item -msgid "Enable _Networking" -msgstr "_Võrguühendused lubatud" +msgid "MII (recommended)" +msgstr "MII (soovitatud)" -#. 'Enable Wireless' item -msgid "Enable _Wireless" -msgstr "_Juhtmeta võrguühendused lubatud" +msgid "ARP" +msgstr "ARP" -#. 'Enable Mobile Broadband' item -msgid "Enable _Mobile Broadband" -msgstr "_Mobiiliühendus lubatud" +msgid "Bonded _connections:" +msgstr "Liitühendused (bonded):" -#. 'Enable WiMAX Mobile Broadband' item -msgid "Enable WiMA_X Mobile Broadband" -msgstr "WiMA_X-ühendus lubatud" +msgid "_Mode:" +msgstr "_Režiim:" -#. Toggle notifications item -msgid "Enable N_otifications" -msgstr "_Teated lubatud" +#. Edit +msgid "_Edit" +msgstr "_Muuda" -#. 'Connection Information' item -msgid "Connection _Information" -msgstr "Ü_henduse andmed" +#. Delete +msgid "_Delete" +msgstr "_Kustuta" -#. 'Edit Connections...' item -msgid "Edit Connections..." -msgstr "Ühenduste muutmine..." +msgid "Monitoring _frequency:" +msgstr "Monitoorimise _sagedus:" -#. Help item -msgid "_Help" -msgstr "A_bi" +msgid "ms" +msgstr "ms" -#. About item -msgid "_About" -msgstr "_Programmist lähemalt" +msgid "_Interface name:" +msgstr "_Liidese nimi:" -msgid "Disconnected" -msgstr "Ühendus katkestatud" +msgid "_Link Monitoring:" +msgstr "Ü_henduse monitooring:" -msgid "The network connection has been disconnected." -msgstr "Võrguühendus katkes." +msgid "ARP _targets:" +msgstr "ARP _sihtkohad:" -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Võrguühenduse '%s' ettevalmistamine..." +msgid "" +"An IP address, or a comma-separated list of IP addresses, to look for when " +"checking the link status." +msgstr "" +"IP-aadress või komadega eraldatud IP-aadresside loetelu, millega " +"kontrollitakse ühenduse toimimist." -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Võrguühenduse '%s' jaoks on vajalik kasutaja autentimine..." +msgid "Link _up delay:" +msgstr "Link _maas viivitus:" -#, c-format -msgid "Network connection '%s' active" -msgstr "Võrguühendus '%s' on aktiivne" +msgid "Link _down delay:" +msgstr "Link _püsti viivitus:" -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "VPN-ühenduse '%s' alustamine..." +msgid "_Username:" +msgstr "_Kasutajanimi:" -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "VPN-ühenduse '%s' jaoks on vajalik kasutaja autentimine..." +msgid "_Service:" +msgstr "_Teenus:" -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "VPN'i aadressi pärimine võrgu '%s' jaoks..." +msgid "Sho_w password" +msgstr "_Näita parooli" -#, c-format -msgid "VPN connection '%s' active" -msgstr "VPN-ühendus '%s' on aktiivne" +msgid "_Password:" +msgstr "_Parool:" -msgid "No network connection" -msgstr "Võrguühendus puudub" +msgid "Automatic" +msgstr "Automaatne" -msgid "NetworkManager Applet" -msgstr "Võrguhalduri rakend" +msgid "Twisted Pair (TP)" +msgstr "Pöördpaar (TP, twisted pair)" -msgid "Automatically unlock this device" -msgstr "Selle seadme luku automaatne avamine" +# see on ajaloo tunnist välja astunud: http://en.wikipedia.org/wiki/Attachment_Unit_Interface +# seda vist elusuuruses ei näe +# muidu lisaseadme liides kõlaks küll +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" -msgid "_Unlock" -msgstr "_Võta lukust lahti" +msgid "BNC" +msgstr "BNC" -msgid "Connection Information" -msgstr "Ühenduse andmed" +msgid "Media Independent Interface (MII)" +msgstr "Meediumist sõltumatu liides (MII)" -msgid "Active Network Connections" -msgstr "Aktiivsed võrguühendused" +msgid "10 Mb/s" +msgstr "10 Mb/s" -msgid "Wired 802.1X authentication" -msgstr "Juhtmega 802.1X autentimine" +msgid "100 Mb/s" +msgstr "100 Mb/s" -msgid "_Network name:" -msgstr "_Võrgu nimi:" +msgid "1 Gb/s" +msgstr "1 Gb/s" -msgid "automatic" -msgstr "automaatne" +msgid "10 Gb/s" +msgstr "10 Gb/s" -msgid "Failed to update connection secrets due to an unknown error." -msgstr "Tundmatu vea tõttu nurjus ühenduse paroolide uuendamine." +msgid "_Port:" +msgstr "_Port:" -msgid "" -"IP addresses identify your computer on the network. Click the \"Add\" " -"button to add an IP address." -msgstr "" -"IP-aadress on arvuti nimi võrgus. Klõpsa \"Lisa\", et lisada IP-aadress." +msgid "_Speed:" +msgstr "_Kiirus:" -msgid "Ig_nore automatically obtained routes" -msgstr "Automaatselt saadud marsruute _eiratakse" +msgid "Full duple_x" +msgstr "_Täisdupleks" -msgid "_Use this connection only for resources on its network" -msgstr "Ü_hendust kasutatakse ainult selle kohtvõrgu jaoks" +# Automaatne kokkulepe? +msgid "Aut_onegotiate" +msgstr "Aut_onegotiate" -msgid "" -"If enabled, this connection will never be used as the default network " -"connection." -msgstr "" -"Kui märgitud, ei kasutata seda ühendust mitte kunagi vaikimisi " -"võrguühendusena." +msgid "_Device MAC address:" +msgstr "_Seadme MAC-aadress:" + +msgid "C_loned MAC address:" +msgstr "_Kloonitud MAC-aadress:" -msgid "_Username:" -msgstr "_Kasutajanimi:" +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"Siia sisestatud MAC-aadressi kasutatakse selle ühendusega kasutatava seadme " +"riistvaralise aadressina. Seda võimalust tuntakse ka MAC-i kloonimise või " +"petmisena. Näiteks: 00:11:22:33:44:55" -msgid "_Service:" -msgstr "_Teenus:" +msgid "_MTU:" +msgstr "Ülekandeühiku piirsuurus (_MTU):" -msgid "Sho_w password" -msgstr "_Näita parooli" +msgid "bytes" +msgstr "baiti" -msgid "_Password:" -msgstr "_Parool:" +msgid "_Transport mode:" +msgstr "_Transportrežiim:" -msgid "Automatic" -msgstr "Automaatne" +#. IP-over-InfiniBand "datagram mode" +msgid "Datagram" +msgstr "Datagram" + +#. IP-over-InfiniBand "connected mode" +msgid "Connected" +msgstr "Ühendatud" msgid "Automatic with manual DNS settings" msgstr "Automaatne käsitsi DNS sätetega" @@ -920,6 +1129,12 @@ msgid "Prefer 2G (GPRS/EDGE)" msgstr "Eelista 2G (GPRS/EDGE)" +msgid "Prefer 4G (LTE)" +msgstr "Eelistatakse 4G ühendust (LTE)" + +msgid "Use only 4G (LTE)" +msgstr "Kasutatakse ainult 4G ühendust (LTE)" + msgid "Basic" msgstr "Põhiline" @@ -986,66 +1201,8 @@ msgid "Send PPP _echo packets" msgstr "Saadetakse PPP _echo pakette" -msgid "Twisted Pair (TP)" -msgstr "Pöördpaar (TP, twisted pair)" - -# see on ajaloo tunnist välja astunud: http://en.wikipedia.org/wiki/Attachment_Unit_Interface -# seda vist elusuuruses ei näe -# muidu lisaseadme liides kõlaks küll -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" - -msgid "BNC" -msgstr "BNC" - -msgid "Media Independent Interface (MII)" -msgstr "Meediumist sõltumatu liides (MII)" - -msgid "10 Mb/s" -msgstr "10 Mb/s" - -msgid "100 Mb/s" -msgstr "100 Mb/s" - -msgid "1 Gb/s" -msgstr "1 Gb/s" - -msgid "10 Gb/s" -msgstr "10 Gb/s" - -msgid "_Port:" -msgstr "_Port:" - -msgid "_Speed:" -msgstr "_Kiirus:" - -msgid "Full duple_x" -msgstr "_Täisdupleks" - -# Automaatne kokkulepe? -msgid "Aut_onegotiate" -msgstr "Aut_onegotiate" - -msgid "_Device MAC address:" -msgstr "_Seadme MAC-aadress:" - -msgid "C_loned MAC address:" -msgstr "_Kloonitud MAC-aadress:" - -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"Siia sisestatud MAC-aadressi kasutatakse selle ühendusega kasutatava seadme " -"riistvaralise aadressina. Seda võimalust tuntakse ka MAC-i kloonimise või " -"petmisena. Näiteks: 00:11:22:33:44:55" - -msgid "_MTU:" -msgstr "Ülekandeühiku piirsuurus (_MTU):" - -msgid "bytes" -msgstr "baiti" +msgid "S_ecurity:" +msgstr "_Turvalisus:" msgid "A (5 GHz)" msgstr "A (5 GHz)" @@ -1072,11 +1229,11 @@ msgstr "_Kiirus:" msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"See valik lubab ühenduda ainult siia sisestatud BSSID aadressiga " -"wifiruuteriga (AP). Näiteks: 00:11:22:33:44:55" +"See valik lubab ühenduda ainult siia sisestatud BSSID aadressiga Wi-Fi " +"ruuteriga (AP). Näiteks: 00:11:22:33:44:55" msgid "_BSSID:" msgstr "_BSSID:" @@ -1093,9 +1250,6 @@ msgid "SS_ID:" msgstr "SS_ID:" -msgid "S_ecurity:" -msgstr "_Turvalisus:" - msgid "Allowed Authentication Methods" msgstr "Lubatud autentimismeetodid" @@ -1108,69 +1262,246 @@ msgid "_PAP" msgstr "_PAP" -msgid "Password Authentication Protocol" -msgstr "Parooliga autentimisprotokoll" +msgid "Password Authentication Protocol" +msgstr "Parooliga autentimisprotokoll" + +msgid "C_HAP" +msgstr "C_HAP" + +msgid "Challenge Handshake Authentication Protocol" +msgstr "Challenge Handshake autentimisprotokoll (CHAP)" + +msgid "_MSCHAP" +msgstr "_MSCHAP" + +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsofti Challenge Handshake autentimisprotokoll (MCHAP)" + +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" + +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "" +"Microsofti Challenge Handshake autentimisprotokolli versioon 2 (MCHAP v2)" + +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "" +"Tavaliselt toetab PPP teenusepakkuja server kõiki autentimisviise. Kui " +"ühendus siiski nurjub, proovi mõne viisi keelamist." + +msgid "Address" +msgstr "Aadress" + +msgid "Netmask" +msgstr "Võrgumask" + +msgid "Gateway" +msgstr "Lüüs (gateway)" + +msgid "Metric" +msgstr "Meetrika" + +msgid "Prefix" +msgstr "Prefiks" + +msgid "Ethernet" +msgstr "Ethernet" + +msgid "Wi-Fi" +msgstr "Wi-Fi" + +msgid "WiMAX" +msgstr "WiMAX" + +msgid "DSL" +msgstr "DSL" + +msgid "InfiniBand" +msgstr "InfiniBand" + +msgid "Bond" +msgstr "Liitühendus (bond)" + +msgid "VPN" +msgstr "VPN" + +msgid "Import a saved VPN configuration..." +msgstr "VPN-ühenduse seadistuse importimine..." + +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"Ühenduse redaktori dialoogi pole tundmatu vea tõttu võimalik lähtestada." + +msgid "Could not create new connection" +msgstr "Uut ühendust pole võimalik luua" + +msgid "Connection delete failed" +msgstr "Ühenduse kustutamine nurjus" + +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Kas sa oled kindel, et tahad kustutada ühenduse %s?" + +#, c-format +msgid "Editing %s" +msgstr "Ühenduse %s muutmine" + +msgid "Editing un-named connection" +msgstr "Nimetu ühenduse muutmine" + +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"Ühenduste redigeerija ei suutnud leida vajalikke allikaid (.ui faili ei " +"leitud)." + +msgid "_Save" +msgstr "_Salvesta" + +msgid "Save any changes made to this connection." +msgstr "Salvesta kõik sellele ühendusele tehtud muudatused." + +msgid "_Save..." +msgstr "_Salvesta..." + +msgid "Authenticate to save this connection for all users of this machine." +msgstr "" +"Selle ühenduse salvestamiseks selle arvuti kõigi kasutajate jaoks pead end " +"autentima." + +msgid "Could not create connection" +msgstr "Ühendust pole võimalik luua" + +msgid "Could not edit connection" +msgstr "Ühendust pole võimalik muuta" + +msgid "Unknown error creating connection editor dialog." +msgstr "Tundmatu viga ühenduse muutmise dialoogi loomisel." + +msgid "Error saving connection" +msgstr "Viga ühenduse salvestamisel" + +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Omadus '%s' / '%s' pole sobiv: %d" + +msgid "Error initializing editor" +msgstr "Viga redaktori lähtestamisel" + +msgid "Connection add failed" +msgstr "Ühenduse lisamine nurjus" + +msgid "Connection _name:" +msgstr "Ühenduse _nimi:" + +msgid "Connect _automatically" +msgstr "_Automaatne ühendumine" + +msgid "A_vailable to all users" +msgstr "_Saadaval kõigile kasutajatele" + +msgid "_Export..." +msgstr "_Eksportimine..." + +msgid "never" +msgstr "mitte kunagi" + +msgid "now" +msgstr "nüüd" + +#. less than an hour ago +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minut tagasi" +msgstr[1] "%d minutit tagasi" + +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d tund tagasi" +msgstr[1] "%d tundi tagasi" + +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d päev tagasi" +msgstr[1] "%d päeva tagasi" + +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d kuu tagasi" +msgstr[1] "%d kuud tagasi" + +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "%d aasta tagasi" +msgstr[1] "%d aastat tagasi" + +msgid "Name" +msgstr "Nimi" -msgid "C_HAP" -msgstr "C_HAP" +msgid "Last Used" +msgstr "Viimati kasutatud" -msgid "Challenge Handshake Authentication Protocol" -msgstr "Challenge Handshake autentimisprotokoll (CHAP)" +msgid "Edit the selected connection" +msgstr "Valitud ühenduse muutmine" -msgid "_MSCHAP" -msgstr "_MSCHAP" +msgid "_Edit..." +msgstr "_Muuda..." -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsofti Challenge Handshake autentimisprotokoll (MCHAP)" +msgid "Authenticate to edit the selected connection" +msgstr "Valitud ühenduse muutmiseks pead end autentima" -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +msgid "Delete the selected connection" +msgstr "Valitud ühenduse kustutamine" -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "" -"Microsofti Challenge Handshake autentimisprotokolli versioon 2 (MCHAP v2)" +msgid "_Delete..." +msgstr "_Kustuta..." -msgid "" -"In most cases, the provider's PPP servers will support all authentication " -"methods. If connections fail, try disabling support for some methods." -msgstr "" -"Tavaliselt toetab PPP teenusepakkuja server kõiki autentimisviise. Kui " -"ühendus siiski nurjub, proovi mõne viisi keelamist." +msgid "Authenticate to delete the selected connection" +msgstr "Valitud ühenduse kustutamiseks pead end autentima" -msgid " " -msgstr " " +msgid "Error creating connection" +msgstr "Viga ühenduse loomisel" -msgid "Choose a VPN Connection Type" -msgstr "VPN-ühenduse liigi valimine" +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Ei tea, kuidas '%s' ühendust luua" -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" -"Vali, mis liiki VPN ühendust kasutada. Kui soovitud VPN ühenduse liiki " -"nimekirjas ei leidu, võib vajalik VPN plugin olla paigaldamata." +msgid "Error editing connection" +msgstr "Viga ühenduse muutmisel" -msgid "Create…" -msgstr "Loo…" +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Ei leitud ühendust UUID-ga '%s'" -msgid "Address" -msgstr "Aadress" +msgid "802.1x Security" +msgstr "802.1x turvalisus" -msgid "Netmask" -msgstr "Võrgumask" +msgid "Could not load 802.1x Security user interface." +msgstr "802.1x turvalisuse kasutajaliidest pole võimalik laadida." -msgid "Gateway" -msgstr "Lüüs (gateway)" +msgid "Use 802.1_X security for this connection" +msgstr "Sellel ühendusel 802.1_X turvalisuse kasutamine" -msgid "Metric" -msgstr "Meetrika" +#, c-format +msgid "%s slave %d" +msgstr "%s alluv %d" -msgid "Prefix" -msgstr "Prefiks" +msgid "Could not load bond user interface." +msgstr "Liitühenduse (bond) kasutajaliidest pole võimalik laadida." -msgid "DSL" -msgstr "DSL" +#, c-format +msgid "Bond connection %d" +msgstr "Liitühendus %d (bond)" msgid "Could not load DSL user interface." msgstr "DSL kasutajaliidest pole võimalik laadida." @@ -1179,6 +1510,27 @@ msgid "DSL connection %d" msgstr "DSL-ühendus %d" +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"See valik lubab ühendumise ainult seadmel, mille riistvaraline MAC-aadress " +"on siia sisestatud. Näiteks: 00:11:22:33:44:55" + +msgid "Could not load ethernet user interface." +msgstr "Ethernet võrgu kasutajaliidest pole võimalik laadida." + +#, c-format +msgid "Ethernet connection %d" +msgstr "Ethernet võrgu ühendus %d" + +msgid "Could not load InfiniBand user interface." +msgstr "InfiniBand-võrgu kasutajaliidest pole võimalik laadida." + +#, c-format +msgid "InfiniBand connection %d" +msgstr "InfiniBand võrgu ühendus %d" + msgid "Automatic (VPN)" msgstr "Automaatne (VPN)" @@ -1209,6 +1561,12 @@ msgid "Disabled" msgstr "Keelatud" +msgid "Additional _DNS servers:" +msgstr "_DNS-lisaserverid:" + +msgid "Additional s_earch domains:" +msgstr "_Lisaotsidomeenid:" + #, c-format msgid "Editing IPv4 routes for %s" msgstr "Seadme %s IPv4-marsruutide muutmine" @@ -1230,276 +1588,79 @@ #, c-format msgid "Editing IPv6 routes for %s" -msgstr "Seadme %s IPv6-marsruutide muutmine" - -msgid "IPv6 Settings" -msgstr "IPv6 sätted" - -msgid "Could not load IPv6 user interface." -msgstr "IPv6 kasutajaliidest pole võimalik laadida." - -msgid "Could not load mobile broadband user interface." -msgstr "Mobiiliühenduse kasutajaliidest pole võimalik laadida." - -msgid "Unsupported mobile broadband connection type." -msgstr "Mobiiliühenduse liik pole toetatud." - -#. Fall back to just asking for GSM vs. CDMA -msgid "Select Mobile Broadband Provider Type" -msgstr "Mobiiliühenduse teenusepakkuja liigi valimine" - -msgid "" -"Select the technology your mobile broadband provider uses. If you are " -"unsure, ask your provider." -msgstr "" -"Vali mobiiliühenduse pakkuja kasutatav tehnoloogia. Kui sa pole kindel, " -"küsi oma teenusepakkujalt." - -msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "" -"Minu teenusepakkuja kasutab _GSM-il põhinevat tehnoloogiat (nt GPRS, EDGE, " -"UMTS, HSDPA)" - -msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "" -"Minu teenusepakkuja kasutab C_DMA-l põhinevat tehnoloogiat (nt 1xRTT, EVDO)" - -msgid "EAP" -msgstr "EAP" - -msgid "PAP" -msgstr "PAP" - -msgid "CHAP" -msgstr "CHAP" - -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -msgid "none" -msgstr "puudub" - -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "%s PPP autentimisviiside muutmine" - -msgid "PPP Settings" -msgstr "PPP sätted" - -msgid "Could not load PPP user interface." -msgstr "PPP kasutajaliidest pole võimalik laadida." - -msgid "VPN" -msgstr "VPN" - -msgid "Could not load VPN user interface." -msgstr "VPN kasutajaliidest pole võimalik laadida." - -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "VPN-i pluginat teenuse '%s' jaoks ei leitud." - -#, c-format -msgid "VPN connection %d" -msgstr "VPN-ühendus %d" - -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"See valik lubab ühendumise ainult seadmel, mille riistvaraline MAC-aadress " -"on siia sisestatud. Näiteks: 00:11:22:33:44:55" - -msgid "Wired" -msgstr "Juhtmega" - -msgid "Could not load wired user interface." -msgstr "Juhtmega võrgu kasutajaliidest pole võimalik laadida." - -#, c-format -msgid "Wired connection %d" -msgstr "Juhtmega võrgu ühendus %d" - -msgid "802.1x Security" -msgstr "802.1x turvalisus" - -msgid "Could not load Wired Security security user interface." -msgstr "Juhtmega võrgu turvalisuse kasutajaliidest pole võimalik laadida." - -msgid "Use 802.1_X security for this connection" -msgstr "Sellel ühendusel 802.1_X turvalisuse kasutamine" - -#, c-format -msgid "default" -msgstr "vaikimisi" - -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -msgid "Wireless" -msgstr "Juhtmeta võrk" - -msgid "Could not load WiFi user interface." -msgstr "WiFi-võrgu kasutajaliidest pole võimalik laadida." - -#, c-format -msgid "Wireless connection %d" -msgstr "Juhtmeta ühendus %d" - -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "WEP 40/128-bitine võti (Hex või ASCII)" - -msgid "WEP 128-bit Passphrase" -msgstr "WEP 128-bitine parool" - -msgid "Dynamic WEP (802.1x)" -msgstr "Dünaamiline WEP (802.1x)" - -msgid "WPA & WPA2 Personal" -msgstr "WPA & WPA2 isiklik" - -msgid "WPA & WPA2 Enterprise" -msgstr "WPA & WPA2 ettevõtte" - -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"WiFi-võrgu turvalisuse kasutajaliidest pole võimalik laadida, puudub WiFi " -"säte." - -msgid "Wireless Security" -msgstr "Juhtmeta võrgu turvalisus" - -msgid "Could not load WiFi security user interface." -msgstr "WiFi-võrgu turvalisuse kasutajaliidest pole võimalik laadida." - -#, c-format -msgid "Editing %s" -msgstr "Ühenduse %s muutmine" - -msgid "Editing un-named connection" -msgstr "Nimetu ühenduse muutmine" - -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"Ühenduste redigeerija ei suutnud leida vajalikke allikaid (.ui faili ei " -"leitud)." - -msgid "Error creating connection editor dialog." -msgstr "Viga ühenduse muutmise dialoogi loomisel." - -msgid "_Save" -msgstr "_Salvesta" - -msgid "Save any changes made to this connection." -msgstr "Salvesta kõik sellele ühendusele tehtud muudatused." - -msgid "_Save..." -msgstr "_Salvesta..." - -msgid "Authenticate to save this connection for all users of this machine." -msgstr "" -"Selle ühenduse salvestamiseks selle arvuti kõigi kasutajate jaoks pead end " -"autentima." - -msgid "_Import" -msgstr "_Impordi" - -msgid "E_xport" -msgstr "_Ekspordi" - -msgid "Connection _name:" -msgstr "Ühenduse _nimi:" - -msgid "Connect _automatically" -msgstr "_Automaatne ühendumine" +msgstr "Seadme %s IPv6-marsruutide muutmine" -msgid "Available to all users" -msgstr "Saadaval kõigile kasutajatele" +msgid "IPv6 Settings" +msgstr "IPv6 sätted" -msgid "never" -msgstr "mitte kunagi" +msgid "Could not load IPv6 user interface." +msgstr "IPv6 kasutajaliidest pole võimalik laadida." -msgid "now" -msgstr "nüüd" +msgid "Could not load mobile broadband user interface." +msgstr "Mobiiliühenduse kasutajaliidest pole võimalik laadida." -#. less than an hour ago -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "%d minut tagasi" -msgstr[1] "%d minutit tagasi" +msgid "Unsupported mobile broadband connection type." +msgstr "Mobiiliühenduse liik pole toetatud." -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "%d tund tagasi" -msgstr[1] "%d tundi tagasi" +#. Fall back to just asking for GSM vs. CDMA +msgid "Select Mobile Broadband Provider Type" +msgstr "Mobiiliühenduse teenusepakkuja liigi valimine" -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "%d päev tagasi" -msgstr[1] "%d päeva tagasi" +msgid "" +"Select the technology your mobile broadband provider uses. If you are " +"unsure, ask your provider." +msgstr "" +"Vali mobiiliühenduse pakkuja kasutatav tehnoloogia. Kui sa pole kindel, " +"küsi oma teenusepakkujalt." -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "%d kuu tagasi" -msgstr[1] "%d kuud tagasi" +msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" +msgstr "" +"Minu teenusepakkuja kasutab _GSM-il põhinevat tehnoloogiat (nt GPRS, EDGE, " +"UMTS, HSDPA)" -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "%d aasta tagasi" -msgstr[1] "%d aastat tagasi" +msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" +msgstr "" +"Minu teenusepakkuja kasutab C_DMA-l põhinevat tehnoloogiat (nt 1xRTT, EVDO)" -msgid "Connection add failed" -msgstr "Ühenduse lisamine nurjus" +msgid "EAP" +msgstr "EAP" -msgid "Error saving connection" -msgstr "Viga ühenduse salvestamisel" +msgid "PAP" +msgstr "PAP" -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "Omadus '%s' / '%s' pole sobiv: %d" +msgid "CHAP" +msgstr "CHAP" -msgid "An unknown error occurred." -msgstr "Esines tundmatu viga." +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -msgid "Error initializing editor" -msgstr "Viga redaktori lähtestamisel" +msgid "MSCHAP" +msgstr "MSCHAP" -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "" -"Ühenduse redaktori dialoogi pole tundmatu vea tõttu võimalik lähtestada." +#. Translators: "none" refers to authentication methods +msgid "none" +msgstr "puudub" -msgid "Could not create new connection" -msgstr "Uut ühendust pole võimalik luua" +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "%s PPP autentimisviiside muutmine" -msgid "Could not edit new connection" -msgstr "Uut ühendust pole võimalik muuta" +msgid "PPP Settings" +msgstr "PPP sätted" -msgid "Could not edit connection" -msgstr "Ühendust pole võimalik muuta" +msgid "Could not load PPP user interface." +msgstr "PPP kasutajaliidest pole võimalik laadida." -msgid "Connection delete failed" -msgstr "Ühenduse kustutamine nurjus" +msgid "Could not load VPN user interface." +msgstr "VPN kasutajaliidest pole võimalik laadida." #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Kas sa oled kindel, et tahad kustutada ühenduse %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "VPN-i pluginat teenuse '%s' jaoks ei leitud." -msgid "Cannot import VPN connection" -msgstr "VPN-ühendust pole võimalik importida" +#, c-format +msgid "VPN connection %d" +msgstr "VPN-ühendus %d" msgid "" "The VPN plugin failed to import the VPN connection correctly\n" @@ -1510,60 +1671,71 @@ "\n" "Viga: puudub VPN teenuse tüüp." -msgid "Could not edit imported connection" -msgstr "Imporditud ühendust pole võimalik muuta" +msgid "Choose a VPN Connection Type" +msgstr "VPN-ühenduse liigi valimine" -msgid "Name" -msgstr "Nimi" +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Vali, mis liiki VPN ühendust kasutada. Kui soovitud VPN ühenduse liiki " +"nimekirjas ei leidu, võib vajalik VPN plugin olla paigaldamata." -msgid "Last Used" -msgstr "Viimati kasutatud" +#, c-format +msgid "default" +msgstr "vaikimisi" -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "" -"Ühtegi VPN-i pluginat pole saadaval. Selle nupu töötamiseks paigalda üks." +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -msgid "_Edit" -msgstr "_Muuda" +msgid "Could not load Wi-Fi user interface." +msgstr "Wi-Fi-võrgu kasutajaliidest pole võimalik laadida." -msgid "Edit the selected connection" -msgstr "Valitud ühenduse muutmine" +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Wi-Fi ühendus %d" -msgid "_Edit..." -msgstr "_Muuda..." +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Puudub" -msgid "Authenticate to edit the selected connection" -msgstr "Valitud ühenduse muutmiseks pead end autentima" +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "WEP 40/128-bitine võti (Hex või ASCII)" -msgid "_Delete" -msgstr "_Kustuta" +msgid "WEP 128-bit Passphrase" +msgstr "WEP 128-bitine parool" -msgid "Delete the selected connection" -msgstr "Valitud ühenduse kustutamine" +msgid "Dynamic WEP (802.1x)" +msgstr "Dünaamiline WEP (802.1x)" -msgid "_Delete..." -msgstr "_Kustuta..." +msgid "WPA & WPA2 Personal" +msgstr "WPA & WPA2 isiklik" -msgid "Authenticate to delete the selected connection" -msgstr "Valitud ühenduse kustutamiseks pead end autentima" +msgid "WPA & WPA2 Enterprise" +msgstr "WPA & WPA2 ettevõtte" -msgid "Error creating connection" -msgstr "Viga ühenduse loomisel" +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"Wi-Fi-võrgu turvalisuse kasutajaliidest pole võimalik laadida; puudub Wi-Fi " +"säte." -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Ei tea, kuidas '%s' ühendust luua" +msgid "Wi-Fi Security" +msgstr "Wi-Fi turvalisus" -msgid "Error editing connection" -msgstr "Viga ühenduse muutmisel" +msgid "Could not load Wi-Fi security user interface." +msgstr "Wi-Fi-võrgu turvalisuse kasutajaliidest pole võimalik laadida." -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Ei tea, kuidas '%s' ühendust muuta" +msgid "Could not load WiMAX user interface." +msgstr "WiMAX-võrgu kasutajaliidest pole võimalik laadida." #, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Ei leitud ühendust UUID-ga '%s'" +msgid "WiMAX connection %d" +msgstr "WiMAX ühendus %d" + +msgid "Cannot import VPN connection" +msgstr "VPN-ühendust pole võimalik importida" #, c-format msgid "" @@ -1609,16 +1781,31 @@ msgid "Export VPN connection..." msgstr "VPN-ühenduse eksportimine..." -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "PAN-ühenduse loomine nurjus: %s" +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"Võrguhalduri rakend ei suutnud leida vajalikke allikaid (.ui faili ei " +"leitud)." -msgid "Your phone is now ready to use!" -msgstr "Sinu telefon on valmis kasutamiseks!" +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"Bluetoothi seadistamine pole võimalik (ühendumine D-Bus'iga nurjus: (%s) %s)." #, c-format -msgid "%s Network" -msgstr "%s võrk" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"Bluetoothi seadistamine pole võimalik (tõrge võrguhalduri otsimisel: (%s) " +"%s)." + +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Mobiiltelefoni kasutamine võrguseadmena (PAN/NAP)" + +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Internetiühendus mobiiltelefoni kaudu (DUN)" #, c-format msgid "Error: %s" @@ -1628,12 +1815,18 @@ msgid "Failed to create DUN connection: %s" msgstr "DUN-ühenduse loomine nurjus: %s" +msgid "Your phone is now ready to use!" +msgstr "Sinu telefon on valmis kasutamiseks!" + msgid "Mobile wizard was canceled" msgstr "Mobiiliühenduse nõustaja katkestati" msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Tundmatut tüüpi telefoniseade (pole GSM ega CDMA)" +msgid "unknown modem type." +msgstr "tundmatu modemi liik." + msgid "failed to connect to the phone." msgstr "telefoniga ühendumine nurjus." @@ -1646,9 +1839,6 @@ msgid "Detecting phone configuration..." msgstr "Telefoni seadistuse tuvastamine..." -msgid "could not find the Bluetooth device." -msgstr "Bluetooth seadet ei leitud." - msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -1657,24 +1847,24 @@ "up) seadistamist sisse lülitatud." #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "" -"Bluetoothi seadistamine pole võimalik (ühendumine D-Bus'iga nurjus: %s)." - -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Bluetoothi seadistamine pole võimalik (D-Bus'i proksi loomine nurjus)." +msgid "Failed to create PAN connection: %s" +msgstr "PAN-ühenduse loomine nurjus: %s" #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"Bluetoothi seadistamine pole võimalik (tõrge võrguhalduri otsimisel: %s)." +msgid "%s Network" +msgstr "%s võrk" -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Mobiiltelefoni kasutamine võrguseadmena (PAN/NAP)" +msgid "Automatically unlock this device" +msgstr "Selle seadme luku automaatne avamine" -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Internetiühendus mobiiltelefoni kaudu (DUN)" +msgid "_Unlock" +msgstr "_Võta lukust lahti" + +msgid "Connection Information" +msgstr "Ühenduse andmed" + +msgid "Active Network Connections" +msgstr "Aktiivsed võrguühendused" msgid "" "Your mobile broadband connection is configured with the following settings:" @@ -1814,45 +2004,43 @@ #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network " -"'%s'." -msgstr "" -"Ligipääsuks juhtmeta võrgule '%s' on vaja parooli või krüpteerimisvõtit." +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." +msgstr "Ligipääsuks Wi-Fi võrgule '%s' on vaja parooli või krüpteerimisvõtit." -msgid "Wireless Network Authentication Required" -msgstr "Juhtmeta võrk nõuab salasõna" +msgid "Wi-Fi Network Authentication Required" +msgstr "Wi-Fi võrk nõuab salasõna" -msgid "Authentication required by wireless network" -msgstr "Juhtmeta võrgu jaoks on vaja salasõna" +msgid "Authentication required by Wi-Fi network" +msgstr "Wi-Fi võrgu jaoks on vaja salasõna" -msgid "Create New Wireless Network" -msgstr "Juhtmeta võrgu loomine" +msgid "Create New Wi-Fi Network" +msgstr "Uue Wi-Fi võrgu loomine" -msgid "New wireless network" -msgstr "Uus juhtmeta võrk" +msgid "New Wi-Fi network" +msgstr "Uus Wi-Fi võrk" -msgid "Enter a name for the wireless network you wish to create." -msgstr "Sisesta loodava juhtmeta võrgu nimi." +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "Sisesta loodava Wi-Fi võrgu nimi." -msgid "Connect to Hidden Wireless Network" -msgstr "Varjatud juhtmeta võrku ühendumine" +msgid "Connect to Hidden Wi-Fi Network" +msgstr "Varjatud Wi-Fi võrku ühendumine" -msgid "Hidden wireless network" -msgstr "Varjatud juhtmeta võrk" +msgid "Hidden Wi-Fi network" +msgstr "Varjatud Wi-Fi võrk" msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." -msgstr "Sisesta varjatud juhtmeta võrgu, millega ühendada, nimi ja parool." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." +msgstr "Sisesta varjatud Wi-Fi võrgu nimi ja parool." -msgid "_Wireless security:" -msgstr "_Juhtmeta võrgu turvalisus:" +msgid "Wi-Fi _security:" +msgstr "Wi-Fi _turvalisus:" -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Ü_hendus:" -msgid "Wireless _adapter:" -msgstr "Juhtmeta võrgu _seade:" +msgid "Wi-Fi _adapter:" +msgstr "Wi-Fi _adapter:" msgid "Usage:" msgstr "Kasutus:" @@ -1891,8 +2079,11 @@ msgid "HSPA" msgstr "HSPA" -msgid "WiMAX" -msgstr "WiMAX" +msgid "HSPA+" +msgstr "HSPA+" + +msgid "LTE" +msgstr "LTE" msgid "not enabled" msgstr "pole lubatud" @@ -1935,24 +2126,22 @@ msgid "Default" msgstr "Vaikimisi" -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"Võrguhalduri rakend ei suutnud leida vajalikke allikaid (.ui faili ei " -"leitud)." +#. The %s is a mobile provider name, eg "T-Mobile" +#, c-format +msgid "%s connection" +msgstr "%s ühendus" msgid "No Certificate Authority certificate chosen" msgstr "Ühtki sertifitseerimiskeskuse sertifikaadifaili pole valitud" msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" -"Sertifitseerimiskeskuse sertifikaadifaili mittekasutamine võib põhjustada " -"ühendumise ebaturvalistesse, kuritegelikesse võrkudesse. Kas sa valiksid " -"siiski sertifitseerimiskeskuse sertifikaadifaili?" +"Sertifitseerimiskeskuse (CA) sertifikaadi mittekasutamine võib põhjustada " +"ühendumise ebaturvalistesse, kuritegelikesse Wi-Fi võrkudesse. Kas sa " +"valiksid siiski sertifitseerimiskeskuse sertifikaadi?" msgid "Choose CA Certificate" msgstr "Vali sertifitseerimiskeskuse sertifikaat" @@ -1963,6 +2152,18 @@ msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER või PEM sertifikaadid (*.der, *.pem, *.crt, *.cer)" +msgid "GTC" +msgstr "GTC" + +msgid "Choose a PAC file..." +msgstr "PAC-faili lubamine..." + +msgid "PAC files (*.pac)" +msgstr "PAC failid (*.pac)" + +msgid "All files" +msgstr "Kõik failid" + msgid "Anonymous" msgstr "Anonüümne" @@ -1984,18 +2185,6 @@ msgid "Allow automatic PAC pro_visioning" msgstr "Automaatsed _PAC-klauslid on lubatud" -msgid "GTC" -msgstr "GTC" - -msgid "Choose a PAC file..." -msgstr "PAC-faili lubamine..." - -msgid "PAC files (*.pac)" -msgstr "PAC failid (*.pac)" - -msgid "All files" -msgstr "Kõik failid" - msgid "MD5" msgstr "MD5" diff -Nru network-manager-applet-0.9.4.1/po/eu.po network-manager-applet-0.9.6.2+git201210311320.2620/po/eu.po --- network-manager-applet-0.9.4.1/po/eu.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/eu.po 2012-10-31 13:20:57.000000000 +0000 @@ -1901,7 +1901,7 @@ "Autentifikatu konexio hau gordetzeko ordenagailuko erabiltzaile guztientzako." #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Erabiltzaile guztientzako erabilgarri" #: ../src/connection-editor/nm-connection-editor.ui.h:2 @@ -2460,7 +2460,7 @@ "segurtasuneko xehetasunak." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "_Konexioa:" #: ../src/libnm-gtk/wifi.ui.h:3 @@ -2468,7 +2468,7 @@ msgstr "Haririk gabeko _moldagailua:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Haririk gabearen segurtasuna:" #: ../src/main.c:73 diff -Nru network-manager-applet-0.9.4.1/po/fa.po network-manager-applet-0.9.6.2+git201210311320.2620/po/fa.po --- network-manager-applet-0.9.4.1/po/fa.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/fa.po 2012-10-31 13:20:57.000000000 +0000 @@ -8,17 +8,17 @@ msgid "" msgstr "" "Project-Id-Version: network-manager-applet master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-09 22:26+0000\n" -"PO-Revision-Date: 2012-03-10 16:17+0330\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-08-20 16:42+0000\n" +"PO-Revision-Date: 2012-10-12 20:48+0330\n" "Last-Translator: Arash Mousavi \n" "Language-Team: Persian\n" +"Language: fa_IR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=1;\n" -"X-Poedit-Language: Persian\n" -"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" "X-Poedit-SourceCharset: utf-8\n" #: ../nm-applet.desktop.in.h:1 @@ -29,79 +29,131 @@ msgid "Manage your network connections" msgstr "اتصال‌های شبکه خود را مدیریت کنید" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "اتصال‌های شبکه" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "تنظیمات اتصال شبکه خود را مدیریت و تغییر دهید" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "غیرفعال‌سازی اعلان‌های برقراری ارتباط" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "برای غیرفعال‌سازی اعلان‌ها در زمان ارتباط با یک شبکه این قسمت را True تنظیم کنید." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +#| msgid "" +#| "Set this to TRUE to disable notifications when connecting to a network." +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "" +"برای غیرفعال‌سازی اعلان‌ها هنگام ارتباط با یک شبکه این قسمت را True تنظیم کنید." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "غیرفعال‌سازی اعلان‌های قطع ارتباط" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "برای غیرفعال‌سازی اعلان‌ها در زمان قطع ارتباط با یک شبکه این قسمت را True تنظیم کنید." +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "" +"برای غیرفعال‌سازی اعلان‌ها در زمان قطع ارتباط از یک شبکه بر روی true تنظیم " +"کنید." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +#| msgid "Disable connected notifications" +msgid "Disable VPN notifications" +msgstr "غیرفعال‌سازی اعلان‌های وی‌پی‌ان" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"برای غیرفعال‌سازی اعلان‌ها در زمان قطع ارتباط یا اتصال به وی‌پی‌ان این قسمت را " +"True تنظیم کنید." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "متوقف کردن اعلان‌های موجود شبکه‌ها" -#: ../nm-applet.schemas.in.h:6 -msgid "Set this to TRUE to disable notifications when wireless networks are available." -msgstr "برای غیرفعال‌سازی اعلان‌ها در زمانی که شبکه‌های بی‌سیم در دسترس هستند این قسمت را True تنظیم کنید." +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#| msgid "" +#| "Set this to TRUE to disable notifications when wireless networks are " +#| "available." +msgid "" +"Set this to true to disable notifications when wireless networks are " +"available." +msgstr "" +"برای غیرفعال‌سازی اعلان‌ها در زمانی که شبکه‌های بی‌سیم در دسترس هستند این قسمت " +"را True تنظیم کنید." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "تمبر" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." -msgstr "جهت تشخیص اینکه آیا تنظیمات باید به نسخه جدید انتقال پیدا کنند یا خیر مورد استفاده قرار می‌گیرد." +msgstr "" +"جهت تشخیص اینکه آیا تنظیمات باید به نسخه جدید انتقال پیدا کنند یا خیر مورد " +"استفاده قرار می‌گیرد." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "غیرفعال‌سازی ساخت وای‌فای" -#: ../nm-applet.schemas.in.h:10 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "برای غیرفعال کردن شبکه‌های ادهاک زمانی که از این اپلت استفاده می‌کنید گزینه True را انتخاب کنید." +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +#| msgid "" +#| "Set to TRUE to disable creation of adhoc networks when using the applet." +msgid "" +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "" +"برای غیرفعال کردن شبکه‌های ادهاک زمانی که از برنامک استفاده می‌کنید گزینه True " +"را انتخاب کنید." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "اتصال‌های شبکه" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +#| msgid "Choose CA Certificate" +msgid "Ignore CA certificate" +msgstr "نادیده گرفتن گواهینامه‌ی CA" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "تنظیمات اتصال شبکه خود را مدیریت و تغییر دهید" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"برای غیرفعال کردن هشدارهای مربوط به گواهینامه‌های CA در تصدیق‌هویت EAP برروی " +"true تنظیم کنید." -#: ../src/applet-device-bt.c:174 -#: ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 -#: ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 -#: ../src/applet-device-wimax.c:279 +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"برای غیرفعال کردن هشدارهای مربوط به گواهینامه‌های CA در تصدیق‌هویت فاز ۲ از " +"EAP برروی true تنظیم کنید." + +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-gsm.c:444 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "در دسترس" -#: ../src/applet-device-bt.c:200 -#: ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 -#: ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-gsm.c:486 ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "هم‌اکنون شما به «%s» متصل شده‌اید." -#: ../src/applet-device-bt.c:204 -#: ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 -#: ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 -#: ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-gsm.c:490 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "اتصال برقرار شد" @@ -109,205 +161,194 @@ msgid "You are now connected to the mobile broadband network." msgstr "شما در حال حاضر به شبکه پهن‌باند تلفن همراه متصل شده‌اید." -#: ../src/applet-device-bt.c:231 -#: ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 -#: ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "آماده‌سازی اتصال پهن‌باند تلفن همراه «%s»..." -#: ../src/applet-device-bt.c:234 -#: ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 -#: ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "پیکربندی اتصال پهن‌باند تلفن همراه «%s»..." -#: ../src/applet-device-bt.c:237 -#: ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 -#: ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "تأیید هویت مورد نیاز برای اتصال موبایل پهن‌باند «%s»..." -#: ../src/applet-device-bt.c:240 -#: ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 -#: ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "درخواست یک آدرس شبکه برای «%s»..." -#: ../src/applet-device-bt.c:244 -#: ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "ارتباط شبکه پهن‌باند موبایل «%s» فعال شد" -#: ../src/applet-device-cdma.c:184 -#: ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:696 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 -#: ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "شبکه پهن‌باند تلفن همراه (%s)" -#: ../src/applet-device-cdma.c:347 -#: ../src/applet-device-gsm.c:394 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 #: ../src/connection-editor/page-mobile.c:379 #: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "پهن‌باند تلفن همراه" #. Default connection item -#: ../src/applet-device-cdma.c:412 +#: ../src/applet-device-cdma.c:409 msgid "New Mobile Broadband (CDMA) connection..." msgstr "ارتباط پهن‌باند تلفن همراه (CDMA) جدید..." -#: ../src/applet-device-cdma.c:446 +#: ../src/applet-device-cdma.c:443 msgid "You are now connected to the CDMA network." msgstr "اکنون شما به شبکه CDMA متصل شده‌اید." -#: ../src/applet-device-cdma.c:503 -#: ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "ارتباط پهن‌باند «%s» فعال شد: (٪%d%s%s)" +msgstr "ارتباط پهن‌باند «%s» فعال شد: (٪%Id%s%s)" -#: ../src/applet-device-cdma.c:506 -#: ../src/applet-device-gsm.c:553 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "رومینگ" -#: ../src/applet-device-cdma.c:647 -#: ../src/applet-device-cdma.c:653 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 msgid "CDMA network." msgstr "شبکه CDMA." -#: ../src/applet-device-cdma.c:648 -#: ../src/applet-device-gsm.c:1198 +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 msgid "You are now registered on the home network." msgstr "شما هم‌اکنون در شبکه خانگی ثبت شده‌اید." -#: ../src/applet-device-cdma.c:654 -#: ../src/applet-device-gsm.c:1204 +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 msgid "You are now registered on a roaming network." msgstr "شما هم‌اکنون در شبکه رومینگ ثبت شده‌اید" -#: ../src/applet-device-gsm.c:213 -#: ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "جی‌اس‌ام" #. Default connection item -#: ../src/applet-device-gsm.c:459 +#: ../src/applet-device-gsm.c:457 msgid "New Mobile Broadband (GSM) connection..." msgstr "ارتباط پهن‌باند تلفن همراه (جی‌اس‌ام) جدید..." -#: ../src/applet-device-gsm.c:493 +#: ../src/applet-device-gsm.c:491 msgid "You are now connected to the GSM network." msgstr "اکنون شما به شبکه GSM متصل شده‌اید." -#: ../src/applet-device-gsm.c:654 +#: ../src/applet-device-gsm.c:652 msgid "PIN code required" msgstr "پین کد مورد نیاز است" -#: ../src/applet-device-gsm.c:662 +#: ../src/applet-device-gsm.c:660 msgid "PIN code is needed for the mobile broadband device" msgstr "برای دستگاه پهن‌باند شبکه تلفن همراه به پین کد نیاز است" -#: ../src/applet-device-gsm.c:783 +#: ../src/applet-device-gsm.c:781 #, c-format msgid "PIN code for SIM card '%s' on '%s'" msgstr "کد PIN برای SIM کارت «%s» بر روی «%s»" -#: ../src/applet-device-gsm.c:875 +#: ../src/applet-device-gsm.c:873 msgid "Wrong PIN code; please contact your provider." msgstr "پین‌کد اشتباه است؛ لطفا با ارائه‌دهنده خود تماس بگیرید." -#: ../src/applet-device-gsm.c:898 +#: ../src/applet-device-gsm.c:896 msgid "Wrong PUK code; please contact your provider." msgstr "کد PUK اشتباه است؛ لطفا با ارائه‌دهنده خود تماس بگیرید." #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 +#: ../src/applet-device-gsm.c:923 msgid "Sending unlock code..." msgstr "درحال ارسال کد باز کردن قفل..." -#: ../src/applet-device-gsm.c:988 +#: ../src/applet-device-gsm.c:986 msgid "SIM PIN unlock required" msgstr "پین SIM به بازکردن قفل نیاز دارد" -#: ../src/applet-device-gsm.c:989 +#: ../src/applet-device-gsm.c:987 msgid "SIM PIN Unlock Required" msgstr "پین SIM به بازکردن قفل نیاز دارد" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 +#: ../src/applet-device-gsm.c:989 #, c-format -msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." -msgstr "دستگاه پهن‌باند تلفن همراه «%s» پیش از اینکه بتواند مورد استفاده قرار گیرد، به کد پین SIM نیاز دارد." +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "" +"دستگاه پهن‌باند تلفن همراه «%s» پیش از اینکه بتواند مورد استفاده قرار گیرد، " +"به کد پین SIM نیاز دارد." #. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 +#: ../src/applet-device-gsm.c:991 msgid "PIN code:" msgstr "کد پین:" #. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 +#: ../src/applet-device-gsm.c:995 msgid "Show PIN code" msgstr "نمایش کد پین" -#: ../src/applet-device-gsm.c:1000 +#: ../src/applet-device-gsm.c:998 msgid "SIM PUK unlock required" msgstr "به بازکردن قفل SIM PUK نیاز است" -#: ../src/applet-device-gsm.c:1001 +#: ../src/applet-device-gsm.c:999 msgid "SIM PUK Unlock Required" msgstr "به بازکردن قفل SIM PUK نیاز است" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#: ../src/applet-device-gsm.c:1001 #, c-format -msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." -msgstr "دستگاه پهن‌باند تلفن همراه «%s» قبل از این که بتواند مورد استفاده قرار گیرد به کد SIM PUK نیاز دارد." +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "" +"دستگاه پهن‌باند تلفن همراه «%s» قبل از این که بتواند مورد استفاده قرار گیرد " +"به کد SIM PUK نیاز دارد." #. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 +#: ../src/applet-device-gsm.c:1003 msgid "PUK code:" msgstr "کد PUK:" #. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 +#: ../src/applet-device-gsm.c:1006 msgid "New PIN code:" msgstr "کد پین جدید:" #. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 +#: ../src/applet-device-gsm.c:1008 msgid "Re-enter new PIN code:" msgstr "کد پین جدید را مجدد وارد کنید:" #. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 +#: ../src/applet-device-gsm.c:1013 msgid "Show PIN/PUK codes" msgstr "کدهای پین/PUK را نمایش بده" -#: ../src/applet-device-gsm.c:1197 -#: ../src/applet-device-gsm.c:1203 +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 msgid "GSM network." msgstr "شبکه GSM." @@ -334,8 +375,7 @@ msgstr "شبکه سیمی" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 -#: ../src/applet.c:1490 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "قطع شد" @@ -376,90 +416,107 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "_اتصال به شبکه بی‌سیم مخفی..." -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "ساخت یک شبکه بی‌سیم _جدید..." -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(هیچکدام)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "(%s) شبکه‌های بی‌سیم " -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "(%s) شبکه بی‌سیم" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "شبکه بی‌سیم" msgstr[1] "شبکه‌های بی‌سیم" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "شبکه بی‌سیم غیرفعال است" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "شبکه بی‌سیم توسط سوییچ سخت‌افزاری غیر فعال شده" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "شبکه‌های بیشتر" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "شبکه‌های بی‌سیم در دسترس است" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "برای ارتباط به یک شبکه بی‌سیم از منوی شبکه استفاده کنید" -#: ../src/applet-device-wifi.c:1085 -#: ../src/applet.c:906 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "این پیغام را دیگر نمایش نده" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "شما در حال حاظر به شبکه «%s» متصل شده‌اید." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "درحال آماده‌سازی ارتباط شبکه بی‌سیم «%s»..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "درحال پیکربندی ارتباط شبکه بی‌سیم «%s»..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "شبکه بی‌سیم «%s» به تایید هویت نیاز دارد..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "درحال درخواست یک آدرس شبکه بی‌سیم برای «%s»..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "ارتباط با شبکه بی‌سیم «%s» فعال شد: %s (٪%d)" +msgstr "ارتباط با شبکه بی‌سیم «%s» فعال شد: %s (٪%Id)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "شبکه بی‌سیم «%s» فعال شد" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "فعال‌سازی اتصال شکست خورد" + +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +msgid "Unknown error" +msgstr "خطا ناشناس" + +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 +msgid "Connection failure" +msgstr "اتصال شکست خورد" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "اضافه کردن اتصال جدید شکست خورد" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -486,9 +543,9 @@ msgstr "خطا در هنگام نمایش اطلاعات اتصال:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -496,204 +553,195 @@ msgid "Dynamic WEP" msgstr "وپ پویا" -#: ../src/applet-dialogs.c:113 -#: ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "وپ" -#: ../src/applet-dialogs.c:252 -#: ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "هیچکدام" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-dialogs.c:277 #, c-format -#| msgid "1 (Default)" msgid "%s (default)" msgstr "%s (پیش‌فرض)" -#: ../src/applet-dialogs.c:347 -#: ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%Iu مگابایت/ثانیه" -#: ../src/applet-dialogs.c:349 -#: ../src/applet-dialogs.c:487 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "ناشناس" -#: ../src/applet-dialogs.c:362 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%Id دسی‌بل" -#: ../src/applet-dialogs.c:364 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "ناشناخته" -#: ../src/applet-dialogs.c:376 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "ناشناخته" -#: ../src/applet-dialogs.c:411 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "اترنت (%s)" -#: ../src/applet-dialogs.c:414 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:421 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:423 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:427 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "وایمکس (%s)" #. --- General --- -#: ../src/applet-dialogs.c:433 -#: ../src/applet-dialogs.c:792 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "عمومی" -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "واسط:" -#: ../src/applet-dialogs.c:453 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "آدرس سخت‌افزار:" #. Driver -#: ../src/applet-dialogs.c:461 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "راه انداز:" -#: ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "سرعت:" -#: ../src/applet-dialogs.c:500 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "امنیت: " -#: ../src/applet-dialogs.c:513 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:526 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:543 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:554 -#: ../src/applet-dialogs.c:661 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "آدرس آی‌پی:‌" -#: ../src/applet-dialogs.c:556 -#: ../src/applet-dialogs.c:572 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "ناشناس" -#: ../src/applet-dialogs.c:570 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "آدرس انتشار:" #. Prefix -#: ../src/applet-dialogs.c:579 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "نقاب زیرشبکه" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "ناشناخته" -#: ../src/applet-dialogs.c:589 -#: ../src/applet-dialogs.c:676 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "مسیر پیش‌فرض:" -#: ../src/applet-dialogs.c:601 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "دی‌ان‌اس اصلی:" -#: ../src/applet-dialogs.c:610 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "دی‌ان‌اس دوم:" -#: ../src/applet-dialogs.c:620 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "دی‌ان‌اس سوم:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:635 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:644 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "رد شد" -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "نوع وی‌پی‌ان:" -#: ../src/applet-dialogs.c:804 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "دروازه وی‌پی‌ان:" -#: ../src/applet-dialogs.c:810 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "نام کاربری وی‌پی‌ان:" -#: ../src/applet-dialogs.c:816 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "نشان وی‌پی‌ان:" -#: ../src/applet-dialogs.c:822 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "ارتباط پایه:" -#: ../src/applet-dialogs.c:824 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "ناشناس" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "هیچ اتصال فعالی پیدا نشد!" -#: ../src/applet-dialogs.c:940 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -703,86 +751,110 @@ "حق رونوشت © ۲۰۰۵-۲۰۰۸ شرکت نُوِل. \n" "و بسیاری از مشارکت‌کنندگان و مترجمان دیگر" -#: ../src/applet-dialogs.c:943 -msgid "Notification area applet for managing your network devices and connections." +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." msgstr "برنامک ناحیه اعلان جهت مدیریت دستگاه‌ها و اتصال‌های شبکه." -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "پایگاه وب مدیر شبکه" -#: ../src/applet-dialogs.c:960 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "منابع از دست رفته" -#: ../src/applet-dialogs.c:985 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "کلمه عبور شبکه پهن‌باند تلفن همراه" -#: ../src/applet-dialogs.c:994 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "برای اتصال با «%s» به کلمه عبور نیاز دارید." -#: ../src/applet-dialogs.c:1013 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "گذرواژه:" -#: ../src/applet.c:995 +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "اضافه/فعال کردن اتصال شکست خورد" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "قطع ارتباط دستگاه شکست خورد" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "شکست قطع ارتباط" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "فعال‌سازی اتصال شکست خورد" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" -"The VPN connection '%s' failed because the network connection was interrupted." +"The VPN connection '%s' failed because the network connection was " +"interrupted." msgstr "" "\n" "اتصال به شبکه خصوصی مجازی «%s» شکست خورد، چون اتصال شبکه قطع شده است." -#: ../src/applet.c:998 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service stopped unexpectedly." msgstr "" "\n" -"اتصال شبکه خصوصی مجازی «%s» شکست خورد، چون سرویس شبکه خصوصی مجازی به طور غیر منتظره متوقف شد." +"اتصال شبکه خصوصی مجازی «%s» شکست خورد، چون سرویس شبکه خصوصی مجازی به طور غیر " +"منتظره متوقف شد." -#: ../src/applet.c:1001 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" -"The VPN connection '%s' failed because the VPN service returned invalid configuration." +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." msgstr "" "\n" -"اتصال به شبکه خصوصی مجازی «%s» شکست خورد، چون سرویس شبکه خصوصی مجازی تنظیمات اشتباهی برگردانده است." +"اتصال به شبکه خصوصی مجازی «%s» شکست خورد، چون سرویس شبکه خصوصی مجازی تنظیمات " +"اشتباهی برگردانده است." -#: ../src/applet.c:1004 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the connection attempt timed out." msgstr "" "\n" -"اتصال به شبکه خصوصی مجازی «%s» شکست خورد، چون زمان تلاش برای برقراری ارتباط به پایان رسیده است." +"اتصال به شبکه خصوصی مجازی «%s» شکست خورد، چون زمان تلاش برای برقراری ارتباط " +"به پایان رسیده است." -#: ../src/applet.c:1007 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service did not start in time." msgstr "" "\n" -"اتصال به شبکه خصوصی مجازی «%s» شکست خورد، چون سرویس شبکه خصوصی مجازی به موقع اجرا نشد." +"اتصال به شبکه خصوصی مجازی «%s» شکست خورد، چون سرویس شبکه خصوصی مجازی به موقع " +"اجرا نشد." -#: ../src/applet.c:1010 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service failed to start." msgstr "" "\n" -"اتصال به شبکه خصوصی مجازی «%s» شکست خورد، چون اجرا سرویس شبکه خصوصی مجازی شکست خورد." +"اتصال به شبکه خصوصی مجازی «%s» شکست خورد، چون اجرا سرویس شبکه خصوصی مجازی " +"شکست خورد." -#: ../src/applet.c:1013 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -791,7 +863,7 @@ "\n" "اتصال به شبکه خصوصی مجازی «%s» شکست خورد، چون رمز درستی وجود ندارد." -#: ../src/applet.c:1016 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -800,7 +872,7 @@ "\n" "اتصال به شبکه خصوصی مجازی «%s» شکست خورد، چون رمز استباه است." -#: ../src/applet.c:1023 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -809,16 +881,17 @@ "\n" "اتصال شبکه خصوصی مجازی «%s» شکست خورد." -#: ../src/applet.c:1041 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" -"The VPN connection '%s' disconnected because the network connection was interrupted." +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." msgstr "" "\n" "اتصال به شبکه وی‌پی‌ان «%s» شکست خورد، چون اتصال شبکه قطع شده است." -#: ../src/applet.c:1044 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -827,7 +900,7 @@ "\n" "اتصال شبکه مجازی خصوصی «%s» بدلیل توقف سرویس شبکه مجازی خصوصی، قطع شد." -#: ../src/applet.c:1050 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -836,17 +909,30 @@ "\n" "اتصال شبکه خصوصی مجازی «%s» شکست خورد." -#: ../src/applet.c:1084 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"اتصال وی‌پی‌ان موفقیت‌آمیز بود.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "اتصال وی‌پی‌ان موفقیت‌آمیز بود.\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "پیام ورودی به شبکه مجازی خصوصی" -#: ../src/applet.c:1090 -#: ../src/applet.c:1098 -#: ../src/applet.c:1148 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "اتصال شبکه خصوصی مجازی شکست خورد" -#: ../src/applet.c:1155 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -855,11 +941,12 @@ "%s" msgstr "" "\n" -"اتصال شبکه مجازی خصوصی «%s» شکست خورد، بدلیل اینکه اجرا سرویس شبکه مجازی خصوصی شکست خورد.\n" +"اتصال شبکه مجازی خصوصی «%s» شکست خورد، بدلیل اینکه اجرا سرویس شبکه مجازی " +"خصوصی شکست خورد.\n" "\n" "%s" -#: ../src/applet.c:1158 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -872,140 +959,139 @@ "\n" "%s" -#: ../src/applet.c:1478 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "دستگاه آماده نیست (میان‌افراز وجود ندارد)" -#: ../src/applet.c:1480 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "دستگاه آماده نیست" -#: ../src/applet.c:1506 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "ارتباط قطع شده" -#: ../src/applet.c:1520 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "دستگاه مدیریت نشده" -#: ../src/applet.c:1564 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "هیچ دستگاه شبکه‌ای موجود نیست" -#: ../src/applet.c:1652 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "اتصال‌های شبکه‌های اختصاصی _مجازی (VPN)" -#: ../src/applet.c:1709 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "_پیکربندی شبکه خصوصی مجازی" -#: ../src/applet.c:1713 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "_قطع ارتباط شبکه خصوصی مجازی" -#: ../src/applet.c:1811 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "مدیر شبکه در حال اجرا نیست..." -#: ../src/applet.c:1816 -#: ../src/applet.c:2609 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "شبکه غیر فعال شد" #. 'Enable Networking' item -#: ../src/applet.c:2037 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "فعال‌سازی _شبکه" #. 'Enable Wireless' item -#: ../src/applet.c:2046 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "فعال‌سازی _بی‌سیم" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "فعال‌سازی پهن‌باند تلفن _همراه" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "فعال سازی پهن‌باند تلفن همراه _وایمکسی" #. Toggle notifications item -#: ../src/applet.c:2075 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "فعال سازی ا_علان‌ها" #. 'Connection Information' item -#: ../src/applet.c:2086 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "_اطلاعات اتصال" #. 'Edit Connections...' item -#: ../src/applet.c:2096 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "ویرایش ارتباط‌ها..." #. Help item -#: ../src/applet.c:2110 +#: ../src/applet.c:2124 msgid "_Help" msgstr "_راهنما" #. About item -#: ../src/applet.c:2119 +#: ../src/applet.c:2133 msgid "_About" msgstr "_درباره" -#: ../src/applet.c:2296 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "ارتباط قطع شد" -#: ../src/applet.c:2297 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "اتصال شبکه قطع شده است." -#: ../src/applet.c:2478 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "آماده‌سازی ارتباط شبکه «%s»..." -#: ../src/applet.c:2481 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "تصدیق هویت کاربر جهت اتصال به «%s» مورد نیاز است..." -#: ../src/applet.c:2487 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "ارتباط شبکه «%s» فعال شد" -#: ../src/applet.c:2565 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "درحال شروع ارتباط شبکه خصوصی مجازی «%s»..." -#: ../src/applet.c:2568 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "برای ارتباط شبکه خصوصی مجازی «%s» به تصدیق هویت نیاز است..." -#: ../src/applet.c:2571 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "درحال درخواست یک آدرس شبکه اختصاصی شخصی برای «%s»..." -#: ../src/applet.c:2574 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "ارتباط شبکه خصوصی مجازی «%s» فعال شد" -#: ../src/applet.c:2613 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "هیچ اتصال شبکه وجود ندارد" -#: ../src/applet.c:3263 +#: ../src/applet.c:3336 msgid "NetworkManager Applet" msgstr "برنامک مدیریت شبکه" @@ -1025,13 +1111,11 @@ msgid "Active Network Connections" msgstr "اتصال‌های فعال شبکه" -#: ../src/wired-8021x.ui.h:1 -#: ../src/wired-dialog.c:104 +#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 msgid "Wired 802.1X authentication" msgstr "تصدیق هویت ۸۰۲.۱x کابلی" -#: ../src/wired-8021x.ui.h:2 -#: ../src/libnm-gtk/wifi.ui.h:3 +#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 msgid "_Network name:" msgstr "نام _شبکه:" @@ -1039,7 +1123,7 @@ msgid "automatic" msgstr "خودکار" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "بروزرسانی رمز اتصال‌ها به دلیل یک خطای ناشناس شکست خورد." @@ -1047,8 +1131,12 @@ #: ../src/connection-editor/ce-ip6-routes.ui.h:1 #: ../src/connection-editor/ce-page-ip4.ui.h:8 #: ../src/connection-editor/ce-page-ip6.ui.h:8 -msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." -msgstr "آدرس‌های آی‌پی شما را بر روی شبکه مشخص میکنند. برای اضافه کردن یک آدرس آی‌پی، بر روی دکمه‌ی «افزودن» کلیک کنید." +msgid "" +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." +msgstr "" +"آدرس‌های آی‌پی شما را بر روی شبکه مشخص میکنند. برای اضافه کردن یک آدرس آی‌پی، " +"بر روی دکمه‌ی «افزودن» کلیک کنید." #: ../src/connection-editor/ce-ip4-routes.ui.h:2 #: ../src/connection-editor/ce-ip6-routes.ui.h:2 @@ -1057,13 +1145,14 @@ #: ../src/connection-editor/ce-ip4-routes.ui.h:3 #: ../src/connection-editor/ce-ip6-routes.ui.h:3 -#| msgid "Use this c_onnection only for resources on its network" msgid "_Use this connection only for resources on its network" msgstr "_استفاده از این ا_تصال تنها برای منابع‌ش بر روی این شبکه" #: ../src/connection-editor/ce-ip4-routes.ui.h:4 #: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "If enabled, this connection will never be used as the default network connection." +msgid "" +"If enabled, this connection will never be used as the default network " +"connection." msgstr "اگر فعال باشد، این اتصال هیچ‌وقت به عنوان اتصال شبکه پیش‌فرض نخواهد بود." #: ../src/connection-editor/ce-page-dsl.ui.h:1 @@ -1140,13 +1229,23 @@ msgstr "آدرس‌ها" #: ../src/connection-editor/ce-page-ip4.ui.h:9 -msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." -msgstr "شناساگرِ کارگیرِ DHCP به مدیر شبکه این امکان را می‌دهد تا پیکربندی رایانه شما را سفارشی کند. اگر تمایل دارید که از شناساگرِ کارگیرِ DHCP استفاده کنید، آن را اینجا وارد کنید." +msgid "" +"The DHCP client identifier allows the network administrator to customize " +"your computer's configuration. If you wish to use a DHCP client identifier, " +"enter it here." +msgstr "" +"شناساگرِ کارگیرِ DHCP به مدیر شبکه این امکان را می‌دهد تا پیکربندی رایانه شما " +"را سفارشی کند. اگر تمایل دارید که از شناساگرِ کارگیرِ DHCP استفاده کنید، آن " +"را اینجا وارد کنید." #: ../src/connection-editor/ce-page-ip4.ui.h:10 #: ../src/connection-editor/ce-page-ip6.ui.h:9 -msgid "Domains used when resolving host names. Use commas to separate multiple domains." -msgstr "دامنه‌های استفاده شده هنگام تحلیل نام میزبان. برای جدا کردن چند دامنه از کاما استفاده کنید." +msgid "" +"Domains used when resolving host names. Use commas to separate multiple " +"domains." +msgstr "" +"دامنه‌های استفاده شده هنگام تحلیل نام میزبان. برای جدا کردن چند دامنه از کاما " +"استفاده کنید." #: ../src/connection-editor/ce-page-ip4.ui.h:11 msgid "D_HCP client ID:" @@ -1154,28 +1253,38 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 -#| msgid "_Search domains:" +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "_جستجوی دامنه‌ها:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "کارگزارهای _دی‌ان‌اس:" #: ../src/connection-editor/ce-page-ip4.ui.h:14 #: ../src/connection-editor/ce-page-ip6.ui.h:12 -msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." -msgstr "آدرس‌های آی‌پی کارگزارهای نام دامنه استفاده شده جهت تشخصی نام میزبان‌ها. از کاما برای جدا کردن آدرس‌های کارگزارهای نام دامنه استفاده کنید." +msgid "" +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." +msgstr "" +"آدرس‌های آی‌پی کارگزارهای نام دامنه استفاده شده جهت تشخصی نام میزبان‌ها. از " +"کاما برای جدا کردن آدرس‌های کارگزارهای نام دامنه استفاده کنید." #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#| msgid "Require IPv4 addressing for this connection to complete" msgid "Require IPv_4 addressing for this connection to complete" msgstr "به آدرس‌دهی آی‌پی ن_سخه ۴ برای تکمیل این اتصال نیاز است" #: ../src/connection-editor/ce-page-ip4.ui.h:16 -msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "در هنگام اتصال به شبکه‌هایی با قابلیت IPv6، این اجازه را می‌دهد که در صورت شکست خوردن پیکربندی‌های IPv4 و موفقیت پیکربندی‌های IPv6، اتصال برقرار شود." +msgid "" +"When connecting to IPv6-capable networks, allows the connection to complete " +"if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "" +"در هنگام اتصال به شبکه‌هایی با قابلیت IPv6، این اجازه را می‌دهد که در صورت " +"شکست خوردن پیکربندی‌های IPv4 و موفقیت پیکربندی‌های IPv6، اتصال برقرار شود." #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 @@ -1183,13 +1292,16 @@ msgstr "_مسیریاب‌ها..." #: ../src/connection-editor/ce-page-ip6.ui.h:13 -#| msgid "Require IPv6 addressing for this connection to complete" msgid "Require IPv_6 addressing for this connection to complete" msgstr "به آدرس‌دهی آی‌پی _نسخه ۶ برای تکمیل این اتصال نیاز است" #: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds." -msgstr "در هنگام اتصال به شبکه‌هایی با قابلیت IPv4، این اجازه را می‌دهد که در صورت شکست خوردن پیکربندی‌های IPv6 و موفقیت پیکربندی‌های IPv4، اتصال برقرار شود." +msgid "" +"When connecting to IPv4-capable networks, allows the connection to complete " +"if IPv6 configuration fails but IPv4 configuration succeeds." +msgstr "" +"در هنگام اتصال به شبکه‌هایی با قابلیت IPv4، این اجازه را می‌دهد که در صورت " +"شکست خوردن پیکربندی‌های IPv6 و موفقیت پیکربندی‌های IPv4، اتصال برقرار شود." #: ../src/connection-editor/ce-page-mobile.ui.h:1 msgid "Any" @@ -1241,12 +1353,10 @@ msgstr "تغییر..." #: ../src/connection-editor/ce-page-mobile.ui.h:15 -#| msgid "PI_N:" msgid "P_IN:" msgstr "_پین:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#| msgid "Allow roaming if home network is not available" msgid "Allow _roaming if home network is not available" msgstr "چنانچه شبکه خانگی موجود نبود اجازه‌ی _رومینگ بده" @@ -1357,18 +1467,22 @@ #: ../src/connection-editor/ce-page-wired.ui.h:15 #: ../src/connection-editor/ce-page-wireless.ui.h:10 -#| msgid "_Cloned MAC address:" msgid "C_loned MAC address:" msgstr "آدرس مک _کلون شده:" #: ../src/connection-editor/ce-page-wired.ui.h:16 #: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "آدرس MAC وارد شده در اینجا به عنوان آدرسِ سخت‌افزاری برای دستگاه شبکه‌ای که این اتصال بر روی آن فعال شده است استفاده می‌گردد. این امکان بعنوان MAC cloning یا spoofing شناخته می‌شود. مثال: 00:11:22:33:44:55" +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"آدرس MAC وارد شده در اینجا به عنوان آدرسِ سخت‌افزاری برای دستگاه شبکه‌ای که این " +"اتصال بر روی آن فعال شده است استفاده می‌گردد. این امکان بعنوان MAC cloning " +"یا spoofing شناخته می‌شود. مثال: 00:11:22:33:44:55" #: ../src/connection-editor/ce-page-wired.ui.h:17 #: ../src/connection-editor/ce-page-wireless.ui.h:7 -#| msgid "MT_U:" msgid "_MTU:" msgstr "_MTU:" @@ -1410,8 +1524,12 @@ msgstr "_نرخ:" #: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "This option locks this connection to the wireless access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "این گزینه اتصال به نقطه دسترسی بی‌سیم (AP) مشخص شده توسط BSSID وارد شده را قفل می‌کند. نمونه: 00:11:22:33:44:55" +msgid "" +"This option locks this connection to the wireless access point (AP) " +"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "" +"این گزینه اتصال به نقطه دسترسی بی‌سیم (AP) مشخص شده توسط BSSID وارد شده را " +"قفل می‌کند. نمونه: 00:11:22:33:44:55" #: ../src/connection-editor/ce-page-wireless.ui.h:16 msgid "_BSSID:" @@ -1430,12 +1548,10 @@ msgstr "_نوع:" #: ../src/connection-editor/ce-page-wireless.ui.h:20 -#| msgid "_SSID:" msgid "SS_ID:" msgstr "SS_ID:" #: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -#| msgid "Security:" msgid "S_ecurity:" msgstr "_امنیت: " @@ -1484,11 +1600,14 @@ msgstr "پروتکل تصدیق هویت مایکروسافت Challenge Handshake نسخه ۲" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." -msgstr "در بیشتر موارد، کارگزارهای ارائه‌دهندگان از تمام روش‌های تصدیق هویت پشتیبانی می‌کنند. اگر اتصال شکست خورد، غیرفعال کردن تعدادی از روش‌ها را امتحان کنید." +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "" +"در بیشتر موارد، کارگزارهای ارائه‌دهندگان از تمام روش‌های تصدیق هویت پشتیبانی " +"می‌کنند. اگر اتصال شکست خورد، غیرفعال کردن تعدادی از روش‌ها را امتحان کنید." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 -#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 #: ../src/wireless-security/eap-method-fast.ui.h:1 #: ../src/wireless-security/eap-method-peap.ui.h:1 #: ../src/wireless-security/eap-method-ttls.ui.h:1 @@ -1502,8 +1621,14 @@ msgstr "نوع شبکه خصوصی مجازی (VPN) را انتخاب کنید" #: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." -msgstr "نوع شبکه خصوصی مجازی که می‌خواهید برای اتصال جدید استفاده کنید را انتخاب کنید. اگر نوع اتصالی که می خواهید بسازید در لیست وجود ندارد، ممکن است افزونه صحیح شبکه خصوصی مجازی را نصب ندارید." +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"نوع شبکه خصوصی مجازی که می‌خواهید برای اتصال جدید استفاده کنید را انتخاب " +"کنید. اگر نوع اتصالی که می خواهید بسازید در لیست وجود ندارد، ممکن است افزونه " +"صحیح شبکه خصوصی مجازی را نصب ندارید." #: ../src/connection-editor/ce-vpn-wizard.ui.h:4 msgid "Create…" @@ -1511,20 +1636,20 @@ #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "آدرس" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "نقاب شبکه" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "دروازه" @@ -1534,13 +1659,13 @@ msgstr "متری" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "پیشوند" #: ../src/connection-editor/page-dsl.c:139 #: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1548,7 +1673,7 @@ msgid "Could not load DSL user interface." msgstr "امکان بارگزاری واسط کاربری DSL وجود ندارد." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "اتصال دی‌اس‌ال %Id" @@ -1600,16 +1725,28 @@ msgid "Disabled" msgstr "غیر فعال شد" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +#| msgid "_DNS servers:" +msgid "Additional _DNS servers:" +msgstr "کارگزارهای _دی‌ان‌اس اضافی:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +#| msgid "S_earch domains:" +msgid "Additional s_earch domains:" +msgstr "دامنه‌های _جست‌وجو اضافی:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "ویرایش مسیرهای آی‌پی نسخه ۴ برای %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "تنظیمات آی‌پی نسخه ۴" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "نمی‌توان واسط کاربری آی‌پی نسخه ۴ را بارگزاری کرد." @@ -1618,7 +1755,7 @@ msgstr "خودکار، فقط آدرس‌ها" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "رد کردن" @@ -1626,16 +1763,16 @@ msgid "Automatic, DHCP only" msgstr "خودکار، فقط DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "ویرایش مسیرهای آی‌پی نسخه ۶ برای %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "تنظیمات آی‌پی نسخه ۶" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "امکان بارگزاری آی‌پی ورژن ۶ وجود ندارد." @@ -1653,12 +1790,18 @@ msgstr "نوع ارائه‌دهنده پهن‌باند همراه را انتخاب کنید" #: ../src/connection-editor/page-mobile.c:674 -msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." -msgstr "فناوری که ارائه‌دهنده شبکه پهن‌باند تلفن همراه استفاده می‌کند را انتخاب کنید. اگر شما مطمئن نیستید، با ارائه‌دهنده خود تماس بگیرید." +msgid "" +"Select the technology your mobile broadband provider uses. If you are " +"unsure, ask your provider." +msgstr "" +"فناوری که ارائه‌دهنده شبکه پهن‌باند تلفن همراه استفاده می‌کند را انتخاب کنید. " +"اگر شما مطمئن نیستید، با ارائه‌دهنده خود تماس بگیرید." #: ../src/connection-editor/page-mobile.c:679 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "ارائه‌دهنده من از فناوری _GSM-based استفاده می‌کند (مانند GPRS, EDGE, UMTS, HSDPA)" +msgstr "" +"ارائه‌دهنده من از فناوری _GSM-based استفاده می‌کند (مانند GPRS, EDGE, UMTS, " +"HSDPA)" #: ../src/connection-editor/page-mobile.c:686 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" @@ -1710,7 +1853,7 @@ #: ../src/connection-editor/page-vpn.c:109 #: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "شبکه خصوصی مجازی (VPN)" @@ -1724,19 +1867,23 @@ msgstr "افزونه‌های سرویس شبکه خصوصی مجازی (VPN) برای «%s» پیدا نشد." #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "ارتباط شبکه خصوصی مجازی %Id" #: ../src/connection-editor/page-wired.c:89 #: ../src/connection-editor/page-wireless.c:94 -msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "این گزینه اتصال به شبکه دستگاه مشخص شده توسط آدرس MAC همیشگی وارد شده در اینجا را قفل میکند. نمونه: 00:11:22:33:44:55" +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"این گزینه اتصال به شبکه دستگاه مشخص شده توسط آدرس MAC همیشگی وارد شده در " +"اینجا را قفل میکند. نمونه: 00:11:22:33:44:55" #: ../src/connection-editor/page-wired.c:272 #: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "سیمی" @@ -1749,16 +1896,15 @@ msgid "Wired connection %d" msgstr "اتصال سیمی %Id" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "امنیت 802.1x" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "امکان بارگزاری واسط کاربری امنیتی کابلی وجود ندارد." -#: ../src/connection-editor/page-wired-security.c:136 -#| msgid "Use 802.1X security for this connection" +#: ../src/connection-editor/page-wired-security.c:139 msgid "Use 802.1_X security for this connection" msgstr "از امنیت 802.1_X برای این ارتباط استفاده شود" @@ -1776,7 +1922,7 @@ #: ../src/connection-editor/page-wireless.c:457 #: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "بی‌سیم" @@ -1789,75 +1935,80 @@ msgid "Wireless connection %d" msgstr "شبکه بی‌سیم %Id" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "کلید وپ ۴۰/۱۲۸ بیتی (Hex یا ASCII)" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "عبارت عبور وپ ۱۲۸ بیتی" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "وپ پویا (x02.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 شخصی" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA & WPA2 Enterprise" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "نمی‌توان واسط کاربری وای‌فای را بارگیری کرد؛ تنظیمات وای‌فای وجود ندارد." -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "امنیت بی‌سیم" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "نمی‌توان واسط کاربری امنیت وای‌فای را بارگیری کرد." -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "ویرایش %s" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "ویرایش ارتباط بی‌نام" -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "The connection editor could not find some required resources (the .ui file was not found)." -msgstr "ویرایشگر اتصال نتوانست تعدادی از منابع لازم را پیدا کند ( پرونده ui پیدا نشد)." +#: ../src/connection-editor/nm-connection-editor.c:292 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"ویرایشگر اتصال نتوانست تعدادی از منابع لازم را پیدا کند ( پرونده ui پیدا " +"نشد)." -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "خطا در ساخت محاوره ویرایشگر اتصال." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "_ذخیره" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "ذخیره تمام تغییرات اعمال شده بر روی این اتصال." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "_ذخیره..." -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." -msgstr "برای ذخیره این اتصال برای تمام کاربرها در این ماشین تصدیق هویت لازم است." +msgstr "" +"برای ذخیره این اتصال برای تمام کاربرها در این ماشین تصدیق هویت لازم است." #: ../src/connection-editor/nm-connection-editor.ui.h:5 msgid "_Import" @@ -1876,7 +2027,7 @@ msgstr "اتصال _خودکار" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "در دسترس برای همه کاربرها" #: ../src/connection-editor/nm-connection-list.c:216 @@ -1949,9 +2100,12 @@ #: ../src/connection-editor/nm-connection-list.c:546 #: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "The connection editor dialog could not be initialized due to an unknown error." -msgstr "به دلیل یک خطا ناشناس، محاوره ویرایش اتصال نمی‌تواند مقدار دهی اولیه شود." +#: ../src/connection-editor/nm-connection-list.c:885 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"به دلیل یک خطا ناشناس، محاوره ویرایش اتصال نمی‌تواند مقدار دهی اولیه شود." #: ../src/connection-editor/nm-connection-list.c:557 msgid "Could not create new connection" @@ -1974,12 +2128,12 @@ msgid "Are you sure you wish to delete the connection %s?" msgstr "آیا مطمئن هستید که می خواهید اتصال %s را پاک کنید؟" -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "نمی‌توان ارتباط شبکه خصوصی مجازی (VPN) را وارد کرد" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -1989,82 +2143,85 @@ "\n" "خطا: نوع سرویس شبکه خصوصی مجازی مشخص نیست." -#: ../src/connection-editor/nm-connection-list.c:945 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "ارتباط وارد شده قابل ویرایش نیست" -#: ../src/connection-editor/nm-connection-list.c:1126 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "نام" -#: ../src/connection-editor/nm-connection-list.c:1138 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "آخرین بار استفاده" -#: ../src/connection-editor/nm-connection-list.c:1264 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." -msgstr "افزونه شبکه خصوصی مجازی در دسترس نیست. برای فعال شدن این دکمه لطفا یک افزونه نصب کنید." +msgstr "" +"افزونه شبکه خصوصی مجازی در دسترس نیست. برای فعال شدن این دکمه لطفا یک افزونه " +"نصب کنید." -#: ../src/connection-editor/nm-connection-list.c:1275 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "_ویرایش" -#: ../src/connection-editor/nm-connection-list.c:1276 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "ویرایش اتصال انتخاب شده" -#: ../src/connection-editor/nm-connection-list.c:1277 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "_ویرایش..." -#: ../src/connection-editor/nm-connection-list.c:1278 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "برای ویرایش اتصال انتخاب شده تصدیق هویت کنید" -#: ../src/connection-editor/nm-connection-list.c:1293 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "_حذف" -#: ../src/connection-editor/nm-connection-list.c:1294 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "حذف اتصال انتخاب شده" -#: ../src/connection-editor/nm-connection-list.c:1295 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "_حذف..." -#: ../src/connection-editor/nm-connection-list.c:1296 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "برای حذف اتصال انتخاب شده تصدیق هویت کنید" -#: ../src/connection-editor/nm-connection-list.c:1575 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "خطا در هنگام ساخت ارتباط" -#: ../src/connection-editor/nm-connection-list.c:1576 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "نمی‌دانم چه طور اتصال‌های «%s» را بسازم" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "خطا در هنگام ویرایش ارتباط" -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "نمی‌دانم چه طور اتصال‌های «%s» را ویرایش کند" -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "ارتباطی با UUIDی «%s» یافت نشد" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" -"The file '%s' could not be read or does not contain recognized VPN connection information\n" +"The file '%s' could not be read or does not contain recognized VPN " +"connection information\n" "\n" "Error: %s." msgstr "" @@ -2072,29 +2229,31 @@ "\n" "خطا: %s" -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "پرونده را برای وارد کردن انتخاب کنید" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "یک پرونده به نام «%s» درحال حاظر وجود دارد." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "_جای‌گزینی" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" -msgstr "آیا می‌خواهید %s را با شبکه مجازی خصوصی (VPN) که درحال ذخیره کردن آن هستید جای‌گزین کنید؟" +msgstr "" +"آیا می‌خواهید %s را با شبکه مجازی خصوصی (VPN) که درحال ذخیره کردن آن هستید " +"جای‌گزین کنید؟" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "نمی‌توان ارتباط شبکه خصوصی مجازی را صادر کرد" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2105,232 +2264,256 @@ "\n" "خطا: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "صادر کردن اتصال وی‌پی‌ان..." -#: ../src/gnome-bluetooth/bt-widget.c:220 +#: ../src/gnome-bluetooth/bt-widget.c:321 #, c-format -msgid "Failed to create PAN connection: %s" -msgstr "ساخت اتصال PAN شکست خورد: %s" - -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "تلفن شما هم اکنون آماده استفاده است!" +#| msgid "" +#| "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "پیکربندی بلوتوث امکان‌پذیر نیست (اتصال به D-Bus شکست خورد: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s شبکه" +#| msgid "" +#| "Bluetooth configuration not possible (error finding NetworkManager: %s)." +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "پیکربندی بلوتوث امکان‌پذیر نیست (خطا در پیدا کردن مدیر شبکه: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "استفاده از تلفن همراه شما به عنوان یک دستگاه شبکه (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "دسترسی به اینترنت با استفاده از گوشی تلفن همراه خود (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "خطا: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "ساخت اتصال DUN شکست خورد: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "تلفن شما هم اکنون آماده استفاده است!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "جادوگر تلفن همراه لغو شد" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "نوع دستگاه تلفن ناشناس (GSM و CDMA نیست)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "نوع مودم ناشناخته است." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "اتصال به تلفن شکست خورد." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "ارتباط با تلفن به طور غیر منتظره‌ایی قطع شد." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "زمان تشخیص جزئیات گوشی به پایان رسید." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "تشخیص پیکربندی تلفن..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "نمی‌توان دستگاه بلوتوثی پیدا کرد." - -#: ../src/gnome-bluetooth/bt-widget.c:980 -msgid "The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection." -msgstr "قبل از برپاسازی ارتباط شبکه Dial-Up آداپتور پیشفرض بلوتوث باید فعال شود." +#: ../src/gnome-bluetooth/nma-bt-device.c:794 +msgid "" +"The default Bluetooth adapter must be enabled before setting up a Dial-Up-" +"Networking connection." +msgstr "" +"قبل از برپاسازی ارتباط شبکه Dial-Up آداپتور پیشفرض بلوتوث باید فعال شود." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "پیکربندی بلوتوث امکان‌پذیر نیست (اتصال به D-Bus شکست خورد: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "تنظیم بلوتوث امکان‌پذیر نیست (امکان ساخت پروکسی D-Bus وجود ندارد)." +msgid "Failed to create PAN connection: %s" +msgstr "ساخت اتصال PAN شکست خورد: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "پیکربندی بلوتوث امکان‌پذیر نیست (خطا در پیدا کردن مدیر شبکه: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "استفاده از تلفن همراه شما به عنوان یک دستگاه شبکه (PAN/NAP)" - -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "دسترسی به اینترنت با استفاده از گوشی تلفن همراه خود (DUN)" +msgid "%s Network" +msgstr "%s شبکه" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 -msgid "Your mobile broadband connection is configured with the following settings:" +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +msgid "" +"Your mobile broadband connection is configured with the following settings:" msgstr "شبکه پهن‌باند تلفن همراه شما با تنظیمات مقابل پیکربندی شده است:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:212 msgid "Your Device:" msgstr "دستگاه شما:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:223 msgid "Your Provider:" msgstr "ارئه‌دهنده شما:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:234 msgid "Your Plan:" msgstr "پلان شما:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 -msgid "A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose \"Network Connections\" from the System >> Preferences menu." -msgstr "هم‌اکنون یک اتصال به ارائه کننده پهن‌باند شما با تنظیماتی که انتخاب کرده‌اید ایجاد می‌شود. اگر ایجاد اتصال شکست خورد یا نمی‌توانید به منابع شبکه دسترسی پیدا کنید، تنظیمات خود را دوباره بررسی کنید. برای تغییر تنظیمات اتصال پهن‌باند تلفن همراه، «اتصال‌های شبکه» را از منوی سیستم >> ترجیحات انتخاب کنید." +#: ../src/libnm-gtk/nm-mobile-wizard.c:259 +msgid "" +"A connection will now be made to your mobile broadband provider using the " +"settings you selected. If the connection fails or you cannot access network " +"resources, double-check your settings. To modify your mobile broadband " +"connection settings, choose \"Network Connections\" from the System >> " +"Preferences menu." +msgstr "" +"هم‌اکنون یک اتصال به ارائه کننده پهن‌باند شما با تنظیماتی که انتخاب کرده‌اید " +"ایجاد می‌شود. اگر ایجاد اتصال شکست خورد یا نمی‌توانید به منابع شبکه دسترسی " +"پیدا کنید، تنظیمات خود را دوباره بررسی کنید. برای تغییر تنظیمات اتصال " +"پهن‌باند تلفن همراه، «اتصال‌های شبکه» را از منوی سیستم >> ترجیحات انتخاب کنید." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:271 msgid "Confirm Mobile Broadband Settings" msgstr "تایید تنظیمات شبکه پهن‌باند تلفن همراه" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:332 msgid "Unlisted" msgstr "فهرست نشده" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:487 msgid "_Select your plan:" msgstr "پلان خود را _انتخاب کنید" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:511 msgid "Selected plan _APN (Access Point Name):" msgstr "پلان انتخاب _شده APN (نام Access Point)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "" -"Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity.\n" +"Warning: Selecting an incorrect plan may result in billing issues for your " +"broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"هشدار: انتخاب پلان نادرست ممکن است در مسائل مربوط به صدور صورت حساب برای حساب پهن‌باند شما تاثیر بگذارد و یا از ارتباط جلوگیری کند.\n" +"هشدار: انتخاب پلان نادرست ممکن است در مسائل مربوط به صدور صورت حساب برای " +"حساب پهن‌باند شما تاثیر بگذارد و یا از ارتباط جلوگیری کند.\n" "\n" -"اگر شما از پلان خود مطمئن نیستید، از ارائه‌دهنده خود در مورد APN پلان خود بپرسید." +"اگر شما از پلان خود مطمئن نیستید، از ارائه‌دهنده خود در مورد APN پلان خود " +"بپرسید." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:542 msgid "Choose your Billing Plan" msgstr "پلان مالی خود را انتخاب کنید" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:590 msgid "My plan is not listed..." msgstr "پلان من در فهرست نیست..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:747 msgid "Select your provider from a _list:" msgstr "ارائه‌دهنده خود را از یک _فهرست انتخاب کنید:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:760 msgid "Provider" msgstr "ارائه‌دهنده" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:785 msgid "I can't find my provider and I wish to enter it _manually:" -msgstr "من نمی توانم ارائه‌دهنده خود را پیدا کنم و می خواهم به طور _دستی آن را وارد نمایم:" +msgstr "" +"من نمی توانم ارائه‌دهنده خود را پیدا کنم و می خواهم به طور _دستی آن را وارد " +"نمایم:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:796 msgid "Provider:" msgstr "ارئه دهنده:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:820 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "ارائه‌دهنده من از فناوری GSM استفاده می‌کند (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "ارائه‌دهنده من از فناوری CDMA استفاده می‌کند. (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:837 msgid "Choose your Provider" msgstr "ارائه‌دهنده خود را انتخاب کنید" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1088 msgid "Country or Region List:" msgstr "فهرست کشور یا منطقه:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "Country or region" msgstr "کشور یا منطقه" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1107 msgid "My country is not listed" msgstr "کشور من در فهرست نیست" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1153 msgid "Choose your Provider's Country or Region" msgstr "کشور یا منطقه ارائه‌دهنده خود را انتخاب کنید" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1207 msgid "Installed GSM device" msgstr "دستگاه GSM نصب شده" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1210 msgid "Installed CDMA device" msgstr "دستگاه CDMA نصب شده" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 -msgid "This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network." -msgstr "این دستیار کمک می‌کند تا شما به راحتی یک ارتباط باند پهن تلفن همراه را به عنوان تلفن همراه (3G) راه‌اندازی کنید." +#: ../src/libnm-gtk/nm-mobile-wizard.c:1382 +msgid "" +"This assistant helps you easily set up a mobile broadband connection to a " +"cellular (3G) network." +msgstr "" +"این دستیار کمک می‌کند تا شما به راحتی یک ارتباط باند پهن تلفن همراه را به " +"عنوان تلفن همراه (3G) راه‌اندازی کنید." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1387 msgid "You will need the following information:" msgstr "شما به اطلاعات زیر نیاز خواهید داشت:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1402 msgid "Your broadband provider's name" msgstr "نام ارائه‌دهنده شبکه پهن‌باند" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband billing plan name" msgstr "نام پلان مالی شبکه پهن‌باند" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(در بعضی موارد) هزینه‌ی استفاده از شبکه پهن‌باند APN (نام نقطه دسترسی)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1441 msgid "Create a connection for _this mobile broadband device:" msgstr "یک اتصال برای ا_ین شبکه پهن‌باند تلفن همراه بساز:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1456 msgid "Any device" msgstr "هر دستگاهی" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1469 msgid "Set up a Mobile Broadband Connection" msgstr "برپاسازی اتصال شبکه تلفن همراه پهن‌باند" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1633 msgid "New Mobile Broadband Connection" msgstr "اتصال جدید شبکه تلفن همراه پهن‌باند" @@ -2338,53 +2521,59 @@ msgid "New..." msgstr "جدید..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "_ساخت" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format -msgid "Passwords or encryption keys are required to access the wireless network '%s'." -msgstr "برای دسترسی به شبکه بی‌سیم «%s»، گذرواژه‌ها یا کلیدهای رمز نگاری شده نیاز است." +msgid "" +"Passwords or encryption keys are required to access the wireless network " +"'%s'." +msgstr "" +"برای دسترسی به شبکه بی‌سیم «%s»، گذرواژه‌ها یا کلیدهای رمز نگاری شده نیاز است." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "شبکه بی‌سیم به تصدیق هویت نیاز دارد" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "شبکه بی‌سیم به تصدیق هویت نیاز دارد" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "ساخت یک شبکه بی‌سیم جدید" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "شبکه بی‌سیم جدید" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "نام شبکه بی‌سیمی را که می خواهید بسازید وارد کنید." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "اتصال به شبکه بی‌سیم مخفی " -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "شبکه‌های بی‌سیم مخفی" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 -msgid "Enter the name and security details of the hidden wireless network you wish to connect to." -msgstr "نام و جزئیات امنیتی شبکه مخفی که می‌خواهید به آن متصل شوید را وارد کنید." +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +msgid "" +"Enter the name and security details of the hidden wireless network you wish " +"to connect to." +msgstr "" +"نام و جزئیات امنیتی شبکه مخفی که می‌خواهید به آن متصل شوید را وارد کنید." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "ا_منیت بی‌سیم:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "ا_رتباط:" #: ../src/libnm-gtk/wifi.ui.h:5 @@ -2396,12 +2585,20 @@ msgstr "کاربرد:" #: ../src/main.c:75 -msgid "This program is a component of NetworkManager (http://projects.gnome.org/NetworkManager)." -msgstr "این برنامه بخشی از برنامه مدیریت شبکه است (http://projects.gnome.org/NetworkManager)" +msgid "" +"This program is a component of NetworkManager (http://projects.gnome.org/" +"NetworkManager)." +msgstr "" +"این برنامه بخشی از برنامه مدیریت شبکه است (http://projects.gnome.org/" +"NetworkManager)" #: ../src/main.c:76 -msgid "It is not intended for command-line interaction but instead runs in the GNOME desktop environment." -msgstr "این برای خط فرمان تعامل کنند تهیه نشده است اما به جای آن در محیط میز کار گنوم اجرا می شود." +msgid "" +"It is not intended for command-line interaction but instead runs in the " +"GNOME desktop environment." +msgstr "" +"این برای خط فرمان تعامل کنند تهیه نشده است اما به جای آن در محیط میز کار " +"گنوم اجرا می شود." #: ../src/mb-menu-item.c:57 msgid "EVDO" @@ -2461,14 +2658,12 @@ msgid "registration denied" msgstr "اجازه ثبت داده نشد" -#: ../src/mb-menu-item.c:151 -#: ../src/mb-menu-item.c:157 +#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 #, c-format msgid "%s (%s roaming)" msgstr "%s (%s رومینگ)" -#: ../src/mb-menu-item.c:153 -#: ../src/mb-menu-item.c:159 +#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 #, c-format msgid "%s (roaming)" msgstr "%s (رومینگ)" @@ -2487,38 +2682,51 @@ msgid "Default" msgstr "پیش‌فرض" -#: ../src/wired-dialog.c:91 -#: ../src/wired-dialog.c:99 -msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." -msgstr "برنامه مدیریت شبکه نمی‌تواند تعدادی از منابع لازم را پیدا کند (پرونده ui پیدا نشد)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +#| msgid "Base Connection:" +msgid "%s connection" +msgstr "اتصال %s" + +#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"برنامه مدیریت شبکه نمی‌تواند تعدادی از منابع لازم را پیدا کند (پرونده ui پیدا " +"نشد)." -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "مجوز مجاز انتخاب نشده است" -#: ../src/wireless-security/eap-method.c:280 -msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue wireless networks. Would you like to choose a Certificate Authority certificate?" -msgstr "استفاده نکردن از گواهی سازمان (CA) می تواند نتیجه ارتباط ناامن با شبکه‌های بی‌سیم داشته باشد. آیا می خواهید از یک مجوز گواهی سازمان استفاده کنید؟" +#: ../src/wireless-security/eap-method.c:276 +msgid "" +"Not using a Certificate Authority (CA) certificate can result in connections " +"to insecure, rogue wireless networks. Would you like to choose a " +"Certificate Authority certificate?" +msgstr "" +"استفاده نکردن از گواهی سازمان (CA) می تواند نتیجه ارتباط ناامن با شبکه‌های " +"بی‌سیم داشته باشد. آیا می خواهید از یک مجوز گواهی سازمان استفاده کنید؟" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "مجوز CA انتخاب کنید" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "کلیدهای خصوصی DER, PEM, یا PKCS#12 ی(*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "گواهینامه‌های DER یا PEM شامل (*.der, *.pem, *.crt, *.cer)" #: ../src/wireless-security/eap-method-fast.ui.h:2 -#| msgid "Anony_mous identity:" msgid "Anonymous" msgstr "ناشناس" #: ../src/wireless-security/eap-method-fast.ui.h:3 -#| msgid "Authentication" msgid "Authenticated" msgstr "تصدیق هویت شد" @@ -2539,7 +2747,6 @@ #: ../src/wireless-security/eap-method-fast.ui.h:7 #: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 -#| msgid "I_nner authentication:" msgid "_Inner authentication:" msgstr "تصدیق هویت _درونی:" @@ -2565,7 +2772,7 @@ msgstr "تمام پرونده‌ها" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2590,7 +2797,6 @@ msgstr "_مجوز CA:" #: ../src/wireless-security/eap-method-peap.ui.h:8 -#| msgid "_PEAP version:" msgid "PEAP _version:" msgstr "ن_سخه PEAP:" @@ -2604,11 +2810,15 @@ #: ../src/wireless-security/eap-method-tls.c:249 msgid "" -"The selected private key does not appear to be protected by a password. This could allow your security credentials to be compromised. Please select a password-protected private key.\n" +"The selected private key does not appear to be protected by a password. " +"This could allow your security credentials to be compromised. Please select " +"a password-protected private key.\n" "\n" "(You can password-protect your private key with openssl)" msgstr "" -"کلید خصوصی انتخاب شده به نظر نمی‌رسد توسط یک رمز عبور حفاظت شود. این ممکن است اجازه دهد امنیت اعتبارنامه‌های خود را به خطر بیندازید. لطفا یک کلید خصوصی محافظت شده توسط کلمه عبور انتخاب کنید.\n" +"کلید خصوصی انتخاب شده به نظر نمی‌رسد توسط یک رمز عبور حفاظت شود. این ممکن است " +"اجازه دهد امنیت اعتبارنامه‌های خود را به خطر بیندازید. لطفا یک کلید خصوصی " +"محافظت شده توسط کلمه عبور انتخاب کنید.\n" "\n" "(شما می‌توانید به وسیله openssl کلید خصوصی خود را توسط گذرواژه محافظت کنید)" @@ -2648,26 +2858,25 @@ msgid "Yes" msgstr "بلی" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "TLS تونل شده" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "EAP محافظت شده (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 #: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 -#| msgid "_Authentication:" msgid "Au_thentication:" msgstr "_تصدیق هویت:" @@ -2707,6 +2916,12 @@ msgid "WEP inde_x:" msgstr "_نمایه وپ:" +#~ msgid "could not find the Bluetooth device." +#~ msgstr "نمی‌توان دستگاه بلوتوثی پیدا کرد." + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "تنظیم بلوتوث امکان‌پذیر نیست (امکان ساخت پروکسی D-Bus وجود ندارد)." + #~ msgid "_Security:" #~ msgstr "ا_منیت:" diff -Nru network-manager-applet-0.9.4.1/po/fi.po network-manager-applet-0.9.6.2+git201210311320.2620/po/fi.po --- network-manager-applet-0.9.4.1/po/fi.po 2012-03-23 14:14:18.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/fi.po 2012-10-31 13:20:57.000000000 +0000 @@ -1961,7 +1961,7 @@ msgstr "Yhdistä _automaattisesti" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Saatavilla kaikille käyttäjille" #: ../src/connection-editor/nm-connection-list.c:216 @@ -2505,11 +2505,11 @@ "Syötä yhdistettävän piilotetun langattoman verkon nimi ja salaustiedot." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Langaton tietoturva:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Yh_teys:" #: ../src/libnm-gtk/wifi.ui.h:5 diff -Nru network-manager-applet-0.9.4.1/po/fr.po network-manager-applet-0.9.6.2+git201210311320.2620/po/fr.po --- network-manager-applet-0.9.4.1/po/fr.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/fr.po 2012-10-31 13:20:57.000000000 +0000 @@ -16,8 +16,8 @@ "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-09 22:26+0000\n" -"PO-Revision-Date: 2012-03-09 23:58+0100\n" +"POT-Creation-Date: 2012-06-25 18:50+0000\n" +"PO-Revision-Date: 2012-07-08 12:24+0200\n" "Last-Translator: Bruno Brouard \n" "Language-Team: GNOME French TEAM \n" "MIME-Version: 1.0\n" @@ -33,72 +33,104 @@ msgid "Manage your network connections" msgstr "Gérer vos connexions réseau" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Connexions réseau" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Gérer et modifier les paramètres des connexions réseau" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Désactiver les notifications de connexion" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" -"Définir ce paramètre à vrai (TRUE) pour désactiver les notifications lors de " +"Définir ce paramètre à vrai (true) pour désactiver les notifications lors de " "la connexion à un réseau." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Désactiver les notifications de déconnexion" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "" -"Définir ce paramètre à vrai (TRUE) pour désactiver les notifications lors de " +"Définir ce paramètre à vrai (true) pour désactiver les notifications lors de " "la déconnexion d'un réseau." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Désactiver les notifications VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"Définir ce paramètre à vrai (true) pour désactiver les notifications lors de " +"la connexion ou déconnexion à un VPN." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Désactiver les notifications de disponibilité de réseaux sans fil" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " +"Set this to true to disable notifications when wireless networks are " "available." msgstr "" -"Définir ce paramètre à vrai (TRUE) pour désactiver les notifications lors de " +"Définir ce paramètre à vrai (true) pour désactiver les notifications lors de " "la disponibilité de réseaux sans fil." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Marque" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "Sert à déterminer si les paramètres doivent être migrés dans une nouvelle " "version." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Désactiver la création WiFi" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" -"Définir ce paramètre à vrai (TRUE) pour désactiver la création de réseau " +"Définir ce paramètre à vrai (true) pour désactiver la création de réseau " "adhoc lors de l'utilisation de l'applet." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Connexions réseau" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ignorer le certificat de CA" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Gérer et modifier les paramètres des connexions réseau" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Définir ce paramètre à vrai (true) pour désactiver les avertissements à propos " +"des certificats CA dans l'authentification EAP." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Définir ce paramètre à vrai (true) pour désactiver les avertissements à propos " +"des certificats CA dans la phase 2 de l'authentification EAP." #: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 #: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Disponible" @@ -111,7 +143,7 @@ #: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 #: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Connexion établie" @@ -141,7 +173,7 @@ #: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 #: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "Obtention d'une adresse réseau pour « %s »..." @@ -158,7 +190,7 @@ msgstr "CDMA" #: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Connexion mobile à large bande (%s)" @@ -166,7 +198,7 @@ #: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 #: ../src/connection-editor/page-mobile.c:379 #: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "Connexion mobile à large bande" @@ -335,7 +367,7 @@ msgstr "Réseau filaire" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "déconnecté" @@ -377,89 +409,107 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "_Se connecter à un réseau sans fil invisible..." -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "Créer un _nouveau réseau sans fil..." -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(aucun)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "Réseaux sans fil (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "Réseau sans fil (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Réseau sans fil" msgstr[1] "Réseaux sans fil" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "réseau sans fil désactivé" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "réseau sans fil désactivé par un commutateur matériel" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "Plus de réseaux" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "Réseaux sans fil disponibles" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "Utilisez le menu réseau pour vous connecter à un réseau sans fil" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "Ne plus m'avertir" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Vous êtes maintenant connecté au réseau sans fil « %s »." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "Préparation de la connexion au réseau sans fil « %s »..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "Configuration de la connexion au réseau sans fil « %s »..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "Authentification nécessaire pour le réseau sans fil « %s »..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "Obtention d'une adresse pour le réseau sans fil « %s »..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "Connexion au réseau sans fil « %s » active : %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "Connexion au réseau sans fil « %s » active" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "L'activation de la connexion a échoué" + +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +msgid "Unknown error" +msgstr "Erreur inconnue" + +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 +msgid "Connection failure" +msgstr "Échec de la connexion" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "L'ajout de la nouvelle connexion a échoué" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -486,9 +536,9 @@ msgstr "Erreur lors de l'affichage des informations de connexion :" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -496,195 +546,195 @@ msgid "Dynamic WEP" msgstr "WEP dynamique" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "Aucune" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-dialogs.c:277 #, c-format msgid "%s (default)" msgstr "%s (par défaut)" -#: ../src/applet-dialogs.c:347 ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:349 ../src/applet-dialogs.c:487 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Inconnue" -#: ../src/applet-dialogs.c:362 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:364 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "inconnu" -#: ../src/applet-dialogs.c:376 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "inconnu" -#: ../src/applet-dialogs.c:411 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Ethernet (%s)" -#: ../src/applet-dialogs.c:414 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "Wifi 802.11 (%s)" -#: ../src/applet-dialogs.c:421 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:423 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:427 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:433 ../src/applet-dialogs.c:792 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "Général" -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "Interface :" -#: ../src/applet-dialogs.c:453 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "Adresse matérielle :" #. Driver -#: ../src/applet-dialogs.c:461 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "Pilote :" -#: ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "Vitesse :" -#: ../src/applet-dialogs.c:500 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "Sécurité :" -#: ../src/applet-dialogs.c:513 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR :" -#: ../src/applet-dialogs.c:526 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID :" #. --- IPv4 --- -#: ../src/applet-dialogs.c:543 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:554 ../src/applet-dialogs.c:661 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "Adresse IP :" -#: ../src/applet-dialogs.c:556 ../src/applet-dialogs.c:572 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "Inconnue" -#: ../src/applet-dialogs.c:570 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "Adresse de broadcast :" #. Prefix -#: ../src/applet-dialogs.c:579 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "Masque de sous-réseau :" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "Inconnu" -#: ../src/applet-dialogs.c:589 ../src/applet-dialogs.c:676 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "Route par défaut :" -#: ../src/applet-dialogs.c:601 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "DNS primaire :" -#: ../src/applet-dialogs.c:610 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "DNS secondaire :" -#: ../src/applet-dialogs.c:620 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "DNS tertiaire :" #. --- IPv6 --- -#: ../src/applet-dialogs.c:635 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:644 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "Ignoré" -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "Type de VPN :" -#: ../src/applet-dialogs.c:804 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "Passerelle pour le VPN" -#: ../src/applet-dialogs.c:810 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "Nom d'utilisateur pour le VPN :" -#: ../src/applet-dialogs.c:816 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "Bannière pour le VPN :" -#: ../src/applet-dialogs.c:822 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "Connexion de base :" -#: ../src/applet-dialogs.c:824 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "Inconnue" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "Aucune connexion valide active trouvée !" -#: ../src/applet-dialogs.c:940 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -694,35 +744,51 @@ "Copyright © 2005-2008 Novell, Inc.\n" "et beaucoup d'autres contributeurs et traducteurs de la communauté" -#: ../src/applet-dialogs.c:943 +#: ../src/applet-dialogs.c:942 msgid "" "Notification area applet for managing your network devices and connections." msgstr "" "Une zone de notification pour gérer vos périphériques réseaux et vos " "connexions." -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "Site Web de NetworkManager" -#: ../src/applet-dialogs.c:960 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "Ressources manquantes" -#: ../src/applet-dialogs.c:985 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "Mot de passe du réseau téléphone mobile à large bande" -#: ../src/applet-dialogs.c:994 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "Un mot de passe est requis pour vous connecter à « %s »." -#: ../src/applet-dialogs.c:1013 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "Mot de passe :" -#: ../src/applet.c:995 +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Échec de l'ajout/création de la connexion" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "La déconnexion du périphérique a échoué" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Échec de la déconnexion" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "L'activation de la connexion a échoué" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -732,7 +798,7 @@ "\n" "La connexion VPN « %s » a échoué car la connexion réseau a été interrompue." -#: ../src/applet.c:998 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" @@ -742,7 +808,7 @@ "La connexion VPN « %s » a échoué car le service VPN a été arrêté de manière " "inattendue." -#: ../src/applet.c:1001 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -753,7 +819,7 @@ "La connexion VPN « %s » a échoué car le service VPN a renvoyé une " "configuration invalide." -#: ../src/applet.c:1004 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -762,7 +828,7 @@ "\n" "La connexion VPN « %s » a échoué car le délai de connexion est dépassé." -#: ../src/applet.c:1007 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -771,7 +837,7 @@ "\n" "La connexion VPN « %s » a échoué car le service VPN n'a pas démarré à temps." -#: ../src/applet.c:1010 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -780,7 +846,7 @@ "\n" "La connexion VPN « %s » a échoué car le démarrage du service VPN a échoué." -#: ../src/applet.c:1013 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -789,7 +855,7 @@ "\n" "La connexion VPN « %s » a échoué car il n'y avait pas de secrets VPN valides." -#: ../src/applet.c:1016 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -798,7 +864,7 @@ "\n" "La connexion VPN « %s » a échoué en raison de secrets VPN non valides." -#: ../src/applet.c:1023 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -807,7 +873,7 @@ "\n" "La connexion VPN « %s » a échoué." -#: ../src/applet.c:1041 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -818,7 +884,7 @@ "La connexion VPN « %s » a été déconnectée car la connexion réseau a été " "interrompue." -#: ../src/applet.c:1044 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -827,7 +893,7 @@ "\n" "La connexion VPN « %s » a été déconnectée car le service VPN a été arrêté." -#: ../src/applet.c:1050 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -836,15 +902,30 @@ "\n" "La connexion VPN « %s » a été déconnectée." -#: ../src/applet.c:1084 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"La connexion VPN a été établie avec succès.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "La connexion VPN a été établie avec succès.\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "Message d'identification VPN" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" -msgstr "La connexion au VPN a échoué" +msgstr "La connexion VPN a échoué" -#: ../src/applet.c:1155 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -857,7 +938,7 @@ "\n" "%s" -#: ../src/applet.c:1158 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -870,139 +951,139 @@ "\n" "%s" -#: ../src/applet.c:1478 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "périphérique non prêt (micrologiciel manquant)" -#: ../src/applet.c:1480 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "périphérique non prêt" -#: ../src/applet.c:1506 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "Se déconnecter" -#: ../src/applet.c:1520 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "périphérique non géré" -#: ../src/applet.c:1564 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "Aucun périphérique réseau disponible" -#: ../src/applet.c:1652 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "_Connexions VPN" -#: ../src/applet.c:1709 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "_Configurer le VPN..." -#: ../src/applet.c:1713 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "_Déconnecter le VPN" -#: ../src/applet.c:1811 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "NetworkManager n'est pas lancé..." -#: ../src/applet.c:1816 ../src/applet.c:2609 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "Réseau désactivé" #. 'Enable Networking' item -#: ../src/applet.c:2037 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "Activer le _réseau" #. 'Enable Wireless' item -#: ../src/applet.c:2046 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "Activer le réseau _sans fil" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "Activer la connexion _mobile à large bande" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "Activer la connexion mobile WiMA_X à large bande" #. Toggle notifications item -#: ../src/applet.c:2075 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "Activer les _notifications" #. 'Connection Information' item -#: ../src/applet.c:2086 +#: ../src/applet.c:2100 msgid "Connection _Information" -msgstr "_Informations de connexion" +msgstr "_Informations sur la connexion" #. 'Edit Connections...' item -#: ../src/applet.c:2096 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "Modification des connexions..." #. Help item -#: ../src/applet.c:2110 +#: ../src/applet.c:2124 msgid "_Help" msgstr "_Aide" #. About item -#: ../src/applet.c:2119 +#: ../src/applet.c:2133 msgid "_About" msgstr "À _propos" -#: ../src/applet.c:2296 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "Déconnecté" -#: ../src/applet.c:2297 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "La connexion réseau a été déconnectée." -#: ../src/applet.c:2478 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "Préparation de la connexion réseau « %s »..." -#: ../src/applet.c:2481 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Authentification nécessaire pour la connexion réseau « %s »..." -#: ../src/applet.c:2487 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "Connexion réseau « %s » active" -#: ../src/applet.c:2565 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "Démarrage de la connexion VPN « %s »..." -#: ../src/applet.c:2568 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "Authentification nécessaire pour la connexion VPN « %s »..." -#: ../src/applet.c:2571 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "Obtention d'une adresse VPN pour « %s »..." -#: ../src/applet.c:2574 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "Connexion VPN « %s » active" -#: ../src/applet.c:2613 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "Aucune connexion réseau" -#: ../src/applet.c:3263 +#: ../src/applet.c:3327 msgid "NetworkManager Applet" msgstr "Applet NetworkManager" @@ -1016,7 +1097,7 @@ #: ../src/info.ui.h:1 msgid "Connection Information" -msgstr "Informations de connexion" +msgstr "Informations sur la connexion" #: ../src/info.ui.h:2 msgid "Active Network Connections" @@ -1034,7 +1115,7 @@ msgid "automatic" msgstr "automatique" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "" "La mise à jour des informations d'authentification de connexion a échoué en " @@ -1168,11 +1249,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Do_maines de recherche :" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "Serveurs _DNS :" @@ -1552,20 +1637,20 @@ #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "Adresse" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "Masque de réseau" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "Passerelle" @@ -1575,13 +1660,13 @@ msgstr "Métrique" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "Préfixe" #: ../src/connection-editor/page-dsl.c:139 #: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1589,7 +1674,7 @@ msgid "Could not load DSL user interface." msgstr "Impossible de charger l'interface utilisateur DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "Connexion DSL %d" @@ -1641,16 +1726,26 @@ msgid "Disabled" msgstr "Désactivé" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Serveurs _DNS supplémentaires :" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Do_maines de recherche supplémentaires :" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Modification des routes IPv4 pour %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "Paramètres IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Impossible de charger l'interface utilisateur IPv4." @@ -1659,7 +1754,7 @@ msgstr "Automatique, adresses uniquement" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:280 msgid "Ignore" msgstr "Ignorer" @@ -1667,16 +1762,16 @@ msgid "Automatic, DHCP only" msgstr "Automatique, DHCP uniquement" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Modification des routes IPv6 pour %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "Paramètres IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Impossible de charger l'interface utilisateur IPv6." @@ -1758,7 +1853,7 @@ #: ../src/connection-editor/page-vpn.c:109 #: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1772,7 +1867,7 @@ msgstr "Impossible de trouver le service de greffon VPN pour « %s »." #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "Connexion VPN %d" @@ -1788,7 +1883,7 @@ #: ../src/connection-editor/page-wired.c:272 #: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Filaire" @@ -1801,16 +1896,16 @@ msgid "Wired connection %d" msgstr "Connexion filaire %d" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "Sécurité 802.1x" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "" "Impossible de charger l'interface utilisateur de sécurité de réseau filaire." -#: ../src/connection-editor/page-wired-security.c:136 +#: ../src/connection-editor/page-wired-security.c:139 msgid "Use 802.1_X security for this connection" msgstr "Utiliser la sécurité 802.1_X pour cette connexion" @@ -1828,7 +1923,7 @@ #: ../src/connection-editor/page-wireless.c:457 #: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Sans fil" @@ -1841,55 +1936,55 @@ msgid "Wireless connection %d" msgstr "Connexion sans fil %d" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "Clé WEP 40/128-bit (Hex ou ASCII)" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128-bit à phrase secrète" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "WEP dynamique (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA et WPA2 personnel" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA et WPA2 entreprise" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "" "Impossible de charger l'interface utilisateur de sécurité WiFi ; paramètre " "WiFi manquant." -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "Sécurité sans fil" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "Impossible de charger l'interface utilisateur de sécurité WiFi." -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "Modification de %s" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "Modification de la connexion anonyme" -#: ../src/connection-editor/nm-connection-editor.c:288 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." @@ -1897,23 +1992,23 @@ "L'éditeur de connexion n'a pas pu trouver les ressources requises (le " "fichier .ui n'a pas été trouvé)." -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "Erreur lors de la création de la fenêtre d'édition de connexion." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "_Enregistrer" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "Enregistrer toute modification apportée à cette connexion." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "_Enregistrer..." -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." msgstr "" "S'authentifier pour enregistrer cette connexion pour tous les utilisateurs " @@ -1936,8 +2031,8 @@ msgstr "Connecter _automatiquement" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Disponible pour tous les utilisateurs" +msgid "A_vailable to all users" +msgstr "_Disponible pour tous les utilisateurs" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -2009,7 +2104,7 @@ #: ../src/connection-editor/nm-connection-list.c:546 #: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 +#: ../src/connection-editor/nm-connection-list.c:885 msgid "" "The connection editor dialog could not be initialized due to an unknown " "error." @@ -2038,12 +2133,12 @@ msgid "Are you sure you wish to delete the connection %s?" msgstr "Voulez-vous vraiment supprimer la connexion %s ?" -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "Impossible d'importer la connexion VPN" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2053,81 +2148,81 @@ "\n" "Erreur : aucun type de service VPN." -#: ../src/connection-editor/nm-connection-list.c:945 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "Impossible de modifier la connexion importée" -#: ../src/connection-editor/nm-connection-list.c:1126 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "Nom" -#: ../src/connection-editor/nm-connection-list.c:1138 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "Dernière utilisation" -#: ../src/connection-editor/nm-connection-list.c:1264 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." msgstr "" "Aucun greffon VPN disponible. Veuillez en installer un pour activer ce " "bouton." -#: ../src/connection-editor/nm-connection-list.c:1275 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "_Modifier" -#: ../src/connection-editor/nm-connection-list.c:1276 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "Modifie la connexion sélectionnée" -#: ../src/connection-editor/nm-connection-list.c:1277 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "_Modifier..." -#: ../src/connection-editor/nm-connection-list.c:1278 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "S'authentifier pour modifier la connexion sélectionnée" -#: ../src/connection-editor/nm-connection-list.c:1293 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "_Supprimer" -#: ../src/connection-editor/nm-connection-list.c:1294 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "Supprime la connexion sélectionnée" -#: ../src/connection-editor/nm-connection-list.c:1295 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "_Supprimer..." -#: ../src/connection-editor/nm-connection-list.c:1296 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "S'authentifier pour supprimer la connexion sélectionnée" -#: ../src/connection-editor/nm-connection-list.c:1575 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "Erreur lors de la création de la connexion" -#: ../src/connection-editor/nm-connection-list.c:1576 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "La méthode pour créer des connexions « %s » est inconnue" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "Erreur lors de la modification de la connexion" -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "La méthode pour modifier des connexions « %s » est inconnue" -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "La connexion avec l'UUID « %s » n'a pas été trouvée" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2140,31 +2235,31 @@ "\n" "Erreur : %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "Sélectionnez le fichier à importer" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "Un fichier nommé « %s » existe déjà." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "_Remplacer" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "" "Voulez-vous remplacer %s par la connexion VPN que vous êtes en train " "d'enregistrer ?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "Impossible d'exporter la connexion VPN" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2175,7 +2270,7 @@ "\n" "Erreur : %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "Exporter la connexion VPN..." @@ -2438,11 +2533,11 @@ msgid "New..." msgstr "Nouveau..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "C_réer" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "" "Passwords or encryption keys are required to access the wireless network '%" @@ -2451,35 +2546,35 @@ "Des mots de passe ou des clés de chiffrement sont nécessaires pour l'accès " "au réseau sans fil « %s »." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "Authentification nécessaire pour le réseau sans fil" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "Authentification nécessaire pour le réseau sans fil" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "Création d'un nouveau réseau sans fil" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "Nouveau réseau sans fil" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "Saisissez le nom du réseau sans fil que vous voulez créer." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "Connexion à des réseaux sans fil invisibles" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "Réseau sans fil invisible" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." @@ -2488,11 +2583,11 @@ "auquel vous voulez vous connecter." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Sécurité sans fil :" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Co_nnexion :" #: ../src/libnm-gtk/wifi.ui.h:5 @@ -2609,11 +2704,11 @@ "L'applet NetworkManager n'a pas pu trouver les ressources requises (le " "fichier .ui n'a pas été trouvé)." -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:274 msgid "No Certificate Authority certificate chosen" msgstr "Aucun certificat d'autorité de certification choisi" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:275 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " @@ -2624,15 +2719,15 @@ "sécurisés. Souhaitez-vous choisir un certificat d'une autorité de " "certification ?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:284 msgid "Choose CA Certificate" msgstr "Choisissez le certificat de CA :" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:643 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Clés privées DER, PEM ou PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:646 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Certificats DER ou PEM (*.der, *.pem, *.crt, *.cer)" @@ -2686,7 +2781,7 @@ msgstr "Tous les fichiers" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2772,19 +2867,19 @@ msgid "Yes" msgstr "Oui" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "Tunneled TLS" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Protected EAP (PEAP)" @@ -2829,4 +2924,3 @@ #: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "Inde_x WEP :" - diff -Nru network-manager-applet-0.9.4.1/po/gl.po network-manager-applet-0.9.6.2+git201210311320.2620/po/gl.po --- network-manager-applet-0.9.4.1/po/gl.po 2012-03-23 14:14:18.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/gl.po 2012-10-31 13:20:57.000000000 +0000 @@ -1,31 +1,29 @@ # Galician translation of NetworkManager Applet -# Copyright (C) -2008, The GNOME Foundation +# Copyright (C) 2008, The GNOME Foundation # This file is distributed under the same license as the NetworkManager Applet package. # +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en # # Ignacio Casal Quinteiro , 2007, 2008. # Martin Mendez Iglesias , 2008. # Mancomún - Centro de Referencia e Servizos de Software Libre , 2009. -# Leandro Regueiro , 2011. -# -# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas -# colaborar connosco, podes atopar máis información en -# Fran Diéguez , 2010, 2011. -# Fran Dieguez , 2011, 2012. -# +# Fran Diéguez , 2010, 2011, 2012. +# Leandro Regueiro , 2011, 2012. msgid "" msgstr "" "Project-Id-Version: gl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 10:29+0100\n" -"PO-Revision-Date: 2012-03-23 10:31+0100\n" -"Last-Translator: Fran Dieguez \n" -"Language-Team: Galician \n" +"POT-Creation-Date: 2012-08-17 00:03+0200\n" +"PO-Revision-Date: 2012-08-16 11:26+0200\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galego \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Lokalize 1.0\n" #: ../nm-applet.desktop.in.h:1 msgid "Network" @@ -35,1048 +33,1066 @@ msgid "Manage your network connections" msgstr "Xestione as súas conexións de rede" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Conexións de rede" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Xestione e cambie as súas configuracións de conexión de rede" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Desactivar as notificacións de conexión" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" -"Estabeleza isto a VERDADEIRO para desactivar as notificacións cando se " -"conecte a unha rede." +"Estabeleza isto a certo para desactivar as notificacións ao conectarse a " +"unha rede." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Desactivar as notificacións de desconexión" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "" +"Estabeleza isto a certo para desactivar as notificacións ao desconectarse de " +"unha rede." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Desactivar as notificacións de VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." msgstr "" -"Estabeleza isto a VERDADEIRO para desactivar as notificacións cando se " -"desconecte de unha rede." +"Estabeleza isto a certo para desactivar as notificacións ao desconectarse a " +"unha VPN." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Eliminar as notificacións de redes dispoñíbeis" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when Wi-Fi networks are available." msgstr "" -"Estabeleza isto a VERDADEIRO para desactivar as notificacións cando haxa " -"dispoñíbeis redes inarámicas." +"Estabeleza isto a certo para desactivar as notificacións cando hai redes sen " +"fíos dispoñíbeis." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Marca de tempo" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "Empregado para determinar se as configuracións deberían ser migradas á nova " "versión." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Desactivar a creación de rede sen fíos" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" -"Estabeleza isto a VERDADEIRO para desactivar a creación de redes sen fíos " -"adhoc ao usar o aplicativo." +"Estabeleza isto a certo para desactivar a creación de redes sen fíos adhoc " +"ao usar o miniaplicativo." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Conexións de rede" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ignorar certificado CA" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Xestione e cambie as súas configuracións de conexión de rede" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Estabelecer isto a certo para desactivar as notificacións sobre certificados " +"CA en autenticación EAP." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Dispoñíbl" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Estabelecer isto a certo para desactivar as notificacións sobre certificados " +"CA na fase 2 da autenticación EAP." -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Agora está conectado a '%s'." +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "Autenticación 802.1X" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Estabeleceuse a conexión" +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "Nome da _rede:" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Agora está conectado á rede de banda larga móbil." +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Produciuse un erro ao engadir/activar a conexión" + +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Erro descoñecido" + +#: ../src/applet.c:493 ../src/applet.c:563 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Fallou na conexión" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Produciuse un erro ao desconectar o dispositivo" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Produciuse un erro ao desconectar" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "Produciuse un erro ao activar a conexión" + +#: ../src/applet.c:924 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "Non mostrar esta mensaxe outra vez" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:1013 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Preparando a conexión de banda larga móbil '%s'…" +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"A conexión VPN '%s' fallou porque se interrompeu a conexión de rede." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1016 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Configurando a conexión de banda larga móbil '%s'…" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"A conexión VPN '%s' fallou porque o servizo VPN se detivo inesperadamente." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1019 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." msgstr "" -"Requírese unha autenticación de usuario para a conexión de banda larga móbil " -"'%s'…" +"\n" +"A conexión VPN '%s' fallou porque o servizo VPN devolveu unha configuración " +"non válida." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2503 +#: ../src/applet.c:1022 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Solicitando un enderezo de rede para '%s'…" +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"A conexión VPN '%s' fallou porque a tentativa de conexión excedeu o tempo de " +"espera." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1025 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "A conexión de banda larga móbil '%s' está activa" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"A conexión VPN '%s' fallou porque o servizo VPN non comezou a tempo." -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1028 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"A conexión VPN '%s' fallou porque produciuse un erro ao iniciar o servizo " +"VPN." -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:424 +#: ../src/applet.c:1031 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Banda larga móbil (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"A conexión VPN '%s' fallou porque non había contrasinais VPN válidos." -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1510 -msgid "Mobile Broadband" -msgstr "Banda larga móbil" +#: ../src/applet.c:1034 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"A conexión VPN '%s' fallou porque había contrasinais VPN non válidos." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "NovacConexión de banda larga móbil automática (CDMA)…" +#: ../src/applet.c:1041 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"A conexión VPN '%s' fallou." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Agora está conectado á rede CDMA." +#: ../src/applet.c:1059 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"A conexión VPN '%s' desconectouse porque se interrompeu a conexión de rede." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1062 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "A conexión de banda larga móbil «%s» está activa: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"A conexión VPN '%s' desconectouse porque se detivo o servizo VPN." -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "roaming" +#: ../src/applet.c:1068 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"A conexión VPN '%s' desconectouse." -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "Rede CDMA." +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"A conexión VPN estabelecida correctamente.\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Agora está rexistrado na rede de casa. " +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "A conexión VPN estabelecida correctamente.\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Agora está rexistrado nunha rede de «roaming»." +#: ../src/applet.c:1102 +msgid "VPN Login Message" +msgstr "Mensaxe de inicio de sesión VPN" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 +msgid "VPN Connection Failed" +msgstr "Fallou a conexión VPN" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Nova conexión de banda larga móbil automática (GSM)…" +#: ../src/applet.c:1173 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"A conexión VPN '%s' fallou porque se produciu un erro ao iniciar o servizo " +"VPN.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Agora está conectado á rede GSM." +#: ../src/applet.c:1176 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Produciuse un erro ao iniciar a conexión VPN '%s'.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "Requírese un código PIN" +#: ../src/applet.c:1496 +msgid "device not ready (firmware missing)" +msgstr "o dispositivo non está listo (falta o firmware)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "É necesario un código PIN para o dispositivo de banda larga móbil" +#: ../src/applet.c:1498 +msgid "device not ready" +msgstr "o dispositivo non está listo" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "Código PIN para a tarxeta SIM «%s» en «%s»" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1508 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "desconectado" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "Código PIN erróneo; contacte co fornecedor do seu servizo." +#: ../src/applet.c:1524 +msgid "Disconnect" +msgstr "Desconectar" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "Código PUK erróneo; contacte co fornecedor do seu servizo." +#: ../src/applet.c:1538 +msgid "device not managed" +msgstr "o dispositivo non está xestionado" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "Enviando código de desbloqueo…" +#: ../src/applet.c:1582 +msgid "No network devices available" +msgstr "Non hai dispositivos de rede dispoñíbeis" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "Requírese un código PIN de desbloqueo" +#: ../src/applet.c:1670 +msgid "_VPN Connections" +msgstr "Conexións _VPN" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "Requírese un código PIN de desbloqueo" +#: ../src/applet.c:1727 +msgid "_Configure VPN..." +msgstr "_Configurar VPN…" -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "" -"O dispositivo de banda larga «%s» necesita un código SIM PIN antes de poder " -"usalo." - -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "Código PIN:" - -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "Mostrar o código PIN" - -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "Requírese un código PUK" - -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "Requírese un código PUK" +#: ../src/applet.c:1731 +msgid "_Disconnect VPN" +msgstr "_Desconectar VPN" -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "" -"O dispositivo de banda larga «%s» require un código SIM PUK antes de poder " -"usalo." +#: ../src/applet.c:1825 +msgid "NetworkManager is not running..." +msgstr "O NetworkManager non se está executando…" -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "Código PUK:" +#: ../src/applet.c:1830 ../src/applet.c:2631 +msgid "Networking disabled" +msgstr "Rede desactivada" -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "Código PIN novo:" +#. 'Enable Networking' item +#: ../src/applet.c:2051 +msgid "Enable _Networking" +msgstr "Activar a _rede" -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "Introducir de novo o código PIN novo:" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2060 +msgid "Enable _Wi-Fi" +msgstr "Activar sen _fíos" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "Mostrar os códigos PIN/PUK" +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2069 +msgid "Enable _Mobile Broadband" +msgstr "Activar a banda larga _móbil" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "Rede GSM." +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2078 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Activar a banda larga móbil WiMA_X" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "Ethernet automático" +#. Toggle notifications item +#: ../src/applet.c:2089 +msgid "Enable N_otifications" +msgstr "Activar n_otificacións" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "Redes con fíos (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2100 +msgid "Connection _Information" +msgstr "_Información da conexión" -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "Rede con fíos (%s)" +#. 'Edit Connections...' item +#: ../src/applet.c:2110 +msgid "Edit Connections..." +msgstr "Editar as conexións…" -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "Redes con fíos" +#. Help item +#: ../src/applet.c:2124 +msgid "_Help" +msgstr "_Axuda" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "Rede con fíos" +#. About item +#: ../src/applet.c:2133 +msgid "_About" +msgstr "_Sobre" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1509 -msgid "disconnected" -msgstr "desconectado" +#: ../src/applet.c:2310 +msgid "Disconnected" +msgstr "Desconectado" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "Agora está conectado á rede con fíos." +#: ../src/applet.c:2311 +msgid "The network connection has been disconnected." +msgstr "A conexión de rede foi desconectada." -#: ../src/applet-device-wired.c:300 +#: ../src/applet.c:2494 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Preparando a conexión de rede con fíos '%s'…" +msgid "Preparing network connection '%s'..." +msgstr "Preparando a conexión de rede '%s'…" -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2497 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "Configurando a conexión de rede con fíos '%s'…" +msgid "User authentication required for network connection '%s'..." +msgstr "Requírese unha autenticación de usuario para a conexión de rede '%s'…" -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2500 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "" -"Requírese unha autenticación de usuario para a conexión de rede con fíos " -"'%s'…" +msgid "Requesting a network address for '%s'..." +msgstr "Solicitando un enderezo de rede para '%s'…" -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2503 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "Solicitando un enderezo de rede con fíos para '%s'…" +msgid "Network connection '%s' active" +msgstr "A conexión de rede '%s' está activa" -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2586 #, c-format -msgid "Wired network connection '%s' active" -msgstr "A conexión de rede con fíos '%s' está activa" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "Autenticación DSL" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "_Conectarse a unha rede sen fíos oculta…" - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "Crear unha _nova rede sen fíos…" - -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(ningunha)" +msgid "Starting VPN connection '%s'..." +msgstr "Iniciando a conexión de rede VPN '%s'…" -#: ../src/applet-device-wifi.c:792 +#: ../src/applet.c:2589 #, c-format -msgid "Wireless Networks (%s)" -msgstr "Redes sen fíos (%s)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "Requírese unha autenticación de usuario para a conexión VPN '%s'…" -#: ../src/applet-device-wifi.c:794 +#: ../src/applet.c:2592 #, c-format -msgid "Wireless Network (%s)" -msgstr "Rede sen fíos (%s)" +msgid "Requesting a VPN address for '%s'..." +msgstr "Solicitando un enderezo VPN para '%s'…" -#: ../src/applet-device-wifi.c:796 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Rede sen fíos" -msgstr[1] "Redes sen fíos" +#: ../src/applet.c:2595 +#, c-format +msgid "VPN connection '%s' active" +msgstr "A conexión VPN '%s' está activa" -#: ../src/applet-device-wifi.c:829 -msgid "wireless is disabled" -msgstr "a rede sen fíos está desactivada" - -#: ../src/applet-device-wifi.c:830 -msgid "wireless is disabled by hardware switch" -msgstr "a rede sen fíos está desactivada por un interruptor de hardware" +#: ../src/applet.c:2636 +msgid "No network connection" +msgstr "Sen conexión de rede" -#: ../src/applet-device-wifi.c:891 -msgid "More networks" -msgstr "Máis redes" +#: ../src/applet.c:3336 +msgid "NetworkManager Applet" +msgstr "Miniaplicación NetworkManager" -#: ../src/applet-device-wifi.c:1071 -msgid "Wireless Networks Available" -msgstr "Redes sen fíos dispoñíbeis" +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Dispoñíbl" -#: ../src/applet-device-wifi.c:1072 -msgid "Use the network menu to connect to a wireless network" -msgstr "Use o menú de rede para conectarse a unha rede sen fíos" +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "Agora está conectado a '%s'." -#: ../src/applet-device-wifi.c:1075 ../src/applet.c:925 -msgid "Don't show this message again" -msgstr "Non mostrar esta mensaxe outra vez" +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "Estabeleceuse a conexión" -#: ../src/applet-device-wifi.c:1267 -#, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Agora está conectado á rede sen fíos '%s'." +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Agora está conectado á rede de banda larga móbil." -#: ../src/applet-device-wifi.c:1298 +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Preparando a conexión de rede sen fíos '%s'…" +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Preparando a conexión de banda larga móbil '%s'…" -#: ../src/applet-device-wifi.c:1301 +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Configurando a conexión de rede sen fíos '%s'…" +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Configurando a conexión de banda larga móbil '%s'…" -#: ../src/applet-device-wifi.c:1304 +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "A rede sen fíos '%s' require a autenticación do usuario…" +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "" +"Requírese unha autenticación de usuario para a conexión de banda larga móbil " +"'%s'…" -#: ../src/applet-device-wifi.c:1307 +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Solicitando un enderezo de rede sen fíos para '%s'…" +msgid "Mobile broadband connection '%s' active" +msgstr "A conexión de banda larga móbil '%s' está activa" -#: ../src/applet-device-wifi.c:1328 -#, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "A conexión de rede sen fíos '%s' está activa: %s (%d%%)" +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:699 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wifi.c:1333 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "A conexión de rede sen fíos con '%s' está activa" - -#: ../src/applet-device-wifi.c:1381 -msgid "Failed to activate connection" -msgstr "Produciuse un fallo ao activar a conexión" +msgid "Mobile Broadband (%s)" +msgstr "Banda larga móbil (%s)" -#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 -#: ../src/applet.c:491 ../src/applet.c:535 ../src/applet.c:561 -msgid "Unknown error" -msgstr "Erro descoñecido" +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:85 +#: ../src/connection-editor/page-mobile.c:379 +msgid "Mobile Broadband" +msgstr "Banda larga móbil" -#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 -#: ../src/applet.c:494 ../src/applet.c:564 -msgid "Connection failure" -msgstr "Fallou na conexión" +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "NovacConexión de banda larga móbil automática (CDMA)…" -#: ../src/applet-device-wifi.c:1400 -msgid "Failed to add new connection" -msgstr "Produciuse un fallo ao engadir a nova conexión" +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Agora está conectado á rede CDMA." -#: ../src/applet-device-wimax.c:231 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 #, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "Banda larga móbil WiMAX (%s)" +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "A conexión de banda larga móbil «%s» está activa: (%d%%%s%s)" -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr "Banda larga móbil WiMAX" +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "roaming" -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "a rede WiMAX está desactivada" +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "Rede CDMA." -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "a rede WiMAX está desactivada por un interruptor de hardware" +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "Agora está rexistrado na rede de casa. " -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "Agora está conectado á rede WiMAX." +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "Agora está rexistrado nunha rede de «roaming»." -#: ../src/applet-dialogs.c:57 -msgid "Error displaying connection information:" -msgstr "Erro ao mostrar a información de conexión:" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "Ethernet automático" -#: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:313 -#: ../src/libnm-gtk/nm-wireless-dialog.c:948 -#: ../src/wireless-security/wireless-security.c:406 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-ethernet.c:205 +#, c-format +msgid "Ethernet Networks (%s)" +msgstr "Redes con fíos (%s)" -#: ../src/applet-dialogs.c:111 -msgid "Dynamic WEP" -msgstr "WEP dinámica" +#: ../src/applet-device-ethernet.c:207 +#, c-format +msgid "Ethernet Network (%s)" +msgstr "Rede con fíos (%s)" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 -#: ../src/applet-dialogs.c:247 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "Redes con fíos" -#: ../src/applet-dialogs.c:243 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "Rede con fíos" -#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 -#: ../src/connection-editor/page-wireless-security.c:265 -#: ../src/libnm-gtk/nm-wireless-dialog.c:905 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "Ningún" +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "Agora está conectado á rede con fíos." -#: ../src/applet-dialogs.c:277 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "%s (default)" -msgstr "%s (predeterminada)" +msgid "Preparing ethernet network connection '%s'..." +msgstr "Preparando a conexión de rede con fíos «%s»…" -#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "%u Mb/s" -msgstr "%u Mb/s" +msgid "Configuring ethernet network connection '%s'..." +msgstr "Configurando a conexión de rede con fíos «%s»…" -#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 -msgctxt "Speed" -msgid "Unknown" -msgstr "Descoñecido" +#: ../src/applet-device-ethernet.c:306 +#, c-format +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "Requírese autenticación de usuario para a rede con fíos '%s'…" -#: ../src/applet-dialogs.c:361 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "%d dB" -msgstr "%d dB" +msgid "Requesting an ethernet network address for '%s'..." +msgstr "Solicitando un enderezo de rede con fíos para «%s»…" -#: ../src/applet-dialogs.c:363 -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "descoñecido" +#: ../src/applet-device-ethernet.c:313 +#, c-format +msgid "Ethernet network connection '%s' active" +msgstr "A conexión de rede con fíos «%s» está activa" -#: ../src/applet-dialogs.c:375 -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "descoñecido" +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "Autenticación DSL" -#: ../src/applet-dialogs.c:410 -#, c-format -msgid "Ethernet (%s)" -msgstr "Ethernet (%s)" +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:702 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" -#: ../src/applet-dialogs.c:413 -#, c-format -msgid "802.11 WiFi (%s)" -msgstr "802.11 WiFi (%s)" +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Nova conexión de banda larga móbil automática (GSM)…" -#: ../src/applet-dialogs.c:420 -#, c-format -msgid "GSM (%s)" -msgstr "GSM (%s)" +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "Agora está conectado á rede GSM." -#: ../src/applet-dialogs.c:422 -#, c-format -msgid "CDMA (%s)" -msgstr "CDMA (%s)" +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "Requírese un código PIN" -#: ../src/applet-dialogs.c:426 +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "É necesario un código PIN para o dispositivo de banda larga móbil" + +#: ../src/applet-device-gsm.c:781 #, c-format -msgid "WiMAX (%s)" -msgstr "WiMAX (%s)" +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "Código PIN para a tarxeta SIM «%s» en «%s»" -#. --- General --- -#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 -msgid "General" -msgstr "Xeral" +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "Código PIN erróneo; contacte co fornecedor do seu servizo." -#: ../src/applet-dialogs.c:436 -msgid "Interface:" -msgstr "Interface:" +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "Código PUK erróneo; contacte co fornecedor do seu servizo." -#: ../src/applet-dialogs.c:452 -msgid "Hardware Address:" -msgstr "Enderezo de hardware:" +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "Enviando código de desbloqueo…" -#. Driver -#: ../src/applet-dialogs.c:460 -msgid "Driver:" -msgstr "Controlador:" +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "Requírese un código PIN de desbloqueo" -#: ../src/applet-dialogs.c:489 -msgid "Speed:" -msgstr "Velocidade:" +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "Requírese un código PIN de desbloqueo" -#: ../src/applet-dialogs.c:499 -msgid "Security:" -msgstr "Seguranza:" +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "" +"O dispositivo de banda larga «%s» necesita un código SIM PIN antes de poder " +"usalo." -#: ../src/applet-dialogs.c:512 -msgid "CINR:" -msgstr "CINR:" +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "Código PIN:" -#: ../src/applet-dialogs.c:525 -msgid "BSID:" -msgstr "BSID:" +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "Mostrar o código PIN" -#. --- IPv4 --- -#: ../src/applet-dialogs.c:542 -msgid "IPv4" -msgstr "IPv4" +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "Requírese un código PUK" -#. Address -#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 -msgid "IP Address:" -msgstr "Enderezo IP:" +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "Requírese un código PUK" -#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 -msgctxt "Address" -msgid "Unknown" -msgstr "Descoñecido" +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "" +"O dispositivo de banda larga «%s» require un código SIM PUK antes de poder " +"usalo." -#: ../src/applet-dialogs.c:569 -msgid "Broadcast Address:" -msgstr "Enderezo broadcast:" +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "Código PUK:" -#. Prefix -#: ../src/applet-dialogs.c:578 -msgid "Subnet Mask:" -msgstr "Máscara de subrede:" +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "Código PIN novo:" -#: ../src/applet-dialogs.c:580 -msgctxt "Subnet Mask" -msgid "Unknown" -msgstr "Descoñecido" +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "Introducir de novo o código PIN novo:" -#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 -msgid "Default Route:" -msgstr "Camiño predeterminado:" +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "Mostrar os códigos PIN/PUK" -#: ../src/applet-dialogs.c:600 -msgid "Primary DNS:" -msgstr "DNS primario:" +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "Rede GSM." -#: ../src/applet-dialogs.c:609 -msgid "Secondary DNS:" -msgstr "DNS secundario:" +#: ../src/applet-device-wifi.c:97 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "_Conectarse a unha rede sen fíos oculta…" -#: ../src/applet-dialogs.c:619 -msgid "Ternary DNS:" -msgstr "DNS terciario:" +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "Crear unha rede sen fíos _nova…" -#. --- IPv6 --- -#: ../src/applet-dialogs.c:634 -msgid "IPv6" -msgstr "IPv6" +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(ningunha)" -#: ../src/applet-dialogs.c:643 -msgid "Ignored" -msgstr "Ignorado" +#: ../src/applet-device-wifi.c:790 +#, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "Redes sen fíos (%s)" -#: ../src/applet-dialogs.c:796 -msgid "VPN Type:" -msgstr "Tipo de VPN:" +#: ../src/applet-device-wifi.c:792 +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Rede sen fíos (%s)" -#: ../src/applet-dialogs.c:803 -msgid "VPN Gateway:" -msgstr "Pasarela do VPN:" +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Rede sen fíos" +msgstr[1] "Redes sen fíos" -#: ../src/applet-dialogs.c:809 -msgid "VPN Username:" -msgstr "Nome de usuario da VPN:" +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "A rede sen fíos está desactivada" + +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Rede sen fíos desactivada polo interruptor físico" -#: ../src/applet-dialogs.c:815 -msgid "VPN Banner:" -msgstr "Mensaxe da VPN:" +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "Máis redes" -#: ../src/applet-dialogs.c:821 -msgid "Base Connection:" -msgstr "Conexión base:" +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "Redes sen fíos dispoñíbeis" -#: ../src/applet-dialogs.c:823 -msgid "Unknown" -msgstr "Descoñecida" +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Usar o menú de rede para conectarse a unha rede sen fíos" -#. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:886 -msgid "No valid active connections found!" -msgstr "Non se atoparon conexións activas válidas!" +#: ../src/applet-device-wifi.c:1263 +#, c-format +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Agora está conectado á rede sen fíos «%s»." -#: ../src/applet-dialogs.c:939 -msgid "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"and many other community contributors and translators" -msgstr "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"e moitos outros contribuíntes e tradutores da comunidade" +#: ../src/applet-device-wifi.c:1294 +#, c-format +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Preparando a conexión de rede sen fíos «%s»…" -#: ../src/applet-dialogs.c:942 -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "" -"Miniaplicativo da área de notificación para xestionar os dispositivos de " -"rede e as conexións." +#: ../src/applet-device-wifi.c:1297 +#, c-format +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Configurando a conexión de rede sen fíos «%s»…" -#: ../src/applet-dialogs.c:944 -msgid "NetworkManager Website" -msgstr "Sitio web do NetworkManager" +#: ../src/applet-device-wifi.c:1300 +#, c-format +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "" +"Requírese autenticación de usuario para a conexión de rede sen fíos «%s»…" -#: ../src/applet-dialogs.c:959 -msgid "Missing resources" -msgstr "Faltan recursos" +#: ../src/applet-device-wifi.c:1303 +#, c-format +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Solicitando un enderezo de rede sen fíos para '%s'…" -#: ../src/applet-dialogs.c:984 -msgid "Mobile broadband network password" -msgstr "Contrasinal de rede de banda larga móbil" +#: ../src/applet-device-wifi.c:1324 +#, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "A conexión de rede sen fíos '%s' está activa: %s (%d%%)" -#: ../src/applet-dialogs.c:993 +#: ../src/applet-device-wifi.c:1329 #, c-format -msgid "A password is required to connect to '%s'." -msgstr "Requírese un contrasinal para conectarse a '%s'." +msgid "Wi-Fi network connection '%s' active" +msgstr "A conexión de rede sen fíos '%s' está activa" -#: ../src/applet-dialogs.c:1012 -msgid "Password:" -msgstr "Contrasinal:" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Produciuse un erro ao activar a conexión" -#: ../src/applet.c:489 -msgid "Failed to add/activate connection" -msgstr "Produciuse un fallo ao engadir/activar a conexión" +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Produciuse un erro ao engadir a nova conexión" -#: ../src/applet.c:533 -msgid "Device disconnect failed" -msgstr "Produciuse un fallo ao desconectar o dispositivo" +#: ../src/applet-device-wimax.c:231 +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "Banda larga móbil WiMAX (%s)" -#: ../src/applet.c:538 -msgid "Disconnect failure" -msgstr "Fallo ao desconectar" +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "Banda larga móbil WiMAX" -#: ../src/applet.c:559 -msgid "Connection activation failed" -msgstr "Produciuse un fallo ao activar a conexión" +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "a rede WiMAX está desactivada" -#: ../src/applet.c:1014 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"A conexión VPN '%s' fallou porque se interrompeu a conexión de rede." +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "a rede WiMAX está desactivada por un interruptor de hardware" -#: ../src/applet.c:1017 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"A conexión VPN '%s' fallou porque o servizo VPN se detivo inesperadamente." +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "Agora está conectado á rede WiMAX." -#: ../src/applet.c:1020 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"A conexión VPN '%s' fallou porque o servizo VPN devolveu unha configuración " -"non válida." +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "Produciuse un erro ao mostrar a información de conexión:" -#: ../src/applet.c:1023 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"A conexión VPN '%s' fallou porque a tentativa de conexión excedeu o tempo de " -"espera." +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" -#: ../src/applet.c:1026 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"A conexión VPN '%s' fallou porque o servizo VPN non comezou a tempo." +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "WEP dinámica" -#: ../src/applet.c:1029 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"A conexión VPN '%s' fallou porque produciuse un erro ao iniciar o servizo " -"VPN." +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" -#: ../src/applet.c:1032 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"A conexión VPN '%s' fallou porque non había contrasinais VPN válidos." +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" -#: ../src/applet.c:1035 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"A conexión VPN '%s' fallou porque había contrasinais VPN non válidos." +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "Ningún" -#: ../src/applet.c:1042 +#: ../src/applet-dialogs.c:277 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"A conexión VPN '%s' fallou." +msgid "%s (default)" +msgstr "%s (predeterminada)" -#: ../src/applet.c:1060 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"A conexión VPN '%s' desconectouse porque se interrompeu a conexión de rede." +msgid "%u Mb/s" +msgstr "%u Mb/s" -#: ../src/applet.c:1063 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"A conexión VPN '%s' desconectouse porque se detivo o servizo VPN." +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "Descoñecido" -#: ../src/applet.c:1069 +#: ../src/applet-dialogs.c:361 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"A conexión VPN '%s' desconectouse." +msgid "%d dB" +msgstr "%d dB" -#: ../src/applet.c:1103 -msgid "VPN Login Message" -msgstr "Mensaxe de inicio de sesión VPN" +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "descoñecido" -#: ../src/applet.c:1109 ../src/applet.c:1117 ../src/applet.c:1167 -msgid "VPN Connection Failed" -msgstr "Fallou a conexión VPN" +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "descoñecido" -#: ../src/applet.c:1174 +#: ../src/applet-dialogs.c:410 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"A conexión VPN '%s' fallou porque se produciu un erro ao iniciar o servizo " -"VPN.\n" -"\n" -"%s" +msgid "Ethernet (%s)" +msgstr "Ethernet (%s)" -#: ../src/applet.c:1177 +#: ../src/applet-dialogs.c:413 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"A conexión VPN '%s' fallou ao iniciar.\n" -"\n" -"%s" - -#: ../src/applet.c:1497 -msgid "device not ready (firmware missing)" -msgstr "o dispositivo non está listo (falta o firmware)" +msgid "802.11 WiFi (%s)" +msgstr "802.11 WiFi (%s)" -#: ../src/applet.c:1499 -msgid "device not ready" -msgstr "o dispositivo non está listo" +#: ../src/applet-dialogs.c:420 +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" -#: ../src/applet.c:1525 -msgid "Disconnect" -msgstr "Desconectar" +#: ../src/applet-dialogs.c:422 +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" -#: ../src/applet.c:1539 -msgid "device not managed" -msgstr "o dispositivo non está xestionado" +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" -#: ../src/applet.c:1583 -msgid "No network devices available" -msgstr "Non hai dispositivos de rede dispoñíbeis" +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "Xeral" -#: ../src/applet.c:1671 -msgid "_VPN Connections" -msgstr "Conexións _VPN" +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "Interface:" -#: ../src/applet.c:1728 -msgid "_Configure VPN..." -msgstr "_Configurar VPN…" +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "Enderezo de hardware:" -#: ../src/applet.c:1732 -msgid "_Disconnect VPN" -msgstr "_Desconectar VPN" +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "Controlador:" -#: ../src/applet.c:1830 -msgid "NetworkManager is not running..." -msgstr "O NetworkManager non se está executando…" +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "Velocidade:" -#: ../src/applet.c:1835 ../src/applet.c:2634 -msgid "Networking disabled" -msgstr "Rede desactivada" +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "Seguranza:" -#. 'Enable Networking' item -#: ../src/applet.c:2056 -msgid "Enable _Networking" -msgstr "Activar a _rede" +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "CINR:" -#. 'Enable Wireless' item -#: ../src/applet.c:2065 -msgid "Enable _Wireless" -msgstr "Activar a rede sen _fíos" +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "BSID:" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2074 -msgid "Enable _Mobile Broadband" -msgstr "Activar a banda larga _móbil" +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2083 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Activar a banda larga móbil WiMA_X" +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 +msgid "IP Address:" +msgstr "Enderezo IP:" -#. Toggle notifications item -#: ../src/applet.c:2094 -msgid "Enable N_otifications" -msgstr "Activar n_otificacións" +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "Descoñecido" -#. 'Connection Information' item -#: ../src/applet.c:2105 -msgid "Connection _Information" -msgstr "_Información da conexión" +#: ../src/applet-dialogs.c:569 +msgid "Broadcast Address:" +msgstr "Enderezo broadcast:" -#. 'Edit Connections...' item -#: ../src/applet.c:2115 -msgid "Edit Connections..." -msgstr "Editar as conexións…" +#. Prefix +#: ../src/applet-dialogs.c:578 +msgid "Subnet Mask:" +msgstr "Máscara de subrede:" -#. Help item -#: ../src/applet.c:2129 -msgid "_Help" -msgstr "_Axuda" +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Descoñecido" -#. About item -#: ../src/applet.c:2138 -msgid "_About" -msgstr "_Sobre" +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 +msgid "Default Route:" +msgstr "Camiño predeterminado:" -#: ../src/applet.c:2315 -msgid "Disconnected" -msgstr "Desconectado" +#: ../src/applet-dialogs.c:600 +msgid "Primary DNS:" +msgstr "DNS primario:" -#: ../src/applet.c:2316 -msgid "The network connection has been disconnected." -msgstr "A conexión de rede foi desconectada." +#: ../src/applet-dialogs.c:609 +msgid "Secondary DNS:" +msgstr "DNS secundario:" -#: ../src/applet.c:2497 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Preparando a conexión de rede '%s'…" +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "DNS terciario:" -#: ../src/applet.c:2500 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Requírese unha autenticación de usuario para a conexión de rede '%s'…" +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" -#: ../src/applet.c:2506 -#, c-format -msgid "Network connection '%s' active" -msgstr "A conexión de rede '%s' está activa" +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "Ignorado" -#: ../src/applet.c:2589 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Iniciando a conexión de rede VPN '%s'…" +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "Tipo de VPN:" -#: ../src/applet.c:2592 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Requírese unha autenticación de usuario para a conexión VPN '%s'…" +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "Pasarela do VPN:" -#: ../src/applet.c:2595 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Solicitando un enderezo VPN para '%s'…" +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "Nome de usuario da VPN:" -#: ../src/applet.c:2598 -#, c-format -msgid "VPN connection '%s' active" -msgstr "A conexión VPN '%s' está activa" +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "Mensaxe da VPN:" -#: ../src/applet.c:2639 -msgid "No network connection" -msgstr "Sen conexión de rede" +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Conexión base:" -#: ../src/applet.c:3394 -msgid "NetworkManager Applet" -msgstr "Miniaplicación NetworkManager" +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "Descoñecida" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Bloquear automaticamente este dispositivo" +#. Shouldn't really happen but ... +#: ../src/applet-dialogs.c:886 +msgid "No valid active connections found!" +msgstr "Non se atoparon conexións activas válidas!" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "Desbloq_uear" +#: ../src/applet-dialogs.c:939 +msgid "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" +msgstr "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"e moitos outros contribuíntes e tradutores da comunidade" -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "Información de conexión" +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"Miniaplicativo da área de notificación para xestionar os dispositivos de " +"rede e as conexións." -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "Conexións de rede activas" +#: ../src/applet-dialogs.c:944 +msgid "NetworkManager Website" +msgstr "Sitio web do NetworkManager" -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Autenticación con fíos 802.1X" +#: ../src/applet-dialogs.c:959 +msgid "Missing resources" +msgstr "Faltan recursos" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "Nome da _rede:" +#: ../src/applet-dialogs.c:984 +msgid "Mobile broadband network password" +msgstr "Contrasinal de rede de banda larga móbil" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "automático" +#: ../src/applet-dialogs.c:993 +#, c-format +msgid "A password is required to connect to '%s'." +msgstr "Requírese un contrasinal para conectarse a '%s'." -#: ../src/connection-editor/ce-page.c:318 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "" -"Produciuse un fallo ao actualizar os contrasinais das conexións debido a un " -"erro descoñecido. " +#: ../src/applet-dialogs.c:1012 +msgid "Password:" +msgstr "Contrasinal:" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 @@ -1107,6 +1123,46 @@ msgstr "" "Se escolle esta opción, esta conexión nunca se usará como a predeterminada." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "Seleccione un tipo de conexión" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"Seleccione o tipo de conexión VPN que quere crear. \n" +"\n" +"Se está creando unha VPN, e o tipo de conexión VPN que quere crear non " +"aparece na lista, pode que non teña o engadido de VPN correcto instalado." + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Crear…" + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "automático" + +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "" +"Produciuse un erro ao actualizar os contrasinais das conexións debido a un " +"erro descoñecido. " + #: ../src/connection-editor/ce-page-dsl.ui.h:1 #: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 @@ -1128,23 +1184,120 @@ msgid "Sho_w password" msgstr "Mos_trar o contrasinal" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:9 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "_Password:" -msgstr "_Contrasinal:" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_Contrasinal:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "Automático" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Par cruzado (TP)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Porto:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Velocidade:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Full dúple_x" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "Negociar aut_omaticamente" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "Enderezo _MAC do dispositivo:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "Enderezo MAC _clonado:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"O enderezo MAC introducido aquí usarase como o enderezo hardware para o " +"dispositivo de rede na que está activada esta conexión. Esta característica " +"coñécese como clonado de MAC ou spoofing. Por exemplo: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "bytes" -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -msgid "Automatic" -msgstr "Automático" +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "Modo de _transporte:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagrama" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "Conectado" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 @@ -1206,11 +1359,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Dominios de _busca:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "Servidores _DNS:" @@ -1363,149 +1520,70 @@ msgid "Send PPP _echo packets" msgstr "Enviar paquetes _echo PPP" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "Par cruzado (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "Media Independent Interface (MII)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "_Porto:" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "_Velocidade:" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "Full dúple_x" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "Negociar aut_omaticamente" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "Enderezo _MAC do dispositivo:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "C_loned MAC address:" -msgstr "Enderezo MAC _clonado:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"O enderezo MAC introducido aquí usarase como o enderezo hardware para o " -"dispositivo de rede na que está activada esta conexión. Esta característica " -"coñécese como clonado de MAC ou spoofing. Por exemplo: 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "_MTU:" -msgstr "_MTU:" - -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "bytes" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "S_eguranza:" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Infraestrutura" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "Ad hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "mW" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "Po_tencia da transmisión:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "_Velocidade:" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" "Esta opción bloquea esta conexión ao punto de acceso sen fíos (AP) " "especificado polo BSSID introducido aquí. Por exemplo: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "C_anle:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "Ban_da:" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "M_odo:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "SS_ID:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "S_eguranza:" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Métodos de autenticación permitidos" @@ -1559,77 +1637,331 @@ "métodos de autenticación. Se fallan as conexións, tente desactivar a " "compatibilidade con algúns métodos." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Enderezo" + +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Máscara de rede" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Pasarela" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Métrica" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Prefixo" + +#: ../src/connection-editor/new-connection.c:75 +#: ../src/connection-editor/page-ethernet.c:273 +msgid "Ethernet" +msgstr "Cableada" + +#: ../src/connection-editor/new-connection.c:80 +#: ../src/connection-editor/page-wifi.c:462 +msgid "Wi-Fi" +msgstr "Sen fíos" + +#: ../src/connection-editor/new-connection.c:90 +#: ../src/connection-editor/page-wimax.c:157 ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:95 +#: ../src/connection-editor/page-dsl.c:139 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:100 +#: ../src/connection-editor/page-infiniband.c:189 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:112 +#: ../src/connection-editor/page-vpn.c:111 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:245 +msgid "Import a saved VPN configuration..." +msgstr "Importar unha configuración VPN gardada…" + +#: ../src/connection-editor/nm-connection-editor.c:106 +#, c-format +msgid "Editing %s" +msgstr "Editando %s" + +#: ../src/connection-editor/nm-connection-editor.c:110 +msgid "Editing un-named connection" +msgstr "Editando unha conexión sen nome" + +#: ../src/connection-editor/nm-connection-editor.c:297 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"O editor de conexión non puido atopar algúns recursos requiridos (non se " +"encontrou o ficheiro .ui)." + +#: ../src/connection-editor/nm-connection-editor.c:401 +msgid "Error creating connection editor dialog." +msgstr "Produciuse un erro ao crear o diálogo do editor de conexión:" + +#: ../src/connection-editor/nm-connection-editor.c:413 +msgid "_Save" +msgstr "_Gardar" + +#: ../src/connection-editor/nm-connection-editor.c:414 +msgid "Save any changes made to this connection." +msgstr "Gardar calquera cambio feito nesta conexión." + +#: ../src/connection-editor/nm-connection-editor.c:415 +msgid "_Save..." +msgstr "_Gardar…" + +#: ../src/connection-editor/nm-connection-editor.c:416 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "" +"Autenticarse para gardar esta conexión para todos os usuarios desta máquina." + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "_Nome da conexión:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "Conectar _automaticamente" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "Dispoñíbel para todos os usuarios" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "E_xportar…" + +#: ../src/connection-editor/nm-connection-list.c:169 +msgid "never" +msgstr "nunca" + +#: ../src/connection-editor/nm-connection-list.c:180 +#: ../src/connection-editor/nm-connection-list.c:191 +msgid "now" +msgstr "agora" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "hai %d minuto" +msgstr[1] "hai %d minutos" + +#: ../src/connection-editor/nm-connection-list.c:202 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "hai %d hora" +msgstr[1] "hai %d horas" + +#: ../src/connection-editor/nm-connection-list.c:214 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "hai %d día" +msgstr[1] "hai %d días" + +#: ../src/connection-editor/nm-connection-list.c:220 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "hai %d mes" +msgstr[1] "hai %d meses" + +#: ../src/connection-editor/nm-connection-list.c:224 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "hai %d ano" +msgstr[1] "hai %d anos" + +#: ../src/connection-editor/nm-connection-list.c:443 +msgid "Connection add failed" +msgstr "Fallou a inserción da conexión" + +#: ../src/connection-editor/nm-connection-list.c:472 +msgid "Error saving connection" +msgstr "Produciuse un erro ao gardar a conexión" + +#: ../src/connection-editor/nm-connection-list.c:473 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "A propiedade «%s» / «%s» non é válida: %d" + +#: ../src/connection-editor/nm-connection-list.c:480 +#: ../src/connection-editor/nm-connection-list.c:598 +msgid "An unknown error occurred." +msgstr "Produciuse un erro descoñecido." + +#: ../src/connection-editor/nm-connection-list.c:485 +#: ../src/connection-editor/nm-connection-list.c:638 +msgid "Error initializing editor" +msgstr "Produciuse un erro ao inicializar o editor" + +#: ../src/connection-editor/nm-connection-list.c:503 +#: ../src/connection-editor/nm-connection-list.c:655 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"Non foi posíbel inicializar o diálogo do editor de conexións por mor dun " +"erro descoñecido." + +#: ../src/connection-editor/nm-connection-list.c:512 +msgid "Could not create new connection" +msgstr "Non foi posíbel crear a nova conexión" + +#: ../src/connection-editor/nm-connection-list.c:524 +msgid "Could not edit new connection" +msgstr "Non foi posíbel editar a nova conexión" + +#: ../src/connection-editor/nm-connection-list.c:669 +msgid "Could not edit connection" +msgstr "Non foi posíbel editar a conexión" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "Connection delete failed" +msgstr "Fallou a eliminación da conexión" + +#: ../src/connection-editor/nm-connection-list.c:731 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Está seguro de que quere eliminar a conexión %s?" + +#: ../src/connection-editor/nm-connection-list.c:972 +msgid "Name" +msgstr "Nome" + +#: ../src/connection-editor/nm-connection-list.c:985 +msgid "Last Used" +msgstr "Último uso" + +#. Edit +#: ../src/connection-editor/nm-connection-list.c:1026 +msgid "_Edit" +msgstr "_Editar" + +#: ../src/connection-editor/nm-connection-list.c:1027 +msgid "Edit the selected connection" +msgstr "Editar a conexión seleccionada" + +#: ../src/connection-editor/nm-connection-list.c:1028 +msgid "_Edit..." +msgstr "_Editar…" + +#: ../src/connection-editor/nm-connection-list.c:1029 +msgid "Authenticate to edit the selected connection" +msgstr "Autentíquese para editar a conexión seleccionada" + +#. Delete +#: ../src/connection-editor/nm-connection-list.c:1043 +msgid "_Delete" +msgstr "_Eliminar" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Seleccione un tipo de conexión VPN" +#: ../src/connection-editor/nm-connection-list.c:1044 +msgid "Delete the selected connection" +msgstr "Eliminar a conexión seleccionada" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" -"Seleccione o tipo de conexión VPN que quere usar para a nova conexión. Se o " -"tipo de conexión VPN que quere crear non aparece na lista, pode que non teña " -"o engadido de VPN correcto instalado." +#: ../src/connection-editor/nm-connection-list.c:1045 +msgid "_Delete..." +msgstr "_Eliminar..." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "Crear…" +#: ../src/connection-editor/nm-connection-list.c:1046 +msgid "Authenticate to delete the selected connection" +msgstr "Autentíquese para eliminar a conexión seleccionada" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Enderezo" +#: ../src/connection-editor/nm-connection-list.c:1285 +msgid "Error creating connection" +msgstr "Produciuse un erro ao crear a conexión" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Máscara de rede" +#: ../src/connection-editor/nm-connection-list.c:1286 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Non sei como crear as conexións «%s»" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Pasarela" +#: ../src/connection-editor/nm-connection-list.c:1341 +msgid "Error editing connection" +msgstr "Produciuse un erro ao editar a conexión" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Métrica" +#: ../src/connection-editor/nm-connection-list.c:1342 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Non foi posíbel atopar unha conexión co UUID «%s»" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Prefixo" +#: ../src/connection-editor/page-8021x-security.c:119 +msgid "802.1x Security" +msgstr "Seguridade 802.1x" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1518 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-8021x-security.c:121 +msgid "Could not load 802.1x Security user interface." +msgstr "Non foi posíbel cargar a interface de usuario de seguranza 802.1x." + +#: ../src/connection-editor/page-8021x-security.c:139 +msgid "Use 802.1_X security for this connection" +msgstr "Usar a seguridade 802.1_X para esta conexión" #: ../src/connection-editor/page-dsl.c:141 msgid "Could not load DSL user interface." msgstr "Non foi posíbel cargar a interface de usuario de DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:233 #, c-format msgid "DSL connection %d" msgstr "Conexión DSL %d" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Esta opción bloquea esta conexión ao dispositivo de rede especificado polo " +"enderezo MAC introducido aquí. Por exemplo: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:275 +msgid "Could not load ethernet user interface." +msgstr "Non foi posíbel cargar a interface de usuario cableada." + +#: ../src/connection-editor/page-ethernet.c:451 +#, c-format +msgid "Ethernet connection %d" +msgstr "Conexión con fíos %d" + +#: ../src/connection-editor/page-infiniband.c:192 +msgid "Could not load InfiniBand user interface." +msgstr "Non foi posíbel cargar a interface de usuario InfiniBand" + +#: ../src/connection-editor/page-infiniband.c:317 +#, c-format +msgid "InfiniBand connection %d" +msgstr "Conexión InfiniBand %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1677,16 +2009,26 @@ msgid "Disabled" msgstr "Desactivado" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Servidores _DNS adicionais:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Dominios de _busca adicionais:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Editando os camiños IPv4 para %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "Configuración IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Non foi posíbel cargar a inferface de usuario IPv4." @@ -1695,7 +2037,7 @@ msgstr "Automático, só enderezos" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ignorar" @@ -1703,16 +2045,16 @@ msgid "Automatic, DHCP only" msgstr "Automático , só DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Editando os camiños IPv6 para %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "Configuración IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Non foi posíbel cargar a interface de usuario IPv6." @@ -1725,361 +2067,89 @@ msgstr "Tipo de conexión de banda larga móbil non permitido." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:642 msgid "Select Mobile Broadband Provider Type" msgstr "Seleccione o tipo de provedor de banda larga móbil" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:677 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." msgstr "" "Seleccione a tecnoloxía que emprega o seu provedor de banda larga móbil. Se " -"non está seguro, pregúntelle ao seu provedor." - -#: ../src/connection-editor/page-mobile.c:679 -msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "" -"O meu provedor emprega unha tecnoloxía baseada en _GSM (p.ex. GPRS, EDGE, " -"UMTS, HSDPA)" - -#: ../src/connection-editor/page-mobile.c:686 -msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "" -"O meu provedor emprega unha tecnoloxía baseada en C_DMA (p.ex. RTT, EVDO)" - -#: ../src/connection-editor/page-ppp.c:134 -msgid "EAP" -msgstr "EAP" - -#: ../src/connection-editor/page-ppp.c:135 -#: ../src/wireless-security/eap-method-ttls.c:230 -msgid "PAP" -msgstr "PAP" - -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:280 -msgid "CHAP" -msgstr "CHAP" - -#: ../src/connection-editor/page-ppp.c:137 -#: ../src/wireless-security/eap-method-fast.c:277 -#: ../src/wireless-security/eap-method-peap.c:246 -#: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "ningunha" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Editando os métodos de autenticación PPP para %s" - -#: ../src/connection-editor/page-ppp.c:282 -msgid "PPP Settings" -msgstr "Configuración de PPP" - -#: ../src/connection-editor/page-ppp.c:284 -msgid "Could not load PPP user interface." -msgstr "Non foi posíbel cargar a interface de usuario PPP." - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1514 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "Non foi posíbel cargar a interface de usuario VPN." - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "Non foi posíbel atopar o engadido de servizo de VPN para '%s'." - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:899 -#, c-format -msgid "VPN connection %d" -msgstr "Conexión VPN %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"Esta opción bloquea esta conexión ao dispositivo de rede especificado polo " -"enderezo MAC introducido aquí. Por exemplo: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1502 -msgid "Wired" -msgstr "Con fíos" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "Non foi posíbel cargar a interface de usuario cableada." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Conexión de rede con fíos %d" - -#: ../src/connection-editor/page-wired-security.c:119 -msgid "802.1x Security" -msgstr "Seguridade 802.1x" - -#: ../src/connection-editor/page-wired-security.c:121 -msgid "Could not load Wired Security security user interface." -msgstr "" -"Non foi posíbel cargar a interface de usuario de Seguridade da rede con " -"cable." - -#: ../src/connection-editor/page-wired-security.c:139 -msgid "Use 802.1_X security for this connection" -msgstr "Usar a seguridade 802.1_X para esta conexión" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "predeterminado" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1506 -msgid "Wireless" -msgstr "Sen fíos" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "Non foi posíbel cargar a interface de usuario WiFi" - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Conexión de rede sen fíos %d" - -#: ../src/connection-editor/page-wireless-security.c:290 -#: ../src/libnm-gtk/nm-wireless-dialog.c:922 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "Chave WEP de 40/128 bits (Hexadecimal ou ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:300 -#: ../src/libnm-gtk/nm-wireless-dialog.c:931 -msgid "WEP 128-bit Passphrase" -msgstr "Frase de paso WEP 128-bit" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:961 -msgid "Dynamic WEP (802.1x)" -msgstr "WEP dinámica (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:340 -#: ../src/libnm-gtk/nm-wireless-dialog.c:975 -msgid "WPA & WPA2 Personal" -msgstr "WPA & WPA2 Persoal" - -#: ../src/connection-editor/page-wireless-security.c:354 -#: ../src/libnm-gtk/nm-wireless-dialog.c:989 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA & WPA2 Empresarial" - -#: ../src/connection-editor/page-wireless-security.c:395 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"Non foi posíbel cargar a interface de usuario de seguridade WiFi, poderían " -"faltar algunha configuracións WiFi." - -#: ../src/connection-editor/page-wireless-security.c:405 -msgid "Wireless Security" -msgstr "Seguridade de rede sen fíos" - -#: ../src/connection-editor/page-wireless-security.c:407 -msgid "Could not load WiFi security user interface." -msgstr "Non foi posíbel cargar a interface de usuario de seguridade WiFi." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Editando %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Editando unha conexión sen nome" - -#: ../src/connection-editor/nm-connection-editor.c:291 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"O editor de conexión non puido atopar algúns recursos requiridos (non se " -"encontrou o ficheiro .ui)." - -#: ../src/connection-editor/nm-connection-editor.c:394 -msgid "Error creating connection editor dialog." -msgstr "Erro ao crear o diálogo do editor de conexión:" - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "_Save" -msgstr "_Gardar" - -#: ../src/connection-editor/nm-connection-editor.c:407 -msgid "Save any changes made to this connection." -msgstr "Gardar calquera cambio feito nesta conexión." - -#: ../src/connection-editor/nm-connection-editor.c:408 -msgid "_Save..." -msgstr "_Gardar…" - -#: ../src/connection-editor/nm-connection-editor.c:409 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "" -"Autenticarse para gardar esta conexión para todos os usuarios desta máquina." - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "_Importar" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "E_xportar" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "_Nome da conexión:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "Conectar _automaticamente" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Dispoñíbel para todos os usuarios" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "nunca" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "agora" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "hai %d minuto" -msgstr[1] "hai %d minutos" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "hai %d hora" -msgstr[1] "hai %d horas" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "hai %d día" -msgstr[1] "hai %d días" +"non está seguro, pregúntelle ao seu provedor." -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "hai %d mes" -msgstr[1] "hai %d meses" +#: ../src/connection-editor/page-mobile.c:682 +msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" +msgstr "" +"O meu provedor emprega unha tecnoloxía baseada en _GSM (p.ex. GPRS, EDGE, " +"UMTS, HSDPA)" -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "hai %d ano" -msgstr[1] "hai %d anos" +#: ../src/connection-editor/page-mobile.c:689 +msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" +msgstr "" +"O meu provedor emprega unha tecnoloxía baseada en C_DMA (p.ex. RTT, EVDO)" -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Fallou a inserción da conexión" +#: ../src/connection-editor/page-ppp.c:134 +msgid "EAP" +msgstr "EAP" -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Producise un erro ao gardar a conexión" +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 +msgid "PAP" +msgstr "PAP" -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "A propiedade «%s» / «%s» non é válida: %d" +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Produciuse un erro descoñecido." +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Ocorreu un erro ao inicializar o editor" +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:885 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "" -"Non foi posíbel iniciar o diálogo do editor de conexións por mor dun erro " -"descoñecido." +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "ningunha" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Non foi posíbel crear a nova conexión" +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Editando os métodos de autenticación PPP para %s" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Non foi posíbel editar a nova conexión" +#: ../src/connection-editor/page-ppp.c:282 +msgid "PPP Settings" +msgstr "Configuración de PPP" -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "Non foi posíbel editar a conexión" +#: ../src/connection-editor/page-ppp.c:284 +msgid "Could not load PPP user interface." +msgstr "Non foi posíbel cargar a interface de usuario PPP." -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Fallou a eliminación da conexión" +#: ../src/connection-editor/page-vpn.c:113 +msgid "Could not load VPN user interface." +msgstr "Non foi posíbel cargar a interface de usuario VPN." -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:128 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Está seguro de que quere eliminar a conexión %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "Non foi posíbel atopar o engadido de servizo de VPN para '%s'." -#: ../src/connection-editor/nm-connection-list.c:929 -#: ../src/connection-editor/vpn-helpers.c:228 -msgid "Cannot import VPN connection" -msgstr "Non se pode importar a conexión VPN" +#: ../src/connection-editor/page-vpn.c:222 +#: ../src/connection-editor/page-vpn.c:305 +#, c-format +msgid "VPN connection %d" +msgstr "Conexión VPN %d" -#: ../src/connection-editor/nm-connection-list.c:931 +#: ../src/connection-editor/page-vpn.c:248 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2089,81 +2159,99 @@ "\n" "Erro: non existe o tipo de servizo VPN." -#: ../src/connection-editor/nm-connection-list.c:944 -msgid "Could not edit imported connection" -msgstr "Non foi posíbel importar a conexión" +#: ../src/connection-editor/page-vpn.c:273 +msgid "Choose a VPN Connection Type" +msgstr "Seleccione un tipo de conexión VPN" -#: ../src/connection-editor/nm-connection-list.c:1125 -msgid "Name" -msgstr "Nome" +#: ../src/connection-editor/page-vpn.c:274 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Seleccione o tipo de conexión VPN que quere usar para a nova conexión. Se o " +"tipo de conexión VPN que quere crear non aparece na lista, pode que non teña " +"o engadido de VPN correcto instalado." -#: ../src/connection-editor/nm-connection-list.c:1137 -msgid "Last Used" -msgstr "Último uso" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "predeterminado" -#: ../src/connection-editor/nm-connection-list.c:1263 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "" -"Non hai dispoñíbel ningún engadido de VPN. Instale un para activar este " -"botón." +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1274 -msgid "_Edit" -msgstr "_Editar" +#: ../src/connection-editor/page-wifi.c:464 +msgid "Could not load Wi-Fi user interface." +msgstr "Non foi posíbel cargar a interface de usuario sen fíos." -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "Edit the selected connection" -msgstr "Editar a conexión seleccionada" +#: ../src/connection-editor/page-wifi.c:669 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Conexión sen fíos %d" -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "_Edit..." -msgstr "_Editar…" +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Ningunha" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "Authenticate to edit the selected connection" -msgstr "Autentíquese para editar a conexión seleccionada" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "Chave WEP de 40/128 bits (Hexadecimal ou ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1292 -msgid "_Delete" -msgstr "_Borrar" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "Frase de paso WEP 128-bit" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "Delete the selected connection" -msgstr "Eliminar a conexión seleccionada" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "WEP dinámica (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "_Delete..." -msgstr "_Borrar…" +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "WPA & WPA2 Persoal" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "Authenticate to delete the selected connection" -msgstr "Autentíquese para eliminar a conexión seleccionada" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA & WPA2 Empresarial" -#: ../src/connection-editor/nm-connection-list.c:1574 -msgid "Error creating connection" -msgstr "Producise un erro ao crear a conexión" +#: ../src/connection-editor/page-wifi-security.c:395 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"Non foi posíbel cargar a interface de usuario de seguridade sen fíos, faltan " +"os axustes en fíos." -#: ../src/connection-editor/nm-connection-list.c:1575 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Non sei como crear as conexións «%s»" +#: ../src/connection-editor/page-wifi-security.c:405 +msgid "Wi-Fi Security" +msgstr "Seguranza sen fíos" -#: ../src/connection-editor/nm-connection-list.c:1630 -#: ../src/connection-editor/nm-connection-list.c:1642 -msgid "Error editing connection" -msgstr "Producise un erro ao editar a conexión" +#: ../src/connection-editor/page-wifi-security.c:407 +msgid "Could not load Wi-Fi security user interface." +msgstr "Non foi posíbel cargar a interface de usuario de seguridade sen fíos." -#: ../src/connection-editor/nm-connection-list.c:1631 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Non sei como editar as conexións «%s»" +#: ../src/connection-editor/page-wimax.c:160 +msgid "Could not load WiMAX user interface." +msgstr "Non foi posíbel cargar a interface de usuario WiMAX." -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/page-wimax.c:289 #, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Non foi posíbel atopar unha conexión co UUID «%s»" +msgid "WiMAX connection %d" +msgstr "Conexión WiMAX %d" -#: ../src/connection-editor/vpn-helpers.c:230 +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Non é posíbel importar a conexión VPN" + +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2176,29 +2264,29 @@ "\n" "Erro: %s." -#: ../src/connection-editor/vpn-helpers.c:263 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Seleccione o ficheiro para importar" -#: ../src/connection-editor/vpn-helpers.c:314 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Xa existe un ficheiro chamado «%s\"." -#: ../src/connection-editor/vpn-helpers.c:316 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "Substituí_r" -#: ../src/connection-editor/vpn-helpers.c:318 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Quere substituír %s coa conexión VPN que está gardando?" -#: ../src/connection-editor/vpn-helpers.c:354 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" -msgstr "Non se pode exportar a conexión VPN" +msgstr "Non é posíbel exportar a conexión VPN" -#: ../src/connection-editor/vpn-helpers.c:356 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2209,65 +2297,87 @@ "\n" "Erro: %s." -#: ../src/connection-editor/vpn-helpers.c:391 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Exportar conexión VPN…" -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Produciuse un fallo ao crear unha conexión PAN: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"O miniaplicativo NetworkManager non puido atopar algúns recursos requiridos " +"(non se atopou o ficheiro .ui)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "O seu teléfono está listo para usarse" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"A configuración de Bluetooth non é posíbel (Non foi posíbel conectarse a D-" +"Bus: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "Rede %s" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"Non é posíbel a configuración de Bluetooth (produciuse un erro ao buscar o " +"NetworkManager: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Usar o seu teléfono móbil como un dispositivo de rede (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Acceder a Internet usando o seu teléfono móbil (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Erro: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" -msgstr "Produciuse un fallo ao crear a conexión DUN: %s" +msgstr "Produciuse un erro ao crear a conexión DUN: %s" + +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "O seu teléfono está listo para usarse" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Cancelouse o asistente móbil" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Tipo de dispositivo de teléfono descoñecido (non é GSM nin CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "tipo de módem descoñecido." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." -msgstr "fallou ao conectar co teléfono." +msgstr "produciuse un erro ao conectar co teléfono." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "o teléfono desconectouse de forma inesperada." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "expirou o tempo ao detectar os detalles do teléfono." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Detectando a configuración do teléfono…" -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "non foi posíbel atopar o dispositivo Bluetooth." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2275,36 +2385,33 @@ "O adaptador de Bluetooth predeterminado debe estar activado antes de " "configurar unha conexión de rede de marcado telefónico." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "" -"A configuración de Bluetooth non é posíbel (Non foi posíbel conectarse a D-" -"Bus: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" -"Non é posíbel a configuración de Bluetooth (Non foi posíbel crear un proxy D-" -"Bus)" +msgid "Failed to create PAN connection: %s" +msgstr "Produciuse un erro ao crear unha conexión PAN: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"Non é posíbel a configuración de Bluetooth (produciuse un error ao buscar o " -"NetworkManager: %s)." +msgid "%s Network" +msgstr "Rede %s" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Usar o seu teléfono móbil como un dispositivo de rede (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Bloquear automaticamente este dispositivo" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Acceder a Internet usando o seu teléfono móbil (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "Desbloq_uear" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Información de conexión" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Conexións de rede activas" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "" @@ -2312,21 +2419,21 @@ "preferenzas:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "O seu dispositivo:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "O seu provedor:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "O seu plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2340,23 +2447,23 @@ "preferenzas de conexión da banda larga móbil, escolla «Conexións de rede» " "desde o menú Sistema >> Preferenzas." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Confirme as preferenzas da conexión de banda larga móbil" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Sen listar" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "_Seleccione o seu plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "Seleccione o seu plan _APN (Access Point Name):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2368,67 +2475,67 @@ "\n" "Se non está seguro do seu plan pregúntelle ao seu provedor do seu plan APN." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Seleccione o seu plan de facturación" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "O meu plan non está listado…" -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" -msgstr "Seleccione un provedor desde a _listaxe:" +msgstr "Seleccione un provedor desde a _lista:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Provedor" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Non puiden atopar o meu provedor e desexo inserilo _manualmente:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Provedor:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "O meu provedor emprega a tecnoloxía GSM (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "O meu provedor emprega a tecnoloxía CDMA (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Seleccione o seu provedor" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Lista de paises ou estados:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "País ou estado" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "O meu país non está na lista" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Seleccione o país ou estado do seu provedor" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Dispositivo GSM instalado" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Dispositivo CDMA instalado" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2436,104 +2543,103 @@ "Este asistente axúdao a configurar a súa conexión de banda larga móbil a " "unha rede celular (3G) de forma sinxela." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Vostede precisará a seguinte información:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "O nome do seu provedor de banda larga" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "O nome do plan de facturación de banda larga" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" "(nalgúns casos) O seu APN do plan de facturación de banda larga (Access " "Point Name)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Crear unha conexión para es_te dispositivo de banda larga móbil:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Calquera dispositivo" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Configurar unha conexión de banda larga móbil" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Nova conexión de banda larga móbil" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "Nova…" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "C_rear" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network " -"'%s'." +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "" -"Son necesarios contrasinais ou chaves de codificación para acceder á rede " -"sen fíos '%s'." +"Son necesarios contrasinais ou chaves de cifrado para acceder á rede sen " +"fíos «%s»." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 -msgid "Wireless Network Authentication Required" -msgstr "Requírese a autenticación de rede sen fíos" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" +msgstr "Requírese a autenticación para a rede sen fíos" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 -msgid "Authentication required by wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" msgstr "A rede sen fíos require autenticación" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 -msgid "Create New Wireless Network" -msgstr "Crear unha nova rede sen fíos" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 -msgid "New wireless network" -msgstr "Nova rede sen fíos" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "Enter a name for the wireless network you wish to create." -msgstr "Introduza un nome para a rede sen fíos que quere crear." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" +msgstr "Crear unha rede sen fíos" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" +msgstr "Rede sen fíos nova" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "Escriba un nome para a rede sen fíos que quere crear." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 -msgid "Connect to Hidden Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" msgstr "Conectarse a unha rede sen fíos oculta" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 -msgid "Hidden wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" msgstr "Rede sen fíos oculta" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." msgstr "" -"Introduza o nome e os detalles de seguridade da rede sen fíos á que se quere " -"conectar." +"Escriba o nome e os detalles de seguranza da rede sen fíos á que se quere " +"conectarse." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" -msgstr "_Seguridade de rede sen fíos:" +msgid "Wi-Fi _security:" +msgstr "_Seguranza sen fíos:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Co_nexión:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" -msgstr "_Adaptador de rede sen fíos:" +msgid "Wi-Fi _adapter:" +msgstr "_Adaptador sen fíos:" #: ../src/main.c:73 msgid "Usage:" @@ -2553,7 +2659,7 @@ "GNOME desktop environment." msgstr "" "Non está pensado para a interacción a través da liña de ordes pero no seu " -"lugar execútase no contorno de escritorio GNOME." +"lugar execútase no ambiente de escritorio GNOME." #: ../src/mb-menu-item.c:57 msgid "EVDO" @@ -2583,10 +2689,6 @@ msgid "HSPA" msgstr "HSPA" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "desactivado" @@ -2637,40 +2739,55 @@ msgid "Default" msgstr "Predeterminado" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"O miniaplicativo NetworkManager non puido atopar algúns recursos requiridos " -"(non se atopou o ficheiro .ui)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "Conexión %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Non se seleccionou unha Autoridade de Certificación" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" "Non usar un certificado dunha Autoridade de Certificación (CA) pode dar " -"lugar a conexións a redes sen fíos inseguras ou maliciosas. Quere " -"seleccionar un certificado dunha Autoridade de Certificación (CA)?" +"lugar a conexións inseguras a redes sen fíos promíscuas. Desexa seleccionar " +"un certificado dunha Autoridade de Certificación (CA)?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Seleccionar un certificado de CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Chaves privadas DER, PEM, ou PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Certificados DER ou PEM (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Seleccionar un ficheiro PAC…" + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "Ficheiros PAC (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Todos os ficheiros" + #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Anónimo" @@ -2703,23 +2820,6 @@ msgid "Allow automatic PAC pro_visioning" msgstr "Permitir a provisión PAC _automática" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Seleccionar un ficheiro PAC…" - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "Ficheiros PAC (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Todos os ficheiros" - #: ../src/wireless-security/eap-method-peap.c:263 #: ../src/wireless-security/wireless-security.c:382 msgid "MD5" @@ -2864,351 +2964,3 @@ #: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "Índic_e WEP:" - -#~ msgid "PI_N:" -#~ msgstr "PI_N:" - -#~ msgid "MT_U:" -#~ msgstr "MT_U:" - -#~ msgid "_SSID:" -#~ msgstr "_SSID:" - -#~ msgid "_Security:" -#~ msgstr "_Seguranza:" - -#~ msgid "Click on this icon to connect to a wireless network" -#~ msgstr "Prema nesta icona para conectarse a unha rede sen fíos" - -#~ msgid "United Kingdom" -#~ msgstr "Reino Unido" - -#~ msgid "C_onnect" -#~ msgstr "C_onectar" - -#~ msgid "Other Wireless Network..." -#~ msgstr "Outra rede sen fíos…" - -#~ msgid "label" -#~ msgstr "etiqueta" - -#~ msgid "Network Manager" -#~ msgstr "Xestor de rede" - -#~ msgid "An instance of nm-applet is already running.\n" -#~ msgstr "Xa existe unha instancia de nm-applet en execución.\n" - -#~ msgid "Could not acquire the %s service. (%d)\n" -#~ msgstr "Non foi posíbel adquirir o servizo %s (%d)\n" - -#~ msgid "could not connect to the system bus." -#~ msgstr "non foi posíbel conectar co bus do sistema." - -#~ msgid "Cannot start VPN connection '%s'" -#~ msgstr "Non se pode iniciar a conexión VPN '%s'" - -#~ msgid "" -#~ "Could not find the authentication dialog for VPN connection type '%s'. " -#~ "Contact your system administrator." -#~ msgstr "" -#~ "Non foi posíbel atopar o diálogo de autenticación para o tipo de conexión " -#~ "VPN '%s'. Contacte co seu administrador do sistema." - -#~ msgid "" -#~ "There was a problem launching the authentication dialog for VPN " -#~ "connection type '%s'. Contact your system administrator." -#~ msgstr "" -#~ "Houbo un problema ao iniciar o diálogo de autenticación para o tipo de " -#~ "conexión VPN '%s'. Contacte co seu administrador do sistema." - -#~ msgid "PUK code required" -#~ msgstr "Requírese un código PUK" - -#~ msgid "PUK code is needed for the mobile broadband device" -#~ msgstr "É necesario un código PUK para o dispositivo de banda larga móbil" - -#~ msgctxt "No wired security used" -#~ msgid "None" -#~ msgstr "Ningunha" - -#~ msgctxt "Unknown/unrecognized wired or wifi security" -#~ msgid "Unknown" -#~ msgstr "Descoñecido" - -#~ msgid "translator-credits" -#~ msgstr "" -#~ "Mancomún - Centro de Referencia e Servizos de Software Libre " -#~ ", 2009." - -#~ msgid "" -#~ "Active Network Connections" -#~ msgstr "" -#~ "Información da conexión de rede " -#~ "activa" - -#~ msgid "" -#~ "Automatic\n" -#~ "Version 0\n" -#~ "Version 1" -#~ msgstr "" -#~ "Automatic\n" -#~ "Versión 0\n" -#~ "Versión 1" - -#~ msgid "Addresses" -#~ msgstr "Enderezos" - -#~ msgid "" -#~ "Automatic\n" -#~ "Automatic with manual DNS settings\n" -#~ "Manual\n" -#~ "Link-Local\n" -#~ "Shared to other computers" -#~ msgstr "" -#~ "Automático\n" -#~ "Automático con configuración manual de DNS\n" -#~ "Manual\n" -#~ "Conexión local\n" -#~ "Compartida con outros computadores" - -#~ msgid "_Routes…" -#~ msgstr "_Rutas…" - -#~ msgid "Basic" -#~ msgstr "Básico" - -#~ msgid "" -#~ "Any\n" -#~ "3G (UMTS/HSPA)\n" -#~ "2G (GPRS/EDGE)\n" -#~ "Prefer 3G (UMTS/HSPA)\n" -#~ "Prefer 2G (GPRS/EDGE)" -#~ msgstr "" -#~ "Calquera\n" -#~ "3G (UMTS/HSPA)\n" -#~ "2G (GPRS/EDGE)\n" -#~ "Preferir 3G (UMTS/HSPA)\n" -#~ "Preferir 2G (GPRS/EDGE)" - -#~ msgid "Authentication" -#~ msgstr "Autenticación" - -#~ msgid "Echo" -#~ msgstr "Echo" - -#~ msgid "" -#~ "Automatic\n" -#~ "10 Mb/s\n" -#~ "100 Mb/s\n" -#~ "1 Gb/s\n" -#~ "10 Gb/s" -#~ msgstr "" -#~ "Automático\n" -#~ "10 Mb/s\n" -#~ "100 Mb/s\n" -#~ "1 Gb/s\n" -#~ "10 Gb/s" - -#~ msgid "" -#~ "Automatic\n" -#~ "Twisted Pair (TP)\n" -#~ "Attachment Unit Interface (AUI)\n" -#~ "BNC\n" -#~ "Media Independent Interface (MII)" -#~ msgstr "" -#~ "Automático\n" -#~ "Par cruzado (TP)\n" -#~ "Unidade de interface adxunta (AUI)\n" -#~ "BNC\n" -#~ "Interface independente do medio (MII)" - -#~ msgid "" -#~ "Automatic\n" -#~ "A (5 GHz)\n" -#~ "B/G (2.4 GHz)" -#~ msgstr "" -#~ "Automático\n" -#~ "A (5 GHz)\n" -#~ "B/G (2.4 GHz)" - -#~ msgid "" -#~ "The connection editor could not find some required resources (the " -#~ "NetworkManager applet glade file was not found)." -#~ msgstr "" -#~ "O editor de conexión non puido encontrar algúns recursos requiridos (non " -#~ "se encontrou o ficheiro glade da miniaplicación NetworkManager)." - -#~ msgid "Apply" -#~ msgstr "Aplicar" - -#~ msgid "Apply..." -#~ msgstr "Aplicar..." - -#~ msgid "Country" -#~ msgstr "País" - -#~ msgid "Save this connection for all users of this machine." -#~ msgstr "Gardar esta conexión para todos os usuarios desta máquina." - -#~ msgid "" -#~ "The NetworkManager applet could not find some required resources. It " -#~ "cannot continue.\n" -#~ msgstr "" -#~ "A miniaplicación NetworkManager non puido encontrar algúns recursos " -#~ "requiridos. A miniaplicación non pode continuar.\n" - -#~ msgid "Select A File" -#~ msgstr "Seleccionar un ficheiro" - -#~ msgid "PU_K:" -#~ msgstr "PU_K:" - -#~ msgid "_Band:" -#~ msgstr "_Banda:" - -#, fuzzy -#~ msgid "Could not create D-Bus proxy for connection secrets." -#~ msgstr "" -#~ "Non foi posíbel crear o proxy de D-Bus para obter os ..." -#~ "blablablablabla....:" - -#~ msgid "PolicyKit authorization request was invalid." -#~ msgstr "" -#~ "A petición de autorización PolicyKit estaba formada incorrectamente." - -#~ msgid "PolicyKit authorization request was malformed." -#~ msgstr "" -#~ "A petición de autorización PolicyKit estaba formada incorrectamente." - -#~ msgid "PolicyKit authorization could not be created." -#~ msgstr "Non se puido crear a autorización PolicyKit." - -#~ msgid "PolicyKit authorization could not be created; invalid action ID." -#~ msgstr "" -#~ "Non se puido crear a autorización PolicyKit, o ID de acción é inválido." - -#~ msgid "Could not obtain required privileges" -#~ msgstr "Non se puideron obter os privilexios requiridos" - -#~ msgid "Could not delete connection" -#~ msgstr "Non se puido eliminar a conexión" - -#~ msgid "The connection could not be deleted due to an unknown error." -#~ msgstr "Non se puido eliminar a conexión debido a un erro descoñecido." - -#~ msgid "Could not move connection" -#~ msgstr "Non se puido mover a conexión" - -#~ msgid "Could not add connection" -#~ msgstr "Non se puido engadir a conexión" - -#~ msgid "The connection could not be added due to an unknown error." -#~ msgstr "Non foi posíbel engadir a conexión debido a un erro inesperado." - -#~ msgid "Could not update connection" -#~ msgstr "Non se puido actualizar a conexión" - -#~ msgid "The connection could not be updated due to an unknown error." -#~ msgstr "Non se puido actualizar a conexión debido a un erro descoñecido." - -#~ msgid "User Name:" -#~ msgstr "Nome de usuario:" - -#~ msgid "alert text" -#~ msgstr "texto de alerta" - -#~ msgid "" -#~ "Choose a Mobile Broadband " -#~ "Connection\n" -#~ "\n" -#~ "Select or connect the mobile broadband device you wish to use for the new " -#~ "connection. If the device is not available, you may select a generic " -#~ "connection type." -#~ msgstr "" -#~ "Elixa unha conexión de banda ancha " -#~ "móbil\n" -#~ "\n" -#~ "Seleccione ou conecte o dispositivo de banda ancha móbil que quere usar " -#~ "para a nova conexión. Se o dispositivo non está dispoñíbel pode " -#~ "seleccionar un tipo de conexión xenérico." - -#~ msgid "Create a GSM connection" -#~ msgstr "Crear unha conexión GSM" - -#~ msgid "Create a CDMA connection" -#~ msgstr "Crear unha conexión CDMA" - -#~ msgid "Removing connection failed: %s." -#~ msgstr "Fallou a eliminación da conexión: %s." - -#~ msgid "Could not add system connection: permission denied." -#~ msgstr "No se puido engadir a conexión do sistema: permiso denegado." - -#~ msgid "Adding connection failed: %s." -#~ msgstr "Fallou ao engadir a conexión: %s." - -#~ msgid "Updating connection failed: %s." -#~ msgstr "Fallou a actualización da conexión: %s." - -#~ msgid "GSM connection %d" -#~ msgstr "Conexión GSM %d" - -#~ msgid "CDMA connection %d" -#~ msgstr "Conexión CDMA %d" - -#~ msgid "gtk-cancel" -#~ msgstr "gtk-cancel" - -#~ msgid "gtk-ok" -#~ msgstr "gtk-ok" - -#~ msgid "device is unmanaged" -#~ msgstr "o dispositivo non está xestionado" - -#~ msgid "Dialing mobile broadband device %s..." -#~ msgstr "Chamando ao dispositivo de banda larga móbil %s..." - -#~ msgid "Starting PPP on device %s..." -#~ msgstr "Iniciando PPP no dispositivo %s..." - -#~ msgid "Waiting for user authentication on device '%s'..." -#~ msgstr "Agardando a autenticación do usuario no dispositivo '%s'..." - -#~ msgid "Mobile broadband connection '%s'" -#~ msgstr "Conexión de banda larga móbil '%s'" - -#~ msgid "Preparing device %s for the wired network..." -#~ msgstr "Preparando o dispositivo %s para a rede con fíos..." - -#~ msgid "Configuring device %s for the wired network..." -#~ msgstr "Configurando o dispositivo %s para a rede con fíos..." - -#~ msgid "Requesting a network address from the wired network..." -#~ msgstr "Solicitando un enderezo de rede á rede con fíos..." - -#~ msgid "Wired network connection" -#~ msgstr "Conexión de rede con fíos" - -#~ msgid "Preparing device %s for the wireless network '%s'..." -#~ msgstr "Preparando o dispositivo %s para a rede sen fíos '%s'..." - -#~ msgid "Attempting to join the wireless network '%s'..." -#~ msgstr "Tentando conectarse á rede sen fíos '%s'..." - -#~ msgid "Requesting a network address from the wireless network '%s'..." -#~ msgstr "Solicitando un enderezo de rede á rede sen fíos '%s'..." - -#~ msgid "Waiting for Network Key for the wireless network '%s'..." -#~ msgstr "Agardando pola chave de rede da rede sen fíos '%s'..." - -#~ msgid "Wireless network connection to '%s' (%d%%)" -#~ msgstr "Conexión de rede sen fíos con '%s' (%d%%)" - -#~ msgid "Wireless network connection to '%s'" -#~ msgstr "Conexión de rede sen fíos con '%s'" - -#~ msgid "Use Authentication" -#~ msgstr "Usar a autenticación" - -#~ msgid "Point-to-Point Protocol (PPP)" -#~ msgstr "Protocolo punto a punto (PPP)" diff -Nru network-manager-applet-0.9.4.1/po/gu.po network-manager-applet-0.9.6.2+git201210311320.2620/po/gu.po --- network-manager-applet-0.9.4.1/po/gu.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/gu.po 2012-10-31 13:20:57.000000000 +0000 @@ -3,14 +3,14 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # # Ankit Patel , 2004. -# Sweta Kothari , 2009, 2010, 2011. +# Sweta Kothari , 2009, 2010, 2011, 2012. msgid "" msgstr "" "Project-Id-Version: gu\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." "cgi?product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2011-09-13 14:26+0000\n" -"PO-Revision-Date: 2011-09-23 16:23+0000\n" +"POT-Creation-Date: 2012-03-23 08:27+0000\n" +"PO-Revision-Date: 2012-03-26 12:03+0530\n" "Last-Translator: \n" "Language-Team: gu_IN \n" "MIME-Version: 1.0\n" @@ -21,39 +21,37 @@ "\n" #: ../nm-applet.desktop.in.h:1 -#| msgid "Control your network connections" -msgid "Manage your network connections" -msgstr "તમારા નેટવર્ક જોડાણોને સંચાલિત કરો" - -#: ../nm-applet.desktop.in.h:2 -#| msgid "%s Network" msgid "Network" msgstr "નેટવર્ક" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "WiFi બનાવવાનું નિષ્ક્રિય કરો" +#: ../nm-applet.desktop.in.h:2 +msgid "Manage your network connections" +msgstr "તમારા નેટવર્ક જોડાણોને સંચાલિત કરો" -#: ../nm-applet.schemas.in.h:2 +#: ../nm-applet.schemas.in.h:1 msgid "Disable connected notifications" msgstr "જોડાયેલ સૂચનાઓને નિષ્ક્રિય કરો" -#: ../nm-applet.schemas.in.h:3 -msgid "Disable disconnected notifications" -msgstr "જોડાયેલ નહિં હોય તેવી સૂચનાઓને નિષ્ક્રિય કરો" - -#: ../nm-applet.schemas.in.h:4 +#: ../nm-applet.schemas.in.h:2 msgid "Set this to TRUE to disable notifications when connecting to a network." msgstr "" "જ્યારે નેટવર્ક ને જોડી રહ્યા હોય ત્યારે સૂચનાઓને નિષ્ક્રિય કરવા માટે આને TRUE તરીકે સુયોજિત " "કરો." -#: ../nm-applet.schemas.in.h:5 +#: ../nm-applet.schemas.in.h:3 +msgid "Disable disconnected notifications" +msgstr "જોડાયેલ નહિં હોય તેવી સૂચનાઓને નિષ્ક્રિય કરો" + +#: ../nm-applet.schemas.in.h:4 msgid "Set this to TRUE to disable notifications when disconnecting from a network." msgstr "" "જ્યારે નેટવર્ક માંથી જોડાણને તોડી રહ્યા હોય ત્યારે સૂચનાઓને નિષ્ક્રિય કરવા માટે આને TRUE " "તરીકે સુયોજિત કરો." +#: ../nm-applet.schemas.in.h:5 +msgid "Suppress networks available notifications" +msgstr "નેટવર્ક ઉપલબ્ધ સૂચનાઓને દાબી દો" + #: ../nm-applet.schemas.in.h:6 msgid "" "Set this to TRUE to disable notifications when wireless networks are " @@ -61,48 +59,48 @@ msgstr "જ્યારે નેટવર્કો ઉપલ્બધ હોય ત્યારે સૂચનાઓને નિષ્ક્રિય કરવા માટે આને TRUE તરીકે સુયોજિત કરો." #: ../nm-applet.schemas.in.h:7 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "" -"જ્યારે એપલેટ ને વાપરી રહ્યા હોય ત્યારે adhoc નેટવર્કોને બનાવવાનું નિષ્ક્રિય કરવા માટે આને " -"TRUE તરીકે સુયોજિત કરો." - -#: ../nm-applet.schemas.in.h:8 msgid "Stamp" msgstr "સ્ટૅમ્પ" +#: ../nm-applet.schemas.in.h:8 +msgid "Used to determine whether settings should be migrated to a new version." +msgstr "નક્કી કરવા માટે વાપરેલ છે ક્યાંતો સુયોજનો અ નવી આવૃત્તિમાં સ્થળાંતર થયેલ હોવા જોઇએ." + #: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" -msgstr "નેટવર્ક ઉપલબ્ધ સૂચનાઓને દાબી દો" +msgid "Disable WiFi Create" +msgstr "WiFi બનાવવાનું નિષ્ક્રિય કરો" #: ../nm-applet.schemas.in.h:10 -msgid "Used to determine whether settings should be migrated to a new version." -msgstr "નક્કી કરવા માટે વાપરેલ છે ક્યાંતો સુયોજનો અ નવી આવૃત્તિમાં સ્થળાંતર થયેલ હોવા જોઇએ." +msgid "Set to TRUE to disable creation of adhoc networks when using the applet." +msgstr "" +"જ્યારે એપલેટ ને વાપરી રહ્યા હોય ત્યારે adhoc નેટવર્કોને બનાવવાનું નિષ્ક્રિય કરવા માટે આને " +"TRUE તરીકે સુયોજિત કરો." #: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "તમારા નેટવર્ક જોડાણ સુયોજનોને બદલો અને સંચાલિત કરો" - -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 msgid "Network Connections" msgstr "નેટવર્ક જોડાણો" +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "તમારા નેટવર્ક જોડાણ સુયોજનોને બદલો અને સંચાલિત કરો" + #: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:443 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "ઉપલબ્ધ" #: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:485 ../src/applet-device-wired.c:269 +#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "તમે હવે '%s' માં જોડાયેલ છો." #: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:489 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1280 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "જોડાણ સ્થાપિત થયેલ છે" @@ -111,32 +109,32 @@ msgstr "તમે હવે મોબાઇલ બ્રોડબૅન્ડ નેટવર્ક સાથે જોડાયેલ છો." #: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:525 ../src/applet-device-wimax.c:464 +#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "મોબાઇલ બ્રોડબેન્ડ જોડાણ '%s' ની તૈયારી કરી રહ્યા છે..." #: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:467 +#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "મોબાઇલ બ્રોડબેન્ડ જોડાણ '%s' ને રૂપરેખાંકિત કરી રહ્યા છે..." #: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:470 +#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "મોબાઇલ બ્રોડબેન્ડ જોડાણ '%s' માટે વપરાશકર્તા સત્તાધિકરણ જરૂરી..." #: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2479 +#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2503 #, c-format msgid "Requesting a network address for '%s'..." msgstr "'%s' માટે નેટવર્ક સરનામાંની માંગણી કરી રહ્યા છે..." #: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:552 +#: ../src/applet-device-gsm.c:555 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "મોબાઇલ બ્રોડબેન્ડ જોડાણ '%s' સક્રિય" @@ -146,16 +144,16 @@ msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:389 -#: ../src/applet-dialogs.c:405 +#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "મોબાઇલ બ્રોડબેન્ડ (%s)" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:391 +#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 #: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -#: ../src/connection-editor/nm-connection-list.c:1474 +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "મોબાઇલ બ્રોડબેન્ડ" @@ -168,77 +166,79 @@ msgid "You are now connected to the CDMA network." msgstr "તમે હવે CDMA નેટવર્ક સાથે જોડાયેલ છો." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:547 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "મોબાઇલ બ્રોડબેન્ડ જોડાણ '%s' સક્રિય: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "રોમિંગ" #: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -#| msgid "More networks" msgid "CDMA network." msgstr "CDMA નેટવર્ક." -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1098 -#| msgid "You are now connected to the wired network." +#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 msgid "You are now registered on the home network." msgstr "તમે હવે ઘર નેટવર્ક પર રજીસ્ટર થયેલ છે." -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1104 -#| msgid "You are now connected to the wired network." +#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 msgid "You are now registered on a roaming network." msgstr "તમે હવે રોમિંગ નેટવર્ક પર રજીસ્ટર થયેલ છે." -#: ../src/applet-device-gsm.c:210 ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" #. Default connection item -#: ../src/applet-device-gsm.c:456 +#: ../src/applet-device-gsm.c:459 msgid "New Mobile Broadband (GSM) connection..." msgstr "નવું મોબાઇલ બ્રોડબેન્ડ (GSM) જોડાણ..." -#: ../src/applet-device-gsm.c:490 +#: ../src/applet-device-gsm.c:493 msgid "You are now connected to the GSM network." msgstr "તમે હવે GSM નેટવર્ક સાથે જોડાયેલ છો." -#: ../src/applet-device-gsm.c:651 +#: ../src/applet-device-gsm.c:654 msgid "PIN code required" msgstr "PIN કોડની જરૂરિયાત છે" -#: ../src/applet-device-gsm.c:659 +#: ../src/applet-device-gsm.c:662 msgid "PIN code is needed for the mobile broadband device" msgstr "મોબાઇલ બ્રોડબેન્ડ ઉપકરણ માટે PIN કોડની જરૂર છે" -#: ../src/applet-device-gsm.c:784 +#: ../src/applet-device-gsm.c:783 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "'%s' પર SIM કાર્ડ '%s' માટે PIN કોડ" + +#: ../src/applet-device-gsm.c:875 msgid "Wrong PIN code; please contact your provider." msgstr "ખોટો PIN કોડ; મહેરબાની કરીને તમારા પોષણકર્તાનો સંપર્ક કરો." -#: ../src/applet-device-gsm.c:807 +#: ../src/applet-device-gsm.c:898 msgid "Wrong PUK code; please contact your provider." msgstr "ખોટો PUK કોડ; મહેરબાની કરીને તમારા પોષણકર્તાનો સંપર્ક કરો." #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:834 +#: ../src/applet-device-gsm.c:925 msgid "Sending unlock code..." msgstr "તાળુ ખૂલેલ કોડને મોકલી રહ્યા છે..." -#: ../src/applet-device-gsm.c:897 +#: ../src/applet-device-gsm.c:988 msgid "SIM PIN unlock required" msgstr "SIM PIN તાળુ ખોલવુ જરૂરી" -#: ../src/applet-device-gsm.c:898 +#: ../src/applet-device-gsm.c:989 msgid "SIM PIN Unlock Required" msgstr "SIM PIN તાળુ ખોલવુ જરૂરી" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:900 +#: ../src/applet-device-gsm.c:991 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " @@ -246,25 +246,25 @@ msgstr "તે વાપરી શકે તે પહેલાં મોબાઇલ બ્રોડબેન્ડ ઉપકરણ '%s' ને SIM PIN કોડની જરૂર છે." #. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:902 +#: ../src/applet-device-gsm.c:993 msgid "PIN code:" msgstr "PIN કોડ:" #. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:906 +#: ../src/applet-device-gsm.c:997 msgid "Show PIN code" msgstr "PIN કોડ બતાવો" -#: ../src/applet-device-gsm.c:909 +#: ../src/applet-device-gsm.c:1000 msgid "SIM PUK unlock required" msgstr "SIM PUK તાળુ ખોલવુ જરૂરી" -#: ../src/applet-device-gsm.c:910 +#: ../src/applet-device-gsm.c:1001 msgid "SIM PUK Unlock Required" msgstr "SIM PUK તાળુ ખોલવુ જરૂરી" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:912 +#: ../src/applet-device-gsm.c:1003 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " @@ -272,27 +272,26 @@ msgstr "તે વાપરી શકે તે પહેલાં મોબાઇલ બ્રોડબેન્ડ ઉપકરણ '%s' ને SIM PUK કોડની જરૂર છે." #. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:914 +#: ../src/applet-device-gsm.c:1005 msgid "PUK code:" msgstr "PUK કોડ:" #. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:917 +#: ../src/applet-device-gsm.c:1008 msgid "New PIN code:" msgstr "નવો PIN કોડ:" #. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:919 +#: ../src/applet-device-gsm.c:1010 msgid "Re-enter new PIN code:" msgstr "નવા PIN કોડને પુન:દાખલ કરો:" #. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:924 +#: ../src/applet-device-gsm.c:1015 msgid "Show PIN/PUK codes" msgstr "PIN/PUK કોડ બતાવો" -#: ../src/applet-device-gsm.c:1097 ../src/applet-device-gsm.c:1103 -#| msgid "More networks" +#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 msgid "GSM network." msgstr "CDMA નેટવર્ક." @@ -319,7 +318,7 @@ msgstr "વાયરવાળુ નેટવર્ક" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1485 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1509 msgid "disconnected" msgstr "જોડાયેલ નથી" @@ -368,85 +367,104 @@ msgid "(none)" msgstr "(કંઇ નહિં)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Networks (%s)" msgstr "વાયરલેસ નેટવર્કો (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:794 #, c-format msgid "Wireless Network (%s)" msgstr "વાયરલેસ નેટવર્ક (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:796 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "વાયરલેસ નેટવર્ક" msgstr[1] "વાયરલેસ નેટવર્કો" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:829 msgid "wireless is disabled" msgstr "વાયરલેસ નિષ્ક્રિય થયેલ છે" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:830 msgid "wireless is disabled by hardware switch" msgstr "હાર્ડવેર સ્વિચ દ્દારા વાયરલેસ નિષ્ક્રિય છે" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:891 msgid "More networks" msgstr "વધારે નેટવર્કો" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1071 msgid "Wireless Networks Available" msgstr "વાયરલેસ નેટવર્કો ઉપલ્બધ છે" -#: ../src/applet-device-wifi.c:1083 -msgid "Click on this icon to connect to a wireless network" -msgstr "વાયરલેસને નેટવર્કને જોડવા માટે આ આઇકોન પર ક્લિક કરો" - -#: ../src/applet-device-wifi.c:1084 +#: ../src/applet-device-wifi.c:1072 msgid "Use the network menu to connect to a wireless network" msgstr "વાયરલેસને નેટવર્કને જોડવા માટે નેટવર્ક મેનુને વાપરો" -#: ../src/applet-device-wifi.c:1087 ../src/applet.c:901 +#: ../src/applet-device-wifi.c:1075 ../src/applet.c:925 msgid "Don't show this message again" msgstr "ફરીથા આ સંદેશને બતાવો નહિં" -#: ../src/applet-device-wifi.c:1279 +#: ../src/applet-device-wifi.c:1267 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "તમે હવે વાયરલેસ નેટવર્ક '%s' સાથે જોડાયેલ છો." -#: ../src/applet-device-wifi.c:1310 +#: ../src/applet-device-wifi.c:1298 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "વાયરલેસ નેટવર્ક જોડાણ '%s' ની તૈયારી કરી રહ્યા છે..." -#: ../src/applet-device-wifi.c:1313 +#: ../src/applet-device-wifi.c:1301 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "વાયરલેસ નેટવર્ક જોડાણ '%s' ને રૂપરેખાંકિત કરી રહ્યા છે..." -#: ../src/applet-device-wifi.c:1316 +#: ../src/applet-device-wifi.c:1304 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "વાયરલેસ નેટવર્ક '%s' માટે વપરાશકર્તા સત્તાધિકરણ જરૂરી..." -#: ../src/applet-device-wifi.c:1319 +#: ../src/applet-device-wifi.c:1307 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "'%s' માટે વાયરલેસ નેટવર્ક સરનામાંને સૂચન કરી રહ્યા છે..." -#: ../src/applet-device-wifi.c:1340 +#: ../src/applet-device-wifi.c:1328 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "વાયરલેસ નેટવર્ક જોડાણ '%s' સક્રિય છે: %s (%d%%)" -#: ../src/applet-device-wifi.c:1345 +#: ../src/applet-device-wifi.c:1333 #, c-format msgid "Wireless network connection '%s' active" msgstr "વાયરલેસ નેટવર્ક જોડાણ '%s' સક્રિય છે" +#: ../src/applet-device-wifi.c:1381 +#| msgid "Failed to create PAN connection: %s" +msgid "Failed to activate connection" +msgstr "જોડાણને સક્રિય કરવામાં નિષ્ફળતા" + +#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 +#: ../src/applet.c:491 ../src/applet.c:535 ../src/applet.c:561 +#| msgctxt "Speed" +#| msgid "Unknown" +msgid "Unknown error" +msgstr "અજ્ઞાત ભૂલ" + +#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 +#: ../src/applet.c:494 ../src/applet.c:564 +#| msgid "Connection add failed" +msgid "Connection failure" +msgstr "જોડાણ નિષ્ફળ" + +#: ../src/applet-device-wifi.c:1400 +#| msgid "Could not edit new connection" +msgid "Failed to add new connection" +msgstr "નવા જોડાણને ઉમેરવામાં નિષ્ફળતા" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -468,181 +486,217 @@ msgid "You are now connected to the WiMAX network." msgstr "તમે હવે WiMAX નેટવર્ક સાથે જોડાયેલ છો." -#: ../src/applet-dialogs.c:56 +#: ../src/applet-dialogs.c:57 msgid "Error displaying connection information:" msgstr "જોડાણ જાણકારીને દેખાડવામાં ભૂલ:" -#: ../src/applet-dialogs.c:108 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:396 +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" -#: ../src/applet-dialogs.c:110 +#: ../src/applet-dialogs.c:111 msgid "Dynamic WEP" msgstr "ડાયનેમિક WEP" -#: ../src/applet-dialogs.c:112 ../src/applet-dialogs.c:221 -#: ../src/applet-dialogs.c:223 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:219 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:227 ../src/applet-dialogs.c:236 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "કંઇ નહિં" -#: ../src/applet-dialogs.c:327 ../src/applet-dialogs.c:465 +#: ../src/applet-dialogs.c:277 +#, c-format +#| msgid "1 (Default)" +msgid "%s (default)" +msgstr "%s (મૂળભૂત)" + +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:329 ../src/applet-dialogs.c:467 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "અજ્ઞાત" -#: ../src/applet-dialogs.c:342 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:344 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "અજ્ઞાત" -#: ../src/applet-dialogs.c:356 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "અજ્ઞાત" -#: ../src/applet-dialogs.c:391 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "ઇથરનેટ (%s)" -#: ../src/applet-dialogs.c:394 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:401 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:403 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:407 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:413 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "સામાન્ય" -#: ../src/applet-dialogs.c:417 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "ઇન્ટરફેસ:" -#: ../src/applet-dialogs.c:433 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "હાર્ડવેર સરનામું:" #. Driver -#: ../src/applet-dialogs.c:441 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "ડ્રાઇવર:" -#: ../src/applet-dialogs.c:470 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "ઝડપ:" -#: ../src/applet-dialogs.c:480 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "સુરક્ષા:" -#: ../src/applet-dialogs.c:493 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:506 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:523 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:534 ../src/applet-dialogs.c:641 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP સરનામું:" -#: ../src/applet-dialogs.c:536 ../src/applet-dialogs.c:552 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "અજ્ઞાત" -#: ../src/applet-dialogs.c:550 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "બ્રોડકાસ્ટ સરનામું:" #. Prefix -#: ../src/applet-dialogs.c:559 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "સબનેટ માસ્ક:" -#: ../src/applet-dialogs.c:561 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "અજ્ઞાત" -#: ../src/applet-dialogs.c:569 ../src/applet-dialogs.c:656 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "મૂળભૂત માર્ગ:" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "પ્રાથમિક DNS:" -#: ../src/applet-dialogs.c:590 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "ગૌણ DNS:" -#: ../src/applet-dialogs.c:600 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "ટર્નરિ DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:615 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:624 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "અવગણેલ" +#: ../src/applet-dialogs.c:796 +#| msgid "_Type:" +msgid "VPN Type:" +msgstr "VPN પ્રકાર:" + +#: ../src/applet-dialogs.c:803 +#| msgid "Gateway" +msgid "VPN Gateway:" +msgstr "VPN ગેટવે:" + +#: ../src/applet-dialogs.c:809 +#| msgid "_Username:" +msgid "VPN Username:" +msgstr "VPN વપરાશકર્તાનામ:" + +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "VPN બૅનર:" + +#: ../src/applet-dialogs.c:821 +#| msgid "C_onnection:" +msgid "Base Connection:" +msgstr "આધાર જોડાણ:" + +#: ../src/applet-dialogs.c:823 +#| msgctxt "Speed" +#| msgid "Unknown" +msgid "Unknown" +msgstr "અજ્ઞાત" + #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:732 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "યોગ્ય સક્રિય જોડાણ શોધાયુ નથી!" -#: ../src/applet-dialogs.c:785 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -652,32 +706,52 @@ "Copyright © 2005-2008 Novell, Inc.\n" "અને ઘણા બીજા સમુદાયનાં ફાળકો અને અનુવાદકો" -#: ../src/applet-dialogs.c:788 +#: ../src/applet-dialogs.c:942 msgid "Notification area applet for managing your network devices and connections." msgstr "તમારા નેટવર્ક ઉપકરણો અને જોડાણો ને સંચાલિત કરવા માટે સૂચના વિસ્તાર એપલેટ." -#: ../src/applet-dialogs.c:790 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "નેટવર્ક વ્યવસ્થાપક વેબસાઇટ" -#: ../src/applet-dialogs.c:805 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "ગુમ થયેલ સ્ત્રોતો" -#: ../src/applet-dialogs.c:830 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "મોબાઇલ બ્રોડબેન્ડ નેટવર્ક પાસવર્ડ" -#: ../src/applet-dialogs.c:839 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "પાસવર્ડ ને '%s' માં જોડાવાની જરૂરિયાત છે." -#: ../src/applet-dialogs.c:858 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "પાસવર્ડ:" -#: ../src/applet.c:990 +#: ../src/applet.c:489 +#| msgid "Failed to create PAN connection: %s" +msgid "Failed to add/activate connection" +msgstr "જોડાણને ઉમેરવાનું/સક્રિય કરવામાં નિષ્ફળ" + +#: ../src/applet.c:533 +#| msgid "disconnected" +msgid "Device disconnect failed" +msgstr "ઉપકરણનું જોડાણ તોડવામાં નિષ્ફળતા" + +#: ../src/applet.c:538 +#| msgid "Disconnected" +msgid "Disconnect failure" +msgstr "નિષ્ફળતા જોડાયેલ નથી" + +#: ../src/applet.c:559 +#| msgid "Connection add failed" +msgid "Connection activation failed" +msgstr "જોડાણ સક્રિયકરણ નિષ્ફળ" + +#: ../src/applet.c:1014 #, c-format msgid "" "\n" @@ -687,7 +761,7 @@ "\n" "VPN જોડાણ '%s' નિષ્ફળ કારણ કે નેટવર્ક જોડાણ એ અટકેલ હતા." -#: ../src/applet.c:993 +#: ../src/applet.c:1017 #, c-format msgid "" "\n" @@ -696,7 +770,7 @@ "\n" "VPN જોડાણ '%s' નિષ્ફળ કારણ કે VPN સેવા અનિચ્છનીય રીતે અટકેલ છે." -#: ../src/applet.c:996 +#: ../src/applet.c:1020 #, c-format msgid "" "\n" @@ -706,7 +780,7 @@ "\n" "VPN જોડાણ '%s' નિષ્ફળ કારણ કે VPN સેવા એ અયોગ્ય રૂપરેખાંકન પાછુ લાવેલ છે." -#: ../src/applet.c:999 +#: ../src/applet.c:1023 #, c-format msgid "" "\n" @@ -715,7 +789,7 @@ "\n" "VPN જોડાણ '%s' નિષ્ફળ કારણ કે જોડાણ પ્રયત્ન કરવાનો સમય સમાપ્ત થયેલ છે." -#: ../src/applet.c:1002 +#: ../src/applet.c:1026 #, c-format msgid "" "\n" @@ -724,7 +798,7 @@ "\n" "VPN જોડાણ '%s' નિષ્ફળ કારણ કે VPN સેવા સમય પર શરૂ થઇ ન હતી." -#: ../src/applet.c:1005 +#: ../src/applet.c:1029 #, c-format msgid "" "\n" @@ -733,7 +807,7 @@ "\n" "VPN જોડાણ '%s' નિષ્ફળ કારણ કે VPN સેવા શરૂ કરતી વખતે નિષ્ફળ." -#: ../src/applet.c:1008 +#: ../src/applet.c:1032 #, c-format msgid "" "\n" @@ -742,7 +816,7 @@ "\n" "VPN જોડાણ '%s' નિષ્ફળ કારણ કે VPN ગુપ્તતાઓ યોગ્ય ન હતી." -#: ../src/applet.c:1011 +#: ../src/applet.c:1035 #, c-format msgid "" "\n" @@ -751,7 +825,7 @@ "\n" "VPN જોડાણ '%s' નિષ્ફળ અયોગ્ય ગુપ્તતાઓને કારણે." -#: ../src/applet.c:1018 +#: ../src/applet.c:1042 #, c-format msgid "" "\n" @@ -760,7 +834,7 @@ "\n" "VPN જોડાણ '%s' નિષ્ફળ." -#: ../src/applet.c:1036 +#: ../src/applet.c:1060 #, c-format msgid "" "\n" @@ -770,7 +844,7 @@ "\n" "VPN જોડાણ '%s' જોડાયેલ નથી કારણ કે નેટવર્ક જોડાણ અટકેલ હતુ." -#: ../src/applet.c:1039 +#: ../src/applet.c:1063 #, c-format msgid "" "\n" @@ -779,7 +853,7 @@ "\n" "VPN જોડાણ '%s' જોડાયેલ નથી કારણ કે VPN સેવા અટકેલ છે." -#: ../src/applet.c:1045 +#: ../src/applet.c:1069 #, c-format msgid "" "\n" @@ -788,15 +862,15 @@ "\n" "VPN જોડાણ '%s' જોડાયેલ નથી." -#: ../src/applet.c:1079 +#: ../src/applet.c:1103 msgid "VPN Login Message" msgstr "VPN પ્રવેશ સંદેશ" -#: ../src/applet.c:1085 ../src/applet.c:1093 ../src/applet.c:1143 +#: ../src/applet.c:1109 ../src/applet.c:1117 ../src/applet.c:1167 msgid "VPN Connection Failed" msgstr "VPN જોડાણ નિષ્ફળ" -#: ../src/applet.c:1150 +#: ../src/applet.c:1174 #, c-format msgid "" "\n" @@ -809,7 +883,7 @@ "\n" "%s" -#: ../src/applet.c:1153 +#: ../src/applet.c:1177 #, c-format msgid "" "\n" @@ -822,174 +896,178 @@ "\n" "%s" -#: ../src/applet.c:1473 +#: ../src/applet.c:1497 msgid "device not ready (firmware missing)" msgstr "ઉપકરણ તૈયાર નથી (ગેરહાજર ફર્મવેર)" -#: ../src/applet.c:1475 +#: ../src/applet.c:1499 msgid "device not ready" msgstr "ઉપકરણ તૈયાર નથી" -#: ../src/applet.c:1501 +#: ../src/applet.c:1525 msgid "Disconnect" msgstr "જોડાણ તોડી નાંખો" -#: ../src/applet.c:1515 +#: ../src/applet.c:1539 msgid "device not managed" msgstr "ઉપકરણ સંચાલિત નથી" -#: ../src/applet.c:1559 +#: ../src/applet.c:1583 msgid "No network devices available" msgstr "નેટવર્ક ઉપકરણો ઉપલ્બધ નથી" -#: ../src/applet.c:1647 +#: ../src/applet.c:1671 msgid "_VPN Connections" msgstr "VPN જોડાણો (_V)" -#: ../src/applet.c:1704 +#: ../src/applet.c:1728 msgid "_Configure VPN..." msgstr "VPN ને રૂપરેખાંકિત કરો (_C)..." -#: ../src/applet.c:1708 +#: ../src/applet.c:1732 msgid "_Disconnect VPN" msgstr "VPN નુ જોડાણ તોડી નાંખો (_D)..." -#: ../src/applet.c:1806 +#: ../src/applet.c:1830 msgid "NetworkManager is not running..." msgstr "નેટવર્ક વ્યવસ્થાપક ચાલતું નથી..." -#: ../src/applet.c:1811 ../src/applet.c:2604 +#: ../src/applet.c:1835 ../src/applet.c:2634 msgid "Networking disabled" msgstr "નેટવર્કીંગ નિષ્ક્રિય થયેલ છે" #. 'Enable Networking' item -#: ../src/applet.c:2032 +#: ../src/applet.c:2056 msgid "Enable _Networking" msgstr "નેટવર્કીંગને સક્રિય કરો (_N)" #. 'Enable Wireless' item -#: ../src/applet.c:2041 +#: ../src/applet.c:2065 msgid "Enable _Wireless" msgstr "વાયરલેસ ને સક્રિય કરો (_W)" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2050 +#: ../src/applet.c:2074 msgid "Enable _Mobile Broadband" msgstr "મોબાઇલ બ્રોડબેન્ડ ને સક્રિય કરો (_M)" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2059 +#: ../src/applet.c:2083 msgid "Enable WiMA_X Mobile Broadband" msgstr "WiMAX મોબાઇલ બ્રોડબેન્ડને સક્રિય કરો (_X)" #. Toggle notifications item -#: ../src/applet.c:2070 +#: ../src/applet.c:2094 msgid "Enable N_otifications" msgstr "સૂચનાઓને સક્રિય કરો (_o)" #. 'Connection Information' item -#: ../src/applet.c:2081 +#: ../src/applet.c:2105 msgid "Connection _Information" msgstr "જોડાણ જાણકારી (_I)" #. 'Edit Connections...' item -#: ../src/applet.c:2091 +#: ../src/applet.c:2115 msgid "Edit Connections..." msgstr "જોડાણોમાં ફેરફાર કરો..." #. Help item -#: ../src/applet.c:2105 +#: ../src/applet.c:2129 msgid "_Help" msgstr "મદદ (_H)" #. About item -#: ../src/applet.c:2114 +#: ../src/applet.c:2138 msgid "_About" msgstr "વિશે (_A)" -#: ../src/applet.c:2291 +#: ../src/applet.c:2315 msgid "Disconnected" msgstr "જોડાયેલ નથી" -#: ../src/applet.c:2292 +#: ../src/applet.c:2316 msgid "The network connection has been disconnected." msgstr "નેટવર્ક જોડાણ ને બિનજોડાણ કરી દેવામાં આવ્યુ છે." -#: ../src/applet.c:2473 +#: ../src/applet.c:2497 #, c-format msgid "Preparing network connection '%s'..." msgstr "નેટવર્ક જોડાણ '%s' ને તૈયાર કરી રહ્યા છે..." -#: ../src/applet.c:2476 +#: ../src/applet.c:2500 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "નેટવર્ક જોડાણ '%s' માટે વપરાશકર્તા સત્તાધિકરણની જરૂર છે..." -#: ../src/applet.c:2482 +#: ../src/applet.c:2506 #, c-format msgid "Network connection '%s' active" msgstr "નેટવર્ક જોડાણ '%s' સક્રિય છે" -#: ../src/applet.c:2560 +#: ../src/applet.c:2589 #, c-format msgid "Starting VPN connection '%s'..." msgstr "VPN જોડાણ '%s' ને શરૂ કરી રહ્યા છે..." -#: ../src/applet.c:2563 +#: ../src/applet.c:2592 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "VPN જોડાણ '%s' માટે વપરાશકર્તા સત્તાધિકરણની જરૂર છે..." -#: ../src/applet.c:2566 +#: ../src/applet.c:2595 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "'%s' માટે VPN સરનામાંનું સૂચન કરી રહ્યા છે..." -#: ../src/applet.c:2569 +#: ../src/applet.c:2598 #, c-format msgid "VPN connection '%s' active" msgstr "VPN જોડાણ '%s' સક્રિય છે" -#: ../src/applet.c:2608 +#: ../src/applet.c:2639 msgid "No network connection" msgstr "નેટવર્ક જોડાણ નથી" -#: ../src/applet.c:3258 +#: ../src/applet.c:3394 msgid "NetworkManager Applet" msgstr "NetworkManager એપ્લેટ" #: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "આપમેળે આ ઉપકરણનું તાળુ ખોલો" + +#: ../src/gsm-unlock.ui.h:2 msgid "_Unlock" msgstr "તાળુ ખોલો (_U)" #: ../src/info.ui.h:1 -msgid "Active Network Connections" -msgstr "નેટવર્ક જોડાણો સક્રિય કરો" - -#: ../src/info.ui.h:2 msgid "Connection Information" msgstr "જોડાણ જાણકારી" +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "નેટવર્ક જોડાણો સક્રિય કરો" + #: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 msgid "Wired 802.1X authentication" msgstr "વાયરવાળુ 802.1X સત્તાધિકરણ" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:4 +#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 msgid "_Network name:" msgstr "નેટવર્ક નામ (_N):" -#: ../src/connection-editor/ce-page.c:67 +#: ../src/connection-editor/ce-page.c:72 msgid "automatic" msgstr "આપોઆપ" -#: ../src/connection-editor/ce-page.c:305 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "અજ્ઞાત ભૂલ દરમ્યાન જોડાણ ગુપ્તતાઓને સુધારવા માટે નિષ્ફળ." #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 msgid "" "IP addresses identify your computer on the network. Click the \"Add\" " "button to add an IP address." @@ -999,116 +1077,96 @@ #: ../src/connection-editor/ce-ip4-routes.ui.h:2 #: ../src/connection-editor/ce-ip6-routes.ui.h:2 -msgid "" -"If enabled, this connection will never be used as the default network " -"connection." -msgstr "જો સક્રિય થયેલ હોય તો, આ જોડાણ એ મૂળભૂત નેટવર્ક જોડાણ તરીકે કદી વપરાશે નહિં." +msgid "Ig_nore automatically obtained routes" +msgstr "આપમેળે મેળવેલ માર્ગોને અવગણો (_n)" #: ../src/connection-editor/ce-ip4-routes.ui.h:3 #: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" -msgstr "આપમેળે મેળવેલ માર્ગોને અવગણો (_n)" +#| msgid "Use this c_onnection only for resources on its network" +msgid "_Use this connection only for resources on its network" +msgstr "તેનાં નેટવર્ક પર સ્ત્રોતો માટે ફક્ત આ જોડાણને વાપરો (_U)" #: ../src/connection-editor/ce-ip4-routes.ui.h:4 #: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "Use this c_onnection only for resources on its network" -msgstr "તેનાં નેટવર્ક પર સ્ત્રોતો માટે ફક્ત આ જોડાણને વાપરો (_o)" +msgid "" +"If enabled, this connection will never be used as the default network " +"connection." +msgstr "જો સક્રિય થયેલ હોય તો, આ જોડાણ એ મૂળભૂત નેટવર્ક જોડાણ તરીકે કદી વપરાશે નહિં." #: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 +#: ../src/wireless-security/eap-method-simple.ui.h:1 #: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "પાસવર્ડને બતાવો (_w)" +msgid "_Username:" +msgstr "વપરાશકર્તા નામ (_U):" #: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "પાસવર્ડ (_P):" - -#: ../src/connection-editor/ce-page-dsl.ui.h:3 msgid "_Service:" msgstr "સેવા (_S):" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 +#: ../src/connection-editor/ce-page-dsl.ui.h:3 #: ../src/wireless-security/eap-method-leap.ui.h:3 #: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 #: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "વપરાશકર્તા નામ (_U):" +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "પાસવર્ડને બતાવો (_w)" + +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "પાસવર્ડ (_P):" #: ../src/connection-editor/ce-page-ip4.ui.h:1 #: ../src/connection-editor/ce-page-ip6.ui.h:1 -msgid "Addresses" -msgstr "સરનામું" - -#: ../src/connection-editor/ce-page-ip4.ui.h:2 -#: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wired.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:1 #: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 +#: ../src/wireless-security/eap-method-peap.ui.h:2 msgid "Automatic" msgstr "આપોઆપ" -#: ../src/connection-editor/ce-page-ip4.ui.h:3 -#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 msgid "Automatic with manual DNS settings" msgstr "મેન્યુઅલ DNS સુયોજનો સાથે આપમેળે" -#: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" -msgstr "DHCP ક્લાઇન્ટ ID (_H):" - -#: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "" -"Domains used when resolving host names. Use commas to separate multiple " -"domains." -msgstr "" -"ડોમેઇન વાપરેલ છે જ્યારે યજમાન નામોને સુધારી રહ્યા હોય. ઘણાબધા ડોમેઇનને અલગ કરવા માટે " -"અલ્પવિરામોને વાપરો." - -#: ../src/connection-editor/ce-page-ip4.ui.h:7 -#: ../src/connection-editor/ce-page-ip6.ui.h:6 -msgid "" -"IP addresses of domain name servers used to resolve host names. Use commas " -"to separate multiple domain name server addresses." -msgstr "" -"યજમાનોને સુધારવા માટે વાપરેલ ડોમેઇન નામ સર્વરોનાં IP સરનામાંઓ. ઘણાબધા ડોમેઇન નામ સર્વર " -"સરનામાંઓને અલગ કરવા માટે અલ્પવિરામને વાપરો." - -#: ../src/connection-editor/ce-page-ip4.ui.h:8 -#: ../src/connection-editor/ce-page-ip6.ui.h:7 -msgid "Link-Local" -msgstr "કડી-સ્થાનિક" - -#: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 #: ../src/connection-editor/page-ip4.c:169 #: ../src/connection-editor/page-ip6.c:191 msgid "Manual" msgstr "જાતે" -#: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv4 addressing for this connection to complete" -msgstr "આ જોડાણને સમાપ્ત કરવા માટે IPv4 સરનામાંની જરૂર છે" +#: ../src/connection-editor/ce-page-ip4.ui.h:4 +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "કડી-સ્થાનિક" -#: ../src/connection-editor/ce-page-ip4.ui.h:11 -#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/ce-page-ip4.ui.h:5 +#: ../src/connection-editor/ce-page-ip6.ui.h:5 #: ../src/connection-editor/page-ip4.c:187 #: ../src/connection-editor/page-ip6.c:211 msgid "Shared to other computers" msgstr "બીજા કૉમ્પ્યુટરો સાથે વહેંચાયેલ છે" -#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 +#: ../src/connection-editor/ce-page-ip6.ui.h:6 +msgid "_Method:" +msgstr "પદ્દતિ (_M):" + +#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip6.ui.h:7 +msgid "Addresses" +msgstr "સરનામું" + +#: ../src/connection-editor/ce-page-ip4.ui.h:9 msgid "" "The DHCP client identifier allows the network administrator to customize " "your computer's configuration. If you wish to use a DHCP client identifier, " @@ -1118,39 +1176,63 @@ "વહીવટકર્તાને પરવાનગી આપે છે. જો તમે DHCP ક્લાઇન્ટ ઓળખનારને વાપરવાનું ઇચ્છો તો, અહિંયા " "તેને દાખલ કરો." -#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip4.ui.h:10 +#: ../src/connection-editor/ce-page-ip6.ui.h:9 msgid "" -"When connecting to IPv6-capable networks, allows the connection to complete " -"if IPv4 configuration fails but IPv6 configuration succeeds." +"Domains used when resolving host names. Use commas to separate multiple " +"domains." msgstr "" -"જ્યારે IPv6-સક્ષમ નેટવર્કોને જોડી રહ્યા હોય ત્યારે, સમાપ્ત કરવા માટે જોડાણને પરવાનગી આપે " -"છે જો IPv4 રૂપરેખાંકન નિષ્ફળ જાય તો પરંતુ IPv6 રૂપરેખાંકન સફળ થાય છે." +"ડોમેઇન વાપરેલ છે જ્યારે યજમાન નામોને સુધારી રહ્યા હોય. ઘણાબધા ડોમેઇનને અલગ કરવા માટે " +"અલ્પવિરામોને વાપરો." -#: ../src/connection-editor/ce-page-ip4.ui.h:14 -#: ../src/connection-editor/ce-page-ip6.ui.h:12 +#: ../src/connection-editor/ce-page-ip4.ui.h:11 +msgid "D_HCP client ID:" +msgstr "DHCP ક્લાઇન્ટ ID (_H):" + +#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#| msgid "_Search domains:" +msgid "S_earch domains:" +msgstr "ડોમેઇનોને શોધો (_e):" + +#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip6.ui.h:11 msgid "_DNS servers:" msgstr "DNS સર્વરો (_D):" +#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip6.ui.h:12 +msgid "" +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." +msgstr "" +"યજમાનોને સુધારવા માટે વાપરેલ ડોમેઇન નામ સર્વરોનાં IP સરનામાંઓ. ઘણાબધા ડોમેઇન નામ સર્વર " +"સરનામાંઓને અલગ કરવા માટે અલ્પવિરામને વાપરો." + #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 -msgid "_Method:" -msgstr "પદ્દતિ (_M):" +#| msgid "Require IPv4 addressing for this connection to complete" +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "આ જોડાણને સમાપ્ત કરવા માટે IPv4 સરનામાંની જરૂર છે (_4)" #: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Routes…" -msgstr "રસ્તો (_R)..." +msgid "" +"When connecting to IPv6-capable networks, allows the connection to complete " +"if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "" +"જ્યારે IPv6-સક્ષમ નેટવર્કોને જોડી રહ્યા હોય ત્યારે, સમાપ્ત કરવા માટે જોડાણને પરવાનગી આપે " +"છે જો IPv4 રૂપરેખાંકન નિષ્ફળ જાય તો પરંતુ IPv6 રૂપરેખાંકન સફળ થાય છે." #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 -msgid "_Search domains:" -msgstr "ડોમેઇનોને શોધો (_S):" +msgid "_Routes…" +msgstr "રસ્તો (_R)..." -#: ../src/connection-editor/ce-page-ip6.ui.h:9 -msgid "Require IPv6 addressing for this connection to complete" -msgstr "સમાપ્ત કરવા આ જોડાણ માટે IPv6 સરનામાંની જરૂર છે" +#: ../src/connection-editor/ce-page-ip6.ui.h:13 +#| msgid "Require IPv6 addressing for this connection to complete" +msgid "Require IPv_6 addressing for this connection to complete" +msgstr "સમાપ્ત કરવા આ જોડાણ માટે IPv6 સરનામાંની જરૂર છે (_6)" -#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "" "When connecting to IPv4-capable networks, allows the connection to complete " "if IPv6 configuration fails but IPv4 configuration succeeds." @@ -1159,226 +1241,230 @@ "છે જો IPv6 રૂપરેખાંકન નિષ્ફળ જાય તો પરંતુ IPv4 રૂપરેખાંકન સફળ થાય છે." #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "કોઇપણ" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -msgid "Advanced" -msgstr "ઉન્નત" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -msgid "Allow roaming if home network is not available" -msgstr "રોમિંગની પરવાનગી આપો જો ઘરનું નેટવર્ક ઉપલબ્ધ ન હોય તો" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "3G પસંદ કરો (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "કોઇપણ" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "2G પસંદ કરો (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 msgid "Basic" msgstr "મૂળભૂત" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "બદલો..." - -#: ../src/connection-editor/ce-page-mobile.ui.h:8 -msgid "N_etwork ID:" -msgstr "નેટવર્ક ID (_e):" - -#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "નંબર (_m):" #: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "PI_N:" -msgstr "PIN (_N):" +msgid "Advanced" +msgstr "ઉન્નત" #: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "2G પસંદ કરો (GPRS/EDGE)" +msgid "_APN:" +msgstr "APN (_A):" #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "3G પસંદ કરો (UMTS/HSPA)" +msgid "N_etwork ID:" +msgstr "નેટવર્ક ID (_e):" #: ../src/connection-editor/ce-page-mobile.ui.h:13 -msgid "Sho_w passwords" -msgstr "પાસવર્ડોને બતાવો (_w)" +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "પ્રકાર (_T):" #: ../src/connection-editor/ce-page-mobile.ui.h:14 -msgid "_APN:" -msgstr "APN (_A):" +msgid "Change..." +msgstr "બદલો..." + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +#| msgid "PI_N:" +msgid "P_IN:" +msgstr "PIN (_I):" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "પ્રકાર (_T):" +#| msgid "Allow roaming if home network is not available" +msgid "Allow _roaming if home network is not available" +msgstr "રોમિંગની પરવાનગી આપો જો ઘરનું નેટવર્ક ઉપલબ્ધ ન હોય તો (_r)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "પાસવર્ડોને બતાવો (_w)" #: ../src/connection-editor/ce-page-ppp.ui.h:1 -msgid "Allow _BSD data compression" -msgstr "BSD માહિતી સંકોચનને પરવાનગી આપો (_B)" +msgid "Authentication" +msgstr "સત્તાધિકરણ:" #: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "Deflate માહિતા સંકોચનને પરવાનગી આપો (_D)" - -#: ../src/connection-editor/ce-page-ppp.ui.h:3 msgid "Allowed methods:" msgstr "પરવાનગી મળેલ પદ્દતિઓ:" -#: ../src/connection-editor/ce-page-ppp.ui.h:4 -msgid "Authentication" -msgstr "સત્તાધિકરણ:" +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "પદ્દતિઓને રૂપરેખાંકિત કરો (_M)..." -#: ../src/connection-editor/ce-page-ppp.ui.h:5 +#: ../src/connection-editor/ce-page-ppp.ui.h:4 msgid "Compression" msgstr "દબાણ" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "પોઇંટ-થી-પોઇંટ એનક્રિપ્શન (MPPE) ને વાપરો (_U)" + #: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" -msgstr "પદ્દતિઓને રૂપરેખાંકિત કરો (_M)..." +msgid "_Require 128-bit encryption" +msgstr "128-bit એનક્રિપ્શનની જરૂર છે (_R)" #: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" -msgstr "પડઘો" +msgid "Use _stateful MPPE" +msgstr "Stateful MPPE ને વાપરો (_s)" #: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" -msgstr "PPP ઇકો પેકેટોને મોકલો (_e)" +msgid "Allow _BSD data compression" +msgstr "BSD માહિતી સંકોચનને પરવાનગી આપો (_B)" #: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" -msgstr "TCP હેડર સંકોચનને વાપરો (_h)" +msgid "Allow _Deflate data compression" +msgstr "Deflate માહિતા સંકોચનને પરવાનગી આપો (_D)" #: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" -msgstr "Stateful MPPE ને વાપરો (_s)" +msgid "Use TCP _header compression" +msgstr "TCP હેડર સંકોચનને વાપરો (_h)" #: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" -msgstr "128-bit એનક્રિપ્શનની જરૂર છે (_R)" +msgid "Echo" +msgstr "પડઘો" #: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "પોઇંટ-થી-પોઇંટ એનક્રિપ્શન (MPPE) ને વાપરો (_U)" - -#: ../src/connection-editor/ce-page-wired.ui.h:1 -msgid "1 Gb/s" -msgstr "1 Gb/s" +msgid "Send PPP _echo packets" +msgstr "PPP ઇકો પેકેટોને મોકલો (_e)" #: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 Gb/s" +msgid "Twisted Pair (TP)" +msgstr "Twisted Pair (TP)" #: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "10 Mb/s" -msgstr "10 Mb/s" +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" #: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "100 Mb/s" -msgstr "100 Mb/s" +msgid "BNC" +msgstr "BNC" #: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" #: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "સ્વયંકરાર (_o)" +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" #: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" +msgid "1 Gb/s" +msgstr "1 Gb/s" #: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "Full duple_x" -msgstr "સંપૂર્ણ ડૂપ્લેક્ષ (_x)" +msgid "10 Gb/s" +msgstr "10 Gb/s" #: ../src/connection-editor/ce-page-wired.ui.h:10 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "MT_U:" -msgstr "MTU (_U):" +msgid "_Port:" +msgstr "પોર્ટ (_P):" #: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "Media Independent Interface (MII)" +msgid "_Speed:" +msgstr "ઝડપ (_S):" #: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"અહિંયા દાખલ થયેલ MAC સરનામું નેટવર્ક ઉપકરણનું આ જોડાણ જેની પર સક્રિય થયેલ છે તે માટે " -"હાર્ડવેર સરનામાં તરીકે વાપરેલ હશે. આ લક્ષણ MAC ક્લોનિંગ અને સ્પુફીંગ તરીકે જાણીતુ છે. " -"ઉદાહરણ: 00:11:22:33:44:55" +msgid "Full duple_x" +msgstr "સંપૂર્ણ ડૂપ્લેક્ષ (_x)" #: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Twisted Pair (TP)" -msgstr "Twisted Pair (TP)" +msgid "Aut_onegotiate" +msgstr "સ્વયંકરાર (_o)" #: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "_Cloned MAC address:" -msgstr "ક્લોન કરેલ MAC સરનામું (_C):" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wireless.ui.h:8 msgid "_Device MAC address:" msgstr "ઉપકરણ MAC સરનામું (_D):" +#: ../src/connection-editor/ce-page-wired.ui.h:15 +#: ../src/connection-editor/ce-page-wireless.ui.h:10 +#| msgid "_Cloned MAC address:" +msgid "C_loned MAC address:" +msgstr "ક્લોન કરેલ MAC સરનામું (_l):" + #: ../src/connection-editor/ce-page-wired.ui.h:16 -msgid "_Port:" -msgstr "પોર્ટ (_P):" +#: ../src/connection-editor/ce-page-wireless.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"અહિંયા દાખલ થયેલ MAC સરનામું નેટવર્ક ઉપકરણનું આ જોડાણ જેની પર સક્રિય થયેલ છે તે માટે " +"હાર્ડવેર સરનામાં તરીકે વાપરેલ હશે. આ લક્ષણ MAC ક્લોનિંગ અને સ્પુફીંગ તરીકે જાણીતુ છે. " +"ઉદાહરણ: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Speed:" -msgstr "ઝડપ (_S):" +#: ../src/connection-editor/ce-page-wired.ui.h:17 +#: ../src/connection-editor/ce-page-wireless.ui.h:7 +#| msgid "MT_U:" +msgid "_MTU:" +msgstr "MTU (_M):" #: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wireless.ui.h:6 msgid "bytes" msgstr "બાઇટો" -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "Ad-hoc" - -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wireless.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" -msgstr "Band (_d):" - -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "ચેનલ (_h):" - -#: ../src/connection-editor/ce-page-wireless.ui.h:7 +#: ../src/connection-editor/ce-page-wireless.ui.h:4 msgid "Infrastructure" msgstr "ઇન્ફ્રાસ્ટ્રક્ચર" -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" -msgstr "સ્થિતિ (_o):" +#: ../src/connection-editor/ce-page-wireless.ui.h:5 +msgid "Ad-hoc" +msgstr "Ad-hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 +#: ../src/connection-editor/ce-page-wireless.ui.h:11 +msgid "mW" +msgstr "mW" + +#: ../src/connection-editor/ce-page-wireless.ui.h:12 +msgid "Transmission po_wer:" +msgstr "ટ્રાન્સમિશન પાવર (_w):" + +#: ../src/connection-editor/ce-page-wireless.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wireless.ui.h:14 +msgid "_Rate:" +msgstr "દર (_R):" + +#: ../src/connection-editor/ce-page-wireless.ui.h:15 msgid "" "This option locks this connection to the wireless access point (AP) " "specified by the BSSID entered here. Example: 00:11:22:33:44:55" @@ -1386,83 +1472,86 @@ "અહિંયા દાખલ થયેલ BSSID દ્દારા સ્પષ્ટ થયેલ વાયરલેસ પ્રવેશ બિંદુ (AP) માટે આ જોડાણને તાળુ " "મારે છે. ઉદાહરણ: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 -msgid "Transmission po_wer:" -msgstr "ટ્રાન્સમિશન પાવર (_w):" - -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wireless.ui.h:16 msgid "_BSSID:" msgstr "BSSID (_B):" #: ../src/connection-editor/ce-page-wireless.ui.h:17 -msgid "_Rate:" -msgstr "દર (_R):" +msgid "C_hannel:" +msgstr "ચેનલ (_h):" #: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_SSID:" -msgstr "SSID (_S):" +msgid "Ban_d:" +msgstr "Band (_d):" + +#: ../src/connection-editor/ce-page-wireless.ui.h:19 +msgid "M_ode:" +msgstr "સ્થિતિ (_o):" #: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "mW" -msgstr "mW" +#| msgid "_SSID:" +msgid "SS_ID:" +msgstr "SSID (_I):" #: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "_Security:" -msgstr "સુરક્ષા (_S):" +#| msgid "Security:" +msgid "S_ecurity:" +msgstr "સુરક્ષા (_e):" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "પરવાનગી આપેલ સત્તાધિકરણ પદ્દત્તિઓ" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 -msgid "C_HAP" -msgstr "CHAP (_H)" +msgid "_EAP" +msgstr "EAP (_E)" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 -msgid "Challenge Handshake Authentication Protocol" -msgstr "શરતી હેન્ડશેક સત્તાધિકરણ પ્રોટોકોલ" - -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 msgid "Extensible Authentication Protocol" msgstr "વધારી શકાય તેવુ સત્તાધિકરણ પ્રોટોકોલ" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "PAP (_P)" + #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 -msgid "" -"In most cases, the provider's PPP servers will support all authentication " -"methods. If connections fail, try disabling support for some methods." -msgstr "" -"મોટાભાગની સ્થિતિઓમાં, પોષણકર્તાનાં PPP સર્વરો એ બધી સત્તાધિકરણ પદ્દતિઓને આધાર આપશે. " -"જો જોડાણો નિષ્ફળ થાય તો, અમુક પદ્દતિઓ માટે આધારને નિષ્ક્રિય કરવાનું પ્રયત્ન કરો." +msgid "Password Authentication Protocol" +msgstr "પાસવર્ડ સત્તાધિકરણ પ્રોટોકોલ" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v2 (_2)" +msgid "C_HAP" +msgstr "CHAP (_H)" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "માઇક્રોસોફ્ટ શરતી હેન્ડશેક સત્તાધિકરણ પ્રોટોકોલ" +msgid "Challenge Handshake Authentication Protocol" +msgstr "શરતી હેન્ડશેક સત્તાધિકરણ પ્રોટોકોલ" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "માઇક્રોસોફ્ટ શરતી હેન્ડશેક સત્તાધિકરણ પ્રોટોકોલ આવૃત્તિ 2" +msgid "_MSCHAP" +msgstr "MSCHAP (_M)" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" -msgstr "પાસવર્ડ સત્તાધિકરણ પ્રોટોકોલ" +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "માઇક્રોસોફ્ટ શરતી હેન્ડશેક સત્તાધિકરણ પ્રોટોકોલ" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "EAP (_E)" +msgid "MSCHAP v_2" +msgstr "MSCHAP v2 (_2)" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "MSCHAP (_M)" +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "માઇક્રોસોફ્ટ શરતી હેન્ડશેક સત્તાધિકરણ પ્રોટોકોલ આવૃત્તિ 2" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "PAP (_P)" +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "" +"મોટાભાગની સ્થિતિઓમાં, પોષણકર્તાનાં PPP સર્વરો એ બધી સત્તાધિકરણ પદ્દતિઓને આધાર આપશે. " +"જો જોડાણો નિષ્ફળ થાય તો, અમુક પદ્દતિઓ માટે આધારને નિષ્ક્રિય કરવાનું પ્રયત્ન કરો." #: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 #: ../src/wireless-security/eap-method-peap.ui.h:1 #: ../src/wireless-security/eap-method-ttls.ui.h:1 #: ../src/wireless-security/ws-dynamic-wep.ui.h:1 @@ -1475,10 +1564,6 @@ msgstr "VPN જોડાણ પ્રકારને પસંદ કરો" #: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "બનાવો..." - -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 msgid "" "Select the type of VPN you wish to use for the new connection. If the type " "of VPN connection you wish to create does not appear in the list, you may " @@ -1488,22 +1573,26 @@ "ઇચ્છતા હોય તો VPN જોડાણનો પ્રકાર યાદીમાં દેખાતો નથી, તમારી પાસે યોગ્ય VPN પ્લગઇન " "સ્થાપિત થયેલ નથી." +#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 +msgid "Create…" +msgstr "બનાવો..." + #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:901 -#: ../src/connection-editor/page-ip6.c:867 +#: ../src/connection-editor/page-ip4.c:900 +#: ../src/connection-editor/page-ip6.c:866 msgid "Address" msgstr "સરનામું" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:918 +#: ../src/connection-editor/page-ip4.c:917 msgid "Netmask" msgstr "નેટમાસ્ક" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:935 -#: ../src/connection-editor/page-ip6.c:901 +#: ../src/connection-editor/page-ip4.c:934 +#: ../src/connection-editor/page-ip6.c:900 msgid "Gateway" msgstr "ગેટવે" @@ -1513,13 +1602,13 @@ msgstr "મેટ્રીક" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:884 +#: ../src/connection-editor/page-ip6.c:883 msgid "Prefix" msgstr "ઉપસર્ગ" #: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1482 +#: ../src/connection-editor/nm-connection-editor.ui.h:8 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1584,11 +1673,11 @@ msgid "Editing IPv4 routes for %s" msgstr "%s માટે IPv4 માર્ગોને ફેરફાર કરી રહ્યા છે" -#: ../src/connection-editor/page-ip4.c:982 +#: ../src/connection-editor/page-ip4.c:981 msgid "IPv4 Settings" msgstr "IPv4 સુયોજનો" -#: ../src/connection-editor/page-ip4.c:984 +#: ../src/connection-editor/page-ip4.c:983 msgid "Could not load IPv4 user interface." msgstr "IPv4 વપરાશકર્તા ઇન્ટરફેલને લોડ કરી શકાયુ નહિં." @@ -1610,11 +1699,11 @@ msgid "Editing IPv6 routes for %s" msgstr "%s માટે IPv6 માર્ગોને ફેરફાર કરી રહ્યા છે" -#: ../src/connection-editor/page-ip6.c:946 +#: ../src/connection-editor/page-ip6.c:945 msgid "IPv6 Settings" msgstr "IPv6 સુયોજનો" -#: ../src/connection-editor/page-ip6.c:948 +#: ../src/connection-editor/page-ip6.c:947 msgid "Could not load IPv6 user interface." msgstr "IPv6 વપરાશકર્તા ઇન્ટરફેસને લોડ કરી શકાયુ નહિં." @@ -1664,6 +1753,7 @@ msgstr "CHAP" #: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 #: ../src/wireless-security/eap-method-peap.c:246 #: ../src/wireless-security/eap-method-ttls.c:263 msgid "MSCHAPv2" @@ -1684,17 +1774,17 @@ msgid "Editing PPP authentication methods for %s" msgstr "%s માટે PPP સત્તાધિકરણ પદ્દતિઓમાં ફેરફાર કરી રહ્યા છે" -#: ../src/connection-editor/page-ppp.c:283 +#: ../src/connection-editor/page-ppp.c:282 msgid "PPP Settings" msgstr "PPP સુયોજનો" -#: ../src/connection-editor/page-ppp.c:285 +#: ../src/connection-editor/page-ppp.c:284 msgid "Could not load PPP user interface." msgstr "PPP વપરાશકર્તા ઇન્ટરફેસને લોડ કરી શકાયુ નહિં." #: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1478 +#: ../src/connection-editor/nm-connection-editor.ui.h:7 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1708,13 +1798,13 @@ msgstr "'%s' માટે VPN પ્લગઇન સેવાને શોધી શકાયુ નહિં." #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:884 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "VPN જોડાણ %d" -#: ../src/connection-editor/page-wired.c:88 -#: ../src/connection-editor/page-wireless.c:93 +#: ../src/connection-editor/page-wired.c:89 +#: ../src/connection-editor/page-wireless.c:94 msgid "" "This option locks this connection to the network device specified by its " "permanent MAC address entered here. Example: 00:11:22:33:44:55" @@ -1722,94 +1812,95 @@ "આ વિકલ્પ એ અહિંયા દાખલ થયેલ MAC સરનામાં દ્દારા સ્પષ્ટ થયેલ નેટવર્ક ઉપકરણ માટે આ જોડાણને " "તાળુ મારે છે. ઉદાહરણ: 00:11:22:33:44:55" -#: ../src/connection-editor/page-wired.c:267 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -#: ../src/connection-editor/nm-connection-list.c:1466 +#: ../src/connection-editor/page-wired.c:272 +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "વાયરવાળુ" -#: ../src/connection-editor/page-wired.c:269 +#: ../src/connection-editor/page-wired.c:274 msgid "Could not load wired user interface." msgstr "વાયરવાળો વપરાશકર્તા ઇન્ટરફેસને લોડ કરી શકાયુ નહિં." -#: ../src/connection-editor/page-wired.c:444 +#: ../src/connection-editor/page-wired.c:449 #, c-format msgid "Wired connection %d" msgstr "વાયર વાળુ જોડાણ %d" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "802.1x સુરક્ષા" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "Wired Security સુરક્ષા વપરાશકર્તા ઇન્ટરફેસને લાવી શક્યા નહિં." -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1X security for this connection" -msgstr "આ જોડાણ માટે 802.1X સુરક્ષાને વાપરો" - -#: ../src/connection-editor/page-wireless.c:166 -#: ../src/connection-editor/page-wireless.c:170 -#: ../src/connection-editor/page-wireless.c:191 +#: ../src/connection-editor/page-wired-security.c:139 +#| msgid "Use 802.1X security for this connection" +msgid "Use 802.1_X security for this connection" +msgstr "આ જોડાણ માટે 802.1X સુરક્ષાને વાપરો (_X)" + +#: ../src/connection-editor/page-wireless.c:171 +#: ../src/connection-editor/page-wireless.c:175 +#: ../src/connection-editor/page-wireless.c:196 #, c-format msgid "default" msgstr "મૂળભૂત" -#: ../src/connection-editor/page-wireless.c:195 +#: ../src/connection-editor/page-wireless.c:200 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:452 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -#: ../src/connection-editor/nm-connection-list.c:1470 +#: ../src/connection-editor/page-wireless.c:457 +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "વાયરલેસ" -#: ../src/connection-editor/page-wireless.c:454 +#: ../src/connection-editor/page-wireless.c:459 msgid "Could not load WiFi user interface." msgstr "WiFi વપરાશકર્તા ઇન્ટરફેસને લોડ કરી શકાયુ નહિં." -#: ../src/connection-editor/page-wireless.c:658 +#: ../src/connection-editor/page-wireless.c:663 #, c-format msgid "Wireless connection %d" msgstr "વાયરલેસ જોડાણ %d" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP 40/128-bit કી (Hex અથવા ASCII)" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128-બીટ પાસફ્રેઝ" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "ગતિક WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 વ્યક્તિગત" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA & WPA2 એન્ટરપ્રાઇઝ" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "WiFi સુરક્ષા વપરાશકર્તા ઇન્ટરફેસને લોડ કરી શકાયુ નહિં; ગુમ થયેલ WiFi સુયોજન." -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "વાયરલેસ સુરક્ષા" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "WiFi સુરક્ષા વપરાશકર્તા ઇન્ટરફેસને લોડ કરી શકાયુ નહિં." @@ -1822,51 +1913,51 @@ msgid "Editing un-named connection" msgstr "નામ વગરનાં જોડાણમાં ફેરફાર કરી રહ્યા છે" -#: ../src/connection-editor/nm-connection-editor.c:288 +#: ../src/connection-editor/nm-connection-editor.c:291 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." msgstr "જોડાણ સંપાદક અમુક જરૂરી સ્રોતો શોધી શકી નહિં (.ui ફાઇલ મળી નથી)." -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:394 msgid "Error creating connection editor dialog." msgstr "જોડાણ સંપાદક સંવાદને બનાવતી વખતે ભૂલ." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:406 msgid "_Save" msgstr "સંગ્રહો (_S)" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "Save any changes made to this connection." msgstr "આ જોડાણ માટે કરેલ કોઇપણ બદલાવોને સંગ્રહો." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "_Save..." msgstr "સંગ્રહો (_S)..." -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "Authenticate to save this connection for all users of this machine." msgstr "આ મશીન નાં બધા વપરાશકર્તાઓ માટે આ જોડાણને સંગ્રહ કરવા માટે સત્તાધિકરણ કરો." -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "બધા વપરાશકર્તાઓ માટે ઉપલ્બધ" +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Import" +msgstr "નિયાત કરો (_I)" -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "આપેમેળે જોડાવો (_a)" +#: ../src/connection-editor/nm-connection-editor.ui.h:6 +msgid "E_xport" +msgstr "નિકાસ કરો (_x)" -#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-editor.ui.h:9 msgid "Connection _name:" msgstr "જોડાણ નામ (_n):" -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "નિકાસ કરો (_x)" +#: ../src/connection-editor/nm-connection-editor.ui.h:10 +msgid "Connect _automatically" +msgstr "આપેમેળે જોડાવો (_a)" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "નિયાત કરો (_I)" +msgid "A_vailable to all users" +msgstr "બધા વપરાશકર્તાઓ માટે ઉપલ્બધ" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -1927,18 +2018,18 @@ msgstr "ગુણધર્મ '%s' / '%s' અયોગ્ય છે: %d" #: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:642 +#: ../src/connection-editor/nm-connection-list.c:662 msgid "An unknown error occurred." msgstr "અજ્ઞાત ભૂલ ઉદ્ભવી." #: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:686 +#: ../src/connection-editor/nm-connection-list.c:702 msgid "Error initializing editor" msgstr "સંપાદકને પ્રારંભ કરતી વખતે ભૂલ" #: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:703 -#: ../src/connection-editor/nm-connection-list.c:870 +#: ../src/connection-editor/nm-connection-list.c:719 +#: ../src/connection-editor/nm-connection-list.c:885 msgid "" "The connection editor dialog could not be initialized due to an unknown " "error." @@ -1952,25 +2043,25 @@ msgid "Could not edit new connection" msgstr "નવા જોડાણમાં ફેરફાર કરી શકાયુ નહિં" -#: ../src/connection-editor/nm-connection-list.c:717 +#: ../src/connection-editor/nm-connection-list.c:733 msgid "Could not edit connection" msgstr "જોડાણમાં ફેરફાર કરી શકાયુ નહિં" -#: ../src/connection-editor/nm-connection-list.c:747 +#: ../src/connection-editor/nm-connection-list.c:763 msgid "Connection delete failed" msgstr "જોડાણ કાઢી નાખવાનું નિષ્ફળ" -#: ../src/connection-editor/nm-connection-list.c:779 +#: ../src/connection-editor/nm-connection-list.c:795 #, c-format msgid "Are you sure you wish to delete the connection %s?" msgstr "તમે ખરેખર જોડાણ %s ને કાઢી નાંખવાની ઇચ્છા રાખો છો?" -#: ../src/connection-editor/nm-connection-list.c:914 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "VPN જોડાણને આયાત કરી શકાતુ નથી" -#: ../src/connection-editor/nm-connection-list.c:916 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -1980,79 +2071,79 @@ "\n" "Error: VPN સેવા પ્રકાર નથી." -#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "આયાત થયેલ જોડાણમાં ફેરફાર કરી શકાયુ નહિં" -#: ../src/connection-editor/nm-connection-list.c:1099 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "નામ" -#: ../src/connection-editor/nm-connection-list.c:1111 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "છેલ્લે વપરાયેલ" -#: ../src/connection-editor/nm-connection-list.c:1227 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." msgstr "VPN પ્લગઇન ઉપલબ્ધ નથી. મહેરબાની કરીને આ બટનને સક્રિય કરવા માટે એકને સ્થાપિત કરો." -#: ../src/connection-editor/nm-connection-list.c:1238 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "ફેરફાર કરો (_E)" -#: ../src/connection-editor/nm-connection-list.c:1239 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "પસંદ થયેલ જોડાણમાં ફેરફાર કરો" -#: ../src/connection-editor/nm-connection-list.c:1240 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "ફેરફાર કરો (_E)..." -#: ../src/connection-editor/nm-connection-list.c:1241 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "પસંદ થયેલ જોડાણમાં ફેરફાર કરવા માટે સત્તાધિકરણ કરો" -#: ../src/connection-editor/nm-connection-list.c:1256 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "કાઢી નાંખો (_D)" -#: ../src/connection-editor/nm-connection-list.c:1257 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "પસંદ થયેલ જોડાણને કાઢી નાંખો" -#: ../src/connection-editor/nm-connection-list.c:1258 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "કાઢી નાંખો (_D)..." -#: ../src/connection-editor/nm-connection-list.c:1259 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "પસંદ થયેલ જોડાણને કાઢી નાંખવા માટે સત્તાધિકરણ કરો" -#: ../src/connection-editor/nm-connection-list.c:1538 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "જોડાણને બનાવતી વખતે ભૂલ" -#: ../src/connection-editor/nm-connection-list.c:1539 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "જાણતા નથી કેવી રીતે '%s' જોડાણોને બનાવવા" -#: ../src/connection-editor/nm-connection-list.c:1594 -#: ../src/connection-editor/nm-connection-list.c:1606 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "જોડાણમાં ફેરફાર કરતી વખતે ભૂલ" -#: ../src/connection-editor/nm-connection-list.c:1595 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "જાણતા નથી કેવી રીતે '%s' જોડાણોમાં ફેરફાર કરવો" -#: ../src/connection-editor/nm-connection-list.c:1607 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "UUID '%s' સાથે જોડાણને શોધી શક્યા નથી" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2064,29 +2155,29 @@ "\n" "ભૂલ: %s." -#: ../src/connection-editor/vpn-helpers.c:261 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "આયાત કરવા માટે ફાઇલને પસંદ કરો" -#: ../src/connection-editor/vpn-helpers.c:309 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "નામ થયેલ ફાઇલ \"%s\" પહેલેથી જ અસ્તિત્વ ધરાવે છે." -#: ../src/connection-editor/vpn-helpers.c:311 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "બદલો (_R)" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "શું તમે સંગ્રહ કરી રહ્યા છો તે VPN જોડાણ સાથે %s ને બદલવા માંગો છો?" -#: ../src/connection-editor/vpn-helpers.c:349 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "VPN જોડાણનું નિકાસ કરી શકાતુ નથી" -#: ../src/connection-editor/vpn-helpers.c:351 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2097,7 +2188,7 @@ "\n" "ભૂલ: %s." -#: ../src/connection-editor/vpn-helpers.c:385 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "VPN જોડાણની નિકાસ કરો..." @@ -2155,7 +2246,7 @@ msgid "could not find the Bluetooth device." msgstr "બ્લુટુથ ઉપકરણને શોધી શક્યા નહિં." -#: ../src/gnome-bluetooth/bt-widget.c:975 +#: ../src/gnome-bluetooth/bt-widget.c:980 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2163,25 +2254,25 @@ "ડાયલ-અપ નેટવર્કિંગ જોડાણનું સુયોજન કરતા પહેલાં મૂળભૂત બ્લુટુથ ઍડપ્ટર એ સક્રિય થયેલ હોવુ જ " "જોઇએ." -#: ../src/gnome-bluetooth/bt-widget.c:1007 +#: ../src/gnome-bluetooth/bt-widget.c:1012 #, c-format msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." msgstr "બ્લુટુથ રૂપરેખાંકન શક્ય નથી (D-Bus ને જોડવામાં નિષ્ફળતા: %s)" -#: ../src/gnome-bluetooth/bt-widget.c:1017 +#: ../src/gnome-bluetooth/bt-widget.c:1022 msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." msgstr "બ્લુટુથ રૂપરેખાંકન શક્ય નથી (D-Bus પ્રોક્સીને બનાવવામાં નિષ્ફળતા)." -#: ../src/gnome-bluetooth/bt-widget.c:1026 +#: ../src/gnome-bluetooth/bt-widget.c:1031 #, c-format msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." msgstr "બ્લુટુથ રૂપરેખાંકન શક્ય નથી (NetworkManager ને શોધવા દરમ્યાન ભૂલ: %s)." -#: ../src/gnome-bluetooth/bt-widget.c:1093 +#: ../src/gnome-bluetooth/bt-widget.c:1098 msgid "Use your mobile phone as a network device (PAN/NAP)" msgstr "નેટવર્ક ઉપકરણ તરીકે તમારો મોબાઇલ ફોનને વાપરો (PAN/NAP)" -#: ../src/gnome-bluetooth/bt-widget.c:1102 +#: ../src/gnome-bluetooth/bt-widget.c:1107 msgid "Access the Internet using your mobile phone (DUN)" msgstr "તમારાં મોબાઇલ ફોનની મદદથી ઇન્ટરન્ટને વાપરો (DUN)" @@ -2282,31 +2373,31 @@ msgid "Choose your Provider" msgstr "તમારા પોષણકર્તાને પસંદ કરો" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1080 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 msgid "Country or Region List:" msgstr "દેશ અથવા પ્રાન્ત (પ્રદેશ) યાદી:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1092 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 msgid "Country or region" msgstr "દેશ અથવા પ્રાન્ત (પ્રદેશ)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1099 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "My country is not listed" msgstr "મારો દેશ યાદી થયેલ નથી" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1145 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 msgid "Choose your Provider's Country or Region" msgstr "તમારા પોષણકર્તાનાં દેશ અથવા પ્રાન્ત (પ્રદેશ) પસંદ કરો" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1199 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 msgid "Installed GSM device" msgstr "સ્થાપિત થયેલ GSM ઉપકરણ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1202 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 msgid "Installed CDMA device" msgstr "સ્થાપિત થયેલ CDMA ઉપકરણ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1374 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2314,35 +2405,35 @@ "આ મદદકર્તા એ તમને સેલ્યુલર (3G) નેટવર્કમાં મોબાઇલ બ્રોડબેન્ડ જોડાણને સુયોજન કરવાનું સરળ " "બનાવવા માટે મદદ કરે છે." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1379 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 msgid "You will need the following information:" msgstr "તમારે નીચેની જાણકારીની જરૂર પડશે:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1394 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 msgid "Your broadband provider's name" msgstr "તમારુ બ્રોડબેન્ડ પોષણકર્તાનું નામ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1400 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 msgid "Your broadband billing plan name" msgstr "તમારુ બ્રોડબેન્ડ બિલીંગ પ્લાન નામ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1406 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(અમુક સ્થિતિઓમાં) તમારુ બ્રોડબેન્ડ બિલીંગ પ્લાન APN (Access Point Name)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1433 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 msgid "Create a connection for _this mobile broadband device:" msgstr "આ મોબાઇલ બ્રોડબેન્ડ ઉપકરણ માટે જોડાણને બનાવો (_t):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1448 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 msgid "Any device" msgstr "કોઇપણ ઉપકરણ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Set up a Mobile Broadband Connection" msgstr "મોબાઇલ બ્રોડબેન્ડ (CDMA) જોડાણ ને સુયોજિત કરો" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1625 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 msgid "New Mobile Broadband Connection" msgstr "નવું મોબાઇલ બ્રોડબેન્ડ જોડાણ" @@ -2350,63 +2441,63 @@ msgid "New..." msgstr "નવું..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "બનાવો (_r)" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "" "Passwords or encryption keys are required to access the wireless network '%" "s'." msgstr "પાસવર્ડો અને એનક્રિપ્શન કીઓ એ વાયરલેસ નેટવર્કને '%s' ને દાખલ કરવા માટે જરૂરી છે." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "વાયરલેસ નેટવર્ક સત્તાધિકરણ જરૂરી છે" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "વાયરલેસ નેટવર્ક દ્દારા સત્તાધિકરણની જરૂર છે" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "નવા વાયરલેસ નેટવર્ક ને બનાવો" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "નવું વાયરલેસ નેટવર્ક" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "તમે બનાવવા માંગો છો તે વાયરલેસ નેટવર્ક માટે નામને દાખલ કરો." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "છુપાયેલ વાયરલેસ નેટવર્ક ને જોડો" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "છુપાયેલ વાયરલેસ નેટવર્ક" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." msgstr "તમે તેમાં જોડાવવા માંગો છો તે છુપાયેલ વાયરલેસ નેટવર્કનાં નામ અને સુરક્ષા વિગતોને દાખલ કરો." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "Wireless _security:" +msgstr "વાયરલેસ સુરક્ષા (_W):" + +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" msgstr "જોડાણ (_n):" -#: ../src/libnm-gtk/wifi.ui.h:3 +#: ../src/libnm-gtk/wifi.ui.h:5 msgid "Wireless _adapter:" msgstr "વાયરલેસ એડપ્ટર (_a):" -#: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "વાયરલેસ સુરક્ષા (_W):" - #: ../src/main.c:73 msgid "Usage:" msgstr "વપરાશ:" @@ -2539,50 +2630,89 @@ msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER અથવા PEM પ્રમાણપત્રો (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:372 -msgid "MD5" -msgstr "MD5" +#: ../src/wireless-security/eap-method-fast.ui.h:2 +#| msgid "Anony_mous identity:" +msgid "Anonymous" +msgstr "અનામિક" + +#: ../src/wireless-security/eap-method-fast.ui.h:3 +#| msgid "Authentication" +msgid "Authenticated" +msgstr "સત્તાધિકરણ" + +#: ../src/wireless-security/eap-method-fast.ui.h:4 +msgid "Both" +msgstr "બંને" + +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "અવ્યવસ્થિત રીતે ઓળખો (_m):" +#: ../src/wireless-security/eap-method-fast.ui.h:6 +msgid "PAC _file:" +msgstr "PAC ફાઇલ (_f):" + +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-ttls.ui.h:4 +#| msgid "I_nner authentication:" +msgid "_Inner authentication:" +msgstr "આંતરિક સત્તાધિકરણ (_I):" + +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "આપોઆપ PAC બચાવ માટે પરવાનગી આપે છે (_v)" + +#: ../src/wireless-security/eap-method-fast.c:261 #: ../src/wireless-security/eap-method-peap.c:280 msgid "GTC" msgstr "GTC" +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "PAC ફાઇલને પસંદ કરો..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC ફાઇલો (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "બધી ફાઇલો" + +#: ../src/wireless-security/eap-method-peap.c:263 +#: ../src/wireless-security/wireless-security.c:382 +msgid "MD5" +msgstr "MD5" + #: ../src/wireless-security/eap-method-peap.c:350 #: ../src/wireless-security/eap-method-tls.c:416 #: ../src/wireless-security/eap-method-ttls.c:350 msgid "Choose a Certificate Authority certificate..." msgstr "Certificate Authority પ્રમાણપત્ર ને પસંદ કરો..." -#: ../src/wireless-security/eap-method-peap.ui.h:2 -#: ../src/wireless-security/eap-method-ttls.ui.h:2 -msgid "Anony_mous identity:" -msgstr "અવ્યવસ્થિત રીતે ઓળખો (_m):" - -#: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:3 -msgid "C_A certificate:" -msgstr "CA પ્રમાણપત્ર (_A):" - -#: ../src/wireless-security/eap-method-peap.ui.h:5 -#: ../src/wireless-security/eap-method-ttls.ui.h:4 -msgid "I_nner authentication:" -msgstr "આંતરિક સત્તાધિકરણ (_n):" - -#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-peap.ui.h:3 msgid "Version 0" msgstr "આવૃત્તિ 0" -#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:4 msgid "Version 1" msgstr "આવૃત્તિ 1" +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-ttls.ui.h:3 +msgid "C_A certificate:" +msgstr "CA પ્રમાણપત્ર (_A):" + #: ../src/wireless-security/eap-method-peap.ui.h:8 -msgid "_PEAP version:" -msgstr "PEAP આવૃત્તિ (_P):" +#| msgid "_PEAP version:" +msgid "PEAP _version:" +msgstr "PEAP આવૃત્તિ (_v):" -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "દરેક સમયે આ પાસવર્ડ માટે પૂછો (_k)" @@ -2612,11 +2742,15 @@ msgid "Choose your private key..." msgstr "તમારી ખાનગી કીને પસંદ કરો..." -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "ઓળખાણપત્ર (_d):" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "વપરાશકર્તા પ્રમાણપત્ર (_U):" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "ખાનગી કી (_k):" @@ -2624,10 +2758,6 @@ msgid "_Private key password:" msgstr "ખાનગી કી પાસવર્ડ (_P):" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "વપરાશકર્તા પ્રમાણપત્ર (_U):" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "ફરીથી મને ચેતવો નહિં (_w)" @@ -2640,59 +2770,70 @@ msgid "Yes" msgstr "હા" -#: ../src/wireless-security/wireless-security.c:384 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:408 +#: ../src/wireless-security/wireless-security.c:418 +msgid "FAST" +msgstr "FAST" + +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "ટનલ થયેલ TLS" -#: ../src/wireless-security/wireless-security.c:419 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "સુરક્ષિત થયેલ EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 #: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 -msgid "_Authentication:" -msgstr "સત્તાધિકરણ (_A):" +#| msgid "_Authentication:" +msgid "Au_thentication:" +msgstr "સત્તાધિકરણ (_t):" #: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "સિસ્ટમને ખોલો" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "વહેંચાયેલ કી" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (મૂળભૂત)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:5 -msgid "Open System" -msgstr "સિસ્ટમને ખોલો" - -#: ../src/wireless-security/ws-wep-key.ui.h:6 -msgid "Shared Key" -msgstr "વહેંચાયેલ કી" - #: ../src/wireless-security/ws-wep-key.ui.h:7 +msgid "_Key:" +msgstr "કી (_K):" + +#: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "કીને બતાવો (_w)" -#: ../src/wireless-security/ws-wep-key.ui.h:8 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "WEP અનુક્રમણિકા (_x):" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "કી (_K):" +#~ msgid "Click on this icon to connect to a wireless network" +#~ msgstr "વાયરલેસને નેટવર્કને જોડવા માટે આ આઇકોન પર ક્લિક કરો" + +#~ msgid "_Security:" +#~ msgstr "સુરક્ષા (_S):" #~ msgid "Network Manager" #~ msgstr "નેટવર્ક વ્યવસ્થાપક" diff -Nru network-manager-applet-0.9.4.1/po/he.po network-manager-applet-0.9.6.2+git201210311320.2620/po/he.po --- network-manager-applet-0.9.4.1/po/he.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/he.po 2012-10-31 13:20:57.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: network-manager-applet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-02-17 15:04+0200\n" -"PO-Revision-Date: 2012-02-17 15:06+0200\n" +"POT-Creation-Date: 2012-09-07 15:03+0300\n" +"PO-Revision-Date: 2012-09-07 15:12+0200\n" "Last-Translator: Yaron Shahrabani \n" "Language-Team: Gezer (Hebrew)\n" "Language: he\n" @@ -21,673 +21,1042 @@ "X-Poedit-Language: Hebrew\n" #: ../nm-applet.desktop.in.h:1 +msgid "Network" +msgstr "רשת" + +#: ../nm-applet.desktop.in.h:2 msgid "Manage your network connections" msgstr "ניהול חיבורי הרשת שלך" -#: ../nm-applet.desktop.in.h:2 -msgid "Network" -msgstr "רשת" +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "חיבורי רשת" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "Disable WiFi Create" +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "ניהול ושינוי הגדרות חיבורי הרשת שלך" -#: ../nm-applet.schemas.in.h:2 +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Disable connected notifications" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "Set this to true to disable notifications when connecting to a network." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Disable disconnected notifications" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "Set this to TRUE to disable notifications when connecting to a network." - -#: ../nm-applet.schemas.in.h:5 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "Set this to TRUE to disable notifications when disconnecting from a network." - -#: ../nm-applet.schemas.in.h:6 -msgid "Set this to TRUE to disable notifications when wireless networks are available." -msgstr "Set this to TRUE to disable notifications when wireless networks are available." - -#: ../nm-applet.schemas.in.h:7 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "Set to TRUE to disable creation of adhoc networks when using the applet." - -#: ../nm-applet.schemas.in.h:8 -msgid "Stamp" -msgstr "Stamp" +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "Set this to true to disable notifications when disconnecting from a network." +msgstr "Set this to true to disable notifications when disconnecting from a network." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Disable VPN notifications" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "Set this to true to disable notifications when connecting to or disconnecting from a VPN." +msgstr "Set this to true to disable notifications when connecting to or disconnecting from a VPN." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Suppress networks available notifications" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +msgid "Set this to true to disable notifications when Wi-Fi networks are available." +msgstr "Set this to true to disable notifications when Wi-Fi networks are available." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 +msgid "Stamp" +msgstr "Stamp" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "Used to determine whether settings should be migrated to a new version." -#: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "ניהול ושינוי הגדרות חיבורי הרשת שלך" +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "Disable WiFi Create" -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -msgid "Network Connections" -msgstr "חיבורי רשת" +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +msgid "Set to true to disable creation of adhoc networks when using the applet." +msgstr "Set to true to disable creation of adhoc networks when using the applet." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ignore CA certificate" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "Set this to true to disable warnings about CA certificates in EAP authentication." +msgstr "Set this to true to disable warnings about CA certificates in EAP authentication." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "Set this to true to disable warnings about CA certificates in phase 2 of EAP authentication." +msgstr "Set this to true to disable warnings about CA certificates in phase 2 of EAP authentication." + +#: ../src/8021x.ui.h:1 +#: ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "אימות 802.1X" -#: ../src/applet-device-bt.c:174 -#: ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 -#: ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 -#: ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "זמין" +#: ../src/8021x.ui.h:2 +#: ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "שם ה_רשת:" -#: ../src/applet-device-bt.c:200 -#: ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 -#: ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "'%s' מחובר כעת." +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "הוספת/הפעלת החיבור נכשלה" + +#: ../src/applet.c:514 +#: ../src/applet.c:558 +#: ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 +#: ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "שגיאה בלתי מוכרת" + +#: ../src/applet.c:517 +#: ../src/applet.c:587 +#: ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "ההתקשרות נכשלה" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "ניתוק ההתקן נכשל" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "הניתוק נכשל" + +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "הפעלת החיבור נכשלה" -#: ../src/applet-device-bt.c:204 -#: ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 -#: ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 -#: ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "החיבור נוצר" +#: ../src/applet.c:948 +#: ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "אין להציג הודעה זאת שוב" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "רשת הפס הרחב הנייד מחוברת כעת." +#: ../src/applet.c:1037 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was interrupted." +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' נכשל בגלל שחיבור הרשת נקטע." -#: ../src/applet-device-bt.c:231 -#: ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 -#: ../src/applet-device-wimax.c:464 +#: ../src/applet.c:1040 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "חיבור הפס הרחב הנייד '%s' בהכנות..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' נכשל בגלל ששירות ה־VPN הופסק בפתאומיות." -#: ../src/applet-device-bt.c:234 -#: ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 -#: ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1043 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "הגדרת התצורה של חיבור הפס הרחב הנייד '%s'..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid configuration." +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' נכשל בגלל ששירות ה־VPN החזיר תצורה לא תקינה." -#: ../src/applet-device-bt.c:237 -#: ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 -#: ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1046 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "נדרש אימות מהמשתמש עבור חיבור הפס הרחב הנייד '%s'..." +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' נכשל משום שתם הזמן המוקצב לחיבור." -#: ../src/applet-device-bt.c:240 -#: ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 -#: ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2479 +#: ../src/applet.c:1049 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "מתבקשת כתובת רשת עבור '%s'...." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' נכשל מכיוון ששירות ה־VPN לא התחיל בזמן." -#: ../src/applet-device-bt.c:244 -#: ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1052 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "חיבור הפס הרחב הנייד '%s' פעיל" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' נכשל מכיוון שהפעלת שירות ה־VPN נכשלה." -#: ../src/applet-device-cdma.c:184 -#: ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1055 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' נכשל עקב העדר סודות VPN תקפים." -#: ../src/applet-device-cdma.c:345 -#: ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:430 +#: ../src/applet.c:1058 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "פס רחב נייד (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' נכשל בגלל סודות VPN שגויים." -#: ../src/applet-device-cdma.c:347 -#: ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -#: ../src/connection-editor/nm-connection-list.c:1511 -msgid "Mobile Broadband" -msgstr "פס רחב נייד" +#: ../src/applet.c:1065 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' נכשל." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "חיבור פס רחב נייד (CDMA) חדש..." +#: ../src/applet.c:1083 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was interrupted." +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' התנתק מכיוון שחיבור הרשת הופרע." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "מחובר כעת לרשת CDMA." +#: ../src/applet.c:1086 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' התנתק בגלל ששירות ה־VPN הופסק." -#: ../src/applet-device-cdma.c:503 -#: ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1092 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "חיבור הפס הרחב הנייד '%s' פעיל: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' נותק." -#: ../src/applet-device-cdma.c:506 -#: ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "נדידה" +#: ../src/applet.c:1122 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"jחיבור ה־VPN נוצר בהצלחה.\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:647 -#: ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "רשת CDMA." +#: ../src/applet.c:1124 +msgid "VPN connection has been successfully established.\n" +msgstr "חיבור ה־VPN נוצר בהצלחה.\n" -#: ../src/applet-device-cdma.c:648 -#: ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "נרשמת כעת לרשת הביתית." +#: ../src/applet.c:1126 +msgid "VPN Login Message" +msgstr "הודעת כניסה ל־VPN" -#: ../src/applet-device-cdma.c:654 -#: ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "נרשמת כעת לרשת נדידה." +#: ../src/applet.c:1132 +#: ../src/applet.c:1140 +#: ../src/applet.c:1190 +msgid "VPN Connection Failed" +msgstr "חיבור VPN נכשל" -#: ../src/applet-device-gsm.c:213 -#: ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1197 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"חיבור ה־VPN‏ '%s' נכשל מכיוון שהפעלת שירות ה־VPN נכשלה.\n" +"\n" +"'%s'" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "חיבור פס רחב נייד (GSM) חדש..." +#: ../src/applet.c:1200 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"הפעלת חיבור ה־VPN '‏%s' נכשלה.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "התחברת כעת לרשת ה־GSM." +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "ההתקן אינו מוכן (חסרה קושחה)" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "נדרש קוד PIN" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "ההתקן אינו מוכן" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "נדרש קוד PIN עבור התקן הפס הרחב הנייד" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 +#: ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "מנותק" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "קוד PIN עבור כרטיס ה־SIM‏ '%s' שב־ '%s'" +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "הנתקות" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "קוד ה־PIN שגוי; נא ליצור קשר עם הספק שלך." +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "ההתקן לא מנוהל" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "קוד ה־PUK שגוי; נא ליצור קשר עם הספק שלך." +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "לא נמצא התקן רשת זמין" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "נשלח קוד שחרור..." +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "_חיבורי VPN" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "נדרש שחרור ה־PIN של ה־SIM" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "ה_גדרת VPN..." -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "נדרש שחרור ה־PIN של ה־SIM" +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "_ניתוק VPN" -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." -msgstr "התקן הפס הרחב הנייד '%s' דורש את קוד ה־PIN של ה־SIM לפני שניתן יהיה להשתמש בו." +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "מנהל הרשתות אינו פעיל..." -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "קוד PIN:" +#: ../src/applet.c:1854 +#: ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "מנהל הרשתות כבוי" -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "הצגת קוד PIN" +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "הפעלת _חיבורי רשת" -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "נדרש שחרור ה־PUK של ה־SIM" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +msgid "Enable _Wi-Fi" +msgstr "הפעלת ת_קשורת רשת אלחוטית" -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "נדרש שחרור ה־PUK של ה־SIM" +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "הפעלת פס _רחב נייד" -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 -#, c-format -msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." -msgstr "התקן הפס הרחב הנייד '%s' דורש את קוד ה־PUK של ה־SIM לפני שניתן יהיה להשתמש בו." +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "הפעלת פס _רחב נייד מ_סוג WiMAX" -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "קוד PUK:" +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "הפעלת הה_תרעות" -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "קוד PIN חדש:" +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "_פרטי החיבור" -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "הזנת קוד ה־PIN החדש שוב:" +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "עריכת חיבורים..." -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "הצגת הקודים PIN/PUK" +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "ע_זרה" -#: ../src/applet-device-gsm.c:1197 -#: ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "רשת GSM." +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "על _אודות" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "‏אתרנט אוטומטי" +#: ../src/applet.c:2335 +msgid "Disconnected" +msgstr "נותק" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "רשתות קוויות (%s)" +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "חיבור הרשת נותק." -#: ../src/applet-device-wired.c:207 +#: ../src/applet.c:2519 #, c-format -msgid "Wired Network (%s)" -msgstr "רשת קווית (%s)" - -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "רשתות קוויות" - -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "רשת קווית" - -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 -#: ../src/applet.c:1485 -msgid "disconnected" -msgstr "מנותק" - -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "התחברת כעת לרשת הקווית." +msgid "Preparing network connection '%s'..." +msgstr "חיבור הרשת '%s' בהכנות..." -#: ../src/applet-device-wired.c:300 +#: ../src/applet.c:2522 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "חיבור הרשת הקווית '%s' בהכנות..." +msgid "User authentication required for network connection '%s'..." +msgstr "נדרש אימות משתמש עבור חיבור הרשת ‏'%s'..." -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2525 +#: ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "הגדרת התצורה של חיבור הרשת הקווית '%s'..." +msgid "Requesting a network address for '%s'..." +msgstr "מתבקשת כתובת רשת עבור '%s'...." -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2528 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "נדרש אימות מהמשתמש עבור חיבור הרשת הקווית '%s'..." +msgid "Network connection '%s' active" +msgstr "חיבור הרשת '%s' פעיל" -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2611 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "מתבקשת כתובת לרשת הקווית עבור '%s'...." +msgid "Starting VPN connection '%s'..." +msgstr "חיבור ה־VPN ‏'%s' מופעל..." -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2614 #, c-format -msgid "Wired network connection '%s' active" -msgstr "החיבור לרשת הקווית '%s' פעיל" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "אימות DSL" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "ה_תחברות לרשת אלחוטית סמויה..." - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "יצירת רשת אלחוטית _חדשה..." - -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(אין)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "נדרש אימות משתמש עבור חיבור ה־VPN ‏'%s'..." -#: ../src/applet-device-wifi.c:803 +#: ../src/applet.c:2617 #, c-format -msgid "Wireless Networks (%s)" -msgstr "רשתות אלחוטיות (%s)" +msgid "Requesting a VPN address for '%s'..." +msgstr "מתבקשת כתובת VPN עבור ‏'%s'..." -#: ../src/applet-device-wifi.c:805 +#: ../src/applet.c:2620 #, c-format -msgid "Wireless Network (%s)" -msgstr "רשת אלחוטית (%s)" - -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "רשת אלחוטית" -msgstr[1] "רשתות אלחוטיות" -msgstr[2] "רשתות אלחוטיות" - -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "רשת אלחוטית כבויה" - -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "החיבור האלחוטי מנוטרל על ידי מתג חומרה" - -#: ../src/applet-device-wifi.c:902 -msgid "More networks" -msgstr "רשתות נוספות" +msgid "VPN connection '%s' active" +msgstr "חיבור ה־VPN‏ '%s' פעיל" -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" -msgstr "רשתות אלחוטיות זמינות" +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "אין חיבור רשת" -#: ../src/applet-device-wifi.c:1082 -msgid "Use the network menu to connect to a wireless network" -msgstr "ניתן להשתמש בתפריט הרשתות כדי להתחבר לרשת אלחוטית" +#: ../src/applet.c:3361 +msgid "NetworkManager Applet" +msgstr "יישומון מנהל הרשתות" -#: ../src/applet-device-wifi.c:1085 -#: ../src/applet.c:901 -msgid "Don't show this message again" -msgstr "אין להציג הודעה זאת שוב" +#: ../src/applet-device-bt.c:173 +#: ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 +#: ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 +#: ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "זמין" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-bt.c:199 +#: ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 +#: ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "התחברת כעת לרשת האלחוטית '%s'." +msgid "You are now connected to '%s'." +msgstr "'%s' מחובר כעת." -#: ../src/applet-device-wifi.c:1308 -#, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "חיבור הרשת האלחוטית '%s' בהכנות..." +#: ../src/applet-device-bt.c:203 +#: ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 +#: ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 +#: ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "החיבור נוצר" -#: ../src/applet-device-wifi.c:1311 -#, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "הגדרת התצורה של חיבור הרשת האלחוטית '%s'..." +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "רשת הפס הרחב הנייד מחוברת כעת." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-bt.c:230 +#: ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 +#: ../src/applet-device-wimax.c:464 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "נדרש אימות מהמשתמש עבור חיבור הרשת האלחוטית '%s'..." +msgid "Preparing mobile broadband connection '%s'..." +msgstr "חיבור הפס הרחב הנייד '%s' בהכנות..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-bt.c:233 +#: ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 +#: ../src/applet-device-wimax.c:467 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "מתבקשת כתובת רשת האלחוטית עבור '%s'...." +msgid "Configuring mobile broadband connection '%s'..." +msgstr "הגדרת התצורה של חיבור הפס הרחב הנייד '%s'..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-bt.c:236 +#: ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 +#: ../src/applet-device-wimax.c:470 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "חיבור הרשת האלחוטית '%s' פעיל: %s ‏(%d%%)" +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "נדרש אימות מהמשתמש עבור חיבור הפס הרחב הנייד '%s'..." -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-bt.c:243 +#: ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "חיבור הרשת האלחוטית '%s' פעיל" +msgid "Mobile broadband connection '%s' active" +msgstr "חיבור הפס הרחב הנייד '%s' פעיל" -#: ../src/applet-device-wimax.c:231 -#, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "פס רחב נייד מסוג WiMAX‏ (%s)" +#: ../src/applet-device-cdma.c:181 +#: ../src/connection-editor/page-mobile.c:700 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr "פס רחב נייד מסוג WiMAX" +#: ../src/applet-device-cdma.c:342 +#: ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 +#, c-format +msgid "Mobile Broadband (%s)" +msgstr "פס רחב נייד (%s)" -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "רשת ה־WiMAX כבויה" +#: ../src/applet-device-cdma.c:344 +#: ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:87 +#: ../src/connection-editor/page-mobile.c:380 +msgid "Mobile Broadband" +msgstr "פס רחב נייד" -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "תקשורת ה־WiMAX מנוטרלת באמצעות מתג חומרה" +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "חיבור פס רחב נייד (CDMA) חדש..." -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "כעת ישנו חיבור בינך ובין רשת ה־WiMAX." +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "מחובר כעת לרשת CDMA." -#: ../src/applet-dialogs.c:57 -msgid "Error displaying connection information:" -msgstr "שגיאה בהצגת נתוני החיבור:" +#: ../src/applet-device-cdma.c:500 +#: ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "חיבור הפס הרחב הנייד '%s' פעיל: (%d%%%s%s)" -#: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-cdma.c:503 +#: ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "נדידה" -#: ../src/applet-dialogs.c:111 -msgid "Dynamic WEP" -msgstr "‏WEP דינמי" +#: ../src/applet-device-cdma.c:644 +#: ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "רשת CDMA." -#: ../src/applet-dialogs.c:113 -#: ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-cdma.c:645 +#: ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "נרשמת כעת לרשת הביתית." -#: ../src/applet-dialogs.c:244 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-cdma.c:651 +#: ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "נרשמת כעת לרשת נדידה." -#: ../src/applet-dialogs.c:252 -#: ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "אין" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "‏אתרנט אוטומטי" -#: ../src/applet-dialogs.c:352 -#: ../src/applet-dialogs.c:490 +#: ../src/applet-device-ethernet.c:205 #, c-format -msgid "%u Mb/s" -msgstr "%u מסל״ש" - -#: ../src/applet-dialogs.c:354 -#: ../src/applet-dialogs.c:492 -msgctxt "Speed" -msgid "Unknown" -msgstr "לא ידוע" +msgid "Ethernet Networks (%s)" +msgstr "רשתות קוויות (%s)" -#: ../src/applet-dialogs.c:367 +#: ../src/applet-device-ethernet.c:207 #, c-format -msgid "%d dB" -msgstr "%d דציבל" +msgid "Ethernet Network (%s)" +msgstr "רשת קווית (%s)" -#: ../src/applet-dialogs.c:369 -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "בלתי ידוע" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "רשתות קוויות" -#: ../src/applet-dialogs.c:381 -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "בלתי ידוע" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "רשת קווית" + +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "התחברת כעת לרשת הקווית." -#: ../src/applet-dialogs.c:416 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "Ethernet (%s)" -msgstr "Ethernet (%s)" +msgid "Preparing ethernet network connection '%s'..." +msgstr "חיבור הרשת הקווית '%s' בהכנות..." -#: ../src/applet-dialogs.c:419 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "802.11 WiFi (%s)" -msgstr "802.11 WiFi (%s)" +msgid "Configuring ethernet network connection '%s'..." +msgstr "תצורת חיבור הרשת הקווית '%s' מוגדרת..." -#: ../src/applet-dialogs.c:426 +#: ../src/applet-device-ethernet.c:306 #, c-format -msgid "GSM (%s)" -msgstr "GSM (%s)" +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "נדרש אימות מהמשתמש עבור חיבור הרשת הקווית '%s'..." -#: ../src/applet-dialogs.c:428 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "CDMA (%s)" -msgstr "CDMA (%s)" +msgid "Requesting an ethernet network address for '%s'..." +msgstr "מתבקשת כתובת לרשת הקווית עבור '%s'...." -#: ../src/applet-dialogs.c:432 +#: ../src/applet-device-ethernet.c:313 #, c-format -msgid "WiMAX (%s)" -msgstr "WiMAX (%s)" +msgid "Ethernet network connection '%s' active" +msgstr "החיבור לרשת הקווית '%s' פעיל" + +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "אימות DSL" + +#: ../src/applet-device-gsm.c:211 +#: ../src/connection-editor/page-mobile.c:703 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" + +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "חיבור פס רחב נייד (GSM) חדש..." + +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "התחברת כעת לרשת ה־GSM." + +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "נדרש קוד PIN" + +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "נדרש קוד PIN עבור התקן הפס הרחב הנייד" + +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "קוד PIN עבור כרטיס ה־SIM‏ '%s' שב־ '%s'" + +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "קוד ה־PIN שגוי; נא ליצור קשר עם הספק שלך." + +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "קוד ה־PUK שגוי; נא ליצור קשר עם הספק שלך." + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "נשלח קוד שחרור..." + +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "נדרש שחרור ה־PIN של ה־SIM" + +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "נדרש שחרור ה־PIN של ה־SIM" + +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." +msgstr "התקן הפס הרחב הנייד '%s' דורש את קוד ה־PIN של ה־SIM לפני שניתן יהיה להשתמש בו." + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "קוד PIN:" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "הצגת קוד PIN" + +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "נדרש שחרור ה־PUK של ה־SIM" + +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "נדרש שחרור ה־PUK של ה־SIM" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." +msgstr "התקן הפס הרחב הנייד '%s' דורש את קוד ה־PUK של ה־SIM לפני שניתן יהיה להשתמש בו." + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "קוד PUK:" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "קוד PIN חדש:" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "הזנת קוד ה־PIN החדש שוב:" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "הצגת הקודים PIN/PUK" + +#: ../src/applet-device-gsm.c:1195 +#: ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "רשת GSM." + +#: ../src/applet-device-wifi.c:97 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "ה_תחברות לרשת אלחוטית סמויה..." + +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "יצירת רשת אלחוטית _חדשה..." + +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(אין)" + +#: ../src/applet-device-wifi.c:790 +#, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "רשתות אלחוטיות (%s)" + +#: ../src/applet-device-wifi.c:792 +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "רשת אלחוטית (%s)" + +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "רשת אלחוטית" +msgstr[1] "רשתות אלחוטיות" +msgstr[2] "2 רשתות אלחוטיות" + +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "הרשת האלחוטית מנוטרלת" + +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "התקשורת האלחוטית מנוטרלת באמצעות מתג חומרה" + +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "רשתות נוספות" + +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "רשתות אלחוטיות זמינות" + +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "ניתן להשתמש בתפריט הרשתות כדי להתחבר לרשת אלחוטית" + +#: ../src/applet-device-wifi.c:1263 +#, c-format +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "התחברת כעת לרשת האלחוטית '%s'." + +#: ../src/applet-device-wifi.c:1294 +#, c-format +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "חיבור הרשת '%s' בהכנות..." + +#: ../src/applet-device-wifi.c:1297 +#, c-format +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "תצורת חיבור הרשת האלחוטית '%s' מוגדרת..." + +#: ../src/applet-device-wifi.c:1300 +#, c-format +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "נדרש אימות מהמשתמש עבור חיבור הרשת האלחוטית '%s'..." + +#: ../src/applet-device-wifi.c:1303 +#, c-format +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "מתבקשת כתובת רשת אלחוטית עבור '%s'...." + +#: ../src/applet-device-wifi.c:1324 +#, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "חיבור הרשת האלחוטית '%s' פעיל: %s ‏(%d%%)" + +#: ../src/applet-device-wifi.c:1329 +#, c-format +msgid "Wi-Fi network connection '%s' active" +msgstr "החיבור לרשת האלחוטית '%s' פעיל" + +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "הפעלת ההתקשרות נכשלה" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "הוספת החיבור החדש נכשלה" + +#: ../src/applet-device-wimax.c:231 +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "פס רחב נייד מסוג WiMAX‏ (%s)" + +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "פס רחב נייד מסוג WiMAX" + +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "רשת ה־WiMAX כבויה" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "תקשורת ה־WiMAX מנוטרלת באמצעות מתג חומרה" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "כעת ישנו חיבור בינך ובין רשת ה־WiMAX." + +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "שגיאה בהצגת נתוני החיבור:" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" + +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "‏WEP דינמי" + +#: ../src/applet-dialogs.c:113 +#: ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" + +#: ../src/applet-dialogs.c:251 +#: ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "אין" + +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (בררת מחדל)" + +#: ../src/applet-dialogs.c:346 +#: ../src/applet-dialogs.c:484 +#, c-format +msgid "%u Mb/s" +msgstr "%u מסל״ש" + +#: ../src/applet-dialogs.c:348 +#: ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "לא ידוע" + +#: ../src/applet-dialogs.c:361 +#, c-format +msgid "%d dB" +msgstr "%d דציבל" + +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "בלתי ידוע" + +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "בלתי ידוע" + +#: ../src/applet-dialogs.c:410 +#, c-format +msgid "Ethernet (%s)" +msgstr "Ethernet (%s)" + +#: ../src/applet-dialogs.c:413 +#, c-format +msgid "802.11 WiFi (%s)" +msgstr "802.11 WiFi (%s)" + +#: ../src/applet-dialogs.c:420 +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" + +#: ../src/applet-dialogs.c:422 +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" + +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:438 -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:432 +#: ../src/applet-dialogs.c:791 msgid "General" msgstr "כללי" -#: ../src/applet-dialogs.c:442 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "מנשק:" -#: ../src/applet-dialogs.c:458 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "כתובת חומרה:" #. Driver -#: ../src/applet-dialogs.c:466 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "מנהל התקן:" -#: ../src/applet-dialogs.c:495 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "מהירות:" -#: ../src/applet-dialogs.c:505 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "אבטחה" -#: ../src/applet-dialogs.c:518 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:531 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:548 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:559 -#: ../src/applet-dialogs.c:666 +#: ../src/applet-dialogs.c:553 +#: ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "כתובת IP:" -#: ../src/applet-dialogs.c:561 -#: ../src/applet-dialogs.c:577 +#: ../src/applet-dialogs.c:555 +#: ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "לא ידוע" -#: ../src/applet-dialogs.c:575 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "כתובת השידור:" #. Prefix -#: ../src/applet-dialogs.c:584 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "מסכת רשת משנה:" -#: ../src/applet-dialogs.c:586 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "לא ידוע" -#: ../src/applet-dialogs.c:594 -#: ../src/applet-dialogs.c:681 +#: ../src/applet-dialogs.c:588 +#: ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "נתיב בררת המחדל:" -#: ../src/applet-dialogs.c:606 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "כתובת DNS ראשית:" -#: ../src/applet-dialogs.c:615 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "כתובת DNS משנית:" -#: ../src/applet-dialogs.c:625 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "DNS שלישי:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:640 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:649 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "בהתעלמות" -#: ../src/applet-dialogs.c:802 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "סוג ה־VPN:" -#: ../src/applet-dialogs.c:809 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "שער הגישה ל־VPN:" -#: ../src/applet-dialogs.c:815 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "שם המשתמש ב־VPN:" -#: ../src/applet-dialogs.c:821 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "הכרזת ה־VPN:" -#: ../src/applet-dialogs.c:827 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "התקשרות הבסיס:" -#: ../src/applet-dialogs.c:829 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "לא ידוע" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:892 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "לא נמצאו חיבורים פעילים תקינים!" -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -697,846 +1066,931 @@ "כל הזכויות שמורות © 2008-2005 Novell בע״מ.\n" "ותורמים ומתרגמים רבים ומגוונים מהקהילה" -#: ../src/applet-dialogs.c:948 +#: ../src/applet-dialogs.c:942 msgid "Notification area applet for managing your network devices and connections." msgstr "יישומון המנהל את התקני וחיבורי הרשת." -#: ../src/applet-dialogs.c:950 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "אתר הבית של מנהל הרשתות" -#: ../src/applet-dialogs.c:965 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "משאבים חסרים" -#: ../src/applet-dialogs.c:990 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "ססמת רשת פס רחב נייד" -#: ../src/applet-dialogs.c:999 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "נדרשת ססמה כדי להתחבר ל־'%s'." -#: ../src/applet-dialogs.c:1018 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "ססמה:‏" -#: ../src/applet.c:990 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was interrupted." -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' נכשל בגלל שחיבור הרשת נקטע." +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 +msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." +msgstr "כתובות IP מהוות זיהוי למחשב שלך ברשת. יש ללחוץ על \"הוספה\" כדי להוסיף כתובת IP:" -#: ../src/applet.c:993 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' נכשל בגלל ששירות ה־VPN הופסק בפתאומיות." +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "Ig_nore automatically obtained routes" +msgstr "ה_תעלמות מנתיבים שהתקבלו אוטומטית" -#: ../src/applet.c:996 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid configuration." -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' נכשל בגלל ששירות ה־VPN החזיר תצורה לא תקינה." - -#: ../src/applet.c:999 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' נכשל משום שתם הזמן המוקצב לחיבור." - -#: ../src/applet.c:1002 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' נכשל מכיוון ששירות ה־VPN לא התחיל בזמן." - -#: ../src/applet.c:1005 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' נכשל מכיוון שהפעלת שירות ה־VPN נכשלה." - -#: ../src/applet.c:1008 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' נכשל עקב העדר סודות VPN תקפים." - -#: ../src/applet.c:1011 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' נכשל בגלל סודות VPN שגויים." - -#: ../src/applet.c:1018 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' נכשל." - -#: ../src/applet.c:1036 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was interrupted." -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' התנתק מכיוון שחיבור הרשת הופרע." - -#: ../src/applet.c:1039 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' התנתק בגלל ששירות ה־VPN הופסק." - -#: ../src/applet.c:1045 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' נותק." +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +msgid "_Use this connection only for resources on its network" +msgstr "_יש להשתמש בחיבור זה רק עבור משאבים ברשת הפרטי שלו" -#: ../src/applet.c:1079 -msgid "VPN Login Message" -msgstr "הודעת כניסה ל־VPN" +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 +msgid "If enabled, this connection will never be used as the default network connection." +msgstr "אם נבחר, חיבור זה לא ישמש כחיבור בררת מחדל" -#: ../src/applet.c:1085 -#: ../src/applet.c:1093 -#: ../src/applet.c:1143 -msgid "VPN Connection Failed" -msgstr "חיבור VPN נכשל" +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " -#: ../src/applet.c:1150 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"חיבור ה־VPN‏ '%s' נכשל מכיוון שהפעלת שירות ה־VPN נכשלה.\n" -"\n" -"'%s'" +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "נא לבחור את סוג החיבור" -#: ../src/applet.c:1153 -#, c-format +#: ../src/connection-editor/ce-new-connection.ui.h:3 msgid "" +"Select the type of connection you wish to create.\n" "\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" +"If you are creating a VPN, and the VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." msgstr "" +"נא לבחור את סוג חיבור עבור ההתחברות החדשה.\n" "\n" -"הפעלת חיבור ה־VPN '‏%s' נכשלה.\n" -"\n" -"%s" - -#: ../src/applet.c:1473 -msgid "device not ready (firmware missing)" -msgstr "ההתקן אינו מוכן (חסרה קושחה)" - -#: ../src/applet.c:1475 -msgid "device not ready" -msgstr "ההתקן אינו מוכן" - -#: ../src/applet.c:1501 -msgid "Disconnect" -msgstr "הנתקות" - -#: ../src/applet.c:1515 -msgid "device not managed" -msgstr "ההתקן לא מנוהל" +"אם סוג חיבור המבוקש הוא VPN וה־VPN שברצונך ליצור אינו מופיע ברשימה, יתכן שלא מותקן אצלך תוסף ה־VPN המתאים." -#: ../src/applet.c:1559 -msgid "No network devices available" -msgstr "לא נמצא התקן רשת זמין" - -#: ../src/applet.c:1647 -msgid "_VPN Connections" -msgstr "_חיבורי VPN" - -#: ../src/applet.c:1704 -msgid "_Configure VPN..." -msgstr "ה_גדרת VPN..." - -#: ../src/applet.c:1708 -msgid "_Disconnect VPN" -msgstr "_ניתוק VPN" - -#: ../src/applet.c:1806 -msgid "NetworkManager is not running..." -msgstr "מנהל הרשתות אינו פעיל..." - -#: ../src/applet.c:1811 -#: ../src/applet.c:2604 -msgid "Networking disabled" -msgstr "מנהל הרשתות כבוי" - -#. 'Enable Networking' item -#: ../src/applet.c:2032 -msgid "Enable _Networking" -msgstr "הפעלת _חיבורי רשת" - -#. 'Enable Wireless' item -#: ../src/applet.c:2041 -msgid "Enable _Wireless" -msgstr "הפעלת _חיבורי רשת אלחוטית" - -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2050 -msgid "Enable _Mobile Broadband" -msgstr "הפעלת פס _רחב נייד" - -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2059 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "הפעלת פס _רחב נייד מ_סוג WiMAX" - -#. Toggle notifications item -#: ../src/applet.c:2070 -msgid "Enable N_otifications" -msgstr "הפעלת הה_תרעות" - -#. 'Connection Information' item -#: ../src/applet.c:2081 -msgid "Connection _Information" -msgstr "_פרטי החיבור" - -#. 'Edit Connections...' item -#: ../src/applet.c:2091 -msgid "Edit Connections..." -msgstr "עריכת חיבורים..." - -#. Help item -#: ../src/applet.c:2105 -msgid "_Help" -msgstr "ע_זרה" +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "יצירה..." -#. About item -#: ../src/applet.c:2114 -msgid "_About" -msgstr "על _אודות" +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "אוטומטי" -#: ../src/applet.c:2291 -msgid "Disconnected" -msgstr "נותק" +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "אירע כשל בעדכון סודות החיבור עקב שגיאה בלתי ידועה." -#: ../src/applet.c:2292 -msgid "The network connection has been disconnected." -msgstr "חיבור הרשת נותק." +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" +msgstr "Round-robin" + +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" +msgstr "גיבוי פעיל" + +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" +msgstr "XOR" + +#: ../src/connection-editor/ce-page-bond.ui.h:4 +msgid "Broadcast" +msgstr "שידור" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "802.3ad" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" +msgstr "איזון עומס העברה מסתגל" + +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" +msgstr "איזון עומס מסתגל" + +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "MII (מומלץ)" + +#: ../src/connection-editor/ce-page-bond.ui.h:9 +msgid "ARP" +msgstr "ARP" + +#: ../src/connection-editor/ce-page-bond.ui.h:10 +msgid "Bonded _connections:" +msgstr "חיבורים מאו_גדים:" -#: ../src/applet.c:2473 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "חיבור הרשת '%s' בהכנות..." +#: ../src/connection-editor/ce-page-bond.ui.h:11 +msgid "_Mode:" +msgstr "מ_צב:" -#: ../src/applet.c:2476 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "נדרש אימות משתמש עבור חיבור הרשת ‏'%s'..." +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "_עריכה" -#: ../src/applet.c:2482 -#, c-format -msgid "Network connection '%s' active" -msgstr "חיבור הרשת '%s' פעיל" +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "מ_חיקה" -#: ../src/applet.c:2560 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "חיבור ה־VPN ‏'%s' מופעל..." +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "תדירות מ_עקב:" + +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "מילישניות" + +#: ../src/connection-editor/ce-page-bond.ui.h:16 +msgid "_Interface name:" +msgstr "שם המ_נשק:" + +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "מ_עקב אחר קשר:" + +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "י_עדי ARP:" + +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "An IP address, or a comma-separated list of IP addresses, to look for when checking the link status." +msgstr "כתובת IP או רשימה מופרדת בפסיקים של כתובות IP, אחריהן יש לחפש בעת בדיקת מצב הקישוריות." + +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "השהיית ה_פעלת החיבור:" + +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "השהיית _ניתוק החיבור:" -#: ../src/applet.c:2563 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "נדרש אימות משתמש עבור חיבור ה־VPN ‏'%s'..." +#: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 +#: ../src/wireless-security/eap-method-leap.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/ws-leap.ui.h:1 +msgid "_Username:" +msgstr "שם _משתמש:" -#: ../src/applet.c:2566 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "מתבקשת כתובת VPN עבור ‏'%s'..." +#: ../src/connection-editor/ce-page-dsl.ui.h:2 +msgid "_Service:" +msgstr "_שירות:" -#: ../src/applet.c:2569 -#, c-format -msgid "VPN connection '%s' active" -msgstr "חיבור ה־VPN‏ '%s' פעיל" +#: ../src/connection-editor/ce-page-dsl.ui.h:3 +#: ../src/wireless-security/eap-method-leap.ui.h:3 +#: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 +#: ../src/wireless-security/ws-leap.ui.h:3 +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "הצ_גת ססמה" -#: ../src/applet.c:2608 -msgid "No network connection" -msgstr "אין חיבור רשת" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_ססמה:" -#: ../src/applet.c:3258 -msgid "NetworkManager Applet" -msgstr "יישומון מנהל הרשתות" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "אוטומטי" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "שחרור מכשיר זה אוטומטית" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "זוג שזור (TP)" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "_שחרור" +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "מנשק יחידת צירוף (AUI)" -#: ../src/info.ui.h:1 -msgid "Active Network Connections" -msgstr "חיבורי חשת פעילים" +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" -#: ../src/info.ui.h:2 -msgid "Connection Information" -msgstr "פרטי החיבור" +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "מנשק מדיה עצמאי (MII)" -#: ../src/wired-8021x.ui.h:1 -#: ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "אימות DSL" +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 מסל״ש" -#: ../src/wired-8021x.ui.h:2 -#: ../src/libnm-gtk/wifi.ui.h:4 -msgid "_Network name:" -msgstr "שם ה_רשת:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 מסל״ש" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "אוטומטי" +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "גסל״ש אחד" -#: ../src/connection-editor/ce-page.c:310 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "אירע כשל בעדכון סודות החיבור עקב שגיאה בלתי ידועה." +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 ג״ב/ש׳" -#: ../src/connection-editor/ce-ip4-routes.ui.h:1 -#: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 -msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." -msgstr "כתובות IP מהוות זיהוי למחשב שלך ברשת. יש ללחוץ על \"הוספה\" כדי להוסיף כתובת IP:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_פתחה:" -#: ../src/connection-editor/ce-ip4-routes.ui.h:2 -#: ../src/connection-editor/ce-ip6-routes.ui.h:2 -msgid "If enabled, this connection will never be used as the default network connection." -msgstr "אם נבחר, חיבור זה לא ישמש כחיבור בררת מחדל" +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_מהירות:" -#: ../src/connection-editor/ce-ip4-routes.ui.h:3 -#: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" -msgstr "ה_תעלמות מנתיבים שהתקבלו אוטומטית" +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "תקשורת דו־כיווני_ת מלאה" -#: ../src/connection-editor/ce-ip4-routes.ui.h:4 -#: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "_Use this connection only for resources on its network" -msgstr "_יש להשתמש בחיבור זה רק עבור משאבים ברשת הפרטי שלו" +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "משא ומתן _אוטומטי" -#: ../src/connection-editor/ce-page-dsl.ui.h:1 -#: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 -#: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "הצ_גת ססמה" +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "כתובת ה־_MAC של ההתקן:" -#: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "_ססמה:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "כתובת ה־MAC המ_שוכפלת:" -#: ../src/connection-editor/ce-page-dsl.ui.h:3 -msgid "_Service:" -msgstr "_שירות:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "כתובת ה־MAC שהוזנה כאן תשמש ככתובת החומרה עבור התקן הרשת שחיבור זה מופעל דרכו. תכונה זו ידועה כשכפול או זיוף MAC. לדוגמה: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 -#: ../src/wireless-security/eap-method-leap.ui.h:3 -#: ../src/wireless-security/eap-method-simple.ui.h:4 -#: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "שם _משתמש:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -msgid "Addresses" -msgstr "כתובות" +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "בתים" + +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "מ_צב העברה:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "יחידת נתונים (ללא מעקב)" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "קיים חיבור" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 -msgid "Automatic" -msgstr "אוטומטי" +msgid "Automatic with manual DNS settings" +msgstr "אוטומטי עם הגדרות DNS ידניות" #: ../src/connection-editor/ce-page-ip4.ui.h:3 #: ../src/connection-editor/ce-page-ip6.ui.h:3 -msgid "Automatic with manual DNS settings" -msgstr "אוטומטי עם הגדרות DNS ידניות" +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "ידני" #: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" -msgstr "מזהה לקוח D_HCP:‏" +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "קישור מקומי" #: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "Domains used when resolving host names. Use commas to separate multiple domains." -msgstr "שמות מתחם המשמשים לפתרון שמות מארחים. יש להשתמש בפסיקים כדי להפריד מספר שמות מתחם." +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "משותף למחשבים אחרים" -#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 #: ../src/connection-editor/ce-page-ip6.ui.h:6 -msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." -msgstr "כתובת IP של שמות מתחם המשתמשים לפתרון שמות מאחרים. יש להשתמש בפסיקים כדי להפריד מספר כתובות שמות מתחם." +msgid "_Method:" +msgstr "_שיטה" -#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip4.ui.h:7 #: ../src/connection-editor/ce-page-ip6.ui.h:7 -msgid "Link-Local" -msgstr "קישור מקומי" +msgid "Addresses" +msgstr "כתובות" #: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 -#: ../src/connection-editor/page-ip4.c:169 -#: ../src/connection-editor/page-ip6.c:191 -msgid "Manual" -msgstr "ידני" +msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." +msgstr "מזהה לקוח ה־DHCP מאפשר למנהל הרשת שלך להתאים את תצורת המחשב שלך. אם ברצונך להשתמש במזהה לקוח DHCP יש להזין אותו כאן." #: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv_4 addressing for this connection to complete" -msgstr "יש צורך בחלוקת כתובות IPv_4 כדי להשלים חיבור זה" +#: ../src/connection-editor/ce-page-ip6.ui.h:9 +msgid "Domains used when resolving host names. Use commas to separate multiple domains." +msgstr "שמות מתחם המשמשים לפתרון שמות מארחים. יש להשתמש בפסיקים כדי להפריד מספר שמות מתחם." #: ../src/connection-editor/ce-page-ip4.ui.h:11 +msgid "D_HCP client ID:" +msgstr "מזהה לקוח D_HCP:‏" + +#: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "מתחמי _חיפוש:" -#: ../src/connection-editor/ce-page-ip4.ui.h:12 -#: ../src/connection-editor/ce-page-ip6.ui.h:11 -#: ../src/connection-editor/page-ip4.c:187 -#: ../src/connection-editor/page-ip6.c:211 -msgid "Shared to other computers" -msgstr "משותף למחשבים אחרים" - #: ../src/connection-editor/ce-page-ip4.ui.h:13 -msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." -msgstr "מזהה לקוח ה־DHCP מאפשר למנהל הרשת שלך להתאים את תצורת המחשב שלך. אם ברצונך להשתמש במזהה לקוח DHCP יש להזין אותו כאן." +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 +msgid "_DNS servers:" +msgstr "שרתי _DNS:" #: ../src/connection-editor/ce-page-ip4.ui.h:14 -msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "בעת התחברות לרשתות תומכות IPv6 השלמת החיבור תתאפשר אם תצורת ה־IPv4 תיכשל אך תצורת ה־IPv6 תצליח." +#: ../src/connection-editor/ce-page-ip6.ui.h:12 +msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." +msgstr "כתובת IP של שמות מתחם המשתמשים לפתרון שמות מאחרים. יש להשתמש בפסיקים כדי להפריד מספר כתובות שמות מתחם." #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 -msgid "_DNS servers:" -msgstr "שרתי _DNS:" +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "יש צורך בחלוקת כתובות IPv_4 כדי להשלים חיבור זה" #: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Method:" -msgstr "_שיטה" +msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "בעת התחברות לרשתות תומכות IPv6 השלמת החיבור תתאפשר אם תצורת ה־IPv4 תיכשל אך תצורת ה־IPv6 תצליח." #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 msgid "_Routes…" msgstr "_נתיבים…" -#: ../src/connection-editor/ce-page-ip6.ui.h:9 +#: ../src/connection-editor/ce-page-ip6.ui.h:13 msgid "Require IPv_6 addressing for this connection to complete" msgstr "יש צורך בחלוקת כתובות IPv_6 כדי להשלים חיבור זה" -#: ../src/connection-editor/ce-page-ip6.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds." msgstr "בעת התחברות לרשתות תומכות IPv4 השלמת החיבור תתאפשר אם תצורת ה־IPv6 תיכשל אך תצורת ה־IPv4 תצליח." #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "כלשהו" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -msgid "Advanced" -msgstr "מתקדם" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -msgid "Allow _roaming if home network is not available" -msgstr "מתן אפשרות ל_נדידה אם הרשת הביתית לא זמינה" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "העדפה ל־3G ‏(UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "כלשהו" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "העדפה ל־2G‏ (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 msgid "Basic" msgstr "בסיסי" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "שינוי..." - -#: ../src/connection-editor/ce-page-mobile.ui.h:8 -msgid "N_etwork ID:" -msgstr "מזהה הר_שת:" - -#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "מס_פר:" #: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "P_IN:" -msgstr "P_IN:" +msgid "Advanced" +msgstr "מתקדם" #: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "העדפה ל־2G‏ (GPRS/EDGE)" +msgid "_APN:" +msgstr "‏_APN:" #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "העדפה ל־3G ‏(UMTS/HSPA)" +msgid "N_etwork ID:" +msgstr "מזהה הר_שת:" #: ../src/connection-editor/ce-page-mobile.ui.h:13 -msgid "Sho_w passwords" -msgstr "הצ_גת ססמאות" +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "_סוג:" #: ../src/connection-editor/ce-page-mobile.ui.h:14 -msgid "_APN:" -msgstr "‏_APN:" +msgid "Change..." +msgstr "שינוי..." + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +msgid "P_IN:" +msgstr "P_IN:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "_סוג:" +msgid "Allow _roaming if home network is not available" +msgstr "מתן אפשרות ל_נדידה אם הרשת הביתית לא זמינה" + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "הצ_גת ססמאות" #: ../src/connection-editor/ce-page-ppp.ui.h:1 +msgid "Authentication" +msgstr "אימות" + +#: ../src/connection-editor/ce-page-ppp.ui.h:2 +msgid "Allowed methods:" +msgstr "שיטות מותרות:" + +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "הגדרת _שיטות..." + +#: ../src/connection-editor/ce-page-ppp.ui.h:4 +msgid "Compression" +msgstr "כיווץ" + +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "_שימוש בהצפנה מקצה לקצה (MPPE)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:6 +msgid "_Require 128-bit encryption" +msgstr "_דרישת הצפנת ‎128-bit" + +#: ../src/connection-editor/ce-page-ppp.ui.h:7 +msgid "Use _stateful MPPE" +msgstr "_שימוש ב־stateful MPPE" + +#: ../src/connection-editor/ce-page-ppp.ui.h:8 msgid "Allow _BSD data compression" msgstr "הפעלת כיווץ מידע _BSD" -#: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "הפעלת _פריסת נתונים דחוסים" +#: ../src/connection-editor/ce-page-ppp.ui.h:9 +msgid "Allow _Deflate data compression" +msgstr "הפעלת _פריסת נתונים דחוסים" + +#: ../src/connection-editor/ce-page-ppp.ui.h:10 +msgid "Use TCP _header compression" +msgstr "שימוש ב_דחיסת כותרות TCP" + +#: ../src/connection-editor/ce-page-ppp.ui.h:11 +msgid "Echo" +msgstr "הד" + +#: ../src/connection-editor/ce-page-ppp.ui.h:12 +msgid "Send PPP _echo packets" +msgstr "שליחת חבילות ה_ד של PPP" + +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "א_בטחה:" + +#: ../src/connection-editor/ce-page-wifi.ui.h:2 +msgid "A (5 GHz)" +msgstr "A (5 GHz)" + +#: ../src/connection-editor/ce-page-wifi.ui.h:3 +msgid "B/G (2.4 GHz)" +msgstr "B/G (2.4 GHz)" + +#: ../src/connection-editor/ce-page-wifi.ui.h:4 +msgid "Infrastructure" +msgstr "תשתית" + +#: ../src/connection-editor/ce-page-wifi.ui.h:5 +msgid "Ad-hoc" +msgstr "ייעודי (Ad-hoc)" + +#: ../src/connection-editor/ce-page-wifi.ui.h:11 +msgid "mW" +msgstr "mW" + +#: ../src/connection-editor/ce-page-wifi.ui.h:12 +msgid "Transmission po_wer:" +msgstr "עצ_מת השידור:" + +#: ../src/connection-editor/ce-page-wifi.ui.h:13 +msgid "Mb/s" +msgstr "מסל״ש" + +#: ../src/connection-editor/ce-page-wifi.ui.h:14 +msgid "_Rate:" +msgstr "_קצב:" + +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +msgid "This option locks this connection to the Wi-Fi access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "אפשרות זהו נועלת חיבור זה לנקודה הגישה האלחוטית (AP) שצוינה על ידי ה־BSSID שצוין כאן. לדוגמה: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-wifi.ui.h:16 +msgid "_BSSID:" +msgstr "‏_BSSID:" + +#: ../src/connection-editor/ce-page-wifi.ui.h:17 +msgid "C_hannel:" +msgstr "_ערוץ:" + +#: ../src/connection-editor/ce-page-wifi.ui.h:18 +msgid "Ban_d:" +msgstr "_ערוץ:" + +#: ../src/connection-editor/ce-page-wifi.ui.h:19 +msgid "M_ode:" +msgstr "מ_צב:" + +#: ../src/connection-editor/ce-page-wifi.ui.h:20 +msgid "SS_ID:" +msgstr "SS_ID:" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 +msgid "Allowed Authentication Methods" +msgstr "שיטות האימות המורשות" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 +msgid "_EAP" +msgstr "_EAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +msgid "Extensible Authentication Protocol" +msgstr "פרוטוקול אימות בר הרחבה" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "_PAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +msgid "Password Authentication Protocol" +msgstr "פרוטוקול אימות סיסמה" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 +msgid "C_HAP" +msgstr "C_HAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 +msgid "Challenge Handshake Authentication Protocol" +msgstr "פרוטוקול אימות אתגר לחיצת יד" -#: ../src/connection-editor/ce-page-ppp.ui.h:3 -msgid "Allowed methods:" -msgstr "שיטות מותרות:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "_MSCHAP" +msgstr "_MSCHAP" -#: ../src/connection-editor/ce-page-ppp.ui.h:4 -msgid "Authentication" -msgstr "אימות" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "פרוטוקול אימות אתגר לחיצת-יד של מיקרוסופט" -#: ../src/connection-editor/ce-page-ppp.ui.h:5 -msgid "Compression" -msgstr "כיווץ" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" -#: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" -msgstr "הגדרת _שיטות..." +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "פרוטוקול אימות אתגר לחיצת-יד של מיקרוסופט גירסה 2" -#: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" -msgstr "הד" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 +msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." +msgstr "ברוב המקרים, שרתי ה־PPP של הספק יתמכו בכל שיטות האימות. אם החיבור נכשל, יש לנסות לבטל חלק מהשיטות." -#: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" -msgstr "שליחת חבילות ה_ד של PPP" +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "כתובת" -#: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" -msgstr "שימוש ב_דחיסת כותרות TCP" +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "מסכת רשת" -#: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" -msgstr "_שימוש ב־stateful MPPE" +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "שער גישה" -#: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" -msgstr "_דרישת הצפנת ‎128-bit" +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "מטרית" -#: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "_שימוש בהצפנה מקצה לקצה (MPPE)" +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "קידומת" -#: ../src/connection-editor/ce-page-wired.ui.h:1 -msgid "1 Gb/s" -msgstr "גסל״ש אחד" +#: ../src/connection-editor/new-connection.c:77 +#: ../src/connection-editor/page-ethernet.c:272 +msgid "Ethernet" +msgstr "רשת קווית" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 ג״ב/ש׳" +#: ../src/connection-editor/new-connection.c:82 +#: ../src/connection-editor/page-wifi.c:460 +msgid "Wi-Fi" +msgstr "רשת אלחוטית" -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "10 Mb/s" -msgstr "10 מסל״ש" +#: ../src/connection-editor/new-connection.c:92 +#: ../src/connection-editor/page-wimax.c:155 +#: ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "100 Mb/s" -msgstr "100 מסל״ש" +#: ../src/connection-editor/new-connection.c:97 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" -msgstr "מנשק יחידת צירוף (AUI)" +#: ../src/connection-editor/new-connection.c:102 +#: ../src/connection-editor/page-infiniband.c:191 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:107 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "מאגד" -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "משא ומתן _אוטומטי" +#: ../src/connection-editor/new-connection.c:119 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "VPN" -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" +#: ../src/connection-editor/new-connection.c:252 +msgid "Import a saved VPN configuration..." +msgstr "יבוא תצורת חיבור VPN שנשמרה..." -#: ../src/connection-editor/ce-page-wired.ui.h:9 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "C_loned MAC address:" -msgstr "כתובת ה־MAC המ_שוכפלת:" +#: ../src/connection-editor/new-connection.c:274 +msgid "The connection editor dialog could not be initialized due to an unknown error." +msgstr "אתחול תיבת הדו־שיח של עורך ההתחברות לא צלח בשל שגיאה לא מוכרת." -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "Full duple_x" -msgstr "תקשורת דו־כיווני_ת מלאה" +#: ../src/connection-editor/new-connection.c:283 +msgid "Could not create new connection" +msgstr "לא ניתן ליצור חיבור חדש" -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "מנשק מדיה עצמאי (MII)" +#: ../src/connection-editor/new-connection.c:419 +msgid "Connection delete failed" +msgstr "מחיקת החיבור נכשלה" -#: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:12 -msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "כתובת ה־MAC שהוזנה כאן תשמש ככתובת החומרה עבור התקן הרשת שחיבור זה מופעל דרכו. תכונה זו ידועה כשכפול או זיוף MAC. לדוגמה: 00:11:22:33:44:55" +#: ../src/connection-editor/new-connection.c:466 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "האם ברצונך למחוק את החיבור %s?" -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Twisted Pair (TP)" -msgstr "זוג שזור (TP)" +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "עריכת %s" -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 -msgid "_Device MAC address:" -msgstr "כתובת ה־_MAC של ההתקן:" +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "עריכת חיבור ללא שם" -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:17 -msgid "_MTU:" -msgstr "_MTU:" +#: ../src/connection-editor/nm-connection-editor.c:301 +msgid "The connection editor could not find some required resources (the .ui file was not found)." +msgstr "עורך החיבורים לא הצליח למצוא כמה משאבים נחוצים (קובץ ה־‎.ui לא נמצא)." -#: ../src/connection-editor/ce-page-wired.ui.h:16 -msgid "_Port:" -msgstr "_פתחה:" +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "_שמירה" -#: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Speed:" -msgstr "_מהירות:" +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "שמירת שינויים כלשהם שנערכו לחיבור זה." -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:19 -msgid "bytes" -msgstr "בתים" +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "_שמירה..." -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -msgid "A (5 GHz)" -msgstr "A (5 GHz)" +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "יש צורך באימות כדי לשמור את החיבור לכל המשתמשים במחשב." -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "ייעודי (Ad-hoc)" +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not create connection" +msgstr "לא ניתן ליצור את החיבור" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 -msgid "B/G (2.4 GHz)" -msgstr "B/G (2.4 GHz)" +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "לא ניתן לערוך את החיבור" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" -msgstr "_ערוץ:" +#: ../src/connection-editor/nm-connection-editor.c:449 +msgid "Unknown error creating connection editor dialog." +msgstr "אירעה שגיאה בלתי ידועה בעת יצירת חלון עריכת החיבורים." -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "_ערוץ:" +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "שגיאה בשמירת החיבור" -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "Infrastructure" -msgstr "תשתית" +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "המאפיין '%s' ‏/ '%s' לא תקין: %d" -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" -msgstr "מ_צב:" +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "שגיאה באתחול העורך" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "Mb/s" -msgstr "מסל״ש" +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "הוספת החיבור נכשלה" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "SS_ID:" -msgstr "SS_ID:" +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "_שם החיבור:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 -msgid "This option locks this connection to the wireless access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "אפשרות זהו נועלת חיבור זה לנקודה הגישה האלחוטית (AP) שצוינה על ידי ה־BSSID שצוין כאן. לדוגמה: 00:11:22:33:44:55" +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "התחברות אוטו_מטית" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 -msgid "Transmission po_wer:" -msgstr "עצ_מת השידור:" +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "זמין לכל המשתמשים" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "_BSSID:" -msgstr "‏_BSSID:" +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "י_צוא..." -#: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_Rate:" -msgstr "_קצב:" +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "אף פעם" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "mW" -msgstr "mW" +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "כעת" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "א_בטחה:" +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "לפני דקה" +msgstr[1] "לפני %d דקות" +msgstr[2] "לפני שתי דקות" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 -msgid "Allowed Authentication Methods" -msgstr "שיטות האימות המורשות" +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "לפני שעה" +msgstr[1] "לפני %d שעות" +msgstr[2] "לפני שעתיים" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 -msgid "C_HAP" -msgstr "C_HAP" +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "לפני יום" +msgstr[1] "לפני %d ימים" +msgstr[2] "לפני יומיים" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 -msgid "Challenge Handshake Authentication Protocol" -msgstr "פרוטוקול אימות אתגר לחיצת יד" +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "לפני חודש" +msgstr[1] "לפני %d חודשים" +msgstr[2] "לפני חודשיים" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 -msgid "Extensible Authentication Protocol" -msgstr "פרוטוקול אימות בר הרחבה" +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "לפני שנה" +msgstr[1] "לפני %d שנים" +msgstr[2] "לפני שנתיים" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 -msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." -msgstr "ברוב המקרים, שרתי ה־PPP של הספק יתמכו בכל שיטות האימות. אם החיבור נכשל, יש לנסות לבטל חלק מהשיטות." +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "שם" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "שימוש אחרון" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "פרוטוקול אימות אתגר לחיצת-יד של מיקרוסופט" +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "עריכת החיבור המסומן" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "פרוטוקול אימות אתגר לחיצת-יד של מיקרוסופט גירסה 2" +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "_עריכה..." -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" -msgstr "פרוטוקול אימות סיסמה" +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "נדרש אימות כדי לערוך את החיבור המסומן" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "_EAP" +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "מחיקת החיבור המסומן" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "_MSCHAP" +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "מ_חיקה..." -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "_PAP" +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "נדרש אימות כדי למחוק את החיבור המסומן" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 -#: ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "שגיאה ביצירת החיבור" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "נא לבחור את סוג חיבור ה־VPN" +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "לא ידוע כיצד ליצור חיבורים מסוג '%s'" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "יצירה..." +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "שגיאה בעריכת החיבור" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." -msgstr "נא לבחור את סוג חיבור ה־VPN בו ברצונך להשתמש עבור ההתחברות החדשה. אם סוג חיבור ה־VPN שברצונך ליצור אינו מופיע ברשימה, יתכן שלא מותקן אצלך תוסף ה־VPN המתאים." +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "לא נמצא חיבור עם המזהה הייחודי '%s'" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "כתובת" +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "אבטחת 802.1x" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "מסכת רשת" +#: ../src/connection-editor/page-8021x-security.c:122 +msgid "Could not load 802.1x Security user interface." +msgstr "לא ניתן לטעון את מנשק המשתמש של אבטחת 802.1x." -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "שער גישה" +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "שימוש באבטחת _‎8021.X עבור חיבור זה" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "מטרית" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "%s מחפה על %d" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "קידומת" +#: ../src/connection-editor/page-bond.c:749 +msgid "Could not load bond user interface." +msgstr "לא ניתן לטעון את מנשק המשתמש למאגד." -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1519 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:909 +#, c-format +msgid "Bond connection %d" +msgstr "חיבור מאוגד %d" -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-dsl.c:142 msgid "Could not load DSL user interface." msgstr "לא ניתן לטעון את מנשק המשתמש לחיבור DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:234 #, c-format msgid "DSL connection %d" msgstr "חיבור DSL %d" +#: ../src/connection-editor/page-ethernet.c:90 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "אפשרות זו נועלת חיבור זה להתקן הרשת שהוגדר על ידי כתובת ה־MAC הקבועה שצוינה להלן. לדוגמה: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:274 +msgid "Could not load ethernet user interface." +msgstr "לא ניתן לטעון את מנשק המשתמש לרשת קווית." + +#: ../src/connection-editor/page-ethernet.c:450 +#, c-format +msgid "Ethernet connection %d" +msgstr "חיבור קווי %d" + +#: ../src/connection-editor/page-infiniband.c:194 +msgid "Could not load InfiniBand user interface." +msgstr "לא ניתן לטעון את מנשק המשתמש לרשת InfiniBand." + +#: ../src/connection-editor/page-infiniband.c:319 +#, c-format +msgid "InfiniBand connection %d" +msgstr "חיבור InfiniBand‏ %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1584,16 +2038,26 @@ msgid "Disabled" msgstr "מנוטרל" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "שרתי _DNS נוספים:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "מתחמי _חיפוש נוספים:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "עריכת נתיבי IPv4 עבור %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:993 msgid "IPv4 Settings" msgstr "הגדרות IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:995 msgid "Could not load IPv4 user interface." msgstr "לא ניתן לטעון את מנשק המשתמש ל־IPv4." @@ -1602,7 +2066,7 @@ msgstr "אוטומטי כתובות בלבד" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "התעלמות" @@ -1610,41 +2074,41 @@ msgid "Automatic, DHCP only" msgstr "אוטומטי, DHCP בלבד" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "עריכת נתיבי IPv6 עבור %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:957 msgid "IPv6 Settings" msgstr "הגדרות IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:959 msgid "Could not load IPv6 user interface." msgstr "לא ניתן לטעון את מנשק המשתמש ל־IPv6." -#: ../src/connection-editor/page-mobile.c:381 +#: ../src/connection-editor/page-mobile.c:382 msgid "Could not load mobile broadband user interface." msgstr "לא ניתן לטעון את מנשק המשתמש לרשת פס רחב אלחוטית." -#: ../src/connection-editor/page-mobile.c:398 +#: ../src/connection-editor/page-mobile.c:399 msgid "Unsupported mobile broadband connection type." msgstr "סוג חיבור פס הנייד הרחב לא נתמך." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:643 msgid "Select Mobile Broadband Provider Type" msgstr "בחירת סוג הפס הרחב הנייד" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:678 msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." msgstr "נא לבחור את הטכנולוגיה בה משתמש ספק הפס הרחב הנייד שלך. במידה של חוסר ודאות, נא לשאול את הספק שלך." -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:683 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "הספק שלי משתמש בטכנולוגיה המבוססת על _GSM ‏(לדוגמה GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:690 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "הספק שלי משתמש בטכנולוגיה המבוססת על _CDMA ‏(לדוגמה 1xRTT, EVDO)" @@ -1684,290 +2148,30 @@ msgid "Editing PPP authentication methods for %s" msgstr "עריכת שיטות אימות PPP עבור %s" -#: ../src/connection-editor/page-ppp.c:282 +#: ../src/connection-editor/page-ppp.c:283 msgid "PPP Settings" msgstr "הגדרות PPP" -#: ../src/connection-editor/page-ppp.c:284 +#: ../src/connection-editor/page-ppp.c:285 msgid "Could not load PPP user interface." msgstr "לא ניתן לטעון את מנשק המשתמש ל־PPP." -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1515 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 +#: ../src/connection-editor/page-vpn.c:114 msgid "Could not load VPN user interface." msgstr "לא ניתן לטעון את מנשק המשתמש ל־VPN." -#: ../src/connection-editor/page-vpn.c:126 +#: ../src/connection-editor/page-vpn.c:129 #, c-format msgid "Could not find VPN plugin service for '%s'." msgstr "לא ניתן למצוא שירות תוסף VPN עבור '%s'." -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 #, c-format msgid "VPN connection %d" msgstr "חיבור VPN %d" -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "אפשרות זו נועלת חיבור זה להתקן הרשת שהוגדר על ידי כתובת ה־MAC הקבועה שצוינה להלן. לדוגמה: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -#: ../src/connection-editor/nm-connection-list.c:1503 -msgid "Wired" -msgstr "קווי" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "לא ניתן לטעון את מנשק המשתמש לרשת קווית." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "חיבור קווי %d" - -#: ../src/connection-editor/page-wired-security.c:116 -msgid "802.1x Security" -msgstr "אבטחת 802.1x" - -#: ../src/connection-editor/page-wired-security.c:118 -msgid "Could not load Wired Security security user interface." -msgstr "לא ניתן לטעון את מנשק המשתמש של אבטחת הרשת הקווית." - -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1_X security for this connection" -msgstr "שימוש באבטחת _‎8021.X עבור חיבור זה" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "בררת מחדל" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u מה״ץ)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -#: ../src/connection-editor/nm-connection-list.c:1507 -msgid "Wireless" -msgstr "רשת אלחוטית" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "לא ניתן לטעון את מנשק המשתמש לרשת אלחוטית." - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "חיבור אלחוטי %d" - -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "מפתח WEP בן ‎40/128-bit (הקסדצימלי או ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 -msgid "WEP 128-bit Passphrase" -msgstr "ססמת WEP ‏bit-‏128" - -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 -msgid "Dynamic WEP (802.1x)" -msgstr "‏WEP דינאמי (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 -msgid "WPA & WPA2 Personal" -msgstr "‏WPA & WPA2 אישי" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 -msgid "WPA & WPA2 Enterprise" -msgstr "‏WPA & WPA2 עסקי" - -#: ../src/connection-editor/page-wireless-security.c:360 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "לא ניתן לטעון את מנשק המשתמש של אבטחת הרשת האלחוטית; חסרה הגדרה מסויימת." - -#: ../src/connection-editor/page-wireless-security.c:370 -msgid "Wireless Security" -msgstr "אבטחה אלחוטית" - -#: ../src/connection-editor/page-wireless-security.c:372 -msgid "Could not load WiFi security user interface." -msgstr "לא ניתן לטעון את מנשק המשתמש של אבטחת הרשת האלחוטית." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "עריכת %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "עריכת חיבור ללא שם" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "The connection editor could not find some required resources (the .ui file was not found)." -msgstr "עורך החיבורים לא הצליח למצוא כמה משאבים נחוצים (קובץ ה־‎.ui לא נמצא)." - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "Error creating connection editor dialog." - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "_שמירה" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "שמירת שינויים כלשהם שנערכו לחיבור זה." - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "_שמירה..." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "יש צורך באימות כדי לשמור את החיבור לכל המשתמשים במחשב." - -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "זמין לכל המשתמשים" - -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "התחברות אוטו_מטית" - -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -msgid "Connection _name:" -msgstr "_שם החיבור:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "י_צוא" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "י_בוא" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "אף פעם" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "כעת" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "לפני דקה" -msgstr[1] "לפני %d דקות" -msgstr[2] "לפני שתי דקות" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "לפני שעה" -msgstr[1] "לפני %d שעות" -msgstr[2] "לפני שעתיים" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "לפני יום" -msgstr[1] "לפני %d ימים" -msgstr[2] "לפני יומיים" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "לפני חודש" -msgstr[1] "לפני %d חודשים" -msgstr[2] "לפני חודשיים" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "לפני שנה" -msgstr[1] "לפני %d שנים" -msgstr[2] "לפני שנתיים" - -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "הוספת החיבור נכשלה" - -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "שגיאה בשמירת החיבור" - -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "המאפיין '%s' ‏/ '%s' לא תקין: %d" - -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "אירעה שגיאה בלתי ידועה." - -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "שגיאה באתחול העורך" - -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "The connection editor dialog could not be initialized due to an unknown error." -msgstr "אתחול תיבת הדו־שיח של עורך ההתחברות לא צלח בשל שגיאה לא מוכרת." - -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "לא ניתן ליצור חיבור חדש" - -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "לא ניתן לערוך חיבור חדש" - -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "לא ניתן לערוך את החיבור" - -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "מחיקת החיבור נכשלה" - -#: ../src/connection-editor/nm-connection-list.c:795 -#, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "האם ברצונך למחוק את החיבור %s?" - -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 -msgid "Cannot import VPN connection" -msgstr "לא ניתן לייבא חיבור VPN" - -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/page-vpn.c:249 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -1977,79 +2181,91 @@ "\n" "שגיאה: אין סוג שירות VPN ." -#: ../src/connection-editor/nm-connection-list.c:945 -msgid "Could not edit imported connection" -msgstr "לא ניתן לערוך חיבור מיובא" +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "נא לבחור את סוג חיבור ה־VPN" -#: ../src/connection-editor/nm-connection-list.c:1126 -msgid "Name" -msgstr "שם" +#: ../src/connection-editor/page-vpn.c:275 +msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." +msgstr "נא לבחור את סוג חיבור ה־VPN בו ברצונך להשתמש עבור ההתחברות החדשה. אם סוג חיבור ה־VPN שברצונך ליצור אינו מופיע ברשימה, יתכן שלא מותקן אצלך תוסף ה־VPN המתאים." -#: ../src/connection-editor/nm-connection-list.c:1138 -msgid "Last Used" -msgstr "שימוש אחרון" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "בררת מחדל" -#: ../src/connection-editor/nm-connection-list.c:1264 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "אין תוסף VPN זמין. נא להתקין אחד כזה כדי להפעיל את הלחצן הזה." +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u מה״ץ)" -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "_Edit" -msgstr "_עריכה" +#: ../src/connection-editor/page-wifi.c:462 +msgid "Could not load Wi-Fi user interface." +msgstr "לא ניתן לטעון את מנשק המשתמש לרשת אלחוטית." -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "Edit the selected connection" -msgstr "עריכת החיבור המסומן" +#: ../src/connection-editor/page-wifi.c:667 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "חיבור אלחוטי %d" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "_Edit..." -msgstr "_עריכה..." +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "אין" -#: ../src/connection-editor/nm-connection-list.c:1278 -msgid "Authenticate to edit the selected connection" -msgstr "נדרש אימות כדי לערוך את החיבור המסומן" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "מפתח WEP בן ‎40/128-bit (הקסדצימלי או ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "_Delete" -msgstr "מ_חיקה" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "ססמת WEP ‏bit-‏128" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "Delete the selected connection" -msgstr "מחיקת החיבור המסומן" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "‏WEP דינאמי (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "_Delete..." -msgstr "מ_חיקה..." +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "‏WPA & WPA2 אישי" -#: ../src/connection-editor/nm-connection-list.c:1296 -msgid "Authenticate to delete the selected connection" -msgstr "נדרש אימות כדי למחוק את החיבור המסומן" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "‏WPA & WPA2 עסקי" -#: ../src/connection-editor/nm-connection-list.c:1575 -msgid "Error creating connection" -msgstr "שגיאה ביצירת החיבור" +#: ../src/connection-editor/page-wifi-security.c:396 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "לא ניתן לטעון את מנשק המשתמש של אבטחת הרשת האלחוטית; חסרה הגדרה לרשת האלחוטית." + +#: ../src/connection-editor/page-wifi-security.c:406 +msgid "Wi-Fi Security" +msgstr "אבטחת רשת אלחוטית" -#: ../src/connection-editor/nm-connection-list.c:1576 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "לא ידוע כיצד ליצור חיבורים מסוג '%s'" +#: ../src/connection-editor/page-wifi-security.c:408 +msgid "Could not load Wi-Fi security user interface." +msgstr "לא ניתן לטעון את מנשק המשתמש של אבטחת הרשת האלחוטית." -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 -msgid "Error editing connection" -msgstr "שגיאה בעריכת החיבור" +#: ../src/connection-editor/page-wimax.c:158 +msgid "Could not load WiMAX user interface." +msgstr "לא ניתן לטעון את מנשק המשתמש לרשת WiMAX." -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/page-wimax.c:287 #, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "לא ידוע כיצד לערוך חיבורים מסוג '%s'" +msgid "WiMAX connection %d" +msgstr "חיבור WiMAX‏ %d" -#: ../src/connection-editor/nm-connection-list.c:1644 -#, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "לא נמצא חיבור עם המזהה הייחודי '%s'" +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "לא ניתן לייבא חיבור VPN" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN connection information\n" @@ -2060,29 +2276,29 @@ "\n" "שגיאה: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "בחירת קובץ לייבוא" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "קובץ בשם \"%s\" כבר קיים." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "ה_חלפה" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "האם ברצונך להחליף את %s בחיבור ה־VPN שנשמר כעת?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "לא ניתן לייצא חיבור VPN" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2093,130 +2309,147 @@ "\n" "שגיאה: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "יצוא חיבור VPN..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "אירע כשל ביצירת חיבור רשת במתחם המיידי: %s" +#: ../src/ethernet-dialog.c:91 +#: ../src/ethernet-dialog.c:99 +msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." +msgstr "יישומון מנהל הרשתות לא מצא חלק מהמשאבים הדרושים (קובץ ה־‎.ui לא נמצא)" -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "הטלפון שלך מוכן כעת לשימוש!" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "הגדרת ה־Bluetooth אינה אפשרית (ההתחברות ל־D-Bus נכשלה: (%s)‏ %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "רשת %s" +msgid "Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "הגדרת ה־Bluetooth אינה אפשרית (שגיאה במציאת מנהל הרשתות:‏ (%s)‏ %s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "שימוש בטלפון הסלולרי שלך כהתקן רשת (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "גישה לאינטרנט באמצעות הטלפון הסלולרי שלך (DUN)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "שגיאה: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "אירע כשל ביצירת חיבור בהתקשרות: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "הטלפון שלך מוכן כעת לשימוש!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "האשף הסלולרי בוטל" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "סוג המכשיר אינו ידוע (לא GSM או CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "סוג המודם אינו ידוע." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "אירע כשל בחיבור לטלפון" -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "החיבור לטלפון נותק באופן פתאומי." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "תם זמן ההמתנה לזיהוי פרטי הטלפון." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "תצורת הטלפון מזוהה כעת..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "לא ניתן למצוא התקן Bluetooth." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection." msgstr "יש להפעיל את התקן ה־Bluetooth כבררת מחדל בטרם הגדרת חיבור לרשת בחיוג." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "הגדרת ה־Bluetooth אינה אפשרית (אירע כשל בהתחברות ל־D-Bus:‏ %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "הגדרת ה־Bluetooth אינה אפשרית (אירע כשל ביצירת מתווך D-Bus)." +msgid "Failed to create PAN connection: %s" +msgstr "אירע כשל ביצירת חיבור רשת במתחם המיידי: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "הגדרת ה־Bluetooth אינה אפשרית (שגיאה במציאת מנהל הרשתות:‏ %s)." +msgid "%s Network" +msgstr "רשת %s" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "שימוש בטלפון הסלולרי שלך כהתקן רשת (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "שחרור מכשיר זה אוטומטית" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "גישה לאינטרנט באמצעות הטלפון הסלולרי שלך (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_שחרור" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "פרטי החיבור" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "חיבורי חשת פעילים" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "Your mobile broadband connection is configured with the following settings:" msgstr "חיבור הפס הנייד הרחב שלך הוגדר עם האפשרויות הבאות:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "ההתקן שלך:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "הספק שלך:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "התכנית שלך:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose \"Network Connections\" from the System >> Preferences menu." msgstr "כעת ייווצר חיבור אל ספק פס־רחב הנייד לפי ההגדרות שבחרת. אם החיבור נכשל או שאין גישה למשאבי רשת, נא לבדוק את ההגדרות שבחרת. כדי לשנות את הגדרות הפס־רחב הנייד, יש לבחור ב\"חיבורי רשת\" דרך התפריט מערכת >> העדפות." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "אישור הגדרות פס רחב נייד" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "לא רשום" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "_בחירת התכנית שלך:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "ה־APN (שם נקודת הגישה) של התכנית ה_נבחרת:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity.\n" "\n" @@ -2226,158 +2459,158 @@ "\n" "במקרה של חוסר ודאות בנוגע לתכנית, נא לפנות אל הספק לפרטים." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "בחירת תכנית החיוב" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "התכנית שלי לא מופיעה..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "בחירת הספק שלך מ_רשימה:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "ספק" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "אין באפשרותי למצוא את הספק שלי וברצוני להזין אותו _ידנית:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "ספק:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "הספק שלי משתמש בטכנולוגיית GSM ‏(GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "הספק שלי משתמש בטכנולוגיית CDMA ‏(1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "בחירת הספק שלך" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "מדינה או רשימת אזורים:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "מדינה או אזור" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "המדינה שלי לא מופיעה" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "נא לבחור את המדינה או האזור של הספק שלך" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "התקן GSM מותקן" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "התקן CDMA מותקן" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network." msgstr "אשף זה עוזר בהגדרה פשוטה חיבור פס נייד רחב לרשת סלולרית (דור שלישי)." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "המידע הבא יהיה דרוש לך:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "שם ספק רוחב הפס שלך" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "שם תכנית החיוב שלך" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(בחלק מהמקרים) שם נקודת הגישה (Access Point Name) של תכנית החיוב שלך" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "יצירת חיבור עבור התקן הפס הרחב הנייד ה_זה:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "התקן כלשהו" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "הגדרת חיבור פס רחב נייד" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "חיבור פס רחב נייד חדש" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "חדש..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "י_צירה" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format -msgid "Passwords or encryption keys are required to access the wireless network '%s'." +msgid "Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "נדרשים ססמאות או מפתחות הצפנה כדי לגשת לרשת האלחוטית '%s'." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 -msgid "Wireless Network Authentication Required" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" msgstr "נדרש אימות לרשת האלחוטית" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 -msgid "Authentication required by wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" msgstr "הרשת האלחוטית דורשת אימות" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 -msgid "Create New Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" msgstr "יצירת רשת אלחוטית חדשה" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "New wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" msgstr "רשת אלחוטית חדשה" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 -msgid "Enter a name for the wireless network you wish to create." -msgstr "נא להכניס שם עבור הרשת האלחוטית שברצונך ליצור." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "נא להזין את שם הרשת האלחוטית שברצונך ליצור." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 -msgid "Connect to Hidden Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" msgstr "התחברות לרשת אלחוטית סמויה" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Hidden wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" msgstr "רשת אלחוטית סמויה" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 -msgid "Enter the name and security details of the hidden wireless network you wish to connect to." -msgstr "נא להקליד את פרטי האבטחה של הרשת האלחוטית הסמויה שברצונך להתחבר אליה." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 +msgid "Enter the name and security details of the hidden Wi-Fi network you wish to connect to." +msgstr "נא להקליד את השם ואת פרטי האבטחה של הרשת האלחוטית הסמויה שברצונך להתחבר אליה." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" -msgstr "חי_בור:" +msgid "Wi-Fi _security:" +msgstr "אבטחת רשת אל_חוטית:" -#: ../src/libnm-gtk/wifi.ui.h:3 -msgid "Wireless _adapter:" -msgstr "_מתאם רשת אלחוטית:" +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "חי_בור:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "אבטחה אל_חוטית:" +msgid "Wi-Fi _adapter:" +msgstr "מ_תאם רשת אלחוטית:" #: ../src/main.c:73 msgid "Usage:" @@ -2419,10 +2652,6 @@ msgid "HSPA" msgstr "HSPA" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "לא פעיל" @@ -2475,82 +2704,83 @@ msgid "Default" msgstr "בררת מחדל" -#: ../src/wired-dialog.c:91 -#: ../src/wired-dialog.c:99 -msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." -msgstr "יישומון מנהל הרשתות לא מצא חלק מהמשאבים הדרושים (קובץ ה־‎.ui לא נמצא)" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "חיבור %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "לא נבחר אישור של רשות אישורים" -#: ../src/wireless-security/eap-method.c:280 -msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue wireless networks. Would you like to choose a Certificate Authority certificate?" -msgstr "אי שימוש באישור של רשות האישורים (CA) יכולה לגרום להתחברות לרשתות אלחוטיות בלתי מאובטחות וזדוניות. האם ברצונך לבחור אישור של רשות אישורים?" +#: ../src/wireless-security/eap-method.c:276 +msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate Authority certificate?" +msgstr "אי שימוש באישור של רשות אישורים (CA) יכולה לגרום להתחברות לרשתות אלחוטיות בלתי מאובטחות וזדוניות. האם ברצונך לבחור אישור של רשות אישורים?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "בחירת אישור CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "תעודות DER, ‏PEM או מפתחות פרטיים מסוג PKCS#12 ‏(‎*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "אישורי DER או PEM ‏(‎*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-fast.ui.h:2 -msgid "Allow automatic PAC pro_visioning" -msgstr "_מתן האפשרות לבדיקת PAC אוטומטית" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" -#: ../src/wireless-security/eap-method-fast.ui.h:3 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -#: ../src/wireless-security/eap-method-ttls.ui.h:2 -msgid "Anony_mous identity:" -msgstr "זהות א_למונית:" +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "נא לבחור בקובץ PAC..." -#: ../src/wireless-security/eap-method-fast.ui.h:4 +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "קובצי PAC‏ (‎*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "כל הקבצים" + +#: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "אלמוני" -#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-fast.ui.h:3 msgid "Authenticated" msgstr "מאומת" -#: ../src/wireless-security/eap-method-fast.ui.h:6 +#: ../src/wireless-security/eap-method-fast.ui.h:4 msgid "Both" msgstr "שניהם" -#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "זהות א_למונית:" + +#: ../src/wireless-security/eap-method-fast.ui.h:6 msgid "PAC _file:" msgstr "_קובץ PAC:" -#: ../src/wireless-security/eap-method-fast.ui.h:8 -#: ../src/wireless-security/eap-method-peap.ui.h:8 +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 msgid "_Inner authentication:" msgstr "אימות _פנימי:" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "נא לבחור בקובץ PAC..." - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "קובצי PAC‏ (‎*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "כל הקבצים" +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "_מתן האפשרות לבדיקת PAC אוטומטית" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2560,25 +2790,25 @@ msgid "Choose a Certificate Authority certificate..." msgstr "בחירת אישור של רשות אישורים..." +#: ../src/wireless-security/eap-method-peap.ui.h:3 +msgid "Version 0" +msgstr "גרסה 0" + #: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 +msgid "Version 1" +msgstr "גרסה 1" + +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 #: ../src/wireless-security/eap-method-ttls.ui.h:3 msgid "C_A certificate:" msgstr "אישור C_A:" -#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:8 msgid "PEAP _version:" msgstr "_גרסת PEAP:" -#: ../src/wireless-security/eap-method-peap.ui.h:6 -msgid "Version 0" -msgstr "גרסה 0" - -#: ../src/wireless-security/eap-method-peap.ui.h:7 -msgid "Version 1" -msgstr "גרסה 1" - -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "_בקשת ססמה זו בכול פעם" @@ -2604,11 +2834,15 @@ msgid "Choose your private key..." msgstr "בחירת המפתח הפרטי שלך..." -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "ז_הות:" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "אישור _משתמש:" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "_מפתח פרטי:" @@ -2616,10 +2850,6 @@ msgid "_Private key password:" msgstr "ססמת מפתח _פרטי:" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "אישור _משתמש:" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "לא לה_זהיר אותי שוב" @@ -2632,63 +2862,130 @@ msgid "Yes" msgstr "כן" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "מהיר" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "‏TLS ממונהר" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "‏EAP מוגן (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 -#: ../src/wireless-security/ws-wep-key.ui.h:5 +#: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 msgid "Au_thentication:" msgstr "_אימות:" #: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "מערכת פתוחה" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "מפתח משותף" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (בררת מחדל)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:6 -msgid "Open System" -msgstr "מערכת פתוחה" - #: ../src/wireless-security/ws-wep-key.ui.h:7 -msgid "Shared Key" -msgstr "מפתח משותף" +msgid "_Key:" +msgstr "_מפתח:" #: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "הצ_גת מפתח" -#: ../src/wireless-security/ws-wep-key.ui.h:9 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "_אינדקס WEP:" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "_מפתח:" +#~ msgid "Wireless Networks (%s)" +#~ msgstr "רשתות אלחוטיות (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "רשת אלחוטית (%s)" + +#~ msgid "Wireless Network" + +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "רשת אלחוטית" +#~ msgstr[1] "רשתות אלחוטיות" +#~ msgstr[2] "רשתות אלחוטיות" + +#~ msgid "wireless is disabled" +#~ msgstr "רשת אלחוטית כבויה" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "החיבור האלחוטי מנוטרל על ידי מתג חומרה" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "חיבור הרשת האלחוטית '%s' בהכנות..." + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "הגדרת התצורה של חיבור הרשת האלחוטית '%s'..." + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "מתבקשת כתובת רשת האלחוטית עבור '%s'...." + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "חיבור הרשת האלחוטית '%s' פעיל" + +#~ msgid "Wired" +#~ msgstr "קווי" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "לא ניתן לטעון את מנשק המשתמש של אבטחת הרשת הקווית." + +#~ msgid "Wireless" +#~ msgstr "רשת אלחוטית" + +#~ msgid "Wireless connection %d" +#~ msgstr "חיבור אלחוטי %d" + +#~ msgid "_Import" +#~ msgstr "י_בוא" + +#~ msgid "An unknown error occurred." +#~ msgstr "אירעה שגיאה בלתי ידועה." + +#~ msgid "Could not edit new connection" +#~ msgstr "לא ניתן לערוך חיבור חדש" + +#~ msgid "Could not edit imported connection" +#~ msgstr "לא ניתן לערוך חיבור מיובא" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "אין תוסף VPN זמין. נא להתקין אחד כזה כדי להפעיל את הלחצן הזה." + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "לא ידוע כיצד לערוך חיבורים מסוג '%s'" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "לא ניתן למצוא התקן Bluetooth." + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "הגדרת ה־Bluetooth אינה אפשרית (אירע כשל ביצירת מתווך D-Bus)." #~ msgid "PI_N:" #~ msgstr "‏PI_N:" @@ -2708,9 +3005,6 @@ #~ msgid "United Kingdom" #~ msgstr "בריטניה" -#~ msgid "C_onnect" -#~ msgstr "ה_תחברות" - #~ msgid "Other Wireless Network..." #~ msgstr "רשתות אלחוטיות אחרות..." diff -Nru network-manager-applet-0.9.4.1/po/hi.po network-manager-applet-0.9.6.2+git201210311320.2620/po/hi.po --- network-manager-applet-0.9.4.1/po/hi.po 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/hi.po 2012-10-31 13:20:57.000000000 +0000 @@ -5,110 +5,117 @@ # # Rajesh Ranjan , 2009. # Rajesh Ranjan , 2010. +# chandankumar , 2012. msgid "" msgstr "" "Project-Id-Version: network-manager-applet.master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&component=nm-applet\n" -"POT-Creation-Date: 2010-07-28 11:22+0000\n" -"PO-Revision-Date: 2010-07-30 14:16+0530\n" -"Last-Translator: Rajesh Ranjan \n" -"Language-Team: Hindi \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-04-03 10:08+0000\n" +"PO-Revision-Date: 2012-04-08 23:42+0530\n" +"Last-Translator: chandankumar \n" +"Language-Team: Hindi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" "\n" "\n" "\n" "\n" "\n" "\n" -"X-Generator: KBabel 1.11.4\n" +"\n" +"X-Generator: Lokalize 1.2\n" +"Language: hi\n" #: ../nm-applet.desktop.in.h:1 -msgid "Control your network connections" -msgstr "अपना संजाल कनेक्सन नियंत्रित करें" +#| msgid "%s Network" +msgid "Network" +msgstr "संजाल" #: ../nm-applet.desktop.in.h:2 -msgid "Network Manager" -msgstr "नेटवर्क मैनेजर" +#| msgid "Control your network connections" +msgid "Manage your network connections" +msgstr "अपना संजाल कनेक्शन नियंत्रित करें" #: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "WiFi निर्माण निष्क्रिय करें" - -#: ../nm-applet.schemas.in.h:2 msgid "Disable connected notifications" msgstr "कनेक्शन सूचना निष्क्रिय करें" +#: ../nm-applet.schemas.in.h:2 +msgid "Set this to TRUE to disable notifications when connecting to a network." +msgstr "" +"इसे सही पर सेट करें सूचना निष्क्रिय करने के लिए जब संजाल से कनेक्ट कर रहा हो." + #: ../nm-applet.schemas.in.h:3 msgid "Disable disconnected notifications" msgstr "डिसकनेक्टेज सूचना निष्क्रिय करें" #: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "इसे सही पर सेट करें सूचना निष्क्रिय करने के लिए जब संजाल से कनेक्ट कर रहा हो." +msgid "" +"Set this to TRUE to disable notifications when disconnecting from a network." +msgstr "" +"सूचना निष्क्रिय करने के लिए इसे सही पर सेट करें जब संजाल से डिसकनेक्ट कर रहा " +"हो." #: ../nm-applet.schemas.in.h:5 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "सूचना निष्क्रिय करने के लिए इसे सही पर सेट करें जब संजाल से डिसकनेक्ट कर रहा हो." +msgid "Suppress networks available notifications" +msgstr "संडाल उपलब्ध अधिसूचना दबाएँ" #: ../nm-applet.schemas.in.h:6 msgid "" "Set this to TRUE to disable notifications when wireless networks are " "available." -msgstr "सूचना निष्क्रिय करने के लिए इसे सही पर सेट करें जब बेतार संजाल उफलब्ध है." +msgstr "" +"सूचना निष्क्रिय करने के लिए इसे सही पर सेट करें जब बेतार संजाल उफलब्ध है." #: ../nm-applet.schemas.in.h:7 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "इसे सही पर सेट करें एप्लेट के उपयोग के दौरान तदर्थ संजाल जब संजाल से कनेक्ट कर रहा हो." - -#: ../nm-applet.schemas.in.h:8 msgid "Stamp" msgstr "स्टैम्प" +#: ../nm-applet.schemas.in.h:8 +msgid "Used to determine whether settings should be migrated to a new version." +msgstr "" +"निर्धारित करने के लिए प्रयुक्त कि क्या सेटिंग को नए संस्करण में उत्प्रवासित " +"करना चाहिए." + #: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" -msgstr "संडाल उपलब्ध अधिसूचना दबाएँ" +msgid "Disable WiFi Create" +msgstr "WiFi निर्माण निष्क्रिय करें" #: ../nm-applet.schemas.in.h:10 -msgid "Used to determine whether settings should be migrated to a new version." -msgstr "निर्धारित करने के लिए प्रयुक्त कि क्या सेटिंग को नए संस्करण में उत्प्रवासित करना चाहिए." +msgid "" +"Set to TRUE to disable creation of adhoc networks when using the applet." +msgstr "" +"इसे सही पर सेट करें एप्लेट के उपयोग के दौरान तदर्थ संजाल जब संजाल से कनेक्ट " +"कर रहा हो." #: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "अपना संजाल कनेक्शन सेटिंग प्रबंधित करें और बदलें" - -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.glade.h:7 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 msgid "Network Connections" msgstr "संजाल कनेक्शन" -#: ../src/applet-dbus-manager.c:165 -#, c-format -msgid "An instance of nm-applet is already running.\n" -msgstr "nm-applet का एक रूप पहले से चल रहा है.\n" - -#: ../src/applet-dbus-manager.c:167 -#, c-format -msgid "Could not acquire the %s service. (%d)\n" -msgstr "%s सेवा अर्जित नहीं कर सका. (%d)\n" +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "अपना संजाल कनेक्शन सेटिंग प्रबंधित करें और बदलें" -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:332 -#: ../src/applet-device-gsm.c:375 ../src/applet-device-wired.c:241 -#: ../src/applet-device-wifi.c:816 +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 +#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "उपलब्ध" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:374 -#: ../src/applet-device-gsm.c:417 ../src/applet-device-wired.c:270 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 +#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 +#: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "आप अब '%s' को कनेक्टेड हैं." -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:378 -#: ../src/applet-device-gsm.c:421 ../src/applet-device-wired.c:274 -#: ../src/applet-device-wifi.c:1257 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 +#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "कनेक्शन स्थापित" @@ -116,471 +123,681 @@ msgid "You are now connected to the mobile broadband network." msgstr "आप अभी मोबाइव ब्रॉडबैंड संजाल से कनेक्टेड हैं." -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:414 -#: ../src/applet-device-gsm.c:457 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "मोबाइल ब्रॉडबैंड कनेक्शन '%s' तैयार कर रहा है..." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:417 -#: ../src/applet-device-gsm.c:460 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "मोबाइल ब्रॉडबैंड कनेक्शन '%s' विन्यस्त कर रहा है..." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:420 -#: ../src/applet-device-gsm.c:463 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "मोबाइल ब्रॉडबैंड कनेक्शन '%s' के लिए उपयोक्ता सत्यापन जरूरी...." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:423 -#: ../src/applet-device-gsm.c:466 ../src/applet.c:2298 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 +#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2504 #, c-format msgid "Requesting a network address for '%s'..." msgstr "'%s' के लिए संजाल पता आग्रह कर रहा है..." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:484 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 +#: ../src/applet-device-gsm.c:555 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "मोबाइल ब्रॉडबैंड कनेक्शन '%s' सक्रिय" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:621 -#: ../src/mb-menu-item.c:55 +#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 +#: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:281 ../src/applet-device-gsm.c:325 +#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "मोबाइल ब्रॉडबैंड (%s)" -#: ../src/applet-device-cdma.c:283 ../src/applet-device-gsm.c:327 -#: ../src/connection-editor/page-mobile.c:318 -#: ../src/connection-editor/nm-connection-editor.glade.h:6 -#: ../src/connection-editor/nm-connection-list.c:1401 +#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 +#: ../src/connection-editor/page-mobile.c:379 +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "मोबाइल ब्रॉडबैंड" #. Default connection item -#: ../src/applet-device-cdma.c:345 +#: ../src/applet-device-cdma.c:412 msgid "New Mobile Broadband (CDMA) connection..." msgstr "मोबाइल ब्रॉडबैंड (CDMA) कनेक्शन..." -#: ../src/applet-device-cdma.c:379 +#: ../src/applet-device-cdma.c:446 msgid "You are now connected to the CDMA network." msgstr "आप अभी CDMA संजाल से कनेक्टेड हैं." -#: ../src/applet-device-cdma.c:436 ../src/applet-device-gsm.c:479 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 +#: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "मोबाइल ब्रॉडबैंड कनेक्शन '%s' सक्रिय: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:439 ../src/applet-device-gsm.c:482 +#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 +#: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "रोमिंग" -#: ../src/applet-device-gsm.c:210 ../src/connection-editor/page-mobile.c:624 -#: ../src/mb-menu-item.c:60 +#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 +#| msgid "More networks" +msgid "CDMA network." +msgstr "CDMA संजाल." + +#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 +#| msgid "You are now connected to the wired network." +msgid "You are now registered on the home network." +msgstr "अब आप घर संजाल पर पंजीकृत हैं." + +#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 +#| msgid "You are now connected to the wired network." +msgid "You are now registered on a roaming network." +msgstr "अब आप एक रोमिंग संजाल पर पंजीकृत हैं." + +#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 +#: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "जीएसएम" #. Default connection item -#: ../src/applet-device-gsm.c:388 +#: ../src/applet-device-gsm.c:459 msgid "New Mobile Broadband (GSM) connection..." msgstr "नया मोबाइल ब्रॉडबैंड (GSM) कनेक्शन..." -#: ../src/applet-device-gsm.c:422 +#: ../src/applet-device-gsm.c:493 msgid "You are now connected to the GSM network." msgstr "आप अभी जीएसएम संजाल से संबंधित हैं." -#: ../src/applet-device-gsm.c:711 +#: ../src/applet-device-gsm.c:654 msgid "PIN code required" msgstr "पिन कोड जरूरी" -#: ../src/applet-device-gsm.c:713 -msgid "PUK code required" -msgstr "पीयूके कोड जरूरी" - -#: ../src/applet-device-gsm.c:722 +#: ../src/applet-device-gsm.c:662 msgid "PIN code is needed for the mobile broadband device" msgstr "पिन कोड मोबाइल ब्रॉडबैंड युक्ति के लिए जरूरी है" -#: ../src/applet-device-gsm.c:724 -msgid "PUK code is needed for the mobile broadband device" -msgstr "पीयूके कोड मोबाइल ब्रॉडबैंड युक्ति के लिए जरूरी है" +#: ../src/applet-device-gsm.c:783 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "सिम कार्ड '%s' के लिए '%s' पर पिन कोड" -#: ../src/applet-device-gsm.c:857 +#: ../src/applet-device-gsm.c:875 msgid "Wrong PIN code; please contact your provider." msgstr "गलत PIN कोड; कृपया अपने प्रदाता से संपर्क करें." -#: ../src/applet-device-gsm.c:880 +#: ../src/applet-device-gsm.c:898 msgid "Wrong PUK code; please contact your provider." msgstr "गलत PUK कोड; कृपया अपने प्रदाता से संपर्क करें." #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:907 +#: ../src/applet-device-gsm.c:925 msgid "Sending unlock code..." msgstr "अनलॉक कोड भेज रहा है..." -#: ../src/applet-device-gsm.c:966 +#: ../src/applet-device-gsm.c:988 msgid "SIM PIN unlock required" msgstr "SIM PIN अनलॉक जरूरी" -#: ../src/applet-device-gsm.c:967 +#: ../src/applet-device-gsm.c:989 msgid "SIM PIN Unlock Required" msgstr "SIM PIN अनलॉक जरूरी" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:969 +#: ../src/applet-device-gsm.c:991 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " "used." msgstr "" -"मोबाइल ब्रॉडबैंड युक्ति '%s' के लिए SIM PIN कोड जरूरी है इससे पहले कि यह प्रयोग किया " +"मोबाइल ब्रॉडबैंड युक्ति '%s' के लिए SIM PIN कोड जरूरी है इससे पहले कि यह " +"प्रयोग किया " "जाए." -#: ../src/applet-device-gsm.c:970 +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:993 msgid "PIN code:" msgstr "पिन कोड:" -#: ../src/applet-device-gsm.c:975 +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:997 +#| msgid "New PIN code:" +msgid "Show PIN code" +msgstr "पिन कोड दिखायें" + +#: ../src/applet-device-gsm.c:1000 msgid "SIM PUK unlock required" msgstr "SIM PUK अनलॉक जरूरी" -#: ../src/applet-device-gsm.c:976 +#: ../src/applet-device-gsm.c:1001 msgid "SIM PUK Unlock Required" msgstr "SIM PUK अनलॉक जरूरी" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:978 +#: ../src/applet-device-gsm.c:1003 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " "used." msgstr "" -"मोबाइल ब्रॉडबैंड युक्ति '%s' के लिए कोई SIM PUK कोड चाहिए इससे पहले कि यह प्रयोग किया " +"मोबाइल ब्रॉडबैंड युक्ति '%s' के लिए कोई SIM PUK कोड चाहिए इससे पहले कि यह " +"प्रयोग किया " "जा सके." -#: ../src/applet-device-gsm.c:979 +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1005 msgid "PUK code:" msgstr "पीयूके कोड:" -#: ../src/applet-device-gsm.c:981 +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1008 msgid "New PIN code:" msgstr "नया पिन कोड:" -#: ../src/applet-device-gsm.c:982 +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1010 msgid "Re-enter new PIN code:" msgstr "नया पिन कोड फिर दाखिल करें:" -#: ../src/applet-device-wired.c:63 +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1015 +#| msgid "New PIN code:" +msgid "Show PIN/PUK codes" +msgstr "PIN/PUK कोड दिखायें" + +#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 +#| msgid "More networks" +msgid "GSM network." +msgstr "GSM संजाल" + +#: ../src/applet-device-wired.c:62 msgid "Auto Ethernet" msgstr "स्वतः इथरनेट" -#: ../src/applet-device-wired.c:206 +#: ../src/applet-device-wired.c:205 #, c-format msgid "Wired Networks (%s)" msgstr "वायर युक्त संजाल (%s)" -#: ../src/applet-device-wired.c:208 +#: ../src/applet-device-wired.c:207 #, c-format msgid "Wired Network (%s)" msgstr "वायर युक्त संजाल (%s)" -#: ../src/applet-device-wired.c:211 +#: ../src/applet-device-wired.c:210 msgid "Wired Networks" msgstr "वायर युक्त संजाल" -#: ../src/applet-device-wired.c:213 +#: ../src/applet-device-wired.c:212 msgid "Wired Network" msgstr "वायर युक्त संजाल" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:233 ../src/applet.c:1309 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1510 msgid "disconnected" msgstr "डिसकनेक्टेड" -#: ../src/applet-device-wired.c:275 +#: ../src/applet-device-wired.c:274 msgid "You are now connected to the wired network." msgstr "आप अभी वायर युक्त संजाल से कनेक्टेड हैं." -#: ../src/applet-device-wired.c:301 +#: ../src/applet-device-wired.c:300 #, c-format msgid "Preparing wired network connection '%s'..." msgstr "वायर युक्त संजाल '%s' के लिए तैयार कर रहा है..." -#: ../src/applet-device-wired.c:304 +#: ../src/applet-device-wired.c:303 #, c-format msgid "Configuring wired network connection '%s'..." msgstr "वायर युक्त कनेक्शन '%s' विन्यस्त कर रहा है..." -#: ../src/applet-device-wired.c:307 +#: ../src/applet-device-wired.c:306 #, c-format msgid "User authentication required for wired network connection '%s'..." msgstr "उपयोक्ता सत्यापन वायर युक्त कनेक्शन '%s' के लिए जरूरी है..." -#: ../src/applet-device-wired.c:310 +#: ../src/applet-device-wired.c:309 #, c-format msgid "Requesting a wired network address for '%s'..." msgstr "'%s' के लिए वायर युक्त संजाल पता आग्रह कर रहा है..." -#: ../src/applet-device-wired.c:314 +#: ../src/applet-device-wired.c:313 #, c-format msgid "Wired network connection '%s' active" msgstr "वायरयुक्त संजाल कनेक्शन '%s' सक्रिय" -#: ../src/applet-device-wired.c:565 +#: ../src/applet-device-wired.c:494 msgid "DSL authentication" msgstr "DSL सत्यापन" -#: ../src/applet-device-wifi.c:87 +#: ../src/applet-device-wifi.c:97 msgid "_Connect to Hidden Wireless Network..." msgstr "छिपे बेतार संजाल प्रक्रिया को कनेक्ट करें (_C)..." -#: ../src/applet-device-wifi.c:120 +#: ../src/applet-device-wifi.c:150 msgid "Create _New Wireless Network..." msgstr "नया बेतार नेटवर्क बनाएँ (_N)..." -#: ../src/applet-device-wifi.c:748 +#: ../src/applet-device-wifi.c:294 +msgid "(none)" +msgstr "(कोई नहीं)" + +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Networks (%s)" msgstr "बेतार संजाल (%s)" -#: ../src/applet-device-wifi.c:750 +#: ../src/applet-device-wifi.c:794 #, c-format msgid "Wireless Network (%s)" msgstr "बेतार संजाल (%s)" -#: ../src/applet-device-wifi.c:752 +#: ../src/applet-device-wifi.c:796 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "बेतार संजाल" msgstr[1] "बेतार संजाल" -#: ../src/applet-device-wifi.c:782 +#: ../src/applet-device-wifi.c:829 msgid "wireless is disabled" msgstr "बेतार अक्षम किया है" -#: ../src/applet-device-wifi.c:843 +#: ../src/applet-device-wifi.c:830 +#| msgid "wireless is disabled" +msgid "wireless is disabled by hardware switch" +msgstr "बेतार हार्डवेयर स्विच से अक्षम है" + +#: ../src/applet-device-wifi.c:891 msgid "More networks" msgstr "अधिक संजाल" -#: ../src/applet-device-wifi.c:1047 +#: ../src/applet-device-wifi.c:1071 msgid "Wireless Networks Available" msgstr "बेतार संजाल उपलब्ध" -#: ../src/applet-device-wifi.c:1048 -msgid "Click on this icon to connect to a wireless network" -msgstr "किसी बेतार संजाल से जुड़ने के लिए इस चिह्न पर क्लिक करें" +#: ../src/applet-device-wifi.c:1072 +#| msgid "Click on this icon to connect to a wireless network" +msgid "Use the network menu to connect to a wireless network" +msgstr "बेतार संजाल से कनेक्ट करने के लिए संजाल मेनू का उपयोग करें" -#: ../src/applet-device-wifi.c:1051 ../src/applet.c:677 +#: ../src/applet-device-wifi.c:1075 ../src/applet.c:926 msgid "Don't show this message again" msgstr "इस संदेश को फिर मत दिखाएँ" -#: ../src/applet-device-wifi.c:1255 +#: ../src/applet-device-wifi.c:1267 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "आप अभी बेतार संजाल '%s' में कनेक्टेड हैं." -#: ../src/applet-device-wifi.c:1256 ../src/applet-device-wifi.c:1287 -msgid "(none)" -msgstr "(कोई नहीं)" - -#: ../src/applet-device-wifi.c:1297 +#: ../src/applet-device-wifi.c:1298 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "बेतार संजाल संबंधन '%s' के लिए तैयार कर है..." -#: ../src/applet-device-wifi.c:1300 +#: ../src/applet-device-wifi.c:1301 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "बेतार संजाल संबंधन '%s' विन्यास कर रहा है..." -#: ../src/applet-device-wifi.c:1303 +#: ../src/applet-device-wifi.c:1304 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "उपयोक्ता सत्यापन जरूरी है बेतार संजाल '%s' के लिए..." -#: ../src/applet-device-wifi.c:1306 +#: ../src/applet-device-wifi.c:1307 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "'%s' के लिए बेतार संजाल पता का आग्रह कर रहा है..." -#: ../src/applet-device-wifi.c:1326 +#: ../src/applet-device-wifi.c:1328 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "बेतार संजाल संबंधन '%s' सक्रिय: %s (%d%%)" -#: ../src/applet-device-wifi.c:1330 +#: ../src/applet-device-wifi.c:1333 #, c-format msgid "Wireless network connection '%s' active" msgstr "बेतार संजाल संबंधन '%s' सक्रिय" -#: ../src/applet-dialogs.c:56 +#: ../src/applet-device-wifi.c:1381 +#| msgid "No valid active connections found!" +msgid "Failed to activate connection" +msgstr "कनेक्शन को सक्रिय करने में विफल" + +#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 +#: ../src/applet.c:492 ../src/applet.c:536 ../src/applet.c:562 +#| msgid "Unknown" +msgid "Unknown error" +msgstr "अज्ञात त्रुटि" + +#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 +#: ../src/applet.c:495 ../src/applet.c:565 +#| msgid "Connection add failed" +msgid "Connection failure" +msgstr "कनेक्शन असफल" + +#: ../src/applet-device-wifi.c:1400 +#| msgid "Could not edit new connection" +msgid "Failed to add new connection" +msgstr "नए कनेक्शन जोड़ने में विफल" + +#: ../src/applet-device-wimax.c:231 +#, c-format +#| msgid "Mobile Broadband (%s)" +msgid "WiMAX Mobile Broadband (%s)" +msgstr "WiMAX मोबाइल ब्रॉडबैंड (%s)" + +#: ../src/applet-device-wimax.c:233 +#| msgid "Mobile Broadband" +msgid "WiMAX Mobile Broadband" +msgstr "WiMAX मोबाइल ब्रॉडबैंड" + +#: ../src/applet-device-wimax.c:259 +#| msgid "wireless is disabled" +msgid "WiMAX is disabled" +msgstr "WiMAX अक्षम किया है" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX हार्डवेयर स्विच से अक्षम है" + +#: ../src/applet-device-wimax.c:428 +#| msgid "You are now connected to the CDMA network." +msgid "You are now connected to the WiMAX network." +msgstr "आप अभी WiMAX संजाल से कनेक्टेड हैं." + +#: ../src/applet-dialogs.c:57 msgid "Error displaying connection information:" msgstr "कनेक्शन संबंधन दिखाने में त्रुटि:" -#: ../src/applet-dialogs.c:87 -#: ../src/connection-editor/page-wireless-security.c:284 -#: ../src/wireless-dialog.c:962 -#: ../src/wireless-security/wireless-security.c:341 +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" -#: ../src/applet-dialogs.c:89 +#: ../src/applet-dialogs.c:111 msgid "Dynamic WEP" msgstr "गतिशील WEP" -#: ../src/applet-dialogs.c:91 ../src/applet-dialogs.c:192 -#: ../src/applet-dialogs.c:194 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:190 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:198 -#: ../src/connection-editor/page-wireless-security.c:238 -#: ../src/wireless-dialog.c:919 -#, fuzzy -msgctxt "No wifi security used" -msgid "None" -msgstr "कुछ नहीं" - -#: ../src/applet-dialogs.c:207 -#, fuzzy -msgctxt "No wired security used" +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 +msgctxt "Wifi/wired security" msgid "None" msgstr "कुछ नहीं" -#: ../src/applet-dialogs.c:210 -#, fuzzy -msgctxt "Unknown/unrecognized wired or wifi security" -msgid "Unknown" -msgstr "अज्ञात" +#: ../src/applet-dialogs.c:277 +#, c-format +#| msgid "default" +msgid "%s (default)" +msgstr "%s डिफ़ॉल्ट" -#: ../src/applet-dialogs.c:280 ../src/applet-dialogs.c:382 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:282 ../src/applet-dialogs.c:384 -#: ../src/applet-dialogs.c:421 ../src/applet-dialogs.c:439 -#: ../src/applet-dialogs.c:450 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +#| msgid "Unknown" +msgctxt "Speed" msgid "Unknown" msgstr "अज्ञात" -#: ../src/applet-dialogs.c:313 +#: ../src/applet-dialogs.c:361 +#, c-format +msgid "%d dB" +msgstr "%d dB" + +#: ../src/applet-dialogs.c:363 +#| msgid "Unknown" +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "अज्ञात" + +#: ../src/applet-dialogs.c:375 +#| msgid "Unknown" +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "अज्ञात" + +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "इथरनेट (%s)" -#: ../src/applet-dialogs.c:315 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:317 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:319 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:324 +#: ../src/applet-dialogs.c:426 +#, c-format +#| msgid "CDMA (%s)" +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" + +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "सामान्य" + +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "इंटरफेसः" -#: ../src/applet-dialogs.c:340 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "हार्डवेयर पता:" -#: ../src/applet-dialogs.c:350 +#. Driver +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "ड्राइवर:" -#: ../src/applet-dialogs.c:388 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "गतिः" -#: ../src/applet-dialogs.c:397 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "सुरक्षा:" -#: ../src/applet-dialogs.c:419 +#: ../src/applet-dialogs.c:512 +#| msgid "PI_N:" +msgid "CINR:" +msgstr "CINR:" + +#: ../src/applet-dialogs.c:525 +#| msgid "_BSSID:" +msgid "BSID:" +msgstr "BSID:" + +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" + +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP पताः" -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +#| msgid "Unknown" +msgctxt "Address" +msgid "Unknown" +msgstr "अज्ञात" + +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "ब्रॉडकास्ट पता:" -#: ../src/applet-dialogs.c:448 +#. Prefix +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "सबनेट मास्क:" -#: ../src/applet-dialogs.c:460 +#: ../src/applet-dialogs.c:580 +#| msgid "Unknown" +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "अज्ञात" + +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "डिफ़ॉल्ट रूट:" -#: ../src/applet-dialogs.c:474 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "प्राथमिक DNS:" -#: ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "द्वितीयक DNS:" +#: ../src/applet-dialogs.c:619 +#| msgid "Secondary DNS:" +msgid "Ternary DNS:" +msgstr "त्रिगुट DNS:" + +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" + +#: ../src/applet-dialogs.c:643 +#| msgid "Ignore" +msgid "Ignored" +msgstr "नज़रअंदाज़ किया" + +#: ../src/applet-dialogs.c:796 +#| msgid "_Type:" +msgid "VPN Type:" +msgstr "VPN क़िस्म:" + +#: ../src/applet-dialogs.c:803 +#| msgid "Gateway" +msgid "VPN Gateway:" +msgstr "VPN गेटवे:" + +#: ../src/applet-dialogs.c:809 +#| msgid "_Username:" +msgid "VPN Username:" +msgstr "VPNप्रयोक्ता नाम:" + +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "VPN ध्वज:" + +#: ../src/applet-dialogs.c:821 +#| msgid "C_onnection:" +msgid "Base Connection:" +msgstr "आधार कनेक्शन:" + +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "अज्ञात" + #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:548 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "कोई वैध सक्रिय कनेक्शन नहीं पाया गया!" -#: ../src/applet-dialogs.c:674 +#: ../src/applet-dialogs.c:939 +#| msgid "" +#| "Copyright © 2004-2008 Red Hat, Inc.\n" +#| "Copyright © 2005-2008 Novell, Inc." msgid "" -"Copyright © 2004-2008 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc." +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" msgstr "" -"Copyright © 2004-2008 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc." +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"और कई अन्य समुदाय के योगदान और अनुवादकों" -#: ../src/applet-dialogs.c:676 -msgid "Notification area applet for managing your network devices and connections." -msgstr "आपके संजाल युक्तियां और कनेक्शन को प्रबंधित करने के लिए अधिसूचना क्षेत्र एप्लेट." +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"आपके संजाल युक्तियां और कनेक्शन को प्रबंधित करने के लिए अधिसूचना क्षेत्र " +"एप्लेट." -#: ../src/applet-dialogs.c:678 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "नेटवर्क प्रबंधक वेबसाइट" -#: ../src/applet-dialogs.c:681 -msgid "translator-credits" -msgstr "राजेश रंजन (rranjan@redhat.com, rajeshkajha@yahoo.com)" - -#: ../src/applet-dialogs.c:697 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "अनुपस्थित संसाधन" -#: ../src/applet-dialogs.c:723 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "मोबाइल ब्रॉडबैंज संजाल कूटशब्द" -#: ../src/applet-dialogs.c:732 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "एक कूटशब्द '%s' में कनेक्ट होने के लिए जरूरी है." -#: ../src/applet-dialogs.c:750 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "पासवर्ड: " -#: ../src/applet.c:790 +#: ../src/applet.c:490 +#| msgid "Could not edit connection" +msgid "Failed to add/activate connection" +msgstr "कनेक्शन को जोड़ने के लिए / सक्रिय करने में विफल" + +#: ../src/applet.c:534 +#| msgid "disconnected" +msgid "Device disconnect failed" +msgstr "डिवाइस डिस्कनेक्ट करने में विफल रहा" + +#: ../src/applet.c:539 +#| msgid "Disconnected" +msgid "Disconnect failure" +msgstr "डिस्कनेक्ट विफलता" + +#: ../src/applet.c:560 +#| msgid "Connection add failed" +msgid "Connection activation failed" +msgstr "कनेक्शन सक्रिय किया जाना विफ" + +#: ../src/applet.c:1015 #, c-format msgid "" "\n" @@ -590,7 +807,7 @@ "\n" "VPN कनेक्शन '%s' विफल रहा क्योंकि संजाल कनेक्शन में बाधा आई थी." -#: ../src/applet.c:793 +#: ../src/applet.c:1018 #, c-format msgid "" "\n" @@ -599,7 +816,7 @@ "\n" "VPN कनेक्शन '%s' विफल रहा क्योंकि VPN सेवा अप्रत्याशित रूप से रूक गया." -#: ../src/applet.c:796 +#: ../src/applet.c:1021 #, c-format msgid "" "\n" @@ -609,7 +826,7 @@ "\n" "VPN कनेक्शन '%s' विफल रहा क्योंकि VPN सेवा ने इसे अवैध विन्यास वापस दिया." -#: ../src/applet.c:799 +#: ../src/applet.c:1024 #, c-format msgid "" "\n" @@ -618,7 +835,7 @@ "\n" "VPN कनेक्शन '%s' विफल रहा क्योंकि कनेक्शन प्रयास का समय समाप्त हो गया." -#: ../src/applet.c:802 +#: ../src/applet.c:1027 #, c-format msgid "" "\n" @@ -627,7 +844,7 @@ "\n" "VPN कनेक्शन '%s' विफल रहा क्योंकि VPN सेवा समय पर शुरू नहीं हो पाई." -#: ../src/applet.c:805 +#: ../src/applet.c:1030 #, c-format msgid "" "\n" @@ -636,7 +853,7 @@ "\n" "VPN कनेक्शन '%s' विफल रहा क्योंकि VPN सेवा आरंभ होने में विफल रही." -#: ../src/applet.c:808 +#: ../src/applet.c:1033 #, c-format msgid "" "\n" @@ -645,7 +862,7 @@ "\n" "VPN कनेक्शन '%s' विफल रहा क्योंकि कोई वैध VPN गुप्त नहीं था." -#: ../src/applet.c:811 +#: ../src/applet.c:1036 #, c-format msgid "" "\n" @@ -654,7 +871,7 @@ "\n" "VPN कनेक्शन '%s' विफल रहा क्योंकि अवैध VPN गुप्तता थी." -#: ../src/applet.c:818 +#: ../src/applet.c:1043 #, c-format msgid "" "\n" @@ -663,7 +880,7 @@ "\n" "VPN कनेक्शन '%s' विफल रहा." -#: ../src/applet.c:836 +#: ../src/applet.c:1061 #, c-format msgid "" "\n" @@ -673,7 +890,7 @@ "\n" "VPN कनेक्शन '%s' टूट गया क्योंकि संजाल कनेक्शन में बाधा आई." -#: ../src/applet.c:839 +#: ../src/applet.c:1064 #, c-format msgid "" "\n" @@ -682,7 +899,7 @@ "\n" "VPN कनेक्शन '%s' टूट गया क्योंकि VPN सेवा रोक दी गई." -#: ../src/applet.c:845 +#: ../src/applet.c:1070 #, c-format msgid "" "\n" @@ -691,15 +908,30 @@ "\n" "VPN कनेक्शन '%s' टूट गया." -#: ../src/applet.c:876 +#: ../src/applet.c:1100 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN कनेक्शन को सफलतापूर्वक स्थापित किया गया है.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1102 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN कनेक्शन को सफलतापूर्वक स्थापित किया गया है.\n" + +#: ../src/applet.c:1104 msgid "VPN Login Message" msgstr "VPN लॉगिन संदेश" -#: ../src/applet.c:888 ../src/applet.c:896 ../src/applet.c:943 +#: ../src/applet.c:1110 ../src/applet.c:1118 ../src/applet.c:1168 msgid "VPN Connection Failed" msgstr "VPN कनेक्शन असफल" -#: ../src/applet.c:950 +#: ../src/applet.c:1175 #, c-format msgid "" "\n" @@ -711,7 +943,7 @@ "VPN कनेक्शन '%s' विफल रहा VPN सेवा आरंभ होने में विफल रही.\n" "%s" -#: ../src/applet.c:953 +#: ../src/applet.c:1178 #, c-format msgid "" "\n" @@ -724,1252 +956,1230 @@ "\n" "%s" -#: ../src/applet.c:1297 -#, fuzzy +#: ../src/applet.c:1498 #| msgid "device not ready" msgid "device not ready (firmware missing)" msgstr "युक्तियां तैयार नहीं (फर्मवेयर गुम)" -#: ../src/applet.c:1299 +#: ../src/applet.c:1500 msgid "device not ready" msgstr "युक्तियां तैयार नहीं" -#: ../src/applet.c:1325 +#: ../src/applet.c:1526 msgid "Disconnect" msgstr "डिस्कनेक्ट" -#: ../src/applet.c:1339 +#: ../src/applet.c:1540 msgid "device not managed" msgstr "युक्तियां प्रबंधित नहीं" -#: ../src/applet.c:1385 +#: ../src/applet.c:1584 msgid "No network devices available" msgstr "कोई संजाल युक्तियां उपलब्ध नहीं" -#: ../src/applet.c:1473 +#: ../src/applet.c:1672 msgid "_VPN Connections" msgstr "_VPN कनेक्शन" -#: ../src/applet.c:1526 +#: ../src/applet.c:1729 msgid "_Configure VPN..." msgstr "VPN विन्यस्त करें (_C)..." -#: ../src/applet.c:1530 +#: ../src/applet.c:1733 msgid "_Disconnect VPN" msgstr "VPN डिस्कनेक्ट करें (_D)" -#: ../src/applet.c:1617 +#: ../src/applet.c:1831 msgid "NetworkManager is not running..." msgstr "नेटवर्कप्रबंधक कार्यशील नहीं है..." -#: ../src/applet.c:1622 ../src/applet.c:2426 +#: ../src/applet.c:1836 ../src/applet.c:2635 msgid "Networking disabled" msgstr "संजालन निष्क्रिय" #. 'Enable Networking' item -#: ../src/applet.c:1851 +#: ../src/applet.c:2057 msgid "Enable _Networking" msgstr "संजालन सक्रिय करें (_N)" #. 'Enable Wireless' item -#: ../src/applet.c:1860 +#: ../src/applet.c:2066 msgid "Enable _Wireless" msgstr "बेतार सक्रिय करें (_W)" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:1869 +#: ../src/applet.c:2075 msgid "Enable _Mobile Broadband" msgstr "मोबाइल ब्रॉडबैंड सक्रिय करें (_M)" +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2084 +#| msgid "Enable _Mobile Broadband" +msgid "Enable WiMA_X Mobile Broadband" +msgstr "WiMA_Xमोबाइल ब्रॉडबैंड सक्रिय करें (_X)" + #. Toggle notifications item -#: ../src/applet.c:1880 +#: ../src/applet.c:2095 msgid "Enable N_otifications" msgstr "सूचना सक्रिय करें (_o)" #. 'Connection Information' item -#: ../src/applet.c:1891 +#: ../src/applet.c:2106 msgid "Connection _Information" msgstr "कनेक्शन जानकारी (_I)" #. 'Edit Connections...' item -#: ../src/applet.c:1901 +#: ../src/applet.c:2116 msgid "Edit Connections..." msgstr "कनेक्शन्स संपादित करें..." #. Help item -#: ../src/applet.c:1915 +#: ../src/applet.c:2130 msgid "_Help" msgstr "मदद (_H)" #. About item -#: ../src/applet.c:1924 +#: ../src/applet.c:2139 msgid "_About" msgstr "के बारे में (_A)" -#: ../src/applet.c:2115 +#: ../src/applet.c:2316 msgid "Disconnected" msgstr "डिस्कनेक्टेड" -#: ../src/applet.c:2116 +#: ../src/applet.c:2317 msgid "The network connection has been disconnected." msgstr "संजाल संबंधन को डिसकनेक्ट किया गया है." -#: ../src/applet.c:2292 +#: ../src/applet.c:2498 #, c-format msgid "Preparing network connection '%s'..." msgstr "संजाल संबंधन '%s' तैयार किया जा रहा है..." -#: ../src/applet.c:2295 +#: ../src/applet.c:2501 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "उपयोक्ता सत्यापन संजाल संबंधन '%s' के लिए जरूरी है..." -#: ../src/applet.c:2301 +#: ../src/applet.c:2507 #, c-format msgid "Network connection '%s' active" msgstr "संजाल कनेक्शन '%s' सक्रिय है" -#: ../src/applet.c:2382 +#: ../src/applet.c:2590 #, c-format msgid "Starting VPN connection '%s'..." msgstr "VPN कनेक्शन '%s' आरंभ कर रहा है..." -#: ../src/applet.c:2385 +#: ../src/applet.c:2593 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "उपयोक्ता सत्यापन VPN संबंधन '%s' के लिए जरूरी है..." -#: ../src/applet.c:2388 +#: ../src/applet.c:2596 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "कोई VPN पता को '%s' के लिए आग्रह कर रहा है..." -#: ../src/applet.c:2391 +#: ../src/applet.c:2599 #, c-format msgid "VPN connection '%s' active" msgstr "VPN कनेक्शन '%s' सक्रिय है" -#: ../src/applet.c:2430 +#: ../src/applet.c:2640 msgid "No network connection" msgstr "कोई संजाल संबंधन नहीं" -#: ../src/applet.c:2979 +#: ../src/applet.c:3354 msgid "NetworkManager Applet" msgstr "नेटवर्कप्रबंधक एप्लेट" -#: ../src/applet.c:2985 ../src/wired-dialog.c:128 -msgid "" -"The NetworkManager Applet could not find some required resources (the glade " -"file was not found)." -msgstr "नेटवर्कप्रबंधक एप्लेट कुछ जरूरी संसाधनों (glade फाइल नहीं मिलता था) को नहीं ढूँढ़ सका." - -#: ../src/applet.glade.h:1 ../src/connection-editor/ce-vpn-wizard.glade.h:1 -msgid " " -msgstr " " - -#: ../src/applet.glade.h:2 -msgid "" -"1 (Default)\n" -"2\n" -"3\n" -"4" -msgstr "" -"1 (तयशुदा)\n" -"2\n" -"3\n" -"4" - -#: ../src/applet.glade.h:6 -msgid "Active Network Connections" -msgstr " सक्रिय नेटवर्क कनेक्शन्स" - -#: ../src/applet.glade.h:7 -msgid "Anony_mous identity:" -msgstr "बेनाम पहचान (_m):" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "स्वचालित रूप से यह युक्ति अनलॉक" -#: ../src/applet.glade.h:8 -msgid "As_k for this password every time" -msgstr "इस कूटशब्द के लिए हर समय पूछें (_k)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "अनलॉक करें (_U)" -#: ../src/applet.glade.h:9 -msgid "" -"Automatic\n" -"Version 0\n" -"Version 1" -msgstr "" -"स्वचालित\n" -"संस्करण 0\n" -"संस्करण 1" +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "कनेक्शन जानकारी" -#: ../src/applet.glade.h:12 -msgid "C_A certificate:" -msgstr "सीए प्रमाणपत्र (_A):" +#: ../src/info.ui.h:2 +#| msgid "Network Connections" +msgid "Active Network Connections" +msgstr "सक्रिय संजाल कनेक्शन" -#: ../src/applet.glade.h:13 -msgid "C_onnect" -msgstr "कनेक्ट (_o)" +#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 +msgid "Wired 802.1X authentication" +msgstr "तारयुक्त 802.1X सत्यापन" -#: ../src/applet.glade.h:14 -msgid "Co_nnection:" -msgstr "कनेक्शन (_n):" +#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "संजाल नाम (_N):" -#: ../src/applet.glade.h:15 -msgid "Connection Information" -msgstr "कनेक्शन जानकारी" +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "स्वचालित" -#: ../src/applet.glade.h:16 -msgid "Don't _warn me again" -msgstr "मुझे फिर मत चेताएँ (_w)" +#: ../src/connection-editor/ce-page.c:318 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "कनेक्शन गुप्तता को अद्यतन करने में विफल किसी अज्ञात त्रुटि के कारण." -#: ../src/applet.glade.h:17 -msgid "I_dentity:" -msgstr "पहचान (_d):" +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 +msgid "" +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." +msgstr "" +"IP पता आपके कंप्यूटर को संजाल पर पहचानता है. \"जोड़ें\" बटन को किसी IP पता " +"जोड़ने के " +"लिए क्लिक करें." -#: ../src/applet.glade.h:18 -msgid "I_nner authentication:" -msgstr "आंतरिक सत्यापन (_n):" +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "Ig_nore automatically obtained routes" +msgstr "स्वतः प्राप्त रूट अनदेखा करें (_n)" -#: ../src/applet.glade.h:19 -msgid "No" -msgstr "नहीं" +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +#| msgid "Use this c_onnection only for resources on its network" +msgid "_Use this connection only for resources on its network" +msgstr "इस कनेक्शन का उपयोग करें इसके संजाल पर संसाधन के लिए (_U)" -#: ../src/applet.glade.h:20 +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 msgid "" -"Open System\n" -"Shared Key" +"If enabled, this connection will never be used as the default network " +"connection." msgstr "" -"खुला तंत्र\n" -"साझा कुंजी" - -#: ../src/applet.glade.h:22 -msgid "Other Wireless Network..." -msgstr "अन्य बेतार नेटवर्क..." +"यदि सक्रिय किया गया है, यह कनेक्शन को तयशुदा संजाल कनेक्शन के लिए कभी प्रयोग " +"नहीं किया " +"जाएगा." -#: ../src/applet.glade.h:23 -msgid "Private _key:" -msgstr "निजी कुंजी (_k):" +#: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 +#: ../src/wireless-security/eap-method-leap.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/ws-leap.ui.h:1 +msgid "_Username:" +msgstr "प्रयोक्ता नाम (_U):" -#: ../src/applet.glade.h:24 -msgid "Sho_w key" -msgstr "कुंजी दिखाएँ (_w)" +#: ../src/connection-editor/ce-page-dsl.ui.h:2 +msgid "_Service:" +msgstr "सेवा (_S):" -#: ../src/applet.glade.h:25 ../src/connection-editor/ce-page-dsl.glade.h:1 +#: ../src/connection-editor/ce-page-dsl.ui.h:3 +#: ../src/wireless-security/eap-method-leap.ui.h:3 +#: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 +#: ../src/wireless-security/ws-leap.ui.h:3 +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 msgid "Sho_w password" msgstr "कूटशब्द दिखाएँ (_w)" -#: ../src/applet.glade.h:26 -msgid "WEP inde_x:" -msgstr "WEP सूची (_x):" - -#: ../src/applet.glade.h:27 -msgid "Wireless _adapter:" -msgstr "बेतार एडाप्टर (_a):" - -#: ../src/applet.glade.h:28 -msgid "Yes" -msgstr "हाँ" - -#: ../src/applet.glade.h:29 -msgid "_Authentication:" -msgstr "सत्यापन (_A):" - -#: ../src/applet.glade.h:30 -msgid "_Key:" -msgstr "कुंजी: (_K)" - -#: ../src/applet.glade.h:31 -msgid "_Network name:" -msgstr "संजाल नाम (_N):" - -#: ../src/applet.glade.h:32 -msgid "_PEAP version:" -msgstr "_PEAP संस्करण:" - -#: ../src/applet.glade.h:33 ../src/connection-editor/ce-page-dsl.glade.h:2 -#: ../src/connection-editor/ce-page-mobile.glade.h:15 +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 msgid "_Password:" msgstr "कूटशब्द (_P):" -#: ../src/applet.glade.h:34 -msgid "_Private key password:" -msgstr "निजी कुंजी कूटशब्द (_P):" - -#: ../src/applet.glade.h:35 ../src/connection-editor/ce-page-mobile.glade.h:16 -msgid "_Type:" -msgstr "प्रकार (_T):" - -#: ../src/applet.glade.h:36 -msgid "_Unlock" -msgstr "अनलॉक करें (_U)" - -#: ../src/applet.glade.h:37 -msgid "_User certificate:" -msgstr "उपयोक्ता प्रमाणपत्र (_U):" - -#: ../src/applet.glade.h:38 ../src/connection-editor/ce-page-dsl.glade.h:4 -#: ../src/connection-editor/ce-page-mobile.glade.h:17 -msgid "_Username:" -msgstr "प्रयोक्ता नाम (_U):" - -#: ../src/applet.glade.h:39 -msgid "_Wireless security:" -msgstr "बेतार सुरक्षा (_W):" - -#: ../src/applet.glade.h:40 -msgid "label" -msgstr "लेबल" - -#: ../src/connection-editor/ce-page.c:69 -msgid "automatic" +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wired.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" msgstr "स्वचालित" -#: ../src/connection-editor/ce-page.c:222 -#: ../src/connection-editor/nm-connection-editor.c:616 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "कनेक्शन गुप्तता को अद्यतन करने में विफल किसी अज्ञात त्रुटि के कारण." +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 +msgid "Automatic with manual DNS settings" +msgstr "स्वत: मैनुअल डीएनएस सेटिंग्स के साथ" + +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "हस्तचालित" -#: ../src/connection-editor/ce-page-dsl.glade.h:3 -msgid "_Service:" -msgstr "सेवा (_S):" +#: ../src/connection-editor/ce-page-ip4.ui.h:4 +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +#| msgid "Link-Local Only" +msgid "Link-Local" +msgstr "लिंक स्थानीय" + +#: ../src/connection-editor/ce-page-ip4.ui.h:5 +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "दूसरे कंप्यूटर में साझेदारी" -#: ../src/connection-editor/ce-page-ip4.glade.h:1 -#: ../src/connection-editor/ce-page-ip6.glade.h:1 -msgid "Addresses" -msgstr " पता" - -#: ../src/connection-editor/ce-page-ip4.glade.h:2 -#: ../src/connection-editor/ce-page-ip6.glade.h:2 -msgid "" -"Automatic\n" -"Automatic with manual DNS settings\n" -"Manual\n" -"Link-Local\n" -"Shared to other computers" -msgstr "" -"स्वचालित\n" -"दस्ती DNS सेटिंग के साथ स्वचालित\n" -"दस्ती\n" -"लिंक स्थानीय\n" -"अन्य कंप्यूटर में साझा" +#: ../src/connection-editor/ce-page-ip4.ui.h:6 +#: ../src/connection-editor/ce-page-ip6.ui.h:6 +msgid "_Method:" +msgstr "विधि (_M):" -#: ../src/connection-editor/ce-page-ip4.glade.h:7 -msgid "D_HCP client ID:" -msgstr "DHCP क्लाइंट आईडी (_H):" +#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip6.ui.h:7 +#| msgid "Address" +msgid "Addresses" +msgstr "पते" + +#: ../src/connection-editor/ce-page-ip4.ui.h:9 +msgid "" +"The DHCP client identifier allows the network administrator to customize " +"your computer's configuration. If you wish to use a DHCP client identifier, " +"enter it here." +msgstr "" +"DHCP क्लाइंट पहचानकर्ता आपके कंप्यूटर के विन्यास को पसंदीदा बनाने की अनुमति " +"देता है. यदि " +"आप किसी DHCP क्लाइंट पहचानकर्ता का उपयोग करना चाहते हैं, इसे दाखिल करें." -#: ../src/connection-editor/ce-page-ip4.glade.h:8 -#: ../src/connection-editor/ce-page-ip6.glade.h:7 +#: ../src/connection-editor/ce-page-ip4.ui.h:10 +#: ../src/connection-editor/ce-page-ip6.ui.h:9 msgid "" "Domains used when resolving host names. Use commas to separate multiple " "domains." msgstr "" -"मेजबान नाम के हल करने के दौरान प्रयुक्त डोमेन नाम. विविध डोमेन अलग करने के लिए " +"मेजबान नाम के हल करने के दौरान प्रयुक्त डोमेन नाम. विविध डोमेन अलग करने के " +"लिए " "अर्द्धविराम का उपयोग करें." -#: ../src/connection-editor/ce-page-ip4.glade.h:9 -#: ../src/connection-editor/ce-page-ip6.glade.h:8 -msgid "" -"IP addresses identify your computer on the network. Click the \"Add\" " -"button to add an IP address." -msgstr "" -"IP पता आपके कंप्यूटर को संजाल पर पहचानता है. \"जोड़ें\" बटन को किसी IP पता जोड़ने के " -"लिए क्लिक करें." +#: ../src/connection-editor/ce-page-ip4.ui.h:11 +msgid "D_HCP client ID:" +msgstr "DHCP क्लाइंट आईडी (_H):" + +#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#| msgid "_Search domains:" +msgid "S_earch domains:" +msgstr "डोमेन खोजें : (_S)" + +#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +msgid "_DNS servers:" +msgstr "डीएनएस सर्वर (_D):" -#: ../src/connection-editor/ce-page-ip4.glade.h:10 -#: ../src/connection-editor/ce-page-ip6.glade.h:9 +#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip6.ui.h:12 msgid "" "IP addresses of domain name servers used to resolve host names. Use commas " "to separate multiple domain name server addresses." msgstr "" -"मेजबान नाम हल करने के लिए डोमेन नाम सर्वर का IP पता. विविध डोमेन नाम सर्वर पताओं को " +"मेजबान नाम हल करने के लिए डोमेन नाम सर्वर का IP पता. विविध डोमेन नाम सर्वर " +"पताओं को " "अलग करने के लिए विराम चिह्न का प्रयोग करें." -#: ../src/connection-editor/ce-page-ip4.glade.h:11 -#: ../src/connection-editor/ce-page-ip6.glade.h:10 -msgid "" -"If enabled, this connection will never be used as the default network " -"connection." -msgstr "" -"यदि सक्रिय किया गया है, यह कनेक्शन को तयशुदा संजाल कनेक्शन के लिए कभी प्रयोग नहीं किया " -"जाएगा." - -#: ../src/connection-editor/ce-page-ip4.glade.h:12 -#: ../src/connection-editor/ce-page-ip6.glade.h:11 -msgid "Ig_nore automatically obtained routes" -msgstr "स्वतः प्राप्त रूट अनदेखा करें (_n)" - -#: ../src/connection-editor/ce-page-ip4.glade.h:13 -msgid "Require IPv4 addressing for this connection to complete" -msgstr "इस कनेक्शन के पूरा होने के लिए IPv4 पता चाहिए" - -#: ../src/connection-editor/ce-page-ip4.glade.h:14 -msgid "" -"The DHCP client identifier allows the network administrator to customize " -"your computer's configuration. If you wish to use a DHCP client identifier, " -"enter it here." -msgstr "" -"DHCP क्लाइंट पहचानकर्ता आपके कंप्यूटर के विन्यास को पसंदीदा बनाने की अनुमति देता है. यदि " -"आप किसी DHCP क्लाइंट पहचानकर्ता का उपयोग करना चाहते हैं, इसे दाखिल करें." +#: ../src/connection-editor/ce-page-ip4.ui.h:15 +#| msgid "Require IPv4 addressing for this connection to complete" +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "इस कनेक्शन के पूरा होने के लिए IPv_4 पता चाहिए" -#: ../src/connection-editor/ce-page-ip4.glade.h:15 -#: ../src/connection-editor/ce-page-ip6.glade.h:13 -msgid "Use this c_onnection only for resources on its network" -msgstr "इस कनेक्शन का उपयोग करें इसके संजाल पर संसाधन के लिए (_o)" - -#: ../src/connection-editor/ce-page-ip4.glade.h:16 +#: ../src/connection-editor/ce-page-ip4.ui.h:16 msgid "" "When connecting to IPv6-capable networks, allows the connection to complete " "if IPv4 configuration fails but IPv6 configuration succeeds." msgstr "" -"जब IPv6-सक्षम संजाल से कनेक्ट किया जाता है, कनेक्शन को पूरा होने के लिए अनुमति देता है यदि " +"जब IPv6-सक्षम संजाल से कनेक्ट किया जाता है, कनेक्शन को पूरा होने के लिए " +"अनुमति देता है यदि " "IPv6 विन्यास विफल रहता है लेकिन IPv6 विन्यास आमने आता है." -#: ../src/connection-editor/ce-page-ip4.glade.h:17 -#: ../src/connection-editor/ce-page-ip6.glade.h:15 -msgid "_DNS servers:" -msgstr "डीएनएस सर्वर (_D):" - -#: ../src/connection-editor/ce-page-ip4.glade.h:18 -#: ../src/connection-editor/ce-page-ip6.glade.h:16 -msgid "_Method:" -msgstr "विधि (_M):" - -#: ../src/connection-editor/ce-page-ip4.glade.h:19 -#: ../src/connection-editor/ce-page-ip6.glade.h:17 -msgid "_Routes…" -msgstr "रूट … (_R)" - -#: ../src/connection-editor/ce-page-ip4.glade.h:20 -#: ../src/connection-editor/ce-page-ip6.glade.h:18 -msgid "_Search domains:" -msgstr "डोमेन खोजें (_S):" - -#: ../src/connection-editor/ce-page-ip6.glade.h:12 -msgid "Require IPv6 addressing for this connection to complete" -msgstr "इस कनेक्शन के पूरा होने के लिए IPv6 पता चाहिए" +#: ../src/connection-editor/ce-page-ip4.ui.h:17 +#: ../src/connection-editor/ce-page-ip6.ui.h:15 +msgid "_Routes…" +msgstr "मार्गों ... (_R)" + +#: ../src/connection-editor/ce-page-ip6.ui.h:13 +#| msgid "Require IPv6 addressing for this connection to complete" +msgid "Require IPv_6 addressing for this connection to complete" +msgstr "इस कनेक्शन के पूरा होने के लिए IPv_6 पता चाहिए" -#: ../src/connection-editor/ce-page-ip6.glade.h:14 +#: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "" "When connecting to IPv4-capable networks, allows the connection to complete " "if IPv6 configuration fails but IPv4 configuration succeeds." msgstr "" -"जब IPv4-सक्षम संजाल से कनेक्ट जाता है, कनेक्शन को पूरा होने के लिए अनुमति देता है यदि IPv6 " +"जब IPv4-सक्षम संजाल से कनेक्ट जाता है, कनेक्शन को पूरा होने के लिए अनुमति " +"देता है यदि IPv6 " "विन्यास विफल रहता है लेकिन IPv4 विन्यास आमने आता है." -#: ../src/connection-editor/ce-page-mobile.glade.h:1 -msgid "Advanced" -msgstr "उन्नत" - -#: ../src/connection-editor/ce-page-mobile.glade.h:2 -msgid "Basic" -msgstr " मूल" - -#: ../src/connection-editor/ce-page-mobile.glade.h:3 -msgid "Allow roaming if home network is not available" -msgstr "रोमिंग स्वीकारें यदि घर संजाल उपलब्ध नहीं है" - -#: ../src/connection-editor/ce-page-mobile.glade.h:4 -msgid "" -"Any\n" -"3G (UMTS/HSPA)\n" -"2G (GPRS/EDGE)\n" -"Prefer 3G (UMTS/HSPA)\n" -"Prefer 2G (GPRS/EDGE)" -msgstr "" -"कोई\n" -"3G (UMTS/HSPA)\n" -"2G (GPRS/EDGE)\n" -"Prefer 3G (UMTS/HSPA)\n" -"Prefer 2G (GPRS/EDGE)" - -#: ../src/connection-editor/ce-page-mobile.glade.h:9 -msgid "Change..." -msgstr "बदलें..." - -#: ../src/connection-editor/ce-page-mobile.glade.h:10 -msgid "N_etwork ID:" -msgstr "संजाल ID (_e):" +#: ../src/connection-editor/ce-page-mobile.ui.h:1 +msgid "Any" +msgstr "कोई" + +#: ../src/connection-editor/ce-page-mobile.ui.h:2 +msgid "3G (UMTS/HSPA)" +msgstr "3G (UMTS/HSPA)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:3 +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:4 +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "वरीयता 3G (UMTS/HSPA)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:5 +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "वरीयता 2G (GPRS/EDGE)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:6 +msgid "Basic" +msgstr "मूल" -#: ../src/connection-editor/ce-page-mobile.glade.h:11 +#: ../src/connection-editor/ce-page-mobile.ui.h:7 msgid "Nu_mber:" msgstr "संख्या (_m):" -#: ../src/connection-editor/ce-page-mobile.glade.h:12 -msgid "PI_N:" -msgstr "PI_N:" - -#: ../src/connection-editor/ce-page-mobile.glade.h:13 -msgid "Sho_w passwords" -msgstr "कूटशब्द दिखाएँ (_w)" +#: ../src/connection-editor/ce-page-mobile.ui.h:10 +#| msgid "Advanced" +msgid "Advanced" +msgstr "विस्तृत" -#: ../src/connection-editor/ce-page-mobile.glade.h:14 +#: ../src/connection-editor/ce-page-mobile.ui.h:11 msgid "_APN:" msgstr "_APN:" -#: ../src/connection-editor/ce-page-ppp.glade.h:1 -msgid "Allowed Authentication Methods" -msgstr "स्वीकृत सत्यापन विधि" +#: ../src/connection-editor/ce-page-mobile.ui.h:12 +msgid "N_etwork ID:" +msgstr "संजाल ID (_e):" -#: ../src/connection-editor/ce-page-ppp.glade.h:2 -msgid "Authentication" -msgstr "सत्यापन" +#: ../src/connection-editor/ce-page-mobile.ui.h:13 +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "प्रकार (_T):" -#: ../src/connection-editor/ce-page-ppp.glade.h:3 -msgid "Compression" -msgstr "संकुचन" +#: ../src/connection-editor/ce-page-mobile.ui.h:14 +msgid "Change..." +msgstr "बदलें..." -#: ../src/connection-editor/ce-page-ppp.glade.h:4 -msgid "Echo" -msgstr "इको" +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +#| msgid "PI_N:" +msgid "P_IN:" +msgstr "पिन: (_I)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:16 +#| msgid "Allow roaming if home network is not available" +msgid "Allow _roaming if home network is not available" +msgstr "रोमिंग स्वीकारें यदि घर संजाल उपलब्ध नहीं है (_r)" -#: ../src/connection-editor/ce-page-ppp.glade.h:5 -msgid "" -"In most cases, the provider's PPP servers will support all authentication " -"methods. If connections fail, try disabling support for some methods." -msgstr "" -"अधिकतर स्थितियों में, प्रदाता PPP सर्वर सभी सत्यापन विधियों का समर्थन करेगा. यदि " -"कनेक्शन विफल रहता है, कुछ विधियों के लिए समर्थन निष्क्रिय करने की कोशिश करें." - -#: ../src/connection-editor/ce-page-ppp.glade.h:6 -msgid "Allow _BSD data compression" -msgstr "_BSD आँकड़ा संकुचन स्वीकारें" +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "कूटशब्द दिखाएँ (_w)" -#: ../src/connection-editor/ce-page-ppp.glade.h:7 -msgid "Allow _Deflate data compression" -msgstr "विस्तारित आँकड़ा संकुचन स्वीकारें (_D)" +#: ../src/connection-editor/ce-page-ppp.ui.h:1 +#| msgid "_Authentication:" +msgid "Authentication" +msgstr "सत्यापन" -#: ../src/connection-editor/ce-page-ppp.glade.h:8 +#: ../src/connection-editor/ce-page-ppp.ui.h:2 msgid "Allowed methods:" msgstr "अनुमतिप्राप्त विधि:" -#: ../src/connection-editor/ce-page-ppp.glade.h:9 -msgid "C_HAP" -msgstr "C_HAP" - -#: ../src/connection-editor/ce-page-ppp.glade.h:10 -msgid "Challenge Handshake Authentication Protocol" -msgstr "चैलेंज हैंडशेक प्रमाणीकरण प्रोटोकाल" - -#: ../src/connection-editor/ce-page-ppp.glade.h:11 +#: ../src/connection-editor/ce-page-ppp.ui.h:3 msgid "Configure _Methods…" msgstr "विधियाँ विन्यस्त करें (_M)…" -#: ../src/connection-editor/ce-page-ppp.glade.h:12 -msgid "Extensible Authentication Protocol" -msgstr "विस्तारयोग्य प्रमाणीकरण प्रोटोकाल" +#: ../src/connection-editor/ce-page-ppp.ui.h:4 +#| msgid "Compression" +msgid "Compression" +msgstr "संकुचन" -#: ../src/connection-editor/ce-page-ppp.glade.h:13 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "बिंदु से बिंदु तक गोपन का उपयोग करें (MPPE) (_U)" -#: ../src/connection-editor/ce-page-ppp.glade.h:14 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft चैलेंज हैंडशेक प्रमाणीकरण प्रोटोकाल" +#: ../src/connection-editor/ce-page-ppp.ui.h:6 +msgid "_Require 128-bit encryption" +msgstr "128-बिट गोपन जरूरी (_R)" -#: ../src/connection-editor/ce-page-ppp.glade.h:15 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft चैलेंज हैंडशेक प्रमाणीकरण प्रोटोकाल संस्करण 2" +#: ../src/connection-editor/ce-page-ppp.ui.h:7 +msgid "Use _stateful MPPE" +msgstr "स्टेटफुल MPPE का उपयोग करें (_s)" -#: ../src/connection-editor/ce-page-ppp.glade.h:16 -msgid "Password Authentication Protocol" -msgstr "पासवर्ड प्रमाणीकरण प्रोटोकाल" +#: ../src/connection-editor/ce-page-ppp.ui.h:8 +msgid "Allow _BSD data compression" +msgstr "_BSD आँकड़ा संकुचन स्वीकारें" -#: ../src/connection-editor/ce-page-ppp.glade.h:17 -msgid "Send PPP _echo packets" -msgstr "PPP इको पैकेट भेजें (_e)" +#: ../src/connection-editor/ce-page-ppp.ui.h:9 +msgid "Allow _Deflate data compression" +msgstr "विस्तारित आँकड़ा संकुचन स्वीकारें (_D)" -#: ../src/connection-editor/ce-page-ppp.glade.h:18 +#: ../src/connection-editor/ce-page-ppp.ui.h:10 msgid "Use TCP _header compression" msgstr "TCP शीर्षिका संकुचन का उपयोग करें (_h)" -#: ../src/connection-editor/ce-page-ppp.glade.h:19 -msgid "Use _stateful MPPE" -msgstr "स्टेटफुल MPPE का उपयोग करें (_s)" +#: ../src/connection-editor/ce-page-ppp.ui.h:11 +msgid "Echo" +msgstr "इको" -#: ../src/connection-editor/ce-page-ppp.glade.h:20 -msgid "_EAP" -msgstr "_EAP" +#: ../src/connection-editor/ce-page-ppp.ui.h:12 +msgid "Send PPP _echo packets" +msgstr "PPP इको पैकेट भेजें (_e)" -#: ../src/connection-editor/ce-page-ppp.glade.h:21 -msgid "_MSCHAP" -msgstr "_MSCHAP" +#: ../src/connection-editor/ce-page-wired.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "मुड़ जोड़ी (TP)" + +#: ../src/connection-editor/ce-page-wired.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "संलग्न एकक अंतराफलन (AUI)" + +#: ../src/connection-editor/ce-page-wired.ui.h:4 +msgid "BNC" +msgstr "BNC" + +#: ../src/connection-editor/ce-page-wired.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "मीडिया स्वतंत्र अंतरफलक (MII)" + +#: ../src/connection-editor/ce-page-wired.ui.h:6 +#| msgid "Mb/s" +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:7 +#| msgid "%u Mb/s" +msgid "100 Mb/s" +msgstr "100 Mb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:8 +#| msgid "%u Mb/s" +msgid "1 Gb/s" +msgstr "1 Gb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:9 +msgid "10 Gb/s" +msgstr "10 गीबा/s" -#: ../src/connection-editor/ce-page-ppp.glade.h:22 -msgid "_PAP" -msgstr "_PAP" +#: ../src/connection-editor/ce-page-wired.ui.h:10 +msgid "_Port:" +msgstr "पोर्ट (_P):" -#: ../src/connection-editor/ce-page-ppp.glade.h:23 -msgid "_Require 128-bit encryption" -msgstr "128-बिट गोपन जरूरी (_R)" +#: ../src/connection-editor/ce-page-wired.ui.h:11 +msgid "_Speed:" +msgstr "गति (_S):" -#: ../src/connection-editor/ce-page-ppp.glade.h:24 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "बिंदु से बिंदु तक गोपन का उपयोग करें (MPPE) (_U)" +#: ../src/connection-editor/ce-page-wired.ui.h:12 +msgid "Full duple_x" +msgstr "पूर्ण डुप्लेक्स (_x)" -#: ../src/connection-editor/ce-page-wired.glade.h:1 +#: ../src/connection-editor/ce-page-wired.ui.h:13 msgid "Aut_onegotiate" msgstr "Aut_onegotiate" -#: ../src/connection-editor/ce-page-wired.glade.h:2 -msgid "" -"Automatic\n" -"10 Mb/s\n" -"100 Mb/s\n" -"1 Gb/s\n" -"10 Gb/s" -msgstr "" -"स्वचालित\n" -"10 Mb/s\n" -"100 Mb/s\n" -"1 Gb/s\n" -"10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.glade.h:7 -msgid "" -"Automatic\n" -"Twisted Pair (TP)\n" -"Attachment Unit Interface (AUI)\n" -"BNC\n" -"Media Independent Interface (MII)" -msgstr "" -"स्वचालित\n" -"ट्विस्टेड युग्म (TP)\n" -"एटैचमेंट इकाई अंतरफलक (AUI)\n" -"BNC\n" -"मीडिया इंडेपडेंट अंतरफलक (MII)" - -#: ../src/connection-editor/ce-page-wired.glade.h:12 -msgid "Full duple_x" -msgstr "पूर्ण डुप्लेक्स (_x)" +#: ../src/connection-editor/ce-page-wired.ui.h:14 +#: ../src/connection-editor/ce-page-wireless.ui.h:8 +#| msgid "_MAC address:" +msgid "_Device MAC address:" +msgstr "युक्ति MAC पता: (_D)" -#: ../src/connection-editor/ce-page-wired.glade.h:13 -#: ../src/connection-editor/ce-page-wireless.glade.h:8 -msgid "MT_U:" -msgstr "MT_U:" +#: ../src/connection-editor/ce-page-wired.ui.h:15 +#: ../src/connection-editor/ce-page-wireless.ui.h:10 +#| msgid "_MAC address:" +msgid "C_loned MAC address:" +msgstr "क्लोन किया MAC पता: (_l)" -#: ../src/connection-editor/ce-page-wired.glade.h:14 -#: ../src/connection-editor/ce-page-wireless.glade.h:11 +#: ../src/connection-editor/ce-page-wired.ui.h:16 +#: ../src/connection-editor/ce-page-wireless.ui.h:9 msgid "" "The MAC address entered here will be used as hardware address for the " "network device this connection is activated on. This feature is known as " "MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "यहाँ दाखिल किया MAC पता को इस कनेक्शन के संजाल युक्ति के लिए बतौर हार्डवेयर पता के रूप प्रयोग किया जाएगा जिसपर यह सक्रिय है. इस विशेषता को बतौर MAC क्लोनिंग या स्पूफिंग जाना जाता है. उदाहरण के लिए: 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.glade.h:15 -#: ../src/connection-editor/ce-page-wireless.glade.h:12 -#, fuzzy -#| msgid "" -#| "This option locks this connection to the network device specified by the " -#| "MAC address entered here. Example: 00:11:22:33:44:55" -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" msgstr "" -"यह विकल्प संजाल युक्ति में MAC पता के द्वारा निर्दिष्ट निर्दिष्ट कनेक्शन को स्थायी मैक पता से लॉक कर देता " -"है. उदाहरण के लिए: 00:11:22:33:44:55" +"यहाँ दाखिल किया MAC पता को इस कनेक्शन के संजाल युक्ति के लिए बतौर हार्डवेयर " +"पता के रूप " +"प्रयोग किया जाएगा जिसपर यह सक्रिय है. इस विशेषता को बतौर MAC क्लोनिंग या " +"स्पूफिंग " +"जाना जाता है. उदाहरण के लिए: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-wired.ui.h:17 +#: ../src/connection-editor/ce-page-wireless.ui.h:7 +#| msgid "MT_U:" +msgid "_MTU:" +msgstr "_MTU:" -#: ../src/connection-editor/ce-page-wired.glade.h:16 -#: ../src/connection-editor/ce-page-wireless.glade.h:16 -#, fuzzy -#| msgid "_MAC address:" -msgid "_Cloned MAC address:" -msgstr "क्लोन किया MAC पता (_C):" +#: ../src/connection-editor/ce-page-wired.ui.h:18 +#: ../src/connection-editor/ce-page-wireless.ui.h:6 +msgid "bytes" +msgstr "बाइट्स" -#: ../src/connection-editor/ce-page-wired.glade.h:17 -#: ../src/connection-editor/ce-page-wireless.glade.h:17 -#, fuzzy -#| msgid "_MAC address:" -msgid "_Device MAC address:" -msgstr "युक्ति MAC पता (_D):" +#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#| msgid "%u (%u MHz)" +msgid "A (5 GHz)" +msgstr "A (5 GHz)" + +#: ../src/connection-editor/ce-page-wireless.ui.h:3 +msgid "B/G (2.4 GHz)" +msgstr "बी/जी (2.4 गीगा)" -#: ../src/connection-editor/ce-page-wired.glade.h:18 -msgid "_Port:" -msgstr "पोर्ट (_P):" +#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#| msgid "" +#| "Infrastructure\n" +#| "Ad-hoc" +msgid "Infrastructure" +msgstr "बुनियादी ढाँचा" + +#: ../src/connection-editor/ce-page-wireless.ui.h:5 +msgid "Ad-hoc" +msgstr "तदर्थ" -#: ../src/connection-editor/ce-page-wired.glade.h:19 -msgid "_Speed:" -msgstr "गति (_S):" +#: ../src/connection-editor/ce-page-wireless.ui.h:11 +msgid "mW" +msgstr "mW" -#: ../src/connection-editor/ce-page-wired.glade.h:20 -#: ../src/connection-editor/ce-page-wireless.glade.h:20 -msgid "bytes" -msgstr "बाइट्स" +#: ../src/connection-editor/ce-page-wireless.ui.h:12 +msgid "Transmission po_wer:" +msgstr "प्रेषण शक्ति(_w):" -#: ../src/connection-editor/ce-page-wireless.glade.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:13 +msgid "Mb/s" +msgstr "Mb/s" + +#: ../src/connection-editor/ce-page-wireless.ui.h:14 +msgid "_Rate:" +msgstr "दरः (_R)" + +#: ../src/connection-editor/ce-page-wireless.ui.h:15 msgid "" -"Automatic\n" -"A (5 GHz)\n" -"B/G (2.4 GHz)" +"This option locks this connection to the wireless access point (AP) " +"specified by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"स्वचालित\n" -"A (5 GHz)\n" -"B/G (2.4 GHz)" +"यह विकल्प वायरलेस एक्सेस प्वाइंट (AP) में BSSID निर्दिष्ट कनेक्शन को यहाँ " +"दाखिल किया जाता " +"है. उदाहरण के लिए: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.glade.h:4 -msgid "Ban_d:" -msgstr "Ban_d:" +#: ../src/connection-editor/ce-page-wireless.ui.h:16 +msgid "_BSSID:" +msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.glade.h:5 +#: ../src/connection-editor/ce-page-wireless.ui.h:17 msgid "C_hannel:" msgstr "चैनल (_h):" -#: ../src/connection-editor/ce-page-wireless.glade.h:6 -msgid "" -"Infrastructure\n" -"Ad-hoc" -msgstr "" -"आधारभूत ढाँचा\n" -"तदर्थ" +#: ../src/connection-editor/ce-page-wireless.ui.h:18 +msgid "Ban_d:" +msgstr "Ban_d:" -#: ../src/connection-editor/ce-page-wireless.glade.h:9 +#: ../src/connection-editor/ce-page-wireless.ui.h:19 msgid "M_ode:" msgstr "विधि (_o):" -#: ../src/connection-editor/ce-page-wireless.glade.h:10 -msgid "Mb/s" -msgstr "Mb/s" +#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#| msgid "_SSID:" +msgid "SS_ID:" +msgstr "SS_ID:" + +#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 +#| msgid "Security:" +msgid "S_ecurity:" +msgstr "सुरक्षा: (_e)" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 +#| msgid "Allowed Authentication Methods" +msgid "Allowed Authentication Methods" +msgstr "स्वीकृत सत्यापन विधि" -#: ../src/connection-editor/ce-page-wireless.glade.h:13 -msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "" -"यह विकल्प वायरलेस एक्सेस प्वाइंट (AP) में BSSID निर्दिष्ट कनेक्शन को यहाँ दाखिल किया जाता " -"है. उदाहरण के लिए: 00:11:22:33:44:55" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 +msgid "_EAP" +msgstr "_EAP" -#: ../src/connection-editor/ce-page-wireless.glade.h:14 -msgid "Transmission po_wer:" -msgstr "प्रेषण शक्ति(_w):" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +msgid "Extensible Authentication Protocol" +msgstr "विस्तारयोग्य प्रमाणीकरण प्रोटोकाल" -#: ../src/connection-editor/ce-page-wireless.glade.h:15 -msgid "_BSSID:" -msgstr "_BSSID:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "_PAP" -#: ../src/connection-editor/ce-page-wireless.glade.h:18 -msgid "_Rate:" -msgstr "दरः (_R)" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +msgid "Password Authentication Protocol" +msgstr "पासवर्ड प्रमाणीकरण प्रोटोकाल" -#: ../src/connection-editor/ce-page-wireless.glade.h:19 -msgid "_SSID:" -msgstr "_SSID:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 +msgid "C_HAP" +msgstr "C_HAP" -#: ../src/connection-editor/ce-page-wireless.glade.h:21 -msgid "mW" -msgstr "mW" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 +msgid "Challenge Handshake Authentication Protocol" +msgstr "चैलेंज हैंडशेक प्रमाणीकरण प्रोटोकाल" -#: ../src/connection-editor/ce-page-wireless-security.glade.h:1 -msgid "_Security:" -msgstr "सुरक्षा (_S):" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "_MSCHAP" +msgstr "_MSCHAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft चैलेंज हैंडशेक प्रमाणीकरण प्रोटोकाल" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft चैलेंज हैंडशेक प्रमाणीकरण प्रोटोकाल संस्करण 2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 +#| msgid "" +#| "In most cases, the provider's PPP servers will support all " +#| "authentication methods. If connections fail, try disabling support for " +#| "some methods." +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "" +"अधिकतर स्थितियों में, प्रदाता PPP सर्वर सभी सत्यापन विधियों का समर्थन करेगा. " +"यदि " +"कनेक्शन विफल रहता है, कुछ विधियों के लिए समर्थन निष्क्रिय करने की कोशिश करें." + +#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " -#: ../src/connection-editor/ce-vpn-wizard.glade.h:2 +#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 +#| msgid "VPN Connection Failed" +msgid "Choose a VPN Connection Type" +msgstr "VPN कनेक्शन प्रकार चुनें" + +#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 +#| msgid "" +#| "Choose a VPN Connection Type\n" +#| "\n" +#| "Select the type of VPN you wish to use for the new connection. If the " +#| "type of VPN connection you wish to create does not appear in the list, " +#| "you may not have the correct VPN plugin installed." msgid "" -"Choose a VPN Connection Type\n" -"\n" "Select the type of VPN you wish to use for the new connection. If the type " "of VPN connection you wish to create does not appear in the list, you may " "not have the correct VPN plugin installed." msgstr "" -"Choose a VPN Connection Type\n" -"\n" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." +"वीपीएन के प्रकार आप नए कनेक्शन के लिए उपयोग करना चाहते हैं का चयन करें. यदि " +"VPN कनेक्शन " +"के प्रकार आप बनाना चाहते हैं सूची में प्रकट नहीं होता है, तो आप सही वीपीएन " +"प्लगइन अधिष्ठापित " +"नहीं हो सकता है." -#: ../src/connection-editor/ce-vpn-wizard.glade.h:5 +#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 msgid "Create…" msgstr "बनाएँ..." -#: ../src/connection-editor/ip4-routes-dialog.c:501 -#: ../src/connection-editor/ip6-routes-dialog.c:459 -#: ../src/connection-editor/page-ip4.c:738 -#: ../src/connection-editor/page-ip6.c:723 +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:900 +#: ../src/connection-editor/page-ip6.c:866 msgid "Address" msgstr "पता" -#: ../src/connection-editor/ip4-routes-dialog.c:517 -#: ../src/connection-editor/page-ip4.c:755 +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:917 msgid "Netmask" msgstr "नेटमास्क" -#: ../src/connection-editor/ip4-routes-dialog.c:533 -#: ../src/connection-editor/ip6-routes-dialog.c:491 -#: ../src/connection-editor/page-ip4.c:772 -#: ../src/connection-editor/page-ip6.c:757 +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:934 +#: ../src/connection-editor/page-ip6.c:900 msgid "Gateway" msgstr "गेटवे" -#: ../src/connection-editor/ip4-routes-dialog.c:549 -#: ../src/connection-editor/ip6-routes-dialog.c:507 +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 msgid "Metric" msgstr "मेट्रिक" -#: ../src/connection-editor/ip6-routes-dialog.c:475 -#: ../src/connection-editor/page-ip6.c:740 +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:883 msgid "Prefix" msgstr "उपसर्ग" -#: ../src/connection-editor/page-dsl.c:140 -#: ../src/connection-editor/page-dsl.c:147 -msgid "Could not load DSL user interface." -msgstr "DSL उपयोक्ता अंतरफलक नहीं लोड कर सका." - -#: ../src/connection-editor/page-dsl.c:153 -#: ../src/connection-editor/nm-connection-editor.glade.h:4 -#: ../src/connection-editor/nm-connection-list.c:1409 +#: ../src/connection-editor/page-dsl.c:139 +#: ../src/connection-editor/nm-connection-editor.ui.h:8 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" -#: ../src/connection-editor/page-dsl.c:241 +#: ../src/connection-editor/page-dsl.c:141 +msgid "Could not load DSL user interface." +msgstr "DSL उपयोक्ता अंतरफलक नहीं लोड कर सका." + +#: ../src/connection-editor/page-dsl.c:231 #, c-format msgid "DSL connection %d" msgstr "DSL कनेक्शन %d" -#: ../src/connection-editor/page-ip4.c:126 -#: ../src/connection-editor/page-ip6.c:125 +#: ../src/connection-editor/page-ip4.c:133 +#: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" msgstr "स्वचालित (VPN)" -#: ../src/connection-editor/page-ip4.c:127 -#: ../src/connection-editor/page-ip6.c:126 +#: ../src/connection-editor/page-ip4.c:134 +#: ../src/connection-editor/page-ip6.c:133 msgid "Automatic (VPN) addresses only" msgstr "स्वचालित (VPN) पता केवल" -#: ../src/connection-editor/page-ip4.c:130 -#: ../src/connection-editor/page-ip6.c:129 +#: ../src/connection-editor/page-ip4.c:137 +#: ../src/connection-editor/page-ip6.c:136 msgid "Automatic (PPP)" msgstr "स्वचालित (PPP)" -#: ../src/connection-editor/page-ip4.c:131 -#: ../src/connection-editor/page-ip6.c:130 +#: ../src/connection-editor/page-ip4.c:138 +#: ../src/connection-editor/page-ip6.c:137 msgid "Automatic (PPP) addresses only" msgstr "स्वचालित (PPP) पता केवल" -#: ../src/connection-editor/page-ip4.c:133 -#: ../src/connection-editor/page-ip6.c:132 +#: ../src/connection-editor/page-ip4.c:140 +#: ../src/connection-editor/page-ip6.c:139 msgid "Automatic (PPPoE)" msgstr "स्वचालित (PPPoE)" -#: ../src/connection-editor/page-ip4.c:134 -#: ../src/connection-editor/page-ip6.c:133 +#: ../src/connection-editor/page-ip4.c:141 +#: ../src/connection-editor/page-ip6.c:140 msgid "Automatic (PPPoE) addresses only" msgstr "स्वचालित (PPPoE) पता केवल" -#: ../src/connection-editor/page-ip4.c:136 +#: ../src/connection-editor/page-ip4.c:143 msgid "Automatic (DHCP)" msgstr "स्वचालित (DHCP)" -#: ../src/connection-editor/page-ip4.c:137 +#: ../src/connection-editor/page-ip4.c:144 msgid "Automatic (DHCP) addresses only" msgstr "स्वचालित (DHCP) पता केवल" -#: ../src/connection-editor/page-ip4.c:162 -#: ../src/connection-editor/page-ip6.c:184 -msgid "Manual" -msgstr "हस्तचालित" - -#: ../src/connection-editor/page-ip4.c:174 -#: ../src/connection-editor/page-ip6.c:197 +#: ../src/connection-editor/page-ip4.c:181 +#: ../src/connection-editor/page-ip6.c:204 msgid "Link-Local Only" msgstr "लिंक स्थानीय सिर्फ" -#: ../src/connection-editor/page-ip4.c:180 -#: ../src/connection-editor/page-ip6.c:204 -msgid "Shared to other computers" -msgstr "दूसरे कंप्यूटर में साझेदारी" - -#: ../src/connection-editor/page-ip4.c:190 +#: ../src/connection-editor/page-ip4.c:197 msgid "Disabled" msgstr "निष्क्रिय" -#: ../src/connection-editor/page-ip4.c:700 +#: ../src/connection-editor/page-ip4.c:832 #, c-format msgid "Editing IPv4 routes for %s" msgstr "IPv4 रूट को %s के संपादन कर रहा है" -#: ../src/connection-editor/page-ip4.c:819 -#: ../src/connection-editor/page-ip4.c:826 -msgid "Could not load IPv4 user interface." -msgstr "IPv4 उपयोक्ता अंतरफलक लोड नहीं कर सका." - -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:981 msgid "IPv4 Settings" msgstr "IPv4 सेटिंग" -#: ../src/connection-editor/page-ip6.c:135 -msgid "Automatic" -msgstr "स्वचालित" +#: ../src/connection-editor/page-ip4.c:983 +msgid "Could not load IPv4 user interface." +msgstr "IPv4 उपयोक्ता अंतरफलक लोड नहीं कर सका." -#: ../src/connection-editor/page-ip6.c:136 +#: ../src/connection-editor/page-ip6.c:143 msgid "Automatic, addresses only" msgstr "स्वचालित, पता केवल" -#: ../src/connection-editor/page-ip6.c:148 -#: ../src/wireless-security/eap-method.c:212 +#: ../src/connection-editor/page-ip6.c:155 +#: ../src/wireless-security/eap-method.c:285 msgid "Ignore" msgstr "नज़रअंदाज़ करें" -#: ../src/connection-editor/page-ip6.c:172 +#: ../src/connection-editor/page-ip6.c:179 msgid "Automatic, DHCP only" msgstr "स्वचालित, केवल DHCP" -#: ../src/connection-editor/page-ip6.c:685 +#: ../src/connection-editor/page-ip6.c:798 #, c-format msgid "Editing IPv6 routes for %s" msgstr "IPv6 रूट को %s के लिए संपादन कर रहा है" -#: ../src/connection-editor/page-ip6.c:802 -#: ../src/connection-editor/page-ip6.c:809 -msgid "Could not load IPv6 user interface." -msgstr "IPv6 उपयोक्ता अंतरफलक नहीं लोड कर सका." - -#: ../src/connection-editor/page-ip6.c:815 +#: ../src/connection-editor/page-ip6.c:945 msgid "IPv6 Settings" msgstr "IPv6 सेटिंग" -#: ../src/connection-editor/page-mobile.c:305 -#: ../src/connection-editor/page-mobile.c:312 +#: ../src/connection-editor/page-ip6.c:947 +msgid "Could not load IPv6 user interface." +msgstr "IPv6 उपयोक्ता अंतरफलक नहीं लोड कर सका." + +#: ../src/connection-editor/page-mobile.c:381 msgid "Could not load mobile broadband user interface." msgstr "मोबाइल ब्रॉडबैंड उपयोक्ता अंतरफलक लोड नहीं कर सका." -#: ../src/connection-editor/page-mobile.c:333 +#: ../src/connection-editor/page-mobile.c:398 msgid "Unsupported mobile broadband connection type." msgstr "असमर्थित मोबाइल ब्रॉडबैंड कनेक्शन प्रकार." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:574 +#: ../src/connection-editor/page-mobile.c:639 msgid "Select Mobile Broadband Provider Type" msgstr "मोबाइल ब्रॉडबैंड प्रदाता प्रकार चुनें" -#: ../src/connection-editor/page-mobile.c:601 +#: ../src/connection-editor/page-mobile.c:674 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." msgstr "" -"तकनीक चुनें जो आपका मोबाइल ब्रॉडबैंड प्रदाता उपयोग करता है. यदि आप अनिश्चित हैं अपने " +"तकनीक चुनें जो आपका मोबाइल ब्रॉडबैंड प्रदाता उपयोग करता है. यदि आप अनिश्चित " +"हैं अपने " "प्रदाता को चुनें." -#: ../src/connection-editor/page-mobile.c:606 +#: ../src/connection-editor/page-mobile.c:679 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "मेरा प्रदाता GSM-आधारित तकनीक चुनता है (यानी. GPRS, EDGE, UMTS, HSDPA) (_G)" +msgstr "" +"मेरा प्रदाता GSM-आधारित तकनीक चुनता है (यानी. GPRS, EDGE, UMTS, HSDPA) (_G)" -#: ../src/connection-editor/page-mobile.c:611 +#: ../src/connection-editor/page-mobile.c:686 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "मेरा प्रदाता CDMA-आधारित तकनीक चुनता है (यानी. 1xRTT, EVDO) (_D)" -#: ../src/connection-editor/page-ppp.c:132 +#: ../src/connection-editor/page-ppp.c:134 msgid "EAP" msgstr "EAP" -#: ../src/connection-editor/page-ppp.c:133 -#: ../src/wireless-security/eap-method-ttls.c:228 +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 msgid "PAP" msgstr "पीएपी" -#: ../src/connection-editor/page-ppp.c:134 -#: ../src/wireless-security/eap-method-ttls.c:276 +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 msgid "CHAP" msgstr "सीएचएपी" -#: ../src/connection-editor/page-ppp.c:135 -#: ../src/wireless-security/eap-method-peap.c:245 -#: ../src/wireless-security/eap-method-ttls.c:260 +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 msgid "MSCHAPv2" msgstr "MSCHAPv2" -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:244 +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 msgid "MSCHAP" msgstr "MSCHAP" #. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:139 +#: ../src/connection-editor/page-ppp.c:141 msgid "none" msgstr "कुछ नहीं" -#: ../src/connection-editor/page-ppp.c:199 +#: ../src/connection-editor/page-ppp.c:201 #, c-format msgid "Editing PPP authentication methods for %s" msgstr "PPP सत्यापन विधि को %s के लिए संपादित कर रहा है" -#: ../src/connection-editor/page-ppp.c:283 -#: ../src/connection-editor/page-ppp.c:290 -msgid "Could not load PPP user interface." -msgstr "PPP उपयोक्ता अंतरफलक को लोड नहीं कर सका." - -#: ../src/connection-editor/page-ppp.c:296 +#: ../src/connection-editor/page-ppp.c:282 msgid "PPP Settings" msgstr "PPP जमावट" -#: ../src/connection-editor/page-vpn.c:108 -#: ../src/connection-editor/nm-connection-editor.glade.h:8 -#: ../src/connection-editor/nm-connection-list.c:1405 +#: ../src/connection-editor/page-ppp.c:284 +msgid "Could not load PPP user interface." +msgstr "PPP उपयोक्ता अंतरफलक को लोड नहीं कर सका." + +#: ../src/connection-editor/page-vpn.c:109 +#: ../src/connection-editor/nm-connection-editor.ui.h:7 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" -#: ../src/connection-editor/page-vpn.c:119 +#: ../src/connection-editor/page-vpn.c:111 +#| msgid "Could not load PPP user interface." +msgid "Could not load VPN user interface." +msgstr "VPN उपयोक्ता अंतरफलक को लोड नहीं कर सका." + +#: ../src/connection-editor/page-vpn.c:126 #, c-format msgid "Could not find VPN plugin service for '%s'." msgstr "VPN प्लगिन सेवा को '%s' के लि ढूँढ़ नहीं सका." -#: ../src/connection-editor/page-vpn.c:213 -#: ../src/connection-editor/nm-connection-list.c:990 +#: ../src/connection-editor/page-vpn.c:201 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "VPN संबंधन %d" -#: ../src/connection-editor/page-wired.c:213 -#: ../src/connection-editor/page-wired.c:220 -msgid "Could not load wired user interface." -msgstr "वायरयुक्त उपयोक्ता अंतरफलक लोड नहीं कर सका." - -#: ../src/connection-editor/page-wired.c:226 -#: ../src/connection-editor/nm-connection-editor.glade.h:9 -#: ../src/connection-editor/nm-connection-list.c:1393 +#: ../src/connection-editor/page-wired.c:89 +#: ../src/connection-editor/page-wireless.c:94 +#| msgid "" +#| "This option locks this connection to the network device specified by the " +#| "MAC address entered here. Example: 00:11:22:33:44:55" +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"यह विकल्प संजाल युक्ति में स्थायी MAC पता के द्वारा निर्दिष्ट निर्दिष्ट " +"कनेक्शन को " +"लॉक कर देता है. उदाहरण के लिए: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-wired.c:272 +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "तारयुक्त" -#: ../src/connection-editor/page-wired.c:359 +#: ../src/connection-editor/page-wired.c:274 +msgid "Could not load wired user interface." +msgstr "वायरयुक्त उपयोक्ता अंतरफलक लोड नहीं कर सका." + +#: ../src/connection-editor/page-wired.c:449 #, c-format msgid "Wired connection %d" msgstr "तारयुक्त संबंधन %d" -#: ../src/connection-editor/page-wired-security.c:115 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "802.1x सुरक्षा" -#: ../src/connection-editor/page-wired-security.c:123 -msgid "Use 802.1X security for this connection" +#: ../src/connection-editor/page-wired-security.c:121 +#| msgid "Could not load WiFi security user interface." +msgid "Could not load Wired Security security user interface." +msgstr "तार युक्त सुरक्षा सुरक्षा उपयोगकर्ता इंटरफ़ेस लोड नहीं कर सका." + +#: ../src/connection-editor/page-wired-security.c:139 +#| msgid "Use 802.1X security for this connection" +msgid "Use 802.1_X security for this connection" msgstr "802.1X सुरक्षा का इस कनेक्शन के लिए उपयोग करें" -#: ../src/connection-editor/page-wireless.c:146 -#: ../src/connection-editor/page-wireless.c:150 #: ../src/connection-editor/page-wireless.c:171 +#: ../src/connection-editor/page-wireless.c:175 +#: ../src/connection-editor/page-wireless.c:196 #, c-format msgid "default" msgstr "डिफ़ॉल्ट" -#: ../src/connection-editor/page-wireless.c:175 +#: ../src/connection-editor/page-wireless.c:200 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:399 -#: ../src/connection-editor/page-wireless.c:406 -msgid "Could not load WiFi user interface." -msgstr "WiFi उपयोक्ता अंतरफलक लोड नहीं कर सका." - -#: ../src/connection-editor/page-wireless.c:412 -#: ../src/connection-editor/nm-connection-editor.glade.h:10 -#: ../src/connection-editor/nm-connection-list.c:1397 +#: ../src/connection-editor/page-wireless.c:457 +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "बेतार" -#: ../src/connection-editor/page-wireless.c:574 +#: ../src/connection-editor/page-wireless.c:459 +msgid "Could not load WiFi user interface." +msgstr "WiFi उपयोक्ता अंतरफलक लोड नहीं कर सका." + +#: ../src/connection-editor/page-wireless.c:663 #, c-format msgid "Wireless connection %d" msgstr "बेतार संबंधन %d" -#: ../src/connection-editor/page-wireless-security.c:262 -#: ../src/wireless-dialog.c:936 -#, fuzzy +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 #| msgid "WEP 40/128-bit Key" msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP 40/128-बिट कुंजी (हेक्स या ASCII)" -#: ../src/connection-editor/page-wireless-security.c:271 -#: ../src/wireless-dialog.c:945 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128-bit पासफ्रेज" -#: ../src/connection-editor/page-wireless-security.c:297 -#: ../src/wireless-dialog.c:975 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "गतिशील WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:311 -#: ../src/wireless-dialog.c:989 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 निजी" -#: ../src/connection-editor/page-wireless-security.c:325 -#: ../src/wireless-dialog.c:1003 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA & WPA2 एंटरप्राइज" -#: ../src/connection-editor/page-wireless-security.c:365 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "WiFi सुरक्षा उपयोक्ता अंतरफलक नहीं लोड कर सका; गुम WiFi सेटिंग." -#: ../src/connection-editor/page-wireless-security.c:372 -#: ../src/connection-editor/page-wireless-security.c:379 -msgid "Could not load WiFi security user interface." -msgstr "WiFi सुरक्षा उपयोक्ता अंतरफलक लोड नहीं कर सका." - -#: ../src/connection-editor/page-wireless-security.c:385 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "बेतार सुरक्षा" -#: ../src/connection-editor/nm-connection-editor.c:100 +#: ../src/connection-editor/page-wireless-security.c:407 +msgid "Could not load WiFi security user interface." +msgstr "WiFi सुरक्षा उपयोक्ता अंतरफलक लोड नहीं कर सका." + +#: ../src/connection-editor/nm-connection-editor.c:101 #, c-format msgid "Editing %s" msgstr "संपादन %s" -#: ../src/connection-editor/nm-connection-editor.c:104 +#: ../src/connection-editor/nm-connection-editor.c:105 msgid "Editing un-named connection" msgstr "बेनाम संबंधन संपादित कर रहा है" -#: ../src/connection-editor/nm-connection-editor.c:287 -msgid "" -"The connection editor could not find some required resources (the " -"NetworkManager applet glade file was not found)." -msgstr "" -"यह कनेक्शन संपादक कुछ जरूरी संसाधन को नहीं ढूँढ़ सका (NetworkManager एप्लेट ग्लेड फाइल नहीं " -"मिल सका)." - -#: ../src/connection-editor/nm-connection-editor.c:300 +#: ../src/connection-editor/nm-connection-editor.c:291 +#| msgid "" +#| "The connection editor could not find some required resources (the glade " +#| "file was not found)." msgid "" -"The connection editor could not find some required resources (the glade file " +"The connection editor could not find some required resources (the .ui file " "was not found)." -msgstr "यह कनेक्शन संपादक कुछ जरूरी संसाधन को नहीं ढूँढ़ सका (ग्लेड फाइल नहीं मिल सका)." +msgstr "" +"यह कनेक्शन संपादक कुछ जरूरी संसाधन को नहीं ढूँढ़ सका (.ui " +" फाइल नहीं मिल सका)." -#: ../src/connection-editor/nm-connection-editor.c:398 +#: ../src/connection-editor/nm-connection-editor.c:394 msgid "Error creating connection editor dialog." msgstr "कनेक्शन संपादक संवाद बनाने में त्रुटि." -#: ../src/connection-editor/nm-connection-editor.c:419 -msgid "Apply" -msgstr "लागू करें" +#: ../src/connection-editor/nm-connection-editor.c:406 +msgid "_Save" +msgstr "सहेजें (_S)" -#: ../src/connection-editor/nm-connection-editor.c:420 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "Save any changes made to this connection." msgstr "इस कनेक्शन से किए गए किसी परिवर्तनों को सहेजें" -#: ../src/connection-editor/nm-connection-editor.c:421 -msgid "Apply..." -msgstr "लागू करें..." +#: ../src/connection-editor/nm-connection-editor.c:408 +msgid "_Save..." +msgstr "सहेजें (_S)..." -#: ../src/connection-editor/nm-connection-editor.c:422 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "Authenticate to save this connection for all users of this machine." -msgstr "इस मशीन के सभी उपयोक्ता के लिए इस कनेक्शन को सहेजने के लिए सत्यापित करें." +msgstr "" +"इस मशीन के सभी उपयोक्ता के लिए इस कनेक्शन को सहेजने के लिए सत्यापित करें." -#: ../src/connection-editor/nm-connection-editor.glade.h:1 -msgid "Available to all users" -msgstr "सभी उपयोक्ता के लिए उपलब्ध" +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Import" +msgstr "आयात करें (_I)" -#: ../src/connection-editor/nm-connection-editor.glade.h:2 -msgid "Connect _automatically" -msgstr "स्वतः कनेक्ट करें (_a)" +#: ../src/connection-editor/nm-connection-editor.ui.h:6 +msgid "E_xport" +msgstr "निर्यात करें (_x)" -#: ../src/connection-editor/nm-connection-editor.glade.h:3 +#: ../src/connection-editor/nm-connection-editor.ui.h:9 msgid "Connection _name:" msgstr "कनेक्शन नाम (_n):" -#: ../src/connection-editor/nm-connection-editor.glade.h:5 -msgid "E_xport" -msgstr "निर्यात करें (_x)" +#: ../src/connection-editor/nm-connection-editor.ui.h:10 +msgid "Connect _automatically" +msgstr "स्वतः कनेक्ट करें (_a)" -#: ../src/connection-editor/nm-connection-editor.glade.h:11 -msgid "_Import" -msgstr "आयात करें (_I)" +#: ../src/connection-editor/nm-connection-editor.ui.h:11 +msgid "A_vailable to all users" +msgstr "सभी उपयोक्ता के लिए उपलब्ध" -#: ../src/connection-editor/nm-connection-list.c:219 +#: ../src/connection-editor/nm-connection-list.c:216 msgid "never" msgstr "कभी नहीं" -#: ../src/connection-editor/nm-connection-list.c:230 -#: ../src/connection-editor/nm-connection-list.c:241 +#: ../src/connection-editor/nm-connection-list.c:227 +#: ../src/connection-editor/nm-connection-list.c:238 msgid "now" msgstr "अभी" #. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:248 +#: ../src/connection-editor/nm-connection-list.c:245 #, c-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d मिनट पहले" msgstr[1] "%d मिनट पहले" -#: ../src/connection-editor/nm-connection-list.c:252 +#: ../src/connection-editor/nm-connection-list.c:249 #, c-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d घंटा पहले" msgstr[1] "%d घंटे पहले" -#: ../src/connection-editor/nm-connection-list.c:264 +#: ../src/connection-editor/nm-connection-list.c:261 #, c-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d दिन पहले" msgstr[1] "%d दिनों पहले" -#: ../src/connection-editor/nm-connection-list.c:270 +#: ../src/connection-editor/nm-connection-list.c:267 #, c-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d महीना पहले" msgstr[1] "%d महीने पहले" -#: ../src/connection-editor/nm-connection-list.c:274 +#: ../src/connection-editor/nm-connection-list.c:271 #, c-format msgid "%d year ago" msgid_plural "%d years ago" msgstr[0] "%d वर्ष पहले" msgstr[1] "%d वर्षों पहले" -#: ../src/connection-editor/nm-connection-list.c:596 +#: ../src/connection-editor/nm-connection-list.c:486 msgid "Connection add failed" msgstr "कनेक्शन जोड़ना असफल" -#: ../src/connection-editor/nm-connection-list.c:625 -#, c-format -msgid "Error editing connection: property '%s' / '%s' invalid: %d" -msgstr "कनेक्शन संपादन में त्रुटि: गुण '%s' / '%s' अवैध: %d" +#: ../src/connection-editor/nm-connection-list.c:515 +#| msgid "Error displaying connection information:" +msgid "Error saving connection" +msgstr "कनेक्शन सहेजने में त्रुटि" + +#: ../src/connection-editor/nm-connection-list.c:516 +#, c-format +#| msgid "Error editing connection: property '%s' / '%s' invalid: %d" +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "गुण '%s' / '%s' अवैध: %d" -#: ../src/connection-editor/nm-connection-list.c:632 -#: ../src/connection-editor/nm-connection-list.c:747 +#: ../src/connection-editor/nm-connection-list.c:523 +#: ../src/connection-editor/nm-connection-list.c:662 msgid "An unknown error occurred." msgstr "एक अज्ञात त्रुटि पायी गई." -#: ../src/connection-editor/nm-connection-list.c:637 -#: ../src/connection-editor/nm-connection-list.c:788 +#: ../src/connection-editor/nm-connection-list.c:528 +#: ../src/connection-editor/nm-connection-list.c:702 msgid "Error initializing editor" msgstr "संपादक आरंभीकरण में त्रुटि" -#: ../src/connection-editor/nm-connection-list.c:653 -#: ../src/connection-editor/nm-connection-list.c:805 -#: ../src/connection-editor/nm-connection-list.c:973 +#: ../src/connection-editor/nm-connection-list.c:546 +#: ../src/connection-editor/nm-connection-list.c:719 +#: ../src/connection-editor/nm-connection-list.c:885 msgid "" "The connection editor dialog could not be initialized due to an unknown " "error." msgstr "कनेक्शन संपादक संवाद आरंभ नहीं किया जा सका किसी अज्ञात त्रुटि के कारण." -#: ../src/connection-editor/nm-connection-list.c:662 +#: ../src/connection-editor/nm-connection-list.c:557 msgid "Could not create new connection" msgstr "नया कनेक्शन नहीं बना सका" -#: ../src/connection-editor/nm-connection-list.c:673 +#: ../src/connection-editor/nm-connection-list.c:569 msgid "Could not edit new connection" msgstr "नया कनेक्शन संपादित नहीं कर सका" -#: ../src/connection-editor/nm-connection-list.c:820 +#: ../src/connection-editor/nm-connection-list.c:733 msgid "Could not edit connection" msgstr "कनेक्शन संपादित नहीं कर सका" -#: ../src/connection-editor/nm-connection-list.c:845 +#: ../src/connection-editor/nm-connection-list.c:763 msgid "Connection delete failed" msgstr "कनेक्शन मिटाना असफल" -#: ../src/connection-editor/nm-connection-list.c:877 +#: ../src/connection-editor/nm-connection-list.c:795 #, c-format msgid "Are you sure you wish to delete the connection %s?" msgstr "क्या आप निश्चित हैं कि आप इस कनेक्शन %s को मिटाना चाहते हैं?" -#: ../src/connection-editor/nm-connection-list.c:1020 +#: ../src/connection-editor/nm-connection-list.c:929 #: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "VPN कनेक्शन आय़ात नहीं कर सका" -#: ../src/connection-editor/nm-connection-list.c:1022 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -1979,50 +2189,87 @@ "\n" "त्रुटि: कोई VPN सेवा प्रकार नहीं." -#: ../src/connection-editor/nm-connection-list.c:1035 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "आयातित कनेक्शन संपादित नहीं कर सका" -#: ../src/connection-editor/nm-connection-list.c:1169 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "नाम" -#: ../src/connection-editor/nm-connection-list.c:1181 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "अंतिम प्रयुक्त" -#: ../src/connection-editor/nm-connection-list.c:1284 -msgid "Edit" -msgstr "संपादन" +#: ../src/connection-editor/nm-connection-list.c:1263 +msgid "No VPN plugin available. Please install one to enable this button." +msgstr "" +"कोई वीपीएन प्लगइन उपलब्ध नहीं. इस बटन को सक्षम करने के लिए स्थापित करें." + +#: ../src/connection-editor/nm-connection-list.c:1274 +#| msgid "Edit" +msgid "_Edit" +msgstr "संपादन (_E)" -#: ../src/connection-editor/nm-connection-list.c:1285 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "चयनित संबंधन संपादित करें" -#: ../src/connection-editor/nm-connection-list.c:1286 -msgid "Edit..." -msgstr "संपादन..." +#: ../src/connection-editor/nm-connection-list.c:1276 +#| msgid "Edit..." +msgid "_Edit..." +msgstr "संपादन (_E)..." -#: ../src/connection-editor/nm-connection-list.c:1287 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "चयनित संबंधन संपादित करने के लिए सत्यापित करें" -#: ../src/connection-editor/nm-connection-list.c:1301 -msgid "Delete" -msgstr "मिटाएँ" +#: ../src/connection-editor/nm-connection-list.c:1292 +#| msgid "Delete" +msgid "_Delete" +msgstr "मिटाएँ (_D)" -#: ../src/connection-editor/nm-connection-list.c:1302 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "चयनित संबंधन मिटाएँ" -#: ../src/connection-editor/nm-connection-list.c:1303 -msgid "Delete..." -msgstr "मिटाएँ..." +#: ../src/connection-editor/nm-connection-list.c:1294 +#| msgid "Delete..." +msgid "_Delete..." +msgstr "मिटाएँ (_D)..." -#: ../src/connection-editor/nm-connection-list.c:1304 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "चयनित संबंधन मिटाने के लिए सत्यापित करें" +#: ../src/connection-editor/nm-connection-list.c:1574 +#| msgid "Error creating connection editor dialog." +msgid "Error creating connection" +msgstr "कनेक्शन बनाने में त्रुटि." + +#: ../src/connection-editor/nm-connection-list.c:1575 +#, c-format +#| msgid "Could not create new connection" +msgid "Don't know how to create '%s' connections" +msgstr "पता नहीं कैसे '%s' कनेक्शन बनायेगा" + +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 +#| msgid "Editing un-named connection" +msgid "Error editing connection" +msgstr "त्रुटि संपादन कनेक्शन" + +#: ../src/connection-editor/nm-connection-list.c:1631 +#, c-format +#| msgid "Could not edit connection" +msgid "Don't know how to edit '%s' connections" +msgstr "पता नहीं कैसे '%s' कनेक्शन संपादित नहीं कर सका" + +#: ../src/connection-editor/nm-connection-list.c:1643 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "UUID '%s' के साथ एक कनेक्शन नहीं मिल रहा" + #: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" @@ -2031,34 +2278,35 @@ "\n" "Error: %s." msgstr "" -"फाइल '%s' पढ़ा नहीं जा सका अथवा कोई परिचित VPN कनेक्शन सूचना को समाहित नहीं कर " +"फाइल '%s' पढ़ा नहीं जा सका अथवा कोई परिचित VPN कनेक्शन सूचना को समाहित नहीं " +"कर " "सका\n" "\n" "त्रुटि: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "आयात के लिए फाइल चुनें" -#: ../src/connection-editor/vpn-helpers.c:310 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "\"%s\" नामक फाइल पहले से मौजूद है." -#: ../src/connection-editor/vpn-helpers.c:312 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "बदलें (_R)" -#: ../src/connection-editor/vpn-helpers.c:314 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "क्या आप %s को VPN कनेक्शन के साथ बदलना चाहते हैं जिसे आप सहेज रहे हैं?" -#: ../src/connection-editor/vpn-helpers.c:350 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "VPN कनेक्शन निर्यात नहीं कर सका" -#: ../src/connection-editor/vpn-helpers.c:352 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2069,199 +2317,119 @@ "\n" "त्रुटि: %s." -#: ../src/connection-editor/vpn-helpers.c:386 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "VPN संबंधन निर्यात करें..." -#: ../src/gnome-bluetooth/bt-widget.c:213 +#: ../src/gnome-bluetooth/bt-widget.c:220 +#, c-format +#| msgid "Could not create new connection" +msgid "Failed to create PAN connection: %s" +msgstr "PAN कनेक्शन बनाने में विफल: %s" + +#: ../src/gnome-bluetooth/bt-widget.c:225 +#: ../src/gnome-bluetooth/bt-widget.c:493 +msgid "Your phone is now ready to use!" +msgstr "आपका फोन अब उपयोग के लिए तैयार!" + +#: ../src/gnome-bluetooth/bt-widget.c:249 #, c-format msgid "%s Network" msgstr "%s संजाल" -#: ../src/gnome-bluetooth/bt-widget.c:322 +#: ../src/gnome-bluetooth/bt-widget.c:375 #, c-format msgid "Error: %s" msgstr "त्रुटि: %s" -#: ../src/gnome-bluetooth/bt-widget.c:441 +#: ../src/gnome-bluetooth/bt-widget.c:488 +#, c-format +#| msgid "Could not create new connection" +msgid "Failed to create DUN connection: %s" +msgstr "DUN कनेक्शन बनाने में विफल: %s" + +#: ../src/gnome-bluetooth/bt-widget.c:511 msgid "Mobile wizard was canceled" msgstr "मोबाइल विजार्ड रद्द किया गया" -#: ../src/gnome-bluetooth/bt-widget.c:450 +#: ../src/gnome-bluetooth/bt-widget.c:520 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "अज्ञात फोन युक्त प्रकार (न GSM या न ही CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:478 -msgid "Your phone is now ready to use!" -msgstr "आपका फोन अब उपयोग के लिए तैयार!" - -#: ../src/gnome-bluetooth/bt-widget.c:648 -#: ../src/gnome-bluetooth/bt-widget.c:654 +#: ../src/gnome-bluetooth/bt-widget.c:714 +#: ../src/gnome-bluetooth/bt-widget.c:720 msgid "failed to connect to the phone." msgstr "फोन को कनेक्ट करने में विफल." -#: ../src/gnome-bluetooth/bt-widget.c:687 +#: ../src/gnome-bluetooth/bt-widget.c:753 msgid "unexpectedly disconnected from the phone." msgstr "अप्रत्याशित रूप से फोन से डिसकनेक्टेड." -#: ../src/gnome-bluetooth/bt-widget.c:696 +#: ../src/gnome-bluetooth/bt-widget.c:762 msgid "timed out detecting phone details." msgstr "फोन विवरण पता करने का समय समाप्त." -#: ../src/gnome-bluetooth/bt-widget.c:711 -msgid "could not connect to the system bus." -msgstr "सिस्टम बस से कनेक्ट नहीं कर सका." - -#: ../src/gnome-bluetooth/bt-widget.c:716 +#: ../src/gnome-bluetooth/bt-widget.c:774 msgid "Detecting phone configuration..." msgstr "फोन विन्यास पता कर रहा है..." -#: ../src/gnome-bluetooth/bt-widget.c:782 +#: ../src/gnome-bluetooth/bt-widget.c:840 msgid "could not find the Bluetooth device." msgstr "ब्लूटूथ युक्ति नहीं ढूँढ़ सका" -#: ../src/gnome-bluetooth/bt-widget.c:912 +#: ../src/gnome-bluetooth/bt-widget.c:980 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." msgstr "" -"तयशुदा ब्लूटूथ एडाप्टर को जरूर सक्रिय किया जाना चाहिए डायल अप नेटवर्किंग कनेक्शन सेटअप " +"तयशुदा ब्लूटूथ एडाप्टर को जरूर सक्रिय किया जाना चाहिए डायल अप नेटवर्किंग " +"कनेक्शन सेटअप " "करने के पहले." -#: ../src/gnome-bluetooth/bt-widget.c:944 +#: ../src/gnome-bluetooth/bt-widget.c:1012 #, c-format msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." msgstr "ब्लूटूथ विन्यास संभव नहीं (D-Bus से कनेक्ट करने में विफल: %s)." -#: ../src/gnome-bluetooth/bt-widget.c:954 +#: ../src/gnome-bluetooth/bt-widget.c:1022 msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." msgstr "ब्लूटूथ विन्यास संभव नहीं (D-Bus प्रॉक्सी बनाने में विफल)." -#: ../src/gnome-bluetooth/bt-widget.c:963 +#: ../src/gnome-bluetooth/bt-widget.c:1031 #, c-format -msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: %s)." msgstr "ब्लूटूथ विन्यास संभव नहीं (NetworkManager ढूँढ़ने में त्रुटि: %s)." -#: ../src/gnome-bluetooth/bt-widget.c:1014 +#: ../src/gnome-bluetooth/bt-widget.c:1098 msgid "Use your mobile phone as a network device (PAN/NAP)" msgstr "अपने मोबाइल फोन को बतौर संजाल युक्ति उपयोग करें (PAN/NAP)" -#: ../src/gnome-bluetooth/bt-widget.c:1023 +#: ../src/gnome-bluetooth/bt-widget.c:1107 msgid "Access the Internet using your mobile phone (DUN)" msgstr "इंटरनेट की पहुंच अपने मोबाइल फोन से करें (DUN)" -#: ../src/main.c:70 -msgid "Usage:" -msgstr "प्रयोग:" - -#: ../src/main.c:72 -msgid "" -"This program is a component of NetworkManager (http://projects.gnome.org/" -"NetworkManager)." -msgstr "" -"यह प्रोग्राम NetworkManager (http://projects.gnome.org/NetworkManager) का घटक " -"है." - -#: ../src/main.c:73 +#: ../src/libnm-gtk/nm-mobile-wizard.c:198 msgid "" -"It is not intended for command-line interaction but instead runs in the " -"GNOME desktop environment." -msgstr "यह कमांड लाइन अंतःक्रिया के लिए वांछित नहीं है बजाय GNOME डेस्कटॉप वातावरण में चलता है." - -#: ../src/mb-menu-item.c:58 -msgid "EVDO" -msgstr "EVDO" - -#: ../src/mb-menu-item.c:62 -msgid "GPRS" -msgstr "GPRS" - -#: ../src/mb-menu-item.c:64 -msgid "EDGE" -msgstr "EDGE" - -#: ../src/mb-menu-item.c:66 -msgid "UMTS" -msgstr "UMTS" - -#: ../src/mb-menu-item.c:68 -msgid "HSDPA" -msgstr "HSDPA" - -#: ../src/mb-menu-item.c:70 -msgid "HSUPA" -msgstr "HSUPA" - -#: ../src/mb-menu-item.c:72 -msgid "HSPA" -msgstr "HSPA" - -#: ../src/mb-menu-item.c:104 -msgid "not enabled" -msgstr "सक्रिय नहीं" - -#: ../src/mb-menu-item.c:110 -msgid "not registered" -msgstr "पंजीकृत नहीं" - -#: ../src/mb-menu-item.c:128 -#, c-format -msgid "Home network (%s)" -msgstr "घर संजाल (%s)" - -#: ../src/mb-menu-item.c:130 -#, c-format -msgid "Home network" -msgstr "घर संजाल" - -#: ../src/mb-menu-item.c:138 -msgid "searching" -msgstr "खोज रहा है" - -#: ../src/mb-menu-item.c:141 -msgid "registration denied" -msgstr "पंजीयन मना" - -#: ../src/mb-menu-item.c:146 ../src/mb-menu-item.c:152 -#, c-format -msgid "%s (%s roaming)" -msgstr "%s (%s रोमिंग)" - -#: ../src/mb-menu-item.c:148 ../src/mb-menu-item.c:154 -#, c-format -msgid "%s (roaming)" -msgstr "%s (रोमिंग)" - -#: ../src/mb-menu-item.c:157 -#, c-format -msgid "Roaming network (%s)" -msgstr "रोमिंग संजाल (%s)" - -#: ../src/mb-menu-item.c:159 -#, c-format -msgid "Roaming network" -msgstr "रोमिंग संजाल" - -#: ../src/utils/mobile-wizard.c:196 -msgid "Your mobile broadband connection is configured with the following settings:" +"Your mobile broadband connection is configured with the following settings:" msgstr "आपका मोबाइल ब्रॉडबैंड कनेक्शन निम्नलिखित सेटिंग के साथ विन्यस्त है:" #. Device -#: ../src/utils/mobile-wizard.c:203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 msgid "Your Device:" msgstr "आपका उपकरण:" #. Provider -#: ../src/utils/mobile-wizard.c:214 +#: ../src/libnm-gtk/nm-mobile-wizard.c:216 msgid "Your Provider:" msgstr "आपका प्रदाता:" #. Plan and APN -#: ../src/utils/mobile-wizard.c:225 +#: ../src/libnm-gtk/nm-mobile-wizard.c:227 msgid "Your Plan:" msgstr "आपकी प्लान:" -#: ../src/utils/mobile-wizard.c:246 +#: ../src/libnm-gtk/nm-mobile-wizard.c:252 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2275,263 +2443,437 @@ "connection settings, choose \"Network Connections\" from the System >> " "Preferences menu." -#: ../src/utils/mobile-wizard.c:258 +#: ../src/libnm-gtk/nm-mobile-wizard.c:264 msgid "Confirm Mobile Broadband Settings" msgstr "मोबाइल ब्रॉडबैंड सेटिंग की पुष्टि करें" -#: ../src/utils/mobile-wizard.c:319 +#: ../src/libnm-gtk/nm-mobile-wizard.c:325 msgid "Unlisted" msgstr "गैर सूचीबद्ध" -#: ../src/utils/mobile-wizard.c:437 +#: ../src/libnm-gtk/nm-mobile-wizard.c:480 msgid "_Select your plan:" msgstr "अपना प्लान चुनें (_S):" -#: ../src/utils/mobile-wizard.c:461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:504 msgid "Selected plan _APN (Access Point Name):" msgstr "चुनी गई योजना (_A) (एक्सेस प्वाइंट नाम):" -#: ../src/utils/mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:528 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"चेतावनी: कोई गलत योजना को चुनना बिलिंग मुद्दा का परिणाम देगा आपके ब्रॉडबैंड खाता के लिए " +"चेतावनी: कोई गलत योजना को चुनना बिलिंग मुद्दा का परिणाम देगा आपके ब्रॉडबैंड " +"खाता के लिए " "या कनेक्टिविटी को रोक सकता है.\n" "\n" -"यदि आप अपनी योजना के बारे में अनिश्चित हैं तो कृपया अपने प्रदाता से अपनी प्लान के APN के " +"यदि आप अपनी योजना के बारे में अनिश्चित हैं तो कृपया अपने प्रदाता से अपनी " +"प्लान के APN के " "बारे में पूछें." -#: ../src/utils/mobile-wizard.c:487 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "Choose your Billing Plan" msgstr "अपना बिलिंग प्लान चुनें" -#: ../src/utils/mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:583 msgid "My plan is not listed..." msgstr "मेरा प्लान सूचीबद्ध नहीं है..." -#: ../src/utils/mobile-wizard.c:688 +#: ../src/libnm-gtk/nm-mobile-wizard.c:740 msgid "Select your provider from a _list:" msgstr "सूची से अपना प्रदाता चुनें (_l):" -#: ../src/utils/mobile-wizard.c:701 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Provider" msgstr "प्रदाता" -#: ../src/utils/mobile-wizard.c:726 +#: ../src/libnm-gtk/nm-mobile-wizard.c:778 msgid "I can't find my provider and I wish to enter it _manually:" -msgstr "मैं अपने प्रदाता नहीं ढूँढ़ सकता हूँ और मैं इसे दस्ती रूप से दाखिल करना चाहता हूँ (_m):" +msgstr "" +"मैं अपने प्रदाता नहीं ढूँढ़ सकता हूँ और मैं इसे दस्ती रूप से दाखिल करना चाहता " +"हूँ (_m):" -#: ../src/utils/mobile-wizard.c:737 +#: ../src/libnm-gtk/nm-mobile-wizard.c:789 msgid "Provider:" msgstr "प्रदाता:" -#: ../src/utils/mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:813 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "मेरा प्रदाता GSM तकनीकी उपयोग करता है (GPRS, EDGE, UMTS, HSPA)" -#: ../src/utils/mobile-wizard.c:755 +#: ../src/libnm-gtk/nm-mobile-wizard.c:819 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "मेरा प्रदाता CDMA तकनीकी उपयोग करता है (1xRTT, EVDO)" -#: ../src/utils/mobile-wizard.c:766 +#: ../src/libnm-gtk/nm-mobile-wizard.c:830 msgid "Choose your Provider" msgstr "अपना प्रदाता चुनें" -#: ../src/utils/mobile-wizard.c:1012 -msgid "Country List:" -msgstr "देश सूची:" - -#: ../src/utils/mobile-wizard.c:1024 -msgid "Country" -msgstr "देश" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#| msgid "Country List:" +msgid "Country or Region List:" +msgstr "देश या क्षेत्र सूची:" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#| msgid "Country List:" +msgid "Country or region" +msgstr "देश या क्षेत्र" -#: ../src/utils/mobile-wizard.c:1031 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "My country is not listed" msgstr "मेरा देश सूचीबद्ध नहीं है" -#: ../src/utils/mobile-wizard.c:1077 -msgid "Choose your Provider's Country" -msgstr "अपने प्रदाता के देश को चुनें" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#| msgid "Choose your Provider's Country" +msgid "Choose your Provider's Country or Region" +msgstr "अपने प्रदाता के देश या क्षेत्र चुनें" -#: ../src/utils/mobile-wizard.c:1126 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 msgid "Installed GSM device" msgstr "संस्थापित जीएसएम युक्तियां" -#: ../src/utils/mobile-wizard.c:1129 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 msgid "Installed CDMA device" msgstr "संस्थापित CDMA युक्ति" -#: ../src/utils/mobile-wizard.c:1297 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." msgstr "" -"यह सहायक आपको मोबाइल ब्रॉडबैंड कनेक्शन को किसी सेल्यूलर (3G) संजाल से आसानी से सेटअप " +"यह सहायक आपको मोबाइल ब्रॉडबैंड कनेक्शन को किसी सेल्यूलर (3G) संजाल से आसानी " +"से सेटअप " "करता है." -#: ../src/utils/mobile-wizard.c:1302 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 msgid "You will need the following information:" msgstr "आपको निम्नलिखित सूचना की जरूरत होगी:" -#: ../src/utils/mobile-wizard.c:1313 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 msgid "Your broadband provider's name" msgstr "आपके ब्रॉडबैंड प्रदाता का नाम" -#: ../src/utils/mobile-wizard.c:1319 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 msgid "Your broadband billing plan name" msgstr "आपका ब्रॉडबैंड बिलिंग प्लान नाम" -#: ../src/utils/mobile-wizard.c:1325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" -msgstr "(कुछ स्थितियों में) आपका ब्रॉडबैंड बिलिंग प्लान APN (एक्सेस प्वाइंट नाम)" +msgstr "" +"(कुछ स्थितियों में) आपका ब्रॉडबैंड बिलिंग प्लान APN (एक्सेस प्वाइंट नाम)" -#: ../src/utils/mobile-wizard.c:1352 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 msgid "Create a connection for _this mobile broadband device:" msgstr "इस मोबाइल ब्रॉडबैंड युक्ति के लिए कोई कनेक्शन बनाएँ (_t):" -#: ../src/utils/mobile-wizard.c:1367 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 msgid "Any device" msgstr "कोई युक्तियां" -#: ../src/utils/mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Set up a Mobile Broadband Connection" msgstr "मोबाइल ब्रॉडबैंड कनेक्शन सेटअप करें" -#: ../src/utils/mobile-wizard.c:1554 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 msgid "New Mobile Broadband Connection" msgstr "नया मोबाइल ब्रॉडबैंड कनेक्शन" -#: ../src/utils/nmn-mobile-providers.c:76 -msgid "United Kingdom" -msgstr "यूनाइटेड किंगडम" - -#: ../src/utils/nmn-mobile-providers.c:508 -msgid "Default" -msgstr "डिफ़ॉल्ट" - -#: ../src/vpn-password-dialog.c:137 ../src/vpn-password-dialog.c:255 -#, c-format -msgid "Cannot start VPN connection '%s'" -msgstr "VPN कनेक्शन '%s' आरंभ नहीं कर सकता है" - -#: ../src/vpn-password-dialog.c:140 -#, c-format -msgid "" -"Could not find the authentication dialog for VPN connection type '%s'. " -"Contact your system administrator." -msgstr "" -"VPN कनेक्शन प्रकार '%s' के लिए सत्यापन संवाद नहीं ढूँढ़ सका. अपने सिस्टम प्रशासक से संपर्क " -"करें." - -#: ../src/vpn-password-dialog.c:258 -#, c-format -msgid "" -"There was a problem launching the authentication dialog for VPN connection " -"type '%s'. Contact your system administrator." -msgstr "" -"VPN कनेक्शन प्रकार '%s' के लिए सत्यापन संवाद लॉन्च करने में समस्या थी. अपने सिस्टम प्रशासक " -"से संपर्क करें." - -#: ../src/wired-dialog.c:99 -msgid "Wired 802.1X authentication" -msgstr "तारयुक्त 802.1X सत्यापन" - -#: ../src/wireless-dialog.c:474 +#: ../src/libnm-gtk/nm-wireless-dialog.c:457 msgid "New..." msgstr "नया..." -#: ../src/wireless-dialog.c:1094 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "बनाएँ (_r)" -#: ../src/wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "" "Passwords or encryption keys are required to access the wireless network '%" "s'." msgstr "कूटशब्द या गोपन कुंजी बेतार संजाल '%s' की पहुँच के लिए जरूरी है." -#: ../src/wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "बेतार नेटवर्क प्रमाणीकरण आवश्यक" -#: ../src/wireless-dialog.c:1179 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "बेतार संजाल द्वारा प्रमाणीकरण जरूरी" -#: ../src/wireless-dialog.c:1184 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "नया बेतार नेटवर्क बनाएँ" -#: ../src/wireless-dialog.c:1186 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "नया बेतार संजाल" -#: ../src/wireless-dialog.c:1187 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "अपने बनाए जाने वाले बेतार संजाल के लिए नाम दर्ज करें." -#: ../src/wireless-dialog.c:1189 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "छुपे बेतार संजाल से कनेक्ट करें" -#: ../src/wireless-dialog.c:1191 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "छुपा बेतार संजाल" -#: ../src/wireless-dialog.c:1192 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." -msgstr "छुपे बेतार संजाल के सुरक्षा विवरण और नाम को दर्ज करें जिसमें आप कनेक्ट करना चाहते हैं." +msgstr "" +"छुपे बेतार संजाल के सुरक्षा विवरण और नाम को दर्ज करें जिसमें आप कनेक्ट करना " +"चाहते हैं." + +#: ../src/libnm-gtk/wifi.ui.h:2 +msgid "Wireless _security:" +msgstr "बेतार सुरक्षा (_W):" + +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "कनेक्शन (_n):" + +#: ../src/libnm-gtk/wifi.ui.h:5 +msgid "Wireless _adapter:" +msgstr "बेतार एडाप्टर (_a):" + +#: ../src/main.c:73 +msgid "Usage:" +msgstr "प्रयोग:" + +#: ../src/main.c:75 +msgid "" +"This program is a component of NetworkManager (http://projects.gnome.org/" +"NetworkManager)." +msgstr "" +"यह प्रोग्राम NetworkManager (http://projects.gnome.org/NetworkManager) का घटक " +"है." + +#: ../src/main.c:76 +msgid "" +"It is not intended for command-line interaction but instead runs in the " +"GNOME desktop environment." +msgstr "" +"यह कमांड लाइन अंतःक्रिया के लिए वांछित नहीं है बजाय GNOME डेस्कटॉप वातावरण " +"में चलता है." + +#: ../src/mb-menu-item.c:57 +msgid "EVDO" +msgstr "EVDO" + +#: ../src/mb-menu-item.c:61 +msgid "GPRS" +msgstr "GPRS" + +#: ../src/mb-menu-item.c:63 +msgid "EDGE" +msgstr "EDGE" + +#: ../src/mb-menu-item.c:65 +msgid "UMTS" +msgstr "UMTS" + +#: ../src/mb-menu-item.c:67 +msgid "HSDPA" +msgstr "HSDPA" + +#: ../src/mb-menu-item.c:69 +msgid "HSUPA" +msgstr "HSUPA" + +#: ../src/mb-menu-item.c:71 +msgid "HSPA" +msgstr "HSPA" + +#: ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/mb-menu-item.c:109 +msgid "not enabled" +msgstr "सक्रिय नहीं" + +#: ../src/mb-menu-item.c:115 +msgid "not registered" +msgstr "पंजीकृत नहीं" + +#: ../src/mb-menu-item.c:133 +#, c-format +msgid "Home network (%s)" +msgstr "घर संजाल (%s)" + +#: ../src/mb-menu-item.c:135 +#, c-format +msgid "Home network" +msgstr "घर संजाल" + +#: ../src/mb-menu-item.c:143 +msgid "searching" +msgstr "खोज रहा है" + +#: ../src/mb-menu-item.c:146 +msgid "registration denied" +msgstr "पंजीयन मना" + +#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 +#, c-format +msgid "%s (%s roaming)" +msgstr "%s (%s रोमिंग)" + +#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 +#, c-format +msgid "%s (roaming)" +msgstr "%s (रोमिंग)" + +#: ../src/mb-menu-item.c:162 +#, c-format +msgid "Roaming network (%s)" +msgstr "रोमिंग संजाल (%s)" + +#: ../src/mb-menu-item.c:164 +#, c-format +msgid "Roaming network" +msgstr "रोमिंग संजाल" + +#: ../src/utils/nmn-mobile-providers.c:531 +msgid "Default" +msgstr "डिफ़ॉल्ट" + +#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 +#| msgid "" +#| "The NetworkManager Applet could not find some required resources (the " +#| "glade file was not found)." +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"नेटवर्कप्रबंधक एप्लेट कुछ जरूरी संसाधनों ( .ui फाइल नहीं मिलता था) को नहीं " +"ढूँढ़ सका." -#: ../src/wireless-security/eap-method.c:206 +#: ../src/wireless-security/eap-method.c:279 msgid "No Certificate Authority certificate chosen" msgstr "कोई प्रमाणपत्र प्राधिकार प्रमाणपत्र चुना गया" -#: ../src/wireless-security/eap-method.c:207 +#: ../src/wireless-security/eap-method.c:280 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " "Certificate Authority certificate?" msgstr "" -"सर्टिफिकेट ऑथरिटी (CA) प्रमाणपत्र का उपयोग नहीं करना असुरक्षित, खराब बेतार संजारल का " +"सर्टिफिकेट ऑथरिटी (CA) प्रमाणपत्र का उपयोग नहीं करना असुरक्षित, खराब बेतार " +"संजारल का " "परिणाम दे सकता है. क्या आपसर्टिफिकेट ऑथरिटी प्रमाणपत्र का उपयोग करना चाहेंगे?" -#: ../src/wireless-security/eap-method.c:216 +#: ../src/wireless-security/eap-method.c:289 msgid "Choose CA Certificate" msgstr "सीए प्रमाणपत्र चुनें" -#: ../src/wireless-security/eap-method.c:531 +#: ../src/wireless-security/eap-method.c:648 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM, या PKCS#12 निजी कुंजी (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:534 +#: ../src/wireless-security/eap-method.c:651 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER या PEM प्रमाणपत्र (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-peap.c:261 -msgid "MD5" -msgstr "एमडी5" +#: ../src/wireless-security/eap-method-fast.ui.h:2 +#| msgid "Anony_mous identity:" +msgid "Anonymous" +msgstr "अज्ञात" + +#: ../src/wireless-security/eap-method-fast.ui.h:3 +#| msgid "_Authentication:" +msgid "Authenticated" +msgstr "सत्यापित" + +#: ../src/wireless-security/eap-method-fast.ui.h:4 +msgid "Both" +msgstr "दोनों" + +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "बेनाम पहचान (_m):" -#: ../src/wireless-security/eap-method-peap.c:277 +#: ../src/wireless-security/eap-method-fast.ui.h:6 +msgid "PAC _file:" +msgstr "PAC फाइल: (_F)" + +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-ttls.ui.h:4 +#| msgid "I_nner authentication:" +msgid "_Inner authentication:" +msgstr "आंतरिक सत्यापन: (_I)" + +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "स्वत: PAC pro_visioning की अनुमति दें" + +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 msgid "GTC" msgstr "GTC" -#: ../src/wireless-security/eap-method-peap.c:366 -#: ../src/wireless-security/eap-method-tls.c:457 -#: ../src/wireless-security/eap-method-ttls.c:365 +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "PAC फ़ाइल चुनें ..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC फ़ाइल (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "सभी फ़ाइलें" + +#: ../src/wireless-security/eap-method-peap.c:263 +#: ../src/wireless-security/wireless-security.c:382 +msgid "MD5" +msgstr "एमडी5" + +#: ../src/wireless-security/eap-method-peap.c:350 +#: ../src/wireless-security/eap-method-tls.c:416 +#: ../src/wireless-security/eap-method-ttls.c:350 msgid "Choose a Certificate Authority certificate..." msgstr "सर्टिफिकेट ऑथरिटी प्रमाणपत्र चुनें." -#: ../src/wireless-security/eap-method-tls.c:263 +#: ../src/wireless-security/eap-method-peap.ui.h:3 +msgid "Version 0" +msgstr "संस्करण 0" + +#: ../src/wireless-security/eap-method-peap.ui.h:4 +msgid "Version 1" +msgstr "संस्करण 1" + +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-ttls.ui.h:3 +msgid "C_A certificate:" +msgstr "सीए प्रमाणपत्र (_A):" + +#: ../src/wireless-security/eap-method-peap.ui.h:8 +#| msgid "_PEAP version:" +msgid "PEAP _version:" +msgstr "PEAP संस्करण: (_v)" + +#: ../src/wireless-security/eap-method-simple.ui.h:3 +msgid "As_k for this password every time" +msgstr "इस कूटशब्द के लिए हर समय पूछें (_k)" + +#: ../src/wireless-security/eap-method-tls.c:246 msgid "Unencrypted private keys are insecure" msgstr "विगोपित निजी कुंजी असुरक्षित हैं" -#: ../src/wireless-security/eap-method-tls.c:266 +#: ../src/wireless-security/eap-method-tls.c:249 msgid "" "The selected private key does not appear to be protected by a password. " "This could allow your security credentials to be compromised. Please select " @@ -2539,28 +2881,282 @@ "\n" "(You can password-protect your private key with openssl)" msgstr "" -"चुना गया निजी कुंजी कूटशब्द के द्वारा संरक्षित नहीं दिखता है. यह आपके सुरक्षा साख को खराब " +"चुना गया निजी कुंजी कूटशब्द के द्वारा संरक्षित नहीं दिखता है. यह आपके " +"सुरक्षा साख को खराब " "कर सकता है. कृपया कोई कूटशब्द संरक्षित निजी कुंजी चुनें.\n" "\n" "(आप अपने निजी कुंजी से openssl के साथ अपना कूटशब्द संरक्षित कर सकते हैं)" -#: ../src/wireless-security/eap-method-tls.c:451 +#: ../src/wireless-security/eap-method-tls.c:410 msgid "Choose your personal certificate..." msgstr "अपना व्यक्तिगत प्रमाणपत्र चुनें..." -#: ../src/wireless-security/eap-method-tls.c:463 +#: ../src/wireless-security/eap-method-tls.c:422 msgid "Choose your private key..." msgstr "अपनी निजी कुंजी चुनें..." -#: ../src/wireless-security/wireless-security.c:329 +#: ../src/wireless-security/eap-method-tls.ui.h:1 +msgid "I_dentity:" +msgstr "पहचान (_d):" + +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "उपयोक्ता प्रमाणपत्र (_U):" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 +msgid "Private _key:" +msgstr "निजी कुंजी (_k):" + +#: ../src/wireless-security/eap-method-tls.ui.h:5 +msgid "_Private key password:" +msgstr "निजी कुंजी कूटशब्द (_P):" + +#: ../src/wireless-security/nag-user-dialog.ui.h:1 +msgid "Don't _warn me again" +msgstr "मुझे फिर मत चेताएँ (_w)" + +#: ../src/wireless-security/nag-user-dialog.ui.h:2 +msgid "No" +msgstr "नहीं" + +#: ../src/wireless-security/nag-user-dialog.ui.h:3 +msgid "Yes" +msgstr "हाँ" + +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "टीएलएस" -#: ../src/wireless-security/wireless-security.c:353 +#: ../src/wireless-security/wireless-security.c:418 +msgid "FAST" +msgstr "तीव्र" + +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "टनेल किया टीएलएस" -#: ../src/wireless-security/wireless-security.c:364 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "संरक्षित EAP (PEAP)" +#: ../src/wireless-security/ws-dynamic-wep.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:9 +#: ../src/wireless-security/ws-wpa-eap.ui.h:2 +#| msgid "_Authentication:" +msgid "Au_thentication:" +msgstr "सत्यापन: (_t)" + +#: ../src/wireless-security/ws-wep-key.ui.h:1 +#| msgid "" +#| "Open System\n" +#| "Shared Key" +msgid "Open System" +msgstr "खुला तंत्र" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +#| msgid "" +#| "Open System\n" +#| "Shared Key" +msgid "Shared Key" +msgstr "साझा कुंजी" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 +#| msgid "" +#| "1 (Default)\n" +#| "2\n" +#| "3\n" +#| "4" +msgid "1 (Default)" +msgstr "1 (तयशुदा)" + +#: ../src/wireless-security/ws-wep-key.ui.h:4 +msgid "2" +msgstr "2" + +#: ../src/wireless-security/ws-wep-key.ui.h:5 +msgid "3" +msgstr "3" + +#: ../src/wireless-security/ws-wep-key.ui.h:6 +msgid "4" +msgstr "4" + +#: ../src/wireless-security/ws-wep-key.ui.h:7 +msgid "_Key:" +msgstr "कुंजी: (_K)" + +#: ../src/wireless-security/ws-wep-key.ui.h:8 +msgid "Sho_w key" +msgstr "कुंजी दिखाएँ (_w)" + +#: ../src/wireless-security/ws-wep-key.ui.h:10 +msgid "WEP inde_x:" +msgstr "WEP सूची (_x):" + +#~ msgid "Network Manager" +#~ msgstr "नेटवर्क मैनेजर" + +#~ msgid "An instance of nm-applet is already running.\n" +#~ msgstr "nm-applet का एक रूप पहले से चल रहा है.\n" + +#~ msgid "Could not acquire the %s service. (%d)\n" +#~ msgstr "%s सेवा अर्जित नहीं कर सका. (%d)\n" + +#~ msgid "PUK code required" +#~ msgstr "पीयूके कोड जरूरी" + +#~ msgid "PUK code is needed for the mobile broadband device" +#~ msgstr "पीयूके कोड मोबाइल ब्रॉडबैंड युक्ति के लिए जरूरी है" + +#, fuzzy +#~ msgctxt "No wired security used" +#~ msgid "None" +#~ msgstr "कुछ नहीं" + +#, fuzzy +#~ msgctxt "Unknown/unrecognized wired or wifi security" +#~ msgid "Unknown" +#~ msgstr "अज्ञात" + +#~ msgid "translator-credits" +#~ msgstr "राजेश रंजन (rranjan@redhat.com, rajeshkajha@yahoo.com)" + +#~ msgid "" +#~ "Active Network Connections" +#~ msgstr " सक्रिय नेटवर्क कनेक्शन्स" + +#~ msgid "" +#~ "Automatic\n" +#~ "Version 0\n" +#~ "Version 1" +#~ msgstr "" +#~ "स्वचालित\n" +#~ "संस्करण 0\n" +#~ "संस्करण 1" + +#~ msgid "C_onnect" +#~ msgstr "कनेक्ट (_o)" + +#~ msgid "Other Wireless Network..." +#~ msgstr "अन्य बेतार नेटवर्क..." + +#~ msgid "label" +#~ msgstr "लेबल" + +#~ msgid "Addresses" +#~ msgstr " पता" + +#~ msgid "" +#~ "Automatic\n" +#~ "Automatic with manual DNS settings\n" +#~ "Manual\n" +#~ "Link-Local\n" +#~ "Shared to other computers" +#~ msgstr "" +#~ "स्वचालित\n" +#~ "दस्ती DNS सेटिंग के साथ स्वचालित\n" +#~ "दस्ती\n" +#~ "लिंक स्थानीय\n" +#~ "अन्य कंप्यूटर में साझा" + +#~ msgid "_Routes…" +#~ msgstr "रूट … (_R)" + +#~ msgid "Basic" +#~ msgstr " मूल" + +#~ msgid "" +#~ "Any\n" +#~ "3G (UMTS/HSPA)\n" +#~ "2G (GPRS/EDGE)\n" +#~ "Prefer 3G (UMTS/HSPA)\n" +#~ "Prefer 2G (GPRS/EDGE)" +#~ msgstr "" +#~ "कोई\n" +#~ "3G (UMTS/HSPA)\n" +#~ "2G (GPRS/EDGE)\n" +#~ "Prefer 3G (UMTS/HSPA)\n" +#~ "Prefer 2G (GPRS/EDGE)" + +#~ msgid "Authentication" +#~ msgstr "सत्यापन" + +#~ msgid "Echo" +#~ msgstr "इको" + +#~ msgid "" +#~ "Automatic\n" +#~ "10 Mb/s\n" +#~ "100 Mb/s\n" +#~ "1 Gb/s\n" +#~ "10 Gb/s" +#~ msgstr "" +#~ "स्वचालित\n" +#~ "10 Mb/s\n" +#~ "100 Mb/s\n" +#~ "1 Gb/s\n" +#~ "10 Gb/s" + +#~ msgid "" +#~ "Automatic\n" +#~ "Twisted Pair (TP)\n" +#~ "Attachment Unit Interface (AUI)\n" +#~ "BNC\n" +#~ "Media Independent Interface (MII)" +#~ msgstr "" +#~ "स्वचालित\n" +#~ "ट्विस्टेड युग्म (TP)\n" +#~ "एटैचमेंट इकाई अंतरफलक (AUI)\n" +#~ "BNC\n" +#~ "मीडिया इंडेपडेंट अंतरफलक (MII)" + +#~ msgid "" +#~ "Automatic\n" +#~ "A (5 GHz)\n" +#~ "B/G (2.4 GHz)" +#~ msgstr "" +#~ "स्वचालित\n" +#~ "A (5 GHz)\n" +#~ "B/G (2.4 GHz)" + +#~ msgid "_Security:" +#~ msgstr "सुरक्षा (_S):" + +#~ msgid "" +#~ "The connection editor could not find some required resources (the " +#~ "NetworkManager applet glade file was not found)." +#~ msgstr "" +#~ "यह कनेक्शन संपादक कुछ जरूरी संसाधन को नहीं ढूँढ़ सका (NetworkManager एप्लेट ग्लेड फाइल " +#~ "नहीं मिल सका)." + +#~ msgid "Apply" +#~ msgstr "लागू करें" + +#~ msgid "Apply..." +#~ msgstr "लागू करें..." + +#~ msgid "could not connect to the system bus." +#~ msgstr "सिस्टम बस से कनेक्ट नहीं कर सका." + +#~ msgid "Country" +#~ msgstr "देश" + +#~ msgid "United Kingdom" +#~ msgstr "यूनाइटेड किंगडम" + +#~ msgid "Cannot start VPN connection '%s'" +#~ msgstr "VPN कनेक्शन '%s' आरंभ नहीं कर सकता है" + +#~ msgid "" +#~ "Could not find the authentication dialog for VPN connection type '%s'. " +#~ "Contact your system administrator." +#~ msgstr "" +#~ "VPN कनेक्शन प्रकार '%s' के लिए सत्यापन संवाद नहीं ढूँढ़ सका. अपने सिस्टम प्रशासक से " +#~ "संपर्क करें." + +#~ msgid "" +#~ "There was a problem launching the authentication dialog for VPN " +#~ "connection type '%s'. Contact your system administrator." +#~ msgstr "" +#~ "VPN कनेक्शन प्रकार '%s' के लिए सत्यापन संवाद लॉन्च करने में समस्या थी. अपने सिस्टम " +#~ "प्रशासक से संपर्क करें." diff -Nru network-manager-applet-0.9.4.1/po/hu.po network-manager-applet-0.9.6.2+git201210311320.2620/po/hu.po --- network-manager-applet-0.9.4.1/po/hu.po 2012-03-15 20:11:25.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/hu.po 2012-10-31 13:20:57.000000000 +0000 @@ -2,104 +2,157 @@ # This file is distributed under the same license as the Network-manager-applet package. # Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation. Inc. # +# Attila Hammer , 2012. # Gabor Kelemen , 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012. # Kalman Kemenczy , 2006. msgid "" msgstr "" "Project-Id-Version: network-manager-applet master\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-15 12:04+0100\n" -"PO-Revision-Date: 2012-03-15 12:06+0100\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-08-20 16:42+0000\n" +"PO-Revision-Date: 2012-09-04 19:10+0200\n" "Last-Translator: Gabor Kelemen \n" "Language-Team: Hungarian \n" -"Language: \n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: Lokalize 1.4\n" #: ../nm-applet.desktop.in.h:1 +msgid "Network" +msgstr "Hálózat" + +#: ../nm-applet.desktop.in.h:2 msgid "Manage your network connections" msgstr "Hálózati kapcsolatok kezelése" -#: ../nm-applet.desktop.in.h:2 -msgid "Network" -msgstr "Hálózat" +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Hálózati kapcsolatok" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "WiFi létrehozás kikapcsolása" +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Hálózati kapcsolatok beállításainak kezelése és módosítása" -#: ../nm-applet.schemas.in.h:2 +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "„Csatlakoztatott” értesítések kikapcsolása" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +#| msgid "" +#| "Set this to TRUE to disable notifications when connecting to a network." +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "" +"Állítsa igazra a hálózathoz csatlakozásról szóló értesítések kikapcsolásához." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "„Bontva” értesítések kikapcsolása" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "Állítsa igazra a hálózathoz csatlakozásról szóló értesítések kikapcsolásához." - -#: ../nm-applet.schemas.in.h:5 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "" +"Set this to true to disable notifications when disconnecting from a network." msgstr "" "Állítsa igazra a hálózati kapcsolat bontásáról szóló értesítések " "kikapcsolásához." -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +#| msgid "Disable connected notifications" +msgid "Disable VPN notifications" +msgstr "VPN értesítések kikapcsolása" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." msgstr "" -"Állítsa igazra a vezeték nélküli hálózatok elérhetőségéről szóló értesítések " +"Állítsa igazra a VPN-kapcsolat bontásáról szóló értesítések " "kikapcsolásához." -#: ../nm-applet.schemas.in.h:7 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 +msgid "Suppress networks available notifications" msgstr "" -"Állítsa igazra az eseti hálózatok létrehozásának kikapcsolásához a " -"kisalkalmazás használatakor." +"Vezeték nélküli hálózatok elérhetőségéről szóló értesítések kikapcsolása" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#| msgid "" +#| "Set this to TRUE to disable notifications when wireless networks are " +#| "available." +msgid "" +"Set this to true to disable notifications when wireless networks are " +"available." +msgstr "" +"Állítsa igazra a vezeték nélküli hálózatok elérhetőségéről szóló értesítések " +"kikapcsolásához." -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Bélyeg" -#: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" -msgstr "Vezeték nélküli hálózatok elérhetőségéről szóló értesítések kikapcsolása" - -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "A szükség van-e a beállítások új verzióra költöztetésére." -#: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "Hálózati kapcsolatok beállításainak kezelése és módosítása" +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "WiFi létrehozás kikapcsolása" -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -msgid "Network Connections" -msgstr "Hálózati kapcsolatok" +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +#| msgid "" +#| "Set to TRUE to disable creation of adhoc networks when using the applet." +msgid "" +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "" +"Állítsa igazra az eseti hálózatok létrehozásának kikapcsolásához a " +"kisalkalmazás használatakor." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +#| msgid "Choose CA Certificate" +msgid "Ignore CA certificate" +msgstr "CA tanúsítvány mellőzése" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Állítsa igazra a CA tanúsítványokról szóló figyelmeztetések kikapcsolásához " +"az EAP hitelesítés során." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Állítsa igazra a CA tanúsítványokról szóló figyelmeztetések kikapcsolásához " +"az EAP hitelesítés 2. fázisa során." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-gsm.c:444 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Elérhető" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-gsm.c:486 ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "Kapcsolódott ehhez: „%s”." -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-gsm.c:490 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Kapcsolat létrehozva" @@ -107,190 +160,193 @@ msgid "You are now connected to the mobile broadband network." msgstr "Kapcsolódott a mobil széles sávú hálózathoz." -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "„%s” mobil széles sávú kapcsolat előkészítése…" -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "„%s” mobil széles sávú kapcsolat beállítása…" -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "Felhasználói hitelesítés szükséges a mobil széles sávú kapcsolathoz („%s”)…" +msgstr "" +"Felhasználói hitelesítés szükséges a mobil széles sávú kapcsolathoz („%s”)…" -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "Hálózati cím kérése a következőhöz: „%s”…" -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "„%s” mobil széles sávú kapcsolat aktív" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:696 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 #: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Mobil széles sáv (%s)" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 #: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 +#: ../src/connection-editor/nm-connection-editor.ui.h:4 #: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "Mobil széles sáv" #. Default connection item -#: ../src/applet-device-cdma.c:412 +#: ../src/applet-device-cdma.c:409 msgid "New Mobile Broadband (CDMA) connection..." msgstr "Új mobil széles sávú (CDMA) kapcsolat…" -#: ../src/applet-device-cdma.c:446 +#: ../src/applet-device-cdma.c:443 msgid "You are now connected to the CDMA network." msgstr "Kapcsolódott a CDMA hálózathoz." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "„%s” mobil széles sávú kapcsolat aktív: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "barangoló" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 msgid "CDMA network." msgstr "CDMA hálózat." -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 msgid "You are now registered on the home network." msgstr "Mostantól regisztrálva van az otthoni hálózaton." -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 msgid "You are now registered on a roaming network." msgstr "Mostantól regisztrálva van a barangoló hálózaton." -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" #. Default connection item -#: ../src/applet-device-gsm.c:459 +#: ../src/applet-device-gsm.c:457 msgid "New Mobile Broadband (GSM) connection..." msgstr "Új mobil széles sávú (GSM) kapcsolat…" -#: ../src/applet-device-gsm.c:493 +#: ../src/applet-device-gsm.c:491 msgid "You are now connected to the GSM network." msgstr "Kapcsolódott a GSM hálózathoz." -#: ../src/applet-device-gsm.c:654 +#: ../src/applet-device-gsm.c:652 msgid "PIN code required" msgstr "PIN kód szükséges" -#: ../src/applet-device-gsm.c:662 +#: ../src/applet-device-gsm.c:660 msgid "PIN code is needed for the mobile broadband device" msgstr "PIN kód szükséges a mobil széles sávú eszközhöz" -#: ../src/applet-device-gsm.c:783 +#: ../src/applet-device-gsm.c:781 #, c-format msgid "PIN code for SIM card '%s' on '%s'" msgstr "A(z) „%s” SIM-kártya PIN-kódja ezen: „%s”" -#: ../src/applet-device-gsm.c:875 +#: ../src/applet-device-gsm.c:873 msgid "Wrong PIN code; please contact your provider." msgstr "A PIN-kód hibás, keresse meg szolgáltatóját." -#: ../src/applet-device-gsm.c:898 +#: ../src/applet-device-gsm.c:896 msgid "Wrong PUK code; please contact your provider." msgstr "A PUK-kód hibás, keresse meg szolgáltatóját." #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 +#: ../src/applet-device-gsm.c:923 msgid "Sending unlock code..." msgstr "Feloldási kód küldése…" -#: ../src/applet-device-gsm.c:988 +#: ../src/applet-device-gsm.c:986 msgid "SIM PIN unlock required" msgstr "A SIM PIN feloldása szükséges" -#: ../src/applet-device-gsm.c:989 +#: ../src/applet-device-gsm.c:987 msgid "SIM PIN Unlock Required" msgstr "A SIM PIN feloldása szükséges" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 +#: ../src/applet-device-gsm.c:989 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " "used." -msgstr "A(z) „%s” mobil széles sávú eszköz használatához a SIM PIN-kód szükséges." +msgstr "" +"A(z) „%s” mobil széles sávú eszköz használatához a SIM PIN-kód szükséges." #. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 +#: ../src/applet-device-gsm.c:991 msgid "PIN code:" msgstr "PIN kód:" #. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 +#: ../src/applet-device-gsm.c:995 msgid "Show PIN code" msgstr "PIN-kód megjelenítése" -#: ../src/applet-device-gsm.c:1000 +#: ../src/applet-device-gsm.c:998 msgid "SIM PUK unlock required" msgstr "A SIM PUK feloldása szükséges" -#: ../src/applet-device-gsm.c:1001 +#: ../src/applet-device-gsm.c:999 msgid "SIM PUK Unlock Required" msgstr "A SIM PUK feloldása szükséges" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#: ../src/applet-device-gsm.c:1001 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " "used." -msgstr "A(z) „%s” mobil széles sávú eszköz használatához a SIM PUK-kód szükséges." +msgstr "" +"A(z) „%s” mobil széles sávú eszköz használatához a SIM PUK-kód szükséges." #. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 +#: ../src/applet-device-gsm.c:1003 msgid "PUK code:" msgstr "PUK kód:" #. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 +#: ../src/applet-device-gsm.c:1006 msgid "New PIN code:" msgstr "Új PIN-kód:" #. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 +#: ../src/applet-device-gsm.c:1008 msgid "Re-enter new PIN code:" msgstr "Írja be újra az új PIN-kódot:" #. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 +#: ../src/applet-device-gsm.c:1013 msgid "Show PIN/PUK codes" msgstr "PIN/PUK-kódok megjelenítése" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 msgid "GSM network." msgstr "GSM hálózat." @@ -317,7 +373,7 @@ msgstr "Vezetékes hálózat" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "leválasztva" @@ -358,89 +414,108 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "Kapcsolódás _rejtett vezeték nélküli hálózathoz…" -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "Új vezeték _nélküli hálózat létrehozása…" -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(nincs)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "Vezeték nélküli hálózatok (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "Vezeték nélküli hálózat (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Vezeték nélküli hálózat" msgstr[1] "Vezeték nélküli hálózatok" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "a vezeték nélküli hálózat kikapcsolva" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "a vezeték nélküli hálózat hardveres kapcsolóval kikapcsolva" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "További hálózatok" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "Vezeték nélküli hálózatok érhetők el" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "A hálózat menüvel kapcsolódhat a vezeték nélküli hálózathoz" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "Ne mutassa ezt az üzenetet újra" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Kapcsolódott a(z) „%s” vezeték nélküli hálózathoz." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "Vezeték nélküli hálózati kapcsolat („%s”) előkészítése…" -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "Vezeték nélküli hálózati kapcsolat („%s”) beállítása…" -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." -msgstr "A felhasználó hitelesítése szükséges a vezeték nélküli hálózathoz („%s”)…" +msgstr "" +"A felhasználó hitelesítése szükséges a vezeték nélküli hálózathoz („%s”)…" -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "Vezeték nélküli hálózati cím kérése ehhez: „%s”…" -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "A vezeték nélküli hálózati kapcsolat („%s”) aktív: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "A vezeték nélküli hálózati kapcsolat („%s”) aktív" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Nem sikerült aktiválni a kapcsolatot" + +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +msgid "Unknown error" +msgstr "Ismeretlen hiba" + +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 +msgid "Connection failure" +msgstr "A kapcsolat meghiúsult" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Az új kapcsolat hozzáadása meghiúsult" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -467,9 +542,9 @@ msgstr "Hiba a kapcsolatinformációk megjelenítése közben:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:286 +#: ../src/connection-editor/page-wireless-security.c:313 #: ../src/libnm-gtk/nm-wireless-dialog.c:948 -#: ../src/wireless-security/wireless-security.c:396 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -487,7 +562,7 @@ msgstr "WEP" #: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 -#: ../src/connection-editor/page-wireless-security.c:240 +#: ../src/connection-editor/page-wireless-security.c:265 #: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" @@ -676,7 +751,8 @@ "és sok más közösségi közreműködő és fordító" #: ../src/applet-dialogs.c:942 -msgid "Notification area applet for managing your network devices and connections." +msgid "" +"Notification area applet for managing your network devices and connections." msgstr "" "Értesítésiterület-kisalkalmazás a hálózati eszközök és kapcsolatok " "kezelésére." @@ -702,7 +778,23 @@ msgid "Password:" msgstr "Jelszó:" -#: ../src/applet.c:995 +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "A kapcsolat hozzáadása vagy aktiválása meghiúsult" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Az eszköz leválasztása meghiúsult" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Kapcsolatbontási hiba" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "A kapcsolat aktiválása meghiúsult" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -712,7 +804,7 @@ "\n" "A(z) „%s” VPN kapcsolat meghiúsult, mivel a hálózati kapcsolat megszakadt." -#: ../src/applet.c:998 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" @@ -722,7 +814,7 @@ "A(z) „%s” VPN kapcsolat meghiúsult, mivel a VPN szolgáltatás váratlanul " "leállt." -#: ../src/applet.c:1001 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -733,7 +825,7 @@ "A(z) „%s” VPN kapcsolat meghiúsult, mivel a VPN szolgáltatás érvénytelen " "konfigurációt adott vissza." -#: ../src/applet.c:1004 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -743,7 +835,7 @@ "A(z) „%s” VPN kapcsolat meghiúsult, mivel a kapcsolódási kísérlet túllépte " "az időkorlátot." -#: ../src/applet.c:1007 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -753,7 +845,7 @@ "A(z) „%s” VPN kapcsolat meghiúsult, mivel a VPN szolgáltatás nem indult el " "időben." -#: ../src/applet.c:1010 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -762,7 +854,7 @@ "\n" "A(z) „%s” VPN kapcsolat meghiúsult, mivel a VPN szolgáltatás nem indult el." -#: ../src/applet.c:1013 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -772,7 +864,7 @@ "A(z) „%s” VPN kapcsolat meghiúsult, mivel nem találhatók érvényes titkos VPN " "információk." -#: ../src/applet.c:1016 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -782,7 +874,7 @@ "A(z) „%s” VPN kapcsolat meghiúsult az érvénytelen titkos VPN információk " "miatt." -#: ../src/applet.c:1023 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -791,7 +883,7 @@ "\n" "A(z) „%s” VPN kapcsolat meghiúsult." -#: ../src/applet.c:1041 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -801,7 +893,7 @@ "\n" "A(z) „%s” VPN kapcsolat bontva, mivel a hálózati kapcsolat megszakadt." -#: ../src/applet.c:1044 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -810,7 +902,7 @@ "\n" "A(z) „%s” VPN kapcsolat bontva, mivel a VPN szolgáltatás leállt." -#: ../src/applet.c:1050 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -819,15 +911,30 @@ "\n" "A(z) „%s” VPN kapcsolat bontva." -#: ../src/applet.c:1084 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"A VPN kapcsolat sikeresen létrehozva.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "A VPN kapcsolat sikeresen létrehozva.\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "VPN bejelentkezési üzenet" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "A VPN kapcsolat meghiúsult" -#: ../src/applet.c:1155 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -841,7 +948,7 @@ "\n" "%s" -#: ../src/applet.c:1158 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -854,139 +961,140 @@ "\n" "%s" -#: ../src/applet.c:1478 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "az eszköz nem áll készen (hiányzó firmware)" -#: ../src/applet.c:1480 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "az eszköz nem áll készen" -#: ../src/applet.c:1506 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "Bontás" -#: ../src/applet.c:1520 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "az eszköz nem kezelt" -#: ../src/applet.c:1564 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "Nem érhetők el hálózati eszközök" -#: ../src/applet.c:1652 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "_VPN kapcsolatok" -#: ../src/applet.c:1709 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "V_PN beállítása…" -#: ../src/applet.c:1713 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "VP_N bontása" -#: ../src/applet.c:1811 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "A Hálózatkezelő nem fut…" -#: ../src/applet.c:1816 ../src/applet.c:2609 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "Hálózat kikapcsolva" #. 'Enable Networking' item -#: ../src/applet.c:2037 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "_Hálózat bekapcsolása" #. 'Enable Wireless' item -#: ../src/applet.c:2046 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "_Vezeték nélküli kapcsolat bekapcsolása" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "_Mobil széles sáv bekapcsolása" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "WiMA_X mobil széles sáv bekapcsolása" #. Toggle notifications item -#: ../src/applet.c:2075 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "Ért_esítések bekapcsolása" #. 'Connection Information' item -#: ../src/applet.c:2086 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "_Kapcsolatinformációk" +# Megjegyzés: Itt a magyar fordításban hozzárendeltem gyorsbillentyűt a fordításhoz, az angolban eredetileg nincs. #. 'Edit Connections...' item -#: ../src/applet.c:2096 +#: ../src/applet.c:2110 msgid "Edit Connections..." -msgstr "Kapcsolatok szerkesztése…" +msgstr "Kap_csolatok szerkesztése…" #. Help item -#: ../src/applet.c:2110 +#: ../src/applet.c:2124 msgid "_Help" msgstr "_Súgó" #. About item -#: ../src/applet.c:2119 +#: ../src/applet.c:2133 msgid "_About" msgstr "_Névjegy" -#: ../src/applet.c:2296 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "Kapcsolat bontva" -#: ../src/applet.c:2297 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "A hálózati kapcsolat bontva." -#: ../src/applet.c:2478 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "A hálózati kapcsolat („%s”) előkészítése…" -#: ../src/applet.c:2481 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "A felhasználó hitelesítése szükséges a hálózati kapcsolathoz („%s”)…" -#: ../src/applet.c:2487 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "A hálózati kapcsolat („%s”) aktív" -#: ../src/applet.c:2565 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "A VPN kapcsolat („%s”) indítása…" -#: ../src/applet.c:2568 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "A felhasználó hitelesítése szükséges a VPN kapcsolathoz („%s”)…" -#: ../src/applet.c:2571 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "VPN cím kérése ehhez: „%s”…" -#: ../src/applet.c:2574 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "A VPN kapcsolat („%s”) aktív" -#: ../src/applet.c:2613 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "Nincs hálózati kapcsolat" -#: ../src/applet.c:3263 +#: ../src/applet.c:3336 msgid "NetworkManager Applet" msgstr "Hálózatkezelő kisalkalmazás" @@ -999,18 +1107,18 @@ msgstr "_Feloldás" #: ../src/info.ui.h:1 -msgid "Active Network Connections" -msgstr "Aktív hálózati kapcsolatok" - -#: ../src/info.ui.h:2 msgid "Connection Information" msgstr "Kapcsolatinformációk" +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Aktív hálózati kapcsolatok" + #: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 msgid "Wired 802.1X authentication" msgstr "Vezetékes 802.1X hitelesítés" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:4 +#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 msgid "_Network name:" msgstr "_Hálózatnév:" @@ -1024,8 +1132,8 @@ #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 msgid "" "IP addresses identify your computer on the network. Click the \"Add\" " "button to add an IP address." @@ -1035,121 +1143,95 @@ #: ../src/connection-editor/ce-ip4-routes.ui.h:2 #: ../src/connection-editor/ce-ip6-routes.ui.h:2 -msgid "" -"If enabled, this connection will never be used as the default network " -"connection." -msgstr "Ha bekapcsolja, ez a kapcsolat soha nem lesz alapértelmezett." +msgid "Ig_nore automatically obtained routes" +msgstr "A_utomatikusan lekért utak mellőzése" #: ../src/connection-editor/ce-ip4-routes.ui.h:3 #: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" -msgstr "A_utomatikusan lekért utak mellőzése" +msgid "_Use this connection only for resources on its network" +msgstr "A kapcsolat _használata csak a hálózatán lévő erőforrásokhoz" #: ../src/connection-editor/ce-ip4-routes.ui.h:4 #: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "_Use this connection only for resources on its network" -msgstr "A kapcsolat _használata csak a hálózatán lévő erőforrásokhoz" +msgid "" +"If enabled, this connection will never be used as the default network " +"connection." +msgstr "Ha bekapcsolja, ez a kapcsolat soha nem lesz alapértelmezett." #: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 +#: ../src/wireless-security/eap-method-simple.ui.h:1 #: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "_Jelszó megjelenítése" +msgid "_Username:" +msgstr "_Felhasználónév:" #: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "_Jelszó:" - -#: ../src/connection-editor/ce-page-dsl.ui.h:3 msgid "_Service:" msgstr "Sz_olgáltatás:" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 +#: ../src/connection-editor/ce-page-dsl.ui.h:3 #: ../src/wireless-security/eap-method-leap.ui.h:3 #: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 #: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "_Felhasználónév:" +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "_Jelszó megjelenítése" + +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_Jelszó:" #: ../src/connection-editor/ce-page-ip4.ui.h:1 #: ../src/connection-editor/ce-page-ip6.ui.h:1 -msgid "Addresses" -msgstr "Címek" - -#: ../src/connection-editor/ce-page-ip4.ui.h:2 -#: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wired.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:1 #: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 +#: ../src/wireless-security/eap-method-peap.ui.h:2 msgid "Automatic" msgstr "Automatikus" -#: ../src/connection-editor/ce-page-ip4.ui.h:3 -#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 msgid "Automatic with manual DNS settings" msgstr "Automatikus, kézi DNS beállításokkal" -#: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" -msgstr "DH_CP kliensazonosító:" - -#: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "" -"Domains used when resolving host names. Use commas to separate multiple " -"domains." -msgstr "" -"Gépnevek feloldásához használt tartományok. Több tartomány elválasztásához " -"használjon vesszőket." - -#: ../src/connection-editor/ce-page-ip4.ui.h:7 -#: ../src/connection-editor/ce-page-ip6.ui.h:6 -msgid "" -"IP addresses of domain name servers used to resolve host names. Use commas " -"to separate multiple domain name server addresses." -msgstr "" -"Gépnevek feloldásához használt tartománynév-kiszolgálók IP-címei. Több " -"tartománynév-kiszolgáló címeinek elválasztásához használjon vesszőket." - -#: ../src/connection-editor/ce-page-ip4.ui.h:8 -#: ../src/connection-editor/ce-page-ip6.ui.h:7 -msgid "Link-Local" -msgstr "Közvetlen kapcsolat" - -#: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 #: ../src/connection-editor/page-ip4.c:169 #: ../src/connection-editor/page-ip6.c:191 msgid "Manual" msgstr "Kézi" -#: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv_4 addressing for this connection to complete" -msgstr "IPv_4 címzés megkövetelése a kapcsolathoz a befejezéshez" - -#: ../src/connection-editor/ce-page-ip4.ui.h:11 -#: ../src/connection-editor/ce-page-ip6.ui.h:10 -msgid "S_earch domains:" -msgstr "Keresési _tartományok:" +#: ../src/connection-editor/ce-page-ip4.ui.h:4 +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "Közvetlen kapcsolat" -#: ../src/connection-editor/ce-page-ip4.ui.h:12 -#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/ce-page-ip4.ui.h:5 +#: ../src/connection-editor/ce-page-ip6.ui.h:5 #: ../src/connection-editor/page-ip4.c:187 #: ../src/connection-editor/page-ip6.c:211 msgid "Shared to other computers" msgstr "Más gépekkel megosztott" -#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 +#: ../src/connection-editor/ce-page-ip6.ui.h:6 +msgid "_Method:" +msgstr "_Módszer:" + +#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip6.ui.h:7 +msgid "Addresses" +msgstr "Címek" + +#: ../src/connection-editor/ce-page-ip4.ui.h:9 msgid "" "The DHCP client identifier allows the network administrator to customize " "your computer's configuration. If you wish to use a DHCP client identifier, " @@ -1159,34 +1241,64 @@ "számítógép beállításainak személyre szabását. Ha szeretne DHCP " "kliensazonosítót használni, akkor itt adja meg azt." -#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip4.ui.h:10 +#: ../src/connection-editor/ce-page-ip6.ui.h:9 msgid "" -"When connecting to IPv6-capable networks, allows the connection to complete " -"if IPv4 configuration fails but IPv6 configuration succeeds." +"Domains used when resolving host names. Use commas to separate multiple " +"domains." msgstr "" -"IPv6-képes hálózatokhoz csatlakozáskor a kapcsolódás befejeződhet, ha az " -"IPv4 beállítása meghiúsul, de az IPv6 beállítása sikerül." +"Gépnevek feloldásához használt tartományok. Több tartomány elválasztásához " +"használjon vesszőket." -#: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 +#: ../src/connection-editor/ce-page-ip4.ui.h:11 +msgid "D_HCP client ID:" +msgstr "DH_CP kliensazonosító:" + +#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 +msgid "S_earch domains:" +msgstr "Keresési _tartományok:" + +#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_DNS kiszolgálók:" -#: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Method:" -msgstr "_Módszer:" - -#: ../src/connection-editor/ce-page-ip4.ui.h:17 +#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip6.ui.h:12 +msgid "" +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." +msgstr "" +"Gépnevek feloldásához használt tartománynév-kiszolgálók IP-címei. Több " +"tartománynév-kiszolgáló címeinek elválasztásához használjon vesszőket." + +#: ../src/connection-editor/ce-page-ip4.ui.h:15 +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "IPv_4 címzés megkövetelése a kapcsolathoz a befejezéshez" + +#: ../src/connection-editor/ce-page-ip4.ui.h:16 +msgid "" +"When connecting to IPv6-capable networks, allows the connection to complete " +"if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "" +"IPv6-képes hálózatokhoz csatlakozáskor a kapcsolódás befejeződhet, ha az " +"IPv4 beállítása meghiúsul, de az IPv6 beállítása sikerül." + +#: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 msgid "_Routes…" msgstr "_Utak…" -#: ../src/connection-editor/ce-page-ip6.ui.h:9 +#: ../src/connection-editor/ce-page-ip6.ui.h:13 msgid "Require IPv_6 addressing for this connection to complete" msgstr "IPv_6 címzés megkövetelése a kapcsolathoz a befejezéshez" -#: ../src/connection-editor/ce-page-ip6.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "" "When connecting to IPv4-capable networks, allows the connection to complete " "if IPv6 configuration fails but IPv4 configuration succeeds." @@ -1195,230 +1307,226 @@ "IPv6 beállítása meghiúsul, de az IPv4 beállítása sikerül." #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "Bármi" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -msgid "Advanced" -msgstr "Speciális" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -msgid "Allow _roaming if home network is not available" -msgstr "B_arangoló mód bekapcsolása, ha a saját hálózat nem érhető el" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "3G (UMTS/HSPA) preferálása" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "Bármi" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE) preferálása" #: ../src/connection-editor/ce-page-mobile.ui.h:6 msgid "Basic" msgstr "Alap" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "Változtatás…" - -#: ../src/connection-editor/ce-page-mobile.ui.h:8 -msgid "N_etwork ID:" -msgstr "_Hálózatazonosító:" - -#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "S_zám:" #: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "P_IN:" -msgstr "PI_N:" +msgid "Advanced" +msgstr "Speciális" #: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE) preferálása" +msgid "_APN:" +msgstr "_APN:" #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "3G (UMTS/HSPA) preferálása" +msgid "N_etwork ID:" +msgstr "_Hálózatazonosító:" #: ../src/connection-editor/ce-page-mobile.ui.h:13 -msgid "Sho_w passwords" -msgstr "_Jelszavak megjelenítése" +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "_Típus:" #: ../src/connection-editor/ce-page-mobile.ui.h:14 -msgid "_APN:" -msgstr "_APN:" +msgid "Change..." +msgstr "Változtatás…" + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +msgid "P_IN:" +msgstr "PI_N:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "_Típus:" +msgid "Allow _roaming if home network is not available" +msgstr "B_arangoló mód bekapcsolása, ha a saját hálózat nem érhető el" + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "_Jelszavak megjelenítése" #: ../src/connection-editor/ce-page-ppp.ui.h:1 -msgid "Allow _BSD data compression" -msgstr "B_SD tömörítés engedélyezése" +msgid "Authentication" +msgstr "Hitelesítés" #: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "_Deflate tömörítés engedélyezése" - -#: ../src/connection-editor/ce-page-ppp.ui.h:3 msgid "Allowed methods:" msgstr "Engedélyezett módszerek:" -#: ../src/connection-editor/ce-page-ppp.ui.h:4 -msgid "Authentication" -msgstr "Hitelesítés" +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "_Módszerek beállítása…" -#: ../src/connection-editor/ce-page-ppp.ui.h:5 +#: ../src/connection-editor/ce-page-ppp.ui.h:4 msgid "Compression" msgstr "Tömörítés" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "_Ponttól pontig titkosítás (MPPE)" + #: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" -msgstr "_Módszerek beállítása…" +msgid "_Require 128-bit encryption" +msgstr "128 bites _titkosítás megkövetelése" #: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" -msgstr "Visszhang" +msgid "Use _stateful MPPE" +msgstr "Állapottartó _MPPE használata" #: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" -msgstr "PPP _visszhangcsomagok küldése" +msgid "Allow _BSD data compression" +msgstr "B_SD tömörítés engedélyezése" #: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" -msgstr "TPC _fejléctömörítés használata" +msgid "Allow _Deflate data compression" +msgstr "_Deflate tömörítés engedélyezése" #: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" -msgstr "Állapottartó _MPPE használata" +msgid "Use TCP _header compression" +msgstr "TPC _fejléctömörítés használata" #: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" -msgstr "128 bites _titkosítás megkövetelése" +msgid "Echo" +msgstr "Visszhang" #: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "_Ponttól pontig titkosítás (MPPE)" - -#: ../src/connection-editor/ce-page-wired.ui.h:1 -msgid "1 Gb/s" -msgstr "1 Gb/s" +msgid "Send PPP _echo packets" +msgstr "PPP _visszhangcsomagok küldése" #: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 Gb/s" +msgid "Twisted Pair (TP)" +msgstr "Csavart érpár" #: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "10 Mb/s" -msgstr "10 Mb/s" +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" #: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "100 Mb/s" -msgstr "100 Mb/s" +msgid "BNC" +msgstr "BNC" #: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" #: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "A_utomatikus egyeztetés" +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" #: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" +msgid "1 Gb/s" +msgstr "1 Gb/s" #: ../src/connection-editor/ce-page-wired.ui.h:9 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "C_loned MAC address:" -msgstr "_Klónozott MAC-cím:" +msgid "10 Gb/s" +msgstr "10 Gb/s" #: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "Full duple_x" -msgstr "Full duple_x" +msgid "_Port:" +msgstr "_Port:" #: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "Media Independent Interface (MII)" +msgid "_Speed:" +msgstr "_Sebesség:" #: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:12 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"Az itt megadott MAC-cím azon hálózati eszköz hardvercíme lesz, amelyen ez a " -"kapcsolat aktiválva lesz. Ezt a szolgáltatást MAC-klónozásnak vagy -" -"hamisításnak nevezik. Például: 00:11:22:33:44:55" +msgid "Full duple_x" +msgstr "Full duple_x" #: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Twisted Pair (TP)" -msgstr "Csavart érpár" +msgid "Aut_onegotiate" +msgstr "A_utomatikus egyeztetés" #: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wireless.ui.h:8 msgid "_Device MAC address:" msgstr "_Eszköz MAC-címe:" #: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:17 -msgid "_MTU:" -msgstr "MT_U:" +#: ../src/connection-editor/ce-page-wireless.ui.h:10 +msgid "C_loned MAC address:" +msgstr "_Klónozott MAC-cím:" #: ../src/connection-editor/ce-page-wired.ui.h:16 -msgid "_Port:" -msgstr "_Port:" +#: ../src/connection-editor/ce-page-wireless.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"Az itt megadott MAC-cím azon hálózati eszköz hardvercíme lesz, amelyen ez a " +"kapcsolat aktiválva lesz. Ezt a szolgáltatást MAC-klónozásnak vagy -" +"hamisításnak nevezik. Például: 00:11:22:33:44:55" #: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Speed:" -msgstr "_Sebesség:" +#: ../src/connection-editor/ce-page-wireless.ui.h:7 +msgid "_MTU:" +msgstr "MT_U:" #: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wireless.ui.h:6 msgid "bytes" msgstr "bájt" -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "Eseti" - -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wireless.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" -msgstr "Sá_v:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "_Csatorna:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:8 +#: ../src/connection-editor/ce-page-wireless.ui.h:4 msgid "Infrastructure" msgstr "Kiépített" -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" -msgstr "Mó_d:" +#: ../src/connection-editor/ce-page-wireless.ui.h:5 +msgid "Ad-hoc" +msgstr "Eseti" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 +#: ../src/connection-editor/ce-page-wireless.ui.h:11 +msgid "mW" +msgstr "mW" + +#: ../src/connection-editor/ce-page-wireless.ui.h:12 +msgid "Transmission po_wer:" +msgstr "Átvitel _erőssége:" + +#: ../src/connection-editor/ce-page-wireless.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "SS_ID:" -msgstr "SSI_D:" +#: ../src/connection-editor/ce-page-wireless.ui.h:14 +msgid "_Rate:" +msgstr "Se_besség:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wireless.ui.h:15 msgid "" "This option locks this connection to the wireless access point (AP) " "specified by the BSSID entered here. Example: 00:11:22:33:44:55" @@ -1426,21 +1534,25 @@ "Ez a lehetőség a vezeték nélküli hozzáférési ponthoz (AP) való kapcsolódás " "lehetőségét az itt megadott BSSID-re korlátozza. Például: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 -msgid "Transmission po_wer:" -msgstr "Átvitel _erőssége:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wireless.ui.h:16 msgid "_BSSID:" msgstr "BSS_ID:" +#: ../src/connection-editor/ce-page-wireless.ui.h:17 +msgid "C_hannel:" +msgstr "_Csatorna:" + #: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_Rate:" -msgstr "Se_besség:" +msgid "Ban_d:" +msgstr "Sá_v:" + +#: ../src/connection-editor/ce-page-wireless.ui.h:19 +msgid "M_ode:" +msgstr "Mó_d:" #: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "mW" -msgstr "mW" +msgid "SS_ID:" +msgstr "SSI_D:" #: ../src/connection-editor/ce-page-wireless-security.ui.h:1 msgid "S_ecurity:" @@ -1451,54 +1563,54 @@ msgstr "Engedélyezett hitelesítési módszerek" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 -msgid "C_HAP" -msgstr "C_HAP" +msgid "_EAP" +msgstr "_EAP" -# Fixme: aki látott már ilyet lefordítva, sikítson #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 -msgid "Challenge Handshake Authentication Protocol" -msgstr "Challenge Handshake Authentication Protocol" - -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 msgid "Extensible Authentication Protocol" msgstr "Bővíthető hitelesítési protokoll" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "_PAP" + #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 -msgid "" -"In most cases, the provider's PPP servers will support all authentication " -"methods. If connections fail, try disabling support for some methods." -msgstr "" -"A legtöbb esetben a szolgáltató PPP kiszolgálói támogatják az összes " -"hitelesítési módszert. Ha a kapcsolódás meghiúsul, próbálja meg kikapcsolni " -"néhány módszer támogatását." +msgid "Password Authentication Protocol" +msgstr "Jelszó-hitelesítési protokoll" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +msgid "C_HAP" +msgstr "C_HAP" +# Fixme: aki látott már ilyet lefordítva, sikítson #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft Challenge Handshake Authentication Protocol" +msgid "Challenge Handshake Authentication Protocol" +msgstr "Challenge Handshake Authentication Protocol" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft Challenge Handshake Authentication Protocol 2. változat" +msgid "_MSCHAP" +msgstr "_MSCHAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" -msgstr "Jelszó-hitelesítési protokoll" +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft Challenge Handshake Authentication Protocol" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "_EAP" +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "_MSCHAP" +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft Challenge Handshake Authentication Protocol 2. változat" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "_PAP" +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "" +"A legtöbb esetben a szolgáltató PPP kiszolgálói támogatják az összes " +"hitelesítési módszert. Ha a kapcsolódás meghiúsul, próbálja meg kikapcsolni " +"néhány módszer támogatását." #: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 #: ../src/wireless-security/eap-method-fast.ui.h:1 @@ -1514,10 +1626,6 @@ msgstr "Válasszon VPN kapcsolattípust" #: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "Létrehozás…" - -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 msgid "" "Select the type of VPN you wish to use for the new connection. If the type " "of VPN connection you wish to create does not appear in the list, you may " @@ -1527,22 +1635,26 @@ "kívánt VPN kapcsolattípus nem jelenik meg a listában, akkor lehet hogy a " "megfelelő VPN bővítmény nincs telepítve." +#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 +msgid "Create…" +msgstr "Létrehozás…" + #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "Cím" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "Hálózati maszk" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "Átjáró" @@ -1552,12 +1664,12 @@ msgstr "Metrika" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "Előtag" #: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 +#: ../src/connection-editor/nm-connection-editor.ui.h:8 #: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1566,7 +1678,7 @@ msgid "Could not load DSL user interface." msgstr "Nem tölthető be a DSL felhasználói felülete." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "%d. DSL kapcsolat" @@ -1618,16 +1730,28 @@ msgid "Disabled" msgstr "Tiltva" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +#| msgid "_DNS servers:" +msgid "Additional _DNS servers:" +msgstr "To_vábbi DNS kiszolgálók:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +#| msgid "S_earch domains:" +msgid "Additional s_earch domains:" +msgstr "T_ovábbi keresési tartományok:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "IPv4 utak szerkesztése ehhez: %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "IPv4 beállításai" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Nem tölthető be az IPv4 felhasználói felület." @@ -1636,7 +1760,7 @@ msgstr "Automatikus, csak címek" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Mellőzés" @@ -1644,16 +1768,16 @@ msgid "Automatic, DHCP only" msgstr "Automatikus, csak DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "IPv6 utak szerkesztése ehhez: %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "IPv6 beállításai" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Nem tölthető be az IPv6 felhasználói felület." @@ -1680,7 +1804,8 @@ #: ../src/connection-editor/page-mobile.c:679 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "A szolgáltatóm _GSM-alapú technológiát használ (azaz GPRS, EDGE, UMTS, HSDPA)" +msgstr "" +"A szolgáltatóm _GSM-alapú technológiát használ (azaz GPRS, EDGE, UMTS, HSDPA)" #: ../src/connection-editor/page-mobile.c:686 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" @@ -1731,7 +1856,7 @@ msgstr "Nem tölthető be a PPP felhasználói felülete." #: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 +#: ../src/connection-editor/nm-connection-editor.ui.h:7 #: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1761,7 +1886,7 @@ "megadott állandó MAC-címre korlátozza. Például: 00:11:22:33:44:55" #: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 +#: ../src/connection-editor/nm-connection-editor.ui.h:2 #: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Vezetékes" @@ -1800,7 +1925,7 @@ msgstr "%u (%u MHz)" #: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 +#: ../src/connection-editor/nm-connection-editor.ui.h:3 #: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Vezeték nélküli" @@ -1814,55 +1939,55 @@ msgid "Wireless connection %d" msgstr "%d. vezeték nélküli kapcsolat" -#: ../src/connection-editor/page-wireless-security.c:264 +#: ../src/connection-editor/page-wireless-security.c:290 #: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP 40/128 bites kulcs (Hex vagy ASCII)" -#: ../src/connection-editor/page-wireless-security.c:273 +#: ../src/connection-editor/page-wireless-security.c:300 #: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128 bites jelmondat" -#: ../src/connection-editor/page-wireless-security.c:299 +#: ../src/connection-editor/page-wireless-security.c:326 #: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "Dinamikus WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/connection-editor/page-wireless-security.c:340 #: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA és WPA2 Personal" -#: ../src/connection-editor/page-wireless-security.c:327 +#: ../src/connection-editor/page-wireless-security.c:354 #: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA és WPA2 Enterprise" -#: ../src/connection-editor/page-wireless-security.c:361 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "" "Nem tölthető be a WiFi biztonság felhasználói felülete, hiányzó WiFi " "beállítás." -#: ../src/connection-editor/page-wireless-security.c:371 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "Vezeték nélküli biztonság" -#: ../src/connection-editor/page-wireless-security.c:373 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "Nem tölthető be a WiFi biztonság felhasználói felülete." -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "%s szerkesztése" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "Névtelen kapcsolat szerkesztése" -#: ../src/connection-editor/nm-connection-editor.c:288 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." @@ -1870,45 +1995,46 @@ "A kapcsolatszerkesztő nem talál néhány szükséges erőforrást (a .ui fájl nem " "található)." -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "Hiba a kapcsolatszerkesztő ablak létrehozásakor." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "M_entés" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "A kapcsolat változtatásainak mentése" -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "Me_ntés…" -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." -msgstr "Hitelesítse magát a kapcsolat mentéséhez a gép minden felhasználója számára." +msgstr "" +"Hitelesítse magát a kapcsolat mentéséhez a gép minden felhasználója számára." -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "Elérhető minden felhasználónak" +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Import" +msgstr "_Importálás" -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "A_utomatikus csatlakozás" +#: ../src/connection-editor/nm-connection-editor.ui.h:6 +msgid "E_xport" +msgstr "E_xportálás" -#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-editor.ui.h:9 msgid "Connection _name:" msgstr "Kapcsolat _neve:" -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "E_xportálás" +#: ../src/connection-editor/nm-connection-editor.ui.h:10 +msgid "Connect _automatically" +msgstr "A_utomatikus csatlakozás" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "_Importálás" +msgid "A_vailable to all users" +msgstr "Elérhető minden felhasználónak" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -2146,61 +2272,79 @@ msgid "Export VPN connection..." msgstr "VPN kapcsolat exportálása…" -#: ../src/gnome-bluetooth/bt-widget.c:220 +#: ../src/gnome-bluetooth/bt-widget.c:321 #, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Nem hozható létre PAN-kapcsolat: %s" - -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Telefonja használatra kész!" +#| msgid "" +#| "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"A Bluetooth beállítása nem lehetséges (nem sikerült csatlakozni a D-Bushoz: " +"(%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s hálózat" +#| msgid "" +#| "Bluetooth configuration not possible (error finding NetworkManager: %s)." +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"A Bluetooth beállítása nem lehetséges (a Hálózatkezelő nem található: (%s) %" +"s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Használja mobiltelefonját hálózati eszközként (PAN/NAP)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Az internet elérése a mobiltelefonjával (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Hiba: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Nem hozható létre DUN-kapcsolat: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Telefonja használatra kész!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "A mobilvarázsló megszakítva" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Ismeretlen telefoneszköz-típus (nem GSM vagy CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "ismeretlen modemtípus." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "a kapcsolódás meghiúsult a telefonhoz." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "váratlan kapcsolatbontás a telefonnal." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "időtúllépés a telefon részleteinek felismerése után." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Telefon beállításainak felismerése…" -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "nem található a Bluetooth eszköz." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2208,52 +2352,37 @@ "Be kell kapcsolni az alap Bluetooth csatolót a betárcsázós hálózati " "kapcsolat beállítása előtt." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "" -"A Bluetooth beállítása nem lehetséges (nem sikerült csatlakozni a D-Bushoz: " -"%s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" -"A Bluetooth beállítása nem lehetséges (nem sikerült létrehozni a D-Bus " -"proxyt)." +msgid "Failed to create PAN connection: %s" +msgstr "Nem hozható létre PAN-kapcsolat: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "A Bluetooth beállítása nem lehetséges (a Hálózatkezelő nem található: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Használja mobiltelefonját hálózati eszközként (PAN/NAP)" - -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Az internet elérése a mobiltelefonjával (DUN)" +msgid "%s Network" +msgstr "%s hálózat" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 -msgid "Your mobile broadband connection is configured with the following settings:" +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +msgid "" +"Your mobile broadband connection is configured with the following settings:" msgstr "A mobil széles sávú kapcsolata a következő beállításokkal rendelkezik:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:212 msgid "Your Device:" msgstr "Eszköz:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:223 msgid "Your Provider:" msgstr "Szolgáltató:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:234 msgid "Your Plan:" msgstr "Tarifa:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:259 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2267,23 +2396,23 @@ "széles sávú kapcsolat beállításainak módosításához válassza a Rendszer → " "Beállítások menü „Hálózati kapcsolatok” menüpontját." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:271 msgid "Confirm Mobile Broadband Settings" msgstr "Mobil széles sáv beállításainak megerősítése" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:332 msgid "Unlisted" msgstr "Egyéb" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:487 msgid "_Select your plan:" msgstr "_Válassza ki a tarifát:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:511 msgid "Selected plan _APN (Access Point Name):" msgstr "Kiválasztott tarifa _APN-je (hozzáférési pont neve):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2296,67 +2425,67 @@ "Ha nem biztos a tarifában, kérdezzen rá szolgáltatójánál a tarifához tartozó " "APN-re." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:542 msgid "Choose your Billing Plan" msgstr "Válassza ki előfizetési tarifáját" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:590 msgid "My plan is not listed..." msgstr "A tarifám nincs felsorolva…" -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:747 msgid "Select your provider from a _list:" msgstr "_Válassza ki szolgáltatóját listából:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:760 msgid "Provider" msgstr "Szolgáltató" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:785 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "_Nem találom a szolgáltatómat és saját kezűleg szeretném megadni:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:796 msgid "Provider:" msgstr "Szolgáltató:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:820 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "A szolgáltatóm GSM technológiát használ (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "A szolgáltatóm CDMA technológiát használ (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:837 msgid "Choose your Provider" msgstr "Válassza ki a szolgáltatóját" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1088 msgid "Country or Region List:" msgstr "Ország- vagy területlista:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "Country or region" msgstr "Ország vagy terület" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1107 msgid "My country is not listed" msgstr "Az ország nincs felsorolva" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1153 msgid "Choose your Provider's Country or Region" msgstr "Válassza ki a szolgáltató országát vagy területét" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1207 msgid "Installed GSM device" msgstr "Telepített GSM eszköz" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1210 msgid "Installed CDMA device" msgstr "Telepített CDMA eszköz" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1382 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2364,37 +2493,37 @@ "Ez a varázsló segít egyszerűen beállítani a mobil széles sávú kapcsolatot a " "(3G) mobilhálózathoz." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1387 msgid "You will need the following information:" msgstr "A következő információkra lesz szüksége:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1402 msgid "Your broadband provider's name" msgstr "Széles sávú szolgáltatójának neve" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband billing plan name" msgstr "Széles sávú előfizetésének neve" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" "(egyes esetekben) Széles sávú előfizetéséhez tartozó APN (hozzáférési pont " "neve)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1441 msgid "Create a connection for _this mobile broadband device:" msgstr "_Kapcsolat létrehozása ezen mobil széles sávú eszközhöz:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1456 msgid "Any device" msgstr "Bármely eszköz" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1469 msgid "Set up a Mobile Broadband Connection" msgstr "Mobil széles sávú kapcsolat beállítása" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1633 msgid "New Mobile Broadband Connection" msgstr "Új mobil széles sávú kapcsolat" @@ -2452,17 +2581,17 @@ "amelyhez kapcsolódni kíván." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "Wireless _security:" +msgstr "Vezeték _nélküli biztonság:" + +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" msgstr "_Kapcsolat:" -#: ../src/libnm-gtk/wifi.ui.h:3 +#: ../src/libnm-gtk/wifi.ui.h:5 msgid "Wireless _adapter:" msgstr "Vezeték _nélküli csatoló:" -#: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "Vezeték _nélküli biztonság:" - #: ../src/main.c:73 msgid "Usage:" msgstr "Használat:" @@ -2565,17 +2694,24 @@ msgid "Default" msgstr "Alapértelmezett" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +#| msgid "Base Connection:" +msgid "%s connection" +msgstr "%s kapcsolat" + #: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 msgid "" "The NetworkManager Applet could not find some required resources (the .ui " "file was not found)." msgstr "A Hálózatkezelő kisalkalmazás nem talál néhány szükséges .ui fájlt." -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Nincs kiválasztva hitelesítésszolgáltatói tanúsítvány" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " @@ -2585,50 +2721,50 @@ "biztonságos vezeték nélküli hálózatokhoz is kapcsolódhat. Ki kíván " "választani egy hitelesítésszolgáltatói tanúsítványt?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "CA tanúsítvány kiválasztása" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM vagy PKCS#12 személyes kulcsok (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER vagy PEM tanúsítványok (*.der, *.pem, *.crt, *.cer)" #: ../src/wireless-security/eap-method-fast.ui.h:2 -msgid "Allow automatic PAC pro_visioning" -msgstr "Automatikus PA_C létesítés engedélyezése" - -#: ../src/wireless-security/eap-method-fast.ui.h:3 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -#: ../src/wireless-security/eap-method-ttls.ui.h:2 -msgid "Anony_mous identity:" -msgstr "_Névtelen személyazonosság:" - -#: ../src/wireless-security/eap-method-fast.ui.h:4 msgid "Anonymous" msgstr "Névtelen" -#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-fast.ui.h:3 msgid "Authenticated" msgstr "Hitelesített" -#: ../src/wireless-security/eap-method-fast.ui.h:6 +#: ../src/wireless-security/eap-method-fast.ui.h:4 msgid "Both" msgstr "Mindkettő" -#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "_Névtelen személyazonosság:" + +#: ../src/wireless-security/eap-method-fast.ui.h:6 msgid "PAC _file:" msgstr "PAC _fájl:" -#: ../src/wireless-security/eap-method-fast.ui.h:8 -#: ../src/wireless-security/eap-method-peap.ui.h:8 +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 msgid "_Inner authentication:" msgstr "Belső _hitelesítés:" +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "Automatikus PA_C létesítés engedélyezése" + #: ../src/wireless-security/eap-method-fast.c:261 #: ../src/wireless-security/eap-method-peap.c:280 msgid "GTC" @@ -2647,7 +2783,7 @@ msgstr "Minden fájl" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:372 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2657,25 +2793,25 @@ msgid "Choose a Certificate Authority certificate..." msgstr "Válasszon hitelesítésszolgáltatói tanúsítványt…" +#: ../src/wireless-security/eap-method-peap.ui.h:3 +msgid "Version 0" +msgstr "0. verzió" + #: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 +msgid "Version 1" +msgstr "1. verzió" + +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 #: ../src/wireless-security/eap-method-ttls.ui.h:3 msgid "C_A certificate:" msgstr "_CA tanúsítvány:" -#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:8 msgid "PEAP _version:" msgstr "_PEAP verzió:" -#: ../src/wireless-security/eap-method-peap.ui.h:6 -msgid "Version 0" -msgstr "0. verzió" - -#: ../src/wireless-security/eap-method-peap.ui.h:7 -msgid "Version 1" -msgstr "1. verzió" - -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "Jelszó bekérése min_den alkalommal" @@ -2705,11 +2841,15 @@ msgid "Choose your private key..." msgstr "Válassza ki a személyes kulcsát…" -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "S_zemélyazonosság:" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "_Felhasználói tanúsítvány:" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "Személyes k_ulcs:" @@ -2717,10 +2857,6 @@ msgid "_Private key password:" msgstr "S_zemélyes kulcs jelszava:" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "_Felhasználói tanúsítvány:" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "_Ne figyelmeztessen újra" @@ -2733,63 +2869,71 @@ msgid "Yes" msgstr "Igen" -#: ../src/wireless-security/wireless-security.c:384 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:408 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:419 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "Alagutazott TLS" -#: ../src/wireless-security/wireless-security.c:430 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Védett EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 -#: ../src/wireless-security/ws-wep-key.ui.h:5 +#: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 msgid "Au_thentication:" msgstr "_Hitelesítés:" #: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "Nyílt rendszer" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "Megosztott kulcs" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (alapértelmezett)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:6 -msgid "Open System" -msgstr "Nyílt rendszer" - #: ../src/wireless-security/ws-wep-key.ui.h:7 -msgid "Shared Key" -msgstr "Megosztott kulcs" +msgid "_Key:" +msgstr "K_ulcs:" #: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "Kul_cs megjelenítése" -#: ../src/wireless-security/ws-wep-key.ui.h:9 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "WEP inde_x:" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "K_ulcs:" +#~ msgid "could not find the Bluetooth device." +#~ msgstr "nem található a Bluetooth eszköz." + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "" +#~ "A Bluetooth beállítása nem lehetséges (nem sikerült létrehozni a D-Bus " +#~ "proxyt)." #~ msgid "Click on this icon to connect to a wireless network" #~ msgstr "" @@ -2803,4 +2947,3 @@ #~ msgid "United Kingdom" #~ msgstr "Egyesült Királyság" - diff -Nru network-manager-applet-0.9.4.1/po/id.po network-manager-applet-0.9.6.2+git201210311320.2620/po/id.po --- network-manager-applet-0.9.4.1/po/id.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/id.po 2012-10-31 13:20:57.000000000 +0000 @@ -2,466 +2,819 @@ # Copyright (C) 2009 THE network-manager-applet'S COPYRIGHT HOLDER # This file is distributed under the same license as the network-manager-applet package. # -# Andika Triwidada , 2009-2011. +# Andika Triwidada , 2009-2012. # Dirgita , 2011. # msgid "" msgstr "" -"Project-Id-Version: network-manager-applet.master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2011-07-21 04:52+0000\n" -"PO-Revision-Date: 2011-08-18 11:18+0700\n" +"Project-Id-Version: network-manager-applet master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-08-12 19:31+0000\n" +"PO-Revision-Date: 2012-08-13 13:12+0700\n" "Last-Translator: Andika Triwidada \n" "Language-Team: Indonesian \n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Poedit-Language: Indonesian\n" -"X-Poedit-Country: Indonesia\n" "X-Poedit-SourceCharset: UTF-8\n" #: ../nm-applet.desktop.in.h:1 +msgid "Network" +msgstr "Jaringan" + +#: ../nm-applet.desktop.in.h:2 msgid "Manage your network connections" msgstr "Mengelola koneksi jaringan Anda" -#: ../nm-applet.desktop.in.h:2 -msgid "Network" -msgstr "Jaringan" +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Sambungan Jaringan" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "Matikan Pembuatan WiFi" +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Kelola dan ubah tatanan sambungan jaringan Anda" -#: ../nm-applet.schemas.in.h:2 +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Matikan pemberitahuan saat tersambung" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "" +"Tata ke true untuk mematikan pemberitahuan ketika menyambung ke suatu " +"jaringan." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Matikan pemberitahuan saat terputus" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "Tata ke TRUE untuk mematikan pemberitahuan ketika menyambung ke suatu jaringan." - -#: ../nm-applet.schemas.in.h:5 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "Tata ke TRUE untuk mematikan pemberitahuan ketika terputus dari suatu jaringan." - -#: ../nm-applet.schemas.in.h:6 -msgid "Set this to TRUE to disable notifications when wireless networks are available." -msgstr "Tata ke TRUE untuk mematikan pemberitahuan ketika jaringan nirkabel tersedia." - -#: ../nm-applet.schemas.in.h:7 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "Tata ke TRUE untuk mencegah pembuatan jaringan adhoc ketika memakai aplet." +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "" +"Tata ke true untuk mematikan pemberitahuan ketika terputus dari suatu " +"jaringan." -#: ../nm-applet.schemas.in.h:8 -msgid "Stamp" -msgstr "Stamp" +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Matikan pemberitahuan VPN" -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"Tata ke true untuk mematikan pemberitahuan ketika tersambung atau terputus " +"dari suatu VPN." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Redam pemberitahuan bahwa jaringan tersedia" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +msgid "" +"Set this to true to disable notifications when Wi-Fi networks are available." +msgstr "" +"Tata ke true untuk mematikan pemberitahuan ketika jaringan Wi-Fi tersedia." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 +msgid "Stamp" +msgstr "Stamp" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "Dipakai untuk menentukan apakah tatanan mesti dipindah ke versi baru." -#: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "Kelola dan ubah tatanan sambungan jaringan Anda" +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "Matikan Pembuatan WiFi" -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -msgid "Network Connections" -msgstr "Sambungan Jaringan" +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +msgid "" +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "" +"Tata ke true untuk mencegah pembuatan jaringan adhoc ketika memakai aplet." -#: ../src/applet-device-bt.c:174 -#: ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:443 -#: ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 -#: ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Tersedia" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Abaikan sertifikat CA" -#: ../src/applet-device-bt.c:200 -#: ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:485 -#: ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Anda sekarang tersambung ke '%s'." +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Tata ini ke true untuk menonaktifkan peringatan tentang sertifikat CA dalam " +"otentikasi EAP." -#: ../src/applet-device-bt.c:204 -#: ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:489 -#: ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1280 -#: ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Sambungan Terjalin" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Tata ini ke true untuk menonaktifkan peringatan tentang sertifikat CA dalam " +"otentikasi EAP fasa 2." -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Anda kini tersambunga ke jaringan data seluler." +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "Otentikasi 802.1X" + +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_Nama jaringan:" + +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Gagal menambah/mengaktifkan koneksi" + +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Galat tak dikenal" + +#: ../src/applet.c:493 ../src/applet.c:563 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Kegagalan koneksi" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Pemutusan perangkat gagal" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Pemutusan gagal" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "Aktivasi koneksi gagal" + +#: ../src/applet.c:924 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "Jangan tunjukkan pesan ini lagi" -#: ../src/applet-device-bt.c:231 -#: ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:525 -#: ../src/applet-device-wimax.c:464 +#: ../src/applet.c:1013 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Mempersiapkan sambungan data seluler '%s'..." +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"Sambungan VPN '%s' gagal karena sambungan jaringan terputus." -#: ../src/applet-device-bt.c:234 -#: ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:528 -#: ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1016 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Mengatur sambungan data seluler '%s'..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"Sambungan VPN '%s' gagal karena layanan VPN berhenti tak disangka-sangka." -#: ../src/applet-device-bt.c:237 -#: ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:531 -#: ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1019 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "Otentikasi pengguna dibutuhkan untuk sambungan data seluler '%s'..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"Sambungan VPN '%s' gagal karena layanan VPN mengembalikan konfigurasi yang " +"tidak benar." -#: ../src/applet-device-bt.c:240 -#: ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:534 -#: ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2479 +#: ../src/applet.c:1022 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Meminta alamat jaringan untuk '%s'..." +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"Sambungan VPN '%s' gagal karena batas waktu percobaan sambungan sudah habis." -#: ../src/applet-device-bt.c:244 -#: ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:552 +#: ../src/applet.c:1025 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "Sambungan data seluler '%s' aktif" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"Sambungan VPN '%s' gagal karena layanan VPN tidak mulai pada waktunya." -#: ../src/applet-device-cdma.c:184 -#: ../src/connection-editor/page-mobile.c:694 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1028 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"Sambungan VPN '%s' gagal karena layanan VPN gagal dijalankan." -#: ../src/applet-device-cdma.c:345 -#: ../src/applet-device-gsm.c:389 -#: ../src/applet-dialogs.c:405 +#: ../src/applet.c:1031 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Data Seluler (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"Sambungan VPN '%s' gagal karena tidak ada kode rahasia VPN yang valid." -#: ../src/applet-device-cdma.c:347 -#: ../src/applet-device-gsm.c:391 -#: ../src/connection-editor/page-mobile.c:377 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -#: ../src/connection-editor/nm-connection-list.c:1474 -msgid "Mobile Broadband" -msgstr "Data Seluler" +#: ../src/applet.c:1034 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"Sambungan VPN '%s' gagal karena kode rahasia VPN yang tak valid." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Sambungan Data Seluler (CDMA) baru ..." +#: ../src/applet.c:1041 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"Sambungan VPN '%s' gagal." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Anda sekarang tersambung ke jaringan CDMA." +#: ../src/applet.c:1059 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"Sambungan VPN '%s' terputus karena sambungan jaringan terputus." -#: ../src/applet-device-cdma.c:503 -#: ../src/applet-device-gsm.c:547 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1062 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Sambungan data seluler '%s' aktif: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"Sambungan VPN '%s' terputus karena layanan VPN berhenti." -#: ../src/applet-device-cdma.c:506 -#: ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "roaming" +#: ../src/applet.c:1068 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"Sambungan VPN '%s' terputus." -#: ../src/applet-device-cdma.c:647 -#: ../src/applet-device-cdma.c:653 -#| msgid "More networks" -msgid "CDMA network." -msgstr "Jaringan CDMA." +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"Koneksi VPN telah sukses dijalin.\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 -#: ../src/applet-device-gsm.c:1098 -#| msgid "You are now connected to the wired network." -msgid "You are now registered on the home network." -msgstr "Anda kini terdaftar ke jaringan rumah." +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "Koneksi VPN telah sukses dijalin.\n" -#: ../src/applet-device-cdma.c:654 -#: ../src/applet-device-gsm.c:1104 -#| msgid "You are now connected to the wired network." -msgid "You are now registered on a roaming network." -msgstr "Anda kini terdaftar ke jaringan roaming." +#: ../src/applet.c:1102 +msgid "VPN Login Message" +msgstr "Pesan Login VPN" -#: ../src/applet-device-gsm.c:210 -#: ../src/connection-editor/page-mobile.c:697 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 +msgid "VPN Connection Failed" +msgstr "Sambungan VPN Gagal" -#. Default connection item -#: ../src/applet-device-gsm.c:456 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Sambungan Data Seluler (GSM) baru..." +#: ../src/applet.c:1173 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Sambungan VPN '%s' gagal karena layanan VPN gagal dijalankan.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:490 -msgid "You are now connected to the GSM network." -msgstr "Anda sekarang tersambung ke jaringan GSM." +#: ../src/applet.c:1176 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Sambungan VPN '%s' gagal dijalankan.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:651 -msgid "PIN code required" -msgstr "Perlu kode PIN" +#: ../src/applet.c:1496 +msgid "device not ready (firmware missing)" +msgstr "perangkat tak siap (tak ada firmware)" -#: ../src/applet-device-gsm.c:659 -msgid "PIN code is needed for the mobile broadband device" -msgstr "Kode PIN dibutuhkan untuk perangkat data seluler" +#: ../src/applet.c:1498 +msgid "device not ready" +msgstr "perangkat tak siap" -#: ../src/applet-device-gsm.c:784 -msgid "Wrong PIN code; please contact your provider." -msgstr "PIN salah; silakan kontak operator Anda." +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1508 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "terputus" -#: ../src/applet-device-gsm.c:807 -msgid "Wrong PUK code; please contact your provider." -msgstr "PUK salah; silakan kontak operator Anda." +#: ../src/applet.c:1524 +msgid "Disconnect" +msgstr "Putuskan" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:834 -msgid "Sending unlock code..." -msgstr "Mengirim kode pembuka..." +#: ../src/applet.c:1538 +msgid "device not managed" +msgstr "perangkat tidak dikelola" -#: ../src/applet-device-gsm.c:897 -msgid "SIM PIN unlock required" -msgstr "Perlu PIN SIM" +#: ../src/applet.c:1582 +msgid "No network devices available" +msgstr "Tak ada perangkat jaringan yang tersedia" -#: ../src/applet-device-gsm.c:898 -msgid "SIM PIN Unlock Required" -msgstr "Perlu PIN SIM" +#: ../src/applet.c:1670 +msgid "_VPN Connections" +msgstr "Sambungan _VPN" -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:900 -#, c-format -msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." -msgstr "Perangkat broadband mobile '%s' memerlukan kode PIN sebelum dapat dipakai." +#: ../src/applet.c:1727 +msgid "_Configure VPN..." +msgstr "Mena_ta VPN..." -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:902 -msgid "PIN code:" -msgstr "Kode PIN:" +#: ../src/applet.c:1731 +msgid "_Disconnect VPN" +msgstr "_Memutus VPN" -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:906 -msgid "Show PIN code" -msgstr "Tampilkan kode PIN" +#: ../src/applet.c:1825 +msgid "NetworkManager is not running..." +msgstr "NetworkManager tidak sedang jalan..." -#: ../src/applet-device-gsm.c:909 -msgid "SIM PUK unlock required" -msgstr "Perlu PUK SIM" +#: ../src/applet.c:1830 ../src/applet.c:2631 +msgid "Networking disabled" +msgstr "Fungsi jaringan dimatikan" -#: ../src/applet-device-gsm.c:910 -msgid "SIM PUK Unlock Required" -msgstr "Perlu PUK SIM" +#. 'Enable Networking' item +#: ../src/applet.c:2051 +msgid "Enable _Networking" +msgstr "Fungsika_n Jaringan" -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:912 +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2060 +msgid "Enable _Wi-Fi" +msgstr "Fungsikan Ni_rkabel" + +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2069 +msgid "Enable _Mobile Broadband" +msgstr "Fungsikan _Data Seluler" + +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2078 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Fungsikan Data Seluler WiMA_X" + +#. Toggle notifications item +#: ../src/applet.c:2089 +msgid "Enable N_otifications" +msgstr "Fungsikan N_otifikasi" + +#. 'Connection Information' item +#: ../src/applet.c:2100 +msgid "Connection _Information" +msgstr "_Informasi Sambungan" + +#. 'Edit Connections...' item +#: ../src/applet.c:2110 +msgid "Edit Connections..." +msgstr "Sunting Sambungan..." + +#. Help item +#: ../src/applet.c:2124 +msgid "_Help" +msgstr "Ba_ntuan" + +#. About item +#: ../src/applet.c:2133 +msgid "_About" +msgstr "Tent_ang" + +#: ../src/applet.c:2310 +msgid "Disconnected" +msgstr "Terputus" + +#: ../src/applet.c:2311 +msgid "The network connection has been disconnected." +msgstr "Sambungan jaringan terputus." + +#: ../src/applet.c:2494 #, c-format -msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." -msgstr "Perangkat broadband mobile '%s' memerlukan kode PUK sebelum dapat dipakai." +msgid "Preparing network connection '%s'..." +msgstr "Menyiapkan sambungan jaringan '%s'..." -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:914 -msgid "PUK code:" -msgstr "Kode PUK:" +#: ../src/applet.c:2497 +#, c-format +msgid "User authentication required for network connection '%s'..." +msgstr "Otentikasi pengguna diperlukan untuk sambungan jaringan '%s'..." -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:917 -msgid "New PIN code:" -msgstr "Kode PIN baru:" +#: ../src/applet.c:2500 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 +#, c-format +msgid "Requesting a network address for '%s'..." +msgstr "Meminta alamat jaringan untuk '%s'..." -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:919 -msgid "Re-enter new PIN code:" -msgstr "Masukkan lagi kode PIN baru:" +#: ../src/applet.c:2503 +#, c-format +msgid "Network connection '%s' active" +msgstr "Sambungan jaringan '%s' aktif" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:924 -msgid "Show PIN/PUK codes" -msgstr "Tampilkan kode PIN/PUK" +#: ../src/applet.c:2586 +#, c-format +msgid "Starting VPN connection '%s'..." +msgstr "Memulai sambungan VPN '%s'..." -#: ../src/applet-device-gsm.c:1097 -#: ../src/applet-device-gsm.c:1103 -#| msgid "More networks" -msgid "GSM network." -msgstr "Jaringan GSM." +#: ../src/applet.c:2589 +#, c-format +msgid "User authentication required for VPN connection '%s'..." +msgstr "Otentikasi pengguna diperlukan untuk sambungan VPN '%s'..." + +#: ../src/applet.c:2592 +#, c-format +msgid "Requesting a VPN address for '%s'..." +msgstr "Meminta alamat VPN untuk '%s'..." + +#: ../src/applet.c:2595 +#, c-format +msgid "VPN connection '%s' active" +msgstr "Sambungan VPN '%s' aktif" + +#: ../src/applet.c:2636 +msgid "No network connection" +msgstr "Tak ada sambungan jaringan" + +#: ../src/applet.c:3336 +msgid "NetworkManager Applet" +msgstr "Aplet NetworkManager" + +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Tersedia" + +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "Anda sekarang tersambung ke '%s'." + +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "Sambungan Terjalin" + +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Anda kini tersambung ke jaringan data seluler." + +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 +#, c-format +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Mempersiapkan sambungan data seluler '%s'..." + +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 +#, c-format +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Mengatur sambungan data seluler '%s'..." + +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 +#, c-format +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "Otentikasi pengguna dibutuhkan untuk sambungan data seluler '%s'..." + +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 +#, c-format +msgid "Mobile broadband connection '%s' active" +msgstr "Sambungan data seluler '%s' aktif" + +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:699 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" + +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 +#, c-format +msgid "Mobile Broadband (%s)" +msgstr "Data Seluler (%s)" -#: ../src/applet-device-wired.c:62 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:85 +#: ../src/connection-editor/page-mobile.c:379 +msgid "Mobile Broadband" +msgstr "Data Seluler" + +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Sambungan Data Seluler (CDMA) baru ..." + +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Anda sekarang tersambung ke jaringan CDMA." + +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "Sambungan data seluler '%s' aktif: (%d%%%s%s)" + +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "roaming" + +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "Jaringan CDMA." + +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "Anda kini terdaftar ke jaringan rumah." + +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "Anda kini terdaftar ke jaringan roaming." + +#: ../src/applet-device-ethernet.c:62 msgid "Auto Ethernet" msgstr "Ethernet Otomatis" -#: ../src/applet-device-wired.c:205 +#: ../src/applet-device-ethernet.c:205 #, c-format -msgid "Wired Networks (%s)" -msgstr "Jaringan Kabel (%s)" +msgid "Ethernet Networks (%s)" +msgstr "Jaringan Ethernet (%s)" -#: ../src/applet-device-wired.c:207 +#: ../src/applet-device-ethernet.c:207 #, c-format -msgid "Wired Network (%s)" -msgstr "Jaringan Kabel (%s)" - -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "Jaringan Kabel" +msgid "Ethernet Network (%s)" +msgstr "Jaringan Ethernet (%s)" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "Jaringan Kabel" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "Jaringan Ethernet" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 -#: ../src/applet.c:1485 -msgid "disconnected" -msgstr "terputus" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "Jaringan Ethernet" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "Anda sekarang tersambung ke jaringan kabel." +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "Anda sekarang tersambung ke jaringan ethernet." -#: ../src/applet-device-wired.c:300 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Mempersiapkan sambungan jaringan kabel '%s'..." +msgid "Preparing ethernet network connection '%s'..." +msgstr "Mempersiapkan sambungan jaringan ethernet '%s'…" -#: ../src/applet-device-wired.c:303 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "Mengatur sambungan jaringan kabel '%s'..." +msgid "Configuring ethernet network connection '%s'..." +msgstr "Mengatur sambungan jaringan ethernet '%s'…" -#: ../src/applet-device-wired.c:306 +#: ../src/applet-device-ethernet.c:306 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "Otentikasi pengguna diperlukan untuk sambungan jaringan kabel '%s'..." +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "Otentikasi pengguna diperlukan untuk sambungan jaringan ethernet '%s'…" -#: ../src/applet-device-wired.c:309 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "Meminta alamat jaringan kabel untuk '%s'..." +msgid "Requesting an ethernet network address for '%s'..." +msgstr "Meminta alamat jaringan ethernet untuk '%s'…" -#: ../src/applet-device-wired.c:313 +#: ../src/applet-device-ethernet.c:313 #, c-format -msgid "Wired network connection '%s' active" -msgstr "Sambungan jaringan kabel '%s' aktif" +msgid "Ethernet network connection '%s' active" +msgstr "Sambungan jaringan ethernet '%s' aktif" -#: ../src/applet-device-wired.c:494 +#: ../src/applet-device-ethernet.c:494 msgid "DSL authentication" msgstr "Otentikasi DSL" +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:702 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" + +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Sambungan Data Seluler (GSM) baru..." + +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "Anda sekarang tersambung ke jaringan GSM." + +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "Perlu kode PIN" + +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "Kode PIN dibutuhkan untuk perangkat data seluler" + +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "Kode PIN bagi kartu SIM '%s' pada '%s'" + +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "PIN salah; silakan kontak operator Anda." + +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "PUK salah; silakan kontak operator Anda." + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "Mengirim kode pembuka..." + +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "Perlu PIN SIM" + +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "Perlu PIN SIM" + +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "" +"Perangkat broadband mobile '%s' memerlukan kode PIN sebelum dapat dipakai." + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "Kode PIN:" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "Tampilkan kode PIN" + +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "Perlu PUK SIM" + +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "Perlu PUK SIM" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "" +"Perangkat broadband mobile '%s' memerlukan kode PUK sebelum dapat dipakai." + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "Kode PUK:" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "Kode PIN baru:" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "Masukkan lagi kode PIN baru:" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "Tampilkan kode PIN/PUK" + +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "Jaringan GSM." + #: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "_Sambung ke Jaringan Nirkabel Tersembunyi..." +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "_Sambung ke Jaringan Wi-Fi Tersembunyi…" -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "Buat Jaringan _Nirkabel Baru..." +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "Buat Jaringa_n Wi-Fi Baru…" -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(tidak ada)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format -msgid "Wireless Networks (%s)" -msgstr "Jaringan Nirkabel (%s)" +msgid "Wi-Fi Networks (%s)" +msgstr "Jaringan Wi-Fi (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format -msgid "Wireless Network (%s)" -msgstr "Jaringan Nirkabel (%s)" +msgid "Wi-Fi Network (%s)" +msgstr "Jaringan Wi-Fi (%s)" -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Jaringan Nirkabel" +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Jaringan Wi-Fi" -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "nirkabel dimatikan" +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "Wi-Fi dinonaktifkan" -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "nirkabel dimatikan oleh saklar perangkat keras" +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Wi-Fi dinonaktifkan oleh saklar perangkat keras" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "Jaringan lain" -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" -msgstr "Jaringan Nirkabel Tersedia" - -#: ../src/applet-device-wifi.c:1083 -msgid "Click on this icon to connect to a wireless network" -msgstr "Klik pada ikon ini untuk melakukan sambungan ke jaringan nirkabel" - -#: ../src/applet-device-wifi.c:1084 -msgid "Use the network menu to connect to a wireless network" -msgstr "Gunakan menu jaringan untuk menyambung ke jaringan nirkabel" +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "Jaringan Wi-Fi Tersedia" -#: ../src/applet-device-wifi.c:1087 -#: ../src/applet.c:901 -msgid "Don't show this message again" -msgstr "Jangan tunjukkan pesan ini lagi" +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Gunakan menu jaringan untuk menyambung ke jaringan Wi-Fi" -#: ../src/applet-device-wifi.c:1279 +#: ../src/applet-device-wifi.c:1263 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Anda sekarang tersambung ke jaringan nirkabel '%s'." +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Anda sekarang tersambung ke jaringan Wi-Fi '%s'." -#: ../src/applet-device-wifi.c:1310 +#: ../src/applet-device-wifi.c:1294 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Menyiapkan sambungan jaringan nirkabel '%s'..." +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Menyiapkan sambungan jaringan Wi-Fi '%s'…" -#: ../src/applet-device-wifi.c:1313 +#: ../src/applet-device-wifi.c:1297 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Mengatur sambungan jaringan nirkabel '%s'..." +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Mengatur sambungan jaringan Wi-Fi '%s'…" -#: ../src/applet-device-wifi.c:1316 +#: ../src/applet-device-wifi.c:1300 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "Otentikasi pengguna diperlukan untuk jaringan nirkabel '%s'..." +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "Otentikasi pengguna diperlukan untuk jaringan Wi-Fi '%s'…" -#: ../src/applet-device-wifi.c:1319 +#: ../src/applet-device-wifi.c:1303 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Meminta alamat jaringan nirkabel untuk '%s'..." +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Meminta alamat jaringan Wi-Fi untuk '%s'…" -#: ../src/applet-device-wifi.c:1340 +#: ../src/applet-device-wifi.c:1324 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "Sambungan jaringan nirkabel '%s' aktif: %s (%d%%)" +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Sambungan jaringan Wi-Fi '%s' aktif: %s (%d%%)" -#: ../src/applet-device-wifi.c:1345 +#: ../src/applet-device-wifi.c:1329 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "Sambungan jaringan nirkabel '%s' aktif" +msgid "Wi-Fi network connection '%s' active" +msgstr "Sambungan jaringan Wi-Fi '%s' aktif" + +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Gagal mengaktifkan koneksi" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Gagal menambahkan sambungan baru" #: ../src/applet-device-wimax.c:231 #, c-format @@ -474,198 +827,219 @@ #: ../src/applet-device-wimax.c:259 msgid "WiMAX is disabled" -msgstr "WiMAX dimatikan" +msgstr "WiMAX dinonaktifkan" #: ../src/applet-device-wimax.c:260 msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX dimatikan oleh saklar perangkat keras" +msgstr "WiMAX dinonaktifkan oleh saklar perangkat keras" #: ../src/applet-device-wimax.c:428 msgid "You are now connected to the WiMAX network." msgstr "Anda sekarang tersambung ke jaringan WiMAX." -#: ../src/applet-dialogs.c:56 +#: ../src/applet-dialogs.c:57 msgid "Error displaying connection information:" msgstr "Galat menampilkan informasi sambungan:" -#: ../src/applet-dialogs.c:108 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/wireless-dialog.c:950 -#: ../src/wireless-security/wireless-security.c:396 +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" -#: ../src/applet-dialogs.c:110 +#: ../src/applet-dialogs.c:111 msgid "Dynamic WEP" msgstr "WEP Dinamis" -#: ../src/applet-dialogs.c:112 -#: ../src/applet-dialogs.c:221 -#: ../src/applet-dialogs.c:223 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:219 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:227 -#: ../src/applet-dialogs.c:236 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/wireless-dialog.c:907 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 msgctxt "Wifi/wired security" msgid "None" msgstr "Tak ada" -#: ../src/applet-dialogs.c:327 -#: ../src/applet-dialogs.c:465 +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (bawaan)" + +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:329 -#: ../src/applet-dialogs.c:467 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Tak dikenal" -#: ../src/applet-dialogs.c:342 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:344 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "tak dikenal" -#: ../src/applet-dialogs.c:356 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "tak dikenal" -#: ../src/applet-dialogs.c:391 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Ethernet (%s)" -#: ../src/applet-dialogs.c:394 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "WiFi 802.11 (%s)" -#: ../src/applet-dialogs.c:401 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:403 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:407 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:413 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "Umum" -#: ../src/applet-dialogs.c:417 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "Antarmuka:" -#: ../src/applet-dialogs.c:433 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "Alamat Perangkat Keras:" #. Driver -#: ../src/applet-dialogs.c:441 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "Driver:" -#: ../src/applet-dialogs.c:470 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "Kecepatan:" -#: ../src/applet-dialogs.c:480 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "Keamanan:" -#: ../src/applet-dialogs.c:493 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:506 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:523 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:534 -#: ../src/applet-dialogs.c:641 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "Alamat IP:" -#: ../src/applet-dialogs.c:536 -#: ../src/applet-dialogs.c:552 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "Tak dikenal" -#: ../src/applet-dialogs.c:550 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "Alamat Broadcast:" #. Prefix -#: ../src/applet-dialogs.c:559 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "Mask Subnet:" -#: ../src/applet-dialogs.c:561 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "Tak dikenal" -#: ../src/applet-dialogs.c:569 -#: ../src/applet-dialogs.c:656 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "Rute Utama:" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "DNS Primer:" -#: ../src/applet-dialogs.c:590 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "DNS Sekunder:" -#: ../src/applet-dialogs.c:600 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "DNS Tersier:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:615 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:624 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "Diabaikan" +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "Tipe VPN:" + +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "Gateway VPN:" + +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "Nama Pengguna VPN:" + +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "Banner VPN:" + +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Sambungan Dasar:" + +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "Tak dikenal" + #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:732 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "Tak ditemukan sambungan aktif yang valid!" -#: ../src/applet-dialogs.c:785 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -675,858 +1049,894 @@ "Hak cipta © 2005-2008 Novell, Inc.\n" "maupun komunitas para kontributor dan penerjemah" -#: ../src/applet-dialogs.c:788 -msgid "Notification area applet for managing your network devices and connections." -msgstr "Aplet wilayah pemberitahuan untuk mengelola perangkat dan sambungan jaringan Anda." - -#: ../src/applet-dialogs.c:790 +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"Aplet wilayah pemberitahuan untuk mengelola perangkat dan sambungan jaringan " +"Anda." + +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "Situs Web NetworkManager" -#: ../src/applet-dialogs.c:805 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "Sumber daya hilang" -#: ../src/applet-dialogs.c:830 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "Sandi jaringan data seluler" -#: ../src/applet-dialogs.c:839 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "Diperlukan sandi untuk tersambung pada '%s'." -#: ../src/applet-dialogs.c:858 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "Sandi:" -#: ../src/applet.c:990 -#, c-format +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was interrupted." +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." msgstr "" -"\n" -"Sambungan VPN '%s' gagal karena sambungan jaringan terputus." +"Alamat IP menandai komputer Anda pada jaringan. Klik tombol \"Tambah\" untuk " +"menambah suatu alamat IP." -#: ../src/applet.c:993 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"Sambungan VPN '%s' gagal karena layanan VPN berhenti tak disangka-sangka." +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "Ig_nore automatically obtained routes" +msgstr "Abaika_n route yang diperoleh secara otomatis" -#: ../src/applet.c:996 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid configuration." -msgstr "" -"\n" -"Sambungan VPN '%s' gagal karena layanan VPN mengembalikan konfigurasi yang tidak benar." +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +msgid "_Use this connection only for resources on its network" +msgstr "G_unakan sambungan ini hanya untuk sumber daya pada jaringannya" -#: ../src/applet.c:999 -#, c-format +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." +"If enabled, this connection will never be used as the default network " +"connection." msgstr "" -"\n" -"Sambungan VPN '%s' gagal karena batas waktu percobaan sambungan sudah habis." +"Bila diaktifkan, sambungan ini tidak akan pernah bisa digunakan sebagai " +"sambungan jaringan baku." -#: ../src/applet.c:1002 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"Sambungan VPN '%s' gagal karena layanan VPN tidak mulai pada waktunya." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " -#: ../src/applet.c:1005 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"Sambungan VPN '%s' gagal karena layanan VPN gagal dijalankan." +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "Pilih Tipe Koneksi" -#: ../src/applet.c:1008 -#, c-format +#: ../src/connection-editor/ce-new-connection.ui.h:3 msgid "" +"Select the type of connection you wish to create.\n" "\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." msgstr "" +"Pilih tipe koneksi yang ingin Anda buat.\n" "\n" -"Sambungan VPN '%s' gagal karena tidak ada kode rahasia VPN yang valid." +"Bila Anda membuat suatu VPN, dan sambungan VPN yang ingin Anda buat tidak " +"muncul pada daftar, mungkin Anda belum memasang plugin VPN yang tepat." -#: ../src/applet.c:1011 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"Sambungan VPN '%s' gagal karena kode rahasia VPN yang tak valid." +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Buat…" -#: ../src/applet.c:1018 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"Sambungan VPN '%s' gagal." +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "otomatis" -#: ../src/applet.c:1036 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was interrupted." -msgstr "" -"\n" -"Sambungan VPN '%s' terputus karena sambungan jaringan terputus." +#: ../src/connection-editor/ce-page.c:288 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "Gagal memperbarui rahasia sambungan karena galat yang tak dikenal." -#: ../src/applet.c:1039 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"Sambungan VPN '%s' terputus karena layanan VPN berhenti." +#: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 +#: ../src/wireless-security/eap-method-leap.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/ws-leap.ui.h:1 +msgid "_Username:" +msgstr "Nama pengg_una:" -#: ../src/applet.c:1045 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"Sambungan VPN '%s' terputus." +#: ../src/connection-editor/ce-page-dsl.ui.h:2 +msgid "_Service:" +msgstr "_Layanan:" -#: ../src/applet.c:1079 -msgid "VPN Login Message" -msgstr "Pesan Login VPN" +#: ../src/connection-editor/ce-page-dsl.ui.h:3 +#: ../src/wireless-security/eap-method-leap.ui.h:3 +#: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 +#: ../src/wireless-security/ws-leap.ui.h:3 +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "Tampilkan _sandi" -#: ../src/applet.c:1085 -#: ../src/applet.c:1093 -#: ../src/applet.c:1143 -msgid "VPN Connection Failed" -msgstr "Sambungan VPN Gagal" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_Sandi:" -#: ../src/applet.c:1150 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Sambungan VPN '%s' gagal karena layanan VPN gagal dijalankan.\n" -"\n" -"%s" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "Otomatis" -#: ../src/applet.c:1153 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Sambungan VPN '%s' gagal dijalankan.\n" -"\n" -"%s" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Twisted Pair (TP)" -#: ../src/applet.c:1473 -msgid "device not ready (firmware missing)" -msgstr "perangkat tak siap (tak ada firmware)" +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" -#: ../src/applet.c:1475 -msgid "device not ready" -msgstr "perangkat tak siap" +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" -#: ../src/applet.c:1501 -msgid "Disconnect" -msgstr "Putuskan" +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" -#: ../src/applet.c:1515 -msgid "device not managed" -msgstr "perangkat tidak dikelola" +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" -#: ../src/applet.c:1559 -msgid "No network devices available" -msgstr "Tak ada perangkat jaringan yang tersedia" +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" -#: ../src/applet.c:1647 -msgid "_VPN Connections" -msgstr "Sambungan _VPN" +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" -#: ../src/applet.c:1704 -msgid "_Configure VPN..." -msgstr "Mena_ta VPN..." +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" -#: ../src/applet.c:1708 -msgid "_Disconnect VPN" -msgstr "_Memutus VPN" +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Port:" -#: ../src/applet.c:1806 -msgid "NetworkManager is not running..." -msgstr "NetworkManager tidak sedang jalan..." +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Kecepatan:" -#: ../src/applet.c:1811 -#: ../src/applet.c:2604 -msgid "Networking disabled" -msgstr "Fungsi jaringan dimatikan" +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Dupleks penu_h" -#. 'Enable Networking' item -#: ../src/applet.c:2032 -msgid "Enable _Networking" -msgstr "Fungsika_n Jaringan" +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "Neg_osiasi sendiri" -#. 'Enable Wireless' item -#: ../src/applet.c:2041 -msgid "Enable _Wireless" -msgstr "Fungsikan Ni_rkabel" +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "Alamat _MAC perangkat:" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2050 -msgid "Enable _Mobile Broadband" -msgstr "Fungsikan _Data Seluler" +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "Alamat MAC _klon:" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2059 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Fungsikan Data Seluler WiMA_X" +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"Alamat MAC yang dimasukkan disini akan dipakai sebagai alamat perangkat " +"keras bagi perangkat jaringan bagi sambungan yang diaktifkan. Fitur ini " +"dikenal sebagai klon atau spoof MAC. Contoh: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "bita" -#. Toggle notifications item -#: ../src/applet.c:2070 -msgid "Enable N_otifications" -msgstr "Fungsikan N_otifikasi" +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "Mode _transport:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagram" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "Terhubung" -#. 'Connection Information' item -#: ../src/applet.c:2081 -msgid "Connection _Information" -msgstr "_Informasi Sambungan" +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 +msgid "Automatic with manual DNS settings" +msgstr "Otomatis dengan pengaturan DNS manual" -#. 'Edit Connections...' item -#: ../src/applet.c:2091 -msgid "Edit Connections..." -msgstr "Sunting Sambungan..." +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "Atur sendiri" -#. Help item -#: ../src/applet.c:2105 -msgid "_Help" -msgstr "Ba_ntuan" +#: ../src/connection-editor/ce-page-ip4.ui.h:4 +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "Link-Lokal" -#. About item -#: ../src/applet.c:2114 -msgid "_About" -msgstr "_Tentang" +#: ../src/connection-editor/ce-page-ip4.ui.h:5 +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "Berbagi dengan komputer lain" -#: ../src/applet.c:2291 -msgid "Disconnected" -msgstr "Terputus" - -#: ../src/applet.c:2292 -msgid "The network connection has been disconnected." -msgstr "Sambungan jaringan terputus." - -#: ../src/applet.c:2473 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Menyiapkan sambungan jaringan '%s'..." - -#: ../src/applet.c:2476 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Otentikasi pengguna diperlukan untuk sambungan jaringan '%s'..." - -#: ../src/applet.c:2482 -#, c-format -msgid "Network connection '%s' active" -msgstr "Sambungan jaringan '%s' aktif" - -#: ../src/applet.c:2560 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Memulai sambungan VPN '%s'..." - -#: ../src/applet.c:2563 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Otentikasi pengguna diperlukan untuk sambungan VPN '%s'..." - -#: ../src/applet.c:2566 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Meminta alamat VPN untuk '%s'..." - -#: ../src/applet.c:2569 -#, c-format -msgid "VPN connection '%s' active" -msgstr "Sambungan VPN '%s' aktif" - -#: ../src/applet.c:2608 -msgid "No network connection" -msgstr "Tak ada sambungan jaringan" - -#: ../src/applet.c:3258 -msgid "NetworkManager Applet" -msgstr "Aplet NetworkManager" - -#: ../src/gsm-unlock.ui.h:1 -msgid "_Unlock" -msgstr "B_uka kunci" - -#: ../src/info.ui.h:1 -msgid "Active Network Connections" -msgstr "Sambungan Jaringan Aktif" - -#: ../src/info.ui.h:2 -msgid "Connection Information" -msgstr "Informasi Sambungan" - -#: ../src/wifi.ui.h:1 -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " - -#: ../src/wifi.ui.h:2 -msgid "Co_nnection:" -msgstr "Sambunga_n:" - -#: ../src/wifi.ui.h:3 -msgid "Wireless _adapter:" -msgstr "_Adaptor nirkabel:" - -#: ../src/wifi.ui.h:4 -#: ../src/wired-8021x.ui.h:2 -msgid "_Network name:" -msgstr "_Nama jaringan:" - -#: ../src/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "Kemananan _nirkabel:" - -#: ../src/wired-8021x.ui.h:1 -#: ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Otentikasi 802.1X kabel" - -#: ../src/connection-editor/ce-page.c:67 -msgid "automatic" -msgstr "otomatis" - -#: ../src/connection-editor/ce-page.c:294 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "Gagal memperbarui rahasia sambungan karena galat yang tak dikenal." - -#: ../src/connection-editor/ce-ip4-routes.ui.h:1 -#: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 -msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." -msgstr "Alamat IP menandai komputer Anda pada jaringan. Klik tombol \"Tambah\" untuk menambah suatu alamat IP." - -#: ../src/connection-editor/ce-ip4-routes.ui.h:2 -#: ../src/connection-editor/ce-ip6-routes.ui.h:2 -msgid "If enabled, this connection will never be used as the default network connection." -msgstr "Bila diaktifkan, sambungan ini tidak akan pernah bisa digunakan sebagai sambungan jaringan baku." - -#: ../src/connection-editor/ce-ip4-routes.ui.h:3 -#: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" -msgstr "Abaika_n route yang diperoleh secara otomatis " - -#: ../src/connection-editor/ce-ip4-routes.ui.h:4 -#: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "Use this c_onnection only for resources on its network" -msgstr "_Gunakan sambungan ini hanya untuk sumber daya pada jaringannya" - -#: ../src/connection-editor/ce-page-dsl.ui.h:1 -#: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 -#: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "Tampilkan _sandi" - -#: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "_Sandi:" - -#: ../src/connection-editor/ce-page-dsl.ui.h:3 -msgid "_Service:" -msgstr "_Layanan:" - -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 -#: ../src/wireless-security/eap-method-leap.ui.h:3 -#: ../src/wireless-security/eap-method-simple.ui.h:4 -#: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "Nama pengg_una:" - -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -msgid "Addresses" -msgstr "Alamat" - -#: ../src/connection-editor/ce-page-ip4.ui.h:2 -#: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 -msgid "Automatic" -msgstr "Otomatis" - -#: ../src/connection-editor/ce-page-ip4.ui.h:3 -#: ../src/connection-editor/ce-page-ip6.ui.h:3 -msgid "Automatic with manual DNS settings" -msgstr "Otomatis dengan pengaturan DNS manual" - -#: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" -msgstr "ID klien D_HCP:" - -#: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "Domains used when resolving host names. Use commas to separate multiple domains." -msgstr "Domain yang digunakan untuk mengurai nama host. Gunakan koma untuk memisahkan beberapa domain." +#: ../src/connection-editor/ce-page-ip4.ui.h:6 +#: ../src/connection-editor/ce-page-ip6.ui.h:6 +msgid "_Method:" +msgstr "_Metode:" #: ../src/connection-editor/ce-page-ip4.ui.h:7 -#: ../src/connection-editor/ce-page-ip6.ui.h:6 -msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." -msgstr "Alamat IP dari server nama domain dipakai untuk menerjemahkan nama host. Gunakan koma untuk memisahkan alamat beberapa server nama domain." - -#: ../src/connection-editor/ce-page-ip4.ui.h:8 #: ../src/connection-editor/ce-page-ip6.ui.h:7 -msgid "Link-Local" -msgstr "Link-Lokal" +msgid "Addresses" +msgstr "Alamat" #: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 -#: ../src/connection-editor/page-ip4.c:169 -#: ../src/connection-editor/page-ip6.c:191 -msgid "Manual" -msgstr "Atur sendiri" +msgid "" +"The DHCP client identifier allows the network administrator to customize " +"your computer's configuration. If you wish to use a DHCP client identifier, " +"enter it here." +msgstr "" +"Identifier klien DHCP memungkinkan administrator jaringan untuk menggubah " +"konfigurasi komputer Anda. Bila Anda ingin memakai suatu identifier klien " +"DHCP, masukkan disini." #: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv4 addressing for this connection to complete" -msgstr "Memerlukan pengalamatan IPv4 agar sambungan ini lengkap" +#: ../src/connection-editor/ce-page-ip6.ui.h:9 +msgid "" +"Domains used when resolving host names. Use commas to separate multiple " +"domains." +msgstr "" +"Domain yang digunakan untuk mengurai nama host. Gunakan koma untuk " +"memisahkan beberapa domain." #: ../src/connection-editor/ce-page-ip4.ui.h:11 -#: ../src/connection-editor/ce-page-ip6.ui.h:10 -#: ../src/connection-editor/page-ip4.c:187 -#: ../src/connection-editor/page-ip6.c:211 -msgid "Shared to other computers" -msgstr "Berbagi dengan komputer lain" +msgid "D_HCP client ID:" +msgstr "ID klien D_HCP:" #: ../src/connection-editor/ce-page-ip4.ui.h:12 -msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." -msgstr "Identifier klien DHCP memungkinkan administrator jaringan untuk menggubah konfigurasi komputer Anda. Bila Anda ingin memakai suatu identifier klien DHCP, masukkan disini." +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 +msgid "S_earch domains:" +msgstr "Ranah p_encarian:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 -msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "Ketika menyambung ke jaringan yang mampu-IPv6, memungkinkan sambungan komplit bila konfigurasi IPv4 gagal tetapi konfigurasi IPv6 sukses." +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 +msgid "_DNS servers:" +msgstr "Server _DNS:" #: ../src/connection-editor/ce-page-ip4.ui.h:14 #: ../src/connection-editor/ce-page-ip6.ui.h:12 -msgid "_DNS servers:" -msgstr "Server _DNS:" +msgid "" +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." +msgstr "" +"Alamat IP dari server nama domain dipakai untuk menerjemahkan nama host. " +"Gunakan koma untuk memisahkan alamat beberapa server nama domain." #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 -msgid "_Method:" -msgstr "_Metode:" +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "Memerlukan pengalamatan IPv_4 agar sambungan ini lengkap" #: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Routes…" -msgstr "_Route…" +msgid "" +"When connecting to IPv6-capable networks, allows the connection to complete " +"if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "" +"Ketika menyambung ke jaringan yang mampu-IPv6, memungkinkan sambungan " +"komplit bila konfigurasi IPv4 gagal tetapi konfigurasi IPv6 sukses." #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 -msgid "_Search domains:" -msgstr "_Ranah pencarian:" +msgid "_Routes…" +msgstr "_Route…" -#: ../src/connection-editor/ce-page-ip6.ui.h:9 -msgid "Require IPv6 addressing for this connection to complete" -msgstr "Memerlukan pengalamatan IPv6 agar sambungan ini lengkap" +#: ../src/connection-editor/ce-page-ip6.ui.h:13 +msgid "Require IPv_6 addressing for this connection to complete" +msgstr "Memerlukan pengalamatan IPv_6 agar sambungan ini lengkap" -#: ../src/connection-editor/ce-page-ip6.ui.h:11 -msgid "When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds." -msgstr "Ketika menyambung ke jaringan yang mampu-IPv4, memungkinkan sambungan komplit bila konfigurasi IPv6 gagal tetapi konfigurasi IPv4 sukses." +#: ../src/connection-editor/ce-page-ip6.ui.h:14 +msgid "" +"When connecting to IPv4-capable networks, allows the connection to complete " +"if IPv6 configuration fails but IPv4 configuration succeeds." +msgstr "" +"Ketika menyambung ke jaringan yang mampu-IPv4, memungkinkan sambungan " +"komplit bila konfigurasi IPv6 gagal tetapi konfigurasi IPv4 sukses." #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "Sebarang" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -msgid "Advanced" -msgstr "]Tingkat Lanjut" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -msgid "Allow roaming if home network is not available" -msgstr "Ijinkan roaming bila jaringan rumah tak tersedia" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "Lebih suka 3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "Sebarang" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "Lebih suka 2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 msgid "Basic" msgstr "Dasar" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "Ganti..." - -#: ../src/connection-editor/ce-page-mobile.ui.h:8 -msgid "N_etwork ID:" -msgstr "ID Jari_ngan:" - -#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "No_mor:" #: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "PI_N:" -msgstr "PI_N:" +msgid "Advanced" +msgstr "Tingkat Lanjut" #: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "Lebih suka 2G (GPRS/EDGE)" +msgid "_APN:" +msgstr "_APN:" #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "Lebih suka 3G (UMTS/HSPA)" +msgid "N_etwork ID:" +msgstr "ID Jari_ngan:" #: ../src/connection-editor/ce-page-mobile.ui.h:13 -msgid "Sho_w passwords" -msgstr "_Tampilkan sandi" +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "_Tipe:" #: ../src/connection-editor/ce-page-mobile.ui.h:14 -msgid "_APN:" -msgstr "_APN:" +msgid "Change..." +msgstr "Ganti..." + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +msgid "P_IN:" +msgstr "P_IN:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "_Tipe:" +msgid "Allow _roaming if home network is not available" +msgstr "Ijinkan _roaming bila jaringan rumah tak tersedia" + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "_Tampilkan sandi" #: ../src/connection-editor/ce-page-ppp.ui.h:1 -msgid "Allow _BSD data compression" -msgstr "Ijinkan pemampatan data _BSD" +msgid "Authentication" +msgstr "Otentikasi" #: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "Ijinkan pemampatan data _Deflate" - -#: ../src/connection-editor/ce-page-ppp.ui.h:3 msgid "Allowed methods:" msgstr "Metoda yang diijinkan:" -#: ../src/connection-editor/ce-page-ppp.ui.h:4 -msgid "Authentication" -msgstr "Otentikasi" +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "Atur _Metoda…" -#: ../src/connection-editor/ce-page-ppp.ui.h:5 +#: ../src/connection-editor/ce-page-ppp.ui.h:4 msgid "Compression" msgstr "Kompresi" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "G_unakan point-to-point encryption (MPPE)" + #: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" -msgstr "Atur _Metoda..." +msgid "_Require 128-bit encryption" +msgstr "Pe_rsyaratkan enkripsi 128-bit" #: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" -msgstr "Echo" +msgid "Use _stateful MPPE" +msgstr "Gunakan _stateful MPPE" #: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" -msgstr "Kirim paket _echo PPP" +msgid "Allow _BSD data compression" +msgstr "Ijinkan pemampatan data _BSD" #: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" -msgstr "Gunakan pemampatan _header TCP" +msgid "Allow _Deflate data compression" +msgstr "Ijinkan pemampatan data _Deflate" #: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" -msgstr "Gunakan _stateful MPPE" +msgid "Use TCP _header compression" +msgstr "Gunakan pemampatan _header TCP" #: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" -msgstr "Pe_rsyaratkan enkripsi 128-bit" +msgid "Echo" +msgstr "Echo" #: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "G_unakan point-to-point encryption (MPPE)" +msgid "Send PPP _echo packets" +msgstr "Kirim paket _echo PPP" -#: ../src/connection-editor/ce-page-wired.ui.h:1 -msgid "1 Gb/s" -msgstr "1 Gb/s" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "K_eamanan:" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 Gb/s" +#: ../src/connection-editor/ce-page-wifi.ui.h:2 +msgid "A (5 GHz)" +msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "10 Mb/s" -msgstr "10 Mb/s" +#: ../src/connection-editor/ce-page-wifi.ui.h:3 +msgid "B/G (2.4 GHz)" +msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "100 Mb/s" -msgstr "100 Mb/s" +#: ../src/connection-editor/ce-page-wifi.ui.h:4 +msgid "Infrastructure" +msgstr "Infrastruktur" -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" +#: ../src/connection-editor/ce-page-wifi.ui.h:5 +msgid "Ad-hoc" +msgstr "Ad-hoc" -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "Neg_osiasi sendiri" +#: ../src/connection-editor/ce-page-wifi.ui.h:11 +msgid "mW" +msgstr "mW" -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" +#: ../src/connection-editor/ce-page-wifi.ui.h:12 +msgid "Transmission po_wer:" +msgstr "_Daya transmisi:" -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "Full duple_x" -msgstr "Dupleks penu_h" +#: ../src/connection-editor/ce-page-wifi.ui.h:13 +msgid "Mb/s" +msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wired.ui.h:10 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "MT_U:" -msgstr "MT_U:" +#: ../src/connection-editor/ce-page-wifi.ui.h:14 +msgid "_Rate:" +msgstr "_Laju:" -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "Media Independent Interface (MII)" +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +msgid "" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Opsi ini mengunci sambungan ini ke access point (AP) Wi-Fi yang dinyatakan " +"oleh BSSID yang dimasukkan disini. Contoh: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "Alamat MAC yang dimasukkan disini akan dipakai sebagai alamat perangkat keras bagi perangkat jaringan bagi sambungan yang diaktifkan. Fitur ini dikenal sebagai klon atau spoof MAC. Contoh: 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -#: ../src/connection-editor/ce-page-wireless.ui.h:12 -msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "Opsi ini mengunci sambungan ini ke perangkat jaringan yang dinyatakan oleh alamat MAC yang dimasukkan disini. Contoh: 00:11:22:33:44:55" +#: ../src/connection-editor/ce-page-wifi.ui.h:16 +msgid "_BSSID:" +msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wired.ui.h:14 -msgid "Twisted Pair (TP)" -msgstr "Twisted Pair (TP)" +#: ../src/connection-editor/ce-page-wifi.ui.h:17 +msgid "C_hannel:" +msgstr "K_anal:" -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 -msgid "_Cloned MAC address:" -msgstr "Alamat MAC _klon:" +#: ../src/connection-editor/ce-page-wifi.ui.h:18 +msgid "Ban_d:" +msgstr "Ban_d:" -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:17 -msgid "_Device MAC address:" -msgstr "Alamat _MAC perangkat:" +#: ../src/connection-editor/ce-page-wifi.ui.h:19 +msgid "M_ode:" +msgstr "M_ode:" -#: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Port:" -msgstr "_Port:" +#: ../src/connection-editor/ce-page-wifi.ui.h:20 +msgid "SS_ID:" +msgstr "SS_ID:" -#: ../src/connection-editor/ce-page-wired.ui.h:18 -msgid "_Speed:" -msgstr "_Kecepatan:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 +msgid "Allowed Authentication Methods" +msgstr "Metoda Otentikasi yang Diijinkan" -#: ../src/connection-editor/ce-page-wired.ui.h:19 -#: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "bytes" -msgstr "bita" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 +msgid "_EAP" +msgstr "_EAP" -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -msgid "A (5 GHz)" -msgstr "A (5 GHz)" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +msgid "Extensible Authentication Protocol" +msgstr "Extensible Authentication Protocol" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "Ad-hoc" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "_PAP" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 -msgid "B/G (2.4 GHz)" -msgstr "B/G (2.4 GHz)" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +msgid "Password Authentication Protocol" +msgstr "Password Authentication Protocol" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" -msgstr "Ban_d:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 +msgid "C_HAP" +msgstr "C_HAP" -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "K_anal:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 +msgid "Challenge Handshake Authentication Protocol" +msgstr "Challenge Handshake Authentication Protocol" -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "Infrastructure" -msgstr "Infrastruktur" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "_MSCHAP" +msgstr "_MSCHAP" -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" -msgstr "M_ode:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft Challenge Handshake Authentication Protocol" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "Mb/s" -msgstr "Mb/s" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 -msgid "This option locks this connection to the wireless access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "Opsi ini mengunci sambungan ini ke access point (AP) yang dinyatakan oleh BSSID yang dimasukkan disini. Contoh: 00:11:22:33:44:55" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft Challenge Handshake Authentication Protocol versi 2" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 -msgid "Transmission po_wer:" -msgstr "_Daya transmisi:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "" +"Pada kebanyakan kasus, server PPP dari penyedia akan mendukung semua metoda " +"otentikasi. Bila sambungan gagal, cobalah mematikan dukungan untuk beberapa " +"metoda." -#: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "_BSSID:" -msgstr "_BSSID:" +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Alamat" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_Rate:" -msgstr "_Laju:" +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Netmask" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 -msgid "_SSID:" -msgstr "_SSID:" +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Gateway" -#: ../src/connection-editor/ce-page-wireless.ui.h:21 -msgid "mW" -msgstr "mW" +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Metrik" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "_Security:" -msgstr "_Keamanan:" +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Awalan" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 -msgid "Allowed Authentication Methods" -msgstr "Metoda Otentikasi yang Diijinkan" +#: ../src/connection-editor/new-connection.c:75 +#: ../src/connection-editor/page-ethernet.c:273 +msgid "Ethernet" +msgstr "Ethernet" + +#: ../src/connection-editor/new-connection.c:80 +#: ../src/connection-editor/page-wifi.c:462 +msgid "Wi-Fi" +msgstr "Wi-Fi" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 -msgid "C_HAP" -msgstr "C_HAP" +#: ../src/connection-editor/new-connection.c:90 +#: ../src/connection-editor/page-wimax.c:157 ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:95 +#: ../src/connection-editor/page-dsl.c:139 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:100 +#: ../src/connection-editor/page-infiniband.c:189 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:112 +#: ../src/connection-editor/page-vpn.c:111 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:245 +msgid "Import a saved VPN configuration..." +msgstr "Impor suatu konfigurasi VPN yang disimpan…" + +#: ../src/connection-editor/nm-connection-editor.c:106 +#, c-format +msgid "Editing %s" +msgstr "Menyunting %s" + +#: ../src/connection-editor/nm-connection-editor.c:110 +msgid "Editing un-named connection" +msgstr "Sunting sambungan tak bernama" + +#: ../src/connection-editor/nm-connection-editor.c:297 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"Penyunting sambungan tak dapat menemukan beberapa sumber daya yang " +"diperlukan (berkas .ui tak ditemukan)." + +#: ../src/connection-editor/nm-connection-editor.c:401 +msgid "Error creating connection editor dialog." +msgstr "Galat membuat dialog penyunting sambungan." + +#: ../src/connection-editor/nm-connection-editor.c:413 +msgid "_Save" +msgstr "_Simpan" + +#: ../src/connection-editor/nm-connection-editor.c:414 +msgid "Save any changes made to this connection." +msgstr "Simpan perubahan yang dibuat atas sambungan ini." + +#: ../src/connection-editor/nm-connection-editor.c:415 +msgid "_Save..." +msgstr "_Simpan..." + +#: ../src/connection-editor/nm-connection-editor.c:416 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "" +"Lalukan otentikasi untuk menyimpan sambungan ini bagi semua pengguna dari " +"mesin ini." + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "_Nama sambungan:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "Menyambung otom_atis" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "Tersedia untuk semua pengguna" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "_Ekspor..." + +#: ../src/connection-editor/nm-connection-list.c:169 +msgid "never" +msgstr "tak pernah" + +#: ../src/connection-editor/nm-connection-list.c:180 +#: ../src/connection-editor/nm-connection-list.c:191 +msgid "now" +msgstr "kini" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d menit lalu" + +#: ../src/connection-editor/nm-connection-list.c:202 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d jam lalu" + +#: ../src/connection-editor/nm-connection-list.c:214 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d hari lalu" + +#: ../src/connection-editor/nm-connection-list.c:220 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d bulan lalu" + +#: ../src/connection-editor/nm-connection-list.c:224 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "%d tahun lalu" + +#: ../src/connection-editor/nm-connection-list.c:443 +msgid "Connection add failed" +msgstr "Penambahan koneksi gagal" + +#: ../src/connection-editor/nm-connection-list.c:472 +msgid "Error saving connection" +msgstr "Galat saat menyimpan sambungan" + +#: ../src/connection-editor/nm-connection-list.c:473 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Properti '%s' / '%s' tak valid: %d" + +#: ../src/connection-editor/nm-connection-list.c:480 +#: ../src/connection-editor/nm-connection-list.c:598 +msgid "An unknown error occurred." +msgstr "Terjadi galat tak dikenal." + +#: ../src/connection-editor/nm-connection-list.c:485 +#: ../src/connection-editor/nm-connection-list.c:638 +msgid "Error initializing editor" +msgstr "Galat menginisialisasi penyunting" + +#: ../src/connection-editor/nm-connection-list.c:503 +#: ../src/connection-editor/nm-connection-list.c:655 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"Dialog penyunting sambungan tidak dapat diinisialisasi karena galat yang tak " +"dikenal." + +#: ../src/connection-editor/nm-connection-list.c:512 +msgid "Could not create new connection" +msgstr "Tak dapat membuat sambungan baru" + +#: ../src/connection-editor/nm-connection-list.c:524 +msgid "Could not edit new connection" +msgstr "Tak dapat menyunting sambungan baru" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 -msgid "Challenge Handshake Authentication Protocol" -msgstr "Challenge Handshake Authentication Protocol" +#: ../src/connection-editor/nm-connection-list.c:669 +msgid "Could not edit connection" +msgstr "Tak dapat menyunting sambungan" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 -msgid "Extensible Authentication Protocol" -msgstr "Extensible Authentication Protocol" +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "Connection delete failed" +msgstr "Penghapusan sambungan gagal" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 -msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." -msgstr "Pada kebanyakan kasus, server PPP dari penyedia akan mendukung semua metoda otentikasi. Bila sambungan gagal, cobalah mematikan dukungan untuk beberapa metoda." +#: ../src/connection-editor/nm-connection-list.c:731 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Anda yakin ingin menghapus sambungan %s?" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +#: ../src/connection-editor/nm-connection-list.c:972 +msgid "Name" +msgstr "Nama" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft Challenge Handshake Authentication Protocol" +#: ../src/connection-editor/nm-connection-list.c:985 +msgid "Last Used" +msgstr "Terakhir Dipakai" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft Challenge Handshake Authentication Protocol versi 2" +#. Edit +#: ../src/connection-editor/nm-connection-list.c:1026 +msgid "_Edit" +msgstr "_Sunting" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" -msgstr "Password Authentication Protocol" +#: ../src/connection-editor/nm-connection-list.c:1027 +msgid "Edit the selected connection" +msgstr "Sunting sambungan terpilih" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "_EAP" +#: ../src/connection-editor/nm-connection-list.c:1028 +msgid "_Edit..." +msgstr "_Sunting..." -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "_MSCHAP" +#: ../src/connection-editor/nm-connection-list.c:1029 +msgid "Authenticate to edit the selected connection" +msgstr "Lakukan otentikasi untuk menyunting sambungan yang dipilih" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "_PAP" +#. Delete +#: ../src/connection-editor/nm-connection-list.c:1043 +msgid "_Delete" +msgstr "_Hapus" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Pilih Jenis Sambungan VPN" +#: ../src/connection-editor/nm-connection-list.c:1044 +msgid "Delete the selected connection" +msgstr "Hapus sambungan yang dipilih" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "Buat..." +#: ../src/connection-editor/nm-connection-list.c:1045 +msgid "_Delete..." +msgstr "_Hapus..." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." -msgstr "Pilih tipe VPN yang ingin Anda pakai untuk sambungan baru. Bila tipe sambungan VPN yang ingin Anda buat tidak muncul pada daftar, mungkin Anda belum memasang plugin VPN yang tepat." +#: ../src/connection-editor/nm-connection-list.c:1046 +msgid "Authenticate to delete the selected connection" +msgstr "Lakukan otentikasi untuk menghapus sambungan yang dipilih" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:901 -#: ../src/connection-editor/page-ip6.c:867 -msgid "Address" -msgstr "Alamat" +#: ../src/connection-editor/nm-connection-list.c:1285 +msgid "Error creating connection" +msgstr "Galat saat membuat sambungan" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:918 -msgid "Netmask" -msgstr "Netmask" +#: ../src/connection-editor/nm-connection-list.c:1286 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Tidak tahu bagaimana membuat sambungan '%s'" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:935 -#: ../src/connection-editor/page-ip6.c:901 -msgid "Gateway" -msgstr "Gateway" +#: ../src/connection-editor/nm-connection-list.c:1341 +msgid "Error editing connection" +msgstr "Galat saat menyunting sambungan" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Metrik" +#: ../src/connection-editor/nm-connection-list.c:1342 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Tidak menemukan koneksi dengan UUID '%s'" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:884 -msgid "Prefix" -msgstr "Awalan" +#: ../src/connection-editor/page-8021x-security.c:119 +msgid "802.1x Security" +msgstr "Keamanan 802.1x" -#: ../src/connection-editor/page-dsl.c:137 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1482 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-8021x-security.c:121 +msgid "Could not load 802.1x Security user interface." +msgstr "Tidak dapat memuat antar muka pengguna Keamanan 802.1x." + +#: ../src/connection-editor/page-8021x-security.c:139 +msgid "Use 802.1_X security for this connection" +msgstr "Gunakan keamanan 802.1_X untuk sambungan ini" -#: ../src/connection-editor/page-dsl.c:139 +#: ../src/connection-editor/page-dsl.c:141 msgid "Could not load DSL user interface." msgstr "Tak dapat memuat antar muka pengguna DSL." -#: ../src/connection-editor/page-dsl.c:229 +#: ../src/connection-editor/page-dsl.c:233 #, c-format msgid "DSL connection %d" msgstr "Sambungan DSL %d" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Opsi ini mengunci sambungan ini ke perangkat jaringan yang dinyatakan oleh " +"alamat MAC yang dimasukkan disini. Contoh: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:275 +msgid "Could not load ethernet user interface." +msgstr "Tak bisa memuat antar muka pengguna ethernet." + +#: ../src/connection-editor/page-ethernet.c:451 +#, c-format +msgid "Ethernet connection %d" +msgstr "Koneksi ethernet %d" + +#: ../src/connection-editor/page-infiniband.c:192 +msgid "Could not load InfiniBand user interface." +msgstr "Tak bisa memuat antar muka pengguna InfiniBand." + +#: ../src/connection-editor/page-infiniband.c:317 +#, c-format +msgid "InfiniBand connection %d" +msgstr "Koneksi InfiniBand %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1574,16 +1984,26 @@ msgid "Disabled" msgstr "Dimatikan" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Server _DNS tambahan:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Ranah p_encarian tambahan:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Menyunting rute IPv4 untuk %s" -#: ../src/connection-editor/page-ip4.c:980 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "Tatanan IPv4" -#: ../src/connection-editor/page-ip4.c:982 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Tak dapat memuat antar muka pengguna IPv4." @@ -1592,356 +2012,117 @@ msgstr "Otomatis, hanya alamat" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Abaikan" -#: ../src/connection-editor/page-ip6.c:179 -msgid "Automatic, DHCP only" -msgstr "Otomatis, hanya DHCP" - -#: ../src/connection-editor/page-ip6.c:798 -#, c-format -msgid "Editing IPv6 routes for %s" -msgstr "Menyunting rute IPv6 untuk %s" - -#: ../src/connection-editor/page-ip6.c:944 -msgid "IPv6 Settings" -msgstr "Tatanan IPv6" - -#: ../src/connection-editor/page-ip6.c:946 -msgid "Could not load IPv6 user interface." -msgstr "Tak dapat memuat antar muka pengguna IPv6." - -#: ../src/connection-editor/page-mobile.c:379 -msgid "Could not load mobile broadband user interface." -msgstr "Tidak dapat memuat antar muka pengguna data seluler." - -#: ../src/connection-editor/page-mobile.c:396 -msgid "Unsupported mobile broadband connection type." -msgstr "Jenis sambungan data seluler tidak didukung." - -#. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:637 -msgid "Select Mobile Broadband Provider Type" -msgstr "Pilih Tipe Operator Data Seluler" - -#: ../src/connection-editor/page-mobile.c:672 -msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." -msgstr "Pilih teknologi yang digunakan oleh operator seluler Anda. Bila Anda tak yakin, tanyakan ke operator Anda." - -#: ../src/connection-editor/page-mobile.c:677 -msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "Operator saya memakai teknologi berbasis _GSM (mis. GPRS, EDGE, UMTS, HSDPA)" - -#: ../src/connection-editor/page-mobile.c:684 -msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "Operator saya memakai teknologi berbasis C_DMA (mis. 1xRTT, EVDO)" - -#: ../src/connection-editor/page-ppp.c:134 -msgid "EAP" -msgstr "EAP" - -#: ../src/connection-editor/page-ppp.c:135 -#: ../src/wireless-security/eap-method-ttls.c:230 -msgid "PAP" -msgstr "PAP" - -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:280 -msgid "CHAP" -msgstr "CHAP" - -#: ../src/connection-editor/page-ppp.c:137 -#: ../src/wireless-security/eap-method-peap.c:246 -#: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "tak ada" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Menyunting metoda otentikasi PPP bagi %s" - -#: ../src/connection-editor/page-ppp.c:281 -msgid "PPP Settings" -msgstr "Pengaturan PPP" - -#: ../src/connection-editor/page-ppp.c:283 -msgid "Could not load PPP user interface." -msgstr "Tak dapat memuat antar muka pengguna PPP." - -#: ../src/connection-editor/page-vpn.c:107 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1478 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:109 -msgid "Could not load VPN user interface." -msgstr "Tak dapat memuat antar muka pengguna VPN." - -#: ../src/connection-editor/page-vpn.c:124 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "Tak dapat menemukan layanan plugin VPN bagi '%s'." - -#: ../src/connection-editor/page-vpn.c:199 -#: ../src/connection-editor/nm-connection-list.c:884 -#, c-format -msgid "VPN connection %d" -msgstr "Sambungan VPN %d" - -#: ../src/connection-editor/page-wired.c:211 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -#: ../src/connection-editor/nm-connection-list.c:1466 -msgid "Wired" -msgstr "Kabel" - -#: ../src/connection-editor/page-wired.c:213 -msgid "Could not load wired user interface." -msgstr "Tak dapat memuat antar muka pengguna LAN." - -#: ../src/connection-editor/page-wired.c:348 -#, c-format -msgid "Wired connection %d" -msgstr "Sambungan kabel %d" - -#: ../src/connection-editor/page-wired-security.c:114 -msgid "802.1x Security" -msgstr "Keamanan 802.1x" - -#: ../src/connection-editor/page-wired-security.c:116 -msgid "Could not load Wired Security security user interface." -msgstr "Tidak dapat memuat antar muka pengguna Keamanan Jaringan Kabel." - -#: ../src/connection-editor/page-wired-security.c:134 -msgid "Use 802.1X security for this connection" -msgstr "Gunakan keamanan 802.1X untuk sambungan ini" - -#: ../src/connection-editor/page-wireless.c:147 -#: ../src/connection-editor/page-wireless.c:151 -#: ../src/connection-editor/page-wireless.c:172 -#, c-format -msgid "default" -msgstr "baku" - -#: ../src/connection-editor/page-wireless.c:176 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:396 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -#: ../src/connection-editor/nm-connection-list.c:1470 -msgid "Wireless" -msgstr "Nirkabel" - -#: ../src/connection-editor/page-wireless.c:398 -msgid "Could not load WiFi user interface." -msgstr "Tidak dapat memuat antar muka pengguna WiFi." - -#: ../src/connection-editor/page-wireless.c:562 -#, c-format -msgid "Wireless connection %d" -msgstr "Sambungan nirkabel %d" - -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/wireless-dialog.c:924 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "Kunci WEP 40/128-bit (Heksa atau ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/wireless-dialog.c:933 -msgid "WEP 128-bit Passphrase" -msgstr "Frasa-kunci WEP 128-bit" - -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/wireless-dialog.c:963 -msgid "Dynamic WEP (802.1x)" -msgstr "WEP Dinamik (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/wireless-dialog.c:977 -msgid "WPA & WPA2 Personal" -msgstr "WPA & WPA2 Personal" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/wireless-dialog.c:991 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA & WPA2 Enterprise" - -#: ../src/connection-editor/page-wireless-security.c:359 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "Tidak dapat memuat antar muka pengguna keamanan Wifi; kehilangan penataan WiFi." - -#: ../src/connection-editor/page-wireless-security.c:368 -msgid "Wireless Security" -msgstr "Kemananan Nirkabel" - -#: ../src/connection-editor/page-wireless-security.c:370 -msgid "Could not load WiFi security user interface." -msgstr "Tidak dapat memuat antar muka pengguna keamanan WiFi." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Menyunting %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Sunting sambungan tak bernama" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "The connection editor could not find some required resources (the .ui file was not found)." -msgstr "Penyunting sambungan tak dapat menemukan beberapa sumber daya yang diperlukan (berkas .ui tak ditemukan)." - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "Galat membuat dialog penyunting sambungan." - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "_Simpan" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "Simpan perubahan yang dibuat atas sambungan ini." - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "_Simpan..." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "Lalukan otentikasi untuk menyimpan sambungan ini bagi semua pengguna dari mesin ini." - -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "Tersedia untuk semua pengguna" - -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "Menyambung otom_atis" - -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -msgid "Connection _name:" -msgstr "_Nama sambungan:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "E_kspor" +#: ../src/connection-editor/page-ip6.c:179 +msgid "Automatic, DHCP only" +msgstr "Otomatis, hanya DHCP" -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "_Impor" +#: ../src/connection-editor/page-ip6.c:809 +#, c-format +msgid "Editing IPv6 routes for %s" +msgstr "Menyunting rute IPv6 untuk %s" -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "tak pernah" +#: ../src/connection-editor/page-ip6.c:956 +msgid "IPv6 Settings" +msgstr "Tatanan IPv6" -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "kini" +#: ../src/connection-editor/page-ip6.c:958 +msgid "Could not load IPv6 user interface." +msgstr "Tak dapat memuat antar muka pengguna IPv6." -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "%d menit lalu" +#: ../src/connection-editor/page-mobile.c:381 +msgid "Could not load mobile broadband user interface." +msgstr "Tidak dapat memuat antar muka pengguna data seluler." -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "%d jam lalu" +#: ../src/connection-editor/page-mobile.c:398 +msgid "Unsupported mobile broadband connection type." +msgstr "Jenis sambungan data seluler tidak didukung." -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "%d hari lalu" +#. Fall back to just asking for GSM vs. CDMA +#: ../src/connection-editor/page-mobile.c:642 +msgid "Select Mobile Broadband Provider Type" +msgstr "Pilih Tipe Operator Data Seluler" -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "%d bulan lalu" +#: ../src/connection-editor/page-mobile.c:677 +msgid "" +"Select the technology your mobile broadband provider uses. If you are " +"unsure, ask your provider." +msgstr "" +"Pilih teknologi yang digunakan oleh operator seluler Anda. Bila Anda tak " +"yakin, tanyakan ke operator Anda." -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "%d tahun lalu" +#: ../src/connection-editor/page-mobile.c:682 +msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" +msgstr "" +"Operator saya memakai teknologi berbasis _GSM (mis. GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Penambahan koneksi gagal" +#: ../src/connection-editor/page-mobile.c:689 +msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" +msgstr "Operator saya memakai teknologi berbasis C_DMA (mis. 1xRTT, EVDO)" -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Galat saat menyimpan sambungan" +#: ../src/connection-editor/page-ppp.c:134 +msgid "EAP" +msgstr "EAP" -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "Properti '%s' / '%s' tak valid: %d" +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 +msgid "PAP" +msgstr "PAP" -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:642 -msgid "An unknown error occurred." -msgstr "Terjadi galat tak dikenal." +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:686 -msgid "Error initializing editor" -msgstr "Galat menginisialisasi penyunting" +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:703 -#: ../src/connection-editor/nm-connection-list.c:870 -msgid "The connection editor dialog could not be initialized due to an unknown error." -msgstr "Dialog penyunting sambungan tidak dapat diinisialisasi karena galat yang tak dikenal." +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Tak dapat membuat sambungan baru" +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "tak ada" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Tak dapat menyunting sambungan baru" +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Menyunting metoda otentikasi PPP bagi %s" -#: ../src/connection-editor/nm-connection-list.c:717 -msgid "Could not edit connection" -msgstr "Tak dapat menyunting sambungan" +#: ../src/connection-editor/page-ppp.c:282 +msgid "PPP Settings" +msgstr "Pengaturan PPP" -#: ../src/connection-editor/nm-connection-list.c:747 -msgid "Connection delete failed" -msgstr "Penghapusan sambungan gagal" +#: ../src/connection-editor/page-ppp.c:284 +msgid "Could not load PPP user interface." +msgstr "Tak dapat memuat antar muka pengguna PPP." + +#: ../src/connection-editor/page-vpn.c:113 +msgid "Could not load VPN user interface." +msgstr "Tak dapat memuat antar muka pengguna VPN." -#: ../src/connection-editor/nm-connection-list.c:779 +#: ../src/connection-editor/page-vpn.c:128 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Anda yakin ingin menghapus sambungan %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "Tak dapat menemukan layanan plugin VPN bagi '%s'." -#: ../src/connection-editor/nm-connection-list.c:914 -#: ../src/connection-editor/vpn-helpers.c:227 -msgid "Cannot import VPN connection" -msgstr "Tak dapat mengimpor sambungan VPN" +#: ../src/connection-editor/page-vpn.c:222 +#: ../src/connection-editor/page-vpn.c:305 +#, c-format +msgid "VPN connection %d" +msgstr "Sambungan VPN %d" -#: ../src/connection-editor/nm-connection-list.c:916 +#: ../src/connection-editor/page-vpn.c:248 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -1951,112 +2132,135 @@ "\n" "Galat: tak ada tipe layanan VPN." -#: ../src/connection-editor/nm-connection-list.c:929 -msgid "Could not edit imported connection" -msgstr "Tak dapat menyunting sambungan yang diimpor" +#: ../src/connection-editor/page-vpn.c:273 +msgid "Choose a VPN Connection Type" +msgstr "Pilih Jenis Sambungan VPN" -#: ../src/connection-editor/nm-connection-list.c:1099 -msgid "Name" -msgstr "Nama" +#: ../src/connection-editor/page-vpn.c:274 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Pilih tipe VPN yang ingin Anda pakai untuk sambungan baru. Bila tipe " +"sambungan VPN yang ingin Anda buat tidak muncul pada daftar, mungkin Anda " +"belum memasang plugin VPN yang tepat." + +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "baku" -#: ../src/connection-editor/nm-connection-list.c:1111 -msgid "Last Used" -msgstr "Terakhir Dipakai" +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1227 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "Plugin VPN tak tersedia. Silakan pasang satu untuk mengaktifkan tombol ini." +#: ../src/connection-editor/page-wifi.c:464 +msgid "Could not load Wi-Fi user interface." +msgstr "Tak bisa memuat antar muka pengguna Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1238 -msgid "_Edit" -msgstr "_Sunting" +#: ../src/connection-editor/page-wifi.c:669 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Koneksi Wi-Fi %d" -#: ../src/connection-editor/nm-connection-list.c:1239 -msgid "Edit the selected connection" -msgstr "Sunting sambungan terpilih" +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Nihil" -#: ../src/connection-editor/nm-connection-list.c:1240 -msgid "_Edit..." -msgstr "_Sunting..." +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "Kunci WEP 40/128-bit (Heksa atau ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1241 -msgid "Authenticate to edit the selected connection" -msgstr "Lakukan otentikasi untuk menyunting sambungan yang dipilih" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "Frasa-kunci WEP 128-bit" -#: ../src/connection-editor/nm-connection-list.c:1256 -msgid "_Delete" -msgstr "_Hapus" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "WEP Dinamik (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1257 -msgid "Delete the selected connection" -msgstr "Hapus sambungan terpilih." +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "WPA & WPA2 Personal" -#: ../src/connection-editor/nm-connection-list.c:1258 -msgid "_Delete..." -msgstr "_Hapus..." +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA & WPA2 Enterprise" -#: ../src/connection-editor/nm-connection-list.c:1259 -msgid "Authenticate to delete the selected connection" -msgstr "Lakukan otentikasi untuk menghapus sambungan yang dipilih" +#: ../src/connection-editor/page-wifi-security.c:395 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"Tak bisa memuat antar muka pengguna keamanan Wi-Fi; kurang pengaturan Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1538 -msgid "Error creating connection" -msgstr "Galat saat membuat sambungan" +#: ../src/connection-editor/page-wifi-security.c:405 +msgid "Wi-Fi Security" +msgstr "Kemananan Wi-Fi" -#: ../src/connection-editor/nm-connection-list.c:1539 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Tidak tahu bagaimana membuat sambungan '%s'" +#: ../src/connection-editor/page-wifi-security.c:407 +msgid "Could not load Wi-Fi security user interface." +msgstr "Tak bisa memuat antar muka pengguna keamanan Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1594 -#: ../src/connection-editor/nm-connection-list.c:1606 -msgid "Error editing connection" -msgstr "Galat saat menyunting sambungan" +#: ../src/connection-editor/page-wimax.c:160 +msgid "Could not load WiMAX user interface." +msgstr "Tak bisa memuat antar muka pengguna WiMAX." -#: ../src/connection-editor/nm-connection-list.c:1595 +#: ../src/connection-editor/page-wimax.c:289 #, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Tidak tahu bagaimana menyunting sambungan '%s'" +msgid "WiMAX connection %d" +msgstr "Koneksi WiMAX %d" -#: ../src/connection-editor/nm-connection-list.c:1607 -#, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Tidak menemukan koneksi dengan UUID '%s'" +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Tak dapat mengimpor sambungan VPN" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" -"The file '%s' could not be read or does not contain recognized VPN connection information\n" +"The file '%s' could not be read or does not contain recognized VPN " +"connection information\n" "\n" "Error: %s." msgstr "" -"Berkas '%s' tidak dapat dibaca atau tidak berisi informasi sambungan VPN yang dikenali\n" +"Berkas '%s' tidak dapat dibaca atau tidak berisi informasi sambungan VPN " +"yang dikenali\n" "\n" "Galat: %s." -#: ../src/connection-editor/vpn-helpers.c:261 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Pilih berkas untuk diimpor" -#: ../src/connection-editor/vpn-helpers.c:309 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Berkas bernama \"%s\" sudah ada." -#: ../src/connection-editor/vpn-helpers.c:311 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "_Timpa" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" -msgstr "Apakah Anda ingin menggantikan %s dengan sambungan VPN yang sedang Anda simpan?" +msgstr "" +"Apakah Anda ingin menggantikan %s dengan sambungan VPN yang sedang Anda " +"simpan?" -#: ../src/connection-editor/vpn-helpers.c:349 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "Tidak dapat mengekspor sambungan VPN" -#: ../src/connection-editor/vpn-helpers.c:351 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2067,449 +2271,556 @@ "\n" "Galat: %s." -#: ../src/connection-editor/vpn-helpers.c:385 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Ekspor sambungan VPN..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Gagal membuat koneksi PAN: %s" - -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Telepon Anda kini siap dipakai!" - -#: ../src/gnome-bluetooth/bt-widget.c:249 -#, c-format -msgid "%s Network" -msgstr "Jaringan %s" - -#: ../src/gnome-bluetooth/bt-widget.c:375 -#, c-format -msgid "Error: %s" -msgstr "Galat: %s" - -#: ../src/gnome-bluetooth/bt-widget.c:488 -#, c-format -msgid "Failed to create DUN connection: %s" -msgstr "Gagal membuat koneksi DUN: %s" - -#: ../src/gnome-bluetooth/bt-widget.c:511 -msgid "Mobile wizard was canceled" -msgstr "Wisaya telepon seluler dibatalkan" - -#: ../src/gnome-bluetooth/bt-widget.c:520 -msgid "Unknown phone device type (not GSM or CDMA)" -msgstr "Tipe perangkat telepon tak dikenal (bukan GSM atau CDMA)" - -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 -msgid "failed to connect to the phone." -msgstr "gagal menyambung ke telepon." - -#: ../src/gnome-bluetooth/bt-widget.c:753 -msgid "unexpectedly disconnected from the phone." -msgstr "tak terduga terputus dari telepon." - -#: ../src/gnome-bluetooth/bt-widget.c:762 -msgid "timed out detecting phone details." -msgstr "kehabisan waktu mendeteksi rincian telepon." - -#: ../src/gnome-bluetooth/bt-widget.c:774 -msgid "Detecting phone configuration..." -msgstr "Mendeteksi konfigurasi telepon..." - -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "tak dapat menemukan perangkat Bluetooth." - -#: ../src/gnome-bluetooth/bt-widget.c:975 -msgid "The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection." -msgstr "Adaptor Bluetooth bawaan mesti diaktifkan sebelum menata suatu koneksi Dial-Up-Networking." +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"Aplet NetworkManager tidak dapat menemukan beberapa sumberdaya yang " +"diperlukan (berkas .ui tidak ditemukan)." -#: ../src/gnome-bluetooth/bt-widget.c:1007 +#: ../src/gnome-bluetooth/bt-widget.c:321 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "Konfigurasi Bluetooth tak mungkin (gagal menyambung ke D-Bus: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1017 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Konfigurasi Bluetooth tak mungkin (gagal membuat proksi D-Bus)." +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"Konfigurasi Bluetooth tak mungkin (gagal menyambung ke D-Bus: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:1026 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "Konfigurasi Bluetooth tak mungkin (kesalahan saat mencari NetworkManager: %s)." +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"Konfigurasi Bluetooth tak mungkin (kesalahan saat mencari NetworkManager: " +"(%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:1093 +#: ../src/gnome-bluetooth/bt-widget.c:445 msgid "Use your mobile phone as a network device (PAN/NAP)" msgstr "Gunakan telepon seluler Anda sebagai perangkat jaringan (PAN/NAP)" -#: ../src/gnome-bluetooth/bt-widget.c:1102 +#: ../src/gnome-bluetooth/bt-widget.c:454 msgid "Access the Internet using your mobile phone (DUN)" msgstr "Akses Internet menggunakan telepon seluler Anda (DUN)" -#: ../src/main.c:73 -msgid "Usage:" -msgstr "Penggunaan:" - -#: ../src/main.c:75 -msgid "This program is a component of NetworkManager (http://projects.gnome.org/NetworkManager)." -msgstr "Program ini adalah komponen dari NetworkManager (http://projects.gnome.org/NetworkManager)." - -#: ../src/main.c:76 -msgid "It is not intended for command-line interaction but instead runs in the GNOME desktop environment." -msgstr "Ini tidak ditujukan bagi interaksi baris perintah, sebagai gantinya, jalankan ini di lingkungan desktop GNOME." - -#: ../src/mb-menu-item.c:57 -msgid "EVDO" -msgstr "EVDO" - -#: ../src/mb-menu-item.c:61 -msgid "GPRS" -msgstr "GPRS" - -#: ../src/mb-menu-item.c:63 -msgid "EDGE" -msgstr "EDGE" - -#: ../src/mb-menu-item.c:65 -msgid "UMTS" -msgstr "UMTS" +#: ../src/gnome-bluetooth/nma-bt-device.c:318 +#, c-format +msgid "Error: %s" +msgstr "Galat: %s" -#: ../src/mb-menu-item.c:67 -msgid "HSDPA" -msgstr "HSDPA" +#: ../src/gnome-bluetooth/nma-bt-device.c:425 +#, c-format +msgid "Failed to create DUN connection: %s" +msgstr "Gagal membuat koneksi DUN: %s" -#: ../src/mb-menu-item.c:69 -msgid "HSUPA" -msgstr "HSUPA" +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Telepon Anda kini siap dipakai!" -#: ../src/mb-menu-item.c:71 -msgid "HSPA" -msgstr "HSPA" +#: ../src/gnome-bluetooth/nma-bt-device.c:450 +msgid "Mobile wizard was canceled" +msgstr "Wisaya telepon seluler dibatalkan" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" +#: ../src/gnome-bluetooth/nma-bt-device.c:459 +msgid "Unknown phone device type (not GSM or CDMA)" +msgstr "Tipe perangkat telepon tak dikenal (bukan GSM atau CDMA)" -#: ../src/mb-menu-item.c:109 -msgid "not enabled" -msgstr "tak diaktifkan" +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "tipe modem tak dikenal." -#: ../src/mb-menu-item.c:115 -msgid "not registered" -msgstr "tak terdaftar" +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 +msgid "failed to connect to the phone." +msgstr "gagal menyambung ke telepon." -#: ../src/mb-menu-item.c:133 -#, c-format -msgid "Home network (%s)" -msgstr "Jaringan rumah (%s)" +#: ../src/gnome-bluetooth/nma-bt-device.c:676 +msgid "unexpectedly disconnected from the phone." +msgstr "tak terduga terputus dari telepon." -#: ../src/mb-menu-item.c:135 -#, c-format -msgid "Home network" -msgstr "Jaringan rumah" +#: ../src/gnome-bluetooth/nma-bt-device.c:686 +msgid "timed out detecting phone details." +msgstr "kehabisan waktu mendeteksi rincian telepon." -#: ../src/mb-menu-item.c:143 -msgid "searching" -msgstr "sedang mencari" +#: ../src/gnome-bluetooth/nma-bt-device.c:697 +msgid "Detecting phone configuration..." +msgstr "Mendeteksi konfigurasi telepon..." -#: ../src/mb-menu-item.c:146 -msgid "registration denied" -msgstr "registrasi ditolak" +#: ../src/gnome-bluetooth/nma-bt-device.c:794 +msgid "" +"The default Bluetooth adapter must be enabled before setting up a Dial-Up-" +"Networking connection." +msgstr "" +"Adaptor Bluetooth bawaan mesti diaktifkan sebelum menata suatu koneksi Dial-" +"Up-Networking." -#: ../src/mb-menu-item.c:151 -#: ../src/mb-menu-item.c:157 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "%s (%s roaming)" -msgstr "%s (%s roaming)" +msgid "Failed to create PAN connection: %s" +msgstr "Gagal membuat koneksi PAN: %s" -#: ../src/mb-menu-item.c:153 -#: ../src/mb-menu-item.c:159 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "%s (roaming)" -msgstr "%s (roaming)" +msgid "%s Network" +msgstr "Jaringan %s" -#: ../src/mb-menu-item.c:162 -#, c-format -msgid "Roaming network (%s)" -msgstr "Jaringan roaming (%s)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Otomatis membuka kunci perangkat ini" -#: ../src/mb-menu-item.c:164 -#, c-format -msgid "Roaming network" -msgstr "Jaringan roaming" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "B_uka kunci" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Informasi Sambungan" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Sambungan Jaringan Aktif" -#: ../src/utils/mobile-wizard.c:198 -msgid "Your mobile broadband connection is configured with the following settings:" +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 +msgid "" +"Your mobile broadband connection is configured with the following settings:" msgstr "Sambungan data seluler Anda ditata dengan tatanan berikut:" #. Device -#: ../src/utils/mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Perangkat Anda:" #. Provider -#: ../src/utils/mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Operator Anda:" #. Plan and APN -#: ../src/utils/mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Jenis Langganan:" -#: ../src/utils/mobile-wizard.c:252 -msgid "A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose \"Network Connections\" from the System >> Preferences menu." -msgstr "Sambungan kini akan dibuat ke operator data seluler Anda memakai tatanan yang Anda pilih. Bila sambungan gagal atau Anda tak dapat mengakses sumber daya jaringan, periksa ulang tatanan Anda. Untuk mengubah tatanan sambungan data seluler Anda, pilih \"Sambungan Jaringan\" dari menu Sistem >> Preferensi." +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 +msgid "" +"A connection will now be made to your mobile broadband provider using the " +"settings you selected. If the connection fails or you cannot access network " +"resources, double-check your settings. To modify your mobile broadband " +"connection settings, choose \"Network Connections\" from the System >> " +"Preferences menu." +msgstr "" +"Sambungan kini akan dibuat ke operator data seluler Anda memakai tatanan " +"yang Anda pilih. Bila sambungan gagal atau Anda tak dapat mengakses sumber " +"daya jaringan, periksa ulang tatanan Anda. Untuk mengubah tatanan sambungan " +"data seluler Anda, pilih \"Sambungan Jaringan\" dari menu Sistem >> " +"Preferensi." -#: ../src/utils/mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Konfirmasikan Tatanan Data Seluler" -#: ../src/utils/mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Tak terdaftar" -#: ../src/utils/mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "Pilih jeni_s langganan Anda:" -#: ../src/utils/mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "_APN (Access Point Name) yang dipilih:" -#: ../src/utils/mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" -"Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity.\n" +"Warning: Selecting an incorrect plan may result in billing issues for your " +"broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"Peringatan: Memilih tipe langganan yang salah dapat menyebabkan masalah tagihan pada akun seluler Anda atau mungkin menghalangi sambungan.\n" +"Peringatan: Memilih tipe langganan yang salah dapat menyebabkan masalah " +"tagihan pada akun seluler Anda atau mungkin menghalangi sambungan.\n" "\n" -"Bila Anda tak yakin tentang tipe langganan Anda silahkan tanya ke operator tentang APN Anda." +"Bila Anda tak yakin tentang tipe langganan Anda silahkan tanya ke operator " +"tentang APN Anda." -#: ../src/utils/mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Pilih Jenis Langganan Anda" -#: ../src/utils/mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Tipe langgananku tak terdaftar..." -#: ../src/utils/mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "Pi_lih operator Anda dari daftar:" -#: ../src/utils/mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Operator" -#: ../src/utils/mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Tak menemukan operatorku dan ingin memasukkannya secara _manual:" -#: ../src/utils/mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Operator:" -#: ../src/utils/mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Operator saya memakai teknologi GSM (GPRS, EDGE, UMTS, HSDPA)" -#: ../src/utils/mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Operator saya memakai teknologi CDMA (1xRTT, EVDO)" -#: ../src/utils/mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Pilih Operator Anda" -#: ../src/utils/mobile-wizard.c:1080 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Daftar Negara atau Wilayah:" -#: ../src/utils/mobile-wizard.c:1092 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "Negara atau wilayah" -#: ../src/utils/mobile-wizard.c:1099 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "Negaraku tak terdaftar" -#: ../src/utils/mobile-wizard.c:1145 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Pilih Negara atau Wilayah Operator Anda" -#: ../src/utils/mobile-wizard.c:1199 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Perangkat GSM terpasang" -#: ../src/utils/mobile-wizard.c:1202 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Perangkat CDMA terpasang" -#: ../src/utils/mobile-wizard.c:1374 -msgid "This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network." -msgstr "Asisten ini membantu Anda menyiapkan dengan mudah sambungan data seluler ke jaringan 3G." +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 +msgid "" +"This assistant helps you easily set up a mobile broadband connection to a " +"cellular (3G) network." +msgstr "" +"Asisten ini membantu Anda menyiapkan dengan mudah sambungan data seluler ke " +"jaringan 3G." -#: ../src/utils/mobile-wizard.c:1379 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Anda akan memerlukan informasi berikut:" -#: ../src/utils/mobile-wizard.c:1394 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "Nama operator seluler Anda" -#: ../src/utils/mobile-wizard.c:1400 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "Nama tipe langganan seluler Anda" -#: ../src/utils/mobile-wizard.c:1406 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" -msgstr "(dalam beberapa kasus) APN (Access Point Name) tipe langganan data seluler Anda" +msgstr "" +"(dalam beberapa kasus) APN (Access Point Name) tipe langganan data seluler " +"Anda" -#: ../src/utils/mobile-wizard.c:1433 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Buat sambungan bagi perangka_t data seluler ini:" -#: ../src/utils/mobile-wizard.c:1448 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Sebarang perangkat" -#: ../src/utils/mobile-wizard.c:1461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Siapkan Sambungan Data Seluler" -#: ../src/utils/mobile-wizard.c:1625 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Sambungan Data Seluler Baru" -#: ../src/utils/nmn-mobile-providers.c:78 -msgid "United Kingdom" -msgstr "Inggris Raya" - -#: ../src/utils/nmn-mobile-providers.c:510 -msgid "Default" -msgstr "Baku" - -#: ../src/wired-dialog.c:91 -#: ../src/wired-dialog.c:99 -msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." -msgstr "Aplet NetworkManager tidak dapat menemukan beberapa sumberdaya yang diperlukan (berkas .ui tidak ditemukan)." - -#: ../src/wireless-dialog.c:458 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "Baru..." -#: ../src/wireless-dialog.c:1078 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "_Buat" -#: ../src/wireless-dialog.c:1162 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 +#, c-format +msgid "" +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." +msgstr "" +"Sandi atau kunci enkripsi diperlukan untuk mengakses jaringan Wi-Fi '%s'." + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" +msgstr "Otentikasi Jaringan Wi-Fi Diperlukan" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" +msgstr "Otentikasi dibutuhkan oleh jaringan Wi-Fi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" +msgstr "Buat Jaringan Wi-Fi Baru" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" +msgstr "Jaringan Wi-Fi baru" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "Masukkan sebuah nama untuk jaringan Wi-Fi yang ingin Anda buat." + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" +msgstr "Sambungkan ke Jaringan Wi-Fi Tersembunyi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" +msgstr "Jaringan Wi-Fi tersembunyi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 +msgid "" +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." +msgstr "" +"Masukkan nama dan rincian keamanan dari jaringan Wi-Fi tersembunyi yang " +"ingin Anda sambungkan." + +#: ../src/libnm-gtk/wifi.ui.h:2 +msgid "Wi-Fi _security:" +msgstr "Kemananan _Wi-Fi:" + +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "Sambunga_n:" + +#: ../src/libnm-gtk/wifi.ui.h:5 +msgid "Wi-Fi _adapter:" +msgstr "_Adaptor Wi-Fi:" + +#: ../src/main.c:73 +msgid "Usage:" +msgstr "Penggunaan:" + +#: ../src/main.c:75 +msgid "" +"This program is a component of NetworkManager (http://projects.gnome.org/" +"NetworkManager)." +msgstr "" +"Program ini adalah komponen dari NetworkManager (http://projects.gnome.org/" +"NetworkManager)." + +#: ../src/main.c:76 +msgid "" +"It is not intended for command-line interaction but instead runs in the " +"GNOME desktop environment." +msgstr "" +"Ini tidak ditujukan bagi interaksi baris perintah, sebagai gantinya, " +"jalankan ini di lingkungan desktop GNOME." + +#: ../src/mb-menu-item.c:57 +msgid "EVDO" +msgstr "EVDO" + +#: ../src/mb-menu-item.c:61 +msgid "GPRS" +msgstr "GPRS" + +#: ../src/mb-menu-item.c:63 +msgid "EDGE" +msgstr "EDGE" + +#: ../src/mb-menu-item.c:65 +msgid "UMTS" +msgstr "UMTS" + +#: ../src/mb-menu-item.c:67 +msgid "HSDPA" +msgstr "HSDPA" + +#: ../src/mb-menu-item.c:69 +msgid "HSUPA" +msgstr "HSUPA" + +#: ../src/mb-menu-item.c:71 +msgid "HSPA" +msgstr "HSPA" + +#: ../src/mb-menu-item.c:109 +msgid "not enabled" +msgstr "tak diaktifkan" + +#: ../src/mb-menu-item.c:115 +msgid "not registered" +msgstr "tak terdaftar" + +#: ../src/mb-menu-item.c:133 +#, c-format +msgid "Home network (%s)" +msgstr "Jaringan rumah (%s)" + +#: ../src/mb-menu-item.c:135 #, c-format -msgid "Passwords or encryption keys are required to access the wireless network '%s'." -msgstr "Sandi atau kunci enkripsi diperlukan untuk mengakses jaringan nirkabel '%s'." +msgid "Home network" +msgstr "Jaringan rumah" -#: ../src/wireless-dialog.c:1164 -msgid "Wireless Network Authentication Required" -msgstr "Otentikasi Jaringan Nirkabel Diperlukan" +#: ../src/mb-menu-item.c:143 +msgid "searching" +msgstr "sedang mencari" -#: ../src/wireless-dialog.c:1166 -msgid "Authentication required by wireless network" -msgstr "Otentikasi dibutuhkan oleh jaringan nirkabel" +#: ../src/mb-menu-item.c:146 +msgid "registration denied" +msgstr "registrasi ditolak" -#: ../src/wireless-dialog.c:1171 -msgid "Create New Wireless Network" -msgstr "Buat Jaringan Nirkabel Baru" +#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 +#, c-format +msgid "%s (%s roaming)" +msgstr "%s (%s roaming)" -#: ../src/wireless-dialog.c:1173 -msgid "New wireless network" -msgstr "Jaringan nirkabel baru" +#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 +#, c-format +msgid "%s (roaming)" +msgstr "%s (roaming)" -#: ../src/wireless-dialog.c:1174 -msgid "Enter a name for the wireless network you wish to create." -msgstr "Masukkan sebuah nama untuk jaringan nirkabel yang ingin Anda buat." +#: ../src/mb-menu-item.c:162 +#, c-format +msgid "Roaming network (%s)" +msgstr "Jaringan roaming (%s)" -#: ../src/wireless-dialog.c:1176 -msgid "Connect to Hidden Wireless Network" -msgstr "Sambungkan ke Jaringan Nirkabel Tersembunyi" +#: ../src/mb-menu-item.c:164 +#, c-format +msgid "Roaming network" +msgstr "Jaringan roaming" -#: ../src/wireless-dialog.c:1178 -msgid "Hidden wireless network" -msgstr "Jaringan nirkabel tersembunyi" +#: ../src/utils/nmn-mobile-providers.c:531 +msgid "Default" +msgstr "Baku" -#: ../src/wireless-dialog.c:1179 -msgid "Enter the name and security details of the hidden wireless network you wish to connect to." -msgstr "Masukkan nama dan rincian keamanan dari jaringan nirkabel tersembunyi yang ingin Anda sambungkan." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "Koneksi %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Tidak ada sertifikat dari Certificate Authority yang dipilih" -#: ../src/wireless-security/eap-method.c:280 -msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue wireless networks. Would you like to choose a Certificate Authority certificate?" -msgstr "Tidak menggunakan sertifikat dari Certificate Authority (CA) dapat menyebabkan sambungan ke jaringan nirkabel liar yang tak aman. Apakah Anda ingin memilih sebuah sertifikat Certificate Authority?" +#: ../src/wireless-security/eap-method.c:276 +msgid "" +"Not using a Certificate Authority (CA) certificate can result in connections " +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" +msgstr "" +"Tidak menggunakan sertifikat dari Certificate Authority (CA) dapat " +"menyebabkan sambungan ke jaringan Wi-Fi liar yang tak aman. Apakah Anda " +"ingin memilih sebuah sertifikat Certificate Authority?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Pilih Sertifikat CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Kunci privat DER, PEM, atau PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Sertifikat DER atau PEM (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:372 -msgid "MD5" -msgstr "MD5" - +#: ../src/wireless-security/eap-method-fast.c:261 #: ../src/wireless-security/eap-method-peap.c:280 msgid "GTC" msgstr "GTC" -#: ../src/wireless-security/eap-method-peap.c:350 -#: ../src/wireless-security/eap-method-tls.c:416 -#: ../src/wireless-security/eap-method-ttls.c:350 -msgid "Choose a Certificate Authority certificate..." -msgstr "Pilih sebuah sertifikat Certificate Authority..." +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Pilih suatu berkas PAC..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "Berkas PAC (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Semua berkas" + +#: ../src/wireless-security/eap-method-fast.ui.h:2 +msgid "Anonymous" +msgstr "Anonim" + +#: ../src/wireless-security/eap-method-fast.ui.h:3 +msgid "Authenticated" +msgstr "Terotentikasi" + +#: ../src/wireless-security/eap-method-fast.ui.h:4 +msgid "Both" +msgstr "Keduanya" -#: ../src/wireless-security/eap-method-peap.ui.h:2 +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 #: ../src/wireless-security/eap-method-ttls.ui.h:2 msgid "Anony_mous identity:" msgstr "Identitas anoni_m:" -#: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:3 -msgid "C_A certificate:" -msgstr "Sertifikat C_A:" +#: ../src/wireless-security/eap-method-fast.ui.h:6 +msgid "PAC _file:" +msgstr "_Berkas PAC:" -#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 -msgid "I_nner authentication:" -msgstr "Ote_ntikasi dalam:" +msgid "_Inner authentication:" +msgstr "Otent_ikasi dalam:" -#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "Otomatis ijinkan pro_visi PAC" + +#: ../src/wireless-security/eap-method-peap.c:263 +#: ../src/wireless-security/wireless-security.c:382 +msgid "MD5" +msgstr "MD5" + +#: ../src/wireless-security/eap-method-peap.c:350 +#: ../src/wireless-security/eap-method-tls.c:416 +#: ../src/wireless-security/eap-method-ttls.c:350 +msgid "Choose a Certificate Authority certificate..." +msgstr "Pilih sebuah sertifikat Certificate Authority..." + +#: ../src/wireless-security/eap-method-peap.ui.h:3 msgid "Version 0" msgstr "Versi 0" -#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:4 msgid "Version 1" msgstr "Versi 1" +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-ttls.ui.h:3 +msgid "C_A certificate:" +msgstr "Sertifikat C_A:" + #: ../src/wireless-security/eap-method-peap.ui.h:8 -msgid "_PEAP version:" +msgid "PEAP _version:" msgstr "Versi _PEAP:" -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "Tanya_kan sandi ini setiap saat" @@ -2519,11 +2830,15 @@ #: ../src/wireless-security/eap-method-tls.c:249 msgid "" -"The selected private key does not appear to be protected by a password. This could allow your security credentials to be compromised. Please select a password-protected private key.\n" +"The selected private key does not appear to be protected by a password. " +"This could allow your security credentials to be compromised. Please select " +"a password-protected private key.\n" "\n" "(You can password-protect your private key with openssl)" msgstr "" -"Kunci pribadi yang dipilih sepertinya tidak dilindungi oleh sandi. Ini dapat mengganggu keamanan Anda. Silakan pilih kunci pribadi yang diamankan oleh sandi.\n" +"Kunci pribadi yang dipilih sepertinya tidak dilindungi oleh sandi. Ini dapat " +"mengganggu keamanan Anda. Silakan pilih kunci pribadi yang diamankan oleh " +"sandi.\n" "\n" "(Anda dapat melindungi kunci pribadi Anda dengan openssl)" @@ -2535,11 +2850,15 @@ msgid "Choose your private key..." msgstr "Pilih kunci privat Anda..." -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "I_dentitas:" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "Sertifikat pengg_una:" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "_Kunci privat:" @@ -2547,10 +2866,6 @@ msgid "_Private key password:" msgstr "Sandi kunci _pribadi:" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "Sertifikat pengg_una:" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "Jangan peringatkan saya lagi" @@ -2563,57 +2878,61 @@ msgid "Yes" msgstr "Ya" -#: ../src/wireless-security/wireless-security.c:384 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:408 +#: ../src/wireless-security/wireless-security.c:418 +msgid "FAST" +msgstr "FAST" + +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "Tunneled TLS" -#: ../src/wireless-security/wireless-security.c:419 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Protected EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 #: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 -msgid "_Authentication:" -msgstr "Otentik_asi:" +msgid "Au_thentication:" +msgstr "O_tentikasi:" #: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "Sistem Terbuka" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "Kunci Bersama" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (Bawaan)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:5 -msgid "Open System" -msgstr "Sistem Terbuka" - -#: ../src/wireless-security/ws-wep-key.ui.h:6 -msgid "Shared Key" -msgstr "Kunci Bersama" - #: ../src/wireless-security/ws-wep-key.ui.h:7 +msgid "_Key:" +msgstr "_Kunci:" + +#: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "Tampilkan _kunci" -#: ../src/wireless-security/ws-wep-key.ui.h:8 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "Inde_ks WEP:" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "_Kunci:" - diff -Nru network-manager-applet-0.9.4.1/po/it.po network-manager-applet-0.9.6.2+git201210311320.2620/po/it.po --- network-manager-applet-0.9.4.1/po/it.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/it.po 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ # Italian translation for network-manager-Applet -# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 the NetworkManager-Applet CopyRight Holder +# Copyright (C) 2004-2010, 2011, 2012 the NetworkManager-Applet CopyRight Holder # This file is distributed under the same license as the NetworkManager-Applet package. # # Note: @@ -15,19 +15,18 @@ msgid "" msgstr "" "Project-Id-Version: networkmanager-applet\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" -"product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-09 22:26+0000\n" -"PO-Revision-Date: 2012-03-12 22:06+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-08-21 22:43+0200\n" +"PO-Revision-Date: 2012-08-20 18:46+0200\n" "Last-Translator: Milo Casagrande \n" "Language-Team: Italian \n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Launchpad-Export-Date: 2012-03-09 08:20+0000\n" "X-Generator: Launchpad (build 14914)\n" -"Language: it\n" #: ../nm-applet.desktop.in.h:1 msgid "Network" @@ -37,1025 +36,1077 @@ msgid "Manage your network connections" msgstr "Gestisce le connessioni di rete" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Connessioni di rete" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Gestisce e cambia le impostazioni della connessione di rete" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Disabilita le notifiche di connessione" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" "Impostare a VERO per disabilitare le notifiche quando si effettua la " "connessione ad una rete." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Disabilita le notifiche di disconnessione" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "" "Impostare a VERO per disabilitare le notifiche quando si effettua la " "disconnessione da una rete." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Disabilita le notifiche VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"Impostare a VERO per disabilitare le notifiche quando si effettua la " +"connessione/disconnessione da una VPN." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Sopprime le notifiche di reti disponibili" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when Wi-Fi networks are available." msgstr "" "Impostare a VERO per disabilitare le notifiche quando sono disponibili reti " "senza fili." # [NdT] non ho idea di cosa indichi... dubito si tratti di un francobollo -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Marcatura" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "Usato per determinare se le impostazioni devono essere migrate alla nuova " "versione." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Disabilita la creazione di WiFi" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" "Impostare a VERO per disabilitare la creazione di reti ad-hoc quando si usa " "l'applet." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Connessioni di rete" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ignora certificato CA" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Gestisce e cambia le impostazioni della connessione di rete" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Impostare a VERO per disabilitare gli avvisi riguardo ai certificati CA " +"nell'autenticazione EAP." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Disponibile" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Impostare a VERO per disabilitare gli avvisi riguardo ai certificati CA " +"nella fase 2 dell'autenticazione EAP." -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Attualmente connessi a «%s»." +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "Autenticazione 802.1X" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Connessione stabilita" +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_Nome rete:" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Attualmente connessi alla rete a banda larga mobile." +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "Aggiunta/Attivazione della connessione non riuscita" + +#: ../src/applet.c:514 ../src/applet.c:558 ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Errore sconosciuto" + +#: ../src/applet.c:517 ../src/applet.c:587 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Connessione non riuscita" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "Disconnessione dispositivo non riuscita" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "Disconnessione non riuscita" + +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "Attivazione della connessione non riuscita" + +#: ../src/applet.c:948 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "Non mostrare più questo messaggio" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:1037 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Preparazione della connessione a banda larga mobile «%s»..." +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"La connessione VPN «%s» non è riuscita perché la connessione di rete è stata " +"interrotta." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1040 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Configurazione della connessione a banda larga mobile «%s»..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"La connessione VPN «%s» non è riuscita perché il servizio VPN è stato " +"fermato improvvisamente." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1043 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." msgstr "" -"Richiesta autenticazione utente per la connessione a banda larga mobile " -"«%s»..." +"\n" +"La connessione VPN «%s» non è riuscita perché il servizio VPN ha fornito una " +"configurazione non valida." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:1046 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Richiesta di un indirizzo di rete per «%s»..." +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"La connessione VPN «%s» non è riuscita perché il tentativo di connessione ha " +"esaurito il tempo a disposizione." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1049 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "Connessione a banda larga mobile «%s» attiva" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"La connessione VPN «%s» non è riuscita perché il servizio VPN non è partito " +"in tempo." -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1052 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"La connessione VPN «%s» non è riuscita perché il servizio VPN non è partito." -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet.c:1055 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Banda larga mobile (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"La connessione VPN «%s» non è riuscita perché non ci sono informazioni " +"segrete VPN valide." -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 -msgid "Mobile Broadband" -msgstr "Banda larga mobile" +#: ../src/applet.c:1058 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"La connessione VPN «%s» non è riuscita perché le informazioni segrete VPN " +"non sono valide." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Nuova connessione mobile a banda larga (CDMA)..." +#: ../src/applet.c:1065 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"La connessione VPN «%s» non è riuscita." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Attualmente connessi alla rete CDMA." +#: ../src/applet.c:1083 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"La connessione VPN «%s» si è chiusa perché il collegamento di rete è stato " +"interrotto." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1086 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Connessione a banda larga mobile «%s» attiva: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"La connessione VPN «%s» si è chiusa perché il servizio VPN è stato fermato." -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "roaming" +# [NdT] certo che l'originare era proprio brutto +#: ../src/applet.c:1092 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"La connessione VPN «%s» si è chiusa." -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "Rete CDMA" +#: ../src/applet.c:1122 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"Connessione VPN stabilita con successo.\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Attualmente registrati sulla rete di casa." +#: ../src/applet.c:1124 +msgid "VPN connection has been successfully established.\n" +msgstr "Connessione VPN stabilita con successo.\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Attualmente registrati su una rete in roaming." +#: ../src/applet.c:1126 +msgid "VPN Login Message" +msgstr "Messaggio di accesso VPN" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1132 ../src/applet.c:1140 ../src/applet.c:1190 +msgid "VPN Connection Failed" +msgstr "Connessione VPN non riuscita" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Nuova connessione a banda larga mobile (GSM)..." +#: ../src/applet.c:1197 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"La connessione VPN «%s» non è riuscita perché il servizio VPN non è " +"partito.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Attualmente connessi alla rete GSM." +#: ../src/applet.c:1200 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"L'apertura della connessione VPN «%s» non è riuscita.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "Richiesto codice PIN" +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "dispositivo non pronto (manca il firmware)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "È necessario il codice PIN per il dispositivo a banda larga mobile" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "dispositivo non pronto" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "Codice PIN per la SIM card «%s» su «%s»" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "disconnessi" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "Codice PIN errato; contattare il provider." +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "Disconnetti" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "Codice PUK errato; contattare il provider." +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "dispositivo non gestito" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "Invio del codice di sblocco..." +# [NdT] qui ho tradotto appositamente device con dispositivo +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "Nessun dispositivo di rete disponibile" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "Richiesto codice PIN della SIM" +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "Connessioni _VPN" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "Richiesta codice PIN della SIM" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "_Configura VPN..." -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "" -"Il dispositivo a banda larga mobile «%s» richiede il codice PIN della SIM " -"prima di poter essere usato." +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "_Disconnetti VPN" -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "Codice PIN:" - -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "Mostra codice PIN" - -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "Richiesto codice PUK della SIM" - -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "Richiesta codice PUK della SIM" - -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "" -"Il dispositivo a banda larga mobile «%s» richiede il codice PUK della SIM " -"prima di poter essere usato." +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "NetworkManager non è in esecuzione..." -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "Codice PUK:" +#: ../src/applet.c:1854 ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "Funzionalità di rete disabilitate" -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "Nuovo codice PIN:" +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "Abilita funzionalità di _rete" -# [NdT] lo so che non è letterale, ma rende meglio l'idea -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "Verifica nuovo codice PIN:" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +msgid "Enable _Wi-Fi" +msgstr "Abilita _Wi-Fi" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "Mostra codici PIN/PUK" +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "Abilita rete a banda larga _mobile" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "Rete GSM" +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Abilita rete a banda larga mobile WiMA_X" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "Ethernet automatica" +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "Abilita n_otifiche" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "Reti via cavo (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "Informazioni _connessione" -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "Rete via cavo (%s)" +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "Modifica connessioni..." -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "Reti via cavo" +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "A_iuto" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "Rete via cavo" +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "I_nformazioni" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 -msgid "disconnected" -msgstr "disconnessi" +#: ../src/applet.c:2335 +msgid "Disconnected" +msgstr "Disconnessi" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "Attualmente connessi alla rete via cavo." +# +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "La connessione di rete è stata terminata." -#: ../src/applet-device-wired.c:300 +#: ../src/applet.c:2519 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Preparazione della connessione di rete via cavo «%s»..." +msgid "Preparing network connection '%s'..." +msgstr "Preparazione della connessione di rete «%s»..." -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2522 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "Configurazione della connessione di rete via cavo «%s»..." +msgid "User authentication required for network connection '%s'..." +msgstr "Richiesta autenticazione utente per la connessione di rete «%s»..." -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2525 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "" -"Richiesta autenticazione utente per la connessione di rete via cavo «%s»..." +msgid "Requesting a network address for '%s'..." +msgstr "Richiesta di un indirizzo di rete per «%s»..." -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2528 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "Richiesta di un indirizzo di rete via cavo per «%s»..." +msgid "Network connection '%s' active" +msgstr "Connessione di rete «%s» attiva" -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2611 #, c-format -msgid "Wired network connection '%s' active" -msgstr "Connessione di rete via cavo «%s» attiva" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "Autenticazione DSL" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "_Connetti a rete senza fili nascosta..." - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "Crea _nuova rete senza fili..." - -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(nessuna)" +msgid "Starting VPN connection '%s'..." +msgstr "Avvio della connessione VPN «%s»..." -#: ../src/applet-device-wifi.c:803 +#: ../src/applet.c:2614 #, c-format -msgid "Wireless Networks (%s)" -msgstr "Reti senza fili (%s)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "Richiesta autenticazione utente per la connessione VPN «%s»..." -#: ../src/applet-device-wifi.c:805 +#: ../src/applet.c:2617 #, c-format -msgid "Wireless Network (%s)" -msgstr "Rete senza fili (%s)" - -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Rete senza fili" -msgstr[1] "Reti senza fili" - -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "rete senza fili disabilitata" +msgid "Requesting a VPN address for '%s'..." +msgstr "Richiesta di un indirizzo VPN per «%s»..." -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "rete senza fili disabilitata da switch hardware" +#: ../src/applet.c:2620 +#, c-format +msgid "VPN connection '%s' active" +msgstr "Connessione VPN «%s» attiva" -#: ../src/applet-device-wifi.c:902 -msgid "More networks" -msgstr "Altre reti" +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "Nessuna connessione di rete" -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" -msgstr "Disponibili reti senza fili" - -#: ../src/applet-device-wifi.c:1082 -msgid "Use the network menu to connect to a wireless network" -msgstr "Usare il menù rete per connettersi a una rete senza fili" +#: ../src/applet.c:3361 +msgid "NetworkManager Applet" +msgstr "Applet NetworkManager" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 -msgid "Don't show this message again" -msgstr "Non mostrare più questo messaggio" +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Disponibile" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Attualmente connessi alla rete senza fili «%s»." +msgid "You are now connected to '%s'." +msgstr "Attualmente connessi a «%s»." -#: ../src/applet-device-wifi.c:1308 -#, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Preparazione della connessione di rete senza fili «%s»..." +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "Connessione stabilita" -#: ../src/applet-device-wifi.c:1311 -#, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Configurazione della connessione di rete senza fili «%s»..." +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Attualmente connessi alla rete a banda larga mobile." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "Richiesta autenticazione utente per la rete senza fili «%s»..." +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Preparazione della connessione a banda larga mobile «%s»..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Richiesta di un indirizzo di rete senza fili per «%s»..." +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Configurazione della connessione a banda larga mobile «%s»..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "Connessione di rete senza fili «%s» attiva: %s (%d%%)" +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "" +"Richiesta autenticazione utente per la connessione a banda larga mobile " +"«%s»..." -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "Connessione di rete senza fili «%s» attiva" +msgid "Mobile broadband connection '%s' active" +msgstr "Connessione a banda larga mobile «%s» attiva" -#: ../src/applet-device-wimax.c:231 -#, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "Banda larga mobile WiMAX (%s)" +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:700 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr "Banda larga mobile WiMAX" +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 +#, c-format +msgid "Mobile Broadband (%s)" +msgstr "Banda larga mobile (%s)" -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "WiMAX disabilitata" +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:87 +#: ../src/connection-editor/page-mobile.c:380 +msgid "Mobile Broadband" +msgstr "Banda larga mobile" -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX disabilitata da switch hardware" +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Nuova connessione mobile a banda larga (CDMA)..." -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "Attualmente connessi alla rete WiMAX." +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Attualmente connessi alla rete CDMA." -#: ../src/applet-dialogs.c:57 -msgid "Error displaying connection information:" -msgstr "Errore nel visualizzare le informazioni di connessione:" +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "Connessione a banda larga mobile «%s» attiva: (%d%%%s%s)" -#: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "roaming" -#: ../src/applet-dialogs.c:111 -msgid "Dynamic WEP" -msgstr "WEP dinamico" +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "Rete CDMA" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "Attualmente registrati sulla rete del proprio provider." -#: ../src/applet-dialogs.c:244 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "Attualmente registrati su una rete in roaming." -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "Nessuna" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "Ethernet automatica" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-device-ethernet.c:205 #, c-format -#| msgid "1 (Default)" -msgid "%s (default)" -msgstr "%s (predefinito)" +msgid "Ethernet Networks (%s)" +msgstr "Reti ethernet (%s)" -#: ../src/applet-dialogs.c:347 ../src/applet-dialogs.c:485 +#: ../src/applet-device-ethernet.c:207 #, c-format -msgid "%u Mb/s" -msgstr "%u Mb/s" +msgid "Ethernet Network (%s)" +msgstr "Rete ethernet (%s)" -#: ../src/applet-dialogs.c:349 ../src/applet-dialogs.c:487 -msgctxt "Speed" -msgid "Unknown" -msgstr "Sconosciuta" - -#: ../src/applet-dialogs.c:362 -#, c-format -msgid "%d dB" -msgstr "%d dB" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "Reti ethernet" -#: ../src/applet-dialogs.c:364 -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "sconosciuto" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "Rete ethernet" -#: ../src/applet-dialogs.c:376 -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "sconosciuto" +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "Attualmente connessi alla rete ethernet." -#: ../src/applet-dialogs.c:411 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "Ethernet (%s)" -msgstr "Ethernet (%s)" +msgid "Preparing ethernet network connection '%s'..." +msgstr "Preparazione della connessione ethernet «%s»..." -#: ../src/applet-dialogs.c:414 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "802.11 WiFi (%s)" -msgstr "WiFi 802.11 (%s)" +msgid "Configuring ethernet network connection '%s'..." +msgstr "Configurazione della connessione ethernet «%s»..." -#: ../src/applet-dialogs.c:421 +#: ../src/applet-device-ethernet.c:306 #, c-format -msgid "GSM (%s)" -msgstr "GSM (%s)" +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "Richiesta autenticazione utente per la connessione ethernet «%s»..." -#: ../src/applet-dialogs.c:423 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "CDMA (%s)" -msgstr "CDMA (%s)" +msgid "Requesting an ethernet network address for '%s'..." +msgstr "Richiesta di un indirizzo ethernet per «%s»..." -#: ../src/applet-dialogs.c:427 +#: ../src/applet-device-ethernet.c:313 #, c-format -msgid "WiMAX (%s)" -msgstr "WiMAX (%s)" +msgid "Ethernet network connection '%s' active" +msgstr "Connessione ethernet «%s» attiva" -#. --- General --- -#: ../src/applet-dialogs.c:433 ../src/applet-dialogs.c:792 -msgid "General" -msgstr "Generale" +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "Autenticazione DSL" -#: ../src/applet-dialogs.c:437 -msgid "Interface:" -msgstr "Interfaccia:" +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:703 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" -#: ../src/applet-dialogs.c:453 -msgid "Hardware Address:" -msgstr "Indirizzo hardware:" +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Nuova connessione a banda larga mobile (GSM)..." -#. Driver -#: ../src/applet-dialogs.c:461 -msgid "Driver:" -msgstr "Driver:" +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "Attualmente connessi alla rete GSM." -#: ../src/applet-dialogs.c:490 -msgid "Speed:" -msgstr "Velocità:" +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "Richiesto codice PIN" -#: ../src/applet-dialogs.c:500 -msgid "Security:" -msgstr "Sicurezza:" +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "È necessario il codice PIN per il dispositivo a banda larga mobile" -#: ../src/applet-dialogs.c:513 -msgid "CINR:" -msgstr "CINR:" +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "Codice PIN per la SIM card «%s» su «%s»" -#: ../src/applet-dialogs.c:526 -msgid "BSID:" -msgstr "BSID:" +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "Codice PIN errato; contattare il provider." -#. --- IPv4 --- -#: ../src/applet-dialogs.c:543 -msgid "IPv4" -msgstr "IPv4" +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "Codice PUK errato; contattare il provider." -#. Address -#: ../src/applet-dialogs.c:554 ../src/applet-dialogs.c:661 -msgid "IP Address:" -msgstr "Indirizzo IP:" +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "Invio del codice di sblocco..." -#: ../src/applet-dialogs.c:556 ../src/applet-dialogs.c:572 -msgctxt "Address" -msgid "Unknown" -msgstr "Sconosciuto" +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "Richiesto codice PIN della SIM" -#: ../src/applet-dialogs.c:570 -msgid "Broadcast Address:" -msgstr "Indirizzo di broadcast:" +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "Richiesta codice PIN della SIM" -#. Prefix -#: ../src/applet-dialogs.c:579 -msgid "Subnet Mask:" -msgstr "Maschera di rete:" +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "" +"Il dispositivo a banda larga mobile «%s» richiede il codice PIN della SIM " +"prima di poter essere usato." -#: ../src/applet-dialogs.c:581 -msgctxt "Subnet Mask" -msgid "Unknown" -msgstr "Sconosciuta" +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "Codice PIN:" -#: ../src/applet-dialogs.c:589 ../src/applet-dialogs.c:676 -msgid "Default Route:" -msgstr "Instradamento predefinito:" +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "Mostra codice PIN" -#: ../src/applet-dialogs.c:601 -msgid "Primary DNS:" -msgstr "DNS primario:" +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "Richiesto codice PUK della SIM" -#: ../src/applet-dialogs.c:610 -msgid "Secondary DNS:" -msgstr "DNS secondario:" +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "Richiesta codice PUK della SIM" -#: ../src/applet-dialogs.c:620 -msgid "Ternary DNS:" -msgstr "DNS terziario:" +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "" +"Il dispositivo a banda larga mobile «%s» richiede il codice PUK della SIM " +"prima di poter essere usato." -#. --- IPv6 --- -#: ../src/applet-dialogs.c:635 -msgid "IPv6" -msgstr "IPv6" +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "Codice PUK:" -#: ../src/applet-dialogs.c:644 -msgid "Ignored" -msgstr "Ignorata" +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "Nuovo codice PIN:" -#: ../src/applet-dialogs.c:797 -msgid "VPN Type:" -msgstr "Tipo VPN:" +# [NdT] lo so che non è letterale, ma rende meglio l'idea +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "Verifica nuovo codice PIN:" -#: ../src/applet-dialogs.c:804 -msgid "VPN Gateway:" -msgstr "Gateway VPN:" +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "Mostra codici PIN/PUK" -#: ../src/applet-dialogs.c:810 -msgid "VPN Username:" -msgstr "Nome utente VPN:" +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "Rete GSM" -#: ../src/applet-dialogs.c:816 -msgid "VPN Banner:" -msgstr "Banner VPN:" +#: ../src/applet-device-wifi.c:97 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "_Connetti a rete Wi-Fi nascosta..." -# o non tradotto? mica me lo ricordo... -#: ../src/applet-dialogs.c:822 -msgid "Base Connection:" -msgstr "Connessione base:" +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "Crea _nuova rete Wi-Fi..." -#: ../src/applet-dialogs.c:824 -msgid "Unknown" -msgstr "Sconosciuta" +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(nessuna)" -#. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 -msgid "No valid active connections found!" -msgstr "Non è presente alcuna connessione attiva valida." +#: ../src/applet-device-wifi.c:790 +#, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "Reti Wi-Fi (%s)" -#: ../src/applet-dialogs.c:940 -msgid "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"and many other community contributors and translators" -msgstr "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"e molti altri contributi e traduzioni dalla comunità" +#: ../src/applet-device-wifi.c:792 +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Rete Wi-Fi (%s)" -#: ../src/applet-dialogs.c:943 -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "" -"Un'applet per l'area di notifica per la gestione delle interfacce e delle " -"connessioni di rete." +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Rete Wi-Fi" +msgstr[1] "Reti Wi-Fi" -#: ../src/applet-dialogs.c:945 -msgid "NetworkManager Website" -msgstr "Sito web di NetworkManager" +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "Wi-Fi disabilitata" -#: ../src/applet-dialogs.c:960 -msgid "Missing resources" -msgstr "Risorse mancanti" +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Wi-Fi disabilitata da switch hardware" -#: ../src/applet-dialogs.c:985 -msgid "Mobile broadband network password" -msgstr "Password per la rete a banda larga mobile" +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "Altre reti" -#: ../src/applet-dialogs.c:994 -#, c-format -msgid "A password is required to connect to '%s'." -msgstr "È richiesta una password per connettersi a «%s»." +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "Disponibili reti Wi-Fi" -#: ../src/applet-dialogs.c:1013 -msgid "Password:" -msgstr "Password:" +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Usare il menù rete per connettersi a una rete Wi-Fi" -#: ../src/applet.c:995 +#: ../src/applet-device-wifi.c:1263 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"La connessione VPN «%s» non è riuscita perché la connessione di rete è stata " -"interrotta." +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Attualmente connessi alla rete Wi-Fi «%s»." -#: ../src/applet.c:998 +#: ../src/applet-device-wifi.c:1294 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"La connessione VPN «%s» non è riuscita perché il servizio VPN è stato " -"fermato improvvisamente." +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Preparazione della connessione Wi-Fi «%s»..." -#: ../src/applet.c:1001 +#: ../src/applet-device-wifi.c:1297 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"La connessione VPN «%s» non è riuscita perché il servizio VPN ha fornito una " -"configurazione non valida." +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Configurazione della connessione Wi-Fi «%s»..." -#: ../src/applet.c:1004 +# (ndt) un po' libera, ma resa simile a quella di ethernet +#: ../src/applet-device-wifi.c:1300 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"La connessione VPN «%s» non è riuscita perché il tentativo di connessione ha " -"esaurito il tempo a disposizione." +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "Richiesta autenticazione utente per la connessione Wi-Fi «%s»..." -#: ../src/applet.c:1007 +#: ../src/applet-device-wifi.c:1303 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"La connessione VPN «%s» non è riuscita perché il servizio VPN non è partito " -"in tempo." +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Richiesta di un indirizzo Wi-Fi per «%s»..." -#: ../src/applet.c:1010 +#: ../src/applet-device-wifi.c:1324 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"La connessione VPN «%s» non è riuscita perché il servizio VPN non è partito." +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Connessione Wi-Fi «%s» attiva: %s (%d%%)" -#: ../src/applet.c:1013 +#: ../src/applet-device-wifi.c:1329 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"La connessione VPN «%s» non è riuscita perché non ci sono informazioni " -"segrete VPN valide." +msgid "Wi-Fi network connection '%s' active" +msgstr "Connessione Wi-Fi «%s» attiva" -#: ../src/applet.c:1016 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"La connessione VPN «%s» non è riuscita perché le informazioni segrete VPN " -"non sono valide." +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Attivazione della connessione non riuscita" -#: ../src/applet.c:1023 +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Aggiunta della nuova connessione non riuscita" + +#: ../src/applet-device-wimax.c:231 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"La connessione VPN «%s» non è riuscita." +msgid "WiMAX Mobile Broadband (%s)" +msgstr "Banda larga mobile WiMAX (%s)" + +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "Banda larga mobile WiMAX" + +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "WiMAX disabilitata" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX disabilitata da switch hardware" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "Attualmente connessi alla rete WiMAX." + +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "Errore nel visualizzare le informazioni di connessione:" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" + +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "WEP dinamico" -#: ../src/applet.c:1041 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" + +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "Nessuna" + +#: ../src/applet-dialogs.c:277 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"La connessione VPN «%s» si è chiusa perché il collegamento di rete è stato " -"interrotto." +msgid "%s (default)" +msgstr "%s (predefinito)" -#: ../src/applet.c:1044 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"La connessione VPN «%s» si è chiusa perché il servizio VPN è stato fermato." +msgid "%u Mb/s" +msgstr "%u Mb/s" -# [NdT] certo che l'originare era proprio brutto -#: ../src/applet.c:1050 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "Sconosciuta" + +#: ../src/applet-dialogs.c:361 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"La connessione VPN «%s» si è chiusa." +msgid "%d dB" +msgstr "%d dB" -#: ../src/applet.c:1084 -msgid "VPN Login Message" -msgstr "Messaggio di accesso VPN" +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "sconosciuto" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 -msgid "VPN Connection Failed" -msgstr "Connessione VPN non riuscita" +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "sconosciuto" -#: ../src/applet.c:1155 +#: ../src/applet-dialogs.c:410 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"La connessione VPN «%s» non è riuscita perché il servizio VPN non è " -"partito.\n" -"\n" -"%s" +msgid "Ethernet (%s)" +msgstr "Ethernet (%s)" -#: ../src/applet.c:1158 +#: ../src/applet-dialogs.c:413 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"L'apertura della connessione VPN «%s» non è riuscita.\n" -"\n" -"%s" - -#: ../src/applet.c:1478 -msgid "device not ready (firmware missing)" -msgstr "dispositivo non pronto (manca il firmware)" - -#: ../src/applet.c:1480 -msgid "device not ready" -msgstr "dispositivo non pronto" +msgid "802.11 WiFi (%s)" +msgstr "WiFi 802.11 (%s)" -#: ../src/applet.c:1506 -msgid "Disconnect" -msgstr "Disconnetti" +#: ../src/applet-dialogs.c:420 +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" -#: ../src/applet.c:1520 -msgid "device not managed" -msgstr "dispositivo non gestito" +#: ../src/applet-dialogs.c:422 +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" -# [NdT] qui ho tradotto appositamente device con dispositivo -#: ../src/applet.c:1564 -msgid "No network devices available" -msgstr "Nessun dispositivo di rete disponibile" +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" -#: ../src/applet.c:1652 -msgid "_VPN Connections" -msgstr "Connessioni _VPN" +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "Generale" -#: ../src/applet.c:1709 -msgid "_Configure VPN..." -msgstr "_Configura VPN..." +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "Interfaccia:" -#: ../src/applet.c:1713 -msgid "_Disconnect VPN" -msgstr "_Disconnetti VPN" +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "Indirizzo hardware:" -#: ../src/applet.c:1811 -msgid "NetworkManager is not running..." -msgstr "NetworkManager non è in esecuzione..." +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "Driver:" -#: ../src/applet.c:1816 ../src/applet.c:2609 -msgid "Networking disabled" -msgstr "Funzionalità di rete disabilitate" +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "Velocità:" -#. 'Enable Networking' item -#: ../src/applet.c:2037 -msgid "Enable _Networking" -msgstr "Abilita funzionalità di _rete" +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "Sicurezza:" -#. 'Enable Wireless' item -#: ../src/applet.c:2046 -msgid "Enable _Wireless" -msgstr "Abilita rete _senza fili" +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "CINR:" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 -msgid "Enable _Mobile Broadband" -msgstr "Abilita rete a banda larga _mobile" +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "BSID:" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Abilita rete a banda larga mobile WiMA_X" +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" -#. Toggle notifications item -#: ../src/applet.c:2075 -msgid "Enable N_otifications" -msgstr "Abilita n_otifiche" +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 +msgid "IP Address:" +msgstr "Indirizzo IP:" -#. 'Connection Information' item -#: ../src/applet.c:2086 -msgid "Connection _Information" -msgstr "Informazioni _connessione" +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "Sconosciuto" -#. 'Edit Connections...' item -#: ../src/applet.c:2096 -msgid "Edit Connections..." -msgstr "Modifica connessioni..." +#: ../src/applet-dialogs.c:569 +msgid "Broadcast Address:" +msgstr "Indirizzo di broadcast:" -#. Help item -#: ../src/applet.c:2110 -msgid "_Help" -msgstr "A_iuto" +#. Prefix +#: ../src/applet-dialogs.c:578 +msgid "Subnet Mask:" +msgstr "Maschera di rete:" -#. About item -#: ../src/applet.c:2119 -msgid "_About" -msgstr "I_nformazioni" +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Sconosciuta" -#: ../src/applet.c:2296 -msgid "Disconnected" -msgstr "Disconnessi" +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 +msgid "Default Route:" +msgstr "Instradamento predefinito:" -# -#: ../src/applet.c:2297 -msgid "The network connection has been disconnected." -msgstr "La connessione di rete è stata terminata." +#: ../src/applet-dialogs.c:600 +msgid "Primary DNS:" +msgstr "DNS primario:" -#: ../src/applet.c:2478 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Preparazione della connessione di rete «%s»..." +#: ../src/applet-dialogs.c:609 +msgid "Secondary DNS:" +msgstr "DNS secondario:" -#: ../src/applet.c:2481 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Richiesta autenticazione utente per la connessione di rete «%s»..." +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "DNS terziario:" -#: ../src/applet.c:2487 -#, c-format -msgid "Network connection '%s' active" -msgstr "Connessione di rete «%s» attiva" +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" -#: ../src/applet.c:2565 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Avvio della connessione VPN «%s»..." +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "Ignorata" -#: ../src/applet.c:2568 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Richiesta autenticazione utente per la connessione VPN «%s»..." +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "Tipo VPN:" -#: ../src/applet.c:2571 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Richiesta di un indirizzo VPN per «%s»..." +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "Gateway VPN:" -#: ../src/applet.c:2574 -#, c-format -msgid "VPN connection '%s' active" -msgstr "Connessione VPN «%s» attiva" +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "Nome utente VPN:" -#: ../src/applet.c:2613 -msgid "No network connection" -msgstr "Nessuna connessione di rete" +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "Banner VPN:" -#: ../src/applet.c:3263 -msgid "NetworkManager Applet" -msgstr "Applet NetworkManager" +# o non tradotto? mica me lo ricordo... +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Connessione base:" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Sbloccare automaticamente questo dispositivo" +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "Sconosciuta" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "_Sblocca" +#. Shouldn't really happen but ... +#: ../src/applet-dialogs.c:886 +msgid "No valid active connections found!" +msgstr "Non è presente alcuna connessione attiva valida." -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "Informazioni connessione" +#: ../src/applet-dialogs.c:939 +msgid "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" +msgstr "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"e molti altri contributi e traduzioni dalla comunità" -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "Connessioni di rete attive" +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"Un'applet per l'area di notifica per la gestione delle interfacce e delle " +"connessioni di rete." -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Autenticazione via cavo 802.1x" +#: ../src/applet-dialogs.c:944 +msgid "NetworkManager Website" +msgstr "Sito web di NetworkManager" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "_Nome rete:" +#: ../src/applet-dialogs.c:959 +msgid "Missing resources" +msgstr "Risorse mancanti" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "automatico" +#: ../src/applet-dialogs.c:984 +msgid "Mobile broadband network password" +msgstr "Password per la rete a banda larga mobile" -#: ../src/connection-editor/ce-page.c:310 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "" -"Aggiornamento delle informazioni segrete della connessione non riuscito a " -"causa di un errore sconosciuto." +#: ../src/applet-dialogs.c:993 +#, c-format +msgid "A password is required to connect to '%s'." +msgstr "È richiesta una password per connettersi a «%s»." + +#: ../src/applet-dialogs.c:1012 +msgid "Password:" +msgstr "Password:" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 @@ -1087,6 +1138,140 @@ "Se abilitato, questa connessione non verrà mai usata come connessione di " "rete predefinita." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "Scelta tipo di connessione" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"Selezionare il tipo di connessione da creare.\n" +"\n" +"Se la connessione da creare è di tipo VPN e quella desiderata non appare " +"nell'elenco, significa che il plugin VPN corrispondente non è installato." + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Crea..." + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "automatico" + +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "" +"Aggiornamento delle informazioni segrete della connessione non riuscito a " +"causa di un errore sconosciuto." + +# (ndt) questo e quelli che seguono, sono modalità dei driver linux per l'aggregazione della connessione, preferisco lasciarle non tradotte e leggermente modificate. Sono parametri abbastanza tecnici ed è più facile trovare la versione inglese che italiana. +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" +msgstr "Round-robin" + +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" +msgstr "Active Backup" + +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" +msgstr "XOR" + +#: ../src/connection-editor/ce-page-bond.ui.h:4 +msgid "Broadcast" +msgstr "Broadcast" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "802.3ad" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" +msgstr "Adaptive Transmit Load Balancing" + +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" +msgstr "Adaptive Load Balancing" + +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "MII (consigliato)" + +#: ../src/connection-editor/ce-page-bond.ui.h:9 +msgid "ARP" +msgstr "ARP" + +# o non tradotto? mica me lo ricordo... +#: ../src/connection-editor/ce-page-bond.ui.h:10 +msgid "Bonded _connections:" +msgstr "Connessioni a_ggregate:" + +#: ../src/connection-editor/ce-page-bond.ui.h:11 +msgid "_Mode:" +msgstr "M_odalità:" + +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "_Modifica" + +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "_Elimina" + +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "Frequenza _monitoraggio:" + +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "ms" + +#: ../src/connection-editor/ce-page-bond.ui.h:16 +msgid "_Interface name:" +msgstr "Nome _interfaccia:" + +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "Monitoraggio co_llegamento:" + +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "_Obiettivi ARP:" + +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "" +"An IP address, or a comma-separated list of IP addresses, to look for when " +"checking the link status." +msgstr "" +"Un indirizzo IP o un elenco separato da virgole di indirizzi IP da " +"controllare per verificare lo stato del collegamento." + +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "Ritardo collegamento _uscita:" + +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "_Ritardo collegamento entrata:" + #: ../src/connection-editor/ce-page-dsl.ui.h:1 #: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 @@ -1117,14 +1302,113 @@ msgid "_Password:" msgstr "_Password:" -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -msgid "Automatic" -msgstr "Automatico" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "Automatico" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "TP (Twisted Pair)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "AUI (Attachment Unit Interface)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "MII (Media Independent Interface)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Porta:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Velocità:" + +# [NdT] sicuramente Full Duplex è più conosciuto di qualsiasi traduzione +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Full duple_x" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "Aut_o-negoziazione" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "Indirizzo _MAC dispositivo:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "Indirizzo MAC c_lonato:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"L'indirizzo MAC inserito qui sarà usato come indirizzo hardware per il " +"dispositivo di rete su cui è attivata questa connessione. Questa " +"funzionalità è conosciuta come MAC cloning o spoofing. Esempio: " +"00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "byte" + +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "Modalità _trasporto:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagram" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "Connected" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 @@ -1185,11 +1469,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Domini di _ricerca:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "Server _DNS:" @@ -1344,151 +1632,70 @@ msgid "Send PPP _echo packets" msgstr "Inviare i pacchetti _eco PPP" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "TP (Twisted Pair)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "AUI (Attachment Unit Interface)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "MII (Media Independent Interface)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "_Porta:" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "_Velocità:" - -# [NdT] sicuramente Full Duplex è più conosciuto di qualsiasi traduzione -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "Full duple_x" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "Aut_o-negoziazione" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "Indirizzo _MAC dispositivo:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "C_loned MAC address:" -msgstr "Indirizzo MAC c_lonato:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"L'indirizzo MAC inserito qui sarà usato come indirizzo hardware per il " -"dispositivo di rete su cui è attivata questa connessione. Questa " -"funzionalità è conosciuta come MAC cloning o spoofing. Esempio: " -"00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "_MTU:" -msgstr "_MTU:" - -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "byte" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "Sicur_ezza:" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Infrastruttura" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "Ad-hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "mW" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "Poten_za di trasmissione:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "_Velocità:" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"Questa opzione blocca la connessione per il punto di accesso (AP) wireless " +"Questa opzione blocca la connessione per il punto di accesso (AP) Wi-Fi " "specificato dal BSSID inserito qui. Esempio: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "Ca_nale:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "Ban_da:" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "M_odo:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "_SSID:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "Sicur_ezza:" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Metodi di autenticazione consentiti" @@ -1544,78 +1751,337 @@ "supportano tutti i metodi di autenticazione. Se la connessione fallisce, " "provare a disabilitare il supporto per qualche metodo." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Indirizzo" + +# [NdT] è il titolo di una colonna +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Maschera" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Gateway" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Metrica" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Prefisso" + +#: ../src/connection-editor/new-connection.c:77 +#: ../src/connection-editor/page-ethernet.c:274 +msgid "Ethernet" +msgstr "Ethernet" + +#: ../src/connection-editor/new-connection.c:82 +#: ../src/connection-editor/page-wifi.c:463 +msgid "Wi-Fi" +msgstr "Wi-Fi" + +#: ../src/connection-editor/new-connection.c:92 +#: ../src/connection-editor/page-wimax.c:158 ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:97 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:102 +#: ../src/connection-editor/page-infiniband.c:190 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:107 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "Aggregata" + +#: ../src/connection-editor/new-connection.c:119 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:252 +msgid "Import a saved VPN configuration..." +msgstr "Importa configurazione VPN salvata..." + +#: ../src/connection-editor/new-connection.c:274 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"La finestra di modifica della connessione non può essere inizializzata a " +"causa di un errore sconosciuto." + +#: ../src/connection-editor/new-connection.c:283 +msgid "Could not create new connection" +msgstr "Impossibile creare una nuova connessione" + +#: ../src/connection-editor/new-connection.c:419 +msgid "Connection delete failed" +msgstr "Eliminazione connessione non riuscita" + +#: ../src/connection-editor/new-connection.c:466 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Eliminare veramente la connessione %s?" + +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "Modifica di %s" + +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "Modifica di una connessione senza nome" + +#: ../src/connection-editor/nm-connection-editor.c:301 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"L'editor di connessione non riesce a trovare alcune risorse richieste (il " +"file .ui non è stato trovato)." + +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "_Salva" + +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "Salva qualsiasi modifica fatta a questa connessione." + +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "_Salva..." + +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "" +"Autenticarsi per salvare questa connessione per tutti gli utenti di questa " +"macchina." + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not create connection" +msgstr "Impossibile creare una connessione" + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "Impossibile modificare la connessione" + +#: ../src/connection-editor/nm-connection-editor.c:449 +msgid "Unknown error creating connection editor dialog." +msgstr "" +"Errore sconosciuto nel creare la finestra di modifica della connessione." + +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "Errore nel salvare la connessione" + +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "La proprietà «%s» / «%s» non è valida: %d" + +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "Errore nell'inizializzare l'editor" + +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "Aggiunta connessione non riuscita" + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "_Nome della connessione:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "Connettere _automaticamente" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "Disponibile per _tutti gli utenti" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "E_sporta..." + +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "mai" + +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "adesso" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minuto fa" +msgstr[1] "%d minuti fa" + +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ora fa" +msgstr[1] "%d ore fa" + +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d giorno fa" +msgstr[1] "%d giorni fa" + +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d mese fa" +msgstr[1] "%d mesi fa" + +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "%d anno fa" +msgstr[1] "%d anni fa" + +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "Nome" + +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "Ultimo uso" + +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "Modifica la connessione selezionata" + +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "_Modifica..." + +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "Autenticarsi per modificare la connessione selezionata" + +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "Elimina la connessione selezionata" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "_Elimina..." + +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "Autenticarsi per eliminare la connessione selezionata" + +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "Errore nel creare la connessione" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Scegliere il tipo di connessione VPN" +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Impossibile creare la connessione «%s»" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" -"Selezionare il tipo di VPN da usare per la nuova connessione. Se il tipo di " -"connessione VPN desiderato non appare nell'elenco significa che il plugin " -"VPN corrispondente non è installato." +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "Errore nel mdificare connessione" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "Crea..." +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Non è possibile trovare una connessione con l'UUID «%s»" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Indirizzo" +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "Sicurezza 802.1x" -# [NdT] è il titolo di una colonna -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Maschera" +#: ../src/connection-editor/page-8021x-security.c:122 +msgid "Could not load 802.1x Security user interface." +msgstr "Impossibile caricare l'interfaccia utente per la sicurezza 802.1x." -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Gateway" +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "Usare la sicurezza 802.1_X per questa connessione" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Metrica" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "Slave %2$d di %1$s" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Prefisso" +#: ../src/connection-editor/page-bond.c:749 +msgid "Could not load bond user interface." +msgstr "" +"Impossibile caricare l'interfaccia utente per la connessione aggregata." -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:909 +#, c-format +msgid "Bond connection %d" +msgstr "Connessione aggregata %d" -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-dsl.c:142 msgid "Could not load DSL user interface." msgstr "Impossibile caricare l'interfaccia utente per DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:234 #, c-format msgid "DSL connection %d" msgstr "Connessione DSL %d" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Questa opzione blocca la connessione per il dispositivo di rete specificato " +"dal suo indirizzo MAC permanente inserito qui. Esempio: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:276 +msgid "Could not load ethernet user interface." +msgstr "Impossibile caricare l'interfaccia utente per ethernet." + +#: ../src/connection-editor/page-ethernet.c:452 +#, c-format +msgid "Ethernet connection %d" +msgstr "Connessione ethernet %d" + +#: ../src/connection-editor/page-infiniband.c:193 +msgid "Could not load InfiniBand user interface." +msgstr "Impossibile caricare l'interfaccia utente per InfiniBand." + +#: ../src/connection-editor/page-infiniband.c:318 +#, c-format +msgid "InfiniBand connection %d" +msgstr "Connessione InfiniBand %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1665,16 +2131,26 @@ msgid "Disabled" msgstr "Disabilitato" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Server _DNS aggiuntivi:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Domini di _ricerca aggiuntivi:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Modifica instradamenti IPv4 per %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:993 msgid "IPv4 Settings" msgstr "Impostazioni IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:995 msgid "Could not load IPv4 user interface." msgstr "Impossibile caricare l'interfaccia utente per IPv4." @@ -1683,7 +2159,7 @@ msgstr "Automatico, solo indirizzi" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ignora" @@ -1691,33 +2167,33 @@ msgid "Automatic, DHCP only" msgstr "Automatico, solo (DHCP)" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Modifica instradamenti IPv6 per %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:957 msgid "IPv6 Settings" msgstr "Impostazioni IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:959 msgid "Could not load IPv6 user interface." msgstr "Impossibile caricare l'interfaccia utente per IPv6." -#: ../src/connection-editor/page-mobile.c:381 +#: ../src/connection-editor/page-mobile.c:382 msgid "Could not load mobile broadband user interface." msgstr "Impossibile caricare l'interfaccia utente per banda larga mobile." -#: ../src/connection-editor/page-mobile.c:398 +#: ../src/connection-editor/page-mobile.c:399 msgid "Unsupported mobile broadband connection type." msgstr "Tipo di connessione a banda larga mobile non supportata." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:643 msgid "Select Mobile Broadband Provider Type" msgstr "Selezionare il tipo di operatore di banda larga mobile" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:678 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." @@ -1725,12 +2201,12 @@ "Selezionare la tecnologia usata dal proprio operatore di banda larga mobile. " "Se si è insicuri, chiedere all'operatore." -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:683 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "" "L'operatore usa una tecnologia di tipo _GSM (es. GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:690 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "L'operatore usa una tecnologia di tipo C_DMA (es. 1xRTT, EVDO)" @@ -1743,336 +2219,57 @@ msgid "PAP" msgstr "PAP" -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:280 -msgid "CHAP" -msgstr "CHAP" - -#: ../src/connection-editor/page-ppp.c:137 -#: ../src/wireless-security/eap-method-fast.c:277 -#: ../src/wireless-security/eap-method-peap.c:246 -#: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "nessuna" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Modifica metodi di autenticazione PPP per %s" - -#: ../src/connection-editor/page-ppp.c:282 -msgid "PPP Settings" -msgstr "Impostazioni PPP" - -#: ../src/connection-editor/page-ppp.c:284 -msgid "Could not load PPP user interface." -msgstr "Impossibie caricare l'interfaccia utente per PPP." - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "Impossibie caricare l'interfaccia utente per VPN." - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "Impossibile trovare il servizio di plugin VPN per «%s»." - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 -#, c-format -msgid "VPN connection %d" -msgstr "Connessione VPN %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"Questa opzione blocca la connessione per il dispositivo di rete specificato " -"dal suo indirizzo MAC permanente inserito qui. Esempio: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 -msgid "Wired" -msgstr "Via cavo" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "Impossibile caricare l'interfaccia utente per rete via cavo." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Connessione via cavo %d" - -#: ../src/connection-editor/page-wired-security.c:116 -msgid "802.1x Security" -msgstr "Sicurezza 802.1x" - -#: ../src/connection-editor/page-wired-security.c:118 -msgid "Could not load Wired Security security user interface." -msgstr "Impossibile caricare l'interfaccia utente per la sicurezza via cavo." - -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1_X security for this connection" -msgstr "Usare la sicurezza 802.1_X per questa connessione" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "predefinita" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 -msgid "Wireless" -msgstr "Senza fili" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "Impossibile caricare l'interfaccia utente per reti WiFi." - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Connessione senza fili %d" - -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "Chiave WEP a 40/128 bit (Hex o ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 -msgid "WEP 128-bit Passphrase" -msgstr "Frase di accesso WEP a 128 bit" - -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 -msgid "Dynamic WEP (802.1x)" -msgstr "WEP dinamico (802.1x)" - -# (Cito da http://it.wikipedia.org/wiki/Wi-Fi_Protected_Access) -# -# Wi-Fi Alliance ha introdotto i termini *WPA(2)-Personal* e * -# WPA(2)-Enterprise* per differenziare le due classi di sicurezza -# fornite dai prodotti. I WPA(2)-Personal utilizzeranno il metodo PSK a -# chiave condivisa mentre i WPA(2)-Enterprise utilizzeranno un server -# di autenticazione. -# -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 -msgid "WPA & WPA2 Personal" -msgstr "WPA e WPA2 Personal" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA e WPA2 Enterprise" - -#: ../src/connection-editor/page-wireless-security.c:360 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"Impossibile caricare l'interfaccia utente per la sicurezza WiFi, mancano le " -"impostazioni WiFi." - -#: ../src/connection-editor/page-wireless-security.c:370 -msgid "Wireless Security" -msgstr "Sicurezza senza fili" - -#: ../src/connection-editor/page-wireless-security.c:372 -msgid "Could not load WiFi security user interface." -msgstr "Impossibile caricare l'interfaccia utente per la sicurezza WiFi." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Modifica di %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Modifica di una connessione senza nome" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"L'editor di connessione non riesce a trovare alcune risorse richieste (il " -"file .ui non è stato trovato)." - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "Errore nel creare la finestra di modifica della connessione." - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "_Salva" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "Salva qualsiasi modifica fatta a questa connessione." - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "_Salva..." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "" -"Autenticarsi per salvare questa connessione per tutti gli utenti di questa " -"macchina." - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "_Importa" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "E_sporta" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "_Nome della connessione:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "Connettere _automaticamente" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Disponibile per tutti gli utenti" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "mai" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "adesso" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "%d minuto fa" -msgstr[1] "%d minuti fa" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "%d ora fa" -msgstr[1] "%d ore fa" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "%d giorno fa" -msgstr[1] "%d giorni fa" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "%d mese fa" -msgstr[1] "%d mesi fa" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "%d anno fa" -msgstr[1] "%d anni fa" - -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Aggiunta connessione non riuscita" - -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Errore nel salvare la connessione" - -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "La proprietà «%s» / «%s» non è valida: %d" +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Si è verificato un errore sconosciuto." +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Errore nell'inizializzare l'editor" +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "" -"La finestra di modifica della connessione non può essere inizializzata a " -"causa di un errore sconosciuto." +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "nessuna" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Impossibile creare una nuova connessione" +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Modifica metodi di autenticazione PPP per %s" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Impossibile modificare la nuova connessione" +#: ../src/connection-editor/page-ppp.c:283 +msgid "PPP Settings" +msgstr "Impostazioni PPP" -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "Impossibile modificare la connessione" +#: ../src/connection-editor/page-ppp.c:285 +msgid "Could not load PPP user interface." +msgstr "Impossibie caricare l'interfaccia utente per PPP." -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Eliminazione connessione non riuscita" +#: ../src/connection-editor/page-vpn.c:114 +msgid "Could not load VPN user interface." +msgstr "Impossibie caricare l'interfaccia utente per VPN." -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:129 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Eliminare veramente la connessione %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "Impossibile trovare il servizio di plugin VPN per «%s»." -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 -msgid "Cannot import VPN connection" -msgstr "Impossibile importare la connessione VPN" +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 +#, c-format +msgid "VPN connection %d" +msgstr "Connessione VPN %d" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/page-vpn.c:249 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2082,80 +2279,107 @@ "\n" "Errore: manca il tipo di servizio VPN." -#: ../src/connection-editor/nm-connection-list.c:945 -msgid "Could not edit imported connection" -msgstr "Impossibile modificare la connessione importata" +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "Scegliere il tipo di connessione VPN" -#: ../src/connection-editor/nm-connection-list.c:1126 -msgid "Name" -msgstr "Nome" +#: ../src/connection-editor/page-vpn.c:275 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Selezionare il tipo di VPN da usare per la nuova connessione. Se il tipo di " +"connessione VPN desiderato non appare nell'elenco significa che il plugin " +"VPN corrispondente non è installato." -#: ../src/connection-editor/nm-connection-list.c:1138 -msgid "Last Used" -msgstr "Ultimo uso" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "predefinita" -#: ../src/connection-editor/nm-connection-list.c:1264 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "" -"Nessun plugin VPN disponibile. Installarne uno per abilitare questo pulsante." +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "_Edit" -msgstr "_Modifica" +#: ../src/connection-editor/page-wifi.c:465 +msgid "Could not load Wi-Fi user interface." +msgstr "Impossibile caricare l'interfaccia utente per Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "Edit the selected connection" -msgstr "Modifica la connessione selezionata" +#: ../src/connection-editor/page-wifi.c:670 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Connessione Wi-Fi %d" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "_Edit..." -msgstr "_Modifica..." +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Nessuna" -#: ../src/connection-editor/nm-connection-list.c:1278 -msgid "Authenticate to edit the selected connection" -msgstr "Autenticarsi per modificare la connessione selezionata" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "Chiave WEP a 40/128 bit (Hex o ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "_Delete" -msgstr "_Elimina" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "Frase di accesso WEP a 128 bit" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "Delete the selected connection" -msgstr "Elimina la connessione selezionata" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "WEP dinamico (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "_Delete..." -msgstr "_Elimina..." +# (Cito da http://it.wikipedia.org/wiki/Wi-Fi_Protected_Access) +# +# Wi-Fi Alliance ha introdotto i termini *WPA(2)-Personal* e * +# WPA(2)-Enterprise* per differenziare le due classi di sicurezza +# fornite dai prodotti. I WPA(2)-Personal utilizzeranno il metodo PSK a +# chiave condivisa mentre i WPA(2)-Enterprise utilizzeranno un server +# di autenticazione. +# +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "WPA e WPA2 Personal" -#: ../src/connection-editor/nm-connection-list.c:1296 -msgid "Authenticate to delete the selected connection" -msgstr "Autenticarsi per eliminare la connessione selezionata" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA e WPA2 Enterprise" -#: ../src/connection-editor/nm-connection-list.c:1575 -msgid "Error creating connection" -msgstr "Errore nel creare la connessione" +#: ../src/connection-editor/page-wifi-security.c:396 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"Impossibile caricare l'interfaccia utente per la sicurezza Wi-Fi, mancano le " +"impostazioni Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1576 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Impossibile creare la connessione «%s»" +#: ../src/connection-editor/page-wifi-security.c:406 +msgid "Wi-Fi Security" +msgstr "Sicurezza Wi-Fi" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 -msgid "Error editing connection" -msgstr "Errore nel mdificare connessione" +#: ../src/connection-editor/page-wifi-security.c:408 +msgid "Could not load Wi-Fi security user interface." +msgstr "Impossibile caricare l'interfaccia utente per la sicurezza Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1632 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Impossibile modificare la connessione «%s»" +#: ../src/connection-editor/page-wimax.c:161 +msgid "Could not load WiMAX user interface." +msgstr "Impossibile caricare l'interfaccia utente per WiMAX." -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/page-wimax.c:290 #, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Non è possibile trovare una connessione con l'UUID «%s»" +msgid "WiMAX connection %d" +msgstr "Connessione WiMAX %d" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Impossibile importare la connessione VPN" + +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2168,29 +2392,29 @@ "\n" "Errore: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Selezionare un file da importare" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Esiste già un file con nome «%s»." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "Sostit_uisci" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Sostituire «%s» con la connessione VPN che si sta salvando?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "Impossibile esportare la connessione VPN" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2201,65 +2425,87 @@ "\n" "Errore: %s" -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Esporta connessione VPN..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Creazione connessione PAN non riuscita: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"L'applet NetworkManager non è riuscita a trovare alcune risorse richieste " +"(il file .ui non è stato trovato)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Il telefono è pronto all'uso." +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"Impossibile eseguire la configurazione Bluetooth (connessione a D-Bus non " +"riuscita: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "Rete %s" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"Impossibile eseguire la configurazione Bluetooth (errore durante la ricerca " +"di NetworkManager: (%s) %s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Usa il telefono mobile come dispositivo di rete (PAN/NAP)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Accesso a Internet usando il telefono mobile (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Errore: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Creazione connessione DUN non riuscita: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Il telefono è pronto all'uso." + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "L'assistente alla connessione mobile è stato annullato" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Tipo di telefono sconosciuto (né GSM né CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "tipo di modem sconosciuto." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "connessione al telefono non riuscita." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "disconnessione inattesa dal telefono." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "tempo esaurito nel rilevare i dettagli del telefono." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Rilevazione configurazione telefono..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "impossibile trovare il dispositivo Bluetooth." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2267,36 +2513,33 @@ "L'adattatore Bluetooth predefinito deve essere abilitato prima di poter " "impostare una connessione Dial-Up-Networking." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "" -"Impossibile eseguire una configurazione del Bluetooth (connessione a D-Bus " -"non riuscita: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" -"Impossibile eseguire una configurazione del Bluetooth (creazione proxy D-Bus " -"non riuscita)." +msgid "Failed to create PAN connection: %s" +msgstr "Creazione connessione PAN non riuscita: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"Impossibile eseguire una configurazione del Bluetooth (errore durante la " -"ricerca del NetworkManager: %s)." +msgid "%s Network" +msgstr "Rete %s" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Usa il telefono mobile come dispositivo di rete (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Sbloccare automaticamente questo dispositivo" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Accesso a Internet usando il telefono mobile (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_Sblocca" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Informazioni connessione" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Connessioni di rete attive" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "" @@ -2304,22 +2547,22 @@ "impostazioni:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Dispositivo:" # [NdT] qui si parla di rete mobile #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Operatore di accesso:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Piano tariffario:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2333,23 +2576,23 @@ "impostazioni. Per modificare le impostazioni della connessione a banda larga " "mobile, scegliere «Connessioni di rete» dal menù Sistema → Preferenze." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Confermare le impostazioni a banda larga mobile" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Non elencato" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "_Selezionare il proprio piano:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "_APN (Nome Punto d'Accesso) del piano selezionato:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2361,67 +2604,67 @@ "\n" "Se non si è sicuri del proprio piano, chiedere l'APN al proprio operatore." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Scegliere il proprio piano tariffario" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Piano tariffario non presente in elenco..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "Selezionare il proprio operatore da un e_lenco:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Operatore" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Operatore non presente, inserirlo _manualmente:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Operatore:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "L'operatore usa una tecnologia GSM (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "L'operatore usa una tecnologia CDMA (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Scegliere il proprio operatore" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Elenco nazioni o regioni:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "Nazione o regione" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "Nazione non presente in elenco" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Scegliere la nazione o la regione del proprio operatore" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Dispositivo GSM installato" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Dispositivo CDMA installato" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2429,110 +2672,109 @@ "Questo assistente consente di impostare facilmente una connessione mobile a " "banda larga a una rete cellulare (3G)." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Saranno necessarie le seguenti informazioni:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "Il nome del proprio operatore di banda larga" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "Il nome del proprio piano tariffario di banda larga" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" "L'APN (Nome Punto d'Accesso) del proprio piano tariffario di banda larga " "(solo in alcuni casi)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Creare una connessione per ques_to dispositivo a banda larga mobile:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Qualsiasi dispositivo" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Imposta una connessione mobile a banda larga" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Nuova connessione mobile a banda larga" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "Nuova..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "C_rea" # [NdT] lo so che nell'originale c'è il plurale... # ma di password o chiave per una data rete # ce ne può essere al più una no? -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network " -"'%s'." +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "" -"Per accedere alla rete senza fili «%s» è necessaria una password o una " -"chiave di cifratura." +"Per accedere alla rete Wi-Fi «%s» è necessaria una password o una chiave di " +"cifratura." # [NdT] è il titolo della finestra -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 -msgid "Wireless Network Authentication Required" -msgstr "Richiesta autenticazione rete senza fili" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 -msgid "Authentication required by wireless network" -msgstr "La rete senza fili richiede autenticazione" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 -msgid "Create New Wireless Network" -msgstr "Crea nuova rete senza fili" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" +msgstr "Richiesta autenticazione rete Wi-Fi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" +msgstr "La rete Wi-Fi richiede autenticazione" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" +msgstr "Crea nuova rete Wi-fi" # [NdT] è il titolo della finestra -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "New wireless network" -msgstr "Nuova rete senza fili" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 -msgid "Enter a name for the wireless network you wish to create." -msgstr "Inserire un nome per la rete senza fili che si vuole creare." - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 -msgid "Connect to Hidden Wireless Network" -msgstr "Connetti a rete senza fili nascosta" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" +msgstr "Nuova rete Wi-Fi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "Inserire un nome per la rete Wi-Fi da creare." + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" +msgstr "Connetti a rete Wi-Fi nascosta" # [NdT] è il titolo della finestra -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Hidden wireless network" -msgstr "Rete senza fili nascosta" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" +msgstr "Rete Wi-Fi nascosta" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." msgstr "" -"Inserire il nome e i dettagli di sicurezza della rete senza fili nascosta a " -"cui connettersi." +"Inserire il nome e i dettagli di sicurezza della rete Wi-Fi nascosta a cui " +"connettersi." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" -msgstr "Sicurezza _senza fili:" +msgid "Wi-Fi _security:" +msgstr "Sicurezza _Wi-Fi:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Co_nnessione:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" -msgstr "_Adattatore senza fili:" +msgid "Wi-Fi _adapter:" +msgstr "_Adattatore Wi-Fi:" #: ../src/main.c:73 msgid "Usage:" @@ -2582,10 +2824,6 @@ msgid "HSPA" msgstr "HSPA" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "non abilitato" @@ -2636,41 +2874,57 @@ msgid "Default" msgstr "Predefinita" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"L'applet NetworkManager non è riuscita a trovare alcune risorse richieste " -"(il file .ui non è stato trovato)." +# o non tradotto? mica me lo ricordo... +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "Connessione %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Non è stato scelto alcun certificato di un'Autorità di Certificazione" # [NdT] Non so come tradurre "rogue" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" "Fare a meno di un certificato di un'Autorità di Certificazione (CA) può " -"portare a connessioni a reti senza fili insicure o malevole. Scegliere un " +"portare a connessioni a reti Wi-Fi insicure o malevole. Scegliere un " "certificato di un'Autorità di Certificazione?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Scegliere un certificato di CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Chiavi private DER, PEM o PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Certificati DER o PEM (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Scegli file PAC" + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "File PAC (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Tutti i file" + #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Anonimo" @@ -2703,25 +2957,8 @@ msgid "Allow automatic PAC pro_visioning" msgstr "Fornire a_utomaticamente PAC" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Scegli file PAC" - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "File PAC (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Tutti i file" - #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2809,19 +3046,19 @@ msgid "Yes" msgstr "Sì" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "TLS via tunnel" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "EAP Protetto (PEAP)" @@ -2867,6 +3104,76 @@ msgid "WEP inde_x:" msgstr "Indic_e WEP:" +#~ msgid "An unknown error occurred." +#~ msgstr "Si è verificato un errore sconosciuto." + +#~ msgid "Could not edit new connection" +#~ msgstr "Impossibile modificare la nuova connessione" + +#~ msgid "Wireless Networks (%s)" +#~ msgstr "Reti senza fili (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "Rete senza fili (%s)" + +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "Rete senza fili" +#~ msgstr[1] "Reti senza fili" + +#~ msgid "wireless is disabled" +#~ msgstr "rete senza fili disabilitata" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "rete senza fili disabilitata da switch hardware" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "Preparazione della connessione di rete senza fili «%s»..." + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "Configurazione della connessione di rete senza fili «%s»..." + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "Richiesta di un indirizzo di rete senza fili per «%s»..." + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "Connessione di rete senza fili «%s» attiva" + +#~ msgid "Wired" +#~ msgstr "Via cavo" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "" +#~ "Impossibile caricare l'interfaccia utente per la sicurezza via cavo." + +#~ msgid "Wireless" +#~ msgstr "Senza fili" + +#~ msgid "Wireless connection %d" +#~ msgstr "Connessione senza fili %d" + +#~ msgid "_Import" +#~ msgstr "_Importa" + +#~ msgid "Could not edit imported connection" +#~ msgstr "Impossibile modificare la connessione importata" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "" +#~ "Nessun plugin VPN disponibile. Installarne uno per abilitare questo " +#~ "pulsante." + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "Impossibile modificare la connessione «%s»" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "impossibile trovare il dispositivo Bluetooth." + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "" +#~ "Impossibile eseguire una configurazione del Bluetooth (creazione proxy D-" +#~ "Bus non riuscita)." + #~ msgid "Show the applet in notification area" #~ msgstr "Mostra l'applet nell'area di notifica" @@ -2899,9 +3206,6 @@ #~ msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12, *.key)" #~ msgstr "Chiavi private DER, PEM o PKCS#12 (*.der, *.pem, *.p12, *.key)" -#~ msgid "C_onnect" -#~ msgstr "C_onnetti" - #~ msgid "Control your network connections" #~ msgstr "Controlla le connessioni di rete" diff -Nru network-manager-applet-0.9.4.1/po/ja.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ja.po --- network-manager-applet-0.9.4.1/po/ja.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ja.po 2012-10-31 13:20:57.000000000 +0000 @@ -1,658 +1,1030 @@ # translation of ja.po to Japanese # Japanese translation for NetworkManager (network-manager-applet) -# Copyright (C) 2005-2011 Dan Williams +# Copyright (C) 2005-2012 Dan Williams # This file is distributed under the same license as the NetworkManager package. # Satoru SATOH , 2005-2007. # Kiyoto Hashida , 2010. # KURASAWA Nozomu , 2010. # Hideki Yamane , 2010. -# Takayuki KUSANO , 2010, 2011. +# Hideki Yamane , 2011. +# Takayuki KUSANO , 2010-2012. # Takayoshi OKANO , 2011. # msgid "" msgstr "" "Project-Id-Version: network-manager-applet master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" -"product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2011-09-13 14:26+0000\n" -"PO-Revision-Date: 2011-09-11 08:23+0900\n" -"Last-Translator: Jiro Matsuzawa \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-10-19 22:16+0000\n" +"PO-Revision-Date: 2012-10-12 13:35+0900\n" +"Last-Translator: Takayuki KUSANO \n" "Language-Team: Japanese \n" +"Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../nm-applet.desktop.in.h:1 +msgid "Network" +msgstr "ネットワーク" + +#: ../nm-applet.desktop.in.h:2 msgid "Manage your network connections" msgstr "ネットワーク接続を管理" -#: ../nm-applet.desktop.in.h:2 -msgid "Network" -msgstr "ネットワーク" +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "ネットワーク接続" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "WiFi の作成を無効にする" +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "ネットワーク接続セッティングの管理と変更" -#: ../nm-applet.schemas.in.h:2 +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" -msgstr "接続済み通知を無効にする" +msgstr "接続通知を無効にする" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "これを true にすると、ネットワークへの接続中の通知を無効にします。" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" -msgstr "切断済み通知を無効にする" +msgstr "切断通知を無効にする" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "" -"ネットワークに接続する時点にこれを TRUE にセットすると通知を無効にします。" +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "Set this to true to disable notifications when disconnecting from a network." +msgstr "これを true にすると、ネットワークからの切断中の通知を無効にします。" -#: ../nm-applet.schemas.in.h:5 -msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "" -"ネットワークから切断する時点にこれを TRUE にセットすると通知を無効にします。" +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "VPN 通知を無効にする" -#: ../nm-applet.schemas.in.h:6 -msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." -msgstr "" -"無線ネットワークが利用可能な時にこれを TRUE にセットすると通知を無効にしま" -"す。" +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "Set this to true to disable notifications when connecting to or disconnecting from a VPN." +msgstr "これを true にすると、VPN への接続、あるいは VPN からの切断の際の通知を無効にします。" -#: ../nm-applet.schemas.in.h:7 -msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "" -"アプレットを使用する時にこれを TRUE にセットするとアドホックネットワークの作" -"成を無効にします。" +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 +msgid "Suppress networks available notifications" +msgstr "ネットワーク使用可能通知を抑制する" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#, fuzzy +msgid "Set this to true to disable notifications when Wi-Fi networks are available." +msgstr "これを true にすると、無線ネットワークが利用可能な時の通知を無効にします。" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "スタンプ" -#: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" -msgstr "ネットワーク使用可能通知を抑制する" - -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "セッティングが新規バージョンに移行すべきかどうかの判定に使用されます。" -#: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "ネットワーク接続セッティングの管理と変更" +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "WiFi の作成を無効にする" -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -msgid "Network Connections" -msgstr "ネットワーク接続" +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +msgid "Set to true to disable creation of adhoc networks when using the applet." +msgstr "これを true にすると、アプレットでのアドホックネットワークの作成を無効にします。" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "CA 証明書を無視" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "Set this to true to disable warnings about CA certificates in EAP authentication." +msgstr "これを true にすると、EAP の認証中の CA 証明書関連の警告を無効にします。" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "Set this to true to disable warnings about CA certificates in phase 2 of EAP authentication." +msgstr "これを true にすると、EAP 認証のフェーズ 2 での CA 証明書関連の警告を無効にします。" -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:443 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "利用可能" +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +#, fuzzy +msgid "802.1X authentication" +msgstr "有線 802.1X の認証" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:485 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "現在'%s' に接続しています。" +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "ネットワーク名(_N):" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:489 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1280 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "接続を確立しました" +#: ../src/applet.c:513 +msgid "Failed to add/activate connection" +msgstr "接続の追加、あるいは有効にするのに失敗しました" + +#: ../src/applet.c:515 ../src/applet.c:559 ../src/applet.c:585 +#: ../src/applet-device-wifi.c:1376 ../src/applet-device-wifi.c:1395 +msgid "Unknown error" +msgstr "不明なエラー" + +#: ../src/applet.c:518 ../src/applet.c:588 ../src/applet-device-wifi.c:1379 +#: ../src/applet-device-wifi.c:1398 +msgid "Connection failure" +msgstr "接続に失敗" + +#: ../src/applet.c:557 +msgid "Device disconnect failed" +msgstr "デバイスの切断に失敗しました" + +#: ../src/applet.c:562 +msgid "Disconnect failure" +msgstr "切断失敗" + +#: ../src/applet.c:583 +msgid "Connection activation failed" +msgstr "接続を有効にするのに失敗しました" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "現在、モバイルブロードバンドネットワークに接続しています。" +#: ../src/applet.c:953 ../src/applet-device-wifi.c:1069 +msgid "Don't show this message again" +msgstr "二度とこのメッセージを表示しない" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:525 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:1042 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "モバイルブロードバンド接続 '%s' を準備中です..." +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was interrupted." +msgstr "" +"\n" +"ネットワーク接続が割り込みされた為、VPN 接続 '%s' は失敗しました。" -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1045 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "モバイルブロードバンド接続 '%s' を設定中です..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"VPN サービスが不意に停止した為、VPN 接続 '%s' は失敗しました。" -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1048 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "モバイルブロードバンド接続 '%s' にはユーザー認証が必要です..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid configuration." +msgstr "" +"\n" +"VPN サービスが無効な設定を返したため、VPN 接続 '%s'は失敗しました。" -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2479 +#: ../src/applet.c:1051 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "'%s' のネットワークアドレスを要求しています..." +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"接続試行がタイムアウトしたため、VPN 接続 '%s' は失敗しました。" -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:552 +#: ../src/applet.c:1054 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "モバイルブロードバンド接続 '%s' はアクティブです。" - -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"VPN サービスが時間内に開始しなかったため、VPN 接続 '%s' は失敗しました。" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:389 -#: ../src/applet-dialogs.c:405 +#: ../src/applet.c:1057 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "モバイルブロードバンド (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"VPN サービスが開始に失敗したため、VPN 接続 '%s' は失敗しました。" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:391 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -#: ../src/connection-editor/nm-connection-list.c:1474 -msgid "Mobile Broadband" -msgstr "モバイルブロードバンド" +#: ../src/applet.c:1060 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"有効な VPN secret がないため、VPN 接続 '%s' は失敗しました。" -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "新規のモバイルブロードバンド (CDMA) 接続..." +#: ../src/applet.c:1063 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"VPN secret が無効なため、VPN 接続 '%s' は失敗しました。" -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "現在 CDMA ネットワークに接続しています。" +#: ../src/applet.c:1070 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"VPN 接続 '%s' は失敗しました。" -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:547 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1088 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "モバイルブロードバンド接続 '%s' アクティブです: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was interrupted." +msgstr "" +"\n" +"ネットワーク接続が割り込みされたため、VPN 接続 '%s' は切断されました。" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "ローミング" +#: ../src/applet.c:1091 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"VPN サービスが停止したため、VPN 接続 '%s' は切断されました。" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -#, fuzzy -#| msgid "More networks" -msgid "CDMA network." -msgstr "その他のネットワーク" +#: ../src/applet.c:1097 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"VPN 接続 '%s' が切断されました。" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1098 -#, fuzzy -#| msgid "You are now connected to the wired network." -msgid "You are now registered on the home network." -msgstr "有線ネットワークに接続しました。" +#: ../src/applet.c:1127 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN 接続の確立に成功しました。\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1104 -#, fuzzy -#| msgid "You are now connected to the wired network." -msgid "You are now registered on a roaming network." -msgstr "有線ネットワークに接続しました。" +#: ../src/applet.c:1129 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN 接続の確立に成功しました。\n" -#: ../src/applet-device-gsm.c:210 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1131 +msgid "VPN Login Message" +msgstr "VPN ログインメッセージ" -#. Default connection item -#: ../src/applet-device-gsm.c:456 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "新規のモバイルブロードバンド (GSM) 接続..." +#: ../src/applet.c:1137 ../src/applet.c:1145 ../src/applet.c:1195 +msgid "VPN Connection Failed" +msgstr "VPN 接続は失敗しました" -#: ../src/applet-device-gsm.c:490 -msgid "You are now connected to the GSM network." -msgstr "現在 GSM ネットワークに接続しています。" +#: ../src/applet.c:1202 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN サービスが開始に失敗したため、VPN 接続 '%s' は失敗しました。n\n" +"%s" -#: ../src/applet-device-gsm.c:651 -msgid "PIN code required" -msgstr "PIN コードが必要です" +#: ../src/applet.c:1205 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN 接続 '%s' は開始に失敗しました。\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:659 -msgid "PIN code is needed for the mobile broadband device" -msgstr "モバイルブロードバンドデバイスには PIN コードが必要です" +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "デバイスの準備ができていません (ファームウェア未検出)" -#: ../src/applet-device-gsm.c:784 -msgid "Wrong PIN code; please contact your provider." -msgstr "PIN が違います; プロバイダーに連絡してください。" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "デバイスの準備ができていません" -#: ../src/applet-device-gsm.c:807 -msgid "Wrong PUK code; please contact your provider." -msgstr "PUK が違います; プロバイダーに連絡してください。" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 ../src/applet-device-ethernet.c:229 +msgid "disconnected" +msgstr "切断されています" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:834 -msgid "Sending unlock code..." -msgstr "開錠コードを送信中..." +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "切断する" -#: ../src/applet-device-gsm.c:897 -msgid "SIM PIN unlock required" -msgstr "SIM PIN の開錠が必要です" +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "デバイスは管理されていません" -#: ../src/applet-device-gsm.c:898 -msgid "SIM PIN Unlock Required" -msgstr "SIM PIN の開錠が必要です" +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "ネットワークデバイスがありません" -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:900 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "" -"モバイルブロードバンドデバイス %s' を使用するには SIM PIN ピンコードが必要で" -"す。" +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "VPN 接続(_V)" -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:902 -msgid "PIN code:" -msgstr "PIN コード:" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "VPN を設定(_C)..." -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:906 -msgid "Show PIN code" -msgstr "PIN コードを表示" +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "VPN を切断する(_D)" -#: ../src/applet-device-gsm.c:909 -msgid "SIM PUK unlock required" -msgstr "SIM PUK の開錠が必要です" +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "NetworkManager は実行されていません..." -#: ../src/applet-device-gsm.c:910 -msgid "SIM PUK Unlock Required" -msgstr "SIM PUK の開錠が必要です" +#: ../src/applet.c:1854 ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "ネットワークは無効になっています" -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:912 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "" -"モバイルブロードバンドデバイス '%s' を使用するには SIM PUK コードが必要です。" - -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:914 -msgid "PUK code:" -msgstr "PUK コード:" - -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:917 -msgid "New PIN code:" -msgstr "新規の PIN コード:" +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "ネットワークを有効にする(_N)" -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:919 -msgid "Re-enter new PIN code:" -msgstr "新規の PIN コードを再入力:" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +#, fuzzy +msgid "Enable _Wi-Fi" +msgstr "無線を有効にする(_W)" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:924 -msgid "Show PIN/PUK codes" -msgstr "PIN/PUK コードを表示" +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "モバイルブロードバンドを有効にする(_M)" -#: ../src/applet-device-gsm.c:1097 ../src/applet-device-gsm.c:1103 -#, fuzzy -#| msgid "More networks" -msgid "GSM network." -msgstr "その他のネットワーク" +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "WiMAX モバイルブロードバンドを有効にする(_X)" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "自動イーサネット" +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "通知を有効にする(_O)" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "有線ネットワーク (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "接続情報(_I)" -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "有線ネットワーク (%s)" +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "接続を編集する..." -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "有線ネットワーク" +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "ヘルプ(_H)" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "有線ネットワーク" +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "このアプリケーションについて(_A)" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1485 -msgid "disconnected" -msgstr "切断されています" +#: ../src/applet.c:2335 +msgid "Disconnected" +msgstr "切断されました" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "有線ネットワークに接続しました。" +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "ネットワーク接続が切断されました。" -#: ../src/applet-device-wired.c:300 +#: ../src/applet.c:2519 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "有線ネットワーク接続 '%s' を準備中です..." +msgid "Preparing network connection '%s'..." +msgstr "ネットワーク接続 '%s' を準備中..." -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2522 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "有線ネットワーク接続 '%s' を設定中です..." +msgid "User authentication required for network connection '%s'..." +msgstr "ネットワーク接続 '%s' にユーザー認証が必要です..." -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2525 ../src/applet-device-bt.c:235 +#: ../src/applet-device-cdma.c:484 ../src/applet-device-gsm.c:538 +#: ../src/applet-device-wimax.c:469 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "有線ネットワーク接続 '%s'にはユーザー認証が必要です..." +msgid "Requesting a network address for '%s'..." +msgstr "'%s' のネットワークアドレスを要求しています..." -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2528 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "'%s' 用の有線ネットワークアドレスを要求しています..." +msgid "Network connection '%s' active" +msgstr "ネットワーク接続 '%s' はアクティブです。" -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2611 #, c-format -msgid "Wired network connection '%s' active" -msgstr "有線ネットワーク接続 '%s' はアクティブです" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "DSL 認証" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "非表示無線ネットワークに接続(_C)..." - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "新しい無線ネットワークを作成(_N)..." - -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(なし)" +msgid "Starting VPN connection '%s'..." +msgstr "VPN 接続 '%s' を開始しています..." -#: ../src/applet-device-wifi.c:803 +#: ../src/applet.c:2614 #, c-format -msgid "Wireless Networks (%s)" -msgstr "無線ネットワーク (%s)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "VPN 接続 '%s' にユーザー認証が必要です..." -#: ../src/applet-device-wifi.c:805 +#: ../src/applet.c:2617 #, c-format -msgid "Wireless Network (%s)" -msgstr "無線ネットワーク (%s)" - -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "無線ネットワーク" +msgid "Requesting a VPN address for '%s'..." +msgstr "'%s' の VPN アドレスを要求しています..." -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "無線は無効になっています" +#: ../src/applet.c:2620 +#, c-format +msgid "VPN connection '%s' active" +msgstr "VPN 接続 '%s' はアクティブです" -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "無線はハードウェアのスイッチで無効になっています" +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "ネットワーク接続がありません" -#: ../src/applet-device-wifi.c:902 -msgid "More networks" -msgstr "その他のネットワーク" +#: ../src/applet.c:3362 +msgid "NetworkManager Applet" +msgstr "NetworkManager アプレット" -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" -msgstr "無線ネットワークは利用可能です" +#: ../src/applet-device-bt.c:169 ../src/applet-device-cdma.c:393 +#: ../src/applet-device-ethernet.c:237 ../src/applet-device-gsm.c:447 +#: ../src/applet-device-wifi.c:859 ../src/applet-device-wimax.c:275 +msgid "Available" +msgstr "利用可能" -#: ../src/applet-device-wifi.c:1083 -msgid "Click on this icon to connect to a wireless network" -msgstr "無線ネットワークに接続するにはこのアイコンをクリックします。" +#: ../src/applet-device-bt.c:195 ../src/applet-device-cdma.c:435 +#: ../src/applet-device-ethernet.c:266 ../src/applet-device-gsm.c:489 +#: ../src/applet-device-wimax.c:419 +#, c-format +msgid "You are now connected to '%s'." +msgstr "現在'%s' に接続しています。" -#: ../src/applet-device-wifi.c:1084 -msgid "Use the network menu to connect to a wireless network" -msgstr "無線ネットワークに接続するにはネットワークメニューを使用します。" +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:439 +#: ../src/applet-device-ethernet.c:270 ../src/applet-device-gsm.c:493 +#: ../src/applet-device-wifi.c:1261 ../src/applet-device-wimax.c:423 +msgid "Connection Established" +msgstr "接続を確立しました" -#: ../src/applet-device-wifi.c:1087 ../src/applet.c:901 -msgid "Don't show this message again" -msgstr "二度とこのメッセージを表示しない" +#: ../src/applet-device-bt.c:200 +msgid "You are now connected to the mobile broadband network." +msgstr "現在、モバイルブロードバンドネットワークに接続しています。" -#: ../src/applet-device-wifi.c:1279 +#: ../src/applet-device-bt.c:226 ../src/applet-device-cdma.c:475 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:460 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "無線ネットワーク '%s' に接続しました。" +msgid "Preparing mobile broadband connection '%s'..." +msgstr "モバイルブロードバンド接続 '%s' を準備中です..." -#: ../src/applet-device-wifi.c:1310 +#: ../src/applet-device-bt.c:229 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:463 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "無線ネットワーク接続 '%s' の準備中..." +msgid "Configuring mobile broadband connection '%s'..." +msgstr "モバイルブロードバンド接続 '%s' を設定中です..." -#: ../src/applet-device-wifi.c:1313 +#: ../src/applet-device-bt.c:232 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:466 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "無線ネットワーク接続 '%s' を設定中..." +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "モバイルブロードバンド接続 '%s' にはユーザー認証が必要です..." -#: ../src/applet-device-wifi.c:1316 +#: ../src/applet-device-bt.c:239 ../src/applet-device-cdma.c:502 +#: ../src/applet-device-gsm.c:556 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "無線ネットワーク '%s' にはユーザー認証が必要です..." +msgid "Mobile broadband connection '%s' active" +msgstr "モバイルブロードバンド接続 '%s' はアクティブです。" -#: ../src/applet-device-wifi.c:1319 -#, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "'%s' 用の無線ネットワークアドレスを要求しています..." +#: ../src/applet-device-cdma.c:182 ../src/connection-editor/page-mobile.c:715 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wifi.c:1340 +#: ../src/applet-device-cdma.c:339 ../src/applet-device-gsm.c:393 +#: ../src/applet-dialogs.c:424 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "無線ネットワーク接続 '%s' アクティブです: %s (%d%%)" +msgid "Mobile Broadband (%s)" +msgstr "モバイルブロードバンド (%s)" -#: ../src/applet-device-wifi.c:1345 -#, c-format -msgid "Wireless network connection '%s' active" -msgstr "無線ネットワーク接続 '%s' アクティブです" +#: ../src/applet-device-cdma.c:341 ../src/applet-device-gsm.c:395 +#: ../src/connection-editor/new-connection.c:112 +#: ../src/connection-editor/page-mobile.c:389 +#: ../src/libnm-gtk/nm-ui-utils.c:333 +msgid "Mobile Broadband" +msgstr "モバイルブロードバンド" -#: ../src/applet-device-wimax.c:231 -#, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "WiMAX モバイルブロードバンド (%s)" +#. Default connection item +#: ../src/applet-device-cdma.c:406 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "新規のモバイルブロードバンド (CDMA) 接続..." -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr "WiMAX モバイルブロードバンド" +#: ../src/applet-device-cdma.c:440 +msgid "You are now connected to the CDMA network." +msgstr "現在 CDMA ネットワークに接続しています。" -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "WiMAX は無効になっています" +#: ../src/applet-device-cdma.c:497 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:478 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "モバイルブロードバンド接続 '%s' アクティブです: (%d%%%s%s)" -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX はハードウェアのスイッチで無効になっています" +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:554 +#: ../src/applet-device-wimax.c:481 +msgid "roaming" +msgstr "ローミング" -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "現在 WiMAX ネットワークに接続しています。" +#: ../src/applet-device-cdma.c:641 ../src/applet-device-cdma.c:647 +msgid "CDMA network." +msgstr "CDMA ネットワーク" -#: ../src/applet-dialogs.c:56 -msgid "Error displaying connection information:" -msgstr "接続情報の表示中にエラーが起きました:" +#: ../src/applet-device-cdma.c:642 ../src/applet-device-gsm.c:1199 +msgid "You are now registered on the home network." +msgstr "ホームネットワークに接続しました。" -#: ../src/applet-dialogs.c:108 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:396 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1205 +msgid "You are now registered on a roaming network." +msgstr "ローミングネットワークに接続しました。" -#: ../src/applet-dialogs.c:110 -msgid "Dynamic WEP" -msgstr "動的 WEP" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "自動イーサネット" -#: ../src/applet-dialogs.c:112 ../src/applet-dialogs.c:221 -#: ../src/applet-dialogs.c:223 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-ethernet.c:202 +#, fuzzy, c-format +msgid "Ethernet Networks (%s)" +msgstr "有線ネットワーク (%s)" -#: ../src/applet-dialogs.c:219 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-ethernet.c:204 +#, fuzzy, c-format +msgid "Ethernet Network (%s)" +msgstr "有線ネットワーク (%s)" -#: ../src/applet-dialogs.c:227 ../src/applet-dialogs.c:236 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "なし" +#: ../src/applet-device-ethernet.c:207 +#, fuzzy +msgid "Ethernet Networks" +msgstr "有線ネットワーク" -#: ../src/applet-dialogs.c:327 ../src/applet-dialogs.c:465 -#, c-format -msgid "%u Mb/s" -msgstr "%u Mb/s" +#: ../src/applet-device-ethernet.c:209 +#, fuzzy +msgid "Ethernet Network" +msgstr "有線ネットワーク" -#: ../src/applet-dialogs.c:329 ../src/applet-dialogs.c:467 -msgctxt "Speed" -msgid "Unknown" -msgstr "不明" +#: ../src/applet-device-ethernet.c:271 +#, fuzzy +msgid "You are now connected to the ethernet network." +msgstr "有線ネットワークに接続しました。" -#: ../src/applet-dialogs.c:342 -#, c-format -msgid "%d dB" -msgstr "%d dB" +#: ../src/applet-device-ethernet.c:297 +#, fuzzy, c-format +msgid "Preparing ethernet network connection '%s'..." +msgstr "有線ネットワーク接続 '%s' を準備中です..." -#: ../src/applet-dialogs.c:344 -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "不明" +#: ../src/applet-device-ethernet.c:300 +#, fuzzy, c-format +msgid "Configuring ethernet network connection '%s'..." +msgstr "有線ネットワーク接続 '%s' を設定中です..." -#: ../src/applet-dialogs.c:356 -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "不明" +#: ../src/applet-device-ethernet.c:303 +#, fuzzy, c-format +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "有線ネットワーク接続 '%s'にはユーザー認証が必要です..." -#: ../src/applet-dialogs.c:391 -#, c-format -msgid "Ethernet (%s)" -msgstr "Ethernet (%s)" +#: ../src/applet-device-ethernet.c:306 +#, fuzzy, c-format +msgid "Requesting an ethernet network address for '%s'..." +msgstr "'%s' 用の有線ネットワークアドレスを要求しています..." -#: ../src/applet-dialogs.c:394 -#, c-format -msgid "802.11 WiFi (%s)" -msgstr "802.11 WiFi (%s)" +#: ../src/applet-device-ethernet.c:310 +#, fuzzy, c-format +msgid "Ethernet network connection '%s' active" +msgstr "有線ネットワーク接続 '%s' はアクティブです" -#: ../src/applet-dialogs.c:401 -#, c-format -msgid "GSM (%s)" -msgstr "GSM (%s)" +#: ../src/applet-device-ethernet.c:491 +msgid "DSL authentication" +msgstr "DSL 認証" -#: ../src/applet-dialogs.c:403 -#, c-format -msgid "CDMA (%s)" -msgstr "CDMA (%s)" +#: ../src/applet-device-gsm.c:214 ../src/connection-editor/page-mobile.c:718 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" -#: ../src/applet-dialogs.c:407 -#, c-format -msgid "WiMAX (%s)" -msgstr "WiMAX (%s)" +#. Default connection item +#: ../src/applet-device-gsm.c:460 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "新規のモバイルブロードバンド (GSM) 接続..." -#. --- General --- -#: ../src/applet-dialogs.c:413 -msgid "General" -msgstr "全般" +#: ../src/applet-device-gsm.c:494 +msgid "You are now connected to the GSM network." +msgstr "現在 GSM ネットワークに接続しています。" -#: ../src/applet-dialogs.c:417 -msgid "Interface:" -msgstr "インターフェイス:" +#: ../src/applet-device-gsm.c:655 +msgid "PIN code required" +msgstr "PIN コードが必要です" -#: ../src/applet-dialogs.c:433 -msgid "Hardware Address:" -msgstr "ハードウェアアドレス:" +#: ../src/applet-device-gsm.c:663 +msgid "PIN code is needed for the mobile broadband device" +msgstr "モバイルブロードバンドデバイスには PIN コードが必要です" -#. Driver -#: ../src/applet-dialogs.c:441 -msgid "Driver:" -msgstr "ドライバー:" +#: ../src/applet-device-gsm.c:784 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "'%2$s' 上の SIM カード '%1$s' の PIN コード" -#: ../src/applet-dialogs.c:470 -msgid "Speed:" -msgstr "速度:" +#: ../src/applet-device-gsm.c:876 +msgid "Wrong PIN code; please contact your provider." +msgstr "PIN が違います; プロバイダーに連絡してください。" -#: ../src/applet-dialogs.c:480 -msgid "Security:" -msgstr "セキュリティ:" +#: ../src/applet-device-gsm.c:899 +msgid "Wrong PUK code; please contact your provider." +msgstr "PUK が違います; プロバイダーに連絡してください。" -#: ../src/applet-dialogs.c:493 -msgid "CINR:" -msgstr "CINR:" +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:926 +msgid "Sending unlock code..." +msgstr "開錠コードを送信中..." -#: ../src/applet-dialogs.c:506 -msgid "BSID:" -msgstr "BSID:" +#: ../src/applet-device-gsm.c:989 +msgid "SIM PIN unlock required" +msgstr "SIM PIN の開錠が必要です" + +#: ../src/applet-device-gsm.c:990 +msgid "SIM PIN Unlock Required" +msgstr "SIM PIN の開錠が必要です" + +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:992 +#, c-format +msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." +msgstr "モバイルブロードバンドデバイス %s' を使用するには SIM PIN ピンコードが必要です。" + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:994 +msgid "PIN code:" +msgstr "PIN コード:" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:998 +msgid "Show PIN code" +msgstr "PIN コードを表示" + +#: ../src/applet-device-gsm.c:1001 +msgid "SIM PUK unlock required" +msgstr "SIM PUK のアンロックが必要です" + +#: ../src/applet-device-gsm.c:1002 +msgid "SIM PUK Unlock Required" +msgstr "SIM PUK のアンロックが必要です" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1004 +#, c-format +msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." +msgstr "モバイルブロードバンドデバイス '%s' を使用するには SIM PUK コードが必要です。" + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1006 +msgid "PUK code:" +msgstr "PUK コード:" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1009 +msgid "New PIN code:" +msgstr "新規の PIN コード:" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1011 +msgid "Re-enter new PIN code:" +msgstr "新規の PIN コードを再入力:" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1016 +msgid "Show PIN/PUK codes" +msgstr "PIN/PUK コードを表示" + +#: ../src/applet-device-gsm.c:1198 ../src/applet-device-gsm.c:1204 +msgid "GSM network." +msgstr "GSM ネットワーク" + +#: ../src/applet-device-wifi.c:98 +#, fuzzy +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "非表示無線ネットワークに接続(_C)..." + +#: ../src/applet-device-wifi.c:149 +#, fuzzy +msgid "Create _New Wi-Fi Network..." +msgstr "新しい無線ネットワークを作成(_N)..." + +#: ../src/applet-device-wifi.c:293 +msgid "(none)" +msgstr "(なし)" + +#: ../src/applet-device-wifi.c:787 +#, fuzzy, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "有線ネットワーク (%s)" + +#: ../src/applet-device-wifi.c:789 +#, fuzzy, c-format +msgid "Wi-Fi Network (%s)" +msgstr "有線ネットワーク (%s)" + +#: ../src/applet-device-wifi.c:791 +#, fuzzy +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "有線ネットワーク" + +#: ../src/applet-device-wifi.c:824 +#, fuzzy +msgid "Wi-Fi is disabled" +msgstr "WiMAX は無効になっています" + +#: ../src/applet-device-wifi.c:825 +#, fuzzy +msgid "Wi-Fi is disabled by hardware switch" +msgstr "WiMAX はハードウェアのスイッチで無効になっています" + +#: ../src/applet-device-wifi.c:886 +msgid "More networks" +msgstr "その他のネットワーク" + +#: ../src/applet-device-wifi.c:1065 +#, fuzzy +msgid "Wi-Fi Networks Available" +msgstr "無線ネットワークは利用可能です" + +#: ../src/applet-device-wifi.c:1066 +#, fuzzy +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "無線ネットワークに接続するにはネットワークメニューを使用します。" + +#: ../src/applet-device-wifi.c:1260 +#, fuzzy, c-format +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "無線ネットワーク '%s' に接続しました。" + +#: ../src/applet-device-wifi.c:1291 +#, fuzzy, c-format +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "ネットワーク接続 '%s' を準備中..." + +#: ../src/applet-device-wifi.c:1294 +#, fuzzy, c-format +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "有線ネットワーク接続 '%s' を設定中です..." + +#: ../src/applet-device-wifi.c:1297 +#, fuzzy, c-format +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "無線ネットワーク '%s' にはユーザー認証が必要です..." + +#: ../src/applet-device-wifi.c:1300 +#, fuzzy, c-format +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "'%s' のネットワークアドレスを要求しています..." + +#: ../src/applet-device-wifi.c:1321 +#, fuzzy, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "無線ネットワーク接続 '%s' アクティブです: %s (%d%%)" + +#: ../src/applet-device-wifi.c:1326 +#, fuzzy, c-format +msgid "Wi-Fi network connection '%s' active" +msgstr "有線ネットワーク接続 '%s' はアクティブです" + +#: ../src/applet-device-wifi.c:1374 +msgid "Failed to activate connection" +msgstr "接続を有効にするのに失敗しました" + +#: ../src/applet-device-wifi.c:1393 +msgid "Failed to add new connection" +msgstr "新規接続の追加に失敗しました" + +#: ../src/applet-device-wimax.c:227 +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "WiMAX モバイルブロードバンド (%s)" + +#: ../src/applet-device-wimax.c:229 +msgid "WiMAX Mobile Broadband" +msgstr "WiMAX モバイルブロードバンド" + +#: ../src/applet-device-wimax.c:255 +msgid "WiMAX is disabled" +msgstr "WiMAX は無効になっています" + +#: ../src/applet-device-wimax.c:256 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX はハードウェアのスイッチで無効になっています" + +#: ../src/applet-device-wimax.c:424 +msgid "You are now connected to the WiMAX network." +msgstr "現在 WiMAX ネットワークに接続しています。" + +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "接続情報の表示中にエラーが起きました:" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:924 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" + +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "動的 WEP" + +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" + +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:881 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "なし" + +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (デフォルト)" + +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 +#, c-format +msgid "%u Mb/s" +msgstr "%u Mb/s" + +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "不明" + +#: ../src/applet-dialogs.c:361 +#, c-format +msgid "%d dB" +msgstr "%d dB" + +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "不明" + +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "不明" + +#: ../src/applet-dialogs.c:410 +#, c-format +msgid "Ethernet (%s)" +msgstr "Ethernet (%s)" + +#: ../src/applet-dialogs.c:413 +#, c-format +msgid "802.11 WiFi (%s)" +msgstr "802.11 WiFi (%s)" + +#: ../src/applet-dialogs.c:420 +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" + +#: ../src/applet-dialogs.c:422 +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" + +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" + +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "全般" + +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "インターフェース:" + +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "ハードウェアアドレス:" + +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "ドライバー:" + +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "速度:" + +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "セキュリティ:" + +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "CINR:" + +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:523 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:534 ../src/applet-dialogs.c:641 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP アドレス:" -#: ../src/applet-dialogs.c:536 ../src/applet-dialogs.c:552 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "不明" -#: ../src/applet-dialogs.c:550 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "ブロードキャストアドレス:" #. Prefix -#: ../src/applet-dialogs.c:559 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "サブネットマスク:" -#: ../src/applet-dialogs.c:561 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "不明" -#: ../src/applet-dialogs.c:569 ../src/applet-dialogs.c:656 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "デフォルトルート:" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "第一 DNS:" -#: ../src/applet-dialogs.c:590 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "第二 DNS:" -#: ../src/applet-dialogs.c:600 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "第三 DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:615 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:624 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "無視" +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "VPN の種類:" + +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "VPN ゲートウェイ:" + +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "VPN ユーザー名:" + +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "VPN バナー:" + +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "ベース接続:" + +#: ../src/applet-dialogs.c:823 ../src/libnm-gtk/nm-ui-utils.c:343 +msgid "Unknown" +msgstr "不明" + #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:732 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "有効なアクティブ接続がありません!" -#: ../src/applet-dialogs.c:785 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -662,893 +1034,992 @@ "Copyright © 2005-2008 Novell, Inc.\n" "また、コミュニティの他の多くの貢献者、翻訳者" -#: ../src/applet-dialogs.c:788 -msgid "" -"Notification area applet for managing your network devices and connections." +#: ../src/applet-dialogs.c:942 +msgid "Notification area applet for managing your network devices and connections." msgstr "ネットワークデバイスと接続を管理するための通知領域アプレット。" -#: ../src/applet-dialogs.c:790 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "NetworkManager ウェブサイト" -#: ../src/applet-dialogs.c:805 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "不足しているリソース" -#: ../src/applet-dialogs.c:830 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "モバイルブロードバンドネットワークのパスワード" -#: ../src/applet-dialogs.c:839 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "'%s' への接続にパスワードが必要です。" -#: ../src/applet-dialogs.c:858 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "パスワード:" -#: ../src/applet.c:990 -#, c-format +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 +msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." +msgstr "IP アドレスはネットワーク上のコンピューターを識別します。\"追加\" ボタンを押すとIP アドレスを追加できます。" + +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "Ig_nore automatically obtained routes" +msgstr "自動取得したルートを無視する(_N)" + +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +msgid "_Use this connection only for resources on its network" +msgstr "そのネットワーク上のリソースのためにのみこの接続を使用(_U)" + +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 +msgid "If enabled, this connection will never be used as the default network connection." +msgstr "有効になっている場合、この接続は決してデフォルトのネットワーク接続として 使用されません。" + +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +#, fuzzy +msgid "Choose a Connection Type" +msgstr "VPN 接続の種類を選んでください" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +#, fuzzy msgid "" +"Select the type of connection you wish to create.\n" "\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." +"If you are creating a VPN, and the VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." +msgstr "新規接続で使用したい VPN のタイプを選択してください。作成したい VPN 接続の種類が一覧に無い場合は、正しい VPN プラグインをインストールしていないかもしれません。" + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "作成…" + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "自動" + +#: ../src/connection-editor/ce-page.c:356 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "不明なエラーのため接続 secret を更新できませんでした。" + +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" msgstr "" -"\n" -"ネットワーク接続が割り込みされた為、VPN 接続 '%s' は失敗しました。" -#: ../src/applet.c:993 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" msgstr "" -"\n" -"VPN サービスが不意に停止した為、VPN 接続 '%s' は失敗しました。" -#: ../src/applet.c:996 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" msgstr "" -"\n" -"VPN サービスが無効な設定を返したため、VPN 接続 '%s'は失敗しました。" -#: ../src/applet.c:999 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." +#: ../src/connection-editor/ce-page-bond.ui.h:4 +#, fuzzy +msgid "Broadcast" +msgstr "ブロードキャストアドレス:" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" msgstr "" -"\n" -"接続試行がタイムアウトしたため、VPN 接続 '%s' は失敗しました。" -#: ../src/applet.c:1002 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"VPN サービスが時間内に開始しなかったため、VPN 接続 '%s' は失敗しました。" - -#: ../src/applet.c:1005 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"VPN サービスが開始に失敗したため、VPN 接続 '%s' は失敗しました。" - -#: ../src/applet.c:1008 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" msgstr "" -"\n" -"有効な VPN secret がないため、VPN 接続 '%s' は失敗しました。" -#: ../src/applet.c:1011 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" msgstr "" -"\n" -"VPN secret が無効なため、VPN 接続 '%s' は失敗しました。" -#: ../src/applet.c:1018 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" msgstr "" -"\n" -"VPN 接続 '%s' は失敗しました。" -#: ../src/applet.c:1036 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"ネットワーク接続が割り込みされたため、VPN 接続 '%s' は切断されました。" +#: ../src/connection-editor/ce-page-bond.ui.h:9 +#, fuzzy +msgid "ARP" +msgstr "EAP" -#: ../src/applet.c:1039 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"VPN サービスが停止したため、VPN 接続 '%s' は切断されました。" +#: ../src/connection-editor/ce-page-bond.ui.h:10 +#, fuzzy +msgid "Bonded _connections:" +msgstr "ベース接続:" -#: ../src/applet.c:1045 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"VPN 接続 '%s' が切断されました。" +#: ../src/connection-editor/ce-page-bond.ui.h:11 +#, fuzzy +msgid "_Mode:" +msgstr "モード(_O):" -#: ../src/applet.c:1079 -msgid "VPN Login Message" -msgstr "VPN ログインメッセージ" +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit" +msgstr "編集(_E)" -#: ../src/applet.c:1085 ../src/applet.c:1093 ../src/applet.c:1143 -msgid "VPN Connection Failed" -msgstr "VPN 接続は失敗しました" +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete" +msgstr "削除(_D)" -#: ../src/applet.c:1150 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" msgstr "" -"\n" -"VPN サービスが開始に失敗したため、VPN 接続 '%s' は失敗しました。n\n" -"%s" -#: ../src/applet.c:1153 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" msgstr "" -"\n" -"VPN 接続 '%s' はその開始に失敗しました。\n" -"\n" -"%s" - -#: ../src/applet.c:1473 -msgid "device not ready (firmware missing)" -msgstr "デバイスの準備ができていません (ファームウェア無し)" - -#: ../src/applet.c:1475 -msgid "device not ready" -msgstr "デバイスの準備ができていません" - -#: ../src/applet.c:1501 -msgid "Disconnect" -msgstr "切断する" - -#: ../src/applet.c:1515 -msgid "device not managed" -msgstr "デバイスは管理されていません" - -#: ../src/applet.c:1559 -msgid "No network devices available" -msgstr "ネットワークデバイスがありません" - -#: ../src/applet.c:1647 -msgid "_VPN Connections" -msgstr "VPN 接続(_V)" - -#: ../src/applet.c:1704 -msgid "_Configure VPN..." -msgstr "VPN を設定(_C)..." - -#: ../src/applet.c:1708 -msgid "_Disconnect VPN" -msgstr "VPN を切断する(_D)" - -#: ../src/applet.c:1806 -msgid "NetworkManager is not running..." -msgstr "NetworkManager は実行されていません..." -#: ../src/applet.c:1811 ../src/applet.c:2604 -msgid "Networking disabled" -msgstr "ネットワークは無効になっています" - -#. 'Enable Networking' item -#: ../src/applet.c:2032 -msgid "Enable _Networking" -msgstr "ネットワークを有効にする(_N)" - -#. 'Enable Wireless' item -#: ../src/applet.c:2041 -msgid "Enable _Wireless" -msgstr "無線を有効にする(_W)" - -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2050 -msgid "Enable _Mobile Broadband" -msgstr "モバイルブロードバンドを有効にする(_M)" +#: ../src/connection-editor/ce-page-bond.ui.h:16 +#, fuzzy +msgid "_Interface name:" +msgstr "インターフェース:" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2059 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "WiMAX モバイルブロードバンドを有効にする(_X)" +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "" -#. Toggle notifications item -#: ../src/applet.c:2070 -msgid "Enable N_otifications" -msgstr "通知を有効にする(_O)" +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "" -#. 'Connection Information' item -#: ../src/applet.c:2081 -msgid "Connection _Information" -msgstr "接続情報(_I)" +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "An IP address, or a comma-separated list of IP addresses, to look for when checking the link status." +msgstr "" -#. 'Edit Connections...' item -#: ../src/applet.c:2091 -msgid "Edit Connections..." -msgstr "接続を編集する..." +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "" -#. Help item -#: ../src/applet.c:2105 -msgid "_Help" -msgstr "ヘルプ(_H)" +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "" -#. About item -#: ../src/applet.c:2114 -msgid "_About" -msgstr "情報(_A)" +#: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:10 +#: ../src/wireless-security/eap-method-leap.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/ws-leap.ui.h:1 +msgid "_Username:" +msgstr "ユーザー名(_U):" -#: ../src/applet.c:2291 -msgid "Disconnected" -msgstr "切断されました" +#: ../src/connection-editor/ce-page-dsl.ui.h:2 +msgid "_Service:" +msgstr "サービス(_S):" -#: ../src/applet.c:2292 -msgid "The network connection has been disconnected." -msgstr "ネットワーク接続が切断されました。" +#: ../src/connection-editor/ce-page-dsl.ui.h:3 +#: ../src/wireless-security/eap-method-leap.ui.h:3 +#: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 +#: ../src/wireless-security/ws-leap.ui.h:3 +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "パスワードを表示(_W)" -#: ../src/applet.c:2473 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "ネットワーク接続 '%s' を準備中..." +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:11 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "パスワード(_P):" -#: ../src/applet.c:2476 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "ネットワーク接続 '%s' にユーザー認証が必要です..." +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "自動" -#: ../src/applet.c:2482 -#, c-format -msgid "Network connection '%s' active" -msgstr "ネットワーク接続 '%s' はアクティブです。" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "ツイストペア (TP)" -#: ../src/applet.c:2560 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "VPN 接続 '%s' を開始しています..." +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" -#: ../src/applet.c:2563 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "VPN 接続 '%s' にユーザー認証が必要です..." +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" -#: ../src/applet.c:2566 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "'%s' の VPN アドレスを要求しています..." +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" -#: ../src/applet.c:2569 -#, c-format -msgid "VPN connection '%s' active" -msgstr "VPN 接続 '%s' はアクティブです" +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" -#: ../src/applet.c:2608 -msgid "No network connection" -msgstr "ネットワーク接続がありません" +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" -#: ../src/applet.c:3258 -msgid "NetworkManager Applet" -msgstr "NetworkManager アプレット" +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" -#: ../src/gsm-unlock.ui.h:1 -msgid "_Unlock" -msgstr "開錠(_U)" +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" -#: ../src/info.ui.h:1 -msgid "Active Network Connections" -msgstr "有効なネットワーク接続" +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "ポート(_P):" -#: ../src/info.ui.h:2 -msgid "Connection Information" -msgstr "接続情報" +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "速度(_S):" -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "有線 802.1X の認証" +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "全二重(_X)" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:4 -msgid "_Network name:" -msgstr "ネットワーク名(_N):" +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "オートネゴシエーション(_O)" -#: ../src/connection-editor/ce-page.c:67 -msgid "automatic" -msgstr "自動" +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "デバイスの MAC アドレス(_D):" -#: ../src/connection-editor/ce-page.c:305 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "不明なエラーのため接続 secret を更新できませんでした。" +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "クローンした MAC アドレス(_L):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "ここに入力された MAC アドレスは、この接続で利用するネットワークデバイスに使われるハードウェアアドレスとして使用されます。この機能は MAC クローニングあるいはMAC スプーフィングとして知られています。例: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-vlan.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "MTU(_M):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-vlan.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "バイト" -#: ../src/connection-editor/ce-ip4-routes.ui.h:1 -#: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 -msgid "" -"IP addresses identify your computer on the network. Click the \"Add\" " -"button to add an IP address." +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" msgstr "" -"IP アドレスはネットワーク上のコンピューターを識別します。\"追加\" ボタンを押" -"すとIP アドレスを追加できます。" -#: ../src/connection-editor/ce-ip4-routes.ui.h:2 -#: ../src/connection-editor/ce-ip6-routes.ui.h:2 -msgid "" -"If enabled, this connection will never be used as the default network " -"connection." +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" msgstr "" -"有効になっている場合、この接続は決してデフォルトのネットワーク接続として 使用" -"されません。" - -#: ../src/connection-editor/ce-ip4-routes.ui.h:3 -#: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" -msgstr "自動取得したルートを無視する(_N)" - -#: ../src/connection-editor/ce-ip4-routes.ui.h:4 -#: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "Use this c_onnection only for resources on its network" -msgstr "そのネットワーク上のリソースのためにのみこの接続を使用(_O)" - -#: ../src/connection-editor/ce-page-dsl.ui.h:1 -#: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 -#: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "パスワードを表示(_W)" - -#: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "パスワード(_P):" - -#: ../src/connection-editor/ce-page-dsl.ui.h:3 -msgid "_Service:" -msgstr "サービス(_S):" - -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 -#: ../src/wireless-security/eap-method-leap.ui.h:3 -#: ../src/wireless-security/eap-method-simple.ui.h:4 -#: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "ユーザー名(_U):" -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -msgid "Addresses" -msgstr "アドレス" +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +#, fuzzy +msgid "Connected" +msgstr "切断されています" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 -msgid "Automatic" -msgstr "自動" +msgid "Automatic with manual DNS settings" +msgstr "自動 (DNS 設定は手動)" #: ../src/connection-editor/ce-page-ip4.ui.h:3 #: ../src/connection-editor/ce-page-ip6.ui.h:3 -msgid "Automatic with manual DNS settings" -msgstr "自動 (DNS 設定は手動)" +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "手動" #: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" -msgstr "DHCP クライアント ID(_H):" +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "リンクローカル" #: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "" -"Domains used when resolving host names. Use commas to separate multiple " -"domains." -msgstr "" -"ホスト名を解決する時に使用するドメイン。複数のドメインを分離する時はコンマを " -"使います。" +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "他のコンピューターへ共有" -#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 #: ../src/connection-editor/ce-page-ip6.ui.h:6 -msgid "" -"IP addresses of domain name servers used to resolve host names. Use commas " -"to separate multiple domain name server addresses." -msgstr "" -"ドメインネームサーバーの IP アドレスはホスト名を解決するために使用されます。 " -"コンマを使用して複数のドメインネームサーバーアドレスを分離します。" +msgid "_Method:" +msgstr "方式(_M):" -#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip4.ui.h:7 #: ../src/connection-editor/ce-page-ip6.ui.h:7 -msgid "Link-Local" -msgstr "リンクローカル" +msgid "Addresses" +msgstr "アドレス" #: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 -#: ../src/connection-editor/page-ip4.c:169 -#: ../src/connection-editor/page-ip6.c:191 -msgid "Manual" -msgstr "手動" +msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." +msgstr "DHCP クライアント識別子の使用で、ネットワーク管理者はコンピューターの設定を カスタマイズできます。DHCP クライアント識別子を使用したい場合は、ここに入力します。" #: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv4 addressing for this connection to complete" -msgstr "この接続を完了するには IPv4 アドレス化が必要になります" +#: ../src/connection-editor/ce-page-ip6.ui.h:9 +msgid "Domains used when resolving host names. Use commas to separate multiple domains." +msgstr "ホスト名を解決する時に使用するドメイン。複数のドメインを分離する時はコンマを 使います。" #: ../src/connection-editor/ce-page-ip4.ui.h:11 -#: ../src/connection-editor/ce-page-ip6.ui.h:10 -#: ../src/connection-editor/page-ip4.c:187 -#: ../src/connection-editor/page-ip6.c:211 -msgid "Shared to other computers" -msgstr "他のコンピューターへ共有" +msgid "D_HCP client ID:" +msgstr "DHCP クライアント ID(_H):" #: ../src/connection-editor/ce-page-ip4.ui.h:12 -msgid "" -"The DHCP client identifier allows the network administrator to customize " -"your computer's configuration. If you wish to use a DHCP client identifier, " -"enter it here." -msgstr "" -"DHCP クライアント識別子の使用で、ネットワーク管理者はコンピューターの設定を " -"カスタマイズできます。DHCP クライアント識別子を使用したい場合は、ここに それ" -"を入力します。" +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 +msgid "S_earch domains:" +msgstr "ドメインを検索(_E):" #: ../src/connection-editor/ce-page-ip4.ui.h:13 -msgid "" -"When connecting to IPv6-capable networks, allows the connection to complete " -"if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "" -"IPv4 設定が失敗して、IPv6 設定が成功する場合、IPv6 対応のネットワークに接続す" -"る時に、 接続が完了するまで待ちます。" +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 +msgid "_DNS servers:" +msgstr "DNS サーバー(_D):" #: ../src/connection-editor/ce-page-ip4.ui.h:14 #: ../src/connection-editor/ce-page-ip6.ui.h:12 -msgid "_DNS servers:" -msgstr "DNS サーバー(_D):" +msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." +msgstr "ドメインネームサーバーの IP アドレスはホスト名を解決するために使用されます。 コンマを使用して複数のドメインネームサーバーアドレスを分離します。" #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 -msgid "_Method:" -msgstr "方式(_M):" +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "この接続を完了するには IPv4 アドレス化が必要になります(_4)" #: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Routes…" -msgstr "ルート(_R)…" +msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "IPv4 設定が失敗して、IPv6 設定が成功する場合、IPv6 対応のネットワークに接続する時に接続が完了するまで待ちます。" #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 -msgid "_Search domains:" -msgstr "ドメインを検索(_S):" +msgid "_Routes…" +msgstr "ルート(_R)…" -#: ../src/connection-editor/ce-page-ip6.ui.h:9 -msgid "Require IPv6 addressing for this connection to complete" -msgstr "この接続が完了するには IPv6 アドレス化が必要になります" +#: ../src/connection-editor/ce-page-ip6.ui.h:13 +msgid "Require IPv_6 addressing for this connection to complete" +msgstr "この接続が完了するには IPv6 アドレス化が必要になります(_6)" -#: ../src/connection-editor/ce-page-ip6.ui.h:11 -msgid "" -"When connecting to IPv4-capable networks, allows the connection to complete " -"if IPv6 configuration fails but IPv4 configuration succeeds." -msgstr "" -"IPv6 設定が失敗して、IPv4 設定が成功する場合、IPv4 対応のネットワークに接続す" -"る時に その接続が完了するまで待ちます。" +#: ../src/connection-editor/ce-page-ip6.ui.h:14 +msgid "When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds." +msgstr "IPv6 設定が失敗して、IPv4 設定が成功する場合、IPv4 対応のネットワークに接続する時に接続が完了するまで待ちます。" #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "何でも" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -msgid "Advanced" -msgstr "高度" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -msgid "Allow roaming if home network is not available" -msgstr "ホームネットワークが利用できない場合にローミングを許可" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "3G 優先 (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "何でも" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "2G 優先 (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 -msgid "Basic" -msgstr "基本" +#, fuzzy +msgid "Prefer 4G (LTE)" +msgstr "3G 優先 (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "変更..." +msgid "Use only 4G (LTE)" +msgstr "" #: ../src/connection-editor/ce-page-mobile.ui.h:8 -msgid "N_etwork ID:" -msgstr "ネットワーク ID(_E):" +msgid "Basic" +msgstr "基本" #: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "番号(_M):" -#: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "PI_N:" -msgstr "PIN 番号(_N):" - -#: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "2G 優先 (GPRS/EDGE)" - #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "3G 優先 (UMTS/HSPA)" +msgid "Advanced" +msgstr "高度" #: ../src/connection-editor/ce-page-mobile.ui.h:13 +msgid "_APN:" +msgstr "APN(_A):" + +#: ../src/connection-editor/ce-page-mobile.ui.h:14 +msgid "N_etwork ID:" +msgstr "ネットワーク ID(_E):" + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "タイプ(_T):" + +#: ../src/connection-editor/ce-page-mobile.ui.h:16 +msgid "Change..." +msgstr "変更..." + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "P_IN:" +msgstr "PIN 番号(_I):" + +#: ../src/connection-editor/ce-page-mobile.ui.h:18 +msgid "Allow _roaming if home network is not available" +msgstr "ホームネットワークが利用できない場合にローミングを許可(_R)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:19 msgid "Sho_w passwords" msgstr "パスワードを表示(_W)" -#: ../src/connection-editor/ce-page-mobile.ui.h:14 -msgid "_APN:" -msgstr "APN(_A):" +#: ../src/connection-editor/ce-page-ppp.ui.h:1 +msgid "Authentication" +msgstr "認証" + +#: ../src/connection-editor/ce-page-ppp.ui.h:2 +msgid "Allowed methods:" +msgstr "利用可能な認証方法:" + +# "auth_methods_button"ボタンのラベル +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "認証方法を設定する(_M)…" + +#: ../src/connection-editor/ce-page-ppp.ui.h:4 +msgid "Compression" +msgstr "圧縮" + +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "MPPE (ポイントツーポイント暗号化) を使用(_U)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:6 +msgid "_Require 128-bit encryption" +msgstr "128-bit の暗号化を要求(_R)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:7 +msgid "Use _stateful MPPE" +msgstr "ステートフル MPPE を使用(_S)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:8 +msgid "Allow _BSD data compression" +msgstr "BSD データ圧縮を許可する(_B)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:9 +msgid "Allow _Deflate data compression" +msgstr "Deflate データ圧縮を許可する(_D)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:10 +msgid "Use TCP _header compression" +msgstr "TCP ヘッダー圧縮を使用(_H)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:11 +msgid "Echo" +msgstr "Echo" + +#: ../src/connection-editor/ce-page-ppp.ui.h:12 +msgid "Send PPP _echo packets" +msgstr "PPP Echo のパケットを送信(_E)" + +#: ../src/connection-editor/ce-page-vlan.ui.h:1 +#, fuzzy +msgid "_Parent interface:" +msgstr "インターフェース:" + +#: ../src/connection-editor/ce-page-vlan.ui.h:2 +msgid "VLAN interface _name:" +msgstr "" + +#: ../src/connection-editor/ce-page-vlan.ui.h:3 +#, fuzzy +msgid "_Cloned MAC address:" +msgstr "クローンした MAC アドレス(_L):" + +#: ../src/connection-editor/ce-page-vlan.ui.h:6 +msgid "VLAN _id:" +msgstr "" + +#. In context, this means "concatenate the device name and the VLAN ID number together" +#: ../src/connection-editor/ce-page-vlan.ui.h:8 +msgid "Device name + number" +msgstr "" + +#. LEAVE "vlan" UNTRANSLATED. In context, this means "concatenate the string 'vlan' and the VLAN ID number together". +#: ../src/connection-editor/ce-page-vlan.ui.h:10 +msgid "\"vlan\" + number" +msgstr "" + +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "セキュリティ(_E):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:2 +msgid "A (5 GHz)" +msgstr "a (5 GHz)" + +#: ../src/connection-editor/ce-page-wifi.ui.h:3 +msgid "B/G (2.4 GHz)" +msgstr "b/g (2.4 GHz)" + +#: ../src/connection-editor/ce-page-wifi.ui.h:4 +msgid "Infrastructure" +msgstr "インフラストラクチャ" + +#: ../src/connection-editor/ce-page-wifi.ui.h:5 +msgid "Ad-hoc" +msgstr "アドホック" + +#: ../src/connection-editor/ce-page-wifi.ui.h:11 +msgid "mW" +msgstr "mW" + +#: ../src/connection-editor/ce-page-wifi.ui.h:12 +msgid "Transmission po_wer:" +msgstr "送信パワー(_W):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:13 +msgid "Mb/s" +msgstr "Mb/s" + +#: ../src/connection-editor/ce-page-wifi.ui.h:14 +msgid "_Rate:" +msgstr "レート(_R):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +msgid "_BSSID:" +msgstr "BSSID(_B):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:16 +msgid "C_hannel:" +msgstr "チャンネル(_H):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:17 +msgid "Ban_d:" +msgstr "バンド(_D):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:18 +msgid "M_ode:" +msgstr "モード(_O):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:19 +msgid "SS_ID:" +msgstr "SSID(_I):" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 +msgid "Allowed Authentication Methods" +msgstr "許可された認証方法" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 +msgid "_EAP" +msgstr "EAP(_E)" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +msgid "Extensible Authentication Protocol" +msgstr "拡張認証プロトコル (EAP)" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "PAP(_P)" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +msgid "Password Authentication Protocol" +msgstr "パスワード認証プロトコル (PAP)" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 +msgid "C_HAP" +msgstr "CHAP(_H)" + +# http://technet.microsoft.com/ja-jp/library/cc757631(WS.10).aspx +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 +msgid "Challenge Handshake Authentication Protocol" +msgstr "チャレンジハンドシェイク認証プロトコル (CHAP)" -#: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "タイプ(_T):" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "_MSCHAP" +msgstr "MSCHAP(_M)" -#: ../src/connection-editor/ce-page-ppp.ui.h:1 -msgid "Allow _BSD data compression" -msgstr "BSD データ圧縮を許可する(_B)" +# http://technet.microsoft.com/ja-jp/library/cc758984(WS.10).aspx +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft チャレンジハンドシェイク認証プロトコル (MS-CHAP)" -#: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "Deflate データ圧縮を許可する(_D)" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "MSCHAP v_2" +msgstr "MSCHAP v2(_2)" -#: ../src/connection-editor/ce-page-ppp.ui.h:3 -msgid "Allowed methods:" -msgstr "利用可能な認証方法:" +# http://technet.microsoft.com/ja-jp/library/cc739678(WS.10).aspx +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft チャレンジハンドシェイク認証プロトコル バージョン2 (MS-CHAP v2)" -#: ../src/connection-editor/ce-page-ppp.ui.h:4 -msgid "Authentication" -msgstr "認証" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 +msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." +msgstr "ほとんどの場合、プロバイダーの PPP サーバーはすべての認証方法をサポートしています。 接続が失敗する場合は、一部の認証方法を無効にしてみてください。" -#: ../src/connection-editor/ce-page-ppp.ui.h:5 -msgid "Compression" -msgstr "圧縮" +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "アドレス" -# "auth_methods_button"ボタンのラベル -#: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" -msgstr "認証方法を設定する(_M)…" +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "ネットマスク" -#: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" -msgstr "Echo" +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "ゲートウェイ" -#: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" -msgstr "PPP Echo のパケットを送信(_E)" +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "メトリック" -#: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" -msgstr "TCP ヘッダー圧縮を使用(_H)" +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "プレフィックス" -#: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" -msgstr "ステートフル MPPE を使用(_S)" +#: ../src/connection-editor/new-connection.c:100 +#: ../src/connection-editor/page-ethernet.c:251 +#: ../src/libnm-gtk/nm-ui-utils.c:323 +#, fuzzy +msgid "Ethernet" +msgstr "自動イーサネット" -#: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" -msgstr "128-bit の暗号化を要求(_R)" +#: ../src/connection-editor/new-connection.c:106 +#: ../src/connection-editor/page-wifi.c:470 ../src/libnm-gtk/nm-ui-utils.c:325 +msgid "Wi-Fi" +msgstr "" -#: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "MPPE (ポイントツーポイント暗号化) を使用(_U)" +#: ../src/connection-editor/new-connection.c:118 +#: ../src/connection-editor/page-wimax.c:134 +#: ../src/libnm-gtk/nm-ui-utils.c:331 ../src/mb-menu-item.c:75 +msgid "WiMAX" +msgstr "WiMAX" -#: ../src/connection-editor/ce-page-wired.ui.h:1 -msgid "1 Gb/s" -msgstr "1 Gb/s" +#: ../src/connection-editor/new-connection.c:124 +#: ../src/connection-editor/page-dsl.c:141 +msgid "DSL" +msgstr "DSL" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 Gb/s" +#: ../src/connection-editor/new-connection.c:130 +#: ../src/connection-editor/page-infiniband.c:168 +#: ../src/libnm-gtk/nm-ui-utils.c:335 +msgid "InfiniBand" +msgstr "" -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "10 Mb/s" -msgstr "10 Mb/s" +#: ../src/connection-editor/new-connection.c:136 +#: ../src/connection-editor/page-bond.c:747 ../src/libnm-gtk/nm-ui-utils.c:337 +msgid "Bond" +msgstr "" -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "100 Mb/s" -msgstr "100 Mb/s" +#: ../src/connection-editor/new-connection.c:142 +#: ../src/connection-editor/page-vlan.c:480 ../src/libnm-gtk/nm-ui-utils.c:339 +msgid "VLAN" +msgstr "" -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" +#: ../src/connection-editor/new-connection.c:155 +#: ../src/connection-editor/new-connection.c:295 +#: ../src/connection-editor/page-vpn.c:113 +msgid "VPN" +msgstr "VPN" -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "オートネゴシエーション(_O)" +#: ../src/connection-editor/new-connection.c:245 +#, fuzzy +msgid "Hardware" +msgstr "ハードウェアアドレス:" -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" +#: ../src/connection-editor/new-connection.c:265 +msgid "Virtual" +msgstr "" -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "Full duple_x" -msgstr "全二重(_X)" +#: ../src/connection-editor/new-connection.c:333 +#: ../src/connection-editor/new-connection.c:335 +#, fuzzy +msgid "Import a saved VPN configuration..." +msgstr "VPN 接続をエクスポートする..." -#: ../src/connection-editor/ce-page-wired.ui.h:10 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "MT_U:" -msgstr "MTU(_U):" +#: ../src/connection-editor/new-connection.c:364 +msgid "The connection editor dialog could not be initialized due to an unknown error." +msgstr "接続エディターのダイアログは不明なエラーのために初期化出来ませんでした。" -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "Media Independent Interface (MII)" +#: ../src/connection-editor/new-connection.c:373 +msgid "Could not create new connection" +msgstr "新しい接続を作成できませんでした" -#: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"ここに入力された MAC アドレスは、この接続で利用するネットワークデバイスに使わ" -"れるハードウェアアドレスとして使用されます。この機能は MACクローニングあるい" -"はMAC スプーフィングとして知られています。例: 00:11:22:33:44:55" +#: ../src/connection-editor/new-connection.c:508 +msgid "Connection delete failed" +msgstr "接続の削除に失敗しました" -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Twisted Pair (TP)" -msgstr "ツイストペア (TP)" +#: ../src/connection-editor/new-connection.c:555 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "本当に 接続 %s を削除したいのですか ?" -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "_Cloned MAC address:" -msgstr "クローンした MAC アドレス(_C):" +#: ../src/connection-editor/nm-connection-editor.c:111 +#, c-format +msgid "Editing %s" +msgstr "%s の編集" -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 -msgid "_Device MAC address:" -msgstr "デバイスの MAC アドレス(_D):" +#: ../src/connection-editor/nm-connection-editor.c:115 +msgid "Editing un-named connection" +msgstr "無名の接続を編集" -#: ../src/connection-editor/ce-page-wired.ui.h:16 -msgid "_Port:" -msgstr "ポート(_P):" +#: ../src/connection-editor/nm-connection-editor.c:302 +msgid "The connection editor could not find some required resources (the .ui file was not found)." +msgstr "接続エディターは必要ないくつかのリソースをみつけられませんでした (.ui ファイルがみつかりませんでした)。" -#: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Speed:" -msgstr "速度(_S):" +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "_Save" +msgstr "保存(_S)" -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:19 -msgid "bytes" -msgstr "バイト" +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "Save any changes made to this connection." +msgstr "この接続に対しての変更をすべて保存します。" -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -msgid "A (5 GHz)" -msgstr "a (5 GHz)" +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "_Save..." +msgstr "保存(_S)..." -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "アドホック" +#: ../src/connection-editor/nm-connection-editor.c:432 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "このマシンのすべてのユーザー用接続の保存を認証する。" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 -msgid "B/G (2.4 GHz)" -msgstr "b/g (2.4 GHz)" +#: ../src/connection-editor/nm-connection-editor.c:448 +#, fuzzy +msgid "Could not create connection" +msgstr "新しい接続を作成できませんでした" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" -msgstr "バンド(_D):" +#: ../src/connection-editor/nm-connection-editor.c:448 +msgid "Could not edit connection" +msgstr "接続を編集できませんでした" -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "チャンネル(_H):" +#: ../src/connection-editor/nm-connection-editor.c:450 +#, fuzzy +msgid "Unknown error creating connection editor dialog." +msgstr "接続エディターダイアログの作成中にエラーです。" -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "Infrastructure" -msgstr "インフラストラクチャ" +#: ../src/connection-editor/nm-connection-editor.c:556 +msgid "Error saving connection" +msgstr "接続情報の保存中にエラー" -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" -msgstr "モード(_O):" +#: ../src/connection-editor/nm-connection-editor.c:557 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "プロパティ '%s' / '%s' は無効です: %d" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "Mb/s" -msgstr "Mb/s" +#: ../src/connection-editor/nm-connection-editor.c:659 +msgid "Error initializing editor" +msgstr "エディターの初期化中にエラーです" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 -msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "" -"このオプションはここに入力してある BSSID で指定されたワイヤレス アクセスポイ" -"ント (AP) へこの接続をロックします。" +#: ../src/connection-editor/nm-connection-editor.c:973 +msgid "Connection add failed" +msgstr "接続の追加に失敗しました" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 -msgid "Transmission po_wer:" -msgstr "送信パワー(_W):" +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "接続名(_N):" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 -msgid "_BSSID:" -msgstr "BSSID(_B):" +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "自動接続する(_A) " -#: ../src/connection-editor/ce-page-wireless.ui.h:17 -msgid "_Rate:" -msgstr "レート(_R):" +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "すべてのユーザーに利用可能(_V)" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_SSID:" -msgstr "SSID(_S):" +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +#, fuzzy +msgid "_Export..." +msgstr "エクスポート(_X)" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "mW" -msgstr "mW" +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "未接続" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "_Security:" -msgstr "セキュリティ(_S):" +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "接続中" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 -msgid "Allowed Authentication Methods" -msgstr "許可された認証方法" +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d 分前" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 -msgid "C_HAP" -msgstr "CHAP(_H)" +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d 時間前" -# http://technet.microsoft.com/ja-jp/library/cc757631(WS.10).aspx -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 -msgid "Challenge Handshake Authentication Protocol" -msgstr "チャレンジハンドシェイク認証プロトコル (CHAP)" +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d 日前" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 -msgid "Extensible Authentication Protocol" -msgstr "拡張認証プロトコル (EAP)" +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d ヶ月前" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 -msgid "" -"In most cases, the provider's PPP servers will support all authentication " -"methods. If connections fail, try disabling support for some methods." -msgstr "" -"ほとんどのケースでプロバイダーの PPP サーバーはすべての認証方法をサポートして" -"います。 接続が失敗する場合は、一部の認証方法を無効にしてみてください。" +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "%d 年前" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v2(_2)" +#: ../src/connection-editor/nm-connection-list.c:628 +msgid "Name" +msgstr "名前" -# http://technet.microsoft.com/ja-jp/library/cc758984(WS.10).aspx -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft チャレンジハンドシェイク認証プロトコル (MS-CHAP)" +#: ../src/connection-editor/nm-connection-list.c:641 +msgid "Last Used" +msgstr "前回の使用" -# http://technet.microsoft.com/ja-jp/library/cc739678(WS.10).aspx -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "" -"Microsoft チャレンジハンドシェイク認証プロトコル バージョン2 (MS-CHAP v2)" +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Edit the selected connection" +msgstr "選択した接続を編集する" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" -msgstr "パスワード認証プロトコル (PAP)" +#: ../src/connection-editor/nm-connection-list.c:684 +msgid "_Edit..." +msgstr "編集(_E)..." -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "EAP(_E)" +#: ../src/connection-editor/nm-connection-list.c:685 +msgid "Authenticate to edit the selected connection" +msgstr "選択した接続の編集を認証する" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "MSCHAP(_M)" +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Delete the selected connection" +msgstr "選択した接続を削除する" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "PAP(_P)" +#: ../src/connection-editor/nm-connection-list.c:701 +msgid "_Delete..." +msgstr "削除(_D)..." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/nm-connection-list.c:702 +msgid "Authenticate to delete the selected connection" +msgstr "選択した接続の削除を認証する" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "VPN 接続の種類を選んでください" +#: ../src/connection-editor/nm-connection-list.c:939 +msgid "Error creating connection" +msgstr "接続の作成中にエラー" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "作成…" +#: ../src/connection-editor/nm-connection-list.c:940 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "接続 '%s' の作成方法がわかりません" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" -"新規接続で使用したい VPN のタイプを選択してください。作成したい VPN 接続の種" -"類が一覧に無い場合は、正しい VPN プラグインをインストールしていないかもしれま" -"せん。" +#: ../src/connection-editor/nm-connection-list.c:995 +msgid "Error editing connection" +msgstr "接続を編集しようとしてエラー" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:901 -#: ../src/connection-editor/page-ip6.c:867 -msgid "Address" -msgstr "アドレス" +#: ../src/connection-editor/nm-connection-list.c:996 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "UUID '%s' の接続を発見できませんでした" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:918 -msgid "Netmask" -msgstr "ネットマスク" +#: ../src/connection-editor/page-8021x-security.c:121 +msgid "802.1x Security" +msgstr "802.1x セキュリティ" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:935 -#: ../src/connection-editor/page-ip6.c:901 -msgid "Gateway" -msgstr "ゲートウェイ" +#: ../src/connection-editor/page-8021x-security.c:123 +#, fuzzy +msgid "Could not load 802.1x Security user interface." +msgstr "WiFi セキュリティユーザーインターフェースを読み込めません。" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "メトリック" +#: ../src/connection-editor/page-8021x-security.c:141 +msgid "Use 802.1_X security for this connection" +msgstr "この接続に 802.1x セキュリティを使用する(_X)" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:884 -msgid "Prefix" -msgstr "接頭辞" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1482 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:750 +#, fuzzy +msgid "Could not load bond user interface." +msgstr "有線のユーザーインターフェースを読み込めません。" -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-bond.c:910 +#, fuzzy, c-format +msgid "Bond connection %d" +msgstr "有線接続 %d" + +#: ../src/connection-editor/page-dsl.c:143 msgid "Could not load DSL user interface." -msgstr "DSL ユーザーインターフェイスをロードできませんでした。" +msgstr "DSL ユーザーインターフェースをロードできませんでした。" -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:235 #, c-format msgid "DSL connection %d" msgstr "DSL 接続 %d" +#: ../src/connection-editor/page-ethernet.c:90 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:113 +#: ../src/connection-editor/page-wimax.c:70 +msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "このオプションはここに入力してある MAC アドレスで指定されたネットワークデバイスで、この接続をロックします。例: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:253 +#, fuzzy +msgid "Could not load ethernet user interface." +msgstr "有線のユーザーインターフェースを読み込めません。" + +#: ../src/connection-editor/page-ethernet.c:396 +#, fuzzy, c-format +msgid "Ethernet connection %d" +msgstr "有線接続 %d" + +#: ../src/connection-editor/page-infiniband.c:171 +#, fuzzy +msgid "Could not load InfiniBand user interface." +msgstr "WiFi ユーザーインターフェースをロード出来ませんでした。" + +#: ../src/connection-editor/page-infiniband.c:263 +#, fuzzy, c-format +msgid "InfiniBand connection %d" +msgstr "有線接続 %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1596,77 +2067,79 @@ msgid "Disabled" msgstr "無効になっています" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "追加の DNS サーバー(_D):" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "追加の検索ドメイン(_E):" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "%s 用の IPv4 ルートを編集" -#: ../src/connection-editor/page-ip4.c:982 +#: ../src/connection-editor/page-ip4.c:994 msgid "IPv4 Settings" msgstr "IPv4 のセッティング" -#: ../src/connection-editor/page-ip4.c:984 +#: ../src/connection-editor/page-ip4.c:996 msgid "Could not load IPv4 user interface." -msgstr "IPv4 ユーザーインターフェイスをロードできませんでした。" +msgstr "IPv4 ユーザーインターフェースを読み込めません。" #: ../src/connection-editor/page-ip6.c:143 msgid "Automatic, addresses only" msgstr "自動、アドレスのみ" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "無視する" #: ../src/connection-editor/page-ip6.c:179 msgid "Automatic, DHCP only" -msgstr "自動、 DHCP のみ" +msgstr "自動、DHCP のみ" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "%s 用の IPv6 ルートを編集" -#: ../src/connection-editor/page-ip6.c:946 +#: ../src/connection-editor/page-ip6.c:958 msgid "IPv6 Settings" msgstr "IPv6 のセッティング" -#: ../src/connection-editor/page-ip6.c:948 +#: ../src/connection-editor/page-ip6.c:960 msgid "Could not load IPv6 user interface." -msgstr "IPv6 ユーザーインターフェイスをロードできませんでした。" +msgstr "IPv6 ユーザーインターフェースを読み込めません。" -#: ../src/connection-editor/page-mobile.c:381 +#: ../src/connection-editor/page-mobile.c:391 msgid "Could not load mobile broadband user interface." -msgstr "" -"モバイルブロードバンドのユーザーインターフェイスをロードできませんでした。" +msgstr "モバイルブロードバンドのユーザーインターフェースを読み込めません。" -#: ../src/connection-editor/page-mobile.c:398 +#: ../src/connection-editor/page-mobile.c:408 msgid "Unsupported mobile broadband connection type." msgstr "サポートされていないモバイルブロードバンドの接続タイプ。" #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:658 msgid "Select Mobile Broadband Provider Type" msgstr "モバイルブロードバンドプロバイダーのタイプを選択" -#: ../src/connection-editor/page-mobile.c:674 -msgid "" -"Select the technology your mobile broadband provider uses. If you are " -"unsure, ask your provider." -msgstr "" -"モバイルブロードバンドのプロバイダーが使用する技術を選択してください。 不明な" -"場合は、プロバイダーに尋ねてください。" +#: ../src/connection-editor/page-mobile.c:693 +msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." +msgstr "モバイルブロードバンドのプロバイダーが使用する技術を選択してください。 不明な場合は、プロバイダーに尋ねてください。" -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:698 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "" -"私のプロバイダーは GSM ベースの技術 (例えば、 GPRS, EDGE, UMTS, HSDPA) を使用" -"します(_G)" +msgstr "私のプロバイダーは GSM ベースの技術 (例えば、 GPRS, EDGE, UMTS, HSDPA) を使用します(_G)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:705 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "" -"私のプロバイダーは CDMA ベースの技術 (例えば、1xRTT, EVDO)を使用します(_D)" +msgstr "私のプロバイダーは CDMA ベースの技術 (例えば、1xRTT, EVDO)を使用します(_D)" #: ../src/connection-editor/page-ppp.c:134 msgid "EAP" @@ -1683,6 +2156,7 @@ msgstr "CHAP" #: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 #: ../src/wireless-security/eap-method-peap.c:246 #: ../src/wireless-security/eap-method-ttls.c:263 msgid "MSCHAPv2" @@ -1701,296 +2175,42 @@ #: ../src/connection-editor/page-ppp.c:201 #, c-format msgid "Editing PPP authentication methods for %s" -msgstr "%s 用の PPP 認証法を編集" +msgstr "%s 用の PPP 認証方法を編集" -#: ../src/connection-editor/page-ppp.c:283 +#: ../src/connection-editor/page-ppp.c:284 msgid "PPP Settings" -msgstr "PPP のセッティング" +msgstr "PPP の設定" -#: ../src/connection-editor/page-ppp.c:285 +#: ../src/connection-editor/page-ppp.c:286 msgid "Could not load PPP user interface." -msgstr "PPP ユーザーインターフェイスをロードできませんでした。" +msgstr "PPP ユーザーインターフェースを読み込めません。" -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1478 -msgid "VPN" -msgstr "VPN" +#: ../src/connection-editor/page-vlan.c:482 +#, fuzzy +msgid "Could not load vlan user interface." +msgstr "IPv4 ユーザーインターフェースを読み込めません。" -#: ../src/connection-editor/page-vpn.c:111 +#: ../src/connection-editor/page-vlan.c:678 +#, fuzzy, c-format +msgid "VLAN connection %d" +msgstr "VPN 接続 %d" + +#: ../src/connection-editor/page-vpn.c:115 msgid "Could not load VPN user interface." -msgstr "VPN ユーザーインターフェイスをロードできませんでした。" +msgstr "VPN ユーザーインターフェースを読み込めません。" -#: ../src/connection-editor/page-vpn.c:126 +#: ../src/connection-editor/page-vpn.c:130 #, c-format msgid "Could not find VPN plugin service for '%s'." -msgstr "'%s' 用の VPN プラグイン・サービスが見付かりませんでした。" +msgstr "'%s' 用の VPN プラグインサービスが見付かりませんでした。" -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:884 +#: ../src/connection-editor/page-vpn.c:224 +#: ../src/connection-editor/page-vpn.c:321 #, c-format msgid "VPN connection %d" msgstr "VPN 接続 %d" -#: ../src/connection-editor/page-wired.c:88 -#: ../src/connection-editor/page-wireless.c:93 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"このオプションはここに入力してあるMACアドレスで指定されたネットワークデバイス" -"で、この接続をロックします。例: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:267 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -#: ../src/connection-editor/nm-connection-list.c:1466 -msgid "Wired" -msgstr "有線" - -#: ../src/connection-editor/page-wired.c:269 -msgid "Could not load wired user interface." -msgstr "有線のユーザーインターフェイスをロードできませんでした。" - -#: ../src/connection-editor/page-wired.c:444 -#, c-format -msgid "Wired connection %d" -msgstr "有線接続 %d" - -#: ../src/connection-editor/page-wired-security.c:116 -msgid "802.1x Security" -msgstr "802.1x セキュリティ" - -#: ../src/connection-editor/page-wired-security.c:118 -msgid "Could not load Wired Security security user interface." -msgstr "有線セキュリティのユーザーインターフェイスを読み込めませんでした。" - -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1X security for this connection" -msgstr "この接続に 802.1x セキュリティを使用する" - -#: ../src/connection-editor/page-wireless.c:166 -#: ../src/connection-editor/page-wireless.c:170 -#: ../src/connection-editor/page-wireless.c:191 -#, c-format -msgid "default" -msgstr "デフォルト" - -#: ../src/connection-editor/page-wireless.c:195 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:452 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -#: ../src/connection-editor/nm-connection-list.c:1470 -msgid "Wireless" -msgstr "無線" - -#: ../src/connection-editor/page-wireless.c:454 -msgid "Could not load WiFi user interface." -msgstr "WiFi ユーザーインターフェイスをロード出来ませんでした。" - -#: ../src/connection-editor/page-wireless.c:658 -#, c-format -msgid "Wireless connection %d" -msgstr "無線接続 %d" - -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "WEP 40/128-bit キー (HEX または ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 -msgid "WEP 128-bit Passphrase" -msgstr "WEP 128-bit パスフレーズ" - -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 -msgid "Dynamic WEP (802.1x)" -msgstr "動的 WEP (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 -msgid "WPA & WPA2 Personal" -msgstr "WPA & WPA2 Personal" - -# そういう仕様の名前なので訳すべきでない。 -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA & WPA2 Enterprise" - -#: ../src/connection-editor/page-wireless-security.c:360 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"WiFi セキュリティユーザーインターフェイスをロード出来ませんでした。WiFi セッ" -"ティングがありません。" - -#: ../src/connection-editor/page-wireless-security.c:370 -msgid "Wireless Security" -msgstr "無線セキュリティ" - -#: ../src/connection-editor/page-wireless-security.c:372 -msgid "Could not load WiFi security user interface." -msgstr "WiFi セキュリティユーザーインターフェイスをロード出来ませんでした。" - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "%s の編集" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "無名の接続を編集" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"接続エディターは必要ないくつかのリソースをみつけられませんでした (.ui ファイ" -"ルがみつかりませんでした)。" - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "接続エディターダイアログの作成中にエラーです。" - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "保存(_S)" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "この接続に対しての変更をすべて保存します。" - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "保存(_S)..." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "このマシンのすべてのユーザー用接続の保存を認証する。" - -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "すべてのユーザーに利用可能" - -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "自動接続する(_A) " - -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -msgid "Connection _name:" -msgstr "接続名(_N):" - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "エクスポート(_X)" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "インポート(_I)" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "未接続" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "接続中" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "%d 分前" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "%d 時間前" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "%d 日前" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "%d ヶ月前" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "%d 年前" - -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "接続の追加に失敗しました" - -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "接続情報の保存中にエラー" - -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "プロパティ '%s' / '%s' は無効です: %d" - -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:642 -msgid "An unknown error occurred." -msgstr "不明なエラーが発生しました。" - -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:686 -msgid "Error initializing editor" -msgstr "エディターの初期化中にエラーです" - -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:703 -#: ../src/connection-editor/nm-connection-list.c:870 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "" -"接続エディターのダイアログは不明なエラーのために初期化出来ませんでした。" - -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "新しい接続を作成できませんでした" - -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "新規接続を編集できませんでした" - -#: ../src/connection-editor/nm-connection-list.c:717 -msgid "Could not edit connection" -msgstr "接続を編集できませんでした" - -#: ../src/connection-editor/nm-connection-list.c:747 -msgid "Connection delete failed" -msgstr "接続の削除に失敗しました" - -#: ../src/connection-editor/nm-connection-list.c:779 -#, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "本当に 接続 %s を削除したいのですか ?" - -#: ../src/connection-editor/nm-connection-list.c:914 -#: ../src/connection-editor/vpn-helpers.c:227 -msgid "Cannot import VPN connection" -msgstr "VPN 接続をインポートできません" - -#: ../src/connection-editor/nm-connection-list.c:916 +#: ../src/connection-editor/page-vpn.c:250 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2000,116 +2220,136 @@ "\n" "エラー: VPN サービスタイプがありません。" -#: ../src/connection-editor/nm-connection-list.c:929 -msgid "Could not edit imported connection" -msgstr "インポートした接続を編集できませんでした" +#: ../src/connection-editor/page-vpn.c:275 +msgid "Choose a VPN Connection Type" +msgstr "VPN 接続の種類を選んでください" -#: ../src/connection-editor/nm-connection-list.c:1099 -msgid "Name" -msgstr "名前" +#: ../src/connection-editor/page-vpn.c:276 +msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." +msgstr "新規接続で使用したい VPN のタイプを選択してください。作成したい VPN 接続の種類が一覧に無い場合は、正しい VPN プラグインをインストールしていないかもしれません。" -#: ../src/connection-editor/nm-connection-list.c:1111 -msgid "Last Used" -msgstr "前回の使用" +#: ../src/connection-editor/page-wifi.c:98 +#, fuzzy +msgid "This option locks this connection to the Wi-Fi access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "このオプションはここに入力してある BSSID で指定されたワイヤレス アクセスポイント (AP) へこの接続をロックします。" + +#: ../src/connection-editor/page-wifi.c:190 +#: ../src/connection-editor/page-wifi.c:194 +#: ../src/connection-editor/page-wifi.c:215 +#, c-format +msgid "default" +msgstr "デフォルト" + +#: ../src/connection-editor/page-wifi.c:219 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1227 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "" -"VPN プラグインを利用できません。このボタンを有効にするには一つはインストール" -"してください。" +#: ../src/connection-editor/page-wifi.c:472 +#, fuzzy +msgid "Could not load Wi-Fi user interface." +msgstr "WiFi ユーザーインターフェースをロード出来ませんでした。" -#: ../src/connection-editor/nm-connection-list.c:1238 -msgid "_Edit" -msgstr "編集(_E)" +#: ../src/connection-editor/page-wifi.c:649 +#, fuzzy, c-format +msgid "Wi-Fi connection %d" +msgstr "有線接続 %d" -#: ../src/connection-editor/nm-connection-list.c:1239 -msgid "Edit the selected connection" -msgstr "選択した接続を編集する" +#: ../src/connection-editor/page-wifi-security.c:265 +#, fuzzy +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "なし" -#: ../src/connection-editor/nm-connection-list.c:1240 -msgid "_Edit..." -msgstr "編集(_E)..." +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:898 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "WEP 40/128-bit キー (HEX または ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1241 -msgid "Authenticate to edit the selected connection" -msgstr "選択した接続の編集を認証する" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:907 +msgid "WEP 128-bit Passphrase" +msgstr "WEP 128-bit パスフレーズ" -#: ../src/connection-editor/nm-connection-list.c:1256 -msgid "_Delete" -msgstr "削除(_D)" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:937 +msgid "Dynamic WEP (802.1x)" +msgstr "動的 WEP (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1257 -msgid "Delete the selected connection" -msgstr "選択した接続を削除する" +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:951 +msgid "WPA & WPA2 Personal" +msgstr "WPA & WPA2 Personal" -#: ../src/connection-editor/nm-connection-list.c:1258 -msgid "_Delete..." -msgstr "削除(_D)..." +# そういう仕様の名前なので訳すべきでない。 +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:965 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA & WPA2 Enterprise" -#: ../src/connection-editor/nm-connection-list.c:1259 -msgid "Authenticate to delete the selected connection" -msgstr "選択した接続の削除を認証する" +#: ../src/connection-editor/page-wifi-security.c:396 +#, fuzzy +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "WiFi セキュリティユーザーインターフェースを読み込めません。WiFi 設定がありません。" -#: ../src/connection-editor/nm-connection-list.c:1538 -msgid "Error creating connection" -msgstr "接続の作成中にエラー" +#: ../src/connection-editor/page-wifi-security.c:407 +#, fuzzy +msgid "Wi-Fi Security" +msgstr "無線セキュリティ" -#: ../src/connection-editor/nm-connection-list.c:1539 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "接続 '%s' の作成方法がわかりません" +#: ../src/connection-editor/page-wifi-security.c:409 +#, fuzzy +msgid "Could not load Wi-Fi security user interface." +msgstr "WiFi セキュリティユーザーインターフェースを読み込めません。" -#: ../src/connection-editor/nm-connection-list.c:1594 -#: ../src/connection-editor/nm-connection-list.c:1606 -msgid "Error editing connection" -msgstr "接続を編集しようとしてエラー" +#: ../src/connection-editor/page-wimax.c:137 +#, fuzzy +msgid "Could not load WiMAX user interface." +msgstr "WiFi ユーザーインターフェースをロード出来ませんでした。" -#: ../src/connection-editor/nm-connection-list.c:1595 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "接続 '%s' を編集する方法がわかりません" +#: ../src/connection-editor/page-wimax.c:233 +#, fuzzy, c-format +msgid "WiMAX connection %d" +msgstr "有線接続 %d" -#: ../src/connection-editor/nm-connection-list.c:1607 -#, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "UUID '%s' の接続を発見できませんでした" +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "VPN 接続をインポートできません" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" -"The file '%s' could not be read or does not contain recognized VPN " -"connection information\n" +"The file '%s' could not be read or does not contain recognized VPN connection information\n" "\n" "Error: %s." msgstr "" -"ファイル '%s' は読み込めなかったか、または処理できる VPN 接続情報がありませ" -"ん\n" +"ファイル '%s' は読み込めなかったか、または処理できる VPN 接続情報がありません\n" "\n" "エラー: %s" -#: ../src/connection-editor/vpn-helpers.c:261 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "インポートするファイルを選択する" -#: ../src/connection-editor/vpn-helpers.c:309 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "\"%s\" と言うファイルは既に存在します。" -#: ../src/connection-editor/vpn-helpers.c:311 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "入れ替え(_R)" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "%s を、保存している VPN 接続に入れ替えたいですか ?" -#: ../src/connection-editor/vpn-helpers.c:349 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "VPN 接続をエクスポートできません" -#: ../src/connection-editor/vpn-helpers.c:351 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2120,342 +2360,365 @@ "\n" "エラー: %s" -#: ../src/connection-editor/vpn-helpers.c:385 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "VPN 接続をエクスポートする..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "PAN 接続の作成に失敗しました: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." +msgstr "NetworkManager アプレットは必要ないくつかのリソースをみつけられませんでした (.ui ファイルがみつかりません)。" -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "ご使用の電話は今、使用準備ができました" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "Bluetooth の設定はできません (D-Bus への接続に失敗: (%s) %s)。" -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s ネットワーク" +msgid "Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "Bluetooth の設定はできません (NetworkManager の検索中にエラー発生: (%s) %s)。" + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "モバイル電話をネットワークデバイス (PAN/NAP) として使用する" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "モバイル電話 (DUN) を使用してインターネットにアクセスする" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "エラー: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "DUN 接続の作成に失敗しました: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "ご使用の電話は今、使用準備ができました" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "モバイルウィザードは取り消されました" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "不明な電話のデバイスタイプです (GSM や CDMA ではない)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "不明なモデムのタイプです。" + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "電話への接続に失敗しました。" -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "電話が不意に切断されました。" -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "電話の詳細検出がタイムアウトです。" -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "電話の設定を検出中です..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "Bluetooth デバイスが見付かりませんでした。" +#: ../src/gnome-bluetooth/nma-bt-device.c:794 +msgid "The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection." +msgstr "デフォルトの Bluetooth アダプターを有効にしてから後に、ダイアルアップネットワーク接続をセットアップしてください。" -#: ../src/gnome-bluetooth/bt-widget.c:975 -msgid "" -"The default Bluetooth adapter must be enabled before setting up a Dial-Up-" -"Networking connection." -msgstr "" -"デフォルトの Bluetooth アダプターを有効にしてから後に、ダイアルアップネット" -"ワーキング 接続をセットアップしてください。" +#: ../src/gnome-bluetooth/nma-bt-device.c:831 +#, c-format +msgid "Failed to create PAN connection: %s" +msgstr "PAN 接続の作成に失敗しました: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1007 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "Bluetooth の設定はできません (D-Bus への接続に失敗: %s)。" +msgid "%s Network" +msgstr "%s ネットワーク" -#: ../src/gnome-bluetooth/bt-widget.c:1017 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Bluetooth の設定はできません (D-Bus プロキシの作成に失敗)。" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "自動的にこのデバイスをアンロックする" -#: ../src/gnome-bluetooth/bt-widget.c:1026 -#, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"Bluetooth の設定はできません (NetworkManager の検索中にエラー発生: %s)。" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "アンロック(_U)" -#: ../src/gnome-bluetooth/bt-widget.c:1093 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "モバイル電話をネットワークデバイス (PAN/NAP) として使用する" +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "接続情報" -#: ../src/gnome-bluetooth/bt-widget.c:1102 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "モバイル電話 (DUN) を使用してインターネットにアクセスする" +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "有効なネットワーク接続" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 -msgid "" -"Your mobile broadband connection is configured with the following settings:" -msgstr "" -"ご使用のモバイルブロードバンド接続は以下のセッティングで設定されています:" +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 +msgid "Your mobile broadband connection is configured with the following settings:" +msgstr "ご使用のモバイルブロードバンド接続は以下のセッティングで設定されています:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "使用デバイス:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "使用プロバイダー:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "使用プラン:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 -msgid "" -"A connection will now be made to your mobile broadband provider using the " -"settings you selected. If the connection fails or you cannot access network " -"resources, double-check your settings. To modify your mobile broadband " -"connection settings, choose \"Network Connections\" from the System >> " -"Preferences menu." -msgstr "" -"選択したセッティングを使用してご使用のモバイルブロードバンドプロバイダーへ 接" -"続を今することができます。接続が失敗したり、ネットワークリソースにアクセスが " -"できない場合は、そのセッティングをダブルクリックしてください。モバイルブロー" -"ドバンド セッティングを変更するには、システム >> 個人設定メニューから \"ネッ" -"トワーク接続\"を 選択します。" +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 +msgid "A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose \"Network Connections\" from the System >> Preferences menu." +msgstr "選択したセッティングを使用してご使用のモバイルブロードバンドプロバイダーへ 接続を今することができます。接続が失敗したり、ネットワークリソースにアクセスが できない場合は、そのセッティングをダブルクリックしてください。モバイルブロードバンド セッティングを変更するには、システム >> 個人設定メニューから \"ネットワーク接続\"を 選択します。" -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "モバイルブロードバンドセッティングを確定する" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "一覧に無い" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "使用プランの選択(_S):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "選択した APN (Access Point Name)(_A):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" -"Warning: Selecting an incorrect plan may result in billing issues for your " -"broadband account or may prevent connectivity.\n" +"Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"警告: 間違えたプランを選択すると、ブロードバンドアカウントの請求書問題の 原因" -"になったり、接続を阻止したりする可能性があります。\n" +"警告: 間違えたプランを選択すると、ブロードバンドアカウントの請求書問題の原因になったり、接続を阻止したりする可能性があります。\n" "\n" -"ご自分のプランが不明な場合は、そのプランの APN についてプロバイダーにお尋ねく" -"ださい。" +"ご自分のプランが不明な場合は、そのプランの APN についてプロバイダーにお尋ねください。" -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "使用する請求書プランを選択" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "私のプランは一覧に有りません..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "ご使用のプロバイダーを一覧から選択(_L):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "プロバイダー" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "プロバイダーを見つけることができないので手動で入力します(_M):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "プロバイダー:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "私のプロバイダーは GSM 技術 (GPRS, EDGE, UMTS, HSPA) を使用します" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" -msgstr "私のプロバイダーは CDMA 技術 (1xRTT, EVDO) を使用します。" +msgstr "私のプロバイダーは CDMA 技術 (1xRTT, EVDO) を使用します" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "使用プロバイダーを選択" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1080 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "国や地域の一覧:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1092 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "国や地域" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1099 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "私の国は一覧に有りません" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1145 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "使用プロバイダーの国や地域を選択" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1199 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "GSM デバイスがインストールされています" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1202 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "CDMA デバイスがインストールされています" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1374 -msgid "" -"This assistant helps you easily set up a mobile broadband connection to a " -"cellular (3G) network." -msgstr "" -"このアシスタントはユーザーが簡単に携帯 (3G) ネットワークへのモバイルブロード" -"バンド接続 できるように手伝います。" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 +msgid "This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network." +msgstr "このアシスタントはユーザーが簡単に携帯 (3G) ネットワークへのモバイルブロードバンド接続ができるように手伝います。" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1379 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "以下の情報が必要です:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1394 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "使用するブロードバンドプロバイダー名" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1400 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "使用するブロードバンド請求書プラン名" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1406 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(一部のケースで) ブロードバンド請求書プラン APN (Access Point Name)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1433 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "このモバイルブロードバンドデバイス用の接続を作成(_T):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1448 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "すべてのデバイス" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "モバイルブロードバンド接続のセットアップ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1625 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1643 msgid "New Mobile Broadband Connection" msgstr "新規のモバイルブロードバンド接続" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:437 msgid "New..." msgstr "新規..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1052 msgid "C_reate" msgstr "作成(_R)" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 -#, c-format -msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." -msgstr "" -"無線ネットワーク '%s' にアクセスするにはパスワードか、又は暗号化キーが必要で" -"す。" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1136 +#, fuzzy, c-format +msgid "Passwords or encryption keys are required to access the Wi-Fi network '%s'." +msgstr "無線ネットワーク '%s' にアクセスするにはパスワードか、又は暗号化キーが必要です。" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 -msgid "Wireless Network Authentication Required" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1138 +#, fuzzy +msgid "Wi-Fi Network Authentication Required" msgstr "無線ネットワークの認証が必要です" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 -msgid "Authentication required by wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1140 +#, fuzzy +msgid "Authentication required by Wi-Fi network" msgstr "無線ネットワークでは認証が要求されます" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 -msgid "Create New Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +#, fuzzy +msgid "Create New Wi-Fi Network" msgstr "新しい無線ネットワークを作成" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "New wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1147 +#, fuzzy +msgid "New Wi-Fi network" msgstr "新規無線ネットワーク" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 -msgid "Enter a name for the wireless network you wish to create." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1148 +#, fuzzy +msgid "Enter a name for the Wi-Fi network you wish to create." msgstr "作成したい無線ネットワークの名前を入力してください。" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 -msgid "Connect to Hidden Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +#, fuzzy +msgid "Connect to Hidden Wi-Fi Network" msgstr "非表示無線ネットワークに接続する" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Hidden wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +#, fuzzy +msgid "Hidden Wi-Fi network" msgstr "非表示無線ネットワーク" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 -msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +#, fuzzy +msgid "Enter the name and security details of the hidden Wi-Fi network you wish to connect to." msgstr "接続したい無線ネットワークの名前とセキュリティ詳細を入力してください。" +#: ../src/libnm-gtk/nm-ui-utils.c:304 +msgid "Wired" +msgstr "有線" + +#: ../src/libnm-gtk/nm-ui-utils.c:327 +msgid "Bluetooth" +msgstr "" + +#: ../src/libnm-gtk/nm-ui-utils.c:329 +msgid "OLPC Mesh" +msgstr "" + +#: ../src/libnm-gtk/nm-ui-utils.c:341 +msgid "ADSL" +msgstr "" + +#: ../src/libnm-gtk/nm-ui-utils.c:376 +msgid "PCI" +msgstr "" + +#: ../src/libnm-gtk/nm-ui-utils.c:378 +msgid "USB" +msgstr "" + +#. Translators: the first %s is a bus name (eg, "USB") or +#. * product name, the second is a device type (eg, +#. * "Ethernet"). You can change this to something like +#. * "%$2s (%$1s)" if there's no grammatical way to combine +#. * the strings otherwise. +#. +#: ../src/libnm-gtk/nm-ui-utils.c:452 ../src/libnm-gtk/nm-ui-utils.c:470 +#, c-format +msgctxt "long device name" +msgid "%s %s" +msgstr "" + #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" -msgstr "接続(_N):" +#, fuzzy +msgid "Wi-Fi _security:" +msgstr "無線セキュリティ(_S):" -#: ../src/libnm-gtk/wifi.ui.h:3 -msgid "Wireless _adapter:" -msgstr "無線アダプター(_A):" +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "接続(_O):" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "無線セキュリティ(_W):" +#, fuzzy +msgid "Wi-Fi _adapter:" +msgstr "無線アダプター(_A):" #: ../src/main.c:73 msgid "Usage:" msgstr "使用法:" #: ../src/main.c:75 -msgid "" -"This program is a component of NetworkManager (http://projects.gnome.org/" -"NetworkManager)." -msgstr "" -"このプログラムは NetworkManager (http://projects.gnome.org/NetworkManager) の" -"コンポーネントです。" +msgid "This program is a component of NetworkManager (http://projects.gnome.org/NetworkManager)." +msgstr "このプログラムは NetworkManager (http://projects.gnome.org/NetworkManager) のコンポーネントです。" #: ../src/main.c:76 -msgid "" -"It is not intended for command-line interaction but instead runs in the " -"GNOME desktop environment." -msgstr "" -"コマンドライン対話用には意図されていませんが、その代わりに GNOME デスクトッ" -"プ 環境で実行します。" +msgid "It is not intended for command-line interaction but instead runs in the GNOME desktop environment." +msgstr "コマンドラインでの利用は意図されていませんが、その代わりに GNOME デスクトップ環境で実行します。" #: ../src/mb-menu-item.c:57 msgid "EVDO" @@ -2486,51 +2749,56 @@ msgstr "HSPA" #: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" +#, fuzzy +msgid "HSPA+" +msgstr "HSPA" + +#: ../src/mb-menu-item.c:77 +msgid "LTE" +msgstr "" -#: ../src/mb-menu-item.c:109 +#: ../src/mb-menu-item.c:113 msgid "not enabled" msgstr "有効になっていません" -#: ../src/mb-menu-item.c:115 +#: ../src/mb-menu-item.c:119 msgid "not registered" msgstr "登録されていません" -#: ../src/mb-menu-item.c:133 +#: ../src/mb-menu-item.c:137 #, c-format msgid "Home network (%s)" msgstr "ホームネットワーク (%s)" -#: ../src/mb-menu-item.c:135 +#: ../src/mb-menu-item.c:139 #, c-format msgid "Home network" msgstr "ホームネットワーク" -#: ../src/mb-menu-item.c:143 +#: ../src/mb-menu-item.c:147 msgid "searching" msgstr "検索中" -#: ../src/mb-menu-item.c:146 +#: ../src/mb-menu-item.c:150 msgid "registration denied" msgstr "登録は拒否されました" -#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 +#: ../src/mb-menu-item.c:155 ../src/mb-menu-item.c:161 #, c-format msgid "%s (%s roaming)" msgstr "%s (%s ローミング)" -#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 +#: ../src/mb-menu-item.c:157 ../src/mb-menu-item.c:163 #, c-format msgid "%s (roaming)" msgstr "%s (ローミング)" -#: ../src/mb-menu-item.c:162 +#: ../src/mb-menu-item.c:166 #, c-format msgid "Roaming network (%s)" msgstr "ローミングネットワーク (%s)" -#: ../src/mb-menu-item.c:164 +#: ../src/mb-menu-item.c:168 #, c-format msgid "Roaming network" msgstr "ローミングネットワーク" @@ -2539,83 +2807,113 @@ msgid "Default" msgstr "デフォルト" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"NetworkManager アプレットは必要ないくつかのリソースをみつけられませんでした " -"(.ui ファイルがみつかりません)。" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:174 +#, c-format +msgid "%s connection" +msgstr "%s 接続" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "証明書権限(CA)の証明書が選択されていません" -#: ../src/wireless-security/eap-method.c:280 -msgid "" -"Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" -msgstr "" -"証明書権限 (CA) の証明書を使用しないと、安全でない詐欺的なワイヤレス ネット" -"ワークに接続する可能性があります。証明書権限 (CA) の証明書を 選択しますか ?" +#: ../src/wireless-security/eap-method.c:276 +#, fuzzy +msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate Authority certificate?" +msgstr "証明書権限 (CA) の証明書を使用しないと、安全でない詐欺的なワイヤレス ネットワークに接続する可能性があります。証明書権限 (CA) の証明書を 選択しますか ?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "CA 証明書を選択する" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER か、 PEM か、 PKCS#12 のプライベートキー (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER か PEM の証明書 (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:372 -msgid "MD5" -msgstr "MD5" - +#: ../src/wireless-security/eap-method-fast.c:261 #: ../src/wireless-security/eap-method-peap.c:280 msgid "GTC" msgstr "GTC" -#: ../src/wireless-security/eap-method-peap.c:350 -#: ../src/wireless-security/eap-method-tls.c:416 -#: ../src/wireless-security/eap-method-ttls.c:350 -msgid "Choose a Certificate Authority certificate..." -msgstr "証明書権限(CA)証明書を選択..." +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "PAC ファイルを選んでください..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC ファイル (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "すべてのファイル" + +#: ../src/wireless-security/eap-method-fast.ui.h:2 +msgid "Anonymous" +msgstr "匿名" -#: ../src/wireless-security/eap-method-peap.ui.h:2 +#: ../src/wireless-security/eap-method-fast.ui.h:3 +msgid "Authenticated" +msgstr "認証" + +#: ../src/wireless-security/eap-method-fast.ui.h:4 +msgid "Both" +msgstr "両方" + +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 #: ../src/wireless-security/eap-method-ttls.ui.h:2 msgid "Anony_mous identity:" msgstr "匿名の識別子(_M):" -#: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:3 -msgid "C_A certificate:" -msgstr "CA 証明書(_A):" +#: ../src/wireless-security/eap-method-fast.ui.h:6 +msgid "PAC _file:" +msgstr "PAC ファイル(_F):" -#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 -msgid "I_nner authentication:" -msgstr "内部認証(_N):" +msgid "_Inner authentication:" +msgstr "内部認証(_I):" -#: ../src/wireless-security/eap-method-peap.ui.h:6 +# see http://www.cisco.com/cisco/web/support/JP/100/1005/1005630_eapfast-wlc-rad-config.html#PAC +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "自動 PAC プロビジョニングを許可(_V)" + +#: ../src/wireless-security/eap-method-peap.c:263 +#: ../src/wireless-security/wireless-security.c:382 +msgid "MD5" +msgstr "MD5" + +#: ../src/wireless-security/eap-method-peap.c:350 +#: ../src/wireless-security/eap-method-tls.c:416 +#: ../src/wireless-security/eap-method-ttls.c:350 +msgid "Choose a Certificate Authority certificate..." +msgstr "証明書権限(CA)証明書を選択..." + +#: ../src/wireless-security/eap-method-peap.ui.h:3 msgid "Version 0" msgstr "バージョン 0" -#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:4 msgid "Version 1" msgstr "バージョン 1" +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-ttls.ui.h:3 +msgid "C_A certificate:" +msgstr "CA 証明書(_A):" + #: ../src/wireless-security/eap-method-peap.ui.h:8 -msgid "_PEAP version:" -msgstr "PEAP バージョン(_P):" +msgid "PEAP _version:" +msgstr "PEAP バージョン(_V):" -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "毎回このパスワードを要求する(_K)" @@ -2625,15 +2923,11 @@ #: ../src/wireless-security/eap-method-tls.c:249 msgid "" -"The selected private key does not appear to be protected by a password. " -"This could allow your security credentials to be compromised. Please select " -"a password-protected private key.\n" +"The selected private key does not appear to be protected by a password. This could allow your security credentials to be compromised. Please select a password-protected private key.\n" "\n" "(You can password-protect your private key with openssl)" msgstr "" -"選択したプライベートキーはパスワードで保護されていないようです。この状態は 信" -"用情報の侵害を許してしまいます。パスワード保護のあるプライベートキーを 選択し" -"てください。\n" +"選択したプライベートキーはパスワードで保護されていないようです。この状態は 信用情報の侵害を許してしまいます。パスワード保護のあるプライベートキーを選択してください。\n" "\n" "(プライベートキーは openssl を使用してパスワード保護ができます)" @@ -2647,11 +2941,15 @@ # とりあえずこのように訳しておくが "Identity" のままの方が適切かもしれない。 # (WPA-EAP Identity 認証方式: ユーザ ID とパスワードの組で認証) -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "識別子(_D):" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "ユーザー証明書(_U):" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "プライベートキー(_K):" @@ -2659,10 +2957,6 @@ msgid "_Private key password:" msgstr "プライベートキーパスワード(_P):" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "ユーザー証明書(_U):" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "二度と警告しない(_W)" @@ -2675,229 +2969,127 @@ msgid "Yes" msgstr "はい" -#: ../src/wireless-security/wireless-security.c:384 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:408 +#: ../src/wireless-security/wireless-security.c:418 +msgid "FAST" +msgstr "FAST" + +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "トンネル化 TLS" -#: ../src/wireless-security/wireless-security.c:419 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "保護つき EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 #: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 -msgid "_Authentication:" -msgstr "認証(_A):" +msgid "Au_thentication:" +msgstr "認証(_T):" #: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "オープンシステム" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "共有鍵" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (デフォルト)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:5 -msgid "Open System" -msgstr "オープンシステム" - -#: ../src/wireless-security/ws-wep-key.ui.h:6 -msgid "Shared Key" -msgstr "共有鍵" - #: ../src/wireless-security/ws-wep-key.ui.h:7 +msgid "_Key:" +msgstr "キー(_K):" + +#: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "キーを表示(_W)" -#: ../src/wireless-security/ws-wep-key.ui.h:8 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "WEP インデックス(_X):" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "キー(_K):" +#~ msgid "Wireless Networks (%s)" +#~ msgstr "無線ネットワーク (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "無線ネットワーク (%s)" + +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "無線ネットワーク" + +#~ msgid "wireless is disabled" +#~ msgstr "無線は無効になっています" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "無線はハードウェアのスイッチで無効になっています" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "無線ネットワーク接続 '%s' の準備中..." + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "無線ネットワーク接続 '%s' を設定中..." + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "'%s' 用の無線ネットワークアドレスを要求しています..." + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "無線ネットワーク接続 '%s' アクティブです" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "有線セキュリティのユーザーインターフェースを読み込めません。" + +#~ msgid "Wireless" +#~ msgstr "無線" + +#~ msgid "Wireless connection %d" +#~ msgstr "無線接続 %d" + +#~ msgid "_Import" +#~ msgstr "インポート(_I)" + +#~ msgid "An unknown error occurred." +#~ msgstr "不明なエラーが発生しました。" + +#~ msgid "Could not edit new connection" +#~ msgstr "新規接続を編集できませんでした" + +#~ msgid "Could not edit imported connection" +#~ msgstr "インポートした接続を編集できませんでした" -#~ msgid "United Kingdom" -#~ msgstr "英国" +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "VPN プラグインを利用できません。このボタンを有効にするには一つはインストールしてください。" -#~ msgid "label" -#~ msgstr "ラベル" +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "接続 '%s' を編集する方法がわかりません" -#~ msgid "Network Manager" -#~ msgstr "ネットワークマネージャー" +#~ msgid "could not find the Bluetooth device." +#~ msgstr "Bluetooth デバイスが見付かりませんでした。" -#~ msgid "An instance of nm-applet is already running.\n" -#~ msgstr "nm-applet のインスタンスは既に実行しています。\n" - -#~ msgid "Could not acquire the %s service. (%d)\n" -#~ msgstr "%s サービスを取得できませんでした。(%d)\n" - -#~ msgid "translator-credits" -#~ msgstr "" -#~ "Satoru SATOH \n" -#~ "Kiyoto Hashida \n" -#~ "KURASAWA Nozomu \n" -#~ "草野貴之 \n" -#~ "Hideki Yamane \n" -#~ "日本 GNOME ユーザー会 " - -#~ msgid "" -#~ "Active Network Connections" -#~ msgstr "" -#~ "アクティブなネットワーク接続" - -#~ msgid "" -#~ "Automatic\n" -#~ "Version 0\n" -#~ "Version 1" -#~ msgstr "" -#~ "自動\n" -#~ "バージョン 0\n" -#~ "バージョン 1" - -#~ msgid "C_onnect" -#~ msgstr "接続(_O)" - -#~ msgid "Other Wireless Network..." -#~ msgstr "他の無線ネットワーク..." - -#~ msgid "Addresses" -#~ msgstr "アドレス" - -#~ msgid "" -#~ "Automatic\n" -#~ "Automatic with manual DNS settings\n" -#~ "Manual\n" -#~ "Link-Local\n" -#~ "Shared to other computers" -#~ msgstr "" -#~ "自動\n" -#~ "自動 (DNS 設定のみ手動)\n" -#~ "手動\n" -#~ "リンクローカル\n" -#~ "他のコンピューターと共有" - -#~ msgid "Basic" -#~ msgstr "基本的な" - -#~ msgid "" -#~ "Any\n" -#~ "3G (UMTS/HSPA)\n" -#~ "2G (GPRS/EDGE)\n" -#~ "Prefer 3G (UMTS/HSPA)\n" -#~ "Prefer 2G (GPRS/EDGE)" -#~ msgstr "" -#~ "いずれか\n" -#~ "3G (UMTS/HSPA)\n" -#~ "2G (GPRS/EDGE)\n" -#~ "優先 3G (UMTS/HSPA)\n" -#~ "優先 2G (GPRS/EDGE)" - -#~ msgid "Authentication" -#~ msgstr "認証" - -#~ msgid "Echo" -#~ msgstr "Echo" - -#~ msgid "" -#~ "Automatic\n" -#~ "10 Mb/s\n" -#~ "100 Mb/s\n" -#~ "1 Gb/s\n" -#~ "10 Gb/s" -#~ msgstr "" -#~ "自動\n" -#~ "10 Mb/s\n" -#~ "100 Mb/s\n" -#~ "1 Gb/s\n" -#~ "10 Gb/s" - -#~ msgid "" -#~ "Automatic\n" -#~ "Twisted Pair (TP)\n" -#~ "Attachment Unit Interface (AUI)\n" -#~ "BNC\n" -#~ "Media Independent Interface (MII)" -#~ msgstr "" -#~ "自動\n" -#~ "ツイストペア (TP)\n" -#~ "付属ユニットインターフェイス (AUI)\n" -#~ "BNC\n" -#~ "メディア非依存インターフェイス (MII)" - -#~ msgid "" -#~ "Automatic\n" -#~ "A (5 GHz)\n" -#~ "B/G (2.4 GHz)" -#~ msgstr "" -#~ "自動\n" -#~ "A (5 GHz)\n" -#~ "B/G (2.4 GHz)" - -#~ msgid "" -#~ "The connection editor could not find some required resources (the " -#~ "NetworkManager applet glade file was not found)." -#~ msgstr "" -#~ "接続エディターは必要ないくつかのリソースをみつけられませんでした。" -#~ "(NetworkManager アプレット glade ファイルがみつかりません。)" - -#~ msgid "could not connect to the system bus." -#~ msgstr "システムバスへ接続できませんでした。" - -#~ msgid "Country" -#~ msgstr "国" - -#~ msgid "Cannot start VPN connection '%s'" -#~ msgstr "VPN 接続 '%s' を開始できません" - -#~ msgid "" -#~ "Could not find the authentication dialog for VPN connection type '%s'. " -#~ "Contact your system administrator." -#~ msgstr "" -#~ "VPN 接続タイプ '%s' の認証ダイアログをみつけられませんでした。システム管理" -#~ "者に連絡してください。" - -#~ msgid "" -#~ "There was a problem launching the authentication dialog for VPN " -#~ "connection type '%s'. Contact your system administrator." -#~ msgstr "" -#~ "VPN 接続タイプ '%s' の認証ダイアログを起動中に問題が生じました。システム管" -#~ "理者に連絡してください。" - -#~ msgid "Apply" -#~ msgstr "適用" - -#~ msgid "Apply..." -#~ msgstr "適用..." - -#~ msgid "PUK code required" -#~ msgstr "PUK コードが必要です" - -#~ msgid "PUK code is needed for the mobile broadband device" -#~ msgstr "モバイルブロードバンドデバイスには PUK コードが必要です" - -#~ msgctxt "No wired security used" -#~ msgid "None" -#~ msgstr "なし" - -#~ msgctxt "Unknown/unrecognized wired or wifi security" -#~ msgid "Unknown" -#~ msgstr "不明" +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "Bluetooth の設定はできません (D-Bus プロキシの作成に失敗)。" -#~ msgid "_Routes…" -#~ msgstr "ルート …(_R)" +#~ msgid "Click on this icon to connect to a wireless network" +#~ msgstr "無線ネットワークに接続するにはこのアイコンをクリックします。" -#~ msgid "Save this connection for all users of this machine." -#~ msgstr "このマシンのすべてのユーザー用にこの接続を保存" +#~ msgid "_Security:" +#~ msgstr "セキュリティ(_S):" diff -Nru network-manager-applet-0.9.4.1/po/kk.po network-manager-applet-0.9.6.2+git201210311320.2620/po/kk.po --- network-manager-applet-0.9.4.1/po/kk.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/kk.po 2012-10-31 13:20:57.000000000 +0000 @@ -6,10 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: network-manager-applet master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" -"product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2011-12-19 04:13+0000\n" -"PO-Revision-Date: 2011-12-19 17:59+0600\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-04-03 10:08+0000\n" +"PO-Revision-Date: 2012-05-12 16:28+0600\n" "Last-Translator: Baurzhan Muftakhidinov \n" "Language-Team: Kazakh \n" "MIME-Version: 1.0\n" @@ -20,19 +19,19 @@ "X-Poedit-Country: KAZAKHSTAN\n" #: ../nm-applet.desktop.in.h:1 -msgid "Manage your network connections" -msgstr "Желілік байланыстарыңызды басқару" - -#: ../nm-applet.desktop.in.h:2 msgid "Network" msgstr "Желі" +#: ../nm-applet.desktop.in.h:2 +msgid "Manage your network connections" +msgstr "Желілік байланыстарыңызды басқару" + #: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" +msgid "Disable connected notifications" msgstr "" #: ../nm-applet.schemas.in.h:2 -msgid "Disable connected notifications" +msgid "Set this to TRUE to disable notifications when connecting to a network." msgstr "" #: ../nm-applet.schemas.in.h:3 @@ -40,151 +39,173 @@ msgstr "" #: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." +msgid "Set this to TRUE to disable notifications when disconnecting from a network." msgstr "" #: ../nm-applet.schemas.in.h:5 -msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +msgid "Suppress networks available notifications" msgstr "" #: ../nm-applet.schemas.in.h:6 -msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +msgid "Set this to TRUE to disable notifications when wireless networks are available." msgstr "" #: ../nm-applet.schemas.in.h:7 -msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +msgid "Stamp" msgstr "" #: ../nm-applet.schemas.in.h:8 -msgid "Stamp" +msgid "Used to determine whether settings should be migrated to a new version." msgstr "" #: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" +msgid "Disable WiFi Create" msgstr "" #: ../nm-applet.schemas.in.h:10 -msgid "Used to determine whether settings should be migrated to a new version." +msgid "Set to TRUE to disable creation of adhoc networks when using the applet." msgstr "" #: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "Сіздің желілік байланысыңызды басқару мен түзету" - -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 msgid "Network Connections" msgstr "Желілік байланыстар" -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Сіздің желілік байланысыңызды басқару мен түзету" + +#: ../src/applet-device-bt.c:174 +#: ../src/applet-device-cdma.c:399 +#: ../src/applet-device-gsm.c:446 +#: ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:864 +#: ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Қолжетерлік" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:200 +#: ../src/applet-device-cdma.c:441 +#: ../src/applet-device-gsm.c:488 +#: ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "Сіз '%s' желісіне қосылдыңыз." -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:204 +#: ../src/applet-device-cdma.c:445 +#: ../src/applet-device-gsm.c:492 +#: ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1268 +#: ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Байланыс орнатылды" #: ../src/applet-device-bt.c:205 msgid "You are now connected to the mobile broadband network." -msgstr "" +msgstr "Сіз мобильді кеңжолақты желісіне байланыс орнаттыңыз." -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:231 +#: ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:528 +#: ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." -msgstr "" +msgstr "'%s' мобильді кеңжолақты байланысын дайындау..." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:234 +#: ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:531 +#: ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." -msgstr "" +msgstr "'%s' мобильді кеңжолақты байланысын баптау..." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:237 +#: ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:534 +#: ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "" +msgstr "'%s' мобильді кеңжолақты байланысы үшін пайдаланушы аутентификациясы керек..." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2479 +#: ../src/applet-device-bt.c:240 +#: ../src/applet-device-cdma.c:490 +#: ../src/applet-device-gsm.c:537 +#: ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2504 #, c-format msgid "Requesting a network address for '%s'..." msgstr "'%s' үшін желілік адресті сұрау..." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 +#: ../src/applet-device-bt.c:244 +#: ../src/applet-device-cdma.c:508 #: ../src/applet-device-gsm.c:555 #, c-format msgid "Mobile broadband connection '%s' active" -msgstr "" +msgstr "'%s' мобильді кеңжолақты байланысы белсенді" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:184 +#: ../src/connection-editor/page-mobile.c:696 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:430 +#: ../src/applet-device-cdma.c:345 +#: ../src/applet-device-gsm.c:392 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" -msgstr "" +msgstr "Мобильді кеңжолақты (%s)" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 +#: ../src/applet-device-cdma.c:347 +#: ../src/applet-device-gsm.c:394 #: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -#: ../src/connection-editor/nm-connection-list.c:1474 +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" -msgstr "" +msgstr "Мобильді кеңжолақты" #. Default connection item #: ../src/applet-device-cdma.c:412 msgid "New Mobile Broadband (CDMA) connection..." -msgstr "" +msgstr "Жаңа мобильді кеңжолақты (CDMA) байланысы..." #: ../src/applet-device-cdma.c:446 msgid "You are now connected to the CDMA network." -msgstr "" +msgstr "Сіз CDMA желісіне байланыс орнаттыңыз." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:503 +#: ../src/applet-device-gsm.c:550 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "" +msgstr "'%s' мобильді кеңжолақты байланысы белсенді: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 +#: ../src/applet-device-cdma.c:506 +#: ../src/applet-device-gsm.c:553 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 +#: ../src/applet-device-cdma.c:647 +#: ../src/applet-device-cdma.c:653 msgid "CDMA network." msgstr "CDMA желісі." -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 +#: ../src/applet-device-cdma.c:648 +#: ../src/applet-device-gsm.c:1198 msgid "You are now registered on the home network." msgstr "" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 +#: ../src/applet-device-cdma.c:654 +#: ../src/applet-device-gsm.c:1204 msgid "You are now registered on a roaming network." msgstr "" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:213 +#: ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" @@ -192,15 +213,15 @@ #. Default connection item #: ../src/applet-device-gsm.c:459 msgid "New Mobile Broadband (GSM) connection..." -msgstr "" +msgstr "Жаңа мобильді кеңжолақты (GSM) байланысы..." #: ../src/applet-device-gsm.c:493 msgid "You are now connected to the GSM network." -msgstr "" +msgstr "Сіз GSM желісіне байланыс орнаттыңыз." #: ../src/applet-device-gsm.c:654 msgid "PIN code required" -msgstr "" +msgstr "PIN коды керек" #: ../src/applet-device-gsm.c:662 msgid "PIN code is needed for the mobile broadband device" @@ -235,9 +256,7 @@ #. FIXME: some warning about # of times you can enter incorrect PIN #: ../src/applet-device-gsm.c:991 #, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." +msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." msgstr "" #. Translators: PIN code entry label @@ -261,9 +280,7 @@ #. FIXME: some warning about # of times you can enter incorrect PUK #: ../src/applet-device-gsm.c:1003 #, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." +msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." msgstr "" #. Translators: PUK code entry label @@ -286,7 +303,8 @@ msgid "Show PIN/PUK codes" msgstr "PIN/PUK кодтарын көрсету" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 +#: ../src/applet-device-gsm.c:1197 +#: ../src/applet-device-gsm.c:1203 msgid "GSM network." msgstr "GSM желісі." @@ -313,7 +331,8 @@ msgstr "Сымды желі" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1485 +#: ../src/applet-device-wired.c:232 +#: ../src/applet.c:1510 msgid "disconnected" msgstr "байланыспаған" @@ -352,98 +371,126 @@ #: ../src/applet-device-wifi.c:97 msgid "_Connect to Hidden Wireless Network..." -msgstr "" +msgstr "Жасырын сымсыз же_лісіне байланысу..." #: ../src/applet-device-wifi.c:150 msgid "Create _New Wireless Network..." -msgstr "" +msgstr "Жаңа сымсыз желісін жа_сау..." #: ../src/applet-device-wifi.c:294 msgid "(none)" msgstr "(ешнәрсе)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Networks (%s)" msgstr "Сымсыз желілер (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:794 #, c-format msgid "Wireless Network (%s)" msgstr "Сымсыз желі (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:796 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Сымсыз желі" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:829 msgid "wireless is disabled" msgstr "сымсыз желі сөндірілген" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:830 msgid "wireless is disabled by hardware switch" msgstr "сымсыз желі құрылғы қосқышымен сөндірілген" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:891 msgid "More networks" msgstr "Көбірек желілер" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1071 msgid "Wireless Networks Available" msgstr "Сымсыз желілер қолжетерлік" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1072 msgid "Use the network menu to connect to a wireless network" -msgstr "" +msgstr "Сымсыз желісіне байланысты орнату үшін желі мәзірін қолданыңыз" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:901 +#: ../src/applet-device-wifi.c:1075 +#: ../src/applet.c:926 msgid "Don't show this message again" -msgstr "" +msgstr "Бұл хабарламаны келесіде көрсетпеу" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1267 #, c-format msgid "You are now connected to the wireless network '%s'." -msgstr "" +msgstr "Сіз '%s' сымсыз желісіне байланыс орнаттыңыз." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1298 #, c-format msgid "Preparing wireless network connection '%s'..." -msgstr "" +msgstr "'%s' сымсыз желі байланысын дайындау..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1301 #, c-format msgid "Configuring wireless network connection '%s'..." -msgstr "" +msgstr "'%s' сымсыз желі байланысын баптау..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1304 #, c-format msgid "User authentication required for wireless network '%s'..." -msgstr "" +msgstr "'%s' сымсыз желісі үшін пайдаланушы аутентификациясы керек..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1307 #, c-format msgid "Requesting a wireless network address for '%s'..." -msgstr "" +msgstr "'%s' үшін сымсыз желі адресін сұрау..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1328 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "" +msgstr "'%s' сымсыз байланысы белсенді: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1333 #, c-format msgid "Wireless network connection '%s' active" -msgstr "" +msgstr "'%s' сымсыз байланысы белсенді" + +#: ../src/applet-device-wifi.c:1381 +#| msgid "Could not create new connection" +msgid "Failed to activate connection" +msgstr "Байланысты белсендіру мүмкін емес" + +#: ../src/applet-device-wifi.c:1383 +#: ../src/applet-device-wifi.c:1402 +#: ../src/applet.c:492 +#: ../src/applet.c:536 +#: ../src/applet.c:562 +#| msgid "Unknown" +msgid "Unknown error" +msgstr "Белгісіз қате" + +#: ../src/applet-device-wifi.c:1386 +#: ../src/applet-device-wifi.c:1405 +#: ../src/applet.c:495 +#: ../src/applet.c:565 +#| msgid "Connection add failed" +msgid "Connection failure" +msgstr "Байланысты орнату сәтсіз" + +#: ../src/applet-device-wifi.c:1400 +#| msgid "Could not edit new connection" +msgid "Failed to add new connection" +msgstr "Жаңа байланысты қосу мүмкін емес" #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" -msgstr "" +msgstr "WiMAX мобильді кеңжолақты (%s)" #: ../src/applet-device-wimax.c:233 msgid "WiMAX Mobile Broadband" -msgstr "" +msgstr "WiMAX мобильді кеңжолақты" #: ../src/applet-device-wimax.c:259 msgid "WiMAX is disabled" @@ -455,16 +502,16 @@ #: ../src/applet-device-wimax.c:428 msgid "You are now connected to the WiMAX network." -msgstr "" +msgstr "Сіз WiMAX желісіне байланыс орнаттыңыз." #: ../src/applet-dialogs.c:57 msgid "Error displaying connection information:" -msgstr "" +msgstr "Байланыс ақпаратын көрсету сәтсіз:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:396 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -472,318 +519,368 @@ msgid "Dynamic WEP" msgstr "Динамикалық WEP" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 +#: ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 +#: ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "Ешнәрсе" -#: ../src/applet-dialogs.c:352 ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:277 +#, c-format +#| msgid "1 (Default)" +msgid "%s (default)" +msgstr "%s (бастапқы)" + +#: ../src/applet-dialogs.c:346 +#: ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Мб/с" -#: ../src/applet-dialogs.c:354 ../src/applet-dialogs.c:492 +#: ../src/applet-dialogs.c:348 +#: ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Белгісіз" -#: ../src/applet-dialogs.c:367 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d дБ" -#: ../src/applet-dialogs.c:369 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "белгісіз" -#: ../src/applet-dialogs.c:381 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "белгісіз" -#: ../src/applet-dialogs.c:416 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Ethernet (%s)" -#: ../src/applet-dialogs.c:419 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:426 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:428 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:432 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:438 ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:432 +#: ../src/applet-dialogs.c:791 msgid "General" msgstr "Жалпы" -#: ../src/applet-dialogs.c:442 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "Интерфейс:" -#: ../src/applet-dialogs.c:458 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "Құрылғы адресі:" #. Driver -#: ../src/applet-dialogs.c:466 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "Драйвер:" -#: ../src/applet-dialogs.c:495 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "Жылдамдық:" -#: ../src/applet-dialogs.c:505 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "Қауіпсіздік:" -#: ../src/applet-dialogs.c:518 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:531 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:548 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:559 ../src/applet-dialogs.c:666 +#: ../src/applet-dialogs.c:553 +#: ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP адресі:" -#: ../src/applet-dialogs.c:561 ../src/applet-dialogs.c:577 +#: ../src/applet-dialogs.c:555 +#: ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "Белгісіз" -#: ../src/applet-dialogs.c:575 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "Кең таратылым адресі:" #. Prefix -#: ../src/applet-dialogs.c:584 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "" -#: ../src/applet-dialogs.c:586 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "Белгісіз" -#: ../src/applet-dialogs.c:594 ../src/applet-dialogs.c:681 +#: ../src/applet-dialogs.c:588 +#: ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "" -#: ../src/applet-dialogs.c:606 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "Біріншілік DNS:" -#: ../src/applet-dialogs.c:615 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "Екіншілік DNS:" -#: ../src/applet-dialogs.c:625 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "Үшінші DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:640 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:649 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "" -#: ../src/applet-dialogs.c:802 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "VPN түрі:" -#: ../src/applet-dialogs.c:809 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "VPN шлюзі:" -#: ../src/applet-dialogs.c:815 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "VPN пайд. аты:" -#: ../src/applet-dialogs.c:821 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "" -#: ../src/applet-dialogs.c:827 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "" -#: ../src/applet-dialogs.c:829 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "Белгісіз" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:892 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" -msgstr "" +msgstr "Дұрыс белсенді байланыстар табылмады!" -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:939 +#, fuzzy msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" "and many other community contributors and translators" msgstr "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"және көптеген басқа and many other community contributors and translators" -#: ../src/applet-dialogs.c:948 -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "" +#: ../src/applet-dialogs.c:942 +msgid "Notification area applet for managing your network devices and connections." +msgstr "Желілің құрылғылар мен байланыстарды басқару үшін хабарлау аймағының апплеті." -#: ../src/applet-dialogs.c:950 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "NetworkManager веб сайты" -#: ../src/applet-dialogs.c:965 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "" -#: ../src/applet-dialogs.c:990 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" -msgstr "" +msgstr "Сымсыз кеңжолақты желісінің паролі" -#: ../src/applet-dialogs.c:999 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." -msgstr "" +msgstr "'%s' үшін байланыс орнату паролі керек." -#: ../src/applet-dialogs.c:1018 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "Пароль:" -#: ../src/applet.c:990 +#: ../src/applet.c:490 +#| msgid "Could not edit connection" +msgid "Failed to add/activate connection" +msgstr "Байланысты қосу/белсендіру мүмкін емес" + +#: ../src/applet.c:534 +#, fuzzy +#| msgid "disconnected" +msgid "Device disconnect failed" +msgstr "байланыспаған" + +#: ../src/applet.c:539 +#, fuzzy +#| msgid "Disconnected" +msgid "Disconnect failure" +msgstr "Ажыратылған" + +#: ../src/applet.c:560 +#| msgid "Connection add failed" +msgid "Connection activation failed" +msgstr "Байланысты іске қосу сәтсіз" + +#: ../src/applet.c:1015 #, c-format msgid "" "\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." +"The VPN connection '%s' failed because the network connection was interrupted." msgstr "" -#: ../src/applet.c:993 +#: ../src/applet.c:1018 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service stopped unexpectedly." msgstr "" -#: ../src/applet.c:996 +#: ../src/applet.c:1021 #, c-format msgid "" "\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." +"The VPN connection '%s' failed because the VPN service returned invalid configuration." msgstr "" -#: ../src/applet.c:999 +#: ../src/applet.c:1024 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the connection attempt timed out." msgstr "" -#: ../src/applet.c:1002 +#: ../src/applet.c:1027 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service did not start in time." msgstr "" -#: ../src/applet.c:1005 +#: ../src/applet.c:1030 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service failed to start." msgstr "" -#: ../src/applet.c:1008 +#: ../src/applet.c:1033 #, c-format msgid "" "\n" "The VPN connection '%s' failed because there were no valid VPN secrets." msgstr "" -#: ../src/applet.c:1011 +#: ../src/applet.c:1036 #, c-format msgid "" "\n" "The VPN connection '%s' failed because of invalid VPN secrets." msgstr "" -#: ../src/applet.c:1018 +#: ../src/applet.c:1043 #, c-format msgid "" "\n" "The VPN connection '%s' failed." msgstr "" -#: ../src/applet.c:1036 +#: ../src/applet.c:1061 #, c-format msgid "" "\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." +"The VPN connection '%s' disconnected because the network connection was interrupted." msgstr "" -#: ../src/applet.c:1039 +#: ../src/applet.c:1064 #, c-format msgid "" "\n" "The VPN connection '%s' disconnected because the VPN service stopped." msgstr "" -#: ../src/applet.c:1045 +#: ../src/applet.c:1070 #, c-format msgid "" "\n" "The VPN connection '%s' disconnected." msgstr "" -#: ../src/applet.c:1079 +#: ../src/applet.c:1100 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" + +#: ../src/applet.c:1102 +msgid "VPN connection has been successfully established.\n" +msgstr "" + +#: ../src/applet.c:1104 msgid "VPN Login Message" msgstr "" -#: ../src/applet.c:1085 ../src/applet.c:1093 ../src/applet.c:1143 +#: ../src/applet.c:1110 +#: ../src/applet.c:1118 +#: ../src/applet.c:1168 msgid "VPN Connection Failed" msgstr "" -#: ../src/applet.c:1150 +#: ../src/applet.c:1175 #, c-format msgid "" "\n" @@ -792,7 +889,7 @@ "%s" msgstr "" -#: ../src/applet.c:1153 +#: ../src/applet.c:1178 #, c-format msgid "" "\n" @@ -801,141 +898,142 @@ "%s" msgstr "" -#: ../src/applet.c:1473 +#: ../src/applet.c:1498 msgid "device not ready (firmware missing)" msgstr "құрылғы дайын емес (firmware жоқ)" -#: ../src/applet.c:1475 +#: ../src/applet.c:1500 msgid "device not ready" msgstr "құрылғы дайын емес" -#: ../src/applet.c:1501 +#: ../src/applet.c:1526 msgid "Disconnect" msgstr "Байланысты үзу" -#: ../src/applet.c:1515 +#: ../src/applet.c:1540 msgid "device not managed" msgstr "құрылғы басқарылмайды" -#: ../src/applet.c:1559 +#: ../src/applet.c:1584 msgid "No network devices available" msgstr "Бірді-бір желілік құрылғы қолжетерсіз" -#: ../src/applet.c:1647 +#: ../src/applet.c:1672 msgid "_VPN Connections" msgstr "_VPN байланыстары" -#: ../src/applet.c:1704 +#: ../src/applet.c:1729 msgid "_Configure VPN..." msgstr "VPN ба_птау..." -#: ../src/applet.c:1708 +#: ../src/applet.c:1733 msgid "_Disconnect VPN" msgstr "VPN а_жырату" -#: ../src/applet.c:1806 +#: ../src/applet.c:1831 msgid "NetworkManager is not running..." msgstr "NetworkManager іске қосылған емес..." -#: ../src/applet.c:1811 ../src/applet.c:2604 +#: ../src/applet.c:1836 +#: ../src/applet.c:2635 msgid "Networking disabled" msgstr "Желі сөндірілген" #. 'Enable Networking' item -#: ../src/applet.c:2032 +#: ../src/applet.c:2057 msgid "Enable _Networking" msgstr "Ж_еліні іске қосу" #. 'Enable Wireless' item -#: ../src/applet.c:2041 +#: ../src/applet.c:2066 msgid "Enable _Wireless" msgstr "Сы_мсыз желіні іске қосу" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2050 +#: ../src/applet.c:2075 msgid "Enable _Mobile Broadband" -msgstr "" +msgstr "_Мобильді кеңжолақты желіні іске қосу" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2059 +#: ../src/applet.c:2084 msgid "Enable WiMA_X Mobile Broadband" -msgstr "" +msgstr "WiMAX моб_ильді кеңжолақты желіні іске қосу" #. Toggle notifications item -#: ../src/applet.c:2070 +#: ../src/applet.c:2095 msgid "Enable N_otifications" msgstr "_Хабарламаларды іске қосу" #. 'Connection Information' item -#: ../src/applet.c:2081 +#: ../src/applet.c:2106 msgid "Connection _Information" msgstr "Байла_ныс ақпараты" #. 'Edit Connections...' item -#: ../src/applet.c:2091 +#: ../src/applet.c:2116 msgid "Edit Connections..." msgstr "Байланыстарды түзету..." #. Help item -#: ../src/applet.c:2105 +#: ../src/applet.c:2130 msgid "_Help" msgstr "Кө_мек" #. About item -#: ../src/applet.c:2114 +#: ../src/applet.c:2139 msgid "_About" msgstr "Осы т_уралы" -#: ../src/applet.c:2291 +#: ../src/applet.c:2316 msgid "Disconnected" msgstr "Ажыратылған" -#: ../src/applet.c:2292 +#: ../src/applet.c:2317 msgid "The network connection has been disconnected." msgstr "Желілік байланыс ажыратылды." -#: ../src/applet.c:2473 +#: ../src/applet.c:2498 #, c-format msgid "Preparing network connection '%s'..." -msgstr "" +msgstr "'%s' желілік байланысын дайындау..." -#: ../src/applet.c:2476 +#: ../src/applet.c:2501 #, c-format msgid "User authentication required for network connection '%s'..." -msgstr "" +msgstr "'%s' желілік байланысы үшін пайдаланушы аутентификациясы керек..." -#: ../src/applet.c:2482 +#: ../src/applet.c:2507 #, c-format msgid "Network connection '%s' active" -msgstr "" +msgstr "'%s' желілік байланысы белсенді" -#: ../src/applet.c:2560 +#: ../src/applet.c:2590 #, c-format msgid "Starting VPN connection '%s'..." msgstr "" -#: ../src/applet.c:2563 +#: ../src/applet.c:2593 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "" -#: ../src/applet.c:2566 +#: ../src/applet.c:2596 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "" -#: ../src/applet.c:2569 +#: ../src/applet.c:2599 #, c-format msgid "VPN connection '%s' active" msgstr "" -#: ../src/applet.c:2608 +#: ../src/applet.c:2640 msgid "No network connection" -msgstr "" +msgstr "Желілік байланыстар жоқ" -#: ../src/applet.c:3258 +#: ../src/applet.c:3354 msgid "NetworkManager Applet" -msgstr "" +msgstr "NetworkManager апплеті" #: ../src/gsm-unlock.ui.h:1 msgid "Automatically unlock this device" @@ -946,487 +1044,477 @@ msgstr "Бо_сату" #: ../src/info.ui.h:1 -msgid "Active Network Connections" -msgstr "" +msgid "Connection Information" +msgstr "Байланыс ақпараты" #: ../src/info.ui.h:2 -msgid "Connection Information" -msgstr "" +msgid "Active Network Connections" +msgstr "Белсенді желілік байланыстары" -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 +#: ../src/wired-8021x.ui.h:1 +#: ../src/wired-dialog.c:104 msgid "Wired 802.1X authentication" -msgstr "" +msgstr "Сымды желі 802.1X аутентификациясы" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:4 +#: ../src/wired-8021x.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 msgid "_Network name:" -msgstr "" +msgstr "Желі а_тауы:" #: ../src/connection-editor/ce-page.c:72 msgid "automatic" msgstr "автоматты" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 -msgid "" -"IP addresses identify your computer on the network. Click the \"Add\" " -"button to add an IP address." +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 +msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." msgstr "" #: ../src/connection-editor/ce-ip4-routes.ui.h:2 #: ../src/connection-editor/ce-ip6-routes.ui.h:2 -msgid "" -"If enabled, this connection will never be used as the default network " -"connection." +msgid "Ig_nore automatically obtained routes" msgstr "" #: ../src/connection-editor/ce-ip4-routes.ui.h:3 #: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" +msgid "_Use this connection only for resources on its network" msgstr "" #: ../src/connection-editor/ce-ip4-routes.ui.h:4 #: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "Use this c_onnection only for resources on its network" +msgid "If enabled, this connection will never be used as the default network connection." msgstr "" #: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 +#: ../src/wireless-security/eap-method-simple.ui.h:1 #: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "Пар_ольді көрсету" +msgid "_Username:" +msgstr "_Пайдаланушы аты:" #: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "_Пароль:" - -#: ../src/connection-editor/ce-page-dsl.ui.h:3 msgid "_Service:" msgstr "Қы_змет:" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 +#: ../src/connection-editor/ce-page-dsl.ui.h:3 #: ../src/wireless-security/eap-method-leap.ui.h:3 #: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 #: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "_Пайдаланушы аты:" +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "Пар_ольді көрсету" + +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_Пароль:" #: ../src/connection-editor/ce-page-ip4.ui.h:1 #: ../src/connection-editor/ce-page-ip6.ui.h:1 -msgid "Addresses" -msgstr "Адрестер" - -#: ../src/connection-editor/ce-page-ip4.ui.h:2 -#: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wired.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:1 #: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 +#: ../src/wireless-security/eap-method-peap.ui.h:2 msgid "Automatic" msgstr "Автоматты" -#: ../src/connection-editor/ce-page-ip4.ui.h:3 -#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 msgid "Automatic with manual DNS settings" msgstr "" +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "Қолмен" + #: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" msgstr "" #: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "" -"Domains used when resolving host names. Use commas to separate multiple " -"domains." +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" msgstr "" -#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 #: ../src/connection-editor/ce-page-ip6.ui.h:6 -msgid "" -"IP addresses of domain name servers used to resolve host names. Use commas " -"to separate multiple domain name server addresses." -msgstr "" +msgid "_Method:" +msgstr "Тә_сіл:" -#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip4.ui.h:7 #: ../src/connection-editor/ce-page-ip6.ui.h:7 -msgid "Link-Local" -msgstr "" +msgid "Addresses" +msgstr "Адрестер" #: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 -#: ../src/connection-editor/page-ip4.c:169 -#: ../src/connection-editor/page-ip6.c:191 -msgid "Manual" +msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." msgstr "" #: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv4 addressing for this connection to complete" +#: ../src/connection-editor/ce-page-ip6.ui.h:9 +msgid "Domains used when resolving host names. Use commas to separate multiple domains." msgstr "" #: ../src/connection-editor/ce-page-ip4.ui.h:11 -#: ../src/connection-editor/ce-page-ip6.ui.h:10 -#: ../src/connection-editor/page-ip4.c:187 -#: ../src/connection-editor/page-ip6.c:211 -msgid "Shared to other computers" +msgid "D_HCP client ID:" msgstr "" #: ../src/connection-editor/ce-page-ip4.ui.h:12 -msgid "" -"The DHCP client identifier allows the network administrator to customize " -"your computer's configuration. If you wish to use a DHCP client identifier, " -"enter it here." +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +msgid "S_earch domains:" msgstr "" #: ../src/connection-editor/ce-page-ip4.ui.h:13 -msgid "" -"When connecting to IPv6-capable networks, allows the connection to complete " -"if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "" +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +msgid "_DNS servers:" +msgstr "DNS _серверлері:" #: ../src/connection-editor/ce-page-ip4.ui.h:14 #: ../src/connection-editor/ce-page-ip6.ui.h:12 -msgid "_DNS servers:" -msgstr "DNS _серверлері:" +msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." +msgstr "" #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 -msgid "_Method:" -msgstr "Тә_сіл:" +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "" #: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Routes…" +msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." msgstr "" #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 -msgid "_Search domains:" +msgid "_Routes…" msgstr "" -#: ../src/connection-editor/ce-page-ip6.ui.h:9 -msgid "Require IPv6 addressing for this connection to complete" +#: ../src/connection-editor/ce-page-ip6.ui.h:13 +msgid "Require IPv_6 addressing for this connection to complete" msgstr "" -#: ../src/connection-editor/ce-page-ip6.ui.h:11 -msgid "" -"When connecting to IPv4-capable networks, allows the connection to complete " -"if IPv6 configuration fails but IPv4 configuration succeeds." +#: ../src/connection-editor/ce-page-ip6.ui.h:14 +msgid "When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds." msgstr "" #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "Кез-келген" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -msgid "Advanced" -msgstr "Кеңейтілген" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -msgid "Allow roaming if home network is not available" -msgstr "" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "3G таңдау (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "Кез-келген" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "2G таңдау (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 msgid "Basic" msgstr "Қарапайым" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "Ауыстыру..." - -#: ../src/connection-editor/ce-page-mobile.ui.h:8 -msgid "N_etwork ID:" -msgstr "" - -#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "" #: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "PI_N:" -msgstr "PI_N:" +msgid "Advanced" +msgstr "Кеңейтілген" #: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "2G таңдау (GPRS/EDGE)" +msgid "_APN:" +msgstr "_APN:" #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "3G таңдау (UMTS/HSPA)" +msgid "N_etwork ID:" +msgstr "" #: ../src/connection-editor/ce-page-mobile.ui.h:13 -msgid "Sho_w passwords" -msgstr "Пар_ольдерді көрсету" +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "_Түрі:" #: ../src/connection-editor/ce-page-mobile.ui.h:14 -msgid "_APN:" -msgstr "_APN:" +msgid "Change..." +msgstr "Ауыстыру..." + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +#| msgid "PI_N:" +msgid "P_IN:" +msgstr "P_IN:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "_Түрі:" +msgid "Allow _roaming if home network is not available" +msgstr "" + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "Пар_ольдерді көрсету" #: ../src/connection-editor/ce-page-ppp.ui.h:1 -msgid "Allow _BSD data compression" -msgstr "" +msgid "Authentication" +msgstr "Аутентификация" #: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "" +msgid "Allowed methods:" +msgstr "Рұқсат етілген тәсілдер:" #: ../src/connection-editor/ce-page-ppp.ui.h:3 -msgid "Allowed methods:" +msgid "Configure _Methods…" msgstr "" #: ../src/connection-editor/ce-page-ppp.ui.h:4 -msgid "Authentication" -msgstr "Аутентификация" - -#: ../src/connection-editor/ce-page-ppp.ui.h:5 msgid "Compression" msgstr "Сығу" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "" + #: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" +msgid "_Require 128-bit encryption" msgstr "" #: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" +msgid "Use _stateful MPPE" msgstr "" #: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" +msgid "Allow _BSD data compression" msgstr "" #: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" +msgid "Allow _Deflate data compression" msgstr "" #: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" +msgid "Use TCP _header compression" msgstr "" #: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" +msgid "Echo" msgstr "" #: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" +msgid "Send PPP _echo packets" msgstr "" -#: ../src/connection-editor/ce-page-wired.ui.h:1 -msgid "1 Gb/s" -msgstr "1 Гб/с" - #: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 Гб/с" +msgid "Twisted Pair (TP)" +msgstr "" #: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "10 Mb/s" -msgstr "10 Гб/с" +msgid "Attachment Unit Interface (AUI)" +msgstr "" #: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "100 Mb/s" -msgstr "100 Гб/с" +msgid "BNC" +msgstr "BNC" #: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" +msgid "Media Independent Interface (MII)" msgstr "" #: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "" +msgid "10 Mb/s" +msgstr "10 Гб/с" + +#: ../src/connection-editor/ce-page-wired.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Гб/с" #: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" +msgid "1 Gb/s" +msgstr "1 Гб/с" #: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "Full duple_x" -msgstr "Толық дупле_кс" +msgid "10 Gb/s" +msgstr "10 Гб/с" #: ../src/connection-editor/ce-page-wired.ui.h:10 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "MT_U:" -msgstr "MT_U:" +msgid "_Port:" +msgstr "_Порт:" #: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "" +msgid "_Speed:" +msgstr "Ж_ылдамдық:" #: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" +msgid "Full duple_x" +msgstr "Толық дупле_кс" #: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Twisted Pair (TP)" +msgid "Aut_onegotiate" msgstr "" #: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "_Cloned MAC address:" -msgstr "Кл_ондалған MAC адресі:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wireless.ui.h:8 msgid "_Device MAC address:" msgstr "Құр_ылғы MAC адресі:" +#: ../src/connection-editor/ce-page-wired.ui.h:15 +#: ../src/connection-editor/ce-page-wireless.ui.h:10 +#, fuzzy +#| msgid "_Cloned MAC address:" +msgid "C_loned MAC address:" +msgstr "Кл_ондалған MAC адресі:" + #: ../src/connection-editor/ce-page-wired.ui.h:16 -msgid "_Port:" -msgstr "_Порт:" +#: ../src/connection-editor/ce-page-wireless.ui.h:9 +msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" #: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Speed:" -msgstr "Ж_ылдамдық:" +#: ../src/connection-editor/ce-page-wireless.ui.h:7 +#, fuzzy +#| msgid "MT_U:" +msgid "_MTU:" +msgstr "MT_U:" #: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wireless.ui.h:6 msgid "bytes" msgstr "байт" -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 ГГц)" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "Ad-hoc" - -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wireless.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 ГГц)" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" +#: ../src/connection-editor/ce-page-wireless.ui.h:4 +msgid "Infrastructure" msgstr "" -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "Ар_на:" +#: ../src/connection-editor/ce-page-wireless.ui.h:5 +msgid "Ad-hoc" +msgstr "Ad-hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "Infrastructure" -msgstr "" +#: ../src/connection-editor/ce-page-wireless.ui.h:11 +msgid "mW" +msgstr "мВт" -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" +#: ../src/connection-editor/ce-page-wireless.ui.h:12 +msgid "Transmission po_wer:" msgstr "" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 +#: ../src/connection-editor/ce-page-wireless.ui.h:13 msgid "Mb/s" msgstr "Мб/с" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 -msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "" +#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#, fuzzy +msgid "_Rate:" +msgstr "Жаңарту ж_иілігі:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 -msgid "Transmission po_wer:" +#: ../src/connection-editor/ce-page-wireless.ui.h:15 +msgid "This option locks this connection to the wireless access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wireless.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" #: ../src/connection-editor/ce-page-wireless.ui.h:17 -#, fuzzy -msgid "_Rate:" -msgstr "Жаңарту ж_иілігі:" +msgid "C_hannel:" +msgstr "Ар_на:" #: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_SSID:" -msgstr "_SSID:" +msgid "Ban_d:" +msgstr "" + +#: ../src/connection-editor/ce-page-wireless.ui.h:19 +msgid "M_ode:" +msgstr "" #: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "mW" -msgstr "мВт" +#, fuzzy +#| msgid "_SSID:" +msgid "SS_ID:" +msgstr "_SSID:" #: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "_Security:" -msgstr "Қауіпсі_здік:" +#| msgid "Security:" +msgid "S_ecurity:" +msgstr "Қауі_псіздік:" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 -msgid "C_HAP" -msgstr "C_HAP" +msgid "_EAP" +msgstr "_EAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 -msgid "Challenge Handshake Authentication Protocol" +msgid "Extensible Authentication Protocol" msgstr "" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 -msgid "Extensible Authentication Protocol" -msgstr "" +msgid "_PAP" +msgstr "_PAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 -msgid "" -"In most cases, the provider's PPP servers will support all authentication " -"methods. If connections fail, try disabling support for some methods." +msgid "Password Authentication Protocol" msgstr "" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +msgid "C_HAP" +msgstr "C_HAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" +msgid "Challenge Handshake Authentication Protocol" msgstr "" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "" +msgid "_MSCHAP" +msgstr "_MSCHAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" +msgid "Microsoft Challenge Handshake Authentication Protocol" msgstr "" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "_EAP" +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "_MSCHAP" +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "_PAP" +msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." +msgstr "" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 #: ../src/wireless-security/eap-method-peap.ui.h:1 #: ../src/wireless-security/eap-method-ttls.ui.h:1 #: ../src/wireless-security/ws-dynamic-wep.ui.h:1 @@ -1439,32 +1527,29 @@ msgstr "" #: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "Жасау…" +msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" #: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" +msgid "Create…" +msgstr "Жасау…" #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:901 -#: ../src/connection-editor/page-ip6.c:867 +#: ../src/connection-editor/page-ip4.c:900 +#: ../src/connection-editor/page-ip6.c:866 msgid "Address" msgstr "Адрес" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:918 +#: ../src/connection-editor/page-ip4.c:917 msgid "Netmask" msgstr "" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:935 -#: ../src/connection-editor/page-ip6.c:901 +#: ../src/connection-editor/page-ip4.c:934 +#: ../src/connection-editor/page-ip6.c:900 msgid "Gateway" msgstr "" @@ -1474,13 +1559,13 @@ msgstr "" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:884 +#: ../src/connection-editor/page-ip6.c:883 msgid "Prefix" msgstr "Префикс" #: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1482 +#: ../src/connection-editor/nm-connection-editor.ui.h:8 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "" @@ -1545,11 +1630,11 @@ msgid "Editing IPv4 routes for %s" msgstr "" -#: ../src/connection-editor/page-ip4.c:982 +#: ../src/connection-editor/page-ip4.c:981 msgid "IPv4 Settings" msgstr "IPv4 баптаулары" -#: ../src/connection-editor/page-ip4.c:984 +#: ../src/connection-editor/page-ip4.c:983 msgid "Could not load IPv4 user interface." msgstr "" @@ -1571,11 +1656,11 @@ msgid "Editing IPv6 routes for %s" msgstr "" -#: ../src/connection-editor/page-ip6.c:946 +#: ../src/connection-editor/page-ip6.c:945 msgid "IPv6 Settings" msgstr "IPv6 баптаулары" -#: ../src/connection-editor/page-ip6.c:948 +#: ../src/connection-editor/page-ip6.c:947 msgid "Could not load IPv6 user interface." msgstr "" @@ -1593,9 +1678,7 @@ msgstr "" #: ../src/connection-editor/page-mobile.c:674 -msgid "" -"Select the technology your mobile broadband provider uses. If you are " -"unsure, ask your provider." +msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." msgstr "" #: ../src/connection-editor/page-mobile.c:679 @@ -1621,6 +1704,7 @@ msgstr "CHAP" #: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 #: ../src/wireless-security/eap-method-peap.c:246 #: ../src/wireless-security/eap-method-ttls.c:263 msgid "MSCHAPv2" @@ -1641,17 +1725,17 @@ msgid "Editing PPP authentication methods for %s" msgstr "" -#: ../src/connection-editor/page-ppp.c:283 +#: ../src/connection-editor/page-ppp.c:282 msgid "PPP Settings" msgstr "PPP баптаулары" -#: ../src/connection-editor/page-ppp.c:285 +#: ../src/connection-editor/page-ppp.c:284 msgid "Could not load PPP user interface." msgstr "" #: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1478 +#: ../src/connection-editor/nm-connection-editor.ui.h:7 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1665,106 +1749,106 @@ msgstr "" #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:884 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "" -#: ../src/connection-editor/page-wired.c:88 -#: ../src/connection-editor/page-wireless.c:93 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" +#: ../src/connection-editor/page-wired.c:89 +#: ../src/connection-editor/page-wireless.c:94 +msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" msgstr "" -#: ../src/connection-editor/page-wired.c:267 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -#: ../src/connection-editor/nm-connection-list.c:1466 +#: ../src/connection-editor/page-wired.c:272 +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Сымды" -#: ../src/connection-editor/page-wired.c:269 +#: ../src/connection-editor/page-wired.c:274 msgid "Could not load wired user interface." msgstr "" -#: ../src/connection-editor/page-wired.c:444 +#: ../src/connection-editor/page-wired.c:449 #, c-format msgid "Wired connection %d" msgstr "" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "802.1x қауіпсіздігі" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "" -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1X security for this connection" +#: ../src/connection-editor/page-wired-security.c:139 +#, fuzzy +#| msgid "Use 802.1X security for this connection" +msgid "Use 802.1_X security for this connection" msgstr "Бұл байланыс үшін 802.1X қауіпсіздігін қолдану" -#: ../src/connection-editor/page-wireless.c:166 -#: ../src/connection-editor/page-wireless.c:170 -#: ../src/connection-editor/page-wireless.c:191 +#: ../src/connection-editor/page-wireless.c:171 +#: ../src/connection-editor/page-wireless.c:175 +#: ../src/connection-editor/page-wireless.c:196 #, c-format msgid "default" msgstr "бастапқы" -#: ../src/connection-editor/page-wireless.c:195 +#: ../src/connection-editor/page-wireless.c:200 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u МГц)" -#: ../src/connection-editor/page-wireless.c:452 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -#: ../src/connection-editor/nm-connection-list.c:1470 +#: ../src/connection-editor/page-wireless.c:457 +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Сымсыз" -#: ../src/connection-editor/page-wireless.c:454 +#: ../src/connection-editor/page-wireless.c:459 msgid "Could not load WiFi user interface." msgstr "" -#: ../src/connection-editor/page-wireless.c:658 +#: ../src/connection-editor/page-wireless.c:663 #, c-format msgid "Wireless connection %d" msgstr "" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 Personal" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA & WPA2 Enterprise" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "" -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "" @@ -1777,52 +1861,49 @@ msgid "Editing un-named connection" msgstr "" -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." +#: ../src/connection-editor/nm-connection-editor.c:291 +msgid "The connection editor could not find some required resources (the .ui file was not found)." msgstr "" -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:394 msgid "Error creating connection editor dialog." msgstr "" -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:406 msgid "_Save" msgstr "_Сақтау" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "Save any changes made to this connection." msgstr "Бұл байланысқа жасалған өзгерістерді сақтау." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "_Save..." msgstr "_Сақтау..." -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "Authenticate to save this connection for all users of this machine." -msgstr "" -"Бұл машинадағы барлық пайдаланушылары үшін сақтауға аутентификациядан өту." +msgstr "Бұл машинадағы барлық пайдаланушылары үшін сақтауға аутентификациядан өту." -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "Барлық пайдаланушыларға қолжетерлік" +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Import" +msgstr "И_мпорт" -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "_Автобайланысу" +#: ../src/connection-editor/nm-connection-editor.ui.h:6 +msgid "E_xport" +msgstr "" -#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-editor.ui.h:9 msgid "Connection _name:" msgstr "Байланыс а_ты:" -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "" +#: ../src/connection-editor/nm-connection-editor.ui.h:10 +msgid "Connect _automatically" +msgstr "_Автобайланысу" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "И_мпорт" +msgid "A_vailable to all users" +msgstr "Бар_лық пайдаланушыларға қолжетерлік" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -1878,21 +1959,19 @@ msgstr "" #: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:642 +#: ../src/connection-editor/nm-connection-list.c:662 msgid "An unknown error occurred." msgstr "Белгісіз қате орын алды." #: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:686 +#: ../src/connection-editor/nm-connection-list.c:702 msgid "Error initializing editor" msgstr "" #: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:703 -#: ../src/connection-editor/nm-connection-list.c:870 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." +#: ../src/connection-editor/nm-connection-list.c:719 +#: ../src/connection-editor/nm-connection-list.c:885 +msgid "The connection editor dialog could not be initialized due to an unknown error." msgstr "" #: ../src/connection-editor/nm-connection-list.c:557 @@ -1903,135 +1982,134 @@ msgid "Could not edit new connection" msgstr "Жаңа байланысты түзету мүмкін емес" -#: ../src/connection-editor/nm-connection-list.c:717 +#: ../src/connection-editor/nm-connection-list.c:733 msgid "Could not edit connection" msgstr "Байланысты түзету мүмкін емес" -#: ../src/connection-editor/nm-connection-list.c:747 +#: ../src/connection-editor/nm-connection-list.c:763 msgid "Connection delete failed" msgstr "Байланысты өшіру мүмкін емес" -#: ../src/connection-editor/nm-connection-list.c:779 +#: ../src/connection-editor/nm-connection-list.c:795 #, c-format msgid "Are you sure you wish to delete the connection %s?" msgstr "%s байланысын өшіруді шынымен қалайсыз ба?" -#: ../src/connection-editor/nm-connection-list.c:914 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "VPN байланысын импорттау мүмкін емес" -#: ../src/connection-editor/nm-connection-list.c:916 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" "Error: no VPN service type." msgstr "" -#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "" -#: ../src/connection-editor/nm-connection-list.c:1099 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "Аты" -#: ../src/connection-editor/nm-connection-list.c:1111 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "Соңғы қолданылған" -#: ../src/connection-editor/nm-connection-list.c:1227 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." msgstr "" -#: ../src/connection-editor/nm-connection-list.c:1238 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "Түз_ету" -#: ../src/connection-editor/nm-connection-list.c:1239 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "Таңдалған байланысты түзету" -#: ../src/connection-editor/nm-connection-list.c:1240 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "Түз_ету..." -#: ../src/connection-editor/nm-connection-list.c:1241 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "" -#: ../src/connection-editor/nm-connection-list.c:1256 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "Ө_шіру" -#: ../src/connection-editor/nm-connection-list.c:1257 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "" -#: ../src/connection-editor/nm-connection-list.c:1258 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "Ө_шіру..." -#: ../src/connection-editor/nm-connection-list.c:1259 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "" -#: ../src/connection-editor/nm-connection-list.c:1538 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "" -#: ../src/connection-editor/nm-connection-list.c:1539 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "" -#: ../src/connection-editor/nm-connection-list.c:1594 -#: ../src/connection-editor/nm-connection-list.c:1606 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "" -#: ../src/connection-editor/nm-connection-list.c:1595 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "" -#: ../src/connection-editor/nm-connection-list.c:1607 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" -"The file '%s' could not be read or does not contain recognized VPN " -"connection information\n" +"The file '%s' could not be read or does not contain recognized VPN connection information\n" "\n" "Error: %s." msgstr "" -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "\"%s\" аты бар файл бар болып тұр." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "А_лмастыру" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2039,7 +2117,7 @@ "Error: %s." msgstr "" -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "" @@ -2098,9 +2176,7 @@ msgstr "" #: ../src/gnome-bluetooth/bt-widget.c:980 -msgid "" -"The default Bluetooth adapter must be enabled before setting up a Dial-Up-" -"Networking connection." +msgid "The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection." msgstr "" #: ../src/gnome-bluetooth/bt-widget.c:1012 @@ -2114,8 +2190,7 @@ #: ../src/gnome-bluetooth/bt-widget.c:1031 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." +msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." msgstr "" #: ../src/gnome-bluetooth/bt-widget.c:1098 @@ -2127,8 +2202,7 @@ msgstr "" #: ../src/libnm-gtk/nm-mobile-wizard.c:198 -msgid "" -"Your mobile broadband connection is configured with the following settings:" +msgid "Your mobile broadband connection is configured with the following settings:" msgstr "" #. Device @@ -2147,12 +2221,7 @@ msgstr "" #: ../src/libnm-gtk/nm-mobile-wizard.c:252 -msgid "" -"A connection will now be made to your mobile broadband provider using the " -"settings you selected. If the connection fails or you cannot access network " -"resources, double-check your settings. To modify your mobile broadband " -"connection settings, choose \"Network Connections\" from the System >> " -"Preferences menu." +msgid "A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose \"Network Connections\" from the System >> Preferences menu." msgstr "" #: ../src/libnm-gtk/nm-mobile-wizard.c:264 @@ -2173,8 +2242,7 @@ #: ../src/libnm-gtk/nm-mobile-wizard.c:528 msgid "" -"Warning: Selecting an incorrect plan may result in billing issues for your " -"broadband account or may prevent connectivity.\n" +"Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" @@ -2215,65 +2283,63 @@ msgid "Choose your Provider" msgstr "Провайдеріңізді таңдаңыз" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1080 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 msgid "Country or Region List:" msgstr "Ел не аймақтар тізімі:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1092 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 msgid "Country or region" msgstr "Ел не аймақ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1099 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "My country is not listed" msgstr "Менің елім көрсетілмеген" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1145 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 msgid "Choose your Provider's Country or Region" msgstr "Провайдеріңіздің ел не аймағын таңдаңыз" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1199 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 msgid "Installed GSM device" msgstr "Орнатылған GSM құрылғысы" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1202 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 msgid "Installed CDMA device" msgstr "Орнатылған CDMA құрылғысы" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1374 -msgid "" -"This assistant helps you easily set up a mobile broadband connection to a " -"cellular (3G) network." +#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +msgid "This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network." msgstr "" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1379 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 msgid "You will need the following information:" msgstr "" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1394 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 msgid "Your broadband provider's name" msgstr "" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1400 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 msgid "Your broadband billing plan name" msgstr "" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1406 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1433 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 msgid "Create a connection for _this mobile broadband device:" msgstr "" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1448 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 msgid "Any device" msgstr "" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Set up a Mobile Broadband Connection" msgstr "" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1625 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 msgid "New Mobile Broadband Connection" msgstr "" @@ -2281,77 +2347,69 @@ msgid "New..." msgstr "Жаңа..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "Жаса_у" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format -msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." +msgid "Passwords or encryption keys are required to access the wireless network '%s'." msgstr "'%s' сымсыз желіге байланысу үшін пароль не шифрлеу кілттері керек." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "Сымсыз желі аутентификациясы керек" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "Сымсыз желі үшін аутентификация керек" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "Жаңа сымсыз желіні жасау" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "Жаңа сымсыз желі" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "Жасалатын сымсыз желісінің атын енгізіңіз." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "Жасырын сымсыз желісіне байланысу" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "Жасырын сымсыз желі" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 -msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." -msgstr "" +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +msgid "Enter the name and security details of the hidden wireless network you wish to connect to." +msgstr "Байланысты орнатқыңыз келетін жасырын сымсыз желі атын мен қауіпсіздік ақпаратын енгізіңіз." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" -msgstr "" +msgid "Wireless _security:" +msgstr "Сы_мсыз желі қауіпсіздігі:" -#: ../src/libnm-gtk/wifi.ui.h:3 -msgid "Wireless _adapter:" -msgstr "" +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "Ба_йланыс:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "" +msgid "Wireless _adapter:" +msgstr "Сымсыз желі _құрылғысы:" #: ../src/main.c:73 msgid "Usage:" msgstr "Қолданылуы:" #: ../src/main.c:75 -msgid "" -"This program is a component of NetworkManager (http://projects.gnome.org/" -"NetworkManager)." +msgid "This program is a component of NetworkManager (http://projects.gnome.org/NetworkManager)." msgstr "" #: ../src/main.c:76 -msgid "" -"It is not intended for command-line interaction but instead runs in the " -"GNOME desktop environment." +msgid "It is not intended for command-line interaction but instead runs in the GNOME desktop environment." msgstr "" #: ../src/mb-menu-item.c:57 @@ -2412,12 +2470,14 @@ msgid "registration denied" msgstr "" -#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 +#: ../src/mb-menu-item.c:151 +#: ../src/mb-menu-item.c:157 #, c-format msgid "%s (%s roaming)" msgstr "" -#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 +#: ../src/mb-menu-item.c:153 +#: ../src/mb-menu-item.c:159 #, c-format msgid "%s (roaming)" msgstr "" @@ -2436,10 +2496,9 @@ msgid "Default" msgstr "Бастапқы" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." +#: ../src/wired-dialog.c:91 +#: ../src/wired-dialog.c:99 +msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." msgstr "" #: ../src/wireless-security/eap-method.c:279 @@ -2447,10 +2506,7 @@ msgstr "" #: ../src/wireless-security/eap-method.c:280 -msgid "" -"Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue wireless networks. Would you like to choose a Certificate Authority certificate?" msgstr "" #: ../src/wireless-security/eap-method.c:289 @@ -2465,52 +2521,92 @@ msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "" -#: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:372 -msgid "MD5" -msgstr "MD5" +#: ../src/wireless-security/eap-method-fast.ui.h:2 +msgid "Anonymous" +msgstr "" -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" +#: ../src/wireless-security/eap-method-fast.ui.h:3 +#, fuzzy +#| msgid "Authentication" +msgid "Authenticated" +msgstr "Аутентификация" -#: ../src/wireless-security/eap-method-peap.c:350 -#: ../src/wireless-security/eap-method-tls.c:416 -#: ../src/wireless-security/eap-method-ttls.c:350 -msgid "Choose a Certificate Authority certificate..." +#: ../src/wireless-security/eap-method-fast.ui.h:4 +msgid "Both" msgstr "" -#: ../src/wireless-security/eap-method-peap.ui.h:2 +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 #: ../src/wireless-security/eap-method-ttls.ui.h:2 msgid "Anony_mous identity:" msgstr "" -#: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:3 -msgid "C_A certificate:" +#: ../src/wireless-security/eap-method-fast.ui.h:6 +msgid "PAC _file:" msgstr "" -#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 -msgid "I_nner authentication:" +#, fuzzy +#| msgid "_Authentication:" +msgid "_Inner authentication:" +msgstr "Аутент_ификация:" + +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" msgstr "" -#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "" + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "" + +#: ../src/wireless-security/eap-method-peap.c:263 +#: ../src/wireless-security/wireless-security.c:382 +msgid "MD5" +msgstr "MD5" + +#: ../src/wireless-security/eap-method-peap.c:350 +#: ../src/wireless-security/eap-method-tls.c:416 +#: ../src/wireless-security/eap-method-ttls.c:350 +msgid "Choose a Certificate Authority certificate..." +msgstr "" + +#: ../src/wireless-security/eap-method-peap.ui.h:3 #, fuzzy msgid "Version 0" msgstr "Нұсқасы:" -#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:4 #, fuzzy msgid "Version 1" msgstr "Нұсқасы:" +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-ttls.ui.h:3 +msgid "C_A certificate:" +msgstr "" + #: ../src/wireless-security/eap-method-peap.ui.h:8 -msgid "_PEAP version:" +#| msgid "_PEAP version:" +msgid "PEAP _version:" msgstr "_PEAP нұсқасы:" -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "Әр р_ет парольді сұрап отыру" @@ -2520,9 +2616,7 @@ #: ../src/wireless-security/eap-method-tls.c:249 msgid "" -"The selected private key does not appear to be protected by a password. " -"This could allow your security credentials to be compromised. Please select " -"a password-protected private key.\n" +"The selected private key does not appear to be protected by a password. This could allow your security credentials to be compromised. Please select a password-protected private key.\n" "\n" "(You can password-protect your private key with openssl)" msgstr "" @@ -2535,11 +2629,15 @@ msgid "Choose your private key..." msgstr "Жеке кілтіңізді таңдаңыз..." -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "" @@ -2547,10 +2645,6 @@ msgid "_Private key password:" msgstr "" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "" @@ -2563,56 +2657,64 @@ msgid "Yes" msgstr "Иә" -#: ../src/wireless-security/wireless-security.c:384 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:408 +#: ../src/wireless-security/wireless-security.c:418 +msgid "FAST" +msgstr "" + +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "" -#: ../src/wireless-security/wireless-security.c:419 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Қорғалған EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 #: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 -msgid "_Authentication:" +#| msgid "_Authentication:" +msgid "Au_thentication:" msgstr "Аутент_ификация:" #: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (Бастапқы)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:5 -msgid "Open System" -msgstr "" - -#: ../src/wireless-security/ws-wep-key.ui.h:6 -msgid "Shared Key" -msgstr "" - #: ../src/wireless-security/ws-wep-key.ui.h:7 +msgid "_Key:" +msgstr "Кі_лт:" + +#: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "Кіл_тті көрсету" -#: ../src/wireless-security/ws-wep-key.ui.h:8 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "Кі_лт:" +#~ msgid "_Security:" +#~ msgstr "Қауіпсі_здік:" diff -Nru network-manager-applet-0.9.4.1/po/km.po network-manager-applet-0.9.6.2+git201210311320.2620/po/km.po --- network-manager-applet-0.9.4.1/po/km.po 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/km.po 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,3131 @@ +# translation of po_nm-applet-km.po to Khmer +# Khmer translation for network-manager-applet +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the network-manager-applet package. +# FIRST AUTHOR , 2010. +# Sok Sophea , 2012. +msgid "" +msgstr "" +"Project-Id-Version: po_nm-applet-km\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-10-02 20:43+0000\n" +"PO-Revision-Date: 2012-09-27 15:38+0700\n" +"Last-Translator: Sok Sophea \n" +"Language-Team: Khmer <>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: WordForge 0.8 RC1\n" +"X-Language: km-KH\n" + +#: ../nm-applet.desktop.in.h:1 +msgid "Network" +msgstr "បណ្ដាញ" + +#: ../nm-applet.desktop.in.h:2 +msgid "Manage your network connections" +msgstr "គ្រប់គ្រង​ការ​តភ្ជាប់បណ្ដាញ​របស់​អ្នក" + +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "ការ​តភ្ជាប់​បណ្ដាញ" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "គ្រប់គ្រង និង​ផ្លាស់ប្ដូរ​ការ​កំណត់​ការ​តភ្ជាប់​បណ្ដាញ​របស់​អ្នក" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 +msgid "Disable connected notifications" +msgstr "បិទ​ការ​ជូនដំណឹង​ដែល​បាន​តភ្ជាប់" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "កំណត់​វា​ទៅ​ពិត​ដើម្បី​បិទ​ការ​ជូនដំណឹង​នៅ​ពេល​មាន​ការ​តភ្ជាប់​បណ្ដាញ ។" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 +msgid "Disable disconnected notifications" +msgstr "បិទ​ការ​ជូនដំណឹង​ដែល​បាន​ផ្ដាច់" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "កំណត់​វា​ទៅ​ពិត​ដើម្បី​បិទ​ការ​ជូនដំណឹង​នៅ​ពេល​ផ្ដាច់​ពី​បណ្ដាញ ។" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "បិទ​ការ​ជូនដំណឹង VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "កំណត់​វា​ទៅ​ពិត​ដើម្បី​បិទ​ការ​ជូនដំណឹង​នៅ​ពេល​ផ្ដាច់​ពី VPN ។" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 +msgid "Suppress networks available notifications" +msgstr "លាក់​​​ការ​ជូនដំណឹង​អំពី​បណ្ដាញ​ដែល​មាន" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +msgid "" +"Set this to true to disable notifications when Wi-Fi networks are available." +msgstr "កំណត់​វា​ទៅ​ពិត​ដើម្បី​បិទ​ការ​ជូនដំណឹង នៅ​ពេល​មាន​បណ្ដាញ Wi-Fi ។" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 +msgid "Stamp" +msgstr "តែម" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 +msgid "Used to determine whether settings should be migrated to a new version." +msgstr "ត្រូវ​បាន​ប្រើ ដើម្បី​កំណត់​ថា​តើគួរតែប្ដូរ​ការ​កំណត់​ទៅ​ជា​កំណែ​ថ្មី​ដែរ​ឬ​ទេ ។" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "បិទ​ការ​បង្កើត WiFi" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +msgid "" +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "កំណត់​ទៅ​ពិត​ដើម្បី​បិទ​ការ​បង្កើត​បណ្ដាញ adhoc នៅ​ពេល​ប្រើ​អាប់ភ្លេត ។" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "មិន​អើពើ​វិញ្ញាបនបត្រ CA" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "កំណត់​វា​ទៅ​ពិត​ដើម្បី​បិទ​ការ​ព្រមាន​អំពី​វិញ្ញាបនបត្រ CA នៅ​ក្នុង​ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ EAP ។" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"កំណត់​វា​ទៅ​ពិត​ដើម្បី​បិទ​ការ​ព្រមាន​អំពី​វិញ្ញាបនបត្រ CA នៅ​ក្នុង​ដំណាក់កាល​ទី ២ នៃ​ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ " +"EAP ។" + +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ 802.1X" + +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "ឈ្មោះ​បណ្ដាញ ៖" + +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​បន្ថែម/ធ្វើឲ្យ​ការ​តភ្ជាប់​សកម្ម" + +#: ../src/applet.c:514 ../src/applet.c:558 ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "មិន​ស្គាល់​កំហុស" + +#: ../src/applet.c:517 ../src/applet.c:587 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "ការ​តភ្ជាប់​បាន​បរាជ័យ" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ផ្ដាច់​ឧបករណ៍" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "ការ​ផ្ដាច់​បាន​បរាជ័យ" + +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ធ្វើឲ្យ​ការ​តភ្ជាប់​សកម្ម" + +#: ../src/applet.c:952 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "កុំ​បង្ហាញ​សារ​នេះ​ម្ដងទៀត" + +#: ../src/applet.c:1041 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"ការ​​តភ្ជាប់ VPN '%s' បាន​បរាជ័យ ដោយសារតែ​ការ​តភ្ជាប់​បណ្ដាញ​ត្រូវ​បាន​រំខាន ។" + +#: ../src/applet.c:1044 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"ការ​តភ្ជាប់ VPN '%s' បាន​បរាជ័យ ដោយសារតែ​សេវា VPN ត្រូវ​បាន​បញ្ឈប់​ដោយ​មិន​បាន​រំពឹង ។" + +#: ../src/applet.c:1047 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"ការ​​តភ្ជាប់ VPN '%s' បាន​បរាជ័យ ដោយសារតែ​សេវា VPN បាន​បញ្ជូន​ត្រឡប់​ការ​កំណត់​រចនាសម្ព័ន្ធ​ដែល​មិន​" +"ត្រឹមត្រូវ ។" + +#: ../src/applet.c:1050 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"ការ​តភ្ជាប់ VPN '%s' បាន​បរាជ័យ ដោយសារតែ​អស់​ពេល​ក្នុង​ការ​តភ្ជាប់ ។" + +#: ../src/applet.c:1053 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"ការ​តភ្ជាប់ VPN '%s' បាន​បរាជ័យ ដោយសារតែ​សេវា VPN មិន​បាន​ចាប់ផ្ដើម​ទាន់ពេលវេលា ។" + +#: ../src/applet.c:1056 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"ការ​តភ្ជាប់ VPN '%s' បាន​បរាជ័យ ដោយសារតែ​សេវា VPN បរាជ័យ​ក្នុង​ការ​ចាប់ផ្ដើម ។" + +#: ../src/applet.c:1059 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"ការ​តភ្ជាប់ VPN '%s' បាន​បរាជ័យ ដោយសារតែ​គ្មាន​ពាក្យសម្ងាត់ VPN ​ត្រឹមត្រូវ ។" + +#: ../src/applet.c:1062 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"ការ​តភ្ជាប់ VPN '%s' បាន​បរាជ័យ ដោយសារតែ​ពាក្យសម្ងាត់ VPN មិន​ត្រឹមត្រូវ ។" + +#: ../src/applet.c:1069 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"ការ​តភ្ជាប់ VPN '%s' បាន​បរាជ័យ ៖" + +#: ../src/applet.c:1087 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"ការ​តភ្ជាប់ VPN '%s' ត្រូវ​បាន​ផ្ដាច់ ដោយសារតែ​ការ​តភ្ជាប់​ត្រូវ​បាន​រំខាន ។" + +#: ../src/applet.c:1090 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"ការ​តភ្ជាប់ VPN '%s' ត្រូវ​បាន​ផ្ដាច់ ដោយសារតែ​សេវា VPN ត្រូវ​បាន​បញ្ឈប់ ។" + +#: ../src/applet.c:1096 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"ការ​តភ្ជាប់ VPN '%s' ត្រូវ​បាន​ផ្ដាច់ ។" + +#: ../src/applet.c:1126 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"បាន​បង្កើត​តំណ​ភ្ជាប់ VPN ដោយ​ជោគជ័យ ។\n" +"\n" +"%s\n" + +#: ../src/applet.c:1128 +msgid "VPN connection has been successfully established.\n" +msgstr "បាន​បង្កើត​តំណ​ភ្ជាប់ VPN ដោយ​ជោគជ័យ ។\n" + +#: ../src/applet.c:1130 +msgid "VPN Login Message" +msgstr "សារ​ចូល VPN" + +#: ../src/applet.c:1136 ../src/applet.c:1144 ../src/applet.c:1194 +msgid "VPN Connection Failed" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​តភ្ជាប់ VPN" + +#: ../src/applet.c:1201 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"ការ​តភ្ជាប់ VPN '%s' បាន​បរាជ័យ ដោយសារតែ​សេវា VPN បរាជ័យ​ក្នុង​ការ​ចាប់ផ្ដើម ។\n" +"\n" +"%s" + +#: ../src/applet.c:1204 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"បាន​បរាជ័យ​ក្នុង​ការ​ចាប់ផ្ដើម​ការ​តភ្ជាប់ VPN '%s' ។\n" +"\n" +"%s" + +#: ../src/applet.c:1524 +msgid "device not ready (firmware missing)" +msgstr "ឧបករណ៍​មិន​ទាន់​រួចរាល់ (បាត់​កម្មវិធី​ប​ង្កប់)" + +#: ../src/applet.c:1526 +msgid "device not ready" +msgstr "ឧបករណ៍​មិន​ទាន់​រួចរាល់" + +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1536 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "បាន​ផ្ដាច់" + +#: ../src/applet.c:1552 +msgid "Disconnect" +msgstr "ផ្ដាច់" + +#: ../src/applet.c:1566 +msgid "device not managed" +msgstr "ឧបករណ៍​មិន​ត្រូវ​បាន​គ្រប់គ្រង" + +#: ../src/applet.c:1610 +msgid "No network devices available" +msgstr "គ្មាន​ឧបករណ៍​បណ្ដាញ​ដែល​អាច​ប្រើបាន" + +#: ../src/applet.c:1698 +msgid "_VPN Connections" +msgstr "ការ​តភ្ជាប់ VPN" + +#: ../src/applet.c:1755 +msgid "_Configure VPN..." +msgstr "កំណត់​រចនាសម្ព័ន្ធ VPN..." + +#: ../src/applet.c:1759 +msgid "_Disconnect VPN" +msgstr "ផ្ដាច់ VPN" + +#: ../src/applet.c:1853 +msgid "NetworkManager is not running..." +msgstr "NetworkManager មិន​កំពុង​ដំណើរការ..." + +#: ../src/applet.c:1858 ../src/applet.c:2660 +msgid "Networking disabled" +msgstr "ការ​តភ្ជាប់​បណ្ដាញ​ត្រូវ​បាន​បិទ" + +#. 'Enable Networking' item +#: ../src/applet.c:2079 +msgid "Enable _Networking" +msgstr "បើក​ការ​តភ្ជាប់​បណ្ដាញ" + +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2088 +msgid "Enable _Wi-Fi" +msgstr "បើក Wi-Fi" + +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2097 +msgid "Enable _Mobile Broadband" +msgstr "បើក​រលកអាកាស​ចល័ត" + +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2106 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "បើក​រលក​អាកាស​ចល័ត WiMA_X" + +#. Toggle notifications item +#: ../src/applet.c:2117 +msgid "Enable N_otifications" +msgstr "បើក​ការ​ជូនដំណឹង" + +#. 'Connection Information' item +#: ../src/applet.c:2128 +msgid "Connection _Information" +msgstr "ព័ត៌មាន​តភ្ជាប់" + +#. 'Edit Connections...' item +#: ../src/applet.c:2138 +msgid "Edit Connections..." +msgstr "កែសម្រួល​ការ​តភ្ជាប់..." + +#. Help item +#: ../src/applet.c:2152 +msgid "_Help" +msgstr "ជំនួយ" + +#. About item +#: ../src/applet.c:2161 +msgid "_About" +msgstr "អំពី" + +#: ../src/applet.c:2339 +msgid "Disconnected" +msgstr "បាន​ផ្ដាច់" + +#: ../src/applet.c:2340 +msgid "The network connection has been disconnected." +msgstr "តំណ​ភ្ជាប់​បណ្ដាញត្រូវ​បាន​ផ្ដាច់ ។" + +#: ../src/applet.c:2523 +#, c-format +msgid "Preparing network connection '%s'..." +msgstr "កំពុង​រៀបចំ​តភ្ជាប់​បណ្ដាញ '%s'..." + +#: ../src/applet.c:2526 +#, c-format +msgid "User authentication required for network connection '%s'..." +msgstr "ទាមទារ​ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ​អំពី​អ្នកប្រើ​សម្រាប់​ការ​តភ្ជាប់​បណ្ដាញ '%s'..." + +#: ../src/applet.c:2529 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:541 +#: ../src/applet-device-wimax.c:473 +#, c-format +msgid "Requesting a network address for '%s'..." +msgstr "កំពុង​ស្នើ​សុំ​អាសយដ្ឋាន​បណ្ដាញ​សម្រាប់ '%s'..." + +#: ../src/applet.c:2532 +#, c-format +msgid "Network connection '%s' active" +msgstr "ការ​តភ្ជាប់​បណ្ដាញ '%s' សកម្ម" + +#: ../src/applet.c:2615 +#, c-format +msgid "Starting VPN connection '%s'..." +msgstr "កំពុង​ចាប់ផ្ដើម​តភ្ជាប់ VPN '%s'..." + +#: ../src/applet.c:2618 +#, c-format +msgid "User authentication required for VPN connection '%s'..." +msgstr "ទាមទារ​ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ​អំពី​អ្នកប្រើ​សម្រាប់​ការ​តភ្ជាប់ VPN '%s'..." + +#: ../src/applet.c:2621 +#, c-format +msgid "Requesting a VPN address for '%s'..." +msgstr "កំពុង​ស្នើសុំ​អាសយដ្ឋាន VPN សម្រាប់ '%s'..." + +#: ../src/applet.c:2624 +#, c-format +msgid "VPN connection '%s' active" +msgstr "ការ​តភ្ជាប់ VPN '%s' សកម្ម" + +#: ../src/applet.c:2665 +msgid "No network connection" +msgstr "គ្មាន​ការ​តភ្ជាប់​បណ្ដាញ" + +#: ../src/applet.c:3366 +msgid "NetworkManager Applet" +msgstr "អាប់ភ្លេត NetworkManager" + +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:450 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "មាន" + +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:492 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "ឥឡូវនេះ អ្នក​ត្រូវ​បាន​តភ្ជាប់​ទៅកាន់ '%s' ។" + +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:496 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "បាន​ស្ថាបនា​ការ​តភ្ជាប់" + +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "ឥឡូវនេះ អ្នក​ត្រូវ​បាន​តភ្ជាប់​ទៅកាន់​បណ្ដាញ​រលក​អាកាស​ចល័ត ។" + +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:464 +#, c-format +msgid "Preparing mobile broadband connection '%s'..." +msgstr "កំពុង​រៀបចំ​ការ​តភ្ជាប់​រលកអាកាស​ចល័ត '%s'..." + +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:467 +#, c-format +msgid "Configuring mobile broadband connection '%s'..." +msgstr "កំពុង​កំណត់​រចនាសម្ព័ន្ធ​ការ​តភ្ជាប់​រលកអាកាស​ចល័ត '%s'..." + +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:538 ../src/applet-device-wimax.c:470 +#, c-format +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "ទាមទារ​ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ​អំពី​អ្នកប្រើ​សម្រាប់​ការ​តភ្ជាប់​រលកអាកាស​ចល័ត '%s'..." + +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:559 +#, c-format +msgid "Mobile broadband connection '%s' active" +msgstr "ការ​តភ្ជាប់​រលកអាកាស​ចល័ត '%s' សកម្ម" + +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:714 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" + +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:396 +#: ../src/applet-dialogs.c:424 +#, c-format +msgid "Mobile Broadband (%s)" +msgstr "រលកអាកាស​ចល័ត (%s)" + +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:398 +#: ../src/connection-editor/new-connection.c:111 +#: ../src/connection-editor/page-mobile.c:388 +msgid "Mobile Broadband" +msgstr "រលកអាកាស​ចល័ត" + +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "ការ​តភ្ជាប់ (CDMA) រលកអាកាស​ចល័ត​ថ្មី..." + +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "ឥឡូវនេះ អ្នក​ត្រូវ​បាន​តភ្ជាប់​ទៅកាន់​បណ្ដាញ CDMA ។" + +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:554 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "ការ​តភ្ជាប់​រលកអាកាស​ចល័ត '%s' សកម្ម ៖ (%d%%%s%s)" + +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:557 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "roaming" + +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "បណ្ដាញ CDMA" + +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on the home network." +msgstr "ឥឡូវនេះ​អ្នក​បាន​ចុះឈ្មោះ​នៅ​លើ​បណ្ដាញ​ផ្ទះ ។" + +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1208 +msgid "You are now registered on a roaming network." +msgstr "ឥឡូវនេះ​អ្នក​បាន​ចុះឈ្មោះ​នៅ​លើ​បណ្ដាញ roaming ។" + +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "អ៊ីសឺរណិត​ស្វ័យប្រវត្តិ" + +#: ../src/applet-device-ethernet.c:205 +#, c-format +msgid "Ethernet Networks (%s)" +msgstr "បណ្ដាញ​អ៊ីសឺរណិត (%s)" + +#: ../src/applet-device-ethernet.c:207 +#, c-format +msgid "Ethernet Network (%s)" +msgstr "បណ្ដាញ​អ៊ីសឺរណិត (%s)" + +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "បណ្ដាញ​អ៊ីសឺរណិត" + +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "បណ្ដាញ​អ៊ីសឺរណិត" + +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "ឥឡូវនេះ​អ្នក​បាន​តភ្ជាប់​ទៅកាន់​បណ្ដាញ​អ៊ីសឺរណិត ។" + +#: ../src/applet-device-ethernet.c:300 +#, c-format +msgid "Preparing ethernet network connection '%s'..." +msgstr "កំពុង​​រៀប​ចំ​ការ​តភ្ជាប់​បណ្ដាញ​អ៊ីសឺរណិត '%s'..." + +#: ../src/applet-device-ethernet.c:303 +#, c-format +msgid "Configuring ethernet network connection '%s'..." +msgstr "កំពុង​កំណត់​រចនាសម្ព័ន្ធ​ការ​តភ្ជាប់​បណ្ដាញ​អ៊ីសឺរណិត '%s'..." + +#: ../src/applet-device-ethernet.c:306 +#, c-format +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "ទាមទារ​ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ​​របស់​អ្នកប្រើ​សម្រាប់​ការ​តភ្ជាប់​បណ្ដាញ​អ៊ីសឺរណិត '%s'..." + +#: ../src/applet-device-ethernet.c:309 +#, c-format +msgid "Requesting an ethernet network address for '%s'..." +msgstr "កំពុង​ស្នើសុំ​​អាសយដ្ឋាន​បណ្ដាញ​អ៊ីសឺរណិត​សម្រាប់ '%s'..." + +#: ../src/applet-device-ethernet.c:313 +#, c-format +msgid "Ethernet network connection '%s' active" +msgstr "ការ​តភ្ជាប់​បណ្ដាញ​អ៊ីសឺរណិត '%s' សកម្ម" + +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ​របស់ DSL" + +#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:717 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" + +#. Default connection item +#: ../src/applet-device-gsm.c:463 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "ការ​តភ្ជាប់ (GSM) រលកអាកាស​ចល័ត​ថ្មី..." + +#: ../src/applet-device-gsm.c:497 +msgid "You are now connected to the GSM network." +msgstr "ឥឡូវនេះ​អ្នក​បាន​តភ្ជាប់​ទៅកាន់​បណ្ដាញ GSM ។" + +#: ../src/applet-device-gsm.c:658 +msgid "PIN code required" +msgstr "ទាមទារ​កូដ PIN" + +#: ../src/applet-device-gsm.c:666 +msgid "PIN code is needed for the mobile broadband device" +msgstr "ទាមទារ​កូដ PIN សម្រាប់​ឧបករណ៍​រលកអាកាស​ចល័ត" + +#: ../src/applet-device-gsm.c:787 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "កូដ​ PIN សម្រាប់​ស៊ីមកាត '%s' នៅ​លើ '%s'" + +#: ../src/applet-device-gsm.c:879 +msgid "Wrong PIN code; please contact your provider." +msgstr "កូដ PIN មិន​ត្រឹមត្រូវ សូម​ទាក់ទង​ក្រុមហ៊ុន​ផ្ដល់​របស់​អ្នក ។" + +#: ../src/applet-device-gsm.c:902 +msgid "Wrong PUK code; please contact your provider." +msgstr "កូដ PUK មិន​ត្រឹមត្រូវ សូម​ទាក់ទង​ក្រុមហ៊ុន​ផ្ដល់​របស់​អ្នក ។" + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:929 +msgid "Sending unlock code..." +msgstr "កំពុង​ផ្ញើ​កូដ​ដោះសោ..." + +#: ../src/applet-device-gsm.c:992 +msgid "SIM PIN unlock required" +msgstr "ទាមទារ​ដោះ​សោ SIM PIN" + +#: ../src/applet-device-gsm.c:993 +msgid "SIM PIN Unlock Required" +msgstr "ទាមទារ​ដោះ​សោ SIM PIN" + +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:995 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "ឧបករណ៍​រលកអាកាស​ចល័ត '%s' ទាមទារ​កូដ SIM PIN មុន​នឹង​អាច​ប្រើ​វា​បាន ។" + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:997 +msgid "PIN code:" +msgstr "កូដ PIN ៖" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:1001 +msgid "Show PIN code" +msgstr "បង្ហាញ​កូដ PIN" + +#: ../src/applet-device-gsm.c:1004 +msgid "SIM PUK unlock required" +msgstr "ទាមទារ​ដោះ​សោ SIM PUK" + +#: ../src/applet-device-gsm.c:1005 +msgid "SIM PUK Unlock Required" +msgstr "ទាមទារ​ដោះ​សោ SIM PUK" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1007 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "ឧបករណ៍​រលកអាកាស​ចល័ត '%s' ទាមទារ​កូដ SIM PUK មុន​នឹង​អាច​ប្រើ​វា​បាន ។" + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1009 +msgid "PUK code:" +msgstr "កូដ PUK ៖" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1012 +msgid "New PIN code:" +msgstr "កូដ PIN ថ្មី ៖" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1014 +msgid "Re-enter new PIN code:" +msgstr "បញ្ចូល​កូដ PIN ថ្មី​ម្ដងទៀត ៖" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1019 +msgid "Show PIN/PUK codes" +msgstr "បង្ហាញ​កូដ PIN/PUK" + +#: ../src/applet-device-gsm.c:1201 ../src/applet-device-gsm.c:1207 +msgid "GSM network." +msgstr "បណ្ដាញ GSM ។" + +#: ../src/applet-device-wifi.c:97 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "តភ្ជាប់​ទៅកាន់​បណ្ដាញ Wi-Fi ដែល​​លាក់..." + +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "បង្កើត​បណ្ដាញ Wi-Fi ថ្មី..." + +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(គ្មាន)" + +#: ../src/applet-device-wifi.c:790 +#, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "បណ្ដាញ Wi-Fi (%s)" + +#: ../src/applet-device-wifi.c:792 +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "បណ្ដាញ Wi-Fi (%s)" + +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "បណ្ដាញ Wi-Fi" + +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "Wi-Fi ត្រូវ​បាន​បិទ" + +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Wi-Fi ត្រូវ​បាន​បិទ​ដោយ​កុងតាក់​ផ្នែក​រឹង" + +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "បណ្ដាញ​ជាច្រើនទៀត" + +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "មាន​បណ្ដាញ Wi-Fi" + +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "ប្រើ​ម៉ឺនុយ​បណ្ដាញ​ដើម្បី​តភ្ជាប់​ទៅកាន់​បណ្ដាញ Wi-Fi" + +#: ../src/applet-device-wifi.c:1263 +#, c-format +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "ឥឡូវ​អ្នក​បាន​តភ្ជាប់​ទៅកាន់​បណ្ដាញ Wi-Fi '%s' ។" + +#: ../src/applet-device-wifi.c:1294 +#, c-format +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "កំពុង​រៀបចំ​ការ​តភ្ជាប់​បណ្ដាញ Wi-Fi '%s'..." + +#: ../src/applet-device-wifi.c:1297 +#, c-format +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "កំពុង​កំណត់​រចនាសម្ព័ន្ធ​ការ​តភ្ជាប់​បណ្ដាញ Wi-Fi '%s'..." + +#: ../src/applet-device-wifi.c:1300 +#, c-format +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "ទាមទារ​ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ​របស់​អ្នកប្រើ​សម្រាប់​បណ្ដាញ Wi-Fi '%s'..." + +#: ../src/applet-device-wifi.c:1303 +#, c-format +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "កំពុង​ស្នើ​សុំ​អាសយដ្ឋាន​បណ្ដាញ Wi-Fi សម្រាប់ '%s'..." + +#: ../src/applet-device-wifi.c:1324 +#, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "ការ​តភ្ជាប់​បណ្ដាញ Wi-Fi '%s' សកម្ម ៖ %s (%d%%)" + +#: ../src/applet-device-wifi.c:1329 +#, c-format +msgid "Wi-Fi network connection '%s' active" +msgstr "ការ​តភ្ជាប់​បណ្ដាញ Wi-Fi '%s' សកម្ម" + +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ធ្វើឲ្យ​ការ​តភ្ជាប់​សកម្ម" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​បន្ថែម​ការ​តភ្ជាប់​ថ្មី" + +#: ../src/applet-device-wimax.c:231 +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "រលក​អាកាស​ចល័ត WiMAX (%s)" + +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "រលក​អាកាស​ចល័ត WiMAX" + +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "WiMAX ត្រូវ​បានបិទ" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX ត្រូវ​បាន​បិទ​ដោយ​ស្វីត" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "ឥឡូវនេះ​អ្នក​បាន​តភ្ជាប់​ទៅកាន់​បណ្ដាញ WiMAX ។" + +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "កំហុស​ក្នុង​ការ​បង្ហាញ​ព័ត៌មាន​អំពី​ការ​តភ្ជាប់ ៖" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:928 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" + +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "WEP ថាមវន្ត" + +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" + +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:885 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "គ្មាន" + +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (លំនាំដើម)" + +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 +#, c-format +msgid "%u Mb/s" +msgstr "%u Mb/s" + +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "មិនស្គាល់" + +#: ../src/applet-dialogs.c:361 +#, c-format +msgid "%d dB" +msgstr "%d dB" + +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "មិន​ស្គាល់" + +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "មិន​ស្គាល់" + +#: ../src/applet-dialogs.c:410 +#, c-format +msgid "Ethernet (%s)" +msgstr "អ៊ឺសឺរណិត (%s)" + +#: ../src/applet-dialogs.c:413 +#, c-format +msgid "802.11 WiFi (%s)" +msgstr "802.11 WiFi (%s)" + +#: ../src/applet-dialogs.c:420 +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" + +#: ../src/applet-dialogs.c:422 +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" + +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" + +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "ទូទៅ" + +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "ចំណុចប្រទាក់ ៖" + +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "អាសយដ្ឋាន​ផ្នែករឹង ៖" + +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "កម្មវិធី​បញ្ជា ៖" + +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "ល្បឿន ៖" + +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "សុវត្ថិភាព ៖" + +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "CINR:" + +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "BSID:" + +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" + +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 +msgid "IP Address:" +msgstr "អាសយដ្ឋាន IP ៖" + +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "មិនស្គាល់" + +#: ../src/applet-dialogs.c:569 +msgid "Broadcast Address:" +msgstr "អាសយដ្ឋាន​ផ្សាយ ៖" + +#. Prefix +#: ../src/applet-dialogs.c:578 +msgid "Subnet Mask:" +msgstr "របាំង​បណ្ដាញ​រង ៖" + +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "មិនស្គាល់" + +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 +msgid "Default Route:" +msgstr "ផ្លូវ​លំនាំដើម ៖" + +#: ../src/applet-dialogs.c:600 +msgid "Primary DNS:" +msgstr "DNS ទីមួយ ៖" + +#: ../src/applet-dialogs.c:609 +msgid "Secondary DNS:" +msgstr "DNS ទីពីរ ៖" + +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "DNS ទីបី ៖" + +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" + +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "មិន​បាន​អើពើ" + +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "ប្រភេទ VPN ៖" + +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "ផ្លូវ​ចេញចូល VPN ៖" + +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "ឈ្មោះ​អ្នកប្រើ VPN ៖" + +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "ស្លាក VPN ៖" + +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "ការ​តភ្ជាប់មូលដ្ឋាន ៖" + +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "មិនស្គាល់" + +#. Shouldn't really happen but ... +#: ../src/applet-dialogs.c:886 +msgid "No valid active connections found!" +msgstr "រក​មិន​ឃើញ​ការ​តភ្ជាប់​សកម្ម​ដែល​ត្រឹមត្រូវ​ទេ !" + +#: ../src/applet-dialogs.c:939 +msgid "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" +msgstr "" +"រក្សាសិទ្ធិ​ឆ្នាំ ២០០៤-២០១១ ដោយ Red Hat, Inc.\n" +"រក្សាសិទ្ធិ​ឆ្នាំ ២០០៥-២០០៨ ដោយ Novell, Inc.\n" +"និង​អ្នក​ចូលរួម និង​អ្នកបកប្រែ​របស់​សហគមន៍​ជាច្រើន​រូប​ទៀត" + +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "អាប់ភ្លេត​ផ្ទៃ​ជូនដំណឹង​សម្រាប់​គ្រប់គ្រង​ឧបករណ៍​បណ្ដាញ និង​ការ​តភ្ជាប់​របស់​អ្នក ។" + +#: ../src/applet-dialogs.c:944 +msgid "NetworkManager Website" +msgstr "តំបន់បណ្ដាញ NetworkManager" + +#: ../src/applet-dialogs.c:959 +msgid "Missing resources" +msgstr "បាត់​ធនធាន" + +#: ../src/applet-dialogs.c:984 +msgid "Mobile broadband network password" +msgstr "ពាក្យសម្ងាត់​របស់​បណ្ដាញ​រលកអាកាស​ចល័ត" + +#: ../src/applet-dialogs.c:993 +#, c-format +msgid "A password is required to connect to '%s'." +msgstr "ទាមទារ​ពាក្យសម្ងាត់ ដើម្បី​តភ្ជាប់​ទៅកាន់ '%s' ។" + +#: ../src/applet-dialogs.c:1012 +msgid "Password:" +msgstr "ពាក្យសម្ងាត់ ៖" + +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 +msgid "" +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." +msgstr "" +"អាសយដ្ឋាន IP កំណត់​អត្តសញ្ញាណ​កុំព្យូទ័រ​របស់​អ្នក​នៅ​លើ​បណ្ដាញ ។ ចុច​ប៊ូតុង \"បន្ថែម\" ដើម្បី​បន្ថែម​" +"អាសយដ្ឋាន IP ។" + +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "Ig_nore automatically obtained routes" +msgstr "មិន​អើពើ​ផ្លូវ​ដែល​ទទួល​បាន​ដោយស្វ័យប្រវត្តិ" + +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +msgid "_Use this connection only for resources on its network" +msgstr "ប្រើ​ការ​តភ្ជាប់​នេះ តែ​ក្នុង​ករណី​​សម្រាប់​ធនធាន​នៅ​លើ​បណ្ដាញ​របស់​វា" + +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 +msgid "" +"If enabled, this connection will never be used as the default network " +"connection." +msgstr "ប្រសិនបើ​ត្រូវ​បាន​បើក ការ​តភ្ជាប់​នេះ​នឹង​មិន​ត្រូវ​បាន​ប្រើ​ជា​ការ​តភ្ជាប់​បណ្ដាញ​លំនាំដើម​ឡើយ ។" + +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "ជ្រើស​ប្រភេទ​ការ​តភ្ជាប់" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"ជ្រើស​ប្រភេទ​ការ​តភ្ជាប់​ដែល​អ្នក​ចង់​ប្រើ ។\n" +"\n" +" ប្រសិនបើ​អ្នក​កំពុង​បង្កើត​ការ​តភ្ជាប់ VPN ហើយ ការ​តភ្ជាប់ VPN ដែល​អ្នក​ចង់​បង្កើត​មិន​មាន​នៅ​ក្នុង​បញ្ជី​ទេ " +"អ្នក​ប្រហែល​ជា​មិន​បាន​ដំឡើង​កម្មវិធី​ជំនួយ VPN ដែល​ត្រឹមត្រូវ ។" + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "បង្កើត…" + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "ស្វ័យប្រវត្តិ" + +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ធ្វើ​បច្ចុប្បន្នភាព​ពាក្យសម្ងាត់​តភ្ជាប់ ដោយសារតែ​មាន​កំហុស​ដែល​មិន​ស្គាល់ ។" + +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" +msgstr "Round-robin" + +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" +msgstr "បម្រុងទុក​សកម្ម" + +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" +msgstr "XOR" + +#: ../src/connection-editor/ce-page-bond.ui.h:4 +msgid "Broadcast" +msgstr "ផ្សាយ" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "802.3ad" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" +msgstr "ផ្ទុក​ការ​បញ្ជូន​ដែល​អាច​ប្រែប្រួល​ស្មើគ្នា" + +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" +msgstr "ការ​ផ្ទុក​ស្មើគ្នា​ដែល​អាច​ប្រែប្រួល" + +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "MII (បាន​ផ្ដល់​អនុសាសន៍)" + +#: ../src/connection-editor/ce-page-bond.ui.h:9 +msgid "ARP" +msgstr "ARP" + +#: ../src/connection-editor/ce-page-bond.ui.h:10 +msgid "Bonded _connections:" +msgstr "Bonded _connections:" + +#: ../src/connection-editor/ce-page-bond.ui.h:11 +msgid "_Mode:" +msgstr "របៀប ៖" + +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "កែសម្រួល" + +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "លុប" + +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "ប្រេកង់​ត្រួតពិនិត្យ ៖" + +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "ms" + +#: ../src/connection-editor/ce-page-bond.ui.h:16 +msgid "_Interface name:" +msgstr "ឈ្មោះ​ចំណុចប្រទាក់ ៖" + +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "ត្រួតពិនិត្យ​តំណ ៖" + +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "ARP _targets:" + +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "" +"An IP address, or a comma-separated list of IP addresses, to look for when " +"checking the link status." +msgstr "" +"អាសយដ្ឋាន IP ឬ​បញ្ជី​បំបែក​ដោយ​សញ្ញា​ក្បៀស​របស់​អាសយដ្ឋាន IP ដែល​ត្រូវ​រក​មើល​នៅ​ពេល​ពិនិត្យមើល​ស្ថានភាព​" +"តំណ ។" + +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "ការ​ពន្យារពេល Link _up ៖" + +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "ការ​ពន្យារពេល Link _down ៖" + +#: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:10 +#: ../src/wireless-security/eap-method-leap.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/ws-leap.ui.h:1 +msgid "_Username:" +msgstr "ឈ្មោះ​អ្នកប្រើ ​៖" + +#: ../src/connection-editor/ce-page-dsl.ui.h:2 +msgid "_Service:" +msgstr "សេវា ៖" + +#: ../src/connection-editor/ce-page-dsl.ui.h:3 +#: ../src/wireless-security/eap-method-leap.ui.h:3 +#: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 +#: ../src/wireless-security/ws-leap.ui.h:3 +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "បង្ហាញ​ពាក្យសម្ងាត់" + +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:11 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "ពាក្យសម្ងាត់ ៖" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "ស្វ័យប្រវត្តិ" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Twisted Pair (TP)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "១០ Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "១០០ Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "១ Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "១០ Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "ច្រក ៖" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "ល្បឿន ៖" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "សងខាង" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "ចរចា​ស្វ័យប្រវត្តិ" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "អាសយដ្ឋាន MAC របស់​ឧបករណ៍ ៖" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "អាសយដ្ឋាន MAC ដែល​បាន​ក្លូន ៖" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"អាសយដ្ឋាន MAC ដែល​បាន​បញ្ចូល​ទីនេះ នឹង​ត្រូវ​បាន​ប្រើ​ជា​អាសយដ្ឋាន​ផ្នែក​រឹង​សម្រាប់​ឧបករណ៍​បណ្ដាញ ដែល​ការ​" +"តភ្ជាប់​នេះ​នឹង​ត្រូវ​បាន​ធ្វើឲ្យ​សកម្ម ។ លក្ខណ​ពិសេស​នេះ​ត្រូវ​បាន​ស្គាល់​ថា​ជា​ការ​ក្លូន ឬ​ការ​ចម្លងតាម ។ " +"ឧទាហរណ៍ ៖ ០០:១១:២២:៣៣:៤៤:៥៥" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "MTU ៖" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "បៃ" + +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "របៀប​ដឹកជញ្ជូន ៖" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagram" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "បាន​តភ្ជាប់" + +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 +msgid "Automatic with manual DNS settings" +msgstr "ស្វ័យប្រវត្តិ​ជាមួយ​នឹង​ការ​កំណត់ DNS ដោយដៃ" + +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "ដោយដៃ" + +#: ../src/connection-editor/ce-page-ip4.ui.h:4 +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "តភ្ជាប់​មូលដ្ឋាន" + +#: ../src/connection-editor/ce-page-ip4.ui.h:5 +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "បាន​ចែករំលែក​ទៅ​កុំព្យូទ័រ​ផ្សេងទៀត" + +#: ../src/connection-editor/ce-page-ip4.ui.h:6 +#: ../src/connection-editor/ce-page-ip6.ui.h:6 +msgid "_Method:" +msgstr "វិធីសាស្ត្រ ៖" + +#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip6.ui.h:7 +msgid "Addresses" +msgstr "អាសយដ្ឋាន" + +#: ../src/connection-editor/ce-page-ip4.ui.h:9 +msgid "" +"The DHCP client identifier allows the network administrator to customize " +"your computer's configuration. If you wish to use a DHCP client identifier, " +"enter it here." +msgstr "" +"គ្រឿង​សម្គាល់​កម្មវិធី DHCP អនុញ្ញាត​ឲ្យ​អ្នក​គ្រប់គ្រង​បណ្ដាញ​ប្ដូរ​ការ​កំណត់​រចនាសម្ព័ន្ធ​កុំព្យូទ័រ​របស់​អ្នក​តាម​" +"បំណង ។ ប្រសិនបើ​អ្នក​ចង់​ប្រើ​សម្គាល់​កម្មវិធី DHCP បញ្ចូល​វា​នៅទីនេះ ។" + +#: ../src/connection-editor/ce-page-ip4.ui.h:10 +#: ../src/connection-editor/ce-page-ip6.ui.h:9 +msgid "" +"Domains used when resolving host names. Use commas to separate multiple " +"domains." +msgstr "ដែន​ដែល​ត្រូវ​ប្រើ នៅ​ពេល​ដោះស្រាយ​ឈ្មោះ​ម៉ាស៊ីន ។ ប្រើ​សញ្ញា (,) ដើម្បី​បំបែក​ដែន​ជាច្រើន ។" + +#: ../src/connection-editor/ce-page-ip4.ui.h:11 +msgid "D_HCP client ID:" +msgstr "លេខ​សម្គាល់​កម្មវិធី DHCP ៖" + +#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 +msgid "S_earch domains:" +msgstr "ដែន​ស្វែងរក ៖" + +#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 +msgid "_DNS servers:" +msgstr "ម៉ាស៊ីន​បម្រើ DNS ៖" + +#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip6.ui.h:12 +msgid "" +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." +msgstr "" +"អាសយដ្ឋាន IP នៃ​ម៉ាស៊ីន​បម្រើ​ឈ្មោះ​ដែន​ត្រូវ​បាន​ប្រើ ដើម្បី​ដោះស្រាយ​ឈ្មោះ​ម៉ាស៊ីន ។ ប្រើ​សញ្ញា (,) ដើម្បី​" +"បំបែក​អាសយដ្ឋាន​ម៉ាស៊ីន​បម្រើ​ឈ្មោះ​ដែន​ជាច្រើន ។" + +#: ../src/connection-editor/ce-page-ip4.ui.h:15 +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "ទាមទារ​អាសយដ្ឋាន IPv_4 សម្រាប់​ការ​តភ្ជាប់​នេះ​ ដើម្បី​បញ្ចប់" + +#: ../src/connection-editor/ce-page-ip4.ui.h:16 +msgid "" +"When connecting to IPv6-capable networks, allows the connection to complete " +"if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "" +"នៅ​ពេល​តភ្ជាប់​ទៅ​បណ្ដាញ​ខ្សែ IPv6 អនុញ្ញាត​ឲ្យ​បញ្ចប់​ការ​តភ្ជាប់ ប្រសិនបើ​ការ​កំណត់​រចនាសម្ព័ន្ធ​ IPv4 " +"បរាជ័យ ប៉ុន្តែ​ការ​កំណត់​រចនាសម្ព័ន្ធ IPv6 បាន​ទទួលជោគជ័យ ។" + +#: ../src/connection-editor/ce-page-ip4.ui.h:17 +#: ../src/connection-editor/ce-page-ip6.ui.h:15 +msgid "_Routes…" +msgstr "នាំផ្លូវ…" + +#: ../src/connection-editor/ce-page-ip6.ui.h:13 +msgid "Require IPv_6 addressing for this connection to complete" +msgstr "ទាមទារអាសយដ្ឋាន IPv_6 សម្រាប់​ការ​តភ្ជាប់​នេះ ដើម្បី​បញ្ចប់" + +#: ../src/connection-editor/ce-page-ip6.ui.h:14 +msgid "" +"When connecting to IPv4-capable networks, allows the connection to complete " +"if IPv6 configuration fails but IPv4 configuration succeeds." +msgstr "" +"នៅ​ពេល​តភ្ជាប់​ទៅ​កាន់​បណ្ដាញ​ខ្សែ IPv4 អនុញ្ញាត​ឲ្យ​បញ្ចប់​ការ​តភ្ជាប់ ប្រសិនបើ​ការ​កំណត់​រចនាសម្ព័ន្ធ IPv6 " +"បរាជ័យ ប៉ុន្តែ​ការ​កំណត់​រចនាសម្ព័ន្ធ IPv4 បាន​ទទួល​ជោគជ័យ ។" + +#: ../src/connection-editor/ce-page-mobile.ui.h:1 +msgid "Any" +msgstr "ណាមួយ" + +#: ../src/connection-editor/ce-page-mobile.ui.h:2 +msgid "3G (UMTS/HSPA)" +msgstr "3G (UMTS/HSPA)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:3 +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:4 +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "ចូលចិត្ត 3G (UMTS/HSPA)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:5 +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "ចូលចិត្ត 2G (GPRS/EDGE)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:6 +msgid "Prefer 4G (LTE)" +msgstr "ចូលចិត្ត 4G (LTE)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:7 +msgid "Use only 4G (LTE)" +msgstr "ប្រើ​តែ 4G (LTE) ប៉ុណ្ណោះ" + +#: ../src/connection-editor/ce-page-mobile.ui.h:8 +msgid "Basic" +msgstr "មូលដ្ឋាន" + +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +msgid "Nu_mber:" +msgstr "លេខ ៖" + +#: ../src/connection-editor/ce-page-mobile.ui.h:12 +msgid "Advanced" +msgstr "កម្រិត​ខ្ពស់" + +#: ../src/connection-editor/ce-page-mobile.ui.h:13 +msgid "_APN:" +msgstr "APN ៖" + +#: ../src/connection-editor/ce-page-mobile.ui.h:14 +msgid "N_etwork ID:" +msgstr "លេខ​សម្គាល់​បណ្ដាញ ៖" + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "ប្រភេទ ៖" + +#: ../src/connection-editor/ce-page-mobile.ui.h:16 +msgid "Change..." +msgstr "ផ្លាស់ប្ដូរ..." + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "P_IN:" +msgstr "PIN ៖" + +#: ../src/connection-editor/ce-page-mobile.ui.h:18 +msgid "Allow _roaming if home network is not available" +msgstr "អនុញ្ញាត roaming ប្រសិនបើ​មាន​បណ្ដាញ​ផ្ទះ" + +#: ../src/connection-editor/ce-page-mobile.ui.h:19 +msgid "Sho_w passwords" +msgstr "បង្ហាញ​ពាក្យសម្ងាត់" + +#: ../src/connection-editor/ce-page-ppp.ui.h:1 +msgid "Authentication" +msgstr "ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ" + +#: ../src/connection-editor/ce-page-ppp.ui.h:2 +msgid "Allowed methods:" +msgstr "វិធីសាស្ត្រ​ដែល​អនុញ្ញាត ៖" + +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "កំណត់​រចនាសម្ព័ន្ធ​វិធីសាស្ត្រ…" + +#: ../src/connection-editor/ce-page-ppp.ui.h:4 +msgid "Compression" +msgstr "ការ​បង្ហាប់" + +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "ប្រើ​ការ​អ៊ិនគ្រីប​ចំណុច​ទៅ​ចំណុច (MPPE)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:6 +msgid "_Require 128-bit encryption" +msgstr "ទាមទារ​ការ​អ៊ិនគ្រីប ១២៨ ប៊ីត" + +#: ../src/connection-editor/ce-page-ppp.ui.h:7 +msgid "Use _stateful MPPE" +msgstr "ប្រើ MPPE" + +#: ../src/connection-editor/ce-page-ppp.ui.h:8 +msgid "Allow _BSD data compression" +msgstr "អនុញ្ញាត​ឲ្យ​បង្ហាប់​ទិន្នន័យ BSD" + +#: ../src/connection-editor/ce-page-ppp.ui.h:9 +msgid "Allow _Deflate data compression" +msgstr "ធ្វើឲ្យ​ទិន្នន័យ​បង្ហាប់​ខូច" + +#: ../src/connection-editor/ce-page-ppp.ui.h:10 +msgid "Use TCP _header compression" +msgstr "ប្រើ​ការ​បង្ហាប់​បឋមកថា TCP" + +#: ../src/connection-editor/ce-page-ppp.ui.h:11 +msgid "Echo" +msgstr "Echo" + +#: ../src/connection-editor/ce-page-ppp.ui.h:12 +msgid "Send PPP _echo packets" +msgstr "ផ្ញើ​កញ្ចប់ echo របស់ PPP" + +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "សុវត្ថិភាព ៖" + +#: ../src/connection-editor/ce-page-wifi.ui.h:2 +msgid "A (5 GHz)" +msgstr "A (5 GHz)" + +#: ../src/connection-editor/ce-page-wifi.ui.h:3 +msgid "B/G (2.4 GHz)" +msgstr "B/G (2.4 GHz)" + +#: ../src/connection-editor/ce-page-wifi.ui.h:4 +msgid "Infrastructure" +msgstr "ហេដ្ឋារចនាសម្ព័ន្ធ" + +#: ../src/connection-editor/ce-page-wifi.ui.h:5 +msgid "Ad-hoc" +msgstr "Ad-hoc" + +#: ../src/connection-editor/ce-page-wifi.ui.h:11 +msgid "mW" +msgstr "mW" + +#: ../src/connection-editor/ce-page-wifi.ui.h:12 +msgid "Transmission po_wer:" +msgstr "ថាមពល​បញ្ជូន ៖" + +#: ../src/connection-editor/ce-page-wifi.ui.h:13 +msgid "Mb/s" +msgstr "Mb/s" + +#: ../src/connection-editor/ce-page-wifi.ui.h:14 +msgid "_Rate:" +msgstr "អត្រា ៖" + +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +msgid "" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "" +"ជម្រើស​នេះ​នឹង​ចាក់សោ​ការ​តភ្ជាប់​ទៅកាន់​ចំណុច​ចូល​ដំណើរការ (AP) របស់ Wi-Fi ដែល​បាន​បញ្ជាក់​ដោយ BSSID " +"និង​បាន​បញ្ចូល​នៅ​ទីនេះ ។ ឧទាហរណ៍ ៖ ០០:១១:២២:៣៣:៤៤:៥៥" + +#: ../src/connection-editor/ce-page-wifi.ui.h:16 +msgid "_BSSID:" +msgstr "BSSID ៖" + +#: ../src/connection-editor/ce-page-wifi.ui.h:17 +msgid "C_hannel:" +msgstr "ឆានែល ៖" + +#: ../src/connection-editor/ce-page-wifi.ui.h:18 +msgid "Ban_d:" +msgstr "រលកអាកាស ៖" + +#: ../src/connection-editor/ce-page-wifi.ui.h:19 +msgid "M_ode:" +msgstr "របៀប ៖" + +#: ../src/connection-editor/ce-page-wifi.ui.h:20 +msgid "SS_ID:" +msgstr "SSID ៖" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 +msgid "Allowed Authentication Methods" +msgstr "វិធីសាស្ត្រ​ផ្ទៀងផ្ទាត់​ដែល​បាន​អនុញ្ញាត" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 +msgid "_EAP" +msgstr "EAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +msgid "Extensible Authentication Protocol" +msgstr "ពិធីការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ​បន្ថែម" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "PAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +msgid "Password Authentication Protocol" +msgstr "ពិធីការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ​អំពី​ពាក្យសម្ងាត់" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 +msgid "C_HAP" +msgstr "CHAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 +msgid "Challenge Handshake Authentication Protocol" +msgstr "Challenge Handshake Authentication Protocol" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "_MSCHAP" +msgstr "MSCHAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft Challenge Handshake Authentication Protocol" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft Challenge Handshake Authentication Protocol កំណែ ២" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "" +"ក្នុង​ករណី​ភាគច្រើន ម៉ាស៊ីន​បម្រើ PPP របស់​ក្រុមហ៊ុន​ផ្ដល់​នឹង​គាំទ្រ​វិធីសាស្ត្រ​ផ្ទៀងផ្ទាត់​ទាំងអស់ ។ ប្រសិនបើ​ការ​" +"តភ្ជាប់​បាន​បរាជ័យ សូម​ព្យាយាម​បិទ​ការ​គាំទ្រ​វិធីសាស្ត្រ​មួយ​ចំនួន​សិន ។" + +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "អាសយដ្ឋាន" + +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "របាំង​បណ្ដាញ" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "ផ្លូវចេញចូល" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "ម៉ែត្រ" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "បុព្វបទ" + +#: ../src/connection-editor/new-connection.c:99 +#: ../src/connection-editor/page-ethernet.c:272 +msgid "Ethernet" +msgstr "អ៊ីសឺរណិត" + +#: ../src/connection-editor/new-connection.c:105 +#: ../src/connection-editor/page-wifi.c:460 +msgid "Wi-Fi" +msgstr "Wi-Fi" + +#: ../src/connection-editor/new-connection.c:117 +#: ../src/connection-editor/page-wimax.c:155 ../src/mb-menu-item.c:75 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:123 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:129 +#: ../src/connection-editor/page-infiniband.c:191 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:135 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "Bond" + +#: ../src/connection-editor/new-connection.c:148 +#: ../src/connection-editor/new-connection.c:287 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:238 +#, fuzzy +#| msgid "Hardware Address:" +msgid "Hardware" +msgstr "អាសយដ្ឋាន​ផ្នែករឹង ៖" + +#: ../src/connection-editor/new-connection.c:258 +msgid "Virtual" +msgstr "" + +#: ../src/connection-editor/new-connection.c:325 +#: ../src/connection-editor/new-connection.c:327 +msgid "Import a saved VPN configuration..." +msgstr "នាំចូល​ការ​កំណត់​រចនាសម្ព័ន្ធ VPN ដែល​បាន​តភ្ជាប់..." + +#: ../src/connection-editor/new-connection.c:356 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "មិន​អាច​ចាប់ផ្ដើម​ប្រអប់​កម្មវិធី​កែសម្រួល​ការ​តភ្ជាប់​បាន​ឡើយ ដោយសារតែ​មាន​កំហុស​ដែល​មិន​ស្គាល់ ។" + +#: ../src/connection-editor/new-connection.c:365 +msgid "Could not create new connection" +msgstr "មិន​អាច​បង្កើត​ការ​តភ្ជាប់​ថ្មី​បាន​ឡើយ" + +#: ../src/connection-editor/new-connection.c:500 +msgid "Connection delete failed" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​លុប​ការ​តភ្ជាប់" + +#: ../src/connection-editor/new-connection.c:547 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "តើ​អ្នក​ពិតជា​ចង់​លុប​កា​រ​តភ្ជាប់ %s ឬ ?" + +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "កែសម្រួល %s" + +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "កែសម្រួល​ការ​តភ្ជាប់​ដែល​គ្មាន​ឈ្មោះ" + +#: ../src/connection-editor/nm-connection-editor.c:301 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "កម្មវិធី​កែសម្រួល​ការ​តភ្ជាប់​រក​ឃើញ​ធនធាន​ដែល​ត្រូវការ (ឯកសារ .ui មិន​ត្រូវ​បាន​រក​ឃើញ​ទេ) ។" + +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "រក្សាទុក" + +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "រក្សាទុក​ការ​ផ្លាស់ប្ដូរ​ណាមួយ​ដែល​បាន​ធ្វើ​ទៅលើ​ការ​តភ្ជាប់​នេះ ។" + +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "រក្សាទុក..." + +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ ដើម្បី​រក្សាទុក​ការ​តភ្ជាប់​នេះ​សម្រាប់​អ្នកប្រើ​ម៉ាស៊ីន​នេះ​ទាំងអស់ ។" + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not create connection" +msgstr "មិន​អាច​បង្កើត​ការ​តភ្ជាប់" + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "មិន​អាច​កែសម្រួល​ការ​តភ្ជាប់" + +#: ../src/connection-editor/nm-connection-editor.c:449 +msgid "Unknown error creating connection editor dialog." +msgstr "មាន​កំហុស​មិន​ស្គាល់​នៅ​ពេល​បង្កើត​ប្រអប់​កម្មវិធី​កែសម្រួល​ការ​តភ្ជាប់ ។" + +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "កំហុស​ក្នុង​ការ​រក្សាទុក​ការ​តភ្ជាប់" + +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "លក្ខណសម្បត្តិ '%s' / '%s' មិន​ត្រឹមត្រូវ ៖ %d" + +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "កំហុស​ក្នុង​ការ​ចាប់ផ្ដើម​កម្មវិធី​កែសម្រួល" + +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​បន្ថែម​ការ​តភ្ជាប់" + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "ឈ្មោះ​ការ​តភ្ជាប់ ៖" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "តភ្ជាប់​ដោយ​ស្វ័យប្រវត្តិ" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "មាន​សម្រាប់​គ្រប់​អ្នកប្រើ" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "នាំចេញ..." + +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "កុំ" + +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "ឥឡូវនេះ" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d នាទី​កន្លងទៅ" + +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ម៉ោង​កន្លងទៅ" + +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d ថ្ងៃ​កន្លងទៅ" + +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d ខែ​កន្លងទៅ" + +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "%d ឆ្នាំ​កន្លងទៅ" + +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "ឈ្មោះ" + +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "បាន​ប្រើ​លើក​ចុងក្រោយ" + +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "កែសម្រួល​ការ​តភ្ជាប់​ដែល​បាន​ជ្រើស" + +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "កែសម្រួល..." + +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ ដើម្បី​កែសម្រួល​ការ​តភ្ជាប់​ដែល​បាន​ជ្រើស" + +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "លុប​ការ​តភ្ជាប់​ដែល​បាន​ជ្រើស" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "លុប..." + +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ ដើម្បី​លុប​ការ​តភ្ជាប់​ដែល​បាន​ជ្រើស" + +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "កំហុស​ក្នុងការ​បង្កើត​ការ​តភ្ជាប់" + +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "មិន​ដឹង​វិធី​បង្កើត​ការ​តភ្ជាប់ '%s'" + +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "កំហុស​ក្នុង​ការ​កែសម្រួល​ការ​តភ្ជាប់" + +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "កុំ​រក​ការ​តភ្ជាប់​ដែលមាន UUID '%s'" + +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "សុវត្ថិភាព 802.1x" + +#: ../src/connection-editor/page-8021x-security.c:122 +msgid "Could not load 802.1x Security user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុចប្រទាក់​អ្នកប្រើ​សុវត្ថិភាព 802.1x បាន​ទេ ។" + +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "ប្រើ​សុវត្ថិភាព 802.1_X សម្រាប់​ការ​តភ្ជាប់​នេះ" + +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "%s ស្លាវ %d" + +#: ../src/connection-editor/page-bond.c:749 +msgid "Could not load bond user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុច​ប្រទាក់​អ្នកប្រើ bond ​បានទេ ។" + +#: ../src/connection-editor/page-bond.c:909 +#, c-format +msgid "Bond connection %d" +msgstr "ការ​តភ្ជាប់ bond %d" + +#: ../src/connection-editor/page-dsl.c:142 +msgid "Could not load DSL user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុចប្រទាក់​អ្នកប្រើ DSL បាន​ទេ ។" + +#: ../src/connection-editor/page-dsl.c:234 +#, c-format +msgid "DSL connection %d" +msgstr "ការ​តភ្ជាប់ DSL %d" + +#: ../src/connection-editor/page-ethernet.c:90 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"ជម្រើស​នេះ​ចាក់សោ​ការ​តភ្ជាប់​ទៅកាន់​ឧបករណ៍​បណ្ដាញ​ដែល​បាន​បញ្ជាក់​ដោយ​អាសយដ្ឋាន MAC អចិន្ត្រៃយ៍​ដែល​បាន​" +"បញ្ចូល​នៅ​ទីនេះ ​។ ឧទាហរណ៍ ៖ ០០:១១:២២:៣៣:៤៤:៥៥" + +#: ../src/connection-editor/page-ethernet.c:274 +msgid "Could not load ethernet user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុច​ប្រទាក់​អ្នកប្រើ​អ៊ីសឺណោត​បាន​ទេ ។" + +#: ../src/connection-editor/page-ethernet.c:450 +#, c-format +msgid "Ethernet connection %d" +msgstr "ការ​តភ្ជាប់​អ៊ីសឺណិត %d" + +#: ../src/connection-editor/page-infiniband.c:194 +msgid "Could not load InfiniBand user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុចប្រទាក់​អ្នកប្រើ InfiniBand បាន​ទេ ។" + +#: ../src/connection-editor/page-infiniband.c:319 +#, c-format +msgid "InfiniBand connection %d" +msgstr "ការ​តភ្ជាប់ InfiniBand %d" + +#: ../src/connection-editor/page-ip4.c:133 +#: ../src/connection-editor/page-ip6.c:132 +msgid "Automatic (VPN)" +msgstr "(VPN) ​ស្វ័យប្រវត្តិ" + +#: ../src/connection-editor/page-ip4.c:134 +#: ../src/connection-editor/page-ip6.c:133 +msgid "Automatic (VPN) addresses only" +msgstr "អាសយដ្ឋាន (VPN) ស្វ័យប្រវត្តិ​តែប៉ុណ្ណោះ" + +#: ../src/connection-editor/page-ip4.c:137 +#: ../src/connection-editor/page-ip6.c:136 +msgid "Automatic (PPP)" +msgstr "(PPP) ស្វ័យប្រវត្តិ" + +#: ../src/connection-editor/page-ip4.c:138 +#: ../src/connection-editor/page-ip6.c:137 +msgid "Automatic (PPP) addresses only" +msgstr "អាសយដ្ឋាន (PPP) ស្វ័យប្រវត្តិ​តែប៉ុណ្ណោះ" + +#: ../src/connection-editor/page-ip4.c:140 +#: ../src/connection-editor/page-ip6.c:139 +msgid "Automatic (PPPoE)" +msgstr "(PPPoE) ស្វ័យប្រវត្តិ" + +#: ../src/connection-editor/page-ip4.c:141 +#: ../src/connection-editor/page-ip6.c:140 +msgid "Automatic (PPPoE) addresses only" +msgstr "អាសយដ្ឋាន (PPPoE) ស្វ័យប្រវត្តិ​តែប៉ុណ្ណោះ" + +#: ../src/connection-editor/page-ip4.c:143 +msgid "Automatic (DHCP)" +msgstr "(DHCP) ស្វ័យប្រវត្តិ" + +#: ../src/connection-editor/page-ip4.c:144 +msgid "Automatic (DHCP) addresses only" +msgstr "អាសយដ្ឋាន (DHCP) ស្វ័យប្រវត្តិ​តែប៉ុណ្ណោះ" + +#: ../src/connection-editor/page-ip4.c:181 +#: ../src/connection-editor/page-ip6.c:204 +msgid "Link-Local Only" +msgstr "តែ​ការ​តភ្ជាប់​មូលដ្ឋាន​ប៉ុណ្ណោះ" + +#: ../src/connection-editor/page-ip4.c:197 +msgid "Disabled" +msgstr "បាន​បិទ" + +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "សេវា DNS បន្ថែម ៖" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "ដែន​ស្វែងរក​បន្ថែម ៖" + +#: ../src/connection-editor/page-ip4.c:843 +#, c-format +msgid "Editing IPv4 routes for %s" +msgstr "កែសម្រួល​ផ្លូវ IPv4 សម្រាប់ %s" + +#: ../src/connection-editor/page-ip4.c:993 +msgid "IPv4 Settings" +msgstr "ការ​កំណត់ IPv4" + +#: ../src/connection-editor/page-ip4.c:995 +msgid "Could not load IPv4 user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុច​ប្រទាក់​អ្នកប្រើ IPv4 បាន​ឡើយ ។" + +#: ../src/connection-editor/page-ip6.c:143 +msgid "Automatic, addresses only" +msgstr "ស្វ័យប្រវត្តិ តែ​អាសយដ្ឋាន​ប៉ុណ្ណោះ" + +#: ../src/connection-editor/page-ip6.c:155 +#: ../src/wireless-security/eap-method.c:281 +msgid "Ignore" +msgstr "មិន​អើពើ" + +#: ../src/connection-editor/page-ip6.c:179 +msgid "Automatic, DHCP only" +msgstr "ស្វ័យប្រវត្តិ តែ DHCP ប៉ុណ្ណោះ" + +#: ../src/connection-editor/page-ip6.c:809 +#, c-format +msgid "Editing IPv6 routes for %s" +msgstr "កែសម្រួល​ផ្លូវ​សម្រាប់ IPv6 %s" + +#: ../src/connection-editor/page-ip6.c:957 +msgid "IPv6 Settings" +msgstr "ការ​កំណត់ IPv6" + +#: ../src/connection-editor/page-ip6.c:959 +msgid "Could not load IPv6 user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុចប្រទាក់​អ្នកប្រើ IPv6 បាន​ឡើយ ។" + +#: ../src/connection-editor/page-mobile.c:390 +msgid "Could not load mobile broadband user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុចប្រទាក់​អ្នកប្រើ​រលកអាកាស​ចល័ត​បាន​ឡើយ ។" + +#: ../src/connection-editor/page-mobile.c:407 +msgid "Unsupported mobile broadband connection type." +msgstr "ប្រភេទ​តភ្ជាប់​រលកអាកាស​ចល័ត​ដែល​មិន​គាំទ្រ ។" + +#. Fall back to just asking for GSM vs. CDMA +#: ../src/connection-editor/page-mobile.c:657 +msgid "Select Mobile Broadband Provider Type" +msgstr "ជ្រើស​ប្រភេទ​ក្រុមហ៊ុន​ផ្ដល់​រលកអាកាស​ចល័ត" + +#: ../src/connection-editor/page-mobile.c:692 +msgid "" +"Select the technology your mobile broadband provider uses. If you are " +"unsure, ask your provider." +msgstr "" +"ជ្រើស​បច្ចេកវិទ្យា​ដែល​ក្រុមហ៊ុន​ផ្ដល់​រលកអាកាស​ចល័ត​របស់​អ្នក​ប្រើ ។ ប្រសិនបើ​អ្នក​មិន​ច្បាស់ សួរ​ក្រុមហ៊ុន​ផ្ដល់​របស់​" +"អ្នក ។" + +#: ../src/connection-editor/page-mobile.c:697 +msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" +msgstr "" +"ក្រុមហ៊ុន​ផ្ដល់​របស់​ខ្ញុំ​ប្រើ​បច្ចេកវិទ្យា​ដែល​មាន​មូលដ្ឋាន​លើ GSM (ឧ. GPRS, EDGE, UMTS, HSDPA)" + +#: ../src/connection-editor/page-mobile.c:704 +msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" +msgstr "ក្រុមហ៊ុន​ផ្ដល់​របស់​ខ្ញុំ​ប្រើ​បច្ចេកវិទ្យា​ដែល​មាន​មូលដ្ឋាន​លើ CDMA (ឧ. 1xRTT, EVDO)" + +#: ../src/connection-editor/page-ppp.c:134 +msgid "EAP" +msgstr "EAP" + +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 +msgid "PAP" +msgstr "PAP" + +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" + +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" + +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" + +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "គ្មាន" + +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "កែសម្រួល​វិធីសាស្ត្រ​ផ្ទៀងផ្ទាត់ PPP សម្រាប់ %s" + +#: ../src/connection-editor/page-ppp.c:283 +msgid "PPP Settings" +msgstr "ការ​កំណត់ PPP" + +#: ../src/connection-editor/page-ppp.c:285 +msgid "Could not load PPP user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុចប្រទាក់​អ្នកប្រើ PPP បាន​ឡើយ ។" + +#: ../src/connection-editor/page-vpn.c:114 +msgid "Could not load VPN user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុចប្រទាក់​អ្នកប្រើ VPN បាន​ឡើយ ។" + +#: ../src/connection-editor/page-vpn.c:129 +#, c-format +msgid "Could not find VPN plugin service for '%s'." +msgstr "រក​មិន​ឃើញ​សេវា​កម្មវិធី​ជំនួយ VPN សម្រាប់ '%s' ឡើយ ។" + +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 +#, c-format +msgid "VPN connection %d" +msgstr "ការ​តភ្ជាប់ VPN %d" + +#: ../src/connection-editor/page-vpn.c:249 +msgid "" +"The VPN plugin failed to import the VPN connection correctly\n" +"\n" +"Error: no VPN service type." +msgstr "" +"កម្មវិធី​ជំនួយ VPN បាន​បរាជ័យ​ក្នុង​ការ​នាំចូល​ការ​តភ្ជាប់ VPN ដោយ​ត្រឹមត្រូវ\n" +"\n" +"កំហុស ៖ គ្មាន​ប្រភេទ​សេវា VPN ។" + +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "ជ្រើស​ប្រភេទ​តភ្ជាប់ VPN" + +#: ../src/connection-editor/page-vpn.c:275 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"ជ្រើស​ប្រភេទ VPN ដែល​អ្នក​ចង់​ប្រើ​សម្រាប់​ការ​តភ្ជាប់​ថ្មី ។ ប្រសិនបើ​ប្រភេទ​តភ្ជាប់ VPN ដែល​អ្នក​ចង់​បង្កើត​" +"មិន​មាន​នៅ​ក្នុង​បញ្ជី​ទេ អ្នក​ប្រហែល​ជា​មិន​បាន​ដំឡើង​កម្មវិធី​ជំនួយ VPN ដែល​ត្រឹមត្រូវ ។" + +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "លំនាំដើម" + +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" + +#: ../src/connection-editor/page-wifi.c:462 +msgid "Could not load Wi-Fi user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុចប្រទាក់​អ្នកប្រើ WiFi បាន​ទេ ។" + +#: ../src/connection-editor/page-wifi.c:667 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "ការ​តភ្ជាប់ Wi-Fi %d" + +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "គ្មាន" + +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:902 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "WEP 40/128-bit Key (Hex ឬ ASCII)" + +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:911 +msgid "WEP 128-bit Passphrase" +msgstr "ឃ្លា​សម្ងាត់ WEP 128-bit" + +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:941 +msgid "Dynamic WEP (802.1x)" +msgstr "WEP (802.1x) ថាមវន្ត" + +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:955 +msgid "WPA & WPA2 Personal" +msgstr "WPA & WPA2 ផ្ទាល់ខ្លួន" + +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:969 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA & WPA2 ក្រុមហ៊ុន" + +#: ../src/connection-editor/page-wifi-security.c:396 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "មិន​អាច​ផ្ទុក​ចំណុច​ប្រទាក់​អ្នកប្រើ​សុវត្ថិភាព Wi-Fi បាន​ទេ ព្រោះ​បាត់​ការ​កំណត់ Wi-Fi ។" + +#: ../src/connection-editor/page-wifi-security.c:406 +msgid "Wi-Fi Security" +msgstr "សុវត្ថិភាព Wi-Fi" + +#: ../src/connection-editor/page-wifi-security.c:408 +msgid "Could not load Wi-Fi security user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុចប្រទាក់​អ្នកប្រើ​សុវត្ថិភាព Wi-Fi បាន​ទេ ។" + +#: ../src/connection-editor/page-wimax.c:158 +msgid "Could not load WiMAX user interface." +msgstr "មិន​អាច​ផ្ទុក​ចំណុចប្រទាក់​អ្នកប្រើ WiMAX បាន​ទេ ។" + +#: ../src/connection-editor/page-wimax.c:287 +#, c-format +msgid "WiMAX connection %d" +msgstr "ការ​តភ្ជាប់ WiMAX %d" + +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "មិន​អាច​នាំចូល​ការ​​តភ្ជាប់ VPN" + +#: ../src/connection-editor/vpn-helpers.c:209 +#, c-format +msgid "" +"The file '%s' could not be read or does not contain recognized VPN " +"connection information\n" +"\n" +"Error: %s." +msgstr "" +"មិន​អាច​អាន​ឯកសារ '%s' ឬ​វា​មិន​មាន​ព័ត៌មាន​ការ​តភ្ជាប់ VPN ដែល​ត្រូវ​បាន​ទទួល​ស្គាល់\n" +"\n" +"កំហុស ៖ %s ។" + +#: ../src/connection-editor/vpn-helpers.c:241 +msgid "Select file to import" +msgstr "ជ្រើស​ឯកសារ​ត្រូវ​នាំចូល" + +#: ../src/connection-editor/vpn-helpers.c:292 +#, c-format +msgid "A file named \"%s\" already exists." +msgstr "មាន​ឯកសារ​ដែល​មាន​ឈ្មោះ​ \"%s\" នោះ​រួចហើយ ។" + +#: ../src/connection-editor/vpn-helpers.c:294 +msgid "_Replace" +msgstr "ជំនួស" + +#: ../src/connection-editor/vpn-helpers.c:296 +#, c-format +msgid "Do you want to replace %s with the VPN connection you are saving?" +msgstr "តើ​អ្នក​ចង់​ជំនួស %s ដោយ​ការ​តភ្ជាប់ VPN ដែល​អ្នក​បាន​រក្សាទុក​ដែរ​ឬ​ទេ ?" + +#: ../src/connection-editor/vpn-helpers.c:332 +msgid "Cannot export VPN connection" +msgstr "មិន​អាច​នាំចូល​ការ​តភ្ជាប់ VPN បាន​ឡើយ" + +#: ../src/connection-editor/vpn-helpers.c:334 +#, c-format +msgid "" +"The VPN connection '%s' could not be exported to %s.\n" +"\n" +"Error: %s." +msgstr "" +"ការ​តភ្ជាប់ VPN '%s' មិន​អាច​ត្រូវ​បាន​នាំចេញ​ទៅកាន់ %s បាន​ឡើយ ។\n" +"\n" +"កំហុស ៖ %s ។" + +#: ../src/connection-editor/vpn-helpers.c:369 +msgid "Export VPN connection..." +msgstr "នាំចេញ​ការ​តភ្ជាប់ VPN..." + +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"អាប់ភ្លេត NetworkManager មិន​អាច​​រក​ឃើញ​ធនធាន​មួយ​ចំនួន​ដែល​ត្រូវការ​ទេ (រក​មិន​ឃើញ​ឯកសារ .ui) ។" + +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "មិន​អាច​​កំណត់​រចនាសម្ព័ន្ធ​ប្ល៊ូធូស​បាន​ទេ (បាន​បរាជ័យ​ក្នុង​ការ​តភ្ជាប់​ទៅកាន់ D-Bus: (%s) %s) ។" + +#: ../src/gnome-bluetooth/bt-widget.c:330 +#, c-format +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "មិន​អាច​​កំណត់​រចនាសម្ព័ន្ធ​ប្ល៊ូធូស​បាន​ទេ (កំហុស​ក្នុង​ការ​ស្វែងរក NetworkManager: (%s) %s) ។" + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "ប្រើ​ទូរស័ព្ទ​ចល័ត​របស់​អ្នក​ជា​ឧបករណ៍​បណ្ដាញ (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "ចូល​ដំណើរការ​អ៊ីនធឺណិត​ដោយ​ប្រើ​ទូរស័ព្ទ​ចល័ត​របស់​អ្នក (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 +#, c-format +msgid "Error: %s" +msgstr "កំហុស ៖ %s" + +#: ../src/gnome-bluetooth/nma-bt-device.c:425 +#, c-format +msgid "Failed to create DUN connection: %s" +msgstr "បានបរាជ័យ​ក្នុង​កា​របង្កើត​ការ​តភ្ជាប់ DUN ៖ %s" + +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "ឥឡូវ អ្នក​អាច​ប្រើ​ទូរស័ព្ទ​របស់​អ្នក​បាន !" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 +msgid "Mobile wizard was canceled" +msgstr "អ្នក​ជំនួយការ​ទូរស័ព្ទ​ត្រូវ​បាន​បោះបង់" + +#: ../src/gnome-bluetooth/nma-bt-device.c:459 +msgid "Unknown phone device type (not GSM or CDMA)" +msgstr "មិន​ស្គាល់​ប្រភេទ​ឧបករណ៍​ទូរស័ព្ទ (មិន​មែន​ជា GSM ឬ CDMA)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "មិន​ស្គាល់​ប្រភេទ​ម៉ូដឹម" + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 +msgid "failed to connect to the phone." +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​តភ្ជាប់​ទៅកាន់​ទូរស័ព្ទ ។" + +#: ../src/gnome-bluetooth/nma-bt-device.c:676 +msgid "unexpectedly disconnected from the phone." +msgstr "បាន​ផ្ដាច់​ពី​ទូរស័ព្ទ​ដោយ​មិន​បាន​រំពឹងទុក ។" + +#: ../src/gnome-bluetooth/nma-bt-device.c:686 +msgid "timed out detecting phone details." +msgstr "អស់​ពេល​ក្នុង​ការ​ស្វែងរក​សេចក្ដី​លម្អិត​អំពី​ទូរស័ព្ទ ។" + +#: ../src/gnome-bluetooth/nma-bt-device.c:697 +msgid "Detecting phone configuration..." +msgstr "កំពុង​រក​មើល​ការ​កំណត់​រចនាសម្ព័ន្ធ​ទូរស័ព្ទ..." + +#: ../src/gnome-bluetooth/nma-bt-device.c:794 +msgid "" +"The default Bluetooth adapter must be enabled before setting up a Dial-Up-" +"Networking connection." +msgstr "អាដាប់ទ័រ​ប៊្លូធូស​លំនាំដើម​ត្រូវតែ​បាន​បើក មុន​ការ​រៀបចំ​ការ​តភ្ជាប់​បណ្ដាញ​ហៅ ។" + +#: ../src/gnome-bluetooth/nma-bt-device.c:831 +#, c-format +msgid "Failed to create PAN connection: %s" +msgstr "បាន​បរាជ័យ​ក្នុង​កា​របង្កើត​ការ​តភ្ជាប់ PAN ៖ %s" + +#: ../src/gnome-bluetooth/nma-bt-device.c:852 +#, c-format +msgid "%s Network" +msgstr "%s បណ្ដាញ" + +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "ដោះ​សោ​ឧបករណ៍​នេះ​ដោយ​ស្វ័យ​ប្រវត្តិ" + +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "ដោះ​សោ" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "ព័ត៌មាន​តភ្ជាប់" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "ការ​តភ្ជាប់​បណ្ដាញ​សកម្ម" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 +msgid "" +"Your mobile broadband connection is configured with the following settings:" +msgstr "ការ​តភ្ជាប់​រលកអាកាស​ចល័ត​របស់​អ្នក​ត្រូវ​បាន​កំណត់​រចនាសម្ព័ន្ធ​​តាម​ការ​កំណត់​ដូច​ខាងក្រោម ៖" + +#. Device +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 +msgid "Your Device:" +msgstr "ឧបករណ៍​របស់​អ្នក ៖" + +#. Provider +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 +msgid "Your Provider:" +msgstr "ក្រុមហ៊ុន​ផ្ដល់​របស់​អ្នក ៖" + +#. Plan and APN +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 +msgid "Your Plan:" +msgstr "គម្រោង​របស់​អ្នក ៖" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 +msgid "" +"A connection will now be made to your mobile broadband provider using the " +"settings you selected. If the connection fails or you cannot access network " +"resources, double-check your settings. To modify your mobile broadband " +"connection settings, choose \"Network Connections\" from the System >> " +"Preferences menu." +msgstr "" +"ឥឡូវនេះ ការ​តភ្ជាប់​នឹង​ត្រូវ​បាន​ធ្វើ​ទៅកាន់​ក្រុមហ៊ុន​ផ្ដល់​រលកអាកាស​ចល័ត​ដោយ​ប្រើ​ការ​កំណត់​ដែល​អ្នក​បាន​ជ្រើស " +"។ ប្រសិនបើ​ការ​តភ្ជាប់​បរាជ័យ ឬ​អ្នក​មិន​អាច​ចូល​ប្រើ​ធនធាន​បណ្ដាញ​បាន សូម​ពិនិត្យមើល​ការ​កំណត់​របស់​អ្នក​ឡើងវិញ " +"។ ដើម្បី​កែប្រែ​ការ​កំណត់​ការ​តភ្ជាប់​រលកអាកាស​ចល័ត​របស់​អ្នក ជ្រើស \"ការ​តភ្ជាប់​បណ្ដាញ\" ពី​ម៉ឺនុយ " +"ប្រព័ន្ធ >> ចំណូលចិត្ត ។" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 +msgid "Confirm Mobile Broadband Settings" +msgstr "អះអាង​ការ​កំណត់​រលកអាកាស​ចល័ត" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 +msgid "Unlisted" +msgstr "មិន​រាយ" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 +msgid "_Select your plan:" +msgstr "ជ្រើស​គម្រោង​របស់​អ្នក ៖" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 +msgid "Selected plan _APN (Access Point Name):" +msgstr "បាន​ជ្រើស​គម្រោង APN (ឈ្មោះ​ចំណុច​ចូល​ដំណើរការ) ៖" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 +msgid "" +"Warning: Selecting an incorrect plan may result in billing issues for your " +"broadband account or may prevent connectivity.\n" +"\n" +"If you are unsure of your plan please ask your provider for your plan's APN." +msgstr "" +"ព្រមាន​ ៖ ការ​ជ្រើស​គម្រោង​មិន​ត្រឹមត្រូវ​អាច​​​បង្ហាញ​លទ្ធផល​នៅ​ក្នុង​ការ​ចេញ​វិក្កយបត្រ​ សម្រាប់​គណនី​រលកអាកាស " +"ឬ​អាច​រារាំង​ការ​តភ្ជាប់​របស់​អ្នក​បាន ។\n" +"\n" +"ប្រសិនបើ​​អ្នក​មិន​ប្រាកដ​ជាមួយ​គម្រោង​របស់​អ្នក​ទេ​ ​សូម​​សួរ​ក្រុម​ហ៊ុន​ផ្ដល់​​របស់​អ្នក​ អំពី​​គម្រោង APN របស់​អ្នក ។" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 +msgid "Choose your Billing Plan" +msgstr "ជ្រើស​គម្រោង​ចេញ​វិក្កយបត្រ​របស់​អ្នក" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 +msgid "My plan is not listed..." +msgstr "គម្រោង​របស់​ខ្ញុំ​​មិន​ត្រូវ​បាន​រាយ​ឡើយ​..." + +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +msgid "Select your provider from a _list:" +msgstr "ជ្រើស​ក្រុមហ៊ុន​ផ្ដល់​ពី​បញ្ជី ៖" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 +msgid "Provider" +msgstr "ក្រុមហ៊ុន​ផ្ដល់" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 +msgid "I can't find my provider and I wish to enter it _manually:" +msgstr "ខ្ញុំ​មិន​អាច​រក​ឃើញ​ក្រុមហ៊ុន​ផ្ដល់​ទេ ហើយ​ខ្ញុំ​ចង់​វាយ​បញ្ចូល​វា​ដោយ​ដៃ ៖" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 +msgid "Provider:" +msgstr "ក្រុមហ៊ុន​ផ្ដល់ ៖" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 +msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" +msgstr "ក្រុមហ៊ុន​ផ្ដល់​របស់​ខ្ញុំ​ប្រើ​បច្ចេកវិទ្យា GSM (GPRS, EDGE, UMTS, HSPA)" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 +msgid "My provider uses CDMA technology (1xRTT, EVDO)" +msgstr "ក្រុមហ៊ុន​ផ្ដល់​របស់​ខ្ញុំ​ប្រើ​បច្ចេកវិទ្យា CDMA (1xRTT, EVDO)" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 +msgid "Choose your Provider" +msgstr "ជ្រើស​ក្រុមហ៊ុន​ផ្ដល់​របស់​អ្នក" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 +msgid "Country or Region List:" +msgstr "បញ្ជី​ប្រទេស ឬ​តំបន់ ៖" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 +msgid "Country or region" +msgstr "ប្រទេស ឬ​តំបន់" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 +msgid "My country is not listed" +msgstr "ប្រទេស​របស់​ខ្ញុំ​មិន​ត្រូវ​បាន​រាយ​ឡើយ" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 +msgid "Choose your Provider's Country or Region" +msgstr "ជ្រើស​ប្រទេស ឬ​តំបន់​របស់​ក្រុមហ៊ុន​ផ្ដល់" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 +msgid "Installed GSM device" +msgstr "បាន​ដំឡើង​ឧបករណ៍ GSM" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 +msgid "Installed CDMA device" +msgstr "បាន​ដំឡើង​ឧបករណ៍ CDMA" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 +msgid "" +"This assistant helps you easily set up a mobile broadband connection to a " +"cellular (3G) network." +msgstr "អ្នក​ជំនួយ​ការ​នឹង​ជួយ​អ្នក​ក្នុង​ការ​រៀបចំ​ការ​តភ្ជាប់​រលកអាកាស​ចល័ត​ទៅកាន់​បណ្ដាញ​ទូរស័ព្ទ (3G) ។" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 +msgid "You will need the following information:" +msgstr "អ្នក​ត្រូវ​ការ​ព័ត៌មាន​ដូច​ខាង​ក្រោម ៖" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 +msgid "Your broadband provider's name" +msgstr "ឈ្មោះ​របស់​ក្រុម​ហ៊ុន​ផ្ដល់​​រលក​អាកាស​របស់​អ្នក" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 +msgid "Your broadband billing plan name" +msgstr "ឈ្មោះ​គម្រោង​ចេញ​វិក្កយបត្រ​រលកអាកាស​របស់​អ្នក" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 +msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" +msgstr "(ក្នុង​ករណី​ខ្លះ​) គម្រោង​ចេញ​វិក្កយបត្រ​រលកអាកាស​​​របស់​ APN (ឈ្មោះ​ចំណុច​ចូល​ដំណើរការ​)" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 +msgid "Create a connection for _this mobile broadband device:" +msgstr "បង្កើត​ការ​តភ្ជាប់​សម្រាប់​ឧបករណ៍​រលកអាកាស​ចល័ត​នេះ ៖" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +msgid "Any device" +msgstr "ឧបករណ៍​ណាមួយ" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 +msgid "Set up a Mobile Broadband Connection" +msgstr "រៀបចំ​ការ​តភ្ជាប់​រលកអាកាស​ចល័ត" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 +msgid "New Mobile Broadband Connection" +msgstr "ការ​តភ្ជាប់​រលកអាកាស​ចល័ត​ថ្មី" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:437 +msgid "New..." +msgstr "ថ្មី..." + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1056 +msgid "C_reate" +msgstr "បង្កើត" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1140 +#, c-format +msgid "" +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." +msgstr "ទាមទារ​ពាក្យសម្ងាត់ ឬ​សោ​អ៊ិនគ្រីប ដើម្បី​ចូល​ដំណើរការ​បណ្ដាញ Wi-Fi '%s' ។" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1142 +msgid "Wi-Fi Network Authentication Required" +msgstr "ទាមទារ​ការ​ផ្ទៀងផ្ទាត់​បណ្ដាញ Wi-Fi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1144 +msgid "Authentication required by Wi-Fi network" +msgstr "បាន​ទាមទារ​ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ​ដោយ​បណ្ដាញ Wi-Fi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1149 +msgid "Create New Wi-Fi Network" +msgstr "បង្កើត​បណ្ដាញ Wi-Fi ថ្មី" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1151 +msgid "New Wi-Fi network" +msgstr "បណ្ដាញ Wi-Fi ថ្មី" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "បញ្ចូល​ឈ្មោះ​សម្រាប់​បណ្ដាញ Wi-Fi ដែល​អ្នក​ចង់​បង្កើត ។" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1154 +msgid "Connect to Hidden Wi-Fi Network" +msgstr "តភ្ជាប់​ទៅកាន់​បណ្ដាញ Wi-Fi ដែល​លាក់" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1156 +msgid "Hidden Wi-Fi network" +msgstr "បណ្ដាញ Wi-Fi ដែល​លាក់" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "" +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." +msgstr "បញ្ចូល​សេចក្ដី​លម្អិត​អំពី​ឈ្មោះ និង​សុវត្ថិភាព​របស់​បណ្ដាញ Wi-Fi ដែល​អ្នក​ចង់​តភ្ជាប់ ។" + +#: ../src/libnm-gtk/wifi.ui.h:2 +msgid "Wi-Fi _security:" +msgstr "សុវត្ថិភាព Wi-Fi ៖" + +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "ការ​តភ្ជាប់ ៖" + +#: ../src/libnm-gtk/wifi.ui.h:5 +msgid "Wi-Fi _adapter:" +msgstr "អាដាប់ទ័រ Wi-Fi ៖" + +#: ../src/main.c:73 +msgid "Usage:" +msgstr "ការ​ប្រើប្រាស់ ៖" + +#: ../src/main.c:75 +msgid "" +"This program is a component of NetworkManager (http://projects.gnome.org/" +"NetworkManager)." +msgstr "" +"កម្មវិធី​នេះ គឺជា​សមាសភាគ​នៃ NetworkManager (http://projects.gnome.org/" +"NetworkManager) ។" + +#: ../src/main.c:76 +msgid "" +"It is not intended for command-line interaction but instead runs in the " +"GNOME desktop environment." +msgstr "" +"វា​មិន​ត្រូវ​បាន​ប្រើ​សម្រាប់​អន្តរកម្ម​បន្ទាត់​ពាក្យ​បញ្ជា​ទេ ប៉ុន្តែ​ប្រើ​សម្រាប់​ដំណើរការ​នៅ​ក្នុង​បរិស្ថាន​ផ្ទៃតុ​" +"របស់ GNOME ។" + +#: ../src/mb-menu-item.c:57 +msgid "EVDO" +msgstr "EVDO" + +#: ../src/mb-menu-item.c:61 +msgid "GPRS" +msgstr "GPRS" + +#: ../src/mb-menu-item.c:63 +msgid "EDGE" +msgstr "EDGE" + +#: ../src/mb-menu-item.c:65 +msgid "UMTS" +msgstr "UMTS" + +#: ../src/mb-menu-item.c:67 +msgid "HSDPA" +msgstr "HSDPA" + +#: ../src/mb-menu-item.c:69 +msgid "HSUPA" +msgstr "HSUPA" + +#: ../src/mb-menu-item.c:71 +msgid "HSPA" +msgstr "HSPA" + +#: ../src/mb-menu-item.c:73 +msgid "HSPA+" +msgstr "HSPA+" + +#: ../src/mb-menu-item.c:77 +msgid "LTE" +msgstr "LTE" + +#: ../src/mb-menu-item.c:113 +msgid "not enabled" +msgstr "មិន​បាន​បើក" + +#: ../src/mb-menu-item.c:119 +msgid "not registered" +msgstr "មិន​ត្រូវ​បាន​ចុះឈ្មោះ" + +#: ../src/mb-menu-item.c:137 +#, c-format +msgid "Home network (%s)" +msgstr "បណ្ដាញ​មូលដ្ឋាន (%s)" + +#: ../src/mb-menu-item.c:139 +#, c-format +msgid "Home network" +msgstr "បណ្ដាញ​មូលដ្ឋាន" + +#: ../src/mb-menu-item.c:147 +msgid "searching" +msgstr "ស្វែងរក" + +#: ../src/mb-menu-item.c:150 +msgid "registration denied" +msgstr "បាន​បដិសេធ​ការ​ចុះឈ្មោះ" + +#: ../src/mb-menu-item.c:155 ../src/mb-menu-item.c:161 +#, c-format +msgid "%s (%s roaming)" +msgstr "%s (%s roaming)" + +#: ../src/mb-menu-item.c:157 ../src/mb-menu-item.c:163 +#, c-format +msgid "%s (roaming)" +msgstr "%s (roaming)" + +#: ../src/mb-menu-item.c:166 +#, c-format +msgid "Roaming network (%s)" +msgstr "បណ្ដាញ Roaming (%s)" + +#: ../src/mb-menu-item.c:168 +#, c-format +msgid "Roaming network" +msgstr "បណ្ដាញ Roaming" + +#: ../src/utils/nmn-mobile-providers.c:531 +msgid "Default" +msgstr "លំនាំដើម" + +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "ការ​តភ្ជាប់ %s" + +#: ../src/wireless-security/eap-method.c:275 +msgid "No Certificate Authority certificate chosen" +msgstr "គ្មាន​ប្រភព​វិញ្ញាបនបត្រ​ដែល​ត្រូវ​បាន​ជ្រើស​ឡើយ" + +#: ../src/wireless-security/eap-method.c:276 +msgid "" +"Not using a Certificate Authority (CA) certificate can result in connections " +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" +msgstr "" +"កុំ​ប្រើ Certificate Authority (CA) ព្រោះ​វិញ្ញាបនបត្រ​អាច​បង្ហាញ​នៅ​ក្នុង​ការ​តភ្ជាប់​មិន​មាន​" +"សុវត្ថិភាព ឬ​ធ្វើឲ្យ​បណ្ដាញ Wi-Fi មាន​ភាព​រអាក់រអួល ។ តើ​អ្នក​ចង់​ជ្រើស​វិញ្ញាបនបត្រ Certificate " +"Authority ដែរ​ឬទេ ?" + +#: ../src/wireless-security/eap-method.c:285 +msgid "Choose CA Certificate" +msgstr "ជ្រើស​វិញ្ញាបនបត្រ CA" + +#: ../src/wireless-security/eap-method.c:645 +msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" +msgstr "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" + +#: ../src/wireless-security/eap-method.c:648 +msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" +msgstr "វិញ្ញាបនបត្រ DER ឬ PEM (*.der, *.pem, *.crt, *.cer)" + +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "ជ្រើស​ឯកសារ PAC ..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "ឯកសារ PAC (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "ឯកសារ​ទាំងអស់" + +#: ../src/wireless-security/eap-method-fast.ui.h:2 +msgid "Anonymous" +msgstr "អនាមិក" + +#: ../src/wireless-security/eap-method-fast.ui.h:3 +msgid "Authenticated" +msgstr "បាន​​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ" + +#: ../src/wireless-security/eap-method-fast.ui.h:4 +msgid "Both" +msgstr "ទាំងពីរ" + +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "អត្តសញ្ញាណ​អនាមិក ៖" + +#: ../src/wireless-security/eap-method-fast.ui.h:6 +msgid "PAC _file:" +msgstr "ឯការ PAC ៖" + +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-ttls.ui.h:4 +msgid "_Inner authentication:" +msgstr "ការ​ផ្ទៀងផ្ទាត់​ខាង​ក្នុង ៖" + +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "ស្វ័យប្រវត្តិ" + +#: ../src/wireless-security/eap-method-peap.c:263 +#: ../src/wireless-security/wireless-security.c:382 +msgid "MD5" +msgstr "MD5" + +#: ../src/wireless-security/eap-method-peap.c:350 +#: ../src/wireless-security/eap-method-tls.c:416 +#: ../src/wireless-security/eap-method-ttls.c:350 +msgid "Choose a Certificate Authority certificate..." +msgstr "ជ្រើស​ប្រភព​វិញ្ញាបនបត្រ..." + +#: ../src/wireless-security/eap-method-peap.ui.h:3 +msgid "Version 0" +msgstr "កំណែ ០" + +#: ../src/wireless-security/eap-method-peap.ui.h:4 +msgid "Version 1" +msgstr "កំណែ ១" + +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-ttls.ui.h:3 +msgid "C_A certificate:" +msgstr "វិញ្ញាបនបត្រ CA ៖" + +#: ../src/wireless-security/eap-method-peap.ui.h:8 +msgid "PEAP _version:" +msgstr "កំណែ PEAP ៖" + +#: ../src/wireless-security/eap-method-simple.ui.h:3 +msgid "As_k for this password every time" +msgstr "សួរ​រក​ពាក្យសម្ងាត់​រាល់ពេល" + +#: ../src/wireless-security/eap-method-tls.c:246 +msgid "Unencrypted private keys are insecure" +msgstr "សោ​ឯកជន​ដែល​មិន​បាន​អ៊ិនគ្រីប គឺគ្មាន​សុវត្ថិភាព" + +#: ../src/wireless-security/eap-method-tls.c:249 +msgid "" +"The selected private key does not appear to be protected by a password. " +"This could allow your security credentials to be compromised. Please select " +"a password-protected private key.\n" +"\n" +"(You can password-protect your private key with openssl)" +msgstr "" +"សោ​ឯកជន​ដែល​បាន​ជ្រើស​ទំនងជា​មិន​ត្រូវ​បាន​ការពារ​ដោយ​ពាក្យសម្ងាត់​ទេ ។ វា​អាច​ធ្វើឲ្យ​លិខិត​សម្គាល់​" +"សុវត្ថិភាព​របស់​អ្នក​ត្រូវ​បានកែប្រែ ។ សូម​ជ្រើស​សោ​ឯកជន​ដែល​ការ​ពារ​ដោយ​ពាក្យសម្ងាត់ ។\n" +"\n" +"(អ្នក​អាច​ការពារ​សោ​ឯកជន​ដោយ​ពាក្យសម្ងាត់​បាន​ដោយ​ប្រើ openssl)" + +#: ../src/wireless-security/eap-method-tls.c:410 +msgid "Choose your personal certificate..." +msgstr "ជ្រើស​វិញ្ញាបនបត្រ​ផ្ទាល់ខ្លួន​របស់​អ្នក..." + +#: ../src/wireless-security/eap-method-tls.c:422 +msgid "Choose your private key..." +msgstr "ជ្រើស​សោ​ឯកជន​របស់​អ្នក..." + +#: ../src/wireless-security/eap-method-tls.ui.h:1 +msgid "I_dentity:" +msgstr "អត្តសញ្ញាណ ៖" + +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "វិញ្ញាបនបត្រ​អ្នកប្រើ ៖" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 +msgid "Private _key:" +msgstr "សោ​ឯកជន ៖" + +#: ../src/wireless-security/eap-method-tls.ui.h:5 +msgid "_Private key password:" +msgstr "ពាក្យសម្ងាត់​សោ​ឯកជន ៖" + +#: ../src/wireless-security/nag-user-dialog.ui.h:1 +msgid "Don't _warn me again" +msgstr "កុំ​ព្រមាន​ខ្ញុំ​ម្ដងទៀត" + +#: ../src/wireless-security/nag-user-dialog.ui.h:2 +msgid "No" +msgstr "ទេ" + +#: ../src/wireless-security/nag-user-dialog.ui.h:3 +msgid "Yes" +msgstr "បាទ/ចាស" + +#: ../src/wireless-security/wireless-security.c:394 +msgid "TLS" +msgstr "TLS" + +#: ../src/wireless-security/wireless-security.c:418 +msgid "FAST" +msgstr "លឿន" + +#: ../src/wireless-security/wireless-security.c:429 +msgid "Tunneled TLS" +msgstr "Tunneled TLS" + +#: ../src/wireless-security/wireless-security.c:440 +msgid "Protected EAP (PEAP)" +msgstr "EAP ដែល​បាន​ការពារ (PEAP)" + +#: ../src/wireless-security/ws-dynamic-wep.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:9 +#: ../src/wireless-security/ws-wpa-eap.ui.h:2 +msgid "Au_thentication:" +msgstr "ផ្ទៀងផ្ទាត់ ៖" + +#: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "ប្រព័ន្ធ​បើក" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "សោ​ដែល​បាន​ចែករំលែក" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 +msgid "1 (Default)" +msgstr "១ (លំនាំដើម)" + +#: ../src/wireless-security/ws-wep-key.ui.h:4 +msgid "2" +msgstr "២" + +#: ../src/wireless-security/ws-wep-key.ui.h:5 +msgid "3" +msgstr "៣" + +#: ../src/wireless-security/ws-wep-key.ui.h:6 +msgid "4" +msgstr "៤" + +#: ../src/wireless-security/ws-wep-key.ui.h:7 +msgid "_Key:" +msgstr "សោ ៖" + +#: ../src/wireless-security/ws-wep-key.ui.h:8 +msgid "Sho_w key" +msgstr "បង្ហាញ​សោ" + +#: ../src/wireless-security/ws-wep-key.ui.h:10 +msgid "WEP inde_x:" +msgstr "លិបិក្រម WEP ៖" + +#~ msgid "Show the applet in notification area" +#~ msgstr "បង្ហាញ​ applet នៅ​ក្នុង​ផ្ទៃ​ជូន​ដំណឹង" + +#~ msgid "" +#~ "Set to FALSE to disable displaying the applet in the notification area." +#~ msgstr "កំណត់​ទៅ​ជា​មិនពិត ដើម្បីបិទ​ការ​បង្ហាញ​អាប់ភ្លេត​នៅ​ក្នុង​ផ្ទៃ​ជូន​ដំណឹង ។" + +#~ msgid "Wired network" +#~ msgstr "បណ្ដាញ​មាន​ខ្សែ" + +#~ msgid "ad-hoc" +#~ msgstr "បណ្ដោះ​អាសន្ន" + +#~ msgid "secure." +#~ msgstr "សុវត្ថិភាព ។" + +#~ msgid "Wireless Networks (%s)" +#~ msgstr "បណ្ដាញ​ឥត​ខ្សែ (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "បណ្ដាញ​ឥត​ខ្សែ (%s)" + +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "បណ្ដាញ​ឥត​ខ្សែ" + +#~ msgid "wireless is disabled" +#~ msgstr "បណ្ដាញ​ឥត​ខ្សែ​ត្រូវ​បាន​បិទ" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "បណ្ដាញ​ឥត​ខ្សែ​ត្រូវ​បាន​បិទ​ដោយ​កុងតាក់​ផ្នែក​រឹង" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "កំពុង​រៀប​ចំ​តភ្ជាប់​បណ្ដាញ​ឥត​ខ្សែ '%s'..." + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "កំពុង​កំណត់​រចនាសម្ព័ន្ធ​ការ​តភ្ជាប់​បណ្ដាញ​ឥត​ខ្សែ '%s'..." + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "កំពុង​ស្នើសុំ​អាសយដ្ឋាន​បណ្ដាញ​ឥត​ខ្សែ​សម្រាប់ '%s'..." + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "ការ​តភ្ជាប់​បណ្ដាញ​ឥត​ខ្សែ '%s' សកម្ម" + +#~ msgid "Disconnected - you are now offline" +#~ msgstr "បាន​ផ្ដាច់ - ឥឡូវនេះ អ្នក​ស្ថិត​នៅ​ក្រៅបណ្ដាញ" + +#~ msgid "Wireless network" +#~ msgstr "បណ្ដាញ​ឥត​ខ្សែ" + +#~ msgid "Modem network" +#~ msgstr "បណ្ដាញ​ម៉ូដឹម" + +#~ msgid "Wired" +#~ msgstr "មាន​ខ្សែ" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "មិន​អាច​ផ្ទុក​ចំណុចប្រទាក់​អ្នកប្រើ​សុវត្ថិភាព ​Wired Security បាន​ឡើយ ។" + +#~ msgid "Wireless" +#~ msgstr "ឥត​ខ្សែ" + +#~ msgid "Wireless connection %d" +#~ msgstr "ការ​តភ្ជាប់​បណ្ដាញ​ឥតខ្សែ %d" + +#~ msgid "_Import" +#~ msgstr "នាំចូល" + +#~ msgid "An unknown error occurred." +#~ msgstr "កំហុស​មិនស្គាល់​បាន​កើតឡើង ។" + +#~ msgid "Could not edit new connection" +#~ msgstr "មិន​អាច​កែសម្រួល​ការ​តភ្ជាប់​ថ្មី​បាន​ឡើយ" + +#~ msgid "Could not edit imported connection" +#~ msgstr "មិន​អាច​កែសម្រួល​ការ​តភ្ជាប់​ដែល​បាន​នាំចូល​បាន​ឡើយ" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "គ្មាន​កម្មវិធី​ជំនួយ VPN ។ សូម​ដំឡើង​កម្មវិធី​នេះ ដើម្បី​បើក​ប៊ូតុង​នេះ ។" + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "មិន​ដឹង​វិធី​កែសម្រួល​ការ​តភ្ជាប់ '%s'" + +#~ msgid "" +#~ "Set this to TRUE to disable notifications when connecting to a network." +#~ msgstr "កំណត់​វា​ទៅជា​ពិត ដើម្បី​បិទ​ការ​ជូនដំណឹង​ នៅ​ពេល​តភ្ជាប់​ទៅកាន់​បណ្ដាញ ។" + +#~ msgid "" +#~ "Set this to TRUE to disable notifications when disconnecting from a " +#~ "network." +#~ msgstr "កំណត់​វា​ទៅជា​ពិត ដើម្បី​បិទ​ការ​ជូនដំណឹង នៅ​ពេល​ផ្ដាច់​ពី​បណ្ដាញ ។" + +#~ msgid "" +#~ "Set to TRUE to disable creation of adhoc networks when using the applet." +#~ msgstr "កំណត់​វា​ទៅជា​ពិត ដើម្បី​បិទ​ការ​បង្កើត​បណ្ដាញ adhoc នៅ​ពេល​ប្រើ​អាប់ភ្លេត ។" + +#~ msgid "Available to all users" +#~ msgstr "មាន​សម្រាប់​អ្នកប្រើ​ទាំងអស់" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "រក​មិន​ឃើញ​ឧបករណ៍​ប៊្លូធូស​ឡើយ ។" + +#~ msgid "" +#~ "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." +#~ msgstr "មិន​អាច​កំណត់​រចនាសម្ព័ន្ធ​ប៊្លូធូស​បាន​ឡើយ (បាន​បរាជ័យ​ក្នុង​ការ​តភ្ជាប់​ទៅកាន់ D-Bus ៖ %s) ។" + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "មិន​អាច​កំណត់​រចនាសម្ព័ន្ធ​ប៊្លូធូស​បាន​ឡើយ (បាន​បរាជ័យ​ក្នុង​ការ​បង្កើត​ប្រូកស៊ី D-Bus) ។" + +#~ msgid "" +#~ "Bluetooth configuration not possible (error finding NetworkManager: %s)." +#~ msgstr "មិន​អាច​កំណត់​រចនាសម្ព័ន្ធ​ប៊្លូធូស​បាន​ឡើយ (កំហុស​ក្នុង​ការ​រក NetworkManager ៖ %s) ។" + +#~ msgid "_Wireless security:" +#~ msgstr "សុវត្ថិភាព​បណ្ដាញ​ឥត​ខ្សែ ៖" + +#~ msgid "Co_nnection:" +#~ msgstr "ការ​តភ្ជាប់ ៖" diff -Nru network-manager-applet-0.9.4.1/po/kn.po network-manager-applet-0.9.6.2+git201210311320.2620/po/kn.po --- network-manager-applet-0.9.4.1/po/kn.po 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/kn.po 2012-10-31 13:20:57.000000000 +0000 @@ -905,7 +905,7 @@ msgstr "ಸಂಪರ್ಕ ಜೋಡಿಸು(_o)" #: ../src/applet.glade.h:14 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "ಸಂಪರ್ಕ(_n):" #: ../src/applet.glade.h:15 @@ -1007,7 +1007,7 @@ msgstr "ಬಳಕೆದಾರಹೆಸರು(_U):" #: ../src/applet.glade.h:39 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "ವೈರ್ಲೆಸ್ ಸುರಕ್ಷತೆ(_W):" #: ../src/applet.glade.h:40 @@ -1829,7 +1829,7 @@ msgstr "ಈ ಗಣಕದಲ್ಲಿನ ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗಾಗಿ ಈ ಸಂಪರ್ಕವನ್ನು ಉಳಿಸಲು ದೃಢೀಕರಿಸಿ." #: ../src/connection-editor/nm-connection-editor.glade.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "ಲಭ್ಯವಿರುವ ಎಲ್ಲಾ ಬಳಕೆದಾರರು" #: ../src/connection-editor/nm-connection-editor.glade.h:2 diff -Nru network-manager-applet-0.9.4.1/po/ko.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ko.po --- network-manager-applet-0.9.4.1/po/ko.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ko.po 2012-10-31 13:20:57.000000000 +0000 @@ -7,8 +7,8 @@ # Young-Ho Cha , 2006. # Namhyung Kim , 2007. # Hyunsok Oh , 2010. -# Changwoo Ryu , 2011. # Seong-ho Cho , 2012. +# Changwoo Ryu , 2011-2012. # # # 주의: @@ -23,14 +23,14 @@ "Project-Id-Version: network-manager-applet\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-10 07:28+0000\n" -"PO-Revision-Date: 2012-03-11 01:57+0900\n" -"Last-Translator: Seong-ho Cho \n" +"POT-Creation-Date: 2012-08-20 16:42+0000\n" +"PO-Revision-Date: 2012-09-15 18:14+0900\n" +"Last-Translator: Changwoo Ryu \n" "Language-Team: GNOME Korea \n" +"Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../nm-applet.desktop.in.h:1 @@ -41,81 +41,101 @@ msgid "Manage your network connections" msgstr "네트워크 연결을 관리합니다" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "네트워크 연결" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "네트워크 연결 설정을 관리하고 설정을 바꿉니다" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "연결이 되면 알려주지 않음" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "" -"네트워크에 연결되었을 때 알려주는 것을 금지하려면 이것을 참으로 하십시오." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "참이면 네트워크에 연결되었을 때 알려주지 않습니다." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "연결이 끊기면 알려주지 않음" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "" -"네트워크가 끊어졌을 때 알려주는 것을 금지하려면 이것을 참으로 하십시오." +"Set this to true to disable notifications when disconnecting from a network." +msgstr "참이면 네트워크가 끊어졌을 때 알려주지 않습니다." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "VPN 알려주지 않음" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "참이면 VPN에 연결하거나 연결이 끊어졌을 때 알려주지 않습니다." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "네트워크에서 사용 가능한 통지를 무시합니다" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " +"Set this to true to disable notifications when wireless networks are " "available." -msgstr "" -"무선 네트워크가 사용 가능할 때 알려주는 것을 금지하려면 이것을 참으로 하십시" -"오." +msgstr "참이면 무선 네트워크가 사용 가능할 때 알려주지 않습니다." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "스탬프" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "설정을 새로운 버전으로 옮겨야 할지를 결정하기 위해 사용합니다." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "WiFi 만들기 사용하지 않음" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "" -"애플릿 사용할 때 애드혹 네트워크를 만드는 것을 금지하려면 이것을 참으로 하십" -"시오." +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "참이면 애플릿 사용할 때 애드혹 네트워크를 만들지 않습니다." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "네트워크 연결" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "CA 인증서 무시" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "네트워크 연결 설정을 관리하고 설정을 바꿉니다" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "참이면 CA 인증서가 EAP 인증이 되었는지 경고를 하지 않습니다." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "참이면 CA 인증서가 EAP 2차 인증이 되었는지 경고를 하지 않습니다." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-gsm.c:444 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "사용 가능" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-gsm.c:486 ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "'%s'에 연결되었습니다." -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-gsm.c:490 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "연결됨" @@ -123,137 +143,137 @@ msgid "You are now connected to the mobile broadband network." msgstr "모바일 광대역 네트워크에 연결되었습니다." -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "모바일 광대역 연결 '%s' 준비 중..." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "모바일 광대역 연결 '%s' 설정 중..." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "모바일 광대역 연결 '%s'에는 사용자 인증이 필요합니다..." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "'%s'에 네트워크 주소 요청중..." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "모바일 광대역 연결 '%s' 사용 중" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:696 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "모바일 광대역 (%s)" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 #: ../src/connection-editor/page-mobile.c:379 #: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "모바일 광대역" #. Default connection item -#: ../src/applet-device-cdma.c:412 +#: ../src/applet-device-cdma.c:409 msgid "New Mobile Broadband (CDMA) connection..." msgstr "새 모바일 광대역(CDMA) 연결..." -#: ../src/applet-device-cdma.c:446 +#: ../src/applet-device-cdma.c:443 msgid "You are now connected to the CDMA network." msgstr "CDMA 네트워크에 연결되었습니다." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "모바일 광대역 연결 '%s' 사용 중: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "로밍" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 msgid "CDMA network." msgstr "CDMA 네트워크." -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 msgid "You are now registered on the home network." msgstr "홈 네트워크에 등록되었습니다." -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 msgid "You are now registered on a roaming network." msgstr "로밍 네트워크에 등록되었습니다." -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" #. Default connection item -#: ../src/applet-device-gsm.c:459 +#: ../src/applet-device-gsm.c:457 msgid "New Mobile Broadband (GSM) connection..." -msgstr "새 모바일 광대역 (GSM) 연결..." +msgstr "새 모바일 광대역(GSM) 연결..." -#: ../src/applet-device-gsm.c:493 +#: ../src/applet-device-gsm.c:491 msgid "You are now connected to the GSM network." msgstr "GSM 네트워크에 연결되었습니다." -#: ../src/applet-device-gsm.c:654 +#: ../src/applet-device-gsm.c:652 msgid "PIN code required" msgstr "PIN 코드가 필요합니다" -#: ../src/applet-device-gsm.c:662 +#: ../src/applet-device-gsm.c:660 msgid "PIN code is needed for the mobile broadband device" msgstr "PIN 코드가 모바일 광대역 장치를 위해 필요합니다" -#: ../src/applet-device-gsm.c:783 +#: ../src/applet-device-gsm.c:781 #, c-format msgid "PIN code for SIM card '%s' on '%s'" msgstr "'%2$s'의 SIM 카드 '%1$s'에 대한 PIM 코드" -#: ../src/applet-device-gsm.c:875 +#: ../src/applet-device-gsm.c:873 msgid "Wrong PIN code; please contact your provider." msgstr "잘못된 PIN 코드. 서비스 업체에 문의하십시오." -#: ../src/applet-device-gsm.c:898 +#: ../src/applet-device-gsm.c:896 msgid "Wrong PUK code; please contact your provider." msgstr "잘못된 PUK 코드. 서비스 업체에 문의하십시오." #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 +#: ../src/applet-device-gsm.c:923 msgid "Sending unlock code..." msgstr "언락 코드를 보내는 중..." -#: ../src/applet-device-gsm.c:988 +#: ../src/applet-device-gsm.c:986 msgid "SIM PIN unlock required" msgstr "SIM PIN 잠금해제가 필요합니다" -#: ../src/applet-device-gsm.c:989 +#: ../src/applet-device-gsm.c:987 msgid "SIM PIN Unlock Required" msgstr "SIM PIN 잠금해제가 필요합니다" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 +#: ../src/applet-device-gsm.c:989 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " @@ -261,25 +281,25 @@ msgstr "'%s' 모바일 광대역 장치를 사용하려면 SIM PIN 코드가 필요합니다." #. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 +#: ../src/applet-device-gsm.c:991 msgid "PIN code:" msgstr "PIN 코드:" #. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 +#: ../src/applet-device-gsm.c:995 msgid "Show PIN code" msgstr "PIN 코드 표시" -#: ../src/applet-device-gsm.c:1000 +#: ../src/applet-device-gsm.c:998 msgid "SIM PUK unlock required" msgstr "SIM PUK 잠금 해제가 필요합니다" -#: ../src/applet-device-gsm.c:1001 +#: ../src/applet-device-gsm.c:999 msgid "SIM PUK Unlock Required" msgstr "SIM PUK 잠금 해제가 필요합니다" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#: ../src/applet-device-gsm.c:1001 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " @@ -287,26 +307,26 @@ msgstr "'%s' 모바일 광대역 장치를 사용하려면 SIM PUK 코드가 필요합니다." #. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 +#: ../src/applet-device-gsm.c:1003 msgid "PUK code:" msgstr "PUK 코드:" #. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 +#: ../src/applet-device-gsm.c:1006 msgid "New PIN code:" msgstr "새 PIN 코드:" #. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 +#: ../src/applet-device-gsm.c:1008 msgid "Re-enter new PIN code:" msgstr "새 PIN 코드 다시 입력:" #. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 +#: ../src/applet-device-gsm.c:1013 msgid "Show PIN/PUK codes" msgstr "PIN/PUK 코드 표시" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 msgid "GSM network." msgstr "GSM 네트워크." @@ -333,7 +353,7 @@ msgstr "유선 네트워크" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "연결 끊김" @@ -374,88 +394,106 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "숨겨진 무선 네트워크에 연결(_C)..." -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "새 무선 네트워크 만들기(_N)..." -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(없음)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "무선 네트워크 (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "무선 네트워크 (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "무선 네트워크" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "무선 네트워크를 사용하지 않습니다" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "무선 네트워크를 사용하지 않습니다" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "다른 네트워크" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "무선 네트워크가 사용 가능합니다" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "네트워크 메뉴에서 무선 네트워크에 연결할 수 있습니다" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "다시 보지 않기" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "무선 네트워크 '%s' 연결에 연결되었습니다." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "'%s' 무선 네트워크 연결 준비중..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "'%s' 무선 네트워크 연결 설정 중..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "무선 네트워크 연결 '%s'에 사용자 인증이 필요합니다..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "무선 네트워크 '%s'에 네트워크 주소 요청중..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "무선 네트워크 연결 '%s' 사용 중: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "무선 네트워크 연결 '%s' 사용 중" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "연결 활성화하는 데 실패" + +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +msgid "Unknown error" +msgstr "알 수 없는 오류" + +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 +msgid "Connection failure" +msgstr "연결에 실패" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "새로운 연결을 추가하는데 실패" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -482,9 +520,9 @@ msgstr "연결 정보 보이기 오류:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -492,195 +530,195 @@ msgid "Dynamic WEP" msgstr "동적 WEP" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "없음" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-dialogs.c:277 #, c-format msgid "%s (default)" msgstr "%s (기본값)" -#: ../src/applet-dialogs.c:347 ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:349 ../src/applet-dialogs.c:487 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "알 수 없음" -#: ../src/applet-dialogs.c:362 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:364 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "알 수 없음" -#: ../src/applet-dialogs.c:376 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "알 수 없음" -#: ../src/applet-dialogs.c:411 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "이더넷 (%s)" -#: ../src/applet-dialogs.c:414 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:421 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:423 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:427 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:433 ../src/applet-dialogs.c:792 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "일반" -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "인터페이스:" -#: ../src/applet-dialogs.c:453 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "하드웨어 주소:" #. Driver -#: ../src/applet-dialogs.c:461 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "드라이버:" -#: ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "속도:" -#: ../src/applet-dialogs.c:500 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "보안:" -#: ../src/applet-dialogs.c:513 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:526 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:543 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:554 ../src/applet-dialogs.c:661 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP 주소:" -#: ../src/applet-dialogs.c:556 ../src/applet-dialogs.c:572 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "알 수 없음" -#: ../src/applet-dialogs.c:570 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "브로드캐스트 주소:" #. Prefix -#: ../src/applet-dialogs.c:579 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "서브넷 마스크:" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "알 수 없음" -#: ../src/applet-dialogs.c:589 ../src/applet-dialogs.c:676 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "기본 경로:" -#: ../src/applet-dialogs.c:601 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "기본 DNS:" -#: ../src/applet-dialogs.c:610 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "보조 DNS:" -#: ../src/applet-dialogs.c:620 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "세 번째 DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:635 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:644 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "무시함" -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "VPN 형식:" -#: ../src/applet-dialogs.c:804 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "VPN 게이트웨이:" -#: ../src/applet-dialogs.c:810 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "VPN 사용자 이름:" -#: ../src/applet-dialogs.c:816 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "VPN 추방자:" -#: ../src/applet-dialogs.c:822 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "기반 연결:" -#: ../src/applet-dialogs.c:824 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "알 수 없음" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "활성된 연결을 찾을 수 없습니다!" -#: ../src/applet-dialogs.c:940 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -690,33 +728,49 @@ "Copyright © 2005-2008 Novell, Inc.\n" "and many other community contributors and translators" -#: ../src/applet-dialogs.c:943 +#: ../src/applet-dialogs.c:942 msgid "" "Notification area applet for managing your network devices and connections." msgstr "네트워크 장치와 연결을 관리하는 알림 영역 애플릿." -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "네트워크 관리 웹사이트" -#: ../src/applet-dialogs.c:960 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "빠진 자료" -#: ../src/applet-dialogs.c:985 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "모바일 광대역 네트워크 암호" -#: ../src/applet-dialogs.c:994 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "'%s'에 연결하기 위해서는 암호가 필요합니다." -#: ../src/applet-dialogs.c:1013 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "암호:" -#: ../src/applet.c:995 +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "연결 추가/활성화하는 데 실패" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "장치 연결 끊는 데 실패" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "연결 끊는 데 실패" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "연결 활성화 실패" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -726,7 +780,7 @@ "\n" "'%s' VPN 연결이 실패했습니다. 네트워크 연결이 중단되었습니다." -#: ../src/applet.c:998 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" @@ -735,7 +789,7 @@ "\n" "'%s' VPN 연결이 실패했습니다. VPN 서비스가 예기치 못하게 중단되었습니다." -#: ../src/applet.c:1001 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -745,7 +799,7 @@ "\n" "'%s' VPN 연결이 실패했습니다. VPN 서비스가 잘못된 설정을 반환했습니다." -#: ../src/applet.c:1004 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -754,7 +808,7 @@ "\n" "'%s' VPN 연결이 실패했습니다. 연결 시도가 제한 시간을 초과했습니다." -#: ../src/applet.c:1007 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -763,7 +817,7 @@ "\n" "'%s' VPN 연결이 실패했습니다. VPN 서비스가 제 시간에 시작하지 못했습니다." -#: ../src/applet.c:1010 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -772,7 +826,7 @@ "\n" "'%s' VPN 연결이 실패했습니다. VPN 서비스를 시작하는데 실패했습니다." -#: ../src/applet.c:1013 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -781,7 +835,7 @@ "\n" "'%s' VPN 연결이 실패했습니다. 올바른 VPN 비밀정보가 없습니다." -#: ../src/applet.c:1016 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -790,7 +844,7 @@ "\n" "'%s' VPN 연결이 실패했습니다. VPN 비밀 정보가 잘못되었습니다." -#: ../src/applet.c:1023 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -799,7 +853,7 @@ "\n" "'%s' VPN 연결이 실패했습니다." -#: ../src/applet.c:1041 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -809,7 +863,7 @@ "\n" "'%s' VPN 연결이 실패했습니다. 네트워크 연결이 중단되었습니다." -#: ../src/applet.c:1044 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -818,7 +872,7 @@ "\n" "'%s' VPN 연결이 실패했습니다. VPN 서비스가 중단되었습니다." -#: ../src/applet.c:1050 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -827,15 +881,30 @@ "\n" "'%s' VPN 연결이 끊어졌습니다." -#: ../src/applet.c:1084 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN에 성공적으로 연결했습니다.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN에 성공적으로 연결했습니다.\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "VPN 로그인 메시지" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "VPN 연결 실패" -#: ../src/applet.c:1155 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -848,7 +917,7 @@ "\n" "%s" -#: ../src/applet.c:1158 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -861,139 +930,139 @@ "\n" "%s" -#: ../src/applet.c:1478 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" -msgstr "장치가 준비되지 않음 (펌웨어 없음)" +msgstr "장치가 준비되지 않음(펌웨어 없음)" -#: ../src/applet.c:1480 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "장치가 준비되지 않음" -#: ../src/applet.c:1506 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "연결 끊김" -#: ../src/applet.c:1520 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "장치가 관리되지 않음" -#: ../src/applet.c:1564 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "네트워크 장치를 찾을 수 없습니다" -#: ../src/applet.c:1652 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "VPN 연결(_V)" -#: ../src/applet.c:1709 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "VPN 설정(_C)..." -#: ../src/applet.c:1713 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "VPN 연결 끊기(_D)..." -#: ../src/applet.c:1811 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "네트워크 관리가 실행 중이 아닙니다..." -#: ../src/applet.c:1816 ../src/applet.c:2609 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "네트워크를 사용할 수 없습니다" #. 'Enable Networking' item -#: ../src/applet.c:2037 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "네트워크 사용(_N)" #. 'Enable Wireless' item -#: ../src/applet.c:2046 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "무선 네트워크 사용(_W)" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "모바일 광대역 사용(_M)" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "와이맥스 모바일 광대역 사용(_X)" #. Toggle notifications item -#: ../src/applet.c:2075 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "통지기능 사용(_O)" #. 'Connection Information' item -#: ../src/applet.c:2086 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "연결 정보(_I)" #. 'Edit Connections...' item -#: ../src/applet.c:2096 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "연결 편집..." #. Help item -#: ../src/applet.c:2110 +#: ../src/applet.c:2124 msgid "_Help" msgstr "도움말(_H)" #. About item -#: ../src/applet.c:2119 +#: ../src/applet.c:2133 msgid "_About" msgstr "정보(_A)" -#: ../src/applet.c:2296 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "연결 끊김" -#: ../src/applet.c:2297 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "네트워크 연결이 끊겼습니다." -#: ../src/applet.c:2478 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "'%s' 네트워크 연결 준비 중..." -#: ../src/applet.c:2481 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "네트워크 연결 '%s'에는 사용자 인증이 필요합니다..." -#: ../src/applet.c:2487 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "'%s' 네트워크 연결 사용 중" -#: ../src/applet.c:2565 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "VPN 연결 '%s' 시작 중..." -#: ../src/applet.c:2568 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "VPN 연결 '%s'에는 사용자 인증이 필요합니다..." -#: ../src/applet.c:2571 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "'%s'에 VPN 주소 요청 중..." -#: ../src/applet.c:2574 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "VPN 연결 '%s' 사용 중" -#: ../src/applet.c:2613 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "네트워크 연결 없음" -#: ../src/applet.c:3263 +#: ../src/applet.c:3336 msgid "NetworkManager Applet" msgstr "네트워크 관리 애플릿" @@ -1025,7 +1094,7 @@ msgid "automatic" msgstr "자동" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "알려지지 않은 오류로 비밀 정보를 업데이트하는 데 실패했습니다." @@ -1154,11 +1223,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "검색 도메인(_E):" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_DNS 서버:" @@ -1206,19 +1279,19 @@ #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" -msgstr "3G (UMTS/HSPA)" +msgstr "3G(UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgstr "2G(GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 msgid "Prefer 3G (UMTS/HSPA)" -msgstr "3G 선호 (UMTS/HSPA)" +msgstr "3G 선호(UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 msgid "Prefer 2G (GPRS/EDGE)" -msgstr "2G 선호 (GPRS/EDGE)" +msgstr "2G 선호(GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 msgid "Basic" @@ -1279,7 +1352,7 @@ #: ../src/connection-editor/ce-page-ppp.ui.h:5 msgid "_Use point-to-point encryption (MPPE)" -msgstr "포인트투포인트 암호화 (MPPE) 사용(_U)" +msgstr "포인트투포인트 암호화(MPPE) 사용(_U)" #: ../src/connection-editor/ce-page-ppp.ui.h:6 msgid "_Require 128-bit encryption" @@ -1351,7 +1424,7 @@ #: ../src/connection-editor/ce-page-wired.ui.h:12 msgid "Full duple_x" -msgstr "전이중 (Full duplex)(_X)" +msgstr "전이중 연결(full duplex)(_X)" #: ../src/connection-editor/ce-page-wired.ui.h:13 msgid "Aut_onegotiate" @@ -1531,20 +1604,20 @@ #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "주소" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "넷마스크" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "게이트웨이" @@ -1554,13 +1627,13 @@ msgstr "매트릭" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "접두어" #: ../src/connection-editor/page-dsl.c:139 #: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1568,7 +1641,7 @@ msgid "Could not load DSL user interface." msgstr "DSL 사용자 인터페이스를 읽어들일 수 없습니다." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "DSL 연결 %d" @@ -1576,40 +1649,40 @@ #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" -msgstr "자동 (VPN)" +msgstr "자동(VPN)" #: ../src/connection-editor/page-ip4.c:134 #: ../src/connection-editor/page-ip6.c:133 msgid "Automatic (VPN) addresses only" -msgstr "주소만 자동 (VPN)" +msgstr "주소만 자동(VPN)" #: ../src/connection-editor/page-ip4.c:137 #: ../src/connection-editor/page-ip6.c:136 msgid "Automatic (PPP)" -msgstr "자동 (PPP)" +msgstr "자동(PPP)" #: ../src/connection-editor/page-ip4.c:138 #: ../src/connection-editor/page-ip6.c:137 msgid "Automatic (PPP) addresses only" -msgstr "주소만 자동 (PPP)" +msgstr "주소만 자동(PPP)" #: ../src/connection-editor/page-ip4.c:140 #: ../src/connection-editor/page-ip6.c:139 msgid "Automatic (PPPoE)" -msgstr "자동 (PPPoE)" +msgstr "자동(PPPoE)" #: ../src/connection-editor/page-ip4.c:141 #: ../src/connection-editor/page-ip6.c:140 msgid "Automatic (PPPoE) addresses only" -msgstr "주소만 자동 (PPPoE)" +msgstr "주소만 자동(PPPoE)" #: ../src/connection-editor/page-ip4.c:143 msgid "Automatic (DHCP)" -msgstr "자동 (DHCP)" +msgstr "자동(DHCP)" #: ../src/connection-editor/page-ip4.c:144 msgid "Automatic (DHCP) addresses only" -msgstr "주소만 자동 (DHCP)" +msgstr "주소만 자동(DHCP)" #: ../src/connection-editor/page-ip4.c:181 #: ../src/connection-editor/page-ip6.c:204 @@ -1620,16 +1693,26 @@ msgid "Disabled" msgstr "사용안함" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "추가 네임 서버(_D):" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "추가 검색 도메인(_E):" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "%s의 IPv4 경로 편집 중" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "IPv4 설정" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "IPv4 사용자 인터페이스를 읽어들일 수 없습니다." @@ -1638,7 +1721,7 @@ msgstr "주소만 자동" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "무시" @@ -1646,16 +1729,16 @@ msgid "Automatic, DHCP only" msgstr "자동, DHCP만 사용" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "%s의 IPv6 경로 편집" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "IPv6 설정" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "IPv6 사용자 인터페이스를 읽어들일 수 없습니다." @@ -1682,11 +1765,11 @@ #: ../src/connection-editor/page-mobile.c:679 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "통신사가 _GSM 기반의 기술을 사용합니다 (예: GPRS, EDGE, UMTS, HSDPA)" +msgstr "통신사가 _GSM 기반의 기술을 사용합니다(예: GPRS, EDGE, UMTS, HSDPA)" #: ../src/connection-editor/page-mobile.c:686 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "통신사가 C_DMA 기반의 기술을 사용합니다 (예: 1xRTT, EVDO)" +msgstr "통신사가 C_DMA 기반의 기술을 사용합니다(예: 1xRTT, EVDO)" #: ../src/connection-editor/page-ppp.c:134 msgid "EAP" @@ -1734,7 +1817,7 @@ #: ../src/connection-editor/page-vpn.c:109 #: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1748,7 +1831,7 @@ msgstr "'%s'에 대한 VPN 플러그인 서비스를 찾을 수 없습니다." #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "VPN 연결 %d" @@ -1764,7 +1847,7 @@ #: ../src/connection-editor/page-wired.c:272 #: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "유선" @@ -1777,15 +1860,15 @@ msgid "Wired connection %d" msgstr "유선 네트워크 연결 %d" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "802.1x 보안" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "유선 보안 사용자 인터페이스를 읽어들일 수 없습니다." -#: ../src/connection-editor/page-wired-security.c:136 +#: ../src/connection-editor/page-wired-security.c:139 msgid "Use 802.1_X security for this connection" msgstr "이 연결에 802.1x 보안을 사용(_X)" @@ -1803,7 +1886,7 @@ #: ../src/connection-editor/page-wireless.c:457 #: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "무선" @@ -1816,77 +1899,77 @@ msgid "Wireless connection %d" msgstr "무선 네트워크 연결 %d" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "WEP 40/128비트 키 (Hex 또는 ASCII)" +msgstr "WEP 40/128비트 키(Hex 또는 ASCII)" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128비트 열쇠글" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "동적 WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "개인용 WPA 또는 WPA2" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "기업용 WPA 또는 WPA2" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "" "WiFi 보안 사용자 인터페이스를 읽어들일 수 없습니다. WiFi 설정이 없습니다." -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "무선 보안" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "WiFi 보안 사용자 인터페이스를 읽어들일 수 없습니다." -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "%s 편집" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "이름 없는 연결을 편집" -#: ../src/connection-editor/nm-connection-editor.c:288 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." msgstr "" "연결 편집 창에서 필요한 리소스를 찾을 수 없습니다. (.ui 파일이 없습니다.)" -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "연결 편집 대화 창 만들기 오류." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "저장(_S)" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "이 연결에 대해 바뀐 사항을 저장합니다." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "저장(_S)..." -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." msgstr "이 컴퓨터의 모든 사용자에게 이 연결을 적용하도록 인증합니다." @@ -1907,8 +1990,8 @@ msgstr "자동으로 연결(_A)" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "모든 사용자가 사용 가능" +msgid "A_vailable to all users" +msgstr "모든 사용자가 사용 가능(_V)" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -1975,7 +2058,7 @@ #: ../src/connection-editor/nm-connection-list.c:546 #: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 +#: ../src/connection-editor/nm-connection-list.c:885 msgid "" "The connection editor dialog could not be initialized due to an unknown " "error." @@ -2002,12 +2085,12 @@ msgid "Are you sure you wish to delete the connection %s?" msgstr "%s 연결을 정말로 제거하시겠습니까?" -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "VPN 연결을 가져올 수 없음" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2017,79 +2100,79 @@ "\n" "오류: VPN 서비스 유형이 없음" -#: ../src/connection-editor/nm-connection-list.c:945 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "가져오기 한 연결을 변경할 수 없음" -#: ../src/connection-editor/nm-connection-list.c:1126 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "이름" -#: ../src/connection-editor/nm-connection-list.c:1138 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "마지막 사용" -#: ../src/connection-editor/nm-connection-list.c:1264 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." msgstr "VPN 플러그인이 없습니다. 이 단추를 사용하려면 플러그인을 설치하십시오." -#: ../src/connection-editor/nm-connection-list.c:1275 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "편집(_E)" -#: ../src/connection-editor/nm-connection-list.c:1276 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "선택한 연결을 고칩니다" -#: ../src/connection-editor/nm-connection-list.c:1277 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "편집(_E)..." -#: ../src/connection-editor/nm-connection-list.c:1278 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "선택된 연결을 변경하도록 인증합니다" -#: ../src/connection-editor/nm-connection-list.c:1293 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "삭제(_D)" -#: ../src/connection-editor/nm-connection-list.c:1294 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "선택한 연결 삭제" -#: ../src/connection-editor/nm-connection-list.c:1295 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "삭제(_D)..." -#: ../src/connection-editor/nm-connection-list.c:1296 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "선택한 연결을 삭제하도록 인증" -#: ../src/connection-editor/nm-connection-list.c:1575 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "연결을 만드는데 오류" -#: ../src/connection-editor/nm-connection-list.c:1576 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "'%s' 연결을 만드는 방법을 알지 못합니다" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "연결을 편집하는데 오류" -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "'%s' 연결을 편집하는 방법을 알지 못합니다" -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "UUID가 '%s'인 연결을 찾을 수 없습니다" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2102,29 +2185,29 @@ "\n" "오류: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "가져올 파일" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "이름이 \"%s\"인 파일이 이미 있습니다." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "바꾸기(_R)" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "%s 파일을 저장하려는 VPN 연결로 바꾸시겠습니까?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "VPN 연결을 내보낼 수 없음" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2135,65 +2218,75 @@ "\n" "오류: %s" -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "VPN 연결 내보내기..." -#: ../src/gnome-bluetooth/bt-widget.c:220 +#: ../src/gnome-bluetooth/bt-widget.c:321 #, c-format -msgid "Failed to create PAN connection: %s" -msgstr "PAN 연결을 만들 수 없습니다: %s" - -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "휴대전화를 사용할 수 있습니다!" +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "블루투스 설정이 불가능합니다. (D-Bus에 연결 실패: (%s) %s)" -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s 네트워크" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "블루투스 설정이 불가능합니다. (네트워크 관리를 찾을 수 없습니다: (%s) %s)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "휴대 전화를 네트워크 장치로 사용(PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "휴대 전화를 사용해 인터넷에 연결(DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "오류: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "DUN 연결을 만들 수 없습니다: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "휴대전화를 사용할 수 있습니다!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "모바일 마법사가 취소되었습니다" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "알려지지 않은 휴대전화 유형(GSM이나 CDMA가 아님)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "알 수 없는 모뎀 종류." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "휴대전화에 연결하는 데 실패했습니다." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "휴대전화 연결이 예기치 못하게 끊어졌습니다." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "휴대전화 상세 정보를 감지하는 시간이 초과되었습니다." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "휴대전화 설정을 감지하는 중..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "블루투스 장치를 찾을 수 없습니다." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2201,50 +2294,37 @@ "기본 블루투스 어댑터에 전화접속 네트워크 연결을 설정하려면 사용 가능하도록 설" "정해야 합니다." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "블루투스 설정이 불가능합니다. (D-Bus에 연결 실패: %s)" - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "블루투스 설정이 불가능합니다. (D-Bus 프록시 만들기 실패)" +msgid "Failed to create PAN connection: %s" +msgstr "PAN 연결을 만들 수 없습니다: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "블루투스 설정이 불가능합니다. (네트워크 관리를 찾을 수 없습니다: %s)" - -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "휴대 전화를 네트워크 장치로 사용 (PAN/NAP)" - -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "휴대 전화를 사용해 인터넷에 연결 (DUN)" +msgid "%s Network" +msgstr "%s 네트워크" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "모바일 광대역 연결이 다음과 같이 설정되었습니다:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:212 msgid "Your Device:" msgstr "장치:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:223 msgid "Your Provider:" msgstr "통신사:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:234 msgid "Your Plan:" msgstr "요금제:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:259 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2257,23 +2337,23 @@ "역 연결 설정을 변경하려면, 시스템 >> 기본 설정 메뉴에서 \"네트워크 연결\"을 " "선택하십시오." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:271 msgid "Confirm Mobile Broadband Settings" msgstr "모바일 광대역 설정 확인" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:332 msgid "Unlisted" msgstr "목록에없음" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:487 msgid "_Select your plan:" msgstr "요금제 선택(_S):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:511 msgid "Selected plan _APN (Access Point Name):" msgstr "요금제 _APN(억세스 포인트 이름):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2285,103 +2365,101 @@ "\n" "만약 요금제가 확실하지 않다면, 통신사에 요금제의 APN에 대해 문의하십시오." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:542 msgid "Choose your Billing Plan" msgstr "요금제를 선택하십시오" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:590 msgid "My plan is not listed..." msgstr "내 요금제가 목록에 없습니다..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:747 msgid "Select your provider from a _list:" msgstr "목록에서 통신사 선택(_L):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:760 msgid "Provider" msgstr "통신사" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:785 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "통신사가 없으므로 직접 입력(_M):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:796 msgid "Provider:" msgstr "통신사:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:820 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" -msgstr "내 통신사는 GSM 기반 기술을 사용합니다 (GPRS, EDGE, UMTS, HSPA)" +msgstr "내 통신사는 GSM 기반 기술을 사용합니다(GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses CDMA technology (1xRTT, EVDO)" -msgstr "내 통신사는 CDMA 기반 기술을 사용합니다 (1xRTT, EVDO)" +msgstr "내 통신사는 CDMA 기반 기술을 사용합니다(1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:837 msgid "Choose your Provider" msgstr "통신사를 선택하십시오" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1088 msgid "Country or Region List:" msgstr "국가 혹은 지역 목록:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "Country or region" msgstr "국가 혹은 지역" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1107 msgid "My country is not listed" msgstr "내 나라가 목록에 없습니다" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1153 msgid "Choose your Provider's Country or Region" msgstr "통신사의 국가 혹은 지역 선택" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1207 msgid "Installed GSM device" msgstr "설치된 GSM 장치" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1210 msgid "Installed CDMA device" msgstr "설치된 CDMA 장치" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1382 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." -msgstr "" -"이 도우미를 이용해 휴대전화 (3G) 네트워크를 사용하는 모바일 광대역 연결을 손" -"쉽게 설정할 수 있습니다." +msgstr "이 도우미를 이용해 휴대전화(3G) 네트워크를 사용하는 모바일 광대역 연결을 손쉽게 설정할 수 있습니다." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1387 msgid "You will need the following information:" msgstr "다음 정보가 필요합니다:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1402 msgid "Your broadband provider's name" msgstr "통신사의 이름" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband billing plan name" msgstr "통신사의 요금제 이름" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(어떤 경우엔) 통신사의 요금제 APN (AP 이름)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1441 msgid "Create a connection for _this mobile broadband device:" msgstr "이 모바일 광대역 장치에 대한 연결 만들기(_T):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1456 msgid "Any device" msgstr "모든 장치" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1469 msgid "Set up a Mobile Broadband Connection" msgstr "모바일 광대역 연결을 설정" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1633 msgid "New Mobile Broadband Connection" msgstr "새 모바일 광대역 연결" @@ -2389,58 +2467,58 @@ msgid "New..." msgstr "새로 만들기..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "만들기(_R)" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." +"Passwords or encryption keys are required to access the wireless network " +"'%s'." msgstr "무선 네트워크 '%s'에 연결하려면 암호 또는 암호화 키가 있어야 합니다." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "무선 네트워크 인증이 필요합니다" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "무선 네트워크에 인증이 필요합니다" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "새 무선 네트워크 만들기" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "새 무선 네트워크" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "연결하려는 무선 네트워크의 이름을 입력하십시오." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "감춰진 무선 네트워크에 연결" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "숨겨진 무선 네트워크" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." msgstr "연결하려는 숨겨진 무선 네트워크의 이름과 보안 설정을 입력하십시오." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" -msgstr "무선 보안(_W):" +msgid "Wireless _security:" +msgstr "무선 보안(_S):" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" -msgstr "연결 이름(_N):" +msgid "C_onnection:" +msgstr "연결 이름(_O):" #: ../src/libnm-gtk/wifi.ui.h:5 msgid "Wireless _adapter:" @@ -2454,9 +2532,7 @@ msgid "" "This program is a component of NetworkManager (http://projects.gnome.org/" "NetworkManager)." -msgstr "" -"이 프로그램은 네트워크 관리의 (http://projects.gnome.org/NetworkManager) 한 " -"구성요소입니다." +msgstr "이 프로그램은 네트워크 관리(http://projects.gnome.org/NetworkManager)의 일부분입니다." #: ../src/main.c:76 msgid "" @@ -2548,6 +2624,12 @@ msgid "Default" msgstr "기본" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "%s 연결" + #: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 msgid "" "The NetworkManager Applet could not find some required resources (the .ui " @@ -2556,28 +2638,26 @@ "네트워크 관리 애플릿이 필요한 리소스를 찾을 수 없습니다. (.ui 파일이 없습니" "다.)" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" -msgstr "인증 기관 (CA) 인증서 선택하지 않음" +msgstr "인증 기관(CA) 인증서 선택하지 않음" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " "Certificate Authority certificate?" -msgstr "" -"인증 기관 (CA) 인증서를 이용하지 않으면, 무선 네트워크 연결에 보안상의 허점" -"이 발생할 수 있습니다. 인증 기관 인증서를 선택하시겠습니까?" +msgstr "인증 기관(CA) 인증서를 이용하지 않으면, 무선 네트워크 연결에 보안상의 허점이 발생할 수 있습니다. 인증 기관 인증서를 선택하시겠습니까?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "CA 인증서 선택" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM, 또는 PKCS#12 비밀 키 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DEP 혹은 PEM 인증서 (*.det, *.pem, *.crt, *.cer)" @@ -2631,7 +2711,7 @@ msgstr "모든 파일" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2716,20 +2796,20 @@ msgid "Yes" msgstr "예" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" # NOTE: 무선랜 인증방식. '빠르게' 라고 번역하지 말것. -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "터널링을 사용하는 TLS" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "보호되는 EAP (PEAP)" @@ -2775,11 +2855,8 @@ msgid "WEP inde_x:" msgstr "WEP 인덱스(_X):" -#~ msgid "Click on this icon to connect to a wireless network" -#~ msgstr "이 아이콘을 눌러 무선 네트워크에 연결할 수 있습니다" - -#~ msgid "_Security:" -#~ msgstr "보안(_S):" +#~ msgid "could not find the Bluetooth device." +#~ msgstr "블루투스 장치를 찾을 수 없습니다." -#~ msgid "United Kingdom" -#~ msgstr "영국" +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "블루투스 설정이 불가능합니다. (D-Bus 프록시 만들기 실패)" diff -Nru network-manager-applet-0.9.4.1/po/ku.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ku.po --- network-manager-applet-0.9.4.1/po/ku.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ku.po 2012-10-31 13:20:57.000000000 +0000 @@ -1832,7 +1832,7 @@ msgstr "" #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "" #: ../src/connection-editor/nm-connection-editor.ui.h:2 @@ -2376,7 +2376,7 @@ msgstr "" #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "_Girêdan:" #: ../src/libnm-gtk/wifi.ui.h:3 @@ -2384,7 +2384,7 @@ msgstr "" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Ewlehiya bêqablo:" #: ../src/main.c:73 diff -Nru network-manager-applet-0.9.4.1/po/lt.po network-manager-applet-0.9.6.2+git201210311320.2620/po/lt.po --- network-manager-applet-0.9.4.1/po/lt.po 2012-03-22 17:34:37.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/lt.po 2012-10-31 13:20:57.000000000 +0000 @@ -9,10 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: NetworkManager HEAD\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=Networ" -"kManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-09 22:26+0000\n" -"PO-Revision-Date: 2012-03-22 10:24+0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-09-17 00:06+0300\n" +"PO-Revision-Date: 2012-09-17 00:11+0300\n" "Last-Translator: Žygimantas Beručka \n" "Language-Team: Lithuanian\n" "Language: lt\n" @@ -34,24 +33,24 @@ #: ../nm-applet.schemas.in.h:1 msgid "Disable connected notifications" -msgstr "Išjungti prisijungimo pranešimus" +msgstr "Išjungti pranešimus apie prisijungimą" #: ../nm-applet.schemas.in.h:2 msgid "Set this to TRUE to disable notifications when connecting to a network." msgstr "" -"Nustatykite į TEIGIAMĄ, jei norite išjungti pranešimus jungiantis prie " -"tinklo." +"Nustatykite į teigiamą, jei nepageidaujate, kad būtų rodomi pranešimai " +"jungiantis prie tinklo." #: ../nm-applet.schemas.in.h:3 msgid "Disable disconnected notifications" -msgstr "Išjungti atsijungimo pranešimus" +msgstr "Išjungti pranešimus apie atsijungimą" #: ../nm-applet.schemas.in.h:4 msgid "" "Set this to TRUE to disable notifications when disconnecting from a network." msgstr "" -"Nustatykite į TEIGIAMĄ, jei norite išjungti pranešimus atsijungiant nuo " -"tinklo." +"Nustatykite į teigiamą, jei nepageidaujate, kad būtų rodomi pranešimai " +"atsijungus nuo tinklo." #: ../nm-applet.schemas.in.h:5 msgid "Suppress networks available notifications" @@ -62,8 +61,8 @@ "Set this to TRUE to disable notifications when wireless networks are " "available." msgstr "" -"Nustatykite į TEIGIAMĄ, jei norite išjungti pranešimus, kai yra prieinamų " -"belaidžio ryšio tinklų." +"Nustatykite į teigiamą, jei norite išjungti pranešimus, rodomus esant " +"prieinamų belaidžio ryšio tinklų." #: ../nm-applet.schemas.in.h:7 msgid "Stamp" @@ -76,14 +75,14 @@ #: ../nm-applet.schemas.in.h:9 msgid "Disable WiFi Create" -msgstr "Išjungti WiFi kūrimą" +msgstr "Išjungti belaidžių tinklų kūrimo galimybę" #: ../nm-applet.schemas.in.h:10 msgid "" "Set to TRUE to disable creation of adhoc networks when using the applet." msgstr "" -"Nustatykite į TEIGIAMĄ, jei norite išjungti adhoc tinklų kūrimą naudojant šį " -"įtaisą." +"Nustatykite į teigiamą, jei norite išjungti „adhoc“ tinklų kūrimo galimybę " +"naudojant šį įtaisą." #: ../nm-connection-editor.desktop.in.h:1 #: ../src/connection-editor/nm-connection-editor.ui.h:1 @@ -96,7 +95,7 @@ #: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 #: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Prieinama" @@ -109,7 +108,7 @@ #: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 #: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Prisijungta" @@ -137,7 +136,7 @@ #: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 #: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:2504 #, c-format msgid "Requesting a network address for '%s'..." msgstr "„%s“ prašoma tinklo adreso…" @@ -154,7 +153,7 @@ msgstr "CDMA" #: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Mobilusis plačiajuostis ryšys (%s)" @@ -162,7 +161,7 @@ #: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 #: ../src/connection-editor/page-mobile.c:379 #: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "Mobilusis plačiajuostis ryšys" @@ -331,7 +330,7 @@ msgstr "Laidinis tinklas" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1510 msgid "disconnected" msgstr "atjungta" @@ -380,82 +379,100 @@ msgid "(none)" msgstr "(nėra)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Networks (%s)" msgstr "Belaidžiai tinklai (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:794 #, c-format msgid "Wireless Network (%s)" msgstr "Belaidis tinklas (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:796 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Belaidis tinklas" msgstr[1] "Belaidžiai tinklai" msgstr[2] "Belaidžiai tinklai" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:829 msgid "wireless is disabled" msgstr "belaidis tinklas išjungtas" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:830 msgid "wireless is disabled by hardware switch" msgstr "belaidis tinklas išjungtas aparatiškai" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:891 msgid "More networks" msgstr "Daugiau tinklų" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1071 msgid "Wireless Networks Available" msgstr "Yra belaidžių tinklų" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1072 msgid "Use the network menu to connect to a wireless network" msgstr "Norėdami prisijungti prie belaidžio tinklo, naudokite tinklo meniu" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 +#: ../src/applet-device-wifi.c:1075 ../src/applet.c:926 msgid "Don't show this message again" msgstr "Daugiau nerodyti šio pranešimo" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1267 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Prisijungėte prie belaidžio tinklo „%s“." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1298 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "Ruošiamas belaidis tinklo ryšys „%s“…" -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1301 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "Konfigūruojamas belaidis tinklo ryšys „%s“…" -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1304 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "Belaidis tinklas „%s“ reikalauja nustatyti jūsų tapatybę…" -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1307 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "„%s“ prašoma belaidžio tinklo adreso…" -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1328 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "Belaidžio tinklo ryšys „%s“ aktyvus: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1333 #, c-format msgid "Wireless network connection '%s' active" msgstr "Belaidžio tinklo ryšys „%s“ aktyvus" +#: ../src/applet-device-wifi.c:1381 +msgid "Failed to activate connection" +msgstr "Nepavyko suaktyvinti ryšio" + +#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 +#: ../src/applet.c:492 ../src/applet.c:536 ../src/applet.c:562 +msgid "Unknown error" +msgstr "Nežinoma klaida" + +#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 +#: ../src/applet.c:495 ../src/applet.c:565 +msgid "Connection failure" +msgstr "Ryšio problema" + +#: ../src/applet-device-wifi.c:1400 +msgid "Failed to add new connection" +msgstr "Nepavyko pridėti naujo ryšio" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -482,9 +499,9 @@ msgstr "Klaida rodant ryšio informaciją:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -492,196 +509,195 @@ msgid "Dynamic WEP" msgstr "Dinaminis WEP" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "Nėra" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-dialogs.c:277 #, c-format -#| msgid "1 (Default)" msgid "%s (default)" msgstr "%s (numatytasis)" -#: ../src/applet-dialogs.c:347 ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:349 ../src/applet-dialogs.c:487 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Nežinoma" -#: ../src/applet-dialogs.c:362 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:364 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "nežinoma" -#: ../src/applet-dialogs.c:376 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "nežinoma" -#: ../src/applet-dialogs.c:411 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Laidinis tinklas (%s)" -#: ../src/applet-dialogs.c:414 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:421 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:423 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:427 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:433 ../src/applet-dialogs.c:792 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "Bendra" -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "Sąsaja:" -#: ../src/applet-dialogs.c:453 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "Aparatinis adresas:" #. Driver -#: ../src/applet-dialogs.c:461 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "Tvarkyklė:" -#: ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "Greitis:" -#: ../src/applet-dialogs.c:500 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "Sauga:" -#: ../src/applet-dialogs.c:513 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:526 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:543 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:554 ../src/applet-dialogs.c:661 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP adresas:" -#: ../src/applet-dialogs.c:556 ../src/applet-dialogs.c:572 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "Nežinoma" -#: ../src/applet-dialogs.c:570 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "Transliacijos adresas:" #. Prefix -#: ../src/applet-dialogs.c:579 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "Potinklio kaukė:" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "Nežinoma" -#: ../src/applet-dialogs.c:589 ../src/applet-dialogs.c:676 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "Numatytasis maršrutas:" -#: ../src/applet-dialogs.c:601 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "Pirminis DNS:" -#: ../src/applet-dialogs.c:610 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "Antrinis DNS:" -#: ../src/applet-dialogs.c:620 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "Tretinis DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:635 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:644 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "Nepaisoma" -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "VPN tipas:" -#: ../src/applet-dialogs.c:804 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "VPN tinklų sietuvas:" -#: ../src/applet-dialogs.c:810 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "VPN naudotojo vardas:" -#: ../src/applet-dialogs.c:816 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "VPN reklamjuostė:" -#: ../src/applet-dialogs.c:822 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "Bazinis ryšys:" -#: ../src/applet-dialogs.c:824 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "Nežinoma" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "Nerasta tinkamų aktyvių ryšių!" -#: ../src/applet-dialogs.c:940 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -691,33 +707,49 @@ "Autorių teisės priklauso © 2005-2008 Novell, Inc.\n" "ir daugeliui kitų bendruomenės pagalbininkų bei vertėjų" -#: ../src/applet-dialogs.c:943 +#: ../src/applet-dialogs.c:942 msgid "" "Notification area applet for managing your network devices and connections." msgstr "Pranešimų vietos įtaisas jūsų tinklo įrenginiams ir ryšiams valdyti." -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "NetworkManager tinklalapis" -#: ../src/applet-dialogs.c:960 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "Trūkstami resursai" -#: ../src/applet-dialogs.c:985 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "Mobiliojo plačiajuosčio tinklo slaptažodis" -#: ../src/applet-dialogs.c:994 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "Norint prisijungti prie „%s“ reikalingas slaptažodis." -#: ../src/applet-dialogs.c:1013 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "Slaptažodis:" -#: ../src/applet.c:995 +#: ../src/applet.c:490 +msgid "Failed to add/activate connection" +msgstr "Nepavyko pridėti / suaktyvinti ryšio" + +#: ../src/applet.c:534 +msgid "Device disconnect failed" +msgstr "Nepavyko atjungti įrenginio" + +#: ../src/applet.c:539 +msgid "Disconnect failure" +msgstr "Nepavyko atsijungti" + +#: ../src/applet.c:560 +msgid "Connection activation failed" +msgstr "Nepavyko suaktyvinti ryšio" + +#: ../src/applet.c:1015 #, c-format msgid "" "\n" @@ -727,7 +759,7 @@ "\n" "VPN ryšio „%s“ klaida, buvo nutrauktas tinklo ryšys." -#: ../src/applet.c:998 +#: ../src/applet.c:1018 #, c-format msgid "" "\n" @@ -736,7 +768,7 @@ "\n" "VPN ryšio „%s“ klaida, kadangi VPN tarnyba netikėtai sustojo." -#: ../src/applet.c:1001 +#: ../src/applet.c:1021 #, c-format msgid "" "\n" @@ -746,7 +778,7 @@ "\n" "VPN ryšio „%s“ klaida, VPN tarnyba grąžino netinkamą konfigūraciją." -#: ../src/applet.c:1004 +#: ../src/applet.c:1024 #, c-format msgid "" "\n" @@ -755,7 +787,7 @@ "\n" "VPN ryšio „%s“ klaida, baigėsi bandymo prisijungti laiko limitas." -#: ../src/applet.c:1007 +#: ../src/applet.c:1027 #, c-format msgid "" "\n" @@ -764,7 +796,7 @@ "\n" "VPN ryšio „%s“ klaida, VPN tarnyba nebuvo paleista laiku." -#: ../src/applet.c:1010 +#: ../src/applet.c:1030 #, c-format msgid "" "\n" @@ -773,7 +805,7 @@ "\n" "VPN ryšio „%s“ klaida, VPN tarnyba nebuvo paleista." -#: ../src/applet.c:1013 +#: ../src/applet.c:1033 #, c-format msgid "" "\n" @@ -782,7 +814,7 @@ "\n" "VPN ryšio „%s“ klaida, nebuvo tinkamų VPN paslapčių." -#: ../src/applet.c:1016 +#: ../src/applet.c:1036 #, c-format msgid "" "\n" @@ -791,7 +823,7 @@ "\n" "VPN ryšio „%s“ klaida, kadangi buvo netinkamų VPN paslapčių." -#: ../src/applet.c:1023 +#: ../src/applet.c:1043 #, c-format msgid "" "\n" @@ -800,7 +832,7 @@ "\n" "VPN ryšio „%s“ klaida." -#: ../src/applet.c:1041 +#: ../src/applet.c:1061 #, c-format msgid "" "\n" @@ -810,7 +842,7 @@ "\n" "VPN ryšio „%s“ klaida, kadangi nutrūko tinklo ryšys." -#: ../src/applet.c:1044 +#: ../src/applet.c:1064 #, c-format msgid "" "\n" @@ -819,7 +851,7 @@ "\n" "VPN ryšio „%s“ klaida, kadangi buvo sustabdyta VPN tarnyba." -#: ../src/applet.c:1050 +#: ../src/applet.c:1070 #, c-format msgid "" "\n" @@ -828,15 +860,30 @@ "\n" "VPN ryšis „%s“ nutrauktas." -#: ../src/applet.c:1084 +#: ../src/applet.c:1100 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN ryšys sėkmingai užmegztas.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1102 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN ryšys sėkmingai užmegztas.\n" + +#: ../src/applet.c:1104 msgid "VPN Login Message" msgstr "VPN ryšio pranešimas" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 +#: ../src/applet.c:1110 ../src/applet.c:1118 ../src/applet.c:1168 msgid "VPN Connection Failed" msgstr "VPN ryšio klaida" -#: ../src/applet.c:1155 +#: ../src/applet.c:1175 #, c-format msgid "" "\n" @@ -849,7 +896,7 @@ "\n" "%s" -#: ../src/applet.c:1158 +#: ../src/applet.c:1178 #, c-format msgid "" "\n" @@ -862,139 +909,139 @@ "\n" "%s" -#: ../src/applet.c:1478 +#: ../src/applet.c:1498 msgid "device not ready (firmware missing)" msgstr "įrenginys nepasiruošęs (trūksta aparatinės programinės įrangos)" -#: ../src/applet.c:1480 +#: ../src/applet.c:1500 msgid "device not ready" msgstr "įrenginys nepasiruošęs" -#: ../src/applet.c:1506 +#: ../src/applet.c:1526 msgid "Disconnect" msgstr "Atsijungti" -#: ../src/applet.c:1520 +#: ../src/applet.c:1540 msgid "device not managed" msgstr "įrenginys nevaldomas" -#: ../src/applet.c:1564 +#: ../src/applet.c:1584 msgid "No network devices available" msgstr "Tinklo įrenginių nerasta" -#: ../src/applet.c:1652 +#: ../src/applet.c:1672 msgid "_VPN Connections" msgstr "_VPN ryšiai" -#: ../src/applet.c:1709 +#: ../src/applet.c:1729 msgid "_Configure VPN..." msgstr "_Konfigūruoti VPN…" -#: ../src/applet.c:1713 +#: ../src/applet.c:1733 msgid "_Disconnect VPN" msgstr "_Atjungti VPN" -#: ../src/applet.c:1811 +#: ../src/applet.c:1831 msgid "NetworkManager is not running..." msgstr "NetworkManager programa nepaleista…" -#: ../src/applet.c:1816 ../src/applet.c:2609 +#: ../src/applet.c:1836 ../src/applet.c:2635 msgid "Networking disabled" msgstr "Tinklo sąsajos atjungtos" #. 'Enable Networking' item -#: ../src/applet.c:2037 +#: ../src/applet.c:2057 msgid "Enable _Networking" msgstr "Įjungti _tinklą" #. 'Enable Wireless' item -#: ../src/applet.c:2046 +#: ../src/applet.c:2066 msgid "Enable _Wireless" msgstr "Įjungti _belaidį" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 +#: ../src/applet.c:2075 msgid "Enable _Mobile Broadband" msgstr "Įjungti _mobilųjį plačiajuostį ryšį" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 +#: ../src/applet.c:2084 msgid "Enable WiMA_X Mobile Broadband" msgstr "Įjungti WiMA_X mobilųjį plačiajuostį ryšį" #. Toggle notifications item -#: ../src/applet.c:2075 +#: ../src/applet.c:2095 msgid "Enable N_otifications" msgstr "Įjungti p_ranešimus" #. 'Connection Information' item -#: ../src/applet.c:2086 +#: ../src/applet.c:2106 msgid "Connection _Information" msgstr "Ryšio _informacija" #. 'Edit Connections...' item -#: ../src/applet.c:2096 +#: ../src/applet.c:2116 msgid "Edit Connections..." msgstr "Taisyti ryšius…" #. Help item -#: ../src/applet.c:2110 +#: ../src/applet.c:2130 msgid "_Help" msgstr "_Žinynas" #. About item -#: ../src/applet.c:2119 +#: ../src/applet.c:2139 msgid "_About" msgstr "_Apie" -#: ../src/applet.c:2296 +#: ../src/applet.c:2316 msgid "Disconnected" msgstr "Atjungta" -#: ../src/applet.c:2297 +#: ../src/applet.c:2317 msgid "The network connection has been disconnected." msgstr "Atsijungta nuo tinklo." -#: ../src/applet.c:2478 +#: ../src/applet.c:2498 #, c-format msgid "Preparing network connection '%s'..." msgstr "Ruošiamas tinklo ryšys „%s“…" -#: ../src/applet.c:2481 +#: ../src/applet.c:2501 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Tinklo ryšys „%s“ reikalauja nustatyti jūsų tapatybę…" -#: ../src/applet.c:2487 +#: ../src/applet.c:2507 #, c-format msgid "Network connection '%s' active" msgstr "Tinklo ryšys „%s“ aktyvus" -#: ../src/applet.c:2565 +#: ../src/applet.c:2590 #, c-format msgid "Starting VPN connection '%s'..." msgstr "Pradedamas VPN ryšys „%s“…" -#: ../src/applet.c:2568 +#: ../src/applet.c:2593 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "VPN ryšys „%s“ reikalauja nustatyti jūsų tapatybę…" -#: ../src/applet.c:2571 +#: ../src/applet.c:2596 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "„%s“ prašoma VPN adreso…" -#: ../src/applet.c:2574 +#: ../src/applet.c:2599 #, c-format msgid "VPN connection '%s' active" msgstr "VPN ryšys „%s“ aktyvus." -#: ../src/applet.c:2613 +#: ../src/applet.c:2640 msgid "No network connection" msgstr "Nėra tinklo ryšio" -#: ../src/applet.c:3263 +#: ../src/applet.c:3354 msgid "NetworkManager Applet" msgstr "NetworkManager įtaisas" @@ -1026,7 +1073,7 @@ msgid "automatic" msgstr "automatinis" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "Nepavyko atnaujinti ryšio paslapčių dėl nežinomos klaidos." @@ -1048,7 +1095,6 @@ #: ../src/connection-editor/ce-ip4-routes.ui.h:3 #: ../src/connection-editor/ce-ip6-routes.ui.h:3 -#| msgid "Use this c_onnection only for resources on its network" msgid "_Use this connection only for resources on its network" msgstr "Naudoti šį _ryšį tik jo tinkle esantiems ištekliams" @@ -1159,7 +1205,6 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 -#| msgid "_Search domains:" msgid "S_earch domains:" msgstr "_Paieškos sritys:" @@ -1178,7 +1223,6 @@ "vardų serverių adresus galite atskirti kableliais." #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#| msgid "Require IPv4 addressing for this connection to complete" msgid "Require IPv_4 addressing for this connection to complete" msgstr "Šiam ryšiui užmegzti yra būtinas IPv_4 adresavimas" @@ -1187,7 +1231,7 @@ "When connecting to IPv6-capable networks, allows the connection to complete " "if IPv4 configuration fails but IPv6 configuration succeeds." msgstr "" -"Jungiantis prie IPv6 palaikančių tinklų, leidžia užbaigti ryšį jei IPv4 " +"Jungiantis prie IPv6 palaikančių tinklų, leidžia užmegzti ryšį, jei IPv4 " "konfigūracija nesėkminga, bet IPv6 konfigūracija sėkminga." #: ../src/connection-editor/ce-page-ip4.ui.h:17 @@ -1196,7 +1240,6 @@ msgstr "_Maršrutai…" #: ../src/connection-editor/ce-page-ip6.ui.h:13 -#| msgid "Require IPv6 addressing for this connection to complete" msgid "Require IPv_6 addressing for this connection to complete" msgstr "Šiam ryšiui užmegzti yra būtinas IPv_6 adresavimas" @@ -1205,7 +1248,7 @@ "When connecting to IPv4-capable networks, allows the connection to complete " "if IPv6 configuration fails but IPv4 configuration succeeds." msgstr "" -"Jungiantis prie IPv4 palaikančių tinklų, leidžia užbaigti ryšį jei IPv6 " +"Jungiantis prie IPv4 palaikančių tinklų, leidžia užmegzti ryšį, jei IPv6 " "konfigūracija pavyksta, bet IPv4 konfigūracija sėkminga." #: ../src/connection-editor/ce-page-mobile.ui.h:1 @@ -1258,12 +1301,10 @@ msgstr "Pakeisti…" #: ../src/connection-editor/ce-page-mobile.ui.h:15 -#| msgid "PI_N:" msgid "P_IN:" msgstr "P_IN:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#| msgid "Allow roaming if home network is not available" msgid "Allow _roaming if home network is not available" msgstr "Naudoti _tarptinklinį ryšį, jei neprieinamas namų tinklas" @@ -1374,7 +1415,6 @@ #: ../src/connection-editor/ce-page-wired.ui.h:15 #: ../src/connection-editor/ce-page-wireless.ui.h:10 -#| msgid "_Cloned MAC address:" msgid "C_loned MAC address:" msgstr "_Klonuotas MAC adresas:" @@ -1391,7 +1431,6 @@ #: ../src/connection-editor/ce-page-wired.ui.h:17 #: ../src/connection-editor/ce-page-wireless.ui.h:7 -#| msgid "MT_U:" msgid "_MTU:" msgstr "_MTU:" @@ -1457,12 +1496,10 @@ msgstr "_Veiksena:" #: ../src/connection-editor/ce-page-wireless.ui.h:20 -#| msgid "_SSID:" msgid "SS_ID:" msgstr "SS_ID:" #: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -#| msgid "Security:" msgid "S_ecurity:" msgstr "Sau_ga:" @@ -1575,7 +1612,7 @@ #: ../src/connection-editor/page-dsl.c:139 #: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1751,7 +1788,7 @@ #: ../src/connection-editor/page-vpn.c:109 #: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1765,7 +1802,7 @@ msgstr "Nepavyko rasti „%s“ reikalingos VPN įskiepių tarnybos." #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "VPN ryšys %d" @@ -1781,7 +1818,7 @@ #: ../src/connection-editor/page-wired.c:272 #: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Laidinis" @@ -1794,16 +1831,15 @@ msgid "Wired connection %d" msgstr "Laidinis ryšys %d" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "802.1x sauga" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "Nepavyko įkelti laidinio tinklo saugos naudotojo sąsajos." -#: ../src/connection-editor/page-wired-security.c:136 -#| msgid "Use 802.1X security for this connection" +#: ../src/connection-editor/page-wired-security.c:139 msgid "Use 802.1_X security for this connection" msgstr "Naudoti 802.1_X saugą šiam ryšiui" @@ -1821,7 +1857,7 @@ #: ../src/connection-editor/page-wireless.c:457 #: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Belaidis" @@ -1834,40 +1870,40 @@ msgid "Wireless connection %d" msgstr "Belaidis ryšys %d" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP 40/128 bitų raktas (šešioliktainis arba ASCII)" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128 bitų slaptažodis" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "Dinaminis WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA ir WPA2 asmeninis" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA ir WPA2 industrinis" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "Nepavyko įkelti WiFi saugos naudotojo sąsajos. Nėra Wifi parametro." -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "Belaidžio ryšio sauga" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "Nepavyko įkelti WiFi saugos naudotojo sąsajos." @@ -1880,30 +1916,30 @@ msgid "Editing un-named connection" msgstr "Taisomas nepavadintas ryšys" -#: ../src/connection-editor/nm-connection-editor.c:288 +#: ../src/connection-editor/nm-connection-editor.c:291 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." msgstr "" "Ryšių rengyklė nerado kai kurių reikalingų išteklių (nerastas .ui failas)." -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:394 msgid "Error creating connection editor dialog." msgstr "Klaida kuriant ryšio rengyklės dialogą." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:406 msgid "_Save" msgstr "Į_rašyti" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "Save any changes made to this connection." msgstr "Išsaugoti visus šiam ryšiui daromus pakeitimus." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "_Save..." msgstr "Į_rašyti…" -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "Authenticate to save this connection for all users of this machine." msgstr "" "Nurodykite tapatybę, jei pageidaujate išsaugoti šį ryšį visiems šio " @@ -1926,8 +1962,8 @@ msgstr "Prisijungti _automatiškai" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Prieinama visiems naudotojams" +msgid "A_vailable to all users" +msgstr "Prieinama _visiems naudotojams" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -2004,7 +2040,7 @@ #: ../src/connection-editor/nm-connection-list.c:546 #: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 +#: ../src/connection-editor/nm-connection-list.c:885 msgid "" "The connection editor dialog could not be initialized due to an unknown " "error." @@ -2031,12 +2067,12 @@ msgid "Are you sure you wish to delete the connection %s?" msgstr "Ar tikrai norite ištrinti ryšį %s?" -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "Nepavyko importuoti VPN ryšio" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2046,81 +2082,81 @@ "\n" "Klaida: nenurodytas VPN paslaugos tipas." -#: ../src/connection-editor/nm-connection-list.c:945 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "Nepavyko taisyti importuoti ryšio" -#: ../src/connection-editor/nm-connection-list.c:1126 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "Vardas" -#: ../src/connection-editor/nm-connection-list.c:1138 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "Paskutinįkart naudotas" -#: ../src/connection-editor/nm-connection-list.c:1264 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." msgstr "" "Neprieinamas joks VPN įskiepis. Norėdami įgalinti šį mygtuką turite įdiegti " "bent vieną." -#: ../src/connection-editor/nm-connection-list.c:1275 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "K_eisti" -#: ../src/connection-editor/nm-connection-list.c:1276 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "Keisti pasirinktą ryšį" -#: ../src/connection-editor/nm-connection-list.c:1277 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "K_eisti…" -#: ../src/connection-editor/nm-connection-list.c:1278 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "Norint keisti pasirinktą ryšį, reikia nustatyti tapatybę" -#: ../src/connection-editor/nm-connection-list.c:1293 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "Pa_šalinti" -#: ../src/connection-editor/nm-connection-list.c:1294 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "Pašalinti pasirinktą ryšį" -#: ../src/connection-editor/nm-connection-list.c:1295 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "Pa_šalinti…" -#: ../src/connection-editor/nm-connection-list.c:1296 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "Norint pašalinti pasirinktą ryšį, reikia nustatyti tapatybę" -#: ../src/connection-editor/nm-connection-list.c:1575 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "Klaida kuriant ryšį" -#: ../src/connection-editor/nm-connection-list.c:1576 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "Nežinoma, kaip sukurti „%s“ ryšius" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "Klaida taisant ryšio nustatymus" -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "Nežinoma, kaip taisyti „%s“ ryšius" -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "Nepavyko rasti ryšio, kurio UUID „%s“" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2133,29 +2169,29 @@ "\n" "Klaida: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "Pasirinkite importuotiną failą" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "Failas pavadinimu „%s“ jau yra." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "_Pakeisti" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Ar norite pakeisti %s VPN ryšiu, kurį bandote įrašyti?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "Nepavyko eksportuoti VPN ryšio" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2166,7 +2202,7 @@ "\n" "Klaida: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "Eksportuoti VPN ryšį…" @@ -2222,7 +2258,7 @@ #: ../src/gnome-bluetooth/bt-widget.c:840 msgid "could not find the Bluetooth device." -msgstr "nepavyko rasti Bluetooth įrenginio." +msgstr "nepavyko rasti „Bluetooth“ įrenginio." #: ../src/gnome-bluetooth/bt-widget.c:980 msgid "" @@ -2236,17 +2272,22 @@ #, c-format msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." msgstr "" -"Negalima sukonfigūruoti Bluetooth (nepavyko prisijungti prie D-Bus: %s)." +"Nepavyko sukonfigūruoti „Bluetooth“ įrenginio (nepavyko prisijungti prie " +"D-Bus: %s)." #: ../src/gnome-bluetooth/bt-widget.c:1022 msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Negalima sukonfigūruoti Bluetooth (nepavyko sukurti D-Bus proxy)." +msgstr "" +"Nepavyko sukonfigūruoti „Bluetooth“ įrenginio (nepavyko prisijungti prie " +"įgaliotosios D-Bus programos)." #: ../src/gnome-bluetooth/bt-widget.c:1031 #, c-format msgid "" "Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "Negalima sukonfigūruoti Bluetooth (nepavyko rasti NetworkManager: %s)." +msgstr "" +"Nepavyko sukonfigūruoti „Bluetooth“ įrenginio (nepavyko rasti " +"„NetworkManager“ programos: %s)." #: ../src/gnome-bluetooth/bt-widget.c:1098 msgid "Use your mobile phone as a network device (PAN/NAP)" @@ -2426,48 +2467,48 @@ msgid "New..." msgstr "Naujas…" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "Suku_rti" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." +"Passwords or encryption keys are required to access the wireless network " +"'%s'." msgstr "" "Norint prisijungti prie belaidžio tinklo „%s“ reikalingi slaptažodžiai ar " "šifravimo raktai." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "Reikia nustatyti jūsų tapatybę belaidžiame tinkle" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "Belaidis tinklas prašo nurodyti jūsų tapatybę" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "Sukurti naują belaidį tinklą" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "Naujas belaidis tinklas" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "Įveskite pageidaujamo sukurti belaidžio tinklo pavadinimą." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "Prisijungti prie paslėpto belaidžio tinklo" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "Paslėptas belaidis tinklas" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." @@ -2623,12 +2664,10 @@ msgstr "DER arba PEM liudijimai (*.der, *.pem, *.crt, *.cer)" #: ../src/wireless-security/eap-method-fast.ui.h:2 -#| msgid "Anony_mous identity:" msgid "Anonymous" msgstr "Anoniminis" #: ../src/wireless-security/eap-method-fast.ui.h:3 -#| msgid "Authentication" msgid "Authenticated" msgstr "Nustatyta tapatybė" @@ -2649,7 +2688,6 @@ #: ../src/wireless-security/eap-method-fast.ui.h:7 #: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 -#| msgid "I_nner authentication:" msgid "_Inner authentication:" msgstr "_Vidinis tapatybės nustatymas:" @@ -2675,7 +2713,7 @@ msgstr "Visi failai" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2700,7 +2738,6 @@ msgstr "_LĮ liudijimas:" #: ../src/wireless-security/eap-method-peap.ui.h:8 -#| msgid "_PEAP version:" msgid "PEAP _version:" msgstr "PEAP _versija:" @@ -2762,26 +2799,25 @@ msgid "Yes" msgstr "Taip" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "Tuneliuojamas TLS" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Apsaugotas EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 #: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 -#| msgid "_Authentication:" msgid "Au_thentication:" msgstr "_Tapatybės nustatymas:" @@ -2821,246 +2857,40 @@ msgid "WEP inde_x:" msgstr "WEP inde_ksas:" -#~ msgid "Click on this icon to connect to a wireless network" -#~ msgstr "" -#~ "Norėdami prisijungti prie belaidžio tinklo, spustelėkite šią piktogramą" - -#~ msgid "_Security:" -#~ msgstr "_Sauga:" - -#~ msgid "United Kingdom" -#~ msgstr "Jungtinė Karalystė" - -#~ msgid "C_onnect" -#~ msgstr "Prisi_jungti" - -#~ msgid "Other Wireless Network..." -#~ msgstr "Kitas belaidis tinklas…" - -#~ msgid "label" -#~ msgstr "etiketė" - -#~ msgid "Network Manager" -#~ msgstr "Tinklo tvarkytuvė" - -#~ msgid "An instance of nm-applet is already running.\n" -#~ msgstr "Nm-applet egzempliorius jau veikia.\n" - -#~ msgid "Could not acquire the %s service. (%d)\n" -#~ msgstr "Nepavyko gauti %s paslaugos. (%d)\n" - -#~ msgid "translator-credits" -#~ msgstr "" -#~ "Žygimantas Beručka \n" -#~ "Gintautas Miliauskas " +#~ msgid "Disable VPN notifications" +#~ msgstr "Išjungti VPN pranešimus" #~ msgid "" -#~ "Active Network Connections" -#~ msgstr "Aktyvūs tinklo ryšiai" - -#~ msgid "" -#~ "Automatic\n" -#~ "Version 0\n" -#~ "Version 1" +#~ "Set this to true to disable notifications when connecting to or " +#~ "disconnecting from a VPN." #~ msgstr "" -#~ "Automatiškai\n" -#~ "Versija 0\n" -#~ "Versija 1" +#~ "Nustatykite teigiamą, jei norite išjungti pranešimus atsijungiant nuo VPN." -#~ msgid "Addresses" -#~ msgstr "Adresai" +#~ msgid "Ignore CA certificate" +#~ msgstr "Nepaisyti LĮ liudijimo" #~ msgid "" -#~ "Automatic\n" -#~ "Automatic with manual DNS settings\n" -#~ "Manual\n" -#~ "Link-Local\n" -#~ "Shared to other computers" +#~ "Set this to true to disable warnings about CA certificates in EAP " +#~ "authentication." #~ msgstr "" -#~ "Automatinis\n" -#~ "Automatinis su rankiniais DNS parametrais\n" -#~ "Rankinis\n" -#~ "Vietinis\n" -#~ "Viešinamas kitiems kompiuteriams" - -#~ msgid "Basic" -#~ msgstr "Pagrindiniai" +#~ "Nustatyti teigiamą išjungti įspėjimams apie LĮ liudijimus EAP tapatybės " +#~ "patvirtinime." #~ msgid "" -#~ "Any\n" -#~ "3G (UMTS/HSPA)\n" -#~ "2G (GPRS/EDGE)\n" -#~ "Prefer 3G (UMTS/HSPA)\n" -#~ "Prefer 2G (GPRS/EDGE)" +#~ "Set this to true to disable warnings about CA certificates in phase 2 of " +#~ "EAP authentication." #~ msgstr "" -#~ "Bet koks\n" -#~ "3G (UMTS/HSPA)\n" -#~ "2G (GPRS/EDGE)\n" -#~ "Pirmenybė 3G (UMTS/HSPA)\n" -#~ "Pirmenybė 2G (GPRS/EDGE)" - -#~ msgid "Authentication" -#~ msgstr "Tapatybės nustatymas" - -#~ msgid "Echo" -#~ msgstr "Aidas" - -#~ msgid "" -#~ "Automatic\n" -#~ "10 Mb/s\n" -#~ "100 Mb/s\n" -#~ "1 Gb/s\n" -#~ "10 Gb/s" -#~ msgstr "" -#~ "Automatinis\n" -#~ "10 Mb/s\n" -#~ "100 Mb/s\n" -#~ "1 Gb/s\n" -#~ "10 Gb/s" - -#~ msgid "" -#~ "Automatic\n" -#~ "Twisted Pair (TP)\n" -#~ "Attachment Unit Interface (AUI)\n" -#~ "BNC\n" -#~ "Media Independent Interface (MII)" -#~ msgstr "" -#~ "Automatinis\n" -#~ "Vytos poros (TP)\n" -#~ "Attachment Unit Interface (AUI)\n" -#~ "BNC\n" -#~ "Media Independent Interface (MII)" - -#~ msgid "" -#~ "Automatic\n" -#~ "A (5 GHz)\n" -#~ "B/G (2.4 GHz)" -#~ msgstr "" -#~ "Automatinis\n" -#~ "A (5 GHz)\n" -#~ "B/G (2.4 GHz)" - -#~ msgid "" -#~ "The connection editor could not find some required resources (the " -#~ "NetworkManager applet glade file was not found)." -#~ msgstr "" -#~ "Ryšių rengyklė nerado kai kurių reikalingų išteklių (nerastas glade " -#~ "failas)." - -#~ msgid "could not connect to the system bus." -#~ msgstr "nepavyko prisijungti prie sisteminės magistralės." - -#~ msgid "Country" -#~ msgstr "Valstybė" - -#~ msgid "Cannot start VPN connection '%s'" -#~ msgstr "Nepavyko pradėti VPN ryšio „%s“" - -#~ msgid "" -#~ "Could not find the authentication dialog for VPN connection type '%s'. " -#~ "Contact your system administrator." -#~ msgstr "" -#~ "Nepavyko rasti VPN ryšio tipui „%s“ tapatybės nustatymo dialogo. " -#~ "Susisiekite su savo sistemos administratoriumi." - -#~ msgid "" -#~ "There was a problem launching the authentication dialog for VPN " -#~ "connection type '%s'. Contact your system administrator." -#~ msgstr "" -#~ "Klaida paleidžiant VPN ryšio tipui „%s“ tapatybės nustatymo dialogą. " -#~ "Susisiekite su savo sistemos administratoriumi." - -#~ msgid "Apply" -#~ msgstr "Pritaikyti" - -#~ msgid "Apply..." -#~ msgstr "Pritaikyti..." - -#~ msgid "PUK code required" -#~ msgstr "Reikalingas PUK kodas" - -#~ msgid "PUK code is needed for the mobile broadband device" -#~ msgstr "Mobiliojo plačiajuosčio ryšio įrenginiui reikia PUK kodo" - -#~ msgctxt "No wired security used" -#~ msgid "None" -#~ msgstr "Nėra" - -#~ msgctxt "Unknown/unrecognized wired or wifi security" -#~ msgid "Unknown" -#~ msgstr "Nežinoma" - -#~ msgid "_Routes…" -#~ msgstr "_Keliai…" - -#~ msgid "Save this connection for all users of this machine." -#~ msgstr "Išsaugoti šį ryšį visiems šio kompiuterio naudotojams." - -#~ msgid "" -#~ "The NetworkManager applet could not find some required resources. It " -#~ "cannot continue.\n" -#~ msgstr "" -#~ "NetworkManager įtaisas nerado kai kurių reikiamų išteklių. Toliau tęsti " -#~ "nebegalima.\n" - -#~ msgid "Select A File" -#~ msgstr "Pasirinkite failą" - -#~ msgid "_Band:" -#~ msgstr "_Juosta:" - -#~ msgid "PU_K:" -#~ msgstr "PU_K:" - -#~ msgid "" -#~ "Insufficient privileges or unknown error retrieving system connection " -#~ "secrets." -#~ msgstr "" -#~ "Nepakankamos privilegijos arba nežinoma klaida gaunant sistemos ryšio " -#~ "paslaptis." - -#~ msgid "Could not request secrets from the system settings service." -#~ msgstr "Nepavyko užklausti paslapčių iš sistemos parametrų tarnybos." - -#~ msgid "Could not connect to D-Bus to request connection secrets." -#~ msgstr "Nepavyko prisijungti prie D-Bus siekiant užklausti ryšio paslapčių." - -#~ msgid "Could not create D-Bus proxy for connection secrets." -#~ msgstr "Nepavyko sukurti D-Bus tarpinio serverio ryšio paslaptims." - -#~ msgid "PolicyKit authorization request was invalid." -#~ msgstr "PolicyKit tapatybės nustatymo užklausa buvo neteisinga." - -#~ msgid "PolicyKit authorization request was malformed." -#~ msgstr "PolicyKit tapatybės nustatymo užklausa buvo netinkamai suformuota." - -#~ msgid "PolicyKit authorization could not be created." -#~ msgstr "Nepavyko sukurti PolicyKit tapatybės nustatymo." - -#~ msgid "PolicyKit authorization could not be created; invalid action ID." -#~ msgstr "" -#~ "Nepavyko sukurti PolicyKit tapatybės nustatymo. Neteisingas veiksmo ID." - -#~ msgid "Could not obtain required privileges" -#~ msgstr "Nepavyko gauti reikalingų privilegijų" - -#~ msgid "Could not delete connection" -#~ msgstr "Nepavyko ištrinti ryšio" - -#~ msgid "The connection could not be deleted due to an unknown error." -#~ msgstr "Šio ryšio nepavyko ištrinti dėl nežinomos klaidos." - -#~ msgid "Could not move connection" -#~ msgstr "Nepavyko perkelti ryšio" +#~ "Nustatyti teigiamą išjungti įspėjimams apei LĮ liudijimus antroje EAP " +#~ "tapatybės patvirtinimo fazėje." -#~ msgid "Could not add connection" -#~ msgstr "Nepavyko pridėti ryšio" +#~ msgid "Additional _DNS servers:" +#~ msgstr "Papildomi _DNS serveriai:" -#~ msgid "The connection could not be added due to an unknown error." -#~ msgstr "Šio ryšio nepavyko pridėti dėl nežinomos klaidos." +#~ msgid "Additional s_earch domains:" +#~ msgstr "Papildomos pai_eškos sritys:" -#~ msgid "Could not update connection" -#~ msgstr "Nepavyko atnaujinti ryšio" +#~ msgid "unknown modem type." +#~ msgstr "nežinomas modemo tipas." -#~ msgid "The connection could not be updated due to an unknown error." -#~ msgstr "Šio ryšio nepavyko atnaujinti dėl nežinomos klaidos." +#~ msgid "%s connection" +#~ msgstr "%s ryšys" diff -Nru network-manager-applet-0.9.4.1/po/lv.po network-manager-applet-0.9.6.2+git201210311320.2620/po/lv.po --- network-manager-applet-0.9.4.1/po/lv.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/lv.po 2012-10-31 13:20:57.000000000 +0000 @@ -2,18 +2,17 @@ # translation of NetworkManager.HEAD.po to Latvian # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# # Raivis Dejus , 2006. -# Rūdolfs Mazurs , 2010. # Peteris Krisjanis , 2010. -# Rudolfs , 2011. -# Rūdofls Mazurs , 2011, 2012. +# Rūdolfs Mazurs , 2010, 2011, 2012. msgid "" msgstr "" "Project-Id-Version: NetworkManager.HEAD2\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=Networ" -"kManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-09 22:26+0000\n" -"PO-Revision-Date: 2012-03-13 23:08+0200\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-10-02 00:21+0300\n" +"PO-Revision-Date: 2012-10-01 21:06+0300\n" "Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian \n" "Language: lv\n" @@ -22,7 +21,7 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " "2);\n" -"X-Generator: Lokalize 1.2\n" +"X-Generator: Lokalize 1.4\n" #: ../nm-applet.desktop.in.h:1 msgid "Network" @@ -30,437 +29,818 @@ #: ../nm-applet.desktop.in.h:2 msgid "Manage your network connections" -msgstr "Pārvaldi savus tīkla savienojumus" +msgstr "Pārvaldiet savus tīkla savienojumus" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Tīkla savienojumi" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Pārvaldiet un mainiet tīkla savienojumu iestatījumus" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" -msgstr "Atslēgt paziņojumus par savienošanos" +msgstr "Deaktivēt paziņojumus par savienošanos" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" -"Iestatiet to kā PATIESS, lai atslēgtu paziņojumus, kad savienojas ar tīklu." +"Iestatiet to kā “patiess”, lai deaktivētu paziņojumus, kad savienojas ar " +"tīklu." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" -msgstr "Atslēgt paziņojumus par atvienošanos" +msgstr "Deaktivēt paziņojumus par atvienošanos" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "" -"Iestatiet to kā PATIESS, lai atslēgtu paziņojumus, kad atvienojas no tīkla." +"Iestatiet to kā “patiess”, lai deaktivētu paziņojumus, kad atvienojas no " +"tīkla." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Deaktivēt VPN paziņojumus" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"Iestatiet to kā “patiess”, lai deaktivētu paziņojumus, kad savienojas vai " +"atvienojas no VPN." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Noklusēt tīklu pieejamības paziņojumus" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#, fuzzy msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when Wi-Fi networks are available." msgstr "" -"Iestatiet to kā PATIESS, lai atslēgtu paziņojumus, kad ir pieejams bezvadu " -"tīkls." +"Iestatiet to kā “patiess”, lai deaktivētu paziņojumus, kad ir pieejams " +"bezvadu tīkls." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Spiedogs" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "Izmanto, lai noteiktu, vai iestatījumus vajadzētu pārnest uz jauno versiju." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" -msgstr "Atslēgt WiFi izveidošanu" +msgstr "Deaktivēt WiFi izveidošanu" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" -"Iestatiet to kā PATIESS, lai atslēgtu ekspromta tīklu veidošanu, kad izmanot " -"šo sīklietotni." +"Iestatiet to kā “patiess”, lai deaktivētu ekspromta tīklu veidošanu, kad " +"izmanot šo sīklietotni." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Tīkla savienojumi" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ignorēt CA sertifikātu" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Pārvaldiet un mainiet tīkla savienojumu iestatījumus" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Iestatiet šo kā “patiess”, lai deaktivētu brīdinājumus par CA sertifikātiem " +"EAP autentifikācijā." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Iestatiet šo kā “patiess”, lai deaktivētu brīdinājumus par CA sertifikātiem " +"EAP 2. fāzes autentifikācijā." + +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +#, fuzzy +msgid "802.1X authentication" +msgstr "Vadu 802.1X autentifikācija" + +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "Tīkla _nosaukums:" + +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "Neizdevās pievienot/aktivizēt savienojumu" + +#: ../src/applet.c:514 ../src/applet.c:558 ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Nezināma kļūda" + +#: ../src/applet.c:517 ../src/applet.c:587 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Savienojums neizdevās" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "Neizdevās ierīces atvienošana" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "Atvienošanās neizdevās" + +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "Savienojuma aktivēšana neizdevās" + +#: ../src/applet.c:948 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "Vairs nerādīt šo ziņojumu" + +#: ../src/applet.c:1037 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN savienojums “%s” neizdevās, jo tika pārtraukts tīkla savienojums." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../src/applet.c:1040 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"VPN savienojums “%s” neizdevās, jo VPN serviss negaidīti apstājās." + +#: ../src/applet.c:1043 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"VPN savienojums “%s” neizdevās, jo VPN serviss atgrieza nederīgu " +"konfigurāciju." + +#: ../src/applet.c:1046 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"VPN savienojums “%s” neizdevās, jo savienošanās mēģinājumam iestājās noildze." + +#: ../src/applet.c:1049 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"VPN savienojums “%s” neizdevās, jo VPN serviss laicīgi nepalaidās." + +#: ../src/applet.c:1052 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"VPN savienojums “%s” neizdevās, jo VPN servisam neizdevās palaisties." + +#: ../src/applet.c:1055 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"VPN savienojums “%s” neizdevās, jo nebija derīgu VPN noslēpumu (secrets)." + +#: ../src/applet.c:1058 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"VPN savienojums “%s” neizdevās nederīgu VPN noslēpumu (secrets) dēļ." + +#: ../src/applet.c:1065 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"VPN savienojums “%s” neizdevās." + +#: ../src/applet.c:1083 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN savienojums “%s” atvienojās, jo tika pārtraukts tīkla savienojums." + +#: ../src/applet.c:1086 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"VPN savienojums “%s” atvienojās, jo VPN serviss apstājās." + +#: ../src/applet.c:1092 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"VPN savienojums “%s” atvienojās." + +#: ../src/applet.c:1122 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN savienojums ir veiksmīgi izveidots.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1124 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN savienojums ir veiksmīgi izveidots.\n" + +#: ../src/applet.c:1126 +msgid "VPN Login Message" +msgstr "VPN pieteikšanās ziņojums" + +#: ../src/applet.c:1132 ../src/applet.c:1140 ../src/applet.c:1190 +msgid "VPN Connection Failed" +msgstr "VPN savienojums neizdevās" + +#: ../src/applet.c:1197 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN savienojums “%s” neizdevās, jo VPN servisam neizdevās palaisties.\n" +"\n" +"%s" + +#: ../src/applet.c:1200 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN savienojumam “%s” neizdevās palaisties.\n" +"\n" +"%s" + +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "ierīce nav gatava (trūkst aparātprogrammatūras)" + +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "ierīce nav gatava" + +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "atvienots" + +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "Atvienoties" + +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "ierīce nav pārvaldīta" + +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "Nav pieejamu tīkla ierīču" + +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "_VPN savienojumi" + +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "_Konfigurēt VPN..." + +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "_Atvienot VPN..." + +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "NetworkManager nav palaists..." + +#: ../src/applet.c:1854 ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "Tīklošana deaktivēta" + +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "Aktivēt tīkloša_nu" + +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +#, fuzzy +msgid "Enable _Wi-Fi" +msgstr "Aktivēt bez_vadu tīklošana" + +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "Aktivēt _mobilo platjoslas tīklu" + +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Aktivēt WiMA_X mobilo platjoslas tīklu" + +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "Aktivēt paziņ_ojumus" + +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "Savienojuma _informācija" + +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "Rediģēt savienojumu..." + +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "_Palīdzība" + +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "P_ar" + +#: ../src/applet.c:2335 +msgid "Disconnected" +msgstr "Atvienots" + +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "Tīkla savienojums tika atvienots." + +#: ../src/applet.c:2519 +#, c-format +msgid "Preparing network connection '%s'..." +msgstr "Gatavo tīkla savienojumu “%s”..." + +#: ../src/applet.c:2522 +#, c-format +msgid "User authentication required for network connection '%s'..." +msgstr "Tīkla savienojumam “%s” ir nepieciešama lietotāja autentifikācija..." + +#: ../src/applet.c:2525 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:541 +#: ../src/applet-device-wimax.c:473 +#, c-format +msgid "Requesting a network address for '%s'..." +msgstr "Tiek pieprasīta “%s” tīkla adrese..." + +#: ../src/applet.c:2528 +#, c-format +msgid "Network connection '%s' active" +msgstr "Tīkla savienojums “%s” ir aktīvs" + +#: ../src/applet.c:2611 +#, c-format +msgid "Starting VPN connection '%s'..." +msgstr "Startē VPN savienojumu “%s”..." + +#: ../src/applet.c:2614 +#, c-format +msgid "User authentication required for VPN connection '%s'..." +msgstr "VPN savienojumam “%s” ir nepieciešama lietotāja autentifikācija..." + +#: ../src/applet.c:2617 +#, c-format +msgid "Requesting a VPN address for '%s'..." +msgstr "Tiek pieprasīta “%s” VPN adrese..." + +#: ../src/applet.c:2620 +#, c-format +msgid "VPN connection '%s' active" +msgstr "VPN savienojums “%s” ir aktīvs" + +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "Nav tīkla savienojuma" + +#: ../src/applet.c:3362 +msgid "NetworkManager Applet" +msgstr "NetworkManager sīklietotne" + +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:450 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Pieejams" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:492 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." -msgstr "Ir savienojums ar '%s'." +msgstr "Ir savienojums ar “%s”." -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:496 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Savienojums ir izveidots" -#: ../src/applet-device-bt.c:205 +#: ../src/applet-device-bt.c:204 msgid "You are now connected to the mobile broadband network." msgstr "Ir savienojums ar mobilo platjoslas tīklu." -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." -msgstr "Gatavo mobilā platjoslas savienojumu '%s'..." +msgstr "Gatavo mobilā platjoslas savienojumu “%s”..." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." -msgstr "Konfigurē mobilā platjoslas savienojumu '%s'..." +msgstr "Konfigurē mobilā platjoslas savienojumu “%s”..." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:538 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "" -"Mobilā platjoslas savienojumam '%s' ir nepieciešama lietotāja " +"Mobilā platjoslas savienojumam “%s” ir nepieciešama lietotāja " "autentifikācija..." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 -#: ../src/applet.c:2479 -#, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Tiek pieprasīta '%s' tīkla adrese..." - -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:559 #, c-format msgid "Mobile broadband connection '%s' active" -msgstr "Mobilais platjoslas savienojums '%s' ir aktīvs" +msgstr "Mobilais platjoslas savienojums “%s” ir aktīvs" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:714 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 -#: ../src/applet-dialogs.c:430 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:396 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Mobilais platjoslas tīkls (%s)" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:398 +#: ../src/connection-editor/new-connection.c:87 +#: ../src/connection-editor/page-mobile.c:388 msgid "Mobile Broadband" msgstr "Mobilā platjosla" #. Default connection item -#: ../src/applet-device-cdma.c:412 +#: ../src/applet-device-cdma.c:409 msgid "New Mobile Broadband (CDMA) connection..." msgstr "Jauns mobilā platjoslas tīkla (CDMA) savienojums..." -#: ../src/applet-device-cdma.c:446 +#: ../src/applet-device-cdma.c:443 msgid "You are now connected to the CDMA network." msgstr "Ir savienojums ar CDMA tīklu." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:554 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Mobilā platjoslas tīkla savienojums '%s' ir aktīvs: (%d%%%s%s)" +msgstr "Mobilā platjoslas tīkla savienojums “%s” ir aktīvs: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:557 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "viesabonēšana" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 msgid "CDMA network." msgstr "CDMA tīkls." -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1202 msgid "You are now registered on the home network." msgstr "Jūs tagad esat reģistrēts mājas tīklā." -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1208 msgid "You are now registered on a roaming network." msgstr "Jūs tagad esat reģistrēts klejošanas tīklā." -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "Automātisks Ethernet" + +#: ../src/applet-device-ethernet.c:205 +#, fuzzy, c-format +msgid "Ethernet Networks (%s)" +msgstr "Vadu tīkli (%s)" + +#: ../src/applet-device-ethernet.c:207 +#, fuzzy, c-format +msgid "Ethernet Network (%s)" +msgstr "Vadu tīkls (%s)" + +#: ../src/applet-device-ethernet.c:210 +#, fuzzy +msgid "Ethernet Networks" +msgstr "Vadu tīkli" + +#: ../src/applet-device-ethernet.c:212 +#, fuzzy +msgid "Ethernet Network" +msgstr "Vadu tīkls" + +#: ../src/applet-device-ethernet.c:274 +#, fuzzy +msgid "You are now connected to the ethernet network." +msgstr "Ir savienojums ar vadu tīklu." + +#: ../src/applet-device-ethernet.c:300 +#, fuzzy, c-format +msgid "Preparing ethernet network connection '%s'..." +msgstr "Gatavo vadu tīkla savienojumu “%s”..." + +#: ../src/applet-device-ethernet.c:303 +#, fuzzy, c-format +msgid "Configuring ethernet network connection '%s'..." +msgstr "Konfigurē vadu tīklu savienojumu “%s”..." + +#: ../src/applet-device-ethernet.c:306 +#, fuzzy, c-format +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "" +"Vadu tīkla savienojumam “%s” ir nepieciešama lietotāja autentifikācija..." + +#: ../src/applet-device-ethernet.c:309 +#, fuzzy, c-format +msgid "Requesting an ethernet network address for '%s'..." +msgstr "Tiek pieprasīta “%s” vadu tīkla adrese..." + +#: ../src/applet-device-ethernet.c:313 +#, fuzzy, c-format +msgid "Ethernet network connection '%s' active" +msgstr "Vadu tīkla savienojums “%s” ir aktīvs" + +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "DSL autentifikācija" + +#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:717 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" #. Default connection item -#: ../src/applet-device-gsm.c:459 +#: ../src/applet-device-gsm.c:463 msgid "New Mobile Broadband (GSM) connection..." msgstr "Jauns mobilā platjoslas tīkla (GSM) savienojums..." -#: ../src/applet-device-gsm.c:493 +#: ../src/applet-device-gsm.c:497 msgid "You are now connected to the GSM network." msgstr "Ir savienojums ar GSM tīklu." -#: ../src/applet-device-gsm.c:654 +#: ../src/applet-device-gsm.c:658 msgid "PIN code required" msgstr "Ir nepieciešams PIN kods" -#: ../src/applet-device-gsm.c:662 +#: ../src/applet-device-gsm.c:666 msgid "PIN code is needed for the mobile broadband device" msgstr "Mobilā platjoslas tīkla ierīcei ir vajadzīgs PIN kods" -#: ../src/applet-device-gsm.c:783 +#: ../src/applet-device-gsm.c:787 #, c-format msgid "PIN code for SIM card '%s' on '%s'" -msgstr "PIN kods SIM kartei '%s' ierīcē '%s'" +msgstr "PIN kods SIM kartei “%s” ierīcē “%s”" -#: ../src/applet-device-gsm.c:875 +#: ../src/applet-device-gsm.c:879 msgid "Wrong PIN code; please contact your provider." msgstr "Nepareizs PIN kods. Lūdzu, sazinieties ar operatoru." -#: ../src/applet-device-gsm.c:898 +#: ../src/applet-device-gsm.c:902 msgid "Wrong PUK code; please contact your provider." msgstr "Nepareizs PUK kods. Lūdzu, sazinieties ar operatoru." #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 +#: ../src/applet-device-gsm.c:929 msgid "Sending unlock code..." msgstr "Sūta atbloķēšanas kodu..." -#: ../src/applet-device-gsm.c:988 +#: ../src/applet-device-gsm.c:992 msgid "SIM PIN unlock required" msgstr "Ir nepieciešama SIM PIN atbloķēšana" -#: ../src/applet-device-gsm.c:989 +#: ../src/applet-device-gsm.c:993 msgid "SIM PIN Unlock Required" msgstr "Ir nepieciešama SIM PIN atbloķēšana" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 +#: ../src/applet-device-gsm.c:995 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " "used." msgstr "" -"Lai varētu izmantot mobilās platjoslas tīkla iekārtu '%s', ir vajadzīgs SIM " +"Lai varētu izmantot mobilās platjoslas tīkla iekārtu “%s”, ir vajadzīgs SIM " "PIN kods." #. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 +#: ../src/applet-device-gsm.c:997 msgid "PIN code:" msgstr "PIN kods:" #. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 +#: ../src/applet-device-gsm.c:1001 msgid "Show PIN code" msgstr "Rādīt PIN kodu" -#: ../src/applet-device-gsm.c:1000 +#: ../src/applet-device-gsm.c:1004 msgid "SIM PUK unlock required" msgstr "Ir nepieciešama SIM PUK atbloķēšana" -#: ../src/applet-device-gsm.c:1001 +#: ../src/applet-device-gsm.c:1005 msgid "SIM PUK Unlock Required" msgstr "Ir nepieciešama SIM PUK atbloķēšana" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#: ../src/applet-device-gsm.c:1007 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " "used." msgstr "" -"Lai varētu izmantot mobilās platjoslas tīkla iekārtu '%s', ir vajadzīgs SIM " +"Lai varētu izmantot mobilās platjoslas tīkla iekārtu “%s”, ir vajadzīgs SIM " "PUK kods." #. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 +#: ../src/applet-device-gsm.c:1009 msgid "PUK code:" msgstr "PUK kods:" #. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 +#: ../src/applet-device-gsm.c:1012 msgid "New PIN code:" msgstr "Jauns PIN kods:" #. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 +#: ../src/applet-device-gsm.c:1014 msgid "Re-enter new PIN code:" msgstr "Atkal ievadiet jauno PIN kodu:" #. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 +#: ../src/applet-device-gsm.c:1019 msgid "Show PIN/PUK codes" msgstr "Rādīt PIN/PUK kodus" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 +#: ../src/applet-device-gsm.c:1201 ../src/applet-device-gsm.c:1207 msgid "GSM network." msgstr "GSM tīkls." -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "Auto Ethernet" - -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "Vadu tīkli (%s)" - -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "Vadu tīkls (%s)" - -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "Vadu tīkli" - -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "Vadu tīkls" - -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 -#: ../src/applet.c:1485 -msgid "disconnected" -msgstr "atvienots" - -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "Ir savienojums ar vadu tīklu." - -#: ../src/applet-device-wired.c:300 -#, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Gatavo vadu tīkla savienojumu '%s'..." - -#: ../src/applet-device-wired.c:303 -#, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "Konfigurē vadu tīklu savienojumu '%s'..." - -#: ../src/applet-device-wired.c:306 -#, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "" -"Vadu tīkla savienojumam '%s' ir nepieciešama lietotāja autentifikācija..." - -#: ../src/applet-device-wired.c:309 -#, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "Tiek pieprasīta '%s' vadu tīkla adrese..." - -#: ../src/applet-device-wired.c:313 -#, c-format -msgid "Wired network connection '%s' active" -msgstr "Vadu tīkla savienojums '%s' ir aktīvs" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "DSL autentifikācija" - #: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." +#, fuzzy +msgid "_Connect to Hidden Wi-Fi Network..." msgstr "_Savienoties ar slēptu bezvadu tīklu..." -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." +#: ../src/applet-device-wifi.c:148 +#, fuzzy +msgid "Create _New Wi-Fi Network..." msgstr "Izveidot jau_nu bezvadu tīklu..." -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(nav)" -#: ../src/applet-device-wifi.c:803 -#, c-format -msgid "Wireless Networks (%s)" -msgstr "Bezvadu tīkli (%s)" - -#: ../src/applet-device-wifi.c:805 -#, c-format -msgid "Wireless Network (%s)" -msgstr "Bezvadu tīkls (%s)" - -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Bezvadu tīkls" -msgstr[1] "Bezvadu tīkli" -msgstr[2] "Bezvadu tīkli" - -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "bezvadu tīklošana ir atslēgta" - -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "bezvadu tīklošana ir atslēgta ar slēdzi datorā" - -#: ../src/applet-device-wifi.c:902 -msgid "More networks" -msgstr "Vairāk tīklu" - -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" -msgstr "Pieejamie bezvadu tīkli" - -#: ../src/applet-device-wifi.c:1082 -msgid "Use the network menu to connect to a wireless network" -msgstr "Izmantojiet tīkla izvēlni, lai savienotos ar bezvadu tīklu" - -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 -#: ../src/applet.c:901 -msgid "Don't show this message again" -msgstr "Vairs nerādīt šo ziņojumu" - -#: ../src/applet-device-wifi.c:1277 -#, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Ir savienojums ar bezvadu tīklu '%s'." +#: ../src/applet-device-wifi.c:790 +#, fuzzy, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "Vadu tīkli (%s)" -#: ../src/applet-device-wifi.c:1308 -#, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Gatavo bezvadu tīkla savienojumu '%s'..." +#: ../src/applet-device-wifi.c:792 +#, fuzzy, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Vadu tīkls (%s)" -#: ../src/applet-device-wifi.c:1311 -#, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Konfigurē bezvadu tīkla savienojumu '%s'..." +#: ../src/applet-device-wifi.c:794 +#, fuzzy +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Vadu tīkls" +msgstr[1] "Vadu tīkls" +msgstr[2] "Vadu tīkls" + +#: ../src/applet-device-wifi.c:827 +#, fuzzy +msgid "Wi-Fi is disabled" +msgstr "WiMAX ir deaktivēts" + +#: ../src/applet-device-wifi.c:828 +#, fuzzy +msgid "Wi-Fi is disabled by hardware switch" +msgstr "WiMAX ir deaktivēts ar slēdzi datorā" -#: ../src/applet-device-wifi.c:1314 -#, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "" -"Bezvadu tīkla savienojumam '%s' ir nepieciešama lietotāja autentifikācija..." +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "Vairāk tīklu" -#: ../src/applet-device-wifi.c:1317 -#, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Tiek pieprasīta '%s' bezvadu tīkla adrese..." +#: ../src/applet-device-wifi.c:1068 +#, fuzzy +msgid "Wi-Fi Networks Available" +msgstr "Pieejamie bezvadu tīkli" -#: ../src/applet-device-wifi.c:1338 -#, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "Bezvadu tīkla savienojums '%s' ir aktīvs: %s (%d%%)" +#: ../src/applet-device-wifi.c:1069 +#, fuzzy +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Izmantojiet tīkla izvēlni, lai savienotos ar bezvadu tīklu" -#: ../src/applet-device-wifi.c:1343 -#, c-format -msgid "Wireless network connection '%s' active" -msgstr "Bezvadu tīkla savienojums '%s' ir aktīvs" +#: ../src/applet-device-wifi.c:1263 +#, fuzzy, c-format +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Ir savienojums ar bezvadu tīklu “%s”." + +#: ../src/applet-device-wifi.c:1294 +#, fuzzy, c-format +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Gatavo tīkla savienojumu “%s”..." + +#: ../src/applet-device-wifi.c:1297 +#, fuzzy, c-format +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Konfigurē vadu tīklu savienojumu “%s”..." + +#: ../src/applet-device-wifi.c:1300 +#, fuzzy, c-format +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "" +"Bezvadu tīkla savienojumam “%s” ir nepieciešama lietotāja autentifikācija..." + +#: ../src/applet-device-wifi.c:1303 +#, fuzzy, c-format +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Tiek pieprasīta “%s” tīkla adrese..." + +#: ../src/applet-device-wifi.c:1324 +#, fuzzy, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Bezvadu tīkla savienojums “%s” ir aktīvs — %s (%d%%)" + +#: ../src/applet-device-wifi.c:1329 +#, fuzzy, c-format +msgid "Wi-Fi network connection '%s' active" +msgstr "Vadu tīkla savienojums “%s” ir aktīvs" + +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Neizdevās aktivizēt savienojumu" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Neizdevās pievienot jaunu savienojumu" #: ../src/applet-device-wimax.c:231 #, c-format @@ -473,11 +853,11 @@ #: ../src/applet-device-wimax.c:259 msgid "WiMAX is disabled" -msgstr "WiMAX ir atslēgts" +msgstr "WiMAX ir deaktivēts" #: ../src/applet-device-wimax.c:260 msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX ir atslēgts ar slēdzi datorā" +msgstr "WiMAX ir deaktivēts ar slēdzi datorā" #: ../src/applet-device-wimax.c:428 msgid "You are now connected to the WiMAX network." @@ -488,9 +868,9 @@ msgstr "Kļūda, rādot informāciju par savienojumu:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:930 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -498,646 +878,229 @@ msgid "Dynamic WEP" msgstr "Dinamiskais WEP" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:887 msgctxt "Wifi/wired security" msgid "None" msgstr "Nav" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-dialogs.c:277 #, c-format -#| msgid "1 (Default)" msgid "%s (default)" -msgstr "%s (noklusētais)" +msgstr "%s (noklusējuma)" -#: ../src/applet-dialogs.c:347 ../src/applet-dialogs.c:485 -#: ../src/applet-dialogs.c:352 -#: ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:349 ../src/applet-dialogs.c:487 -#: ../src/applet-dialogs.c:354 -#: ../src/applet-dialogs.c:492 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Nezināms" -#: ../src/applet-dialogs.c:362 -#: ../src/applet-dialogs.c:367 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:364 -#: ../src/applet-dialogs.c:369 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "nezināms" -#: ../src/applet-dialogs.c:376 -#: ../src/applet-dialogs.c:381 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "nezināms" -#: ../src/applet-dialogs.c:411 -#: ../src/applet-dialogs.c:416 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Ethernet (%s)" -#: ../src/applet-dialogs.c:414 -#: ../src/applet-dialogs.c:419 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:421 -#: ../src/applet-dialogs.c:426 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:423 -#: ../src/applet-dialogs.c:428 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:427 -#: ../src/applet-dialogs.c:432 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:433 ../src/applet-dialogs.c:792 -#: ../src/applet-dialogs.c:438 -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "Vispārējs" -#: ../src/applet-dialogs.c:437 -#: ../src/applet-dialogs.c:442 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "Saskarne:" -#: ../src/applet-dialogs.c:453 -#: ../src/applet-dialogs.c:458 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "Aparatūras adrese:" #. Driver -#: ../src/applet-dialogs.c:461 -#: ../src/applet-dialogs.c:466 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "Draiveris:" -#: ../src/applet-dialogs.c:490 -#: ../src/applet-dialogs.c:495 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "Ātrums:" -#: ../src/applet-dialogs.c:500 -#: ../src/applet-dialogs.c:505 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "Drošība:" -#: ../src/applet-dialogs.c:513 -#: ../src/applet-dialogs.c:518 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:526 -#: ../src/applet-dialogs.c:531 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:543 -#: ../src/applet-dialogs.c:548 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:554 ../src/applet-dialogs.c:661 -#: ../src/applet-dialogs.c:559 -#: ../src/applet-dialogs.c:666 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP adrese:" -#: ../src/applet-dialogs.c:556 ../src/applet-dialogs.c:572 -#: ../src/applet-dialogs.c:561 -#: ../src/applet-dialogs.c:577 -msgctxt "Address" -msgid "Unknown" -msgstr "Nezināma" - -#: ../src/applet-dialogs.c:570 -#: ../src/applet-dialogs.c:575 -msgid "Broadcast Address:" -msgstr "Apraides adrese:" - -#. Prefix -#: ../src/applet-dialogs.c:579 -#: ../src/applet-dialogs.c:584 -msgid "Subnet Mask:" -msgstr "Apakštīkla maska:" - -#: ../src/applet-dialogs.c:581 -#: ../src/applet-dialogs.c:586 -msgctxt "Subnet Mask" -msgid "Unknown" -msgstr "Nezināma" - -#: ../src/applet-dialogs.c:589 ../src/applet-dialogs.c:676 -#: ../src/applet-dialogs.c:594 -#: ../src/applet-dialogs.c:681 -msgid "Default Route:" -msgstr "Noklusētais maršruts:" - -#: ../src/applet-dialogs.c:601 -#: ../src/applet-dialogs.c:606 -msgid "Primary DNS:" -msgstr "Primārais DNS:" - -#: ../src/applet-dialogs.c:610 -#: ../src/applet-dialogs.c:615 -msgid "Secondary DNS:" -msgstr "Sekundārais DNS:" - -#: ../src/applet-dialogs.c:620 -#: ../src/applet-dialogs.c:625 -msgid "Ternary DNS:" -msgstr "Tercārais DNS:" - -#. --- IPv6 --- -#: ../src/applet-dialogs.c:635 -#: ../src/applet-dialogs.c:640 -msgid "IPv6" -msgstr "IPv6" - -#: ../src/applet-dialogs.c:644 -#: ../src/applet-dialogs.c:649 -msgid "Ignored" -msgstr "Ignorēts" - -#: ../src/applet-dialogs.c:797 -#: ../src/applet-dialogs.c:802 -msgid "VPN Type:" -msgstr "VPN tips:" - -#: ../src/applet-dialogs.c:804 -#: ../src/applet-dialogs.c:809 -msgid "VPN Gateway:" -msgstr "VPN vārteja:" - -#: ../src/applet-dialogs.c:810 -#: ../src/applet-dialogs.c:815 -msgid "VPN Username:" -msgstr "VPN lietotājvārds:" - -#: ../src/applet-dialogs.c:816 -#: ../src/applet-dialogs.c:821 -msgid "VPN Banner:" -msgstr "VPN karogs:" - -#: ../src/applet-dialogs.c:822 -#: ../src/applet-dialogs.c:827 -msgid "Base Connection:" -msgstr "Bāzes savienojums:" - -#: ../src/applet-dialogs.c:824 -#: ../src/applet-dialogs.c:829 -msgid "Unknown" -msgstr "Nezināms" - -#. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 -#: ../src/applet-dialogs.c:892 -msgid "No valid active connections found!" -msgstr "Nav atrastu aktīvu savienojumu!" - -#: ../src/applet-dialogs.c:940 -#: ../src/applet-dialogs.c:945 -msgid "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"and many other community contributors and translators" -msgstr "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"un daudzi citu kopienas izstrādātāji un tulkotāji" - -#: ../src/applet-dialogs.c:943 -#: ../src/applet-dialogs.c:948 -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "" -"Paziņojumu lauka sīklietotne tīkla ierīču un savienojumu pārvaldīšanai." - -#: ../src/applet-dialogs.c:945 -#: ../src/applet-dialogs.c:950 -msgid "NetworkManager Website" -msgstr "NetworkManager tīmekļa vietne" - -#: ../src/applet-dialogs.c:960 -#: ../src/applet-dialogs.c:965 -msgid "Missing resources" -msgstr "Trūkstošie resursi" - -#: ../src/applet-dialogs.c:985 -#: ../src/applet-dialogs.c:990 -msgid "Mobile broadband network password" -msgstr "Mobilās platjoslas tīkla parole" - -#: ../src/applet-dialogs.c:994 -#: ../src/applet-dialogs.c:999 -#, c-format -msgid "A password is required to connect to '%s'." -msgstr "Lai savienotos ar '%s', ir nepieciešama parole." - -#: ../src/applet-dialogs.c:1013 -#: ../src/applet-dialogs.c:1018 -msgid "Password:" -msgstr "Parole:" - -#: ../src/applet.c:995 -#: ../src/applet.c:990 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"VPN savienojums '%s' neizdevās, jo tika pārtraukts tīkla savienojums." - -#: ../src/applet.c:998 -#: ../src/applet.c:993 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"VPN savienojums '%s' neizdevās, jo VPN serviss negaidīti apstājās." - -#: ../src/applet.c:1001 -#: ../src/applet.c:996 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"VPN savienojums '%s' neizdevās, jo VPN serviss atgrieza nederīgu " -"konfigurāciju." - -#: ../src/applet.c:1004 -#: ../src/applet.c:999 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"VPN savienojums '%s' neizdevās, jo savienošanās mēģinājumam iestājās " -"noildze." - -#: ../src/applet.c:1007 -#: ../src/applet.c:1002 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"VPN savienojums '%s' neizdevās, jo VPN serviss laicīgi nepalaidās." - -#: ../src/applet.c:1010 -#: ../src/applet.c:1005 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"VPN savienojums '%s' neizdevās, jo VPN servisam neizdevās palaisties." - -#: ../src/applet.c:1013 -#: ../src/applet.c:1008 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"VPN savienojums '%s' neizdevās, jo nebija derīgu VPN noslēpumu (secrets)." - -#: ../src/applet.c:1016 -#: ../src/applet.c:1011 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"VPN savienojums '%s' neizdevās nederīgu VPN noslēpumu (secrets) dēļ." - -#: ../src/applet.c:1023 -#: ../src/applet.c:1018 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"VPN savienojums '%s' neizdevās." - -#: ../src/applet.c:1041 -#: ../src/applet.c:1036 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"VPN savienojums '%s' atvienojās, jo tika pārtraukts tīkla savienojums." - -#: ../src/applet.c:1044 -#: ../src/applet.c:1039 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"VPN savienojums '%s' atvienojās, jo VPN serviss apstājās." - -#: ../src/applet.c:1050 -#: ../src/applet.c:1045 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"VPN savienojums '%s' atvienojās." - -#: ../src/applet.c:1084 -#: ../src/applet.c:1079 -msgid "VPN Login Message" -msgstr "VPN pieteikšanās ziņojums" - -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 -#: ../src/applet.c:1085 -#: ../src/applet.c:1093 -#: ../src/applet.c:1143 -msgid "VPN Connection Failed" -msgstr "VPN savienojums neizdevās" - -#: ../src/applet.c:1155 -#: ../src/applet.c:1150 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"VPN savienojums '%s' neizdevās, jo VPN servisam neizdevās palaisties.\n" -"\n" -"%s" - -#: ../src/applet.c:1158 -#: ../src/applet.c:1153 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"VPN savienojumam '%s' neizdevās palaisties.\n" -"\n" -"%s" - -#: ../src/applet.c:1478 -#: ../src/applet.c:1473 -msgid "device not ready (firmware missing)" -msgstr "iekārta nav gatava (trūkst aparātprogrammatūras)" - -#: ../src/applet.c:1480 -#: ../src/applet.c:1475 -msgid "device not ready" -msgstr "iekārta nav gatava" - -#: ../src/applet.c:1506 -#: ../src/applet.c:1501 -msgid "Disconnect" -msgstr "Atvienoties" - -#: ../src/applet.c:1520 -#: ../src/applet.c:1515 -msgid "device not managed" -msgstr "ierīce nav pārvaldīta" - -#: ../src/applet.c:1564 -#: ../src/applet.c:1559 -msgid "No network devices available" -msgstr "Nav pieejamu tīkla ierīču" - -#: ../src/applet.c:1652 -#: ../src/applet.c:1647 -msgid "_VPN Connections" -msgstr "_VPN savienojumi" - -#: ../src/applet.c:1709 -#: ../src/applet.c:1704 -msgid "_Configure VPN..." -msgstr "_Konfigurēt VPN..." - -#: ../src/applet.c:1713 -#: ../src/applet.c:1708 -msgid "_Disconnect VPN" -msgstr "_Atvienot VPN..." - -#: ../src/applet.c:1811 -#: ../src/applet.c:1806 -msgid "NetworkManager is not running..." -msgstr "NetworkManager nav palaists..." - -#: ../src/applet.c:1816 ../src/applet.c:2609 -#: ../src/applet.c:1811 -#: ../src/applet.c:2604 -msgid "Networking disabled" -msgstr "Tīklošana atslēgta" - -#. 'Enable Networking' item -#: ../src/applet.c:2037 -#: ../src/applet.c:2032 -msgid "Enable _Networking" -msgstr "Ieslēgt tīkloša_nu" - -#. 'Enable Wireless' item -#: ../src/applet.c:2046 -#: ../src/applet.c:2041 -msgid "Enable _Wireless" -msgstr "Ieslēgt bez_vadu tīklošana" - -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 -#: ../src/applet.c:2050 -msgid "Enable _Mobile Broadband" -msgstr "Ieslēgt _mobilo platjoslas tīklu" - -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 -#: ../src/applet.c:2059 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Ieslēgt WiMA_X mobilo platjoslas tīklu" - -#. Toggle notifications item -#: ../src/applet.c:2075 -#: ../src/applet.c:2070 -msgid "Enable N_otifications" -msgstr "Ieslēgt paziņ_ojumus" +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "Nezināma" -#. 'Connection Information' item -#: ../src/applet.c:2086 -#: ../src/applet.c:2081 -msgid "Connection _Information" -msgstr "Savienojuma _informācija" +#: ../src/applet-dialogs.c:569 +msgid "Broadcast Address:" +msgstr "Apraides adrese:" -#. 'Edit Connections...' item -#: ../src/applet.c:2096 -#: ../src/applet.c:2091 -msgid "Edit Connections..." -msgstr "Rediģēt savienojumu..." +#. Prefix +#: ../src/applet-dialogs.c:578 +msgid "Subnet Mask:" +msgstr "Apakštīkla maska:" -#. Help item -#: ../src/applet.c:2110 -#: ../src/applet.c:2105 -msgid "_Help" -msgstr "_Palīdzība" +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Nezināma" -#. About item -#: ../src/applet.c:2119 -#: ../src/applet.c:2114 -msgid "_About" -msgstr "P_ar" +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 +msgid "Default Route:" +msgstr "Noklusējuma maršruts:" -#: ../src/applet.c:2296 -#: ../src/applet.c:2291 -msgid "Disconnected" -msgstr "Atvienots" +#: ../src/applet-dialogs.c:600 +msgid "Primary DNS:" +msgstr "Primārais DNS:" -#: ../src/applet.c:2297 -#: ../src/applet.c:2292 -msgid "The network connection has been disconnected." -msgstr "Tīkla savienojums tika atvienots." +#: ../src/applet-dialogs.c:609 +msgid "Secondary DNS:" +msgstr "Sekundārais DNS:" -#: ../src/applet.c:2478 -#: ../src/applet.c:2473 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Gatavo tīkla savienojumu '%s'..." +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "Tercārais DNS:" -#: ../src/applet.c:2481 -#: ../src/applet.c:2476 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Tīkla savienojumam '%s' ir nepieciešama lietotāja autentifikācija..." +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" -#: ../src/applet.c:2487 -#: ../src/applet.c:2482 -#, c-format -msgid "Network connection '%s' active" -msgstr "Tīkla savienojums '%s' ir aktīvs" +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "Ignorēts" -#: ../src/applet.c:2565 -#: ../src/applet.c:2560 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Startē VPN savienojumu '%s'..." +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "VPN tips:" -#: ../src/applet.c:2568 -#: ../src/applet.c:2563 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "VPN savienojumam '%s' ir nepieciešama lietotāja autentifikācija..." +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "VPN vārteja:" -#: ../src/applet.c:2571 -#: ../src/applet.c:2566 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Tiek pieprasīta '%s' VPN adrese..." +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "VPN lietotājvārds:" -#: ../src/applet.c:2574 -#: ../src/applet.c:2569 -#, c-format -msgid "VPN connection '%s' active" -msgstr "VPN savienojums '%s' ir aktīvs" +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "VPN karogs:" -#: ../src/applet.c:2613 -#: ../src/applet.c:2608 -msgid "No network connection" -msgstr "Nav tīkla savienojuma" +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Bāzes savienojums:" -#: ../src/applet.c:3263 -#: ../src/applet.c:3258 -msgid "NetworkManager Applet" -msgstr "NetworkManager sīklietotne" +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "Nezināms" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Automātiski atslēgt šo ierīci" +#. Shouldn't really happen but ... +#: ../src/applet-dialogs.c:886 +msgid "No valid active connections found!" +msgstr "Nav atrastu aktīvu savienojumu!" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "_Atbloķēt" +#: ../src/applet-dialogs.c:939 +msgid "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" +msgstr "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"un daudzi citu kopienas izstrādātāji un tulkotāji" -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "Savienojuma informācija" +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"Paziņojumu lauka sīklietotne tīkla ierīču un savienojumu pārvaldīšanai." -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "Aktīvi tīkla savienojumi" +#: ../src/applet-dialogs.c:944 +msgid "NetworkManager Website" +msgstr "NetworkManager tīmekļa vietne" -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Vadu 802.1X autentifikācija" +#: ../src/applet-dialogs.c:959 +msgid "Missing resources" +msgstr "Trūkstošie resursi" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "Tīkla _nosaukums:" +#: ../src/applet-dialogs.c:984 +msgid "Mobile broadband network password" +msgstr "Mobilās platjoslas tīkla parole" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "automātiski" +#: ../src/applet-dialogs.c:993 +#, c-format +msgid "A password is required to connect to '%s'." +msgstr "Lai savienotos ar “%s”, ir nepieciešama parole." -#: ../src/connection-editor/ce-page.c:310 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "" -"Nezināmas kļūdas dēļ, neizdevās atjaunināt savienojuma noslēpumus (secrets)." +#: ../src/applet-dialogs.c:1012 +msgid "Password:" +msgstr "Parole:" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 @@ -1147,7 +1110,7 @@ "IP addresses identify your computer on the network. Click the \"Add\" " "button to add an IP address." msgstr "" -"IP adrese identificē datoru tīklā. Spiediet \"Pievienot\", lai pievienotu IP " +"IP adrese identificē datoru tīklā. Spiediet “Pievienot”, lai pievienotu IP " "adresi." #: ../src/connection-editor/ce-ip4-routes.ui.h:2 @@ -1157,7 +1120,6 @@ #: ../src/connection-editor/ce-ip4-routes.ui.h:3 #: ../src/connection-editor/ce-ip6-routes.ui.h:3 -#| msgid "Use this c_onnection only for resources on its network" msgid "_Use this connection only for resources on its network" msgstr "Izmant_ot šo savienojumu tikai šī tīkla resursiem" @@ -1167,16 +1129,151 @@ "If enabled, this connection will never be used as the default network " "connection." msgstr "" -"Ja ieslēgts, šis savienojums nekad netiks izmantots kā noklusētais tīkla " +"Ja aktivēts, šis savienojums nekad netiks izmantots kā noklusējuma tīkla " "savienojums." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +#, fuzzy +msgid "Choose a Connection Type" +msgstr "Izvēlieties VPN savienojumu veidu" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +#, fuzzy +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"Izvēlieties jaunā VPN savienojuma veidu. Ja sarakstā nav pieejams jums VPN " +"vajadzīgais VPN savienojuma veids, iespējams, ka nav uzstādīts vajadzīgais " +"VPN spraudnis." + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Izveidot…" + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "automātiski" + +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "" +"Nezināmas kļūdas dēļ, neizdevās atjaunināt savienojuma noslēpumus (secrets)." + +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:4 +#, fuzzy +msgid "Broadcast" +msgstr "Apraides adrese:" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:9 +#, fuzzy +msgid "ARP" +msgstr "EAP" + +#: ../src/connection-editor/ce-page-bond.ui.h:10 +#, fuzzy +msgid "Bonded _connections:" +msgstr "Bāzes savienojums:" + +#: ../src/connection-editor/ce-page-bond.ui.h:11 +#, fuzzy +msgid "_Mode:" +msgstr "R_ežīms:" + +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "R_ediģēt" + +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "_Dzēst" + +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:16 +#, fuzzy +msgid "_Interface name:" +msgstr "Saskarne:" + +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "" +"An IP address, or a comma-separated list of IP addresses, to look for when " +"checking the link status." +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "" + +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "" + #: ../src/connection-editor/ce-page-dsl.ui.h:1 -#: ../src/connection-editor/ce-page-mobile.ui.h:8 +#: ../src/connection-editor/ce-page-mobile.ui.h:10 #: ../src/wireless-security/eap-method-leap.ui.h:1 #: ../src/wireless-security/eap-method-simple.ui.h:1 #: ../src/wireless-security/ws-leap.ui.h:1 msgid "_Username:" -msgstr "_Lietotāja vārds:" +msgstr "_Lietotājvārds:" #: ../src/connection-editor/ce-page-dsl.ui.h:2 msgid "_Service:" @@ -1192,7 +1289,7 @@ msgstr "_Rādīt paroli" #: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/connection-editor/ce-page-mobile.ui.h:11 #: ../src/wireless-security/eap-method-leap.ui.h:2 #: ../src/wireless-security/eap-method-simple.ui.h:2 #: ../src/wireless-security/ws-leap.ui.h:2 @@ -1200,15 +1297,113 @@ msgid "_Password:" msgstr "_Parole:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 #: ../src/connection-editor/ce-page-ip4.ui.h:1 #: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 #: ../src/connection-editor/page-ip6.c:142 #: ../src/wireless-security/eap-method-peap.ui.h:2 msgid "Automatic" msgstr "Automātiski" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Vītais pāris (TP)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Piesaistes bloka saskarne (AUI)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "No vides neatkarīga saskarne (MII)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Ports:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "Ātrum_s:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Pilns duple_ks" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "Aut_omātiski vienoties" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "Ierīces _MAC adrese:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "K_lonēta MAC adrese:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"Šeit ievadītās MAC adreses tiks izmantotas kā aparatūras adreses tīkla " +"ierīcei, uz kuras ir aktīvs šis savienojums. Šī iespēja ir pazīstama kā MAC " +"klonēšana jeb viltošana. Piemērs: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "baiti" + +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +#, fuzzy +msgid "Connected" +msgstr "Savien_oties" + #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 msgid "Automatic with manual DNS settings" @@ -1219,7 +1414,7 @@ #: ../src/connection-editor/page-ip4.c:169 #: ../src/connection-editor/page-ip6.c:191 msgid "Manual" -msgstr "Pašrocīgs" +msgstr "Pašrocīgi" #: ../src/connection-editor/ce-page-ip4.ui.h:4 #: ../src/connection-editor/ce-page-ip6.ui.h:4 @@ -1268,12 +1463,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 -#| msgid "_Search domains:" +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" -msgstr "_Meklēšanas domēni:" +msgstr "M_eklēšanas domēni:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_DNS serveri:" @@ -1283,11 +1481,10 @@ "IP addresses of domain name servers used to resolve host names. Use commas " "to separate multiple domain name server addresses." msgstr "" -"DNS (domēnu vārdu serveru) adreses, kuras izmantot, meklējot datoru vārdus. " -"Vairākas DNS adreses atdaliet ar komatu." +"DNS (domēnu nosaukumu serveru) adreses, kuras izmantot, meklējot datoru " +"nosaukumus. Vairākas DNS adreses atdaliet ar komatu." #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#| msgid "Require IPv4 addressing for this connection to complete" msgid "Require IPv_4 addressing for this connection to complete" msgstr "Šī savienojuma pabeigšanai nepieciešama IPv4 adresācija" @@ -1306,7 +1503,6 @@ msgstr "Marš_ruti…" #: ../src/connection-editor/ce-page-ip6.ui.h:13 -#| msgid "Require IPv6 addressing for this connection to complete" msgid "Require IPv_6 addressing for this connection to complete" msgstr "Šī savienojuma pabeigšanai nepieciešama IPv6 adresācija" @@ -1340,45 +1536,52 @@ msgstr "Dot priekšroku 2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 +#, fuzzy +msgid "Prefer 4G (LTE)" +msgstr "Dot priekšroku 3G (UMTS/HSPA)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:7 +msgid "Use only 4G (LTE)" +msgstr "" + +#: ../src/connection-editor/ce-page-mobile.ui.h:8 msgid "Basic" msgstr "Vienkāršs" -#: ../src/connection-editor/ce-page-mobile.ui.h:7 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "Nu_murs:" -#: ../src/connection-editor/ce-page-mobile.ui.h:10 +#: ../src/connection-editor/ce-page-mobile.ui.h:12 msgid "Advanced" msgstr "Paplašināti" -#: ../src/connection-editor/ce-page-mobile.ui.h:11 +#: ../src/connection-editor/ce-page-mobile.ui.h:13 msgid "_APN:" msgstr "_APN:" -#: ../src/connection-editor/ce-page-mobile.ui.h:12 +#: ../src/connection-editor/ce-page-mobile.ui.h:14 msgid "N_etwork ID:" msgstr "_Tīkla ID:" -#: ../src/connection-editor/ce-page-mobile.ui.h:13 +#: ../src/connection-editor/ce-page-mobile.ui.h:15 #: ../src/wireless-security/ws-wpa-psk.ui.h:2 msgid "_Type:" msgstr "_Tips:" -#: ../src/connection-editor/ce-page-mobile.ui.h:14 +#: ../src/connection-editor/ce-page-mobile.ui.h:16 msgid "Change..." msgstr "Mainīt..." -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#| msgid "PI_N:" +#: ../src/connection-editor/ce-page-mobile.ui.h:17 msgid "P_IN:" msgstr "PI_N:" -#: ../src/connection-editor/ce-page-mobile.ui.h:16 -#| msgid "Allow roaming if home network is not available" +#: ../src/connection-editor/ce-page-mobile.ui.h:18 msgid "Allow _roaming if home network is not available" msgstr "Atļaut _viesabonēšanu, ja mājas tīkls nav pieejams" -#: ../src/connection-editor/ce-page-mobile.ui.h:17 +#: ../src/connection-editor/ce-page-mobile.ui.h:19 msgid "Sho_w passwords" msgstr "_Rādīt paroles" @@ -1404,7 +1607,7 @@ #: ../src/connection-editor/ce-page-ppp.ui.h:6 msgid "_Require 128-bit encryption" -msgstr "Piep_rasīt 128-bit šifrēšanu" +msgstr "Piep_rasīt 128 bitu šifrēšanu" #: ../src/connection-editor/ce-page-ppp.ui.h:7 msgid "Use _stateful MPPE" @@ -1412,15 +1615,15 @@ #: ../src/connection-editor/ce-page-ppp.ui.h:8 msgid "Allow _BSD data compression" -msgstr "Atļaut _BSD datu kompresiju" +msgstr "Atļaut _BSD datu saspiešanu" #: ../src/connection-editor/ce-page-ppp.ui.h:9 msgid "Allow _Deflate data compression" -msgstr "Atļaut _Deflate datu kompresiju" +msgstr "Atļaut _Deflate datu saspiešanu" #: ../src/connection-editor/ce-page-ppp.ui.h:10 msgid "Use TCP _header compression" -msgstr "Izmantot TCP _galvenes kompresiju" +msgstr "Izmantot TCP _galvenes saspiešanu" #: ../src/connection-editor/ce-page-ppp.ui.h:11 msgid "Echo" @@ -1430,153 +1633,71 @@ msgid "Send PPP _echo packets" msgstr "Sūtīt PPP atbalss pak_eti" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "Vītais pāris (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "Piesaistes bloka saskarne (AUI)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "No vides neatkarīga saskarne (MII)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "_Ports:" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "Ātrum_s:" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "Pilns duple_ks" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "Aut_omātiski vienoties" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "Ierīces _MAC adrese:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -#| msgid "_Cloned MAC address:" -msgid "C_loned MAC address:" -msgstr "Klonēta MA_C adrese:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"Šeit ievadītās MAC adreses tiks izmantotas kā aparatūras adreses tīkla " -"ierīcei, uz kuras ir aktīvs šis savienojums. Šī iespēja ir pazīstama kā MAC " -"klonēšana jeb viltošana. Piemērs: 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -#| msgid "MT_U:" -msgid "_MTU:" -msgstr "MT_U:" - -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "baiti" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "_Drošība:" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Infrastruktūra" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "Ekspromta" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "mW" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "Pārraides ja_uda:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "Āt_rums:" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +#, fuzzy msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" "Šī opcija piesaista savienojumu noteiktam bezvadu tīklam pieejas punktam " "(AP), kuru raksturo BSSID, kuru ievada šeit. Piemērs: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "_Kanāls:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "_Josla:" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "R_ežīms:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 -#| msgid "_SSID:" +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "_SSID:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -#| msgid "Security:" -msgid "S_ecurity:" -msgstr "_Drošība:" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Atļautās autentificēšanas metodes" @@ -1627,86 +1748,351 @@ "methods. If connections fail, try disabling support for some methods." msgstr "" "Vairumā gadījumu PPP serveru pakalpojuma sniedzējs atbalstīs visas " -"autentifikācijas metodes. Ja neizdodas savienoties, pamēģiniet atslēgt dažu " -"metožu atbalstu." +"autentifikācijas metodes. Ja neizdodas savienoties, pamēģiniet deaktivēt " +"dažu metožu atbalstu." + +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Adrese" + +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Tīkla maska" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Vārteja" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Metrika" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Prefikss" + +#: ../src/connection-editor/new-connection.c:77 +#: ../src/connection-editor/page-ethernet.c:272 +#, fuzzy +msgid "Ethernet" +msgstr "Automātisks Ethernet" + +#: ../src/connection-editor/new-connection.c:82 +#: ../src/connection-editor/page-wifi.c:460 +msgid "Wi-Fi" +msgstr "" + +#: ../src/connection-editor/new-connection.c:92 +#: ../src/connection-editor/page-wimax.c:155 ../src/mb-menu-item.c:75 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:97 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:102 +#: ../src/connection-editor/page-infiniband.c:191 +msgid "InfiniBand" +msgstr "" + +#: ../src/connection-editor/new-connection.c:107 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "" + +#: ../src/connection-editor/new-connection.c:119 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:252 +#, fuzzy +msgid "Import a saved VPN configuration..." +msgstr "Eksportē VPN savienojumu..." + +#: ../src/connection-editor/new-connection.c:274 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"Nevarēja inicializēt savienojumu redaktora dialoglodziņu, jo gadījās " +"nezināma kļūda." + +#: ../src/connection-editor/new-connection.c:283 +msgid "Could not create new connection" +msgstr "Nevarēja izveidot jaunu savienojumu" + +#: ../src/connection-editor/new-connection.c:419 +msgid "Connection delete failed" +msgstr "Neizdevās izdzēst savienojumu" + +#: ../src/connection-editor/new-connection.c:466 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Vai tiešām vēlaties dzēst savienojumu %s?" + +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "Rediģēt %s" + +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "Rediģēt nenosauktus savienojumus" + +#: ../src/connection-editor/nm-connection-editor.c:301 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"Savienojumu redaktors nevarēja atrast dažus vajadzīgos resursus (.ui datne " +"netika atrasta)." + +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "_Saglabāt" + +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "Saglabāt jebkuras izmaiņas, kas veiktas ar šo savienojumu." + +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "_Saglabāt..." + +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "" +"Autentificējieties, lai saglabātu šo savienojumu viesiem šī datora " +"lietotājiem." + +#: ../src/connection-editor/nm-connection-editor.c:447 +#, fuzzy +msgid "Could not create connection" +msgstr "Nevarēja izveidot jaunu savienojumu" + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "Nevarēja rediģēt savienojumu" + +#: ../src/connection-editor/nm-connection-editor.c:449 +#, fuzzy +msgid "Unknown error creating connection editor dialog." +msgstr "Kļūda, veidojot savienojuma redaktora dialoglodziņu." + +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "Kļūda, saglabājot savienojumu" + +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Īpašība “%s” / “%s” ir nederīga — %d" + +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "Kļūda, inicializējot redaktoru" + +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "Neizdevās pievienot savienojumu" + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "Savienojuma _nosaukums:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "Savienoties _automātiski" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "Pieejams _visiem lietotajiem" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +#, fuzzy +msgid "_Export..." +msgstr "E_ksportēt" + +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "nekad" + +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "tagad" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "Pirms %d minūtes" +msgstr[1] "Pirms %d minūtēm" +msgstr[2] "Pirms %d minūtēm" + +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "Pirms %d stundas" +msgstr[1] "Pirms %d stundām" +msgstr[2] "Pirms %d stundām" + +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "Pirms %d dienas" +msgstr[1] "Pirms %d dienām" +msgstr[2] "Pirms %d dienām" + +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "Pirms %d mēneša" +msgstr[1] "Pirms %d mēnešiem" +msgstr[2] "Pirms %d mēnešiem" + +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "Pirms %d gada" +msgstr[1] "Pirms %d gadiem" +msgstr[2] "Pirms %d gadiem" + +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "Nosaukums" + +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "Iepriekš lietotās" + +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "Rediģēt izvēlētos savienojumus" + +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "R_ediģēt..." + +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "Autentificējieties, lai rediģētu izvēlētos savienojumus" + +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "Dzēst izvēlētos savienojumus" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "_Dzēst..." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "Autentificējieties, lai dzēstu izvēlētos savienojumus" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Izvēlieties VPN savienojumu veidu" +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "Kļūda, veidojot savienojumu" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" -"Izvēlieties jaunā VPN savienojuma veidu. Ja sarakstā nav pieejams jums VPN " -"vajadzīgais VPN savienojuma veids, iespējams, ka nav uzstādīts vajadzīgais " -"VPN spraudnis." +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Nezina, kā izveidot “%s” savienojumus" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "Izveidot…" +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "Kļūda, rediģējot savienojumu" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -#: ../src/connection-editor/page-ip4.c:901 -#: ../src/connection-editor/page-ip6.c:867 -msgid "Address" -msgstr "Adrese" +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Neatrada savienojumu ar UUID “%s”" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -#: ../src/connection-editor/page-ip4.c:918 -msgid "Netmask" -msgstr "Tīkla maska" +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "802.1x drošība" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -#: ../src/connection-editor/page-ip4.c:935 -#: ../src/connection-editor/page-ip6.c:901 -msgid "Gateway" -msgstr "Vārteja" +#: ../src/connection-editor/page-8021x-security.c:122 +#, fuzzy +msgid "Could not load 802.1x Security user interface." +msgstr "Nevarēja ielādēt bezvadu tīkla drošības lietotāja saskarni." -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Metrika" +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "Šim savienojumam izmantot 802.1_X drošību" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -#: ../src/connection-editor/page-ip6.c:884 -msgid "Prefix" -msgstr "Prefikss" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:749 +#, fuzzy +msgid "Could not load bond user interface." +msgstr "Nevarēja ielādēt vadu tīkla lietotāja saskarni." + +#: ../src/connection-editor/page-bond.c:909 +#, fuzzy, c-format +msgid "Bond connection %d" +msgstr "Vadu tīkla savienojums %d" -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-dsl.c:142 msgid "Could not load DSL user interface." msgstr "Nevarēja ielādēt DSL lietotāja saskarni." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:234 #, c-format msgid "DSL connection %d" msgstr "DSL savienojums %d" +#: ../src/connection-editor/page-ethernet.c:90 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Šī opcija piesaista savienojumu noteiktai tīkla ierīcei, kuru raksturo " +"pastāvīga MAC adrese, kuru ievada šeit. Piemērs: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:274 +#, fuzzy +msgid "Could not load ethernet user interface." +msgstr "Nevarēja ielādēt vadu tīkla lietotāja saskarni." + +#: ../src/connection-editor/page-ethernet.c:450 +#, fuzzy, c-format +msgid "Ethernet connection %d" +msgstr "Vadu tīkla savienojums %d" + +#: ../src/connection-editor/page-infiniband.c:194 +#, fuzzy +msgid "Could not load InfiniBand user interface." +msgstr "Nevarēja ielādēt bezvadu lietotāja saskarni." + +#: ../src/connection-editor/page-infiniband.c:319 +#, fuzzy, c-format +msgid "InfiniBand connection %d" +msgstr "Vadu tīkla savienojums %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1752,20 +2138,28 @@ #: ../src/connection-editor/page-ip4.c:197 msgid "Disabled" -msgstr "Atslēgts" +msgstr "Deaktivēts" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Papildu _DNS serveri:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Papildu m_eklēšanas domēni:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Rediģē %s IPv4 maršrutus" -#: ../src/connection-editor/page-ip4.c:981 -#: ../src/connection-editor/page-ip4.c:982 +#: ../src/connection-editor/page-ip4.c:993 msgid "IPv4 Settings" msgstr "IPv4 iestatījumi" -#: ../src/connection-editor/page-ip4.c:983 -#: ../src/connection-editor/page-ip4.c:984 +#: ../src/connection-editor/page-ip4.c:995 msgid "Could not load IPv4 user interface." msgstr "Nevarēja ielādēt IPv4 lietotāja saskarni." @@ -1774,7 +2168,7 @@ msgstr "Automātiski, tikai adreses" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ignorēt" @@ -1782,390 +2176,109 @@ msgid "Automatic, DHCP only" msgstr "Automātiski, tikai DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Rediģē %s IPv6 maršrutus" -#: ../src/connection-editor/page-ip6.c:945 -#: ../src/connection-editor/page-ip6.c:946 +#: ../src/connection-editor/page-ip6.c:957 msgid "IPv6 Settings" msgstr "IPv6 iestatījumi" -#: ../src/connection-editor/page-ip6.c:947 -#: ../src/connection-editor/page-ip6.c:948 +#: ../src/connection-editor/page-ip6.c:959 msgid "Could not load IPv6 user interface." msgstr "Nevarēja ielādēt IPv6 lietotāja saskarni." -#: ../src/connection-editor/page-mobile.c:381 +#: ../src/connection-editor/page-mobile.c:390 msgid "Could not load mobile broadband user interface." msgstr "Nevarēja ielādēt mobilā platjoslas tīkla lietotāja saskarni." -#: ../src/connection-editor/page-mobile.c:398 +#: ../src/connection-editor/page-mobile.c:407 msgid "Unsupported mobile broadband connection type." msgstr "Neatbalstīts mobilā platjoslas tīkla savienojuma veids." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:657 msgid "Select Mobile Broadband Provider Type" -msgstr "Izvēlieties mobilā savienojuma piegādātāja veids" +msgstr "Izvēlieties mobilā savienojuma piegādātāja veidu" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:692 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." msgstr "" -"Izvēlieties tehnoloģiju, kuru izmanto jūsu mobilā platjoslas tīkla " -"piegādātājs. Ja neesat pārliecināts, jautājiet piegādātājam." - -#: ../src/connection-editor/page-mobile.c:679 -msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "" -"Mans operators izmanto _GSM tehnoloģiju (piem. GPRS, EDGE, UMTS, HSDPA)" - -#: ../src/connection-editor/page-mobile.c:686 -msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "Mans operators izmanto C_DMA tehnoloģiju (piem., 1xRTT, EVDO)" - -#: ../src/connection-editor/page-ppp.c:134 -msgid "EAP" -msgstr "EAP" - -#: ../src/connection-editor/page-ppp.c:135 -#: ../src/wireless-security/eap-method-ttls.c:230 -msgid "PAP" -msgstr "PAP" - -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:280 -msgid "CHAP" -msgstr "CHAP" - -#: ../src/connection-editor/page-ppp.c:137 -#: ../src/wireless-security/eap-method-fast.c:277 -#: ../src/wireless-security/eap-method-peap.c:246 -#: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "neviens" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Rediģē PPP autentifikācijas metodes %s" - -#: ../src/connection-editor/page-ppp.c:282 -#: ../src/connection-editor/page-ppp.c:283 -msgid "PPP Settings" -msgstr "PPP iestatījumi" - -#: ../src/connection-editor/page-ppp.c:284 -#: ../src/connection-editor/page-ppp.c:285 -msgid "Could not load PPP user interface." -msgstr "Nevarēja ielādēt PPP lietotāja saskarni." - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "Nevarēja ielādēt VPN lietotāja saskarni." - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "Nevarēja atrast VPN spraudņa servisu '%s'" - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 -#, c-format -msgid "VPN connection %d" -msgstr "VPN savienojums %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"Šī opcija piesaista savienojumu noteiktai tīkla ierīcei, kuru raksturo " -"pastāvīga MAC adrese, kuru ievada šeit. Piemērs: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 -msgid "Wired" -msgstr "Vadu" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "Nevarēja ielādēt vadu tīkla lietotāja saskarni." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Vadu tīkla savienojums %d" - -#: ../src/connection-editor/page-wired-security.c:116 -msgid "802.1x Security" -msgstr "802.1x drošība" - -#: ../src/connection-editor/page-wired-security.c:118 -msgid "Could not load Wired Security security user interface." -msgstr "Nevarēja ielādēt WiFi drošības lietotāja saskarni." - -#: ../src/connection-editor/page-wired-security.c:136 -#| msgid "Use 802.1X security for this connection" -msgid "Use 802.1_X security for this connection" -msgstr "Šim savienojumam izmantot 802.1_X drošību" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "noklusētais" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 -msgid "Wireless" -msgstr "Bezvadu tīkls" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "Nevarēja ielādēt WiFi lietotāja saskarni." - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Bezvadu tīkla savienojums %d" - -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "WEP 40/128-bitu atslēga (Hex vai ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 -msgid "WEP 128-bit Passphrase" -msgstr "WEP 128-bitu parole" - -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 -msgid "Dynamic WEP (802.1x)" -msgstr "Dinamiskais WEP (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 -msgid "WPA & WPA2 Personal" -msgstr "WPA & WPA2 Personal" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA & WPA2 Enterprise" - -#: ../src/connection-editor/page-wireless-security.c:360 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"Nevarēja ielādēt WiFi drošības lietotāja saskarni - pietrūkst WiFi " -"iestatījumu." - -#: ../src/connection-editor/page-wireless-security.c:370 -msgid "Wireless Security" -msgstr "Bezvadu tīkla drošība" - -#: ../src/connection-editor/page-wireless-security.c:372 -msgid "Could not load WiFi security user interface." -msgstr "Nevarēja ielādēt WiFi drošības lietotāja saskarni." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Rediģēt %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Rediģēt nenosauktus savienojumus" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"Savienojumu redaktors nevarēja atrast dažus vajadzīgos resursus (.ui fails " -"netika atrasts)." - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "Kļūda, veidojot savienojuma redaktora dialogu." - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "_Saglabāt" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "Saglabāt jebkuras izmaiņas, kas veiktas ar šo savienojumu." - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "_Saglabāt..." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "" -"Autentificējieties, lai saglabātu šo savienojumu viesiem šī datora " -"lietotājiem." - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "_Importēt" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "E_ksportēt" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "Savienojuma _nosaukums:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "Savienoties _automātiski" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Pieejams visiem lietotajiem" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "nekad" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "tagad" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "Pirms %d minūtes" -msgstr[1] "Pirms %d minūtēm" -msgstr[2] "Pirms %d minūtēm" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "Pirms %d stundas" -msgstr[1] "Pirms %d stundām" -msgstr[2] "Pirms %d stundām" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "Pirms %d dienas" -msgstr[1] "Pirms %d dienām" -msgstr[2] "Pirms %d dienām" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "Pirms %d mēneša" -msgstr[1] "Pirms %d mēnešiem" -msgstr[2] "Pirms %d mēnešiem" +"Izvēlieties tehnoloģiju, kuru izmanto mobilā platjoslas tīkla piegādātājs. " +"Ja neesat pārliecināts, jautājiet piegādātājam." -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "Pirms %d gada" -msgstr[1] "Pirms %d gadiem" -msgstr[2] "Pirms %d gadiem" +#: ../src/connection-editor/page-mobile.c:697 +msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" +msgstr "" +"Mans operators izmanto _GSM tehnoloģiju (piemēram, GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Neizdevās pievienot savienojumu" +#: ../src/connection-editor/page-mobile.c:704 +msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" +msgstr "Mans operators izmanto C_DMA tehnoloģiju (piemēram, 1xRTT, EVDO)" -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Kļūda, saglabājot savienojumu" +#: ../src/connection-editor/page-ppp.c:134 +msgid "EAP" +msgstr "EAP" -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "Rekvizīts '%s' / '%s' ir nederīgs: %d" +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 +msgid "PAP" +msgstr "PAP" -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Gadījās nezināma kļūda." +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Kļūda, inicializējot redaktoru" +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "" -"Nevarēja inicializēt savienojumu redaktora dialogu, jo gadījās nezināma " -"kļūda." +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Nevarēja izveidot jaunu savienojumu" +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "neviena" + +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Rediģē %s PPP autentifikācijas metodes" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Nevarēja rediģēt jaunu savienojumu" +#: ../src/connection-editor/page-ppp.c:283 +msgid "PPP Settings" +msgstr "PPP iestatījumi" -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "Nevarēja rediģēt savienojumu" +#: ../src/connection-editor/page-ppp.c:285 +msgid "Could not load PPP user interface." +msgstr "Nevarēja ielādēt PPP lietotāja saskarni." -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Neizdevās izdzēst savienojumu" +#: ../src/connection-editor/page-vpn.c:114 +msgid "Could not load VPN user interface." +msgstr "Nevarēja ielādēt VPN lietotāja saskarni." -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:129 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Vai tiešām vēlaties dzēst savienojumu %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "Nevarēja atrast VPN spraudņa servisu “%s”" -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 -msgid "Cannot import VPN connection" -msgstr "Nevar importēt VPN savienojumu" +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 +#, c-format +msgid "VPN connection %d" +msgstr "VPN savienojums %d" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/page-vpn.c:249 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2173,83 +2286,107 @@ msgstr "" "VPN spraudnim neizdevās pareizi importēt VPN savienojumu\n" "\n" -"Kļūda: nav VPN servisa tips." - -#: ../src/connection-editor/nm-connection-list.c:945 -msgid "Could not edit imported connection" -msgstr "Nevar rediģēt importētos savienojumus" +"Kļūda — nav VPN servisa tips." -#: ../src/connection-editor/nm-connection-list.c:1126 -msgid "Name" -msgstr "Nosaukums" - -#: ../src/connection-editor/nm-connection-list.c:1138 -msgid "Last Used" -msgstr "Iepriekš lietotās" +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "Izvēlieties VPN savienojumu veidu" -#: ../src/connection-editor/nm-connection-list.c:1264 -msgid "No VPN plugin available. Please install one to enable this button." +#: ../src/connection-editor/page-vpn.c:275 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." msgstr "" -"Nav pieejams neviens VPN spraudnis. Lūdzu, uzinstalējiet to, lai aktivētu šo " -"pogu." - -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "_Edit" -msgstr "R_ediģēt" +"Izvēlieties jaunā VPN savienojuma veidu. Ja sarakstā nav pieejams jums VPN " +"vajadzīgais VPN savienojuma veids, iespējams, ka nav uzstādīts vajadzīgais " +"VPN spraudnis." -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "Edit the selected connection" -msgstr "Rediģēt izvēlētos savienojumus" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "noklusējuma" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "_Edit..." -msgstr "R_ediģēt..." +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1278 -msgid "Authenticate to edit the selected connection" -msgstr "Autentificējieties, lai rediģētu izvēlētos savienojumus" +#: ../src/connection-editor/page-wifi.c:462 +#, fuzzy +msgid "Could not load Wi-Fi user interface." +msgstr "Nevarēja ielādēt bezvadu lietotāja saskarni." + +#: ../src/connection-editor/page-wifi.c:667 +#, fuzzy, c-format +msgid "Wi-Fi connection %d" +msgstr "Vadu tīkla savienojums %d" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "_Delete" -msgstr "_Dzēst" +#: ../src/connection-editor/page-wifi-security.c:265 +#, fuzzy +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Nav" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "Delete the selected connection" -msgstr "Dzēst izvēlētos savienojumus" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:904 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "WEP 40/128 bitu atslēga (Hex vai ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "_Delete..." -msgstr "_Dzēst..." +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:913 +msgid "WEP 128-bit Passphrase" +msgstr "WEP 128 bitu parole" -#: ../src/connection-editor/nm-connection-list.c:1296 -msgid "Authenticate to delete the selected connection" -msgstr "Autentificējieties, lai dzēstu izvēlētos savienojumus" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:943 +msgid "Dynamic WEP (802.1x)" +msgstr "Dinamiskais WEP (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1575 -msgid "Error creating connection" -msgstr "Kļūda, veidojot savienojumu" +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:957 +msgid "WPA & WPA2 Personal" +msgstr "WPA un WPA2 Personal" -#: ../src/connection-editor/nm-connection-list.c:1576 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Nezin, kā izveidot '%s' savienojumus" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:971 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA un WPA2 Enterprise" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 -msgid "Error editing connection" -msgstr "Kļūda, rediģējot savienojumu" +#: ../src/connection-editor/page-wifi-security.c:396 +#, fuzzy +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"Nevarēja ielādēt bezvadu tīkla drošības lietotāja saskarni — pietrūkst " +"bezvadu tīkla iestatījumu." + +#: ../src/connection-editor/page-wifi-security.c:406 +#, fuzzy +msgid "Wi-Fi Security" +msgstr "Bezvadu tīkla drošība" -#: ../src/connection-editor/nm-connection-list.c:1632 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Nezin, kā rediģēt '%s' savienojumus" +#: ../src/connection-editor/page-wifi-security.c:408 +#, fuzzy +msgid "Could not load Wi-Fi security user interface." +msgstr "Nevarēja ielādēt bezvadu tīkla drošības lietotāja saskarni." + +#: ../src/connection-editor/page-wimax.c:158 +#, fuzzy +msgid "Could not load WiMAX user interface." +msgstr "Nevarēja ielādēt bezvadu lietotāja saskarni." + +#: ../src/connection-editor/page-wimax.c:287 +#, fuzzy, c-format +msgid "WiMAX connection %d" +msgstr "Vadu tīkla savienojums %d" -#: ../src/connection-editor/nm-connection-list.c:1644 -#, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Neatrada savienojumu ar UUID '%s'" +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Nevar importēt VPN savienojumu" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2257,158 +2394,179 @@ "\n" "Error: %s." msgstr "" -"Failu '%s' nevar nolasīt vai tajā nav atpazīstama VPN savienojuma " +"Datni “%s” nevar nolasīt vai tajā nav atpazīstama VPN savienojuma " "informācija\n" "\n" -"Kļūda: %s." +"Kļūda — %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" -msgstr "Izvēlieties failu, kuru importēt" +msgstr "Izvēlieties datni, ko importēt" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." -msgstr "Fails \"%s\" jau eksistē." +msgstr "Datne ar nosaukumu “%s” jau eksistē." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "_Aizvietot" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Vai vēlaties aizvietot %s ar saglabājamo VPN savienojumu?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "Nevar eksportēt VPN savienojumu" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" "\n" "Error: %s." msgstr "" -"Nevar eksportēt VPN savienojumu '%s' uz %s.\n" +"Nevar eksportēt VPN savienojumu “%s” uz %s.\n" "\n" -"Kļūda: %s." +"Kļūda — %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Eksportē VPN savienojumu..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Neizdevās izveidot PAN savienojumu: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"Tīkla NetworkManager sīklietotne nevarēja atrast dažus pieprasītos resursus " +"(.ui datne netika atrasta)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Jūsu tālrunis ir gatavs lietošanai!" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"Neizdevās Bluetooth konfigurācija (neizdevās savienoties ar D-Bus — (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s tīkls" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"Neizdevās Bluetooth konfigurācija (kļūda, meklējot NetworkManager — (%s) %s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Izmantojiet savu mobilo tālruni kā tīkla ierīci (PAN/NAP)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Piekļūstiet Internetam, izmantojot savu mobilo tālruni (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" -msgstr "Kļūda: %s" +msgstr "Kļūda — %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" -msgstr "Neizdevās izveidot DUN savienojumu: %s" +msgstr "Neizdevās izveidot DUN savienojumu — %s" + +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Tālrunis ir gatavs lietošanai!" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Mobilā vednis tika atcelts" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Nezināms tālruņa ierīces veids (nav GSM vai CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "nezināms modema tips." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "neizdevās savienoties ar tālruni." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "negaidīti atvienojies no tālruņa." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." -msgstr "iestājās noildze, nosakot tālruņa detaļas." +msgstr "iestājās noildze, nosakot tālruņa informāciju." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Nosaka tālruņa konfigurāciju..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "neizdevās atrast Bluetooth ierīci." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." msgstr "" -"Noklusētajai Bluetooth iekārtai ir jābūt ieslēgtai, pirms Dial-Up-Networking " +"Noklusējuma Bluetooth iekārtai ir jābūt ieslēgtai, pirms Dial-Up-Networking " "savienojuma iestatīšanas." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "Neizdevās Bluetooth konfigurācija (neizdevās savienoties ar D-Bus:%s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" -"Neizdevās Bluetooth konfigurācija (neizdevās izveidot D-Bus starpnieku)." +msgid "Failed to create PAN connection: %s" +msgstr "Neizdevās izveidot PAN savienojumu — %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"Neizdevās Bluetooth konfigurācija (kļūda, meklējot NetworkManager: %s)." +msgid "%s Network" +msgstr "%s tīkls" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Izmantojiet savu mobilo tālruni kā tīkla ierīci (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Automātiski atbloķēt šo ierīci" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Piekļūstiet Internetam, izmantojot savu mobilo tālruni (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_Atbloķēt" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Savienojuma informācija" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Aktīvi tīkla savienojumi" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "" -"Jūsu mobilais platjoslas tīkla savienojums ir konfigurēts ar sekojošajiem " +"Mobilais platjoslas tīkla savienojums ir konfigurēts ar sekojošajiem " "iestatījumiem:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Jūsu ierīce:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Jūsu operators:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Jūsu plāns:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2419,105 +2577,98 @@ "Tagad tiks izveidots savienojums ar jūsu mobilā platjoslas tīkla operatoru, " "izmantojot jūsu izvēlētos iestatījumus. Ja savienojums neizdodas, vai jūs " "nevarat piekļūt tīkla resursiem, pārbaudiet iestatījumus. Lai mainītu sava " -"mobilā platjoslas tīkla iestatījumus, izvēlieties \"Tīkla savienojumi\" no " +"mobilā platjoslas tīkla iestatījumus, izvēlieties “Tīkla savienojumi” no " "Sistēma >> Iestatījumi izvēlnes." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Apstiprināt mobilā platjoslas tīkla iestatījumus" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Nav sarakstā" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "Izvēlietie_s plānu:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" -msgstr "Izvēlēts plāns _APN (Access Point Name):" +msgstr "Izvēlēts plāns _APN (pieejas punkta nosaukums):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"Brīdinājums: Nepareizā plāna izvēle var radīt rēķinu problēmas platjoslas " +"Brīdinājums — nepareizā plāna izvēle var radīt rēķinu problēmas platjoslas " "tīkla kontam, vai var neizdoties savienošanās.\n" "\n" "Ja nezināt, kāds jums ir plāns, jautājiet sava plāna APN." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Izvēlieties rēķina plānu" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Mans plāns nav sarakstā..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "Izvē_lieties operatoru no saraksta:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Operators" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Es nevaru atrast savu operatoru un vēlos to ievadīt _pašrocīgi:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Operators:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Mans operators izmanto GSM tehnoloģiju (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Mans operators izmanto CDMA tehnoloģiju (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Izvēlieties savu operatoru" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1080 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Valstu vai reģionu saraksts:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1092 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "Valsts vai reģions" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1099 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "Mana valsts nav sarakstā" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1145 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Izvēlieties operatora valsti vai reģionu" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1199 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Uzstādītā GSM ierīce" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1202 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Uzstādītā CDMA ierīce" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1374 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2525,112 +2676,112 @@ "Šis asistents palīdzēs jums ērti uzstādīt mobilā platjoslas tīkla " "savienojumu ar mobilo (3G) tīklu." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1379 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Jums vajadzēs sekojošo informāciju:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1394 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "Jūsu platjoslas operatora nosaukums" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1400 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "Jūsu platjoslas rēķinu plāna nosaukums" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1406 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" -"(dažos gadījumos) Jūsu platjoslas rēķinu plāna APN (pieejas punkta " -"nosaukums)" +"(dažos gadījumos) platjoslas rēķinu plāna APN (pieejas punkta nosaukums)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1433 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Izveidot savienojumu šai mobilā pla_tjoslas tīkla ierīcei:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1448 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Jebkura ierīce" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" -msgstr "Uzstādīt mobilā platjoslas tīkla savienojumu" +msgstr "Iestatīt mobilā platjoslas tīkla savienojumu" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 -#: ../src/libnm-gtk/nm-mobile-wizard.c:1625 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Jauns mobilā platjoslas tīkla savienojums" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:439 msgid "New..." msgstr "Jauns..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1058 msgid "C_reate" msgstr "Iz_veidot" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 -#, c-format +#: ../src/libnm-gtk/nm-wifi-dialog.c:1142 +#, fuzzy, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "" -"Lai piekļūtu bezvadu tīklam '%s', ir nepieciešamas paroles vai šifrēšanas " +"Lai piekļūtu bezvadu tīklam “%s”, ir nepieciešamas paroles vai šifrēšanas " "atslēgas." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 -msgid "Wireless Network Authentication Required" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1144 +#, fuzzy +msgid "Wi-Fi Network Authentication Required" msgstr "Nepieciešama bezvadu tīkla autentifikācija" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 -msgid "Authentication required by wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1146 +#, fuzzy +msgid "Authentication required by Wi-Fi network" msgstr "Bezvadu tīklam ir nepieciešama autentifikācija" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 -msgid "Create New Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1151 +#, fuzzy +msgid "Create New Wi-Fi Network" msgstr "Izveidot jaunu bezvadu tīklu" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "New wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +#, fuzzy +msgid "New Wi-Fi network" msgstr "Jauns bezvadu tīklu" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 -msgid "Enter a name for the wireless network you wish to create." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1154 +#, fuzzy +msgid "Enter a name for the Wi-Fi network you wish to create." msgstr "Ievadiet izveidojamā bezvadu tīkla nosaukumu." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 -msgid "Connect to Hidden Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1156 +#, fuzzy +msgid "Connect to Hidden Wi-Fi Network" msgstr "Savienoties ar slēptu bezvadu tīklu" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Hidden wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 +#, fuzzy +msgid "Hidden Wi-Fi network" msgstr "Slēpts bezvadu tīkls" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1159 +#, fuzzy msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." msgstr "" "Ievadiet nosaukumu un drošības iestatījums bezvadu tīklam, ar kuru vēlaties " "savienoties." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +#, fuzzy +msgid "Wi-Fi _security:" msgstr "Bez_vadu drošība:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" -msgstr "Savie_nojums:" +msgid "C_onnection:" +msgstr "Savien_ojums:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" -msgstr "Bezvadu tīkla _iekārta:" +#, fuzzy +msgid "Wi-Fi _adapter:" +msgstr "Bezv_adu tīkla ierīce:" #: ../src/main.c:73 msgid "Usage:" @@ -2641,8 +2792,8 @@ "This program is a component of NetworkManager (http://projects.gnome.org/" "NetworkManager)." msgstr "" -"Šī programmatūra ir daļa no NetworkManager " -"(http://projects.gnome.org/NetworkManager)." +"Šī programmatūra ir daļa no NetworkManager (http://projects.gnome.org/" +"NetworkManager)." #: ../src/main.c:76 msgid "" @@ -2679,100 +2830,119 @@ msgstr "HSPA" #: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" +#, fuzzy +msgid "HSPA+" +msgstr "HSPA" -#: ../src/mb-menu-item.c:109 +#: ../src/mb-menu-item.c:77 +msgid "LTE" +msgstr "" + +#: ../src/mb-menu-item.c:113 msgid "not enabled" msgstr "nav aktivēts" -#: ../src/mb-menu-item.c:115 +#: ../src/mb-menu-item.c:119 msgid "not registered" msgstr "nav reģistrēts" -#: ../src/mb-menu-item.c:133 +#: ../src/mb-menu-item.c:137 #, c-format msgid "Home network (%s)" msgstr "Mājas tīkls (%s)" -#: ../src/mb-menu-item.c:135 +#: ../src/mb-menu-item.c:139 #, c-format msgid "Home network" msgstr "Mājas tīkls" -#: ../src/mb-menu-item.c:143 +#: ../src/mb-menu-item.c:147 msgid "searching" msgstr "meklē" -#: ../src/mb-menu-item.c:146 +#: ../src/mb-menu-item.c:150 msgid "registration denied" msgstr "reģistrācija ir liegta" -#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 +#: ../src/mb-menu-item.c:155 ../src/mb-menu-item.c:161 #, c-format msgid "%s (%s roaming)" msgstr "%s (%s viesabonēšana)" -#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 +#: ../src/mb-menu-item.c:157 ../src/mb-menu-item.c:163 #, c-format msgid "%s (roaming)" msgstr "%s (viesabonēšana)" -#: ../src/mb-menu-item.c:162 +#: ../src/mb-menu-item.c:166 #, c-format msgid "Roaming network (%s)" msgstr "Viesabonēšanas tīkls (%s)" -#: ../src/mb-menu-item.c:164 +#: ../src/mb-menu-item.c:168 #, c-format msgid "Roaming network" msgstr "Viesabonēšanas tīkls" #: ../src/utils/nmn-mobile-providers.c:531 msgid "Default" -msgstr "Noklusētais" +msgstr "Noklusējuma" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"Tīkla NetworkManager sīklietotne nevarēja atrast dažus pieprasītos resursus " -"(.ui fails netika atrasts)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "%s savienojums" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Nav izvēlēts sertificēšanas institūcijas (CA) sertifikāts" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 +#, fuzzy msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" "Sertificēšanas institūcijas (CA) sertifikāta neizmantošanas rezultātā var " "savienoties ar nedrošiem vai blēžu bezvadu tīkliem. Vai vēlaties izvēlieties " "sertificēšanas institūcijas sertifikātu?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Izvēlieties CA sertifikātu" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM vai PKCS#12 privātās atslēgas (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER vai PEM sertifikāti (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Izvēlieties PAC datni..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC datne (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Visas datnes" + #: ../src/wireless-security/eap-method-fast.ui.h:2 -#| msgid "Anony_mous identity:" msgid "Anonymous" msgstr "Anonīmi" #: ../src/wireless-security/eap-method-fast.ui.h:3 -#| msgid "Authentication" msgid "Authenticated" msgstr "Ar autentifikāciju" @@ -2788,12 +2958,11 @@ #: ../src/wireless-security/eap-method-fast.ui.h:6 msgid "PAC _file:" -msgstr "PAC _fails:" +msgstr "PAC _datne:" #: ../src/wireless-security/eap-method-fast.ui.h:7 #: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 -#| msgid "I_nner authentication:" msgid "_Inner authentication:" msgstr "_Iekšējā autentifikācija:" @@ -2801,25 +2970,8 @@ msgid "Allow automatic PAC pro_visioning" msgstr "Atļaut automātisku PAC _nodrošinājumu" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Izvēlieties PAC failu..." - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "PAC faili (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Visi faili" - #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2844,7 +2996,6 @@ msgstr "C_A sertifikāts:" #: ../src/wireless-security/eap-method-peap.ui.h:8 -#| msgid "_PEAP version:" msgid "PEAP _version:" msgstr "PEAP _versija:" @@ -2868,7 +3019,7 @@ "kompromitēt drošības akreditācijas datus. Lūdzu, izvēlieties ar paroli " "aizsargātu privāto atslēgu.\n" "\n" -"(Jūs varat aizsargāt ar paroli savu privāto atslēgu ar openssl)" +"(Savu privāto atslēgu varat aizsargāt ar paroli ar openssl)" #: ../src/wireless-security/eap-method-tls.c:410 msgid "Choose your personal certificate..." @@ -2906,32 +3057,31 @@ msgid "Yes" msgstr "Jā" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" -msgstr "Tunneled TLS" +msgstr "Tunelēts TLS" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" -msgstr "Protected EAP (PEAP)" +msgstr "Aizsargāts EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 #: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 -#| msgid "_Authentication:" msgid "Au_thentication:" msgstr "Au_tentifikācija:" #: ../src/wireless-security/ws-wep-key.ui.h:1 msgid "Open System" -msgstr "Atvērt sistēmu" +msgstr "Atvērta sistēma" #: ../src/wireless-security/ws-wep-key.ui.h:2 msgid "Shared Key" @@ -2963,7 +3113,76 @@ #: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" -msgstr "WEP inde_x:" +msgstr "WEP inde_kss:" + +#~ msgid "Wireless Networks (%s)" +#~ msgstr "Bezvadu tīkli (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "Bezvadu tīkls (%s)" + +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "Bezvadu tīkls" +#~ msgstr[1] "Bezvadu tīkli" +#~ msgstr[2] "Bezvadu tīklu" + +#~ msgid "wireless is disabled" +#~ msgstr "bezvadu tīklošana ir deaktivēta" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "bezvadu tīklošana ir deaktivēta ar slēdzi datorā" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "Gatavo bezvadu tīkla savienojumu “%s”..." + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "Konfigurē bezvadu tīkla savienojumu “%s”..." + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "Tiek pieprasīta “%s” bezvadu tīkla adrese..." + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "Bezvadu tīkla savienojums “%s” ir aktīvs" + +#~ msgid "Wired" +#~ msgstr "Vadu" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "Nevarēja ielādēt vadu drošības lietotāja saskarni." + +#~ msgid "Wireless" +#~ msgstr "Bezvadu tīkls" + +#~ msgid "Wireless connection %d" +#~ msgstr "Bezvadu tīkla savienojums %d" + +#~ msgid "_Import" +#~ msgstr "_Importēt" + +#~ msgid "An unknown error occurred." +#~ msgstr "Gadījās nezināma kļūda." + +#~ msgid "Could not edit new connection" +#~ msgstr "Nevarēja rediģēt jaunu savienojumu" + +#~ msgid "Could not edit imported connection" +#~ msgstr "Nevar rediģēt importētos savienojumus" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "" +#~ "Nav pieejams neviens VPN spraudnis. Lūdzu, uzinstalējiet to, lai aktivētu " +#~ "šo pogu." + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "Nezina, kā rediģēt “%s” savienojumus" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "neizdevās atrast Bluetooth ierīci." + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "" +#~ "Neizdevās Bluetooth konfigurācija (neizdevās izveidot D-Bus starpnieku)." #~ msgid "Click on this icon to connect to a wireless network" #~ msgstr "Spiediet uz šo ikonu, lai pieslēgtos bezvadu tīklam" @@ -2974,9 +3193,6 @@ #~ msgid "United Kingdom" #~ msgstr "Apvienotās Karaliste" -#~ msgid "C_onnect" -#~ msgstr "Savien_oties" - #~ msgid "Other Wireless Network..." #~ msgstr "Cits bezvadu tīkls..." @@ -3009,8 +3225,8 @@ #~ "There was a problem launching the authentication dialog for VPN " #~ "connection type '%s'. Contact your system administrator." #~ msgstr "" -#~ "Bija problēma, startējot autentifikācijas dialogu VPN savienojuma veidam '%" -#~ "s'. Sazinieties ar savu sistēmas administratoru." +#~ "Bija problēma, startējot autentifikācijas dialogu VPN savienojuma veidam " +#~ "'%s'. Sazinieties ar savu sistēmas administratoru." #~ msgid "PUK code required" #~ msgstr "Ir nepieciešams PUK kods" @@ -3023,7 +3239,9 @@ #~ msgid "" #~ "Active Network Connections" -#~ msgstr "Aktīvā savienojuma informācija" +#~ msgstr "" +#~ "Aktīvā savienojuma informācija" #~ msgid "" #~ "Automatic\n" @@ -3223,8 +3441,9 @@ #~ msgid "" #~ "The NetworkManager applet could not find some required resources. It " #~ "cannot continue.\n" -#~ msgstr "Tīkla administratora aplets nevarēja atrast dažus pieprasītos resursus. Tas " -#~ "nevar turpinat.\n" +#~ msgstr "" +#~ "Tīkla administratora aplets nevarēja atrast dažus pieprasītos resursus. " +#~ "Tas nevar turpinat.\n" #~ msgid "AES-CCMP" #~ msgstr "AES-CCMP" @@ -3248,8 +3467,8 @@ #~ msgstr " (nederīgs unikods)" #~ msgid "" -#~ "By default, the wireless network's name is set to your computer's name, %" -#~ "s, with no encryption enabled" +#~ "By default, the wireless network's name is set to your computer's name, " +#~ "%s, with no encryption enabled" #~ msgstr "" #~ "Noklusēti bezvadu tīkla nosaukums ir uzstādīts tāds, kā jūsu datora " #~ "nosaukums %s bez sifrēšanas" @@ -3270,10 +3489,11 @@ #~ "A passphrase or encryption key is required to access the wireless network " #~ "'%s'." #~ msgstr "" -#~ "Bezvadu tīkls pieprasa paroli\n" +#~ "Bezvadu tīkls pieprasa paroli\n" #~ "\n" -#~ "Parole vai šifrēšanas atslēga tiek piepraīta, lai piekļūtu bevadu tīlam '%" -#~ "s'." +#~ "Parole vai šifrēšanas atslēga tiek piepraīta, lai piekļūtu bevadu tīlam " +#~ "'%s'." #~ msgid "" #~ "Reduced Network FunctionalityAtvieglota tīkla funkcionēšana\n" +#~ "Atvieglota tīkla funkcionēšana\n" #~ "\n" #~ "%s Tas nebūs pilnīgi funkcionāli." @@ -3352,8 +3573,8 @@ #~ "No suitable VPN software was found on your system. Contact your system " #~ "administrator." #~ msgstr "" -#~ "Jūsu sistēmā netika atrasta piemērota VPN programmatūra. Sazinieties ar savu " -#~ "sistēmadministaratoru." +#~ "Jūsu sistēmā netika atrasta piemērota VPN programmatūra. Sazinieties ar " +#~ "savu sistēmadministaratoru." #~ msgid "" #~ "Cannot find suitable software for VPN connection type '%s' to import the " @@ -3366,8 +3587,8 @@ #~ "Could not find the UI files for VPN connection type '%s'. Contact your " #~ "system administrator." #~ msgstr "" -#~ "Nevar atrast UI failus priekš VPN savienojuma tipa'%s'. Sazinieties ar savu " -#~ "sistēmadministratoru." +#~ "Nevar atrast UI failus priekš VPN savienojuma tipa'%s'. Sazinieties ar " +#~ "savu sistēmadministratoru." #~ msgid "Delete VPN connection \"%s\"?" #~ msgstr "Izdzēst VPN savienojumu \"%s\"?" @@ -3412,11 +3633,11 @@ #~ "It will require some information, such as IP addresses and secrets. " #~ "Please see your system administrator to obtain this information." #~ msgstr "" -#~ "Šis asistents iepazīstinās jūs ar Virtuālā Privātā Tīkla (VPN) savienojuma " -#~ "radīšanu.\n" +#~ "Šis asistents iepazīstinās jūs ar Virtuālā Privātā Tīkla (VPN) " +#~ "savienojuma radīšanu.\n" #~ "\n" -#~ "Tas pieprasīs mazliet informācijas, tādu kā IP adresi un noslēpumus. Lūdzu " -#~ "vaicājiet savam sistēmadministratoram, lai iegūtu šo informāciju." +#~ "Tas pieprasīs mazliet informācijas, tādu kā IP adresi un noslēpumus. " +#~ "Lūdzu vaicājiet savam sistēmadministratoram, lai iegūtu šo informāciju." #~ msgid "VPN Connections" #~ msgstr "VPN savienojumi" @@ -3449,11 +3670,11 @@ #~ "ierīces - %s monitoringa" #~ msgid "" -#~ "unable to bind to netlink socket for monitoring wired ethernet devices - %" -#~ "s" +#~ "unable to bind to netlink socket for monitoring wired ethernet devices - " +#~ "%s" #~ msgstr "" -#~ "Nespēj piesaistīties pie tīkla saites ligzdas priekš cietsavienojuma tīkla " -#~ "ethernet ierīces - %s monitoringa" +#~ "Nespēj piesaistīties pie tīkla saites ligzdas priekš cietsavienojuma " +#~ "tīkla ethernet ierīces - %s monitoringa" #~ msgid "operation took too long" #~ msgstr "Operācija rit pārāk ilgi" diff -Nru network-manager-applet-0.9.4.1/po/mk.po network-manager-applet-0.9.6.2+git201210311320.2620/po/mk.po --- network-manager-applet-0.9.4.1/po/mk.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/mk.po 2012-10-31 13:20:57.000000000 +0000 @@ -1961,7 +1961,7 @@ msgstr "Автентицирајте се за да се зачува оваа врска за сите корисници на оваа машина." #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Достапна за сите корисници" #: ../src/connection-editor/nm-connection-editor.ui.h:2 @@ -2521,7 +2521,7 @@ #: ../src/libnm-gtk/wifi.ui.h:2 #| msgid "Connection _name:" -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Вр_ска:" #: ../src/libnm-gtk/wifi.ui.h:3 @@ -2530,7 +2530,7 @@ #: ../src/libnm-gtk/wifi.ui.h:5 #| msgid "_Wireless Security:" -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Безжична безбедност:" #: ../src/main.c:73 diff -Nru network-manager-applet-0.9.4.1/po/ml.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ml.po --- network-manager-applet-0.9.4.1/po/ml.po 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ml.po 2012-10-31 13:20:57.000000000 +0000 @@ -1,591 +1,788 @@ -# translation of network-manager-applet.master.ml.po to -# translation of ml.po to -# translation of nm-applet.ml.po to -# translation of network-manager-applet.po.master.ml.po to -# translation of network-manager-applet.HEAD.ml.po to -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# translation of network-manager-applet to Malayalam +# Copyright (C) 2009, 2010, 2012 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# Ani Peter , 2009, 2010 # +# Ani Peter , 2009, 2010, 2012. +# Praveen Arimbrathodiyil , 2012. msgid "" msgstr "" "Project-Id-Version: network-manager-applet.master.ml\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&component=nm-applet\n" -"POT-Creation-Date: 2010-05-18 08:23+0000\n" -"PO-Revision-Date: 2010-05-19 11:15+0530\n" -"Last-Translator: \n" -"Language-Team: \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." +"cgi?product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-08-20 16:42+0000\n" +"PO-Revision-Date: 2012-09-17 20:50+0000\n" +"Last-Translator: Ani Peter \n" +"Language-Team: Malayalam \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"\n" #: ../nm-applet.desktop.in.h:1 -msgid "Control your network connections" -msgstr "നിങ്ങളുടെ നെറ്റ്‌വര്‍ക്ക് കണക്ഷനുകള്‍ നിയന്ത്രിക്കുക" +msgid "Network" +msgstr "ശൃംഖല" #: ../nm-applet.desktop.in.h:2 -msgid "Network Manager" -msgstr "നെറ്റ്‌വര്‍ക്ക് മാനേജര്‍" +msgid "Manage your network connections" +msgstr "നിങ്ങളുടെ ശൃംഖല ബന്ധങ്ങള്‍ കൈകാര്യം ചെയ്യുക" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "വൈഫൈ ഉണ്ടാക്കുന്നതു് പ്രവര്‍ത്തന രഹിതമാക്കുക" +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "ശൃംഖല ബന്ധങ്ങള്‍" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "നിങ്ങളുടെ ശൃംഖല ബന്ധങ്ങള്‍ സജ്ജീകരണങ്ങള്‍ കൈകാര്യം ചെയ്യുകയും മാറ്റങ്ങള്‍ വരുത്തുകയും ചെയ്യുക." -#: ../nm-applet.schemas.in.h:2 +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" -msgstr "കണക്ട് ചെയ്തതിനുള്ള അറിയിപ്പുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുക" +msgstr "ബന്ധപ്പെടുമ്പോളുള്ള അറിയിപ്പുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുക" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +#| msgid "" +#| "Set this to TRUE to disable notifications when connecting to a network." +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "ഒരു ശൃംഖലയുമായി ബന്ധപ്പെടുമ്പോള്‍, അറിയിപ്പുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുന്നതിനായി ഇതു് true ആക്കുക." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" -msgstr "കണക്ട് നഷ്ടപ്പെട്ടതിനുള്ള അറിയിപ്പുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുക" +msgstr "ബന്ധം വേര്‍പ്പെടുമ്പോളുള്ള അറിയിപ്പുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുക" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "Set this to true to disable notifications when disconnecting from a network." msgstr "" -"ഒരു നെറ്റ്‌വര്‍ക്കിലേക്കു് കണക്ട് ചെയ്യുമ്പോള്‍, അറിയിപ്പുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുന്നതിനായി ഇതു് TRUE " -"ആക്കുക." +"ഒരു ശൃംഖലയില്‍ നിന്നും ബന്ധം വിഛേദിക്കുമ്പോള്‍, അറിയിപ്പുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുന്നതിനായി ഇതു് true ആക്കുക." -#: ../nm-applet.schemas.in.h:5 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "" -"ഒരു നെറ്റ്‌വര്‍ക്കില്‍ നിന്നും വിഛേദിക്കുമ്പോള്‍, അറിയിപ്പുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുന്നതിനായി ഇതു് TRUE " -"ആക്കുക." +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +#| msgid "Disable connected notifications" +msgid "Disable VPN notifications" +msgstr "വിപിഎന്‍ അറിയിപ്പുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുക" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." msgstr "" -"വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്കുകള്‍ ലഭ്യമാകുമ്പോള്‍, അറിയിപ്പുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുന്നതിനായി ഇതു് TRUE " -"ആക്കുക." +"ഒരു വിപിഎനില്‍ നിന്നും ബന്ധം വിഛേദിക്കുമ്പോള്‍ അല്ലെങ്കില്‍ തയ്യാറാക്കുമ്പോള്‍, അറിയിപ്പുകള്‍ പ്രവര്‍ത്തന " +"രഹിതമാക്കുന്നതിനായി ഇതു് true ആക്കുക." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 +msgid "Suppress networks available notifications" +msgstr "ശൃംഖലകള്‍ ലഭ്യമാണെന്ന അറിയിപ്പ് കാണിയ്ക്കേണ്ട" -#: ../nm-applet.schemas.in.h:7 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#| msgid "" +#| "Set this to TRUE to disable notifications when wireless networks are " +#| "available." +msgid "" +"Set this to true to disable notifications when wireless networks are " +"available." msgstr "" -"ആപ്ലെറ്റ് ഉപയോഗിക്കുമ്പോള്‍, ആഡ്ഹോക് നെറ്റ്‌വര്‍ക്കുകള്‍ തയ്യാറാക്കുന്നതു് പ്രവര്‍ത്തന രഹിതമാക്കുന്നതിനായി " -"ഇതു് TRUE ആക്കുക." +"വയര്‍ലെസ് ശൃംഖലകള്‍ ലഭ്യമാകുമ്പോള്‍, അറിയിപ്പുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുന്നതിനായി ഇതു് " +"true ആക്കുക." -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "സ്റ്റാമ്പ്" -#: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" -msgstr "ലഭ്യമായ വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്കുകള്‍ ഇല്ലാതാക്കുക" - -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "സജ്ജീകരണങ്ങള്‍ പുതിയ പതിപ്പില്‍ നീക്കേണ്ടതുണ്ടോ എന്നു് നിശ്ചയിക്കുന്നതിനായി ഉപയോഗിക്കുന്നു." -#: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "നിങ്ങളുടെ നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ സജ്ജീകരണങ്ങള്‍ കൈകാര്യം ചെയ്യുകയും മാറ്റങ്ങള്‍ വരുത്തുകയും ചെയ്യുക." +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "വൈഫൈ ഉണ്ടാക്കുന്നതു് പ്രവര്‍ത്തന രഹിതമാക്കുക" -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.glade.h:7 -msgid "Network Connections" -msgstr "നെറ്റ്‌വര്‍ക്ക് കണക്ഷനുകള്‍" +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +#| msgid "" +#| "Set to TRUE to disable creation of adhoc networks when using the applet." +msgid "Set to true to disable creation of adhoc networks when using the applet." +msgstr "" +"ലഘുപ്രയോഗം ഉപയോഗിച്ചു് അഡ്ഹോക് ശൃംഖലകള്‍ തയ്യാറാക്കുന്നതു് പ്രവര്‍ത്തന രഹിതമാക്കുന്നതിനായി " +"ഇതു് true ആക്കുക." -#: ../src/applet-dbus-manager.c:165 -#, c-format -msgid "An instance of nm-applet is already running.\n" -msgstr "nm-applet-ന്റെ ഒരു ഇന്‍സ്റ്റന്‍സ് പ്രവര്‍ത്തിക്കുന്നു.\n" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +#| msgid "Choose CA Certificate" +msgid "Ignore CA certificate" +msgstr "CA സര്‍ട്ടിഫീക്കേറ്റ് വേണ്ടെന്നു്വയ്ക്കുക" -#: ../src/applet-dbus-manager.c:167 -#, c-format -msgid "Could not acquire the %s service. (%d)\n" -msgstr "%s സര്‍വീസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല. (%d)\n" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"ഇഎപി ആധികാരികത ഉറപ്പാക്കലിലുള്ള സിഎ സര്‍ട്ടിഫിക്കേറ്റുകളെപ്പറ്റിയുള്ള മുന്നറിയിപ്പുകള്‍ " +"പ്രവര്‍ത്തന രഹിതമാക്കുന്നതിനായി ഇതു് true ആയി സജ്ജമാക്കുക." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:332 -#: ../src/applet-device-gsm.c:375 ../src/applet-device-wired.c:241 -#: ../src/applet-device-wifi.c:816 +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"ഇഎപി ആധികാരികത ഉറപ്പാക്കലിന്റെ രണ്ടാം ഘട്ടത്തിലുള്ള സിഎ സര്‍ട്ടിഫിക്കേറ്റുകളെപ്പറ്റിയുള്ള " +"മുന്നറിയിപ്പുകള്‍ പ്രവര്‍ത്തന രഹിതമാക്കുന്നതിനായി ഇതു് true ആയി സജ്ജമാക്കുക." + +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-gsm.c:444 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "ലഭ്യമായവ" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:374 -#: ../src/applet-device-gsm.c:417 ../src/applet-device-wired.c:270 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-gsm.c:486 ../src/applet-device-wired.c:269 +#: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." -msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ '%s'-ലേക്ക് കണക്ട് ചെയ്തിരിക്കുന്നു." +msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ '%s'-മായി ബന്ധപ്പെട്ടിരിക്കുന്നു." -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:378 -#: ../src/applet-device-gsm.c:421 ../src/applet-device-wired.c:274 -#: ../src/applet-device-wifi.c:1257 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-gsm.c:490 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" -msgstr "കണക്ഷന്‍ സ്ഥാപിച്ചു" +msgstr "ബന്ധം സ്ഥാപിച്ചു" #: ../src/applet-device-bt.c:205 msgid "You are now connected to the mobile broadband network." -msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ മൊബെല്‍ ബ്രോഡ്ബാന്‍ഡ് നെറ്റ്‌വര്‍ക്കിലേക്കു് കണക്ട് ചെയ്തിരിക്കുന്നു." +msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ മൊബെല്‍ ബ്രോഡ്ബാന്‍ഡ് ശൃംഖലയുമായി ബന്ധപ്പെട്ടിരിയ്ക്കുന്നു." -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:414 -#: ../src/applet-device-gsm.c:457 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." -msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് കണക്ഷന്‍ '%s'-നായി തയ്യാറാകുന്നു..." +msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ബന്ധം '%s'-നായി തയ്യാറാകുന്നു..." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:417 -#: ../src/applet-device-gsm.c:460 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." -msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് കണക്ഷന്‍ '%s' ക്രമീകരിക്കുന്നു..." +msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ബന്ധം '%s' ക്രമീകരിക്കുന്നു..." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:420 -#: ../src/applet-device-gsm.c:463 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "" -"മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് കണക്ഷന്‍ '%s'-നു് ഉപയോക്താവിനോടു് ആധികാരികത ഉറപ്പാക്കുന്നതിനായി " +"മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ബന്ധം '%s' ഉപയോക്താവിനോടു് ആധികാരികത ഉറപ്പാക്കുന്നതിനായി " "ആവശ്യപ്പെട്ടിരിക്കുന്നു..." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:423 -#: ../src/applet-device-gsm.c:466 ../src/applet.c:2266 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." -msgstr "'%s'-നുള്ള ഒരു നെറ്റ്‌വര്‍ക്ക് വിലാസത്തിനായി ആവശ്യപ്പെടുന്നു..." +msgstr "'%s'-നു് ഒരു ശൃംഖല വിലാസത്തിനായി ആവശ്യപ്പെടുന്നു..." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:484 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format msgid "Mobile broadband connection '%s' active" -msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് കണക്ഷന്‍ '%s' സജീവമാണു്" +msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ബന്ധം '%s' സജീവമാണു്" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:621 -#: ../src/mb-menu-item.c:55 +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:696 +#: ../src/mb-menu-item.c:54 msgid "CDMA" -msgstr "CDMA " +msgstr "സിഡിഎംഎ" -#: ../src/applet-device-cdma.c:281 ../src/applet-device-gsm.c:325 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് (%s)" -#: ../src/applet-device-cdma.c:283 ../src/applet-device-gsm.c:327 -#: ../src/connection-editor/page-mobile.c:318 -#: ../src/connection-editor/nm-connection-editor.glade.h:6 -#: ../src/connection-editor/nm-connection-list.c:1401 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/page-mobile.c:379 +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ്" #. Default connection item -#: ../src/applet-device-cdma.c:345 +#: ../src/applet-device-cdma.c:409 msgid "New Mobile Broadband (CDMA) connection..." -msgstr "പുതിയ മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് (CDMA)കണക്ഷന്‍..." +msgstr "പുതിയ മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് (സിഡിഎംഎ)ബന്ധം..." -#: ../src/applet-device-cdma.c:379 +#: ../src/applet-device-cdma.c:443 msgid "You are now connected to the CDMA network." -msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ CDMA നെറ്റ്‌വര്‍ക്കിലേക്ക് കണക്ട് ചെയ്തിരിക്കുന്നു." +msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ സിഡിഎംഎ ശൃംഖലയുമായി ബന്ധപ്പെട്ടിരിയ്ക്കുന്നു." -#: ../src/applet-device-cdma.c:436 ../src/applet-device-gsm.c:479 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് കണക്ഷന്‍ '%s' സജീവമാണു്: (%d%%%s%s)" +msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ബന്ധം '%s' സജീവമാണു്: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:439 ../src/applet-device-gsm.c:482 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 msgid "roaming" -msgstr "റോമിങ്" +msgstr "പുറത്തുള്ള" -#: ../src/applet-device-gsm.c:210 ../src/connection-editor/page-mobile.c:624 -#: ../src/mb-menu-item.c:60 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "സിഡിഎംഎ ശൃംഖല." + +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ വീട്ടിലെ ശൃംഖലയുമായി ബന്ധപ്പെട്ടിരിയ്ക്കുന്നു." + +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ പുറത്തൊരു ശൃംഖലയുമായി ബന്ധപ്പെട്ടിരിയ്ക്കുന്നു." + +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:699 +#: ../src/mb-menu-item.c:59 msgid "GSM" -msgstr "GSM" +msgstr "ജിഎസ്എം" #. Default connection item -#: ../src/applet-device-gsm.c:388 +#: ../src/applet-device-gsm.c:457 msgid "New Mobile Broadband (GSM) connection..." -msgstr "പുതിയ മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് (GSM) കണക്ഷന്‍..." +msgstr "പുതിയ മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് (ജിഎസ്എം) ബന്ധം..." -#: ../src/applet-device-gsm.c:422 +#: ../src/applet-device-gsm.c:491 msgid "You are now connected to the GSM network." -msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ GSM നെറ്റ്‌വര്‍ക്കിലേക്ക് കണക്ട് ചെയ്തിരിക്കുന്നു." +msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ ജിഎസ്എം ശൃംഖലയുമായി ബന്ധപ്പെട്ടിരിയ്ക്കുന്നു." -#: ../src/applet-device-gsm.c:711 +#: ../src/applet-device-gsm.c:652 msgid "PIN code required" -msgstr "PIN കോഡ് ആവശ്യമുണ്ടു്" +msgstr "പിന്‍ കോഡ് ആവശ്യമുണ്ടു്" -#: ../src/applet-device-gsm.c:713 -msgid "PUK code required" -msgstr "PUK കോഡ് ആവശ്യമുണ്ടു്" - -#: ../src/applet-device-gsm.c:722 +#: ../src/applet-device-gsm.c:660 msgid "PIN code is needed for the mobile broadband device" -msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ഡിവൈസിനു് PIN കോഡ് ആവശ്യമുണ്ടു്" +msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ഡിവൈസിനു് പിന്‍ കോഡ് ആവശ്യമുണ്ടു്" -#: ../src/applet-device-gsm.c:724 -msgid "PUK code is needed for the mobile broadband device" -msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ഡിവൈസിനു് PUK കോഡ് ആവശ്യമുണ്ടു്" +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "'%2$s' ലെ സിം കാര്‍ഡ് '%1$s' നു് പിന്‍ കോഡ് ആവശ്യമുണ്ടു്" -#: ../src/applet-device-gsm.c:857 +#: ../src/applet-device-gsm.c:873 msgid "Wrong PIN code; please contact your provider." -msgstr "തെറ്റായ പിന്‍ കോഡ്; ദയവായി നിങ്ങളുടെ പ്രവൈഡറുമായി ബന്ധപ്പെടുക." +msgstr "തെറ്റായ പിന്‍ കോഡ്; ദയവായി നിങ്ങളുടെ ദാതാവുമായി ബന്ധപ്പെടുക." -#: ../src/applet-device-gsm.c:880 +#: ../src/applet-device-gsm.c:896 msgid "Wrong PUK code; please contact your provider." -msgstr "തെറ്റായ PUK കോഡ്; ദയവായി നിങ്ങളുടെ പ്രവൈഡറുമായി ബന്ധപ്പെടുക." +msgstr "തെറ്റായ പിയുകെ കോഡ്; ദയവായി നിങ്ങളുടെ ദാതാവുമായി ബന്ധപ്പെടുക." #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:907 +#: ../src/applet-device-gsm.c:923 msgid "Sending unlock code..." msgstr "പൂട്ട് തുറക്കേണ്ട കോഡ് അയയ്ക്കുന്നു..." -#: ../src/applet-device-gsm.c:966 +#: ../src/applet-device-gsm.c:986 msgid "SIM PIN unlock required" -msgstr "SIM PIN അണ്‍ലോക്ക് ആവശ്യമുണ്ടു്" +msgstr "സിം പിന്‍ കൊടുത്തു് തുറക്കണം" -#: ../src/applet-device-gsm.c:967 +#: ../src/applet-device-gsm.c:987 msgid "SIM PIN Unlock Required" -msgstr "SIM PIN അണ്‍ലോക്ക് ആവശ്യമുണ്ടു്" +msgstr "സിം പിന്‍ കൊടുത്തു് തുറക്കണം" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:969 +#: ../src/applet-device-gsm.c:989 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " "used." -msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ഡിവൈസ്'%s' ഉപയോഗിക്കുന്നതിനു് മുമ്പ് ഒരു SIM PINകോഡ് ആവശ്യമുണ്ടു്." +msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ഉപകരണം '%s' ഉപയോഗിക്കുന്നതിനു് മുമ്പ് ഒരു സിം പിന്‍ കോഡ് ആവശ്യമുണ്ടു്." -#: ../src/applet-device-gsm.c:970 +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 msgid "PIN code:" -msgstr "PIN കോഡ്:" +msgstr "പിന്‍ കോഡ്:" -#: ../src/applet-device-gsm.c:975 +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "പിന്‍ കോഡ് കാണിയ്ക്കുക" + +#: ../src/applet-device-gsm.c:998 msgid "SIM PUK unlock required" -msgstr "SIM PUK അണ്‍ലോക്ക് ആവശ്യമുണ്ടു്" +msgstr "സിം പിയുകെ കൊടുത്തു് തുറക്കണം" -#: ../src/applet-device-gsm.c:976 +#: ../src/applet-device-gsm.c:999 msgid "SIM PUK Unlock Required" -msgstr "SIM PUK അണ്‍ലോക്ക് ആവശ്യമുണ്ടു്" +msgstr "സിം പിയുകെ കൊടുത്തു് തുറക്കണം" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:978 +#: ../src/applet-device-gsm.c:1001 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " "used." -msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ഡിവൈസ്'%s' ഉപയോഗിക്കുന്നതിനു് മുമ്പ് ഒരു SIM PUK കോഡ് ആവശ്യമുണ്ടു്." +msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ഉപകരണം '%s' ഉപയോഗിക്കുന്നതിനു് മുമ്പ് ഒരു സിം പിയുകെ കോഡ് ആവശ്യമുണ്ടു്." -#: ../src/applet-device-gsm.c:979 +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 msgid "PUK code:" -msgstr "PUK കോഡ്:" +msgstr "പിയുകെ കോഡ്:" -#: ../src/applet-device-gsm.c:981 +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 msgid "New PIN code:" msgstr "പുതിയ പിന്‍ കോഡ്:" -#: ../src/applet-device-gsm.c:982 +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 msgid "Re-enter new PIN code:" msgstr "പുതിയ പിന്‍ കോഡ് വീണ്ടും നല്‍കുക:" -#: ../src/applet-device-wired.c:63 +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "പിന്‍/പിഒകെ കോഡുകള്‍ കാണിയ്ക്കുക" + +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "ജിഎസ്എം ശൃംഖല." + +#: ../src/applet-device-wired.c:62 msgid "Auto Ethernet" -msgstr "ഓട്ടോ ഇഥര്‍നെറ്റ്" +msgstr "ഓട്ടോ ഇതര്‍നെറ്റ്" -#: ../src/applet-device-wired.c:206 +#: ../src/applet-device-wired.c:205 #, c-format msgid "Wired Networks (%s)" -msgstr "വയര്‍ഡ് നെറ്റ്‌വര്‍ക്കുകള്‍ (%s)" +msgstr "വയര്‍ഡ് ശൃംഖലകള്‍ (%s)" -#: ../src/applet-device-wired.c:208 +#: ../src/applet-device-wired.c:207 #, c-format msgid "Wired Network (%s)" -msgstr "വയര്‍ഡ് നെറ്റ്‌വര്‍ക്ക് (%s)" +msgstr "വയര്‍ഡ് ശൃംഖല (%s)" -#: ../src/applet-device-wired.c:211 +#: ../src/applet-device-wired.c:210 msgid "Wired Networks" -msgstr "വയര്‍ഡ് നെറ്റ്‌വര്‍ക്കുകള്‍" +msgstr "വയര്‍ഡ് ശൃംഖലകള്‍" -#: ../src/applet-device-wired.c:213 +#: ../src/applet-device-wired.c:212 msgid "Wired Network" -msgstr "വയര്‍ഡ് നെറ്റ്‌വര്‍ക്ക്" +msgstr "വയര്‍ഡ് ശൃംഖല" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:233 ../src/applet.c:1305 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" -msgstr "കണക്ഷന്‍ വിഛേദിക്കുന്നു" +msgstr "ബന്ധം വിഛേദിച്ചിരിയ്ക്കുന്നു" -#: ../src/applet-device-wired.c:275 +#: ../src/applet-device-wired.c:274 msgid "You are now connected to the wired network." -msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ വയര്‍ഡ് നെറ്റ്‌വര്‍ക്കിലേക്കു് കണക്ട് ചെയ്തിരിക്കുന്നു." +msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ വയര്‍ഡ് ശൃംഖലയുമായി ബന്ധപ്പെട്ടിരിയ്ക്കുന്നു." -#: ../src/applet-device-wired.c:301 +#: ../src/applet-device-wired.c:300 #, c-format msgid "Preparing wired network connection '%s'..." -msgstr "വയര്‍ഡ് നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ '%s' തയ്യാറാകുന്നു..." +msgstr "വയര്‍ഡ് ശൃംഖല ബന്ധം '%s' തയ്യാറാകുന്നു..." -#: ../src/applet-device-wired.c:304 +#: ../src/applet-device-wired.c:303 #, c-format msgid "Configuring wired network connection '%s'..." -msgstr "വയര്‍ഡ് നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ '%s' ക്രമീകരിക്കുന്നു..." +msgstr "വയര്‍ഡ് ശൃംഖല ബന്ധം '%s' ക്രമീകരിയ്ക്കുന്നു..." -#: ../src/applet-device-wired.c:307 +#: ../src/applet-device-wired.c:306 #, c-format msgid "User authentication required for wired network connection '%s'..." -msgstr "വയര്‍ഡ് കണക്ഷന്‍ '%s'-നു് ഉപയോക്താവിനോടു് ആധികാരികത ഉറപ്പാക്കുന്നതിനായി ആവശ്യപ്പെട്ടിരിക്കുന്നു..." +msgstr "വയര്‍ഡ് ബന്ധം '%s' ഉപയോക്താവിനോടു് ആധികാരികത ഉറപ്പാക്കുന്നതിനായി ആവശ്യപ്പെട്ടിരിക്കുന്നു..." -#: ../src/applet-device-wired.c:310 +#: ../src/applet-device-wired.c:309 #, c-format msgid "Requesting a wired network address for '%s'..." -msgstr "'%s'-നുള്ള ഒരു വയര്‍ഡ് നെറ്റ്‌വര്‍ക്ക് വിലാസം ആവശ്യപ്പെടുന്നു..." +msgstr "'%s'-നുള്ള ഒരു വയര്‍ഡ് ശൃംഖല വിലാസം ആവശ്യപ്പെടുന്നു..." -#: ../src/applet-device-wired.c:314 +#: ../src/applet-device-wired.c:313 #, c-format msgid "Wired network connection '%s' active" -msgstr "വയര്‍ഡ് നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ '%s' സജീവമാണു്" +msgstr "വയര്‍ഡ് ശൃംഖല ബന്ധം '%s' സജീവമാണു്" -#: ../src/applet-device-wired.c:565 +#: ../src/applet-device-wired.c:494 msgid "DSL authentication" -msgstr "DSL ആധികാരികത ഉറപ്പാക്കല്‍" +msgstr "ഡിഎസ്എല്‍ ആധികാരികത ഉറപ്പാക്കല്‍" -#: ../src/applet-device-wifi.c:87 +#: ../src/applet-device-wifi.c:97 msgid "_Connect to Hidden Wireless Network..." -msgstr "അദൃശ്യമായ വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്കിലേക്ക് ക_ണക്ട് ചെയ്യുക..." +msgstr "അദൃശ്യമായ വയര്‍ലെസ് ശൃംഖലയുമായി ബ_ന്ധപ്പെടുക..." -#: ../src/applet-device-wifi.c:120 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." -msgstr "_പുതിയ വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക് ഉണ്ടാക്കുക" +msgstr "_പുതിയ വയര്‍ലെസ് ശൃംഖല ഉണ്ടാക്കുക..." + +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(ഒന്നുമില്ല)" -#: ../src/applet-device-wifi.c:748 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" -msgstr "വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്കുകള്‍ (%s)" +msgstr "വയര്‍ലെസ് ശൃംഖലകള്‍ (%s)" -#: ../src/applet-device-wifi.c:750 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" -msgstr "വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക് (%s)" +msgstr "വയര്‍ലെസ് ശൃംഖല (%s)" -#: ../src/applet-device-wifi.c:752 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" -msgstr[0] "വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക്" -msgstr[1] "വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്കുകള്‍" +msgstr[0] "വയര്‍ലെസ് ശൃംഖല" +msgstr[1] "വയര്‍ലെസ് ശൃംഖലകള്‍" -#: ../src/applet-device-wifi.c:782 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "വയര്‍ലെസ് സജ്ജമല്ല" -#: ../src/applet-device-wifi.c:843 +#: ../src/applet-device-wifi.c:828 +msgid "wireless is disabled by hardware switch" +msgstr "ഹാര്‍ഡ്‌​വെയര്‍ സ്വിച്ച് ഉപയോഗിച്ച് വയര്‍ലെസ്സ് പ്രവര്‍ത്തന രഹിതമാക്കിയിരിക്കുന്നു" + +#: ../src/applet-device-wifi.c:889 msgid "More networks" -msgstr "കൂടുതല്‍ നെറ്റ്‌വര്‍ക്കുകള്‍" +msgstr "കൂടുതല്‍ ശൃംഖലകള്‍" -#: ../src/applet-device-wifi.c:1047 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" -msgstr "ലഭ്യമായ വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്കുകള്‍" +msgstr "ലഭ്യമായ വയര്‍ലെസ് ശൃംഖലകള്‍" -#: ../src/applet-device-wifi.c:1048 -msgid "Click on this icon to connect to a wireless network" -msgstr "ഒരു വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്കിലേക്കു് കണക്ട് ചെയ്യുന്നതിനായി ഈ ചിഹ്നത്തില്‍ ക്ലിക്ക് ചെയ്യുക" +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a wireless network" +msgstr "ശൃംഖലകളുടെ പട്ടികയുപയോഗിച്ചു് ഒരു വയര്‍ലെസ് ശൃംഖലയുമായി ബന്ധപ്പെടുക" -#: ../src/applet-device-wifi.c:1051 ../src/applet.c:677 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "ഈ സന്ദേശം ഇനി കാണിക്കരുതു്" -#: ../src/applet-device-wifi.c:1255 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." -msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക്'%s'-ലേക്ക് കണക്ട് ചെയ്യപ്പെട്ടിരിക്കുന്നു." - -#: ../src/applet-device-wifi.c:1256 ../src/applet-device-wifi.c:1287 -msgid "(none)" -msgstr "(ഒന്നുമില്ല)" +msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ വയര്‍ലെസ് ശൃംഖല '%s'-മായി ബന്ധപ്പെട്ടിരിയ്ക്കുന്നു." -#: ../src/applet-device-wifi.c:1297 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." -msgstr "വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ '%s'-നായി തയ്യാറെടുക്കുന്നു..." +msgstr "വയര്‍ലെസ് ശൃംഖല ബന്ധം '%s'-നായി തയ്യാറെടുക്കുന്നു..." -#: ../src/applet-device-wifi.c:1300 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." -msgstr "വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ '%s' ക്രമീകരിക്കുന്നു..." +msgstr "വയര്‍ലെസ് ശൃംഖല ബന്ധം '%s' ക്രമീകരിക്കുന്നു..." -#: ../src/applet-device-wifi.c:1303 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." -msgstr "" -"വയര്‍ലെസ് കണക്ഷന്‍ '%s'-നു് ഉപയോക്താവിനോടു് ആധികാരികത ഉറപ്പാക്കുന്നതിനായി " -"ആവശ്യപ്പെട്ടിരിക്കുന്നു..." +msgstr "വയര്‍ലെസ് ബന്ധം '%s' ഉപയോക്താവിനോടു് ആധികാരികത ഉറപ്പാക്കുന്നതിനായി ആവശ്യപ്പെട്ടിരിക്കുന്നു..." -#: ../src/applet-device-wifi.c:1306 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." -msgstr "'%s'-നുള്ള ഒരു വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക് വിലാസത്തിനായി ആവശ്യപ്പെടുന്നു..." +msgstr "'%s'-നുള്ള ഒരു വയര്‍ലെസ് ശൃംഖല വിലാസത്തിനായി ആവശ്യപ്പെടുന്നു..." -#: ../src/applet-device-wifi.c:1326 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ '%s' സജീവമാണു്: %s (%d%%)" +msgstr "വയര്‍ലെസ് ശൃംഖല ബന്ധം '%s' സജീവമാണു്: %s (%d%%)" -#: ../src/applet-device-wifi.c:1330 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" -msgstr "വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ '%s' സജീവമാണു്" +msgstr "വയര്‍ലെസ് ശൃംഖല ബന്ധം '%s' സജീവമാണു്" + +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "ബന്ധം സജീവമാക്കുന്നതില്‍ പരാജയപ്പെട്ടു" + +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +msgid "Unknown error" +msgstr "അറിയാത്ത ഏതോ പ്രശ്നം" + +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 +msgid "Connection failure" +msgstr "ബന്ധമായില്ല" -#: ../src/applet-dialogs.c:56 +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "പുതിയ ബന്ധം ചേര്‍ക്കാനായില്ല" + +#: ../src/applet-device-wimax.c:231 +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "വൈമാക്സ് മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് (%s)" + +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "വൈമാക്സ് മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ്" + +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "വൈമാക്സ് പ്രവര്‍ത്തനരഹിതമാക്കിയിരിയ്ക്കുന്നു" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "ഹാര്‍ഡ്​വെയര്‍ സ്വിച്ച് ഉപയോഗിച്ച് വൈമാക്സ് പ്രവര്‍ത്തന രഹിതമാക്കിയിരിക്കുന്നു" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "നിങ്ങള്‍ ഇപ്പോള്‍ വൈമാക്സ് ശൃംഖലയുമായി ബന്ധപ്പെട്ടിരിയ്ക്കുന്നു." + +#: ../src/applet-dialogs.c:57 msgid "Error displaying connection information:" -msgstr "കണക്ഷന്‍ സംബന്ധിച്ചുള്ള വിവരം കാണിക്കുന്നതില്‍ പിശക്" +msgstr "ബന്ധം സംബന്ധിച്ചുള്ള വിവരം കാണിക്കുന്നതില്‍ പിശക്" -#: ../src/applet-dialogs.c:87 -#: ../src/connection-editor/page-wireless-security.c:284 -#: ../src/wireless-dialog.c:962 -#: ../src/wireless-security/wireless-security.c:341 +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" -msgstr "LEAP" +msgstr "എല്‍ഇഎപി" -#: ../src/applet-dialogs.c:89 +#: ../src/applet-dialogs.c:111 msgid "Dynamic WEP" -msgstr "ഡൈനമിക് WEP" +msgstr "ഡൈനമിക് ഡബ്ലിയുഇപി" -#: ../src/applet-dialogs.c:91 ../src/applet-dialogs.c:192 -#: ../src/applet-dialogs.c:194 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" -msgstr "WPA/WPA2" +msgstr "ഡബ്ലിയുപിഎ/ഡബ്ലിയുപിഎ2" -#: ../src/applet-dialogs.c:190 +#: ../src/applet-dialogs.c:243 msgid "WEP" -msgstr "WEP" - -#: ../src/applet-dialogs.c:198 -#: ../src/connection-editor/page-wireless-security.c:238 -#: ../src/wireless-dialog.c:919 -#| msgid "None" -msgctxt "No wifi security used" -msgid "None" -msgstr "ഒന്നുമില്ല" +msgstr "ഡബ്ലിയുഇപി" -#: ../src/applet-dialogs.c:207 -#| msgid "None" -msgctxt "No wired security used" +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 +msgctxt "Wifi/wired security" msgid "None" msgstr "ഒന്നുമില്ല" -#: ../src/applet-dialogs.c:210 -#| msgid "Unknown" -msgctxt "Unknown/unrecognized wired or wifi security" -msgid "Unknown" -msgstr "അപരിചിതം" +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (സഹജം)" -#: ../src/applet-dialogs.c:280 ../src/applet-dialogs.c:382 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:282 ../src/applet-dialogs.c:384 -#: ../src/applet-dialogs.c:421 ../src/applet-dialogs.c:439 -#: ../src/applet-dialogs.c:450 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" msgid "Unknown" -msgstr "അപരിചിതം" +msgstr "അറിയില്ല" + +#: ../src/applet-dialogs.c:361 +#, c-format +msgid "%d dB" +msgstr "%d dB" -#: ../src/applet-dialogs.c:313 +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "അറിയില്ല" + +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "അറിയില്ല" + +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" -msgstr "ഇഥര്‍നെറ്റ് (%s)" +msgstr "ഇതര്‍നെറ്റ് (%s)" -#: ../src/applet-dialogs.c:315 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" -msgstr "802.11 WiFi (%s)" +msgstr "802.11 വൈഫൈ (%s)" -#: ../src/applet-dialogs.c:317 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" -msgstr "GSM (%s)" +msgstr "ജിഎസ്എം (%s)" -#: ../src/applet-dialogs.c:319 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" -msgstr "CDMA (%s)" +msgstr "സിഡിഎംഎ (%s)" + +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "വൈമാക്സ് (%s)" -#: ../src/applet-dialogs.c:324 +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "പൊതുവായ" + +#: ../src/applet-dialogs.c:436 msgid "Interface:" -msgstr "ഇന്റര്‍ഫെയിസ്:" +msgstr "വിനിമയതലം:" -#: ../src/applet-dialogs.c:340 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "ഹാര്‍ഡ്‌വെയര്‍ വിലാസം:" -#: ../src/applet-dialogs.c:350 +#. Driver +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "ഡ്രൈവര്‍:" -#: ../src/applet-dialogs.c:388 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "വേഗത:" -#: ../src/applet-dialogs.c:397 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "സുരക്ഷ:" -#: ../src/applet-dialogs.c:419 +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "സിഐഎന്‍ആര്‍:" + +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "ബിഎസ്ഐഡി:" + +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" + +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "ഐപി വിലാസം:" -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "അറിയില്ല" + +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "ബ്രോഡ്കാസ്റ്റ് വിലാസം:" -#: ../src/applet-dialogs.c:448 +#. Prefix +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "സബ്‌നെറ്റ് മാസ്ക്:" -#: ../src/applet-dialogs.c:460 +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "അറിയില്ല" + +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" -msgstr "സ്വതവേയുള്ള റൂട്ട്:" +msgstr "സഹജമായ റൂട്ട്:" -#: ../src/applet-dialogs.c:474 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" -msgstr "പ്രൈമറി DNS:" +msgstr "പ്രാഥമിക ഡിഎന്‍എസ്:" -#: ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" -msgstr "സെക്കന്‍ഡറി DNS:" +msgstr "രണ്ടാമത്തെ ഡിഎന്‍എസ്:" + +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "മൂന്നാമത്തെ ഡിഎന്‍എസ്:" + +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" + +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "അവഗണിക്കപ്പെട്ടവ" + +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "വിപിഎന്‍ തരം:" + +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "വിപിഎന്‍ ഗേറ്റ്‌വേ:" + +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "വിപിഎന്‍ ഉപയോക്തൃനാമം:" + +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "വിപിഎന്‍ ബാനര്‍:" + +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "അടിസ്ഥാന ബന്ധം:" + +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "അപരിചിതം" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:548 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" -msgstr "സാധുതയുള്ള സജീവമായ കണക്ഷനുകള്‍ ലഭ്യമായില്ല!" +msgstr "സാധുവായ സജീവ ബന്ധങ്ങളൊന്നും കണ്ടില്ല!" -#: ../src/applet-dialogs.c:674 +#: ../src/applet-dialogs.c:939 msgid "" -"Copyright © 2004-2008 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc." +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" msgstr "" -"Copyright © 2004-2008 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc." +"പകര്‍പ്പവകാശം © 2004-2008 റെഡ് ഹാറ്റ്, ഇന്‍ക്.\n" +"പകര്‍പ്പവകാശം © 2005-2008 നോവല്‍, ഇന്‍ക്." -#: ../src/applet-dialogs.c:676 +#: ../src/applet-dialogs.c:942 msgid "Notification area applet for managing your network devices and connections." -msgstr "നിങ്ങളുടെ നെറ്റ്‌വര്‍ക്ക് ഡിവൈസുകളും കണക്ഷനുകളും കൈകാര്യം ചെയ്യുന്നതിനായുള്ള അറിയിപ്പിനുള്ള സ്ഥലം." +msgstr "നിങ്ങളുടെ ശൃംഖല ഉപകരണങ്ങളും ബന്ധങ്ങളും കൈകാര്യം ചെയ്യുന്നതിനായുള്ള അറിയിപ്പിനുള്ള സ്ഥലം." -#: ../src/applet-dialogs.c:678 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "NetworkManager വെബ്സൈറ്റ്" -#: ../src/applet-dialogs.c:681 -msgid "translator-credits" -msgstr "അനി പീറ്റര്‍|Ani Peter " - -#: ../src/applet-dialogs.c:697 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "ലഭ്യമല്ലാത്ത റിസോഴ്സുകള്‍" -#: ../src/applet-dialogs.c:723 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് നെറ്റ്‌വര്‍ക്കിനുള്ള അടയാളവാക്ക്" -#: ../src/applet-dialogs.c:732 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "'%s'-ലേക്കു് ബന്ധപ്പെടുന്നതിനായി ഒരു അടയാളവാക്ക് ആവശ്യമുണ്ടു്." -#: ../src/applet-dialogs.c:750 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "അടയാളവാക്ക്:" -#: ../src/applet.c:790 +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "ഒരു ബന്ധം ചേര്‍ക്കാന്‍/സജീവമാക്കാന്‍ സാധിച്ചില്ല" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "ഉപകരണം വേര്‍പ്പെടുത്താന്‍ സാധിച്ചില്ല" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "വേര്‍പ്പെടുത്താന്‍ സാധിച്ചില്ല" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "ബന്ധം സജീവമാക്കാന്‍ സാധിച്ചില്ല" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -593,18 +790,18 @@ "interrupted." msgstr "" "\n" -"നെറ്റ്‌വര്‍ക്ക് കണക്ഷനില്‍ തടസ്സം നേരിട്ടതിനാല്‍ വിപിഎന്‍ കണക്ഷന്‍ '%s' പരാജയപ്പെട്ടു." +"ശൃംഖല കണക്ഷനില്‍ തടസ്സം നേരിട്ടതിനാല്‍ വിപിഎന്‍ ബന്ധം '%s' പരാജയപ്പെട്ടു." -#: ../src/applet.c:793 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service stopped unexpectedly." msgstr "" "\n" -"വിപിഎന്‍ സര്‍വീസ് അപ്രതീക്ഷിതമായി നിലച്ചതിനാല്‍ വിപിഎന്‍ കണക്ഷന്‍ '%s' പരാജയപ്പെട്ടു." +"വിപിഎന്‍ സര്‍വീസ് അപ്രതീക്ഷിതമായി നിലച്ചതിനാല്‍ വിപിഎന്‍ ബന്ധം '%s' പരാജയപ്പെട്ടു." -#: ../src/applet.c:796 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -612,65 +809,64 @@ "configuration." msgstr "" "\n" -"വിപിഎന്‍ സര്‍വീസ് തെറ്റായ ക്രമീകരണം തിരികെ ലഭ്യമാക്കിയതിനാല്‍വിപിഎന്‍ കണക്ഷന്‍ '%s' " -"പരാജയപ്പെട്ടു." +"വിപിഎന്‍ സേവനം തെറ്റായ ക്രമീകരമാണെന്നറിയിച്ചതിനാല്‍ വിപിഎന്‍ ബന്ധം '%s' പരാജയപ്പെട്ടു." -#: ../src/applet.c:799 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the connection attempt timed out." msgstr "" "\n" -"കണക്ഷനുള്ള സമയം കഴിഞ്ഞുപോയതിനാല്‍ വിപിഎന്‍ കണക്ഷന്‍ '%s' പരാജയപ്പെട്ടു." +"ബന്ധപ്പെടാനനുവദിച്ച സമയം കഴിഞ്ഞുപോയതിനാല്‍ വിപിഎന്‍ ബന്ധം '%s' പരാജയപ്പെട്ടു." -#: ../src/applet.c:802 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service did not start in time." msgstr "" "\n" -"വിപിഎന്‍ സേവനം ശരിയായ സമയത്തു് ആരംഭിക്കുവാന്‍ സാധ്യമാകാത്തതിനാല്‍ വിപിഎന്‍ കണക്ഷന്‍ '%s' " +"വിപിഎന്‍ സേവനം ശരിയായ സമയത്തു് ആരംഭിക്കുവാന്‍ സാധ്യമാകാത്തതിനാല്‍ വിപിഎന്‍ ബന്ധം '%s' " "പരാജയപ്പെട്ടു." -#: ../src/applet.c:805 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service failed to start." msgstr "" "\n" -"വിപിഎന്‍ സേവനം ആരംഭിക്കുന്നതിലുള്ള തടസ്സം കാരണം വിപിഎന്‍ കണക്ഷന്‍ '%s' പരാജയപ്പെട്ടു." +"വിപിഎന്‍ സേവനം ആരംഭിക്കുന്നതിലുള്ള തടസ്സം കാരണം വിപിഎന്‍ ബന്ധം '%s' പരാജയപ്പെട്ടു." -#: ../src/applet.c:808 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" "The VPN connection '%s' failed because there were no valid VPN secrets." msgstr "" "\n" -"ശരിയായ വിപിഎന്‍ രഹസ്യങ്ങള്‍ ലഭ്യമല്ലാത്തതിനാല്‍ വിപിഎന്‍ കണക്ഷന്‍ '%s' പരാജയപ്പെട്ടു." +"സാധുവായ വിപിഎന്‍ രഹസ്യങ്ങള്‍ ലഭ്യമല്ലാത്തതിനാല്‍ വിപിഎന്‍ ബന്ധം '%s' പരാജയപ്പെട്ടു." -#: ../src/applet.c:811 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" "The VPN connection '%s' failed because of invalid VPN secrets." msgstr "" "\n" -"തെറ്റായ വിപിഎന്‍ രഹസ്യങ്ങള്‍ കാരണം വിപിഎന്‍ കണക്ഷന്‍ '%s' പരാജയപ്പെട്ടു." +"അസാധുവായ വിപിഎന്‍ രഹസ്യങ്ങള്‍ കാരണം വിപിഎന്‍ ബന്ധം '%s' പരാജയപ്പെട്ടു." -#: ../src/applet.c:818 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" "The VPN connection '%s' failed." msgstr "" "\n" -"വിപിഎന്‍ കണക്ഷന്‍ '%s' പരാജയപ്പെട്ടു." +"വിപിഎന്‍ ബന്ധം '%s' പരാജയപ്പെട്ടു." -#: ../src/applet.c:836 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -678,35 +874,50 @@ "interrupted." msgstr "" "\n" -"വിപിഎന്‍ കണക്ഷനില്‍ തടസ്സം നേരിട്ടതിനാല്‍ വിപിഎന്‍ കണക്ഷന്‍ '%s' വിഛേദിക്കപ്പെട്ടു." +"വിപിഎന്‍ കണക്ഷനില്‍ തടസ്സം നേരിട്ടതിനാല്‍ വിപിഎന്‍ ബന്ധം '%s' വിഛേദിക്കപ്പെട്ടു." -#: ../src/applet.c:839 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" "The VPN connection '%s' disconnected because the VPN service stopped." msgstr "" "\n" -"വിപിഎന്‍ സര്‍വീസില്‍ തടസ്സം നേരിട്ടതിനാല്‍ വിപിഎന്‍ കണക്ഷന്‍ '%s' വിഛേദിക്കപ്പെട്ടു." +"വിപിഎന്‍ സേവനത്തില്‍ തടസ്സം നേരിട്ടതിനാല്‍ വിപിഎന്‍ ബന്ധം '%s' വിഛേദിക്കപ്പെട്ടു." -#: ../src/applet.c:845 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" "The VPN connection '%s' disconnected." msgstr "" "\n" -"വിപിഎന്‍ കണക്ഷന്‍ '%s' വിഛേദിക്കപ്പെട്ടു." +"വിപിഎന്‍ ബന്ധം '%s' വിഛേദിക്കപ്പെട്ടു." + +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"വിപിഎന്‍ കണക്ഷന്‍ വിജയകരമായി സ്ഥാപിച്ചിരിയ്ക്കുന്നു.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "വിപിഎന്‍ കണക്ഷന്‍ വിജയകരമായി സ്ഥാപിച്ചിരിയ്ക്കുന്നു.\n" -#: ../src/applet.c:876 +#: ../src/applet.c:1102 msgid "VPN Login Message" -msgstr "VPN ലോഗിന്‍ സന്ദേശം" +msgstr "വിപിഎന്‍ ലോഗിന്‍ സന്ദേശം" -#: ../src/applet.c:888 ../src/applet.c:896 ../src/applet.c:943 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" -msgstr "VPN കണക്ഷന്‍ പരാജയപ്പെട്ടു" +msgstr "വിപിഎന്‍ ബന്ധം പരാജയപ്പെട്ടു" -#: ../src/applet.c:950 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -715,12 +926,11 @@ "%s" msgstr "" "\n" -"വിപിഎന്‍ സര്‍വീസ് ആരംഭിക്കുവാന്‍ സാധിക്കാത്തതിനാല്‍, വിപിഎന്‍ കണക്ഷന്‍ '%s' ആരംഭിക്കുന്നതില്‍ " -"പരാജയപ്പെട്ടു.\n" +"വിപിഎന്‍ സേവനം ആരംഭിക്കുവാന്‍ സാധിക്കാത്തതിനാല്‍, വിപിഎന്‍ ബന്ധം '%s' പരാജയപ്പെട്ടു.\n" "\n" "%s" -#: ../src/applet.c:953 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -729,905 +939,842 @@ "%s" msgstr "" "\n" -"വിപിഎന്‍ കണക്ഷന്‍ '%s' ആരംഭിക്കുന്നതില്‍ പരാജയപ്പെട്ടു.\n" +"വിപിഎന്‍ ബന്ധം '%s' ആരംഭിക്കുന്നതില്‍ പരാജയപ്പെട്ടു.\n" "\n" "%s" -#: ../src/applet.c:1296 +#: ../src/applet.c:1496 +msgid "device not ready (firmware missing)" +msgstr "ഉപകരണം തയ്യാറല്ല (ഫേംവെയര്‍ ഇല്ല)" + +#: ../src/applet.c:1498 msgid "device not ready" -msgstr "ഡിവൈസ് തയ്യാറല്ല" +msgstr "ഉപകരണം തയ്യാറല്ല" -#: ../src/applet.c:1321 +#: ../src/applet.c:1524 msgid "Disconnect" -msgstr "കണക്ഷന്‍ വിഛേദിക്കുക" +msgstr "ബന്ധം വിഛേദിക്കുക" -#: ../src/applet.c:1335 +#: ../src/applet.c:1538 msgid "device not managed" -msgstr "ഡിവൈസ് കൈകാര്യം ചെയ്തിട്ടില്ല" +msgstr "ഉപകരണം കൈകാര്യം ചെയ്യാത്തതാണു്" -#: ../src/applet.c:1381 +#: ../src/applet.c:1582 msgid "No network devices available" -msgstr "നെറ്റ്‌വര്‍ക്ക് ഡിവൈസുകള്‍ ലഭ്യമല്ല" +msgstr "ശൃംഖല ഉപകരണങ്ങളൊന്നും ലഭ്യമല്ല" -#: ../src/applet.c:1469 +#: ../src/applet.c:1670 msgid "_VPN Connections" -msgstr "_വിപിഎന്‍ കണക്ഷനുകള്‍" +msgstr "_വിപിഎന്‍ ബന്ധങ്ങള്‍" -#: ../src/applet.c:1522 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "വിപി_എന്‍ ക്രമീകരിക്കുക..." -#: ../src/applet.c:1526 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "വിപിഎന്‍ _വിഛേദിക്കുക" -#: ../src/applet.c:1613 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "NetworkManager പ്രവര്‍ത്തനത്തിലില്ല..." -#: ../src/applet.c:1618 ../src/applet.c:2394 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" -msgstr "നെറ്റ്‌വര്‍ക്കിങ് പ്രവര്‍ത്ത രഹിതമാക്കിയിരിക്കുന്നു" +msgstr "ശൃംഖല ബന്ധം പ്രവര്‍ത്ത രഹിതമാക്കിയിരിക്കുന്നു" #. 'Enable Networking' item -#: ../src/applet.c:1835 +#: ../src/applet.c:2051 msgid "Enable _Networking" -msgstr "_നെറ്റ്‌വര്‍ക്കിങ് സജ്ജമാക്കുക" +msgstr "_ശൃംഖല ബന്ധം സജ്ജമാക്കുക" #. 'Enable Wireless' item -#: ../src/applet.c:1844 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "_വയര്‍ലെസ് സജ്ജമാക്കുക" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:1853 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "_മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് സജ്ജമാക്കുക" +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2078 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "വൈമാ_ക്സ് മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് പ്രവര്‍ത്തനസജ്ജമാക്കുക" + #. Toggle notifications item -#: ../src/applet.c:1864 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "അറിയിപ്പു_കള്‍ പ്രവര്‍ത്തന സജ്ജമാക്കുക" #. 'Connection Information' item -#: ../src/applet.c:1875 +#: ../src/applet.c:2100 msgid "Connection _Information" -msgstr "കണക്ഷന്‍ _വിവരം" +msgstr "ബന്ധ _വിവരം" #. 'Edit Connections...' item -#: ../src/applet.c:1885 +#: ../src/applet.c:2110 msgid "Edit Connections..." -msgstr "കണക്ഷനുകള്‍ ചിട്ടപ്പെടുത്തുക..." +msgstr "ബന്ധങ്ങള്‍ ചിട്ടപ്പെടുത്തുക..." #. Help item -#: ../src/applet.c:1899 +#: ../src/applet.c:2124 msgid "_Help" msgstr "_സഹായം" #. About item -#: ../src/applet.c:1908 +#: ../src/applet.c:2133 msgid "_About" -msgstr "_സംബന്ധിച്ചു്" +msgstr "_അണിയറ വിശേഷം" -#: ../src/applet.c:2099 +#: ../src/applet.c:2310 msgid "Disconnected" -msgstr "കണക്ഷന്‍ വിഛേദിച്ചിരിക്കുന്നു" +msgstr "ബന്ധംവിഛേദിച്ചിരിക്കുന്നു" -#: ../src/applet.c:2100 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." -msgstr "നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ വിഛേദിച്ചിരിക്കുന്നു." +msgstr "ശൃംഖല ബന്ധം വിഛേദിച്ചിരിക്കുന്നു." -#: ../src/applet.c:2260 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." -msgstr "നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ '%s'-നായി തയ്യാറെടുക്കുന്നു..." +msgstr "ശൃംഖല ബന്ധം '%s'-നായി തയ്യാറെടുക്കുന്നു..." -#: ../src/applet.c:2263 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." -msgstr "" -"നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ '%s'-നു് ഉപയോക്താവിനോടു് ആധികാരികത ഉറപ്പാക്കുന്നതിനായി " -"ആവശ്യപ്പെട്ടിരിക്കുന്നു..." +msgstr "ശൃംഖല ബന്ധം '%s' ഉപയോക്താവിനോടു് ആധികാരികത ഉറപ്പാക്കുന്നതിനായി ആവശ്യപ്പെട്ടിരിക്കുന്നു..." -#: ../src/applet.c:2269 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" -msgstr "നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ '%s' സജീവമാണു്" +msgstr "ശൃംഖല ബന്ധം '%s' സജീവമാണു്" -#: ../src/applet.c:2350 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." -msgstr "VPN കണക്ഷന്‍'%s' ആരംഭിക്കുന്നു..." +msgstr "വിപിഎന്‍ ബന്ധം '%s' ആരംഭിക്കുന്നു..." -#: ../src/applet.c:2353 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." -msgstr "" -"വിപിഎന്‍ കണക്ഷന്‍ '%s'-നു് ഉപയോക്താവിനോടു് ആധികാരികത ഉറപ്പാക്കുന്നതിനായി " -"ആവശ്യപ്പെട്ടിരിക്കുന്നു..." +msgstr "വിപിഎന്‍ ബന്ധം '%s' ഉപയോക്താവിനോടു് ആധികാരികത ഉറപ്പാക്കുന്നതിനായി ആവശ്യപ്പെട്ടിരിക്കുന്നു..." -#: ../src/applet.c:2356 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "'%s'-നായി ഒരു വിപിഎന്‍ വിലാസം ആവശ്യപ്പെടുന്നു..." -#: ../src/applet.c:2359 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" -msgstr "വിപിഎന്‍ കണക്ഷന്‍ '%s' സജീവമാണു്" +msgstr "വിപിഎന്‍ ബന്ധം '%s' സജീവമാണു്" -#: ../src/applet.c:2398 +#: ../src/applet.c:2636 msgid "No network connection" -msgstr "നെറ്റ്‌വര്‍ക്ക് കണക്ഷന്‍ ലഭ്യമല്ല" +msgstr "ശൃംഖല ബന്ധം ലഭ്യമല്ല" -#: ../src/applet.c:2947 +#: ../src/applet.c:3336 msgid "NetworkManager Applet" -msgstr "NetworkManager ആപ്ലെറ്റ്" - -#: ../src/applet.c:2953 ../src/wired-dialog.c:128 -msgid "" -"The NetworkManager Applet could not find some required resources (the glade " -"file was not found)." -msgstr "" -"ആവശ്യമുള്ള ചില ഉറവിടങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ NetworkManager ആപ്ലെറ്റിനു് സാധ്യമായില്ല (glade " -"ഫയല്‍ ലഭ്യമായില്ല)" - -#: ../src/applet.glade.h:1 ../src/connection-editor/ce-vpn-wizard.glade.h:1 -msgid " " -msgstr " " - -#: ../src/applet.glade.h:2 -msgid "" -"1 (Default)\n" -"2\n" -"3\n" -"4" -msgstr "" -"1 (സ്വതവേയുള്ളതു്)\n" -"2\n" -"3\n" -"4" - -#: ../src/applet.glade.h:6 -msgid "Active Network Connections" -msgstr "സജീവമായ നെറ്റ്‌വര്‍ക്ക് കണക്ഷനുകള്‍" +msgstr "NetworkManager ലഘുപ്രയോഗം" -#: ../src/applet.glade.h:7 -msgid "Anony_mous identity:" -msgstr "_അ‍ജ്ഞാതം:" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "ഈ ഉപകരണം സ്വയം തുറക്കുക" -#: ../src/applet.glade.h:8 -msgid "As_k for this password every time" -msgstr "അടയാളവാക്ക് എപ്പോഴും ചോ_ദിക്കുക" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_പൂട്ട് തുറക്കുക" -#: ../src/applet.glade.h:9 -msgid "" -"Automatic\n" -"Version 0\n" -"Version 1" -msgstr "" -"ഓട്ടോമാറ്റിക്\n" -"പതിപ്പ് 0\n" -"പതിപ്പ് 1" +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "ബന്ധവിവരം" -#: ../src/applet.glade.h:12 -msgid "C_A certificate:" -msgstr "C_A സര്‍ട്ടിഫീക്കേറ്റ്:" +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "സജീവ ശൃംഖല ബന്ധങ്ങള്‍" -#: ../src/applet.glade.h:13 -msgid "C_onnect" -msgstr "_കണക്ട് ചെയ്യുക" +#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 +msgid "Wired 802.1X authentication" +msgstr "വയര്‍ഡ് 802.1X ആധികാരികത" -#: ../src/applet.glade.h:14 -msgid "Co_nnection:" -msgstr "ക_ണക്ഷന്‍:" +#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_ശൃംഖലയുടെ പേരു്:" -#: ../src/applet.glade.h:15 -msgid "Connection Information" -msgstr "കണക്ഷന്‍ വിവരം" +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "സ്വയം" -#: ../src/applet.glade.h:16 -msgid "Don't _warn me again" -msgstr "ഇനി _മുന്നറിയിപ്പ് നല്‍കേണ്ടതില്ല" +#: ../src/connection-editor/ce-page.c:318 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "അപരിചിതമായ പിശക് കാരണം ബന്ധ രഹസ്യങ്ങള്‍ പരിഷ്കരിക്കുന്നതില്‍ പരാജയം." -#: ../src/applet.glade.h:17 -msgid "I_dentity:" -msgstr "_തിരിച്ചറിയല്‍:" +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 +msgid "" +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." +msgstr "" +"നിങ്ങളുടെ കമ്പ്യൂട്ടറിനെ ശൃംഖലയില്‍ തിരിച്ചറിയുന്നതു് ഐപി വിലാസങ്ങള്‍ വഴിയാണു്. ഒരു ഐപി വിലാസം " +"ചേര്‍ക്കുന്നതിനായി \"ചേര്‍ക്കുക\" എന്ന ബട്ടണില്‍ ക്ലിക്ക് ചെയ്യുക." -#: ../src/applet.glade.h:18 -msgid "I_nner authentication:" -msgstr "ഇ_ന്നര്‍ ഓഥന്റിക്കേഷന്‍:" +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "Ig_nore automatically obtained routes" +msgstr "സ്വയം ലഭിച്ച റൂട്ടുകള്‍ അവ_ഗണിക്കുക" -#: ../src/applet.glade.h:19 -msgid "No" -msgstr "ഇല്ല" +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +msgid "_Use this connection only for resources on its network" +msgstr "ഈ _ബന്ധത്തിന്റെ ശൃംഖലയിലുള്ള വസ്തുക്കള്‍ക്കു് മാത്രം ഉപയോഗിയ്ക്കുക" -#: ../src/applet.glade.h:20 +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 msgid "" -"Open System\n" -"Shared Key" -msgstr "" -"ഓപ്പണ്‍ സിസ്റ്റം\n" -"ഷെയര്‍ഡ് കീ" - -#: ../src/applet.glade.h:22 -msgid "Other Wireless Network..." -msgstr "മറ്റുള്ള വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക്..." +"If enabled, this connection will never be used as the default network " +"connection." +msgstr "സജ്ജമെങ്കില്‍, ഈ ബന്ധം ഒരിക്കലും സഹജമായി ശൃംഖല ബന്ധമായി ഉപയോഗിക്കുവാന്‍ സാധ്യമല്ല." -#: ../src/applet.glade.h:23 -msgid "Private _key:" -msgstr "സ്വകാര്യ _കീ:" +#: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 +#: ../src/wireless-security/eap-method-leap.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/ws-leap.ui.h:1 +msgid "_Username:" +msgstr "_ഉപയോക്താവിന്റെ പേരു്:" -#: ../src/applet.glade.h:24 -msgid "Sho_w key" -msgstr "കീ കാ_ണിക്കുക" +#: ../src/connection-editor/ce-page-dsl.ui.h:2 +msgid "_Service:" +msgstr "_സേവനം:" -#: ../src/applet.glade.h:25 ../src/connection-editor/ce-page-dsl.glade.h:1 +#: ../src/connection-editor/ce-page-dsl.ui.h:3 +#: ../src/wireless-security/eap-method-leap.ui.h:3 +#: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 +#: ../src/wireless-security/ws-leap.ui.h:3 +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 msgid "Sho_w password" msgstr "അടയാളവാക്ക് കാ_ണിക്കുക" -#: ../src/applet.glade.h:26 -msgid "WEP inde_x:" -msgstr "WEP _സൂചിക:" - -#: ../src/applet.glade.h:27 -msgid "Wireless _adapter:" -msgstr "വയര്‍ലെസ് _അഡാപ്ടര്‍:" - -#: ../src/applet.glade.h:28 -msgid "Yes" -msgstr "ഉവ്വു്" - -#: ../src/applet.glade.h:29 -msgid "_Authentication:" -msgstr "_ആധികാരികത ഉറപ്പാക്കല്‍:" - -#: ../src/applet.glade.h:30 -msgid "_Key:" -msgstr "_കീ:" - -#: ../src/applet.glade.h:31 -msgid "_Network name:" -msgstr "_നെറ്റ്‌വര്‍ക്കിന്റെ പേരു്:" - -#: ../src/applet.glade.h:32 -msgid "_PEAP version:" -msgstr "_PEAP പതിപ്പ്:" - -#: ../src/applet.glade.h:33 ../src/connection-editor/ce-page-dsl.glade.h:2 -#: ../src/connection-editor/ce-page-mobile.glade.h:15 +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 msgid "_Password:" msgstr "_അടയാളവാക്ക്:" -#: ../src/applet.glade.h:34 -msgid "_Private key password:" -msgstr "_സ്വകാര്യ കീ അടയാളവാക്ക്:" - -#: ../src/applet.glade.h:35 ../src/connection-editor/ce-page-mobile.glade.h:16 -msgid "_Type:" -msgstr "_തരം:" - -#: ../src/applet.glade.h:36 -msgid "_Unlock" -msgstr "_പൂട്ട് തുറക്കുക" - -#: ../src/applet.glade.h:37 -msgid "_User certificate:" -msgstr "_ഉപയോക്താവിന്റെ സര്‍ട്ടിഫീക്കേറ്റ്:" - -#: ../src/applet.glade.h:38 ../src/connection-editor/ce-page-dsl.glade.h:4 -#: ../src/connection-editor/ce-page-mobile.glade.h:17 -msgid "_Username:" -msgstr "_ഉപയോക്തൃനാമം:" - -#: ../src/applet.glade.h:39 -msgid "_Wireless security:" -msgstr "_വയര്‍ലെസ് സുരക്ഷ:" - -#: ../src/applet.glade.h:40 -msgid "label" -msgstr "ലേബല്‍" +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wired.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "സ്വയം" -#: ../src/connection-editor/ce-page.c:69 -msgid "automatic" -msgstr "ഓട്ടോമാറ്റിക്" +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 +msgid "Automatic with manual DNS settings" +msgstr "നിങ്ങള്‍ നല്‍കിയ ഡിഎന്‍എസ് സജ്ജീകരണങ്ങളുപയോഗിച്ചു് സ്വയം" + +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "നിങ്ങള്‍ നല്‍കിയ" -#: ../src/connection-editor/ce-page.c:221 -#: ../src/connection-editor/nm-connection-editor.c:616 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "അപരിചിതമായ പിശക് കാരണം കണക്ഷന്‍ രഹസ്യങ്ങള്‍ പരിഷ്കരിക്കുന്നതില്‍ പരാജയം." +#: ../src/connection-editor/ce-page-ip4.ui.h:4 +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "ലിങ്ക്-ലോക്കല്‍" + +#: ../src/connection-editor/ce-page-ip4.ui.h:5 +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "മറ്റു് കമ്പ്യൂട്ടറുകളുമായി പങ്കിടുന്നു" -#: ../src/connection-editor/ce-page-dsl.glade.h:3 -msgid "_Service:" -msgstr "_സര്‍വീസ്:" +#: ../src/connection-editor/ce-page-ip4.ui.h:6 +#: ../src/connection-editor/ce-page-ip6.ui.h:6 +msgid "_Method:" +msgstr "_രീതി:" -#: ../src/connection-editor/ce-page-ip4.glade.h:1 -#: ../src/connection-editor/ce-page-ip6.glade.h:1 -msgid "Addresses" -msgstr "വിലാസങ്ങള്‍" - -#: ../src/connection-editor/ce-page-ip4.glade.h:2 -#: ../src/connection-editor/ce-page-ip6.glade.h:2 -msgid "" -"Automatic\n" -"Automatic with manual DNS settings\n" -"Manual\n" -"Link-Local\n" -"Shared to other computers" -msgstr "" -"ഓട്ടോമാറ്റിക്\n" -"ഓട്ടോമാറ്റിക്, ഉപ്പം മാനുവല്‍ DNS സജ്ജീകരണങ്ങള്‍\n" -"മാനുവല്‍\n" -"ലിങ്ക്-ലോക്കല്‍\n" -"മറ്റുള്ള കമ്പ്യൂട്ടറുകളുമായി പങ്കിടുക" +#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip6.ui.h:7 +msgid "Addresses" +msgstr "വിലാസങ്ങള്‍" -#: ../src/connection-editor/ce-page-ip4.glade.h:7 -msgid "D_HCP client ID:" -msgstr "D_HCP ക്ലൈന്റ് ID:" +#: ../src/connection-editor/ce-page-ip4.ui.h:9 +msgid "" +"The DHCP client identifier allows the network administrator to customize " +"your computer's configuration. If you wish to use a DHCP client identifier, " +"enter it here." +msgstr "" +"DHCP ക്ലയന്റ് ഐഡന്റിഫയര്‍ നിങ്ങളുടെ കമ്പ്യൂട്ടറിന്റെ ക്രമീകരണം ഇഷ്ടാനുസൃതം സജ്ജമാക്കുന്നതിനായി " +"ശൃംഖല ഭരണാധികാരിയെ അനുവദിക്കുന്നു. നിങ്ങള്‍ക്കു് ഒരു DHCP ക്ലയന്റ് ഐഡന്റിഫയര്‍ ഉപയോഗിക്കണമെങ്കില്‍, " +"ഇവിടെ നല്‍കുക." -#: ../src/connection-editor/ce-page-ip4.glade.h:8 -#: ../src/connection-editor/ce-page-ip6.glade.h:7 +#: ../src/connection-editor/ce-page-ip4.ui.h:10 +#: ../src/connection-editor/ce-page-ip6.ui.h:9 msgid "" "Domains used when resolving host names. Use commas to separate multiple " "domains." msgstr "" -"ഹോസ്റ്റ് നാമങ്ങള്‍ റിസോള്‍വ് ചെയ്യുവാനുള്ള ഡൊമെയിനുകള്‍. ഡൊമെയിനുകള്‍ തമ്മില്‍ കോമാ ഉപയോഗിച്ചു് " -"വേര്‍തിരിക്കുക." +"ഹോസ്റ്റ് നാമങ്ങള്‍ റിസോള്‍വ് ചെയ്യുമ്പോള്‍ ഉപയോഗിയ്ക്കുന്ന ഡൊമെയിനുകള്‍. ഡൊമെയിനുകള്‍ തമ്മില്‍ കോമാ " +"ഉപയോഗിച്ചു് വേര്‍തിരിക്കുക." -#: ../src/connection-editor/ce-page-ip4.glade.h:9 -#: ../src/connection-editor/ce-page-ip6.glade.h:8 -msgid "" -"IP addresses identify your computer on the network. Click the \"Add\" " -"button to add an IP address." -msgstr "" -"നെറ്റ്‌വര്‍ക്കിലുള്ള നിങ്ങളുടെ കമ്പ്യൂട്ടറിനെ IP വിലാസങ്ങള്‍ വഴി തിരിച്ചറിയുന്നു. ഒരു IP വിലാസം " -"ചേര്‍ക്കുന്നതിനായി \"ചേര്‍ക്കുക\" എന്ന ബട്ടണില്‍ ക്ലിക്ക് ചെയ്യുക." +#: ../src/connection-editor/ce-page-ip4.ui.h:11 +msgid "D_HCP client ID:" +msgstr "D_HCP ക്ലയന്റ് ID:" + +#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 +msgid "S_earch domains:" +msgstr "_തിരയേണ്ട ഡൊമെയിനുകള്‍:" + +#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 +msgid "_DNS servers:" +msgstr "_ഡിഎന്‍എസ് സെര്‍വറുകള്‍:" -#: ../src/connection-editor/ce-page-ip4.glade.h:10 -#: ../src/connection-editor/ce-page-ip6.glade.h:9 +#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip6.ui.h:12 msgid "" "IP addresses of domain name servers used to resolve host names. Use commas " "to separate multiple domain name server addresses." msgstr "" -"ഹോസ്റ്റ് നാമങ്ങള്‍ റിസോള്‍വ് ചെയ്യുവാന്‍ ഉപയോഗിക്കുന്ന ഡൊമെയിന്‍ നെയിം സര്‍വറുകളുടെ ഐപി വിലാസങ്ങള്‍. " -"ഡൊമെയിന്‍ നെയിം സര്‍വര്‍ വിലാസങ്ങള്‍ തമ്മില്‍ കോമാ ഉപയോഗിച്ചു് വേര്‍തിരിക്കുക." - -#: ../src/connection-editor/ce-page-ip4.glade.h:11 -#: ../src/connection-editor/ce-page-ip6.glade.h:10 -msgid "" -"If enabled, this connection will never be used as the default network " -"connection." -msgstr "സജ്ജമെങ്കില്‍, ഈ കണക്ഷന്‍ ഒരിക്കലും സ്വതവേയുള്ള നെറ്റ്‌വര്‍ക്ക് കണക്ഷനായി ഉപയോഗിക്കുവാന്‍ സാധ്യമല്ല." - -#: ../src/connection-editor/ce-page-ip4.glade.h:12 -#: ../src/connection-editor/ce-page-ip6.glade.h:11 -msgid "Ig_nore automatically obtained routes" -msgstr "ഓട്ടോമാറ്റിക്കായി ലഭ്യമാകുന്ന റൂട്ടുകള്‍ അവ_ഗണിക്കുക" - -#: ../src/connection-editor/ce-page-ip4.glade.h:13 -msgid "Require IPv4 addressing for this connection to complete" -msgstr "ഈ കണക്ഷന്‍ പൂര്‍ത്തിയാക്കുന്നതിനായി IPv4 അഡ്ഡ്രസിങ് ആവശ്യമുണ്ടു്" - -#: ../src/connection-editor/ce-page-ip4.glade.h:14 -msgid "" -"The DHCP client identifier allows the network administrator to customize " -"your computer's configuration. If you wish to use a DHCP client identifier, " -"enter it here." -msgstr "" -"DHCP ക്ലയന്റ് ഐഡന്റിഫയര്‍ നിങ്ങളുടെ കമ്പ്യൂട്ടറിന്റെ ക്രമീകരണം ഇഷ്ടാനുസൃതം സജ്ജമാക്കുന്നതിനായി " -"നെറ്റ്‌വര്‍ക്ക് അഡ്മിനിസ്ട്രേറ്ററിനെ അനുവദിക്കുന്നു. നിങ്ങള്‍ക്കു് ഒരു DHCP ക്ലയന്റ് ഐഡന്റിഫയര്‍ " -"ഉപയോഗിക്കണമെങ്കില്‍, ഇവിടെ നല്‍കുക." +"ഹോസ്റ്റ് നാമങ്ങള്‍ റിസോള്‍വ് ചെയ്യുവാന്‍ ഉപയോഗിക്കുന്ന ഡൊമെയിന്‍ നെയിം സെര്‍വറുകളുടെ ഐപി വിലാസങ്ങള്‍. " +"ഡൊമെയിന്‍ നെയിം സെര്‍വര്‍ വിലാസങ്ങള്‍ തമ്മില്‍ കോമാ ഉപയോഗിച്ചു് വേര്‍തിരിക്കുക." -#: ../src/connection-editor/ce-page-ip4.glade.h:15 -#: ../src/connection-editor/ce-page-ip6.glade.h:13 -msgid "Use this c_onnection only for resources on its network" -msgstr "ഈ _കണക്ഷന്റെ നെറ്റ്‌വര്‍ക്കില്‍ മാത്രമുള്ള റിസോഴ്സുകള്‍ക്കായി ഉപയോഗിക്കുക" +#: ../src/connection-editor/ce-page-ip4.ui.h:15 +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "ഈ ബന്ധം പൂര്‍ത്തിയാക്കുന്നതിനായി IPv_4 അഡ്രസിങ് ആവശ്യമുണ്ടു്" -#: ../src/connection-editor/ce-page-ip4.glade.h:16 +#: ../src/connection-editor/ce-page-ip4.ui.h:16 msgid "" "When connecting to IPv6-capable networks, allows the connection to complete " "if IPv4 configuration fails but IPv6 configuration succeeds." msgstr "" -"IPv6-നുള്ള നെറ്റ്‌വര്‍ക്കുകളിലേക്കു് കണക്ട് ചെയ്യുമ്പോള്‍, IPv4 ക്രമീകരണം പരാജയപ്പെടുകയും IPv6 " -"ക്രമീകരണം വിജയിക്കുകയും ചെയ്താല്‍ കണക്ഷന്‍ പൂര്‍ത്തിയാക്കുവാന്‍ അനുവദിക്കുന്നു." - -#: ../src/connection-editor/ce-page-ip4.glade.h:17 -#: ../src/connection-editor/ce-page-ip6.glade.h:15 -msgid "_DNS servers:" -msgstr "_DNS സര്‍വറുകള്‍:" - -#: ../src/connection-editor/ce-page-ip4.glade.h:18 -#: ../src/connection-editor/ce-page-ip6.glade.h:16 -msgid "_Method:" -msgstr "_മാര്‍ഗം:" +"IPv6-നുള്ള ശൃംഖലകളുമായി ബന്ധപ്പെടുമ്പോള്‍, IPv4 ക്രമീകരണം പരാജയപ്പെടുകയും IPv6 ക്രമീകരണം " +"വിജയിക്കുകയും ചെയ്താല്‍ ബന്ധം പൂര്‍ത്തിയാക്കുവാന്‍ അനുവദിക്കുന്നു." -#: ../src/connection-editor/ce-page-ip4.glade.h:19 -#: ../src/connection-editor/ce-page-ip6.glade.h:17 -msgid "_Routes…" -msgstr "_Routes…" - -#: ../src/connection-editor/ce-page-ip4.glade.h:20 -#: ../src/connection-editor/ce-page-ip6.glade.h:18 -msgid "_Search domains:" -msgstr "ഡൊമെയിനുകള്‍ _തെരയുക:" - -#: ../src/connection-editor/ce-page-ip6.glade.h:12 -msgid "Require IPv6 addressing for this connection to complete" -msgstr "ഈ കണക്ഷന്‍ പൂര്‍ത്തിയാക്കുന്നതിനായി IPv6 അഡ്ഡ്രസിങ് ആവശ്യമുണ്ടു്" +#: ../src/connection-editor/ce-page-ip4.ui.h:17 +#: ../src/connection-editor/ce-page-ip6.ui.h:15 +msgid "_Routes…" +msgstr "_റൂട്ടുകള്‍…" + +#: ../src/connection-editor/ce-page-ip6.ui.h:13 +msgid "Require IPv_6 addressing for this connection to complete" +msgstr "ഈ ബന്ധം പൂര്‍ത്തിയാക്കുന്നതിനായി IPv_6 അഡ്രസിങ് ആവശ്യമുണ്ടു്" -#: ../src/connection-editor/ce-page-ip6.glade.h:14 +#: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "" "When connecting to IPv4-capable networks, allows the connection to complete " "if IPv6 configuration fails but IPv4 configuration succeeds." msgstr "" -"IPv4-നുള്ള നെറ്റ്‌വര്‍ക്കുകളിലേക്കു് കണക്ട് ചെയ്യുമ്പോള്‍, IPv6 ക്രമീകരണം പരാജയപ്പെടുകയും IPv4 " -"ക്രമീകരണം വിജയിക്കുകയും ചെയ്താല്‍ കണക്ഷന്‍ പൂര്‍ത്തിയാക്കുവാന്‍ അനുവദിക്കുന്നു." +"IPv4-നുള്ള ശൃംഖലകളുമായി ബന്ധപ്പെടുമ്പോള്‍, IPv6 ക്രമീകരണം പരാജയപ്പെടുകയും IPv4 ക്രമീകരണം " +"വിജയിക്കുകയും ചെയ്താല്‍ ബന്ധം പൂര്‍ത്തിയാക്കുവാന്‍ അനുവദിക്കുന്നു." -#: ../src/connection-editor/ce-page-mobile.glade.h:1 -msgid "Advanced" -msgstr "അധികമായ" - -#: ../src/connection-editor/ce-page-mobile.glade.h:2 -msgid "Basic" -msgstr "അടിസ്ഥാനം" - -#: ../src/connection-editor/ce-page-mobile.glade.h:3 -msgid "Allow roaming if home network is not available" -msgstr "ഹോം നെറ്റ്‌വര്‍ക്ക് ലഭ്യമെങ്കില്‍ റോമിങ് അനുവദിക്കുക" - -#: ../src/connection-editor/ce-page-mobile.glade.h:4 -msgid "" -"Any\n" -"3G (UMTS/HSPA)\n" -"2G (GPRS/EDGE)\n" -"Prefer 3G (UMTS/HSPA)\n" -"Prefer 2G (GPRS/EDGE)" -msgstr "" -"ഏതെങ്കിലും\n" -"3G (UMTS/HSPA)\n" -"2G (GPRS/EDGE)\n" -"Prefer 3G (UMTS/HSPA)\n" -"Prefer 2G (GPRS/EDGE)" +#: ../src/connection-editor/ce-page-mobile.ui.h:1 +msgid "Any" +msgstr "ഏതെങ്കിലും" + +#: ../src/connection-editor/ce-page-mobile.ui.h:2 +msgid "3G (UMTS/HSPA)" +msgstr "3ജി (യുഎംടിഎസ്/എച്ച്എസ്‌പിഎ)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:3 +msgid "2G (GPRS/EDGE)" +msgstr "2ജി (ജിപിആര്‍എസ്/എഡ്ജ്)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:4 +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "3ജി (യുഎംടിഎസ്/എച്ച്എസ്‌പിഎ) യ്ക്കു് മുന്‍ഗണന" + +#: ../src/connection-editor/ce-page-mobile.ui.h:5 +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "2ജി (ജിപിആര്‍എസ്/എഡ്ജ്) യ്ക്കു് മുന്‍ഗണന" + +#: ../src/connection-editor/ce-page-mobile.ui.h:6 +msgid "Basic" +msgstr "അടിസ്ഥാനം" -#: ../src/connection-editor/ce-page-mobile.glade.h:9 -msgid "Change..." -msgstr "മാറ്റുക..." +#: ../src/connection-editor/ce-page-mobile.ui.h:7 +msgid "Nu_mber:" +msgstr "ന_മ്പര്‍:" + +#: ../src/connection-editor/ce-page-mobile.ui.h:10 +msgid "Advanced" +msgstr "സങ്കീര്‍ണ്ണമായ" + +#: ../src/connection-editor/ce-page-mobile.ui.h:11 +msgid "_APN:" +msgstr "_എപിഎന്‍:" -#: ../src/connection-editor/ce-page-mobile.glade.h:10 +#: ../src/connection-editor/ce-page-mobile.ui.h:12 msgid "N_etwork ID:" -msgstr "_നെറ്റ്‌വര്‍ക്ക് ഐഡി:" +msgstr "_ശൃംഖല ഐഡി:" -#: ../src/connection-editor/ce-page-mobile.glade.h:11 -msgid "Nu_mber:" -msgstr "ന_മ്പര്‍:" +#: ../src/connection-editor/ce-page-mobile.ui.h:13 +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "_തരം:" -#: ../src/connection-editor/ce-page-mobile.glade.h:12 -msgid "PI_N:" -msgstr "PI_N:" +#: ../src/connection-editor/ce-page-mobile.ui.h:14 +msgid "Change..." +msgstr "മാറ്റുക..." -#: ../src/connection-editor/ce-page-mobile.glade.h:13 +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +msgid "P_IN:" +msgstr "_പിന്‍:" + +#: ../src/connection-editor/ce-page-mobile.ui.h:16 +msgid "Allow _roaming if home network is not available" +msgstr "വീട്ടിലെ ശൃംഖല ലഭ്യമല്ലെങ്കില്‍ _പുറത്തുള്ളവ അനുവദിക്കുക" + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 msgid "Sho_w passwords" msgstr "അടയാളവാക്കുകള്‍ _കാണിക്കുക" -#: ../src/connection-editor/ce-page-mobile.glade.h:14 -msgid "_APN:" -msgstr "_APN:" +#: ../src/connection-editor/ce-page-ppp.ui.h:1 +msgid "Authentication" +msgstr "തിരിച്ചറിയല്‍" -#: ../src/connection-editor/ce-page-ppp.glade.h:1 -msgid "Allowed Authentication Methods" -msgstr "ആധികാരികത ഉറപ്പാക്കുന്നതിനായി അനുവദിച്ചിട്ടുള്ള മാര്‍ഗങ്ങള്‍" +#: ../src/connection-editor/ce-page-ppp.ui.h:2 +msgid "Allowed methods:" +msgstr "അനുവദിച്ചിട്ടുള്ള രീതികള്‍:" -#: ../src/connection-editor/ce-page-ppp.glade.h:2 -msgid "Authentication" -msgstr "ആധികാരികത ഉറപ്പാക്കല്‍" +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "_രീതികള്‍ ക്രമീകരിക്കുക" -#: ../src/connection-editor/ce-page-ppp.glade.h:3 -msgid "Compression" -msgstr "കംപ്രഷന്‍" +#: ../src/connection-editor/ce-page-ppp.ui.h:4 +msgid "Compression" +msgstr "ചുരുക്കല്‍" -#: ../src/connection-editor/ce-page-ppp.glade.h:4 -msgid "Echo" -msgstr "ഇക്കോ" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "പോയിന്റ്-ടു-പോയിന്റ് എന്‍ക്രിപ്ഷന്‍ (MPPE) _ഉപയോഗിക്കുക " -#: ../src/connection-editor/ce-page-ppp.glade.h:5 -msgid "" -"In most cases, the provider's PPP servers will support all authentication " -"methods. If connections fail, try disabling support for some methods." -msgstr "" -"മിക്കപ്പോഴും, പ്രൊവൈഡറിന്റെ PPP സര്‍വറുകള്‍ എല്ലാ ആധികാരികത ഉറപ്പാക്കുന്ന മാര്‍ഗ്ഗങ്ങളും " -"പിന്തുണയ്ക്കുന്നു. കണക്ഷനുകള്‍ പരാജയപ്പെട്ടാല്‍, ചില മാര്‍ഗ്ഗങ്ങള്‍ക്കുള്ള പിന്തുണ പ്രവര്‍ത്ത രഹിതമാക്കി " -"വീണ്ടും ശ്രമിക്കുക." +#: ../src/connection-editor/ce-page-ppp.ui.h:6 +msgid "_Require 128-bit encryption" +msgstr "128-ബിറ്റ് എന്‍ക്രിപ്ഷന്‍ _ആവശ്യമുണ്ടു്" + +#: ../src/connection-editor/ce-page-ppp.ui.h:7 +msgid "Use _stateful MPPE" +msgstr "_സ്റ്റേറ്റ്ഫുള്‍ MPPE ഉപയോഗിക്കുക" -#: ../src/connection-editor/ce-page-ppp.glade.h:6 +#: ../src/connection-editor/ce-page-ppp.ui.h:8 msgid "Allow _BSD data compression" -msgstr "_BSD ഡേറ്റാ കംപ്രഷന്‍ അനുവദിക്കുക" +msgstr "_ബിഎസ്ഡി ഡേറ്റാ ചുരുക്കം അനുവദിക്കുക" -#: ../src/connection-editor/ce-page-ppp.glade.h:7 +#: ../src/connection-editor/ce-page-ppp.ui.h:9 msgid "Allow _Deflate data compression" -msgstr "_Deflate ഡേറ്റാ കംപ്രഷന്‍ അനുവദിക്കുക" +msgstr "_Deflate ഡേറ്റാ ചുരുക്കം അനുവദിക്കുക" -#: ../src/connection-editor/ce-page-ppp.glade.h:8 -msgid "Allowed methods:" -msgstr "അനുവദിച്ചിട്ടുള്ള മാര്‍ഗങ്ങള്‍:" +#: ../src/connection-editor/ce-page-ppp.ui.h:10 +msgid "Use TCP _header compression" +msgstr "TCP _ഹെഡര്‍ ചുരുക്കം ഉപയോഗിക്കുക" -#: ../src/connection-editor/ce-page-ppp.glade.h:9 -msgid "C_HAP" -msgstr "C_HAP" - -#: ../src/connection-editor/ce-page-ppp.glade.h:10 -msgid "Challenge Handshake Authentication Protocol" -msgstr "ചാലഞ്ച് ഹാന്‍ഡ്ഷെയിക് ഓഥന്റിക്കേഷന്‍ പ്രോട്ടോക്കോള്‍" - -#: ../src/connection-editor/ce-page-ppp.glade.h:11 -msgid "Configure _Methods…" -msgstr "_മാര്‍ഗ്ഗങ്ങള്‍ ക്രമീകരിക്കുക" - -#: ../src/connection-editor/ce-page-ppp.glade.h:12 -msgid "Extensible Authentication Protocol" -msgstr "എക്സ്റ്റെന്‍സിബിള്‍ ഓഥന്റിക്കേഷന്‍ പ്രോട്ടോക്കോള്‍" - -#: ../src/connection-editor/ce-page-ppp.glade.h:13 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" - -#: ../src/connection-editor/ce-page-ppp.glade.h:14 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "മൈക്രോസോഫ്റ്റ് ചാലഞ്ച് ഹാന്‍ഡ്ഷെയിക് ഓഥന്റിക്കേഷന്‍ പ്രോട്ടോക്കോള്‍" - -#: ../src/connection-editor/ce-page-ppp.glade.h:15 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "മൈക്രോസോഫ്റ്റ് ചാലഞ്ച് ഹാന്‍ഡ്ഷെയിക് ഓഥന്റിക്കേഷന്‍ പ്രോട്ടോക്കോള്‍ പതിപ്പു് 2" +#: ../src/connection-editor/ce-page-ppp.ui.h:11 +msgid "Echo" +msgstr "പ്രതിധ്വനി" -#: ../src/connection-editor/ce-page-ppp.glade.h:16 -msgid "Password Authentication Protocol" -msgstr "പാസ്‌വേര്‍ഡ് ഓഥന്റിക്കേഷന്‍ പ്രോട്ടോക്കോള്‍" - -#: ../src/connection-editor/ce-page-ppp.glade.h:17 +#: ../src/connection-editor/ce-page-ppp.ui.h:12 msgid "Send PPP _echo packets" msgstr "PPP _എക്കോ പാക്കറ്റുകള്‍ അയയ്ക്കുക" -#: ../src/connection-editor/ce-page-ppp.glade.h:18 -msgid "Use TCP _header compression" -msgstr "TCP _ഹെഡര്‍ കംപ്രഷന്‍ ഉപയോഗിക്കുക" - -#: ../src/connection-editor/ce-page-ppp.glade.h:19 -msgid "Use _stateful MPPE" -msgstr "_സ്റ്റേറ്റ്ഫുള്‍ MPPE ഉപയോഗിക്കുക" +#: ../src/connection-editor/ce-page-wired.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "ട്വിസ്റ്റഡ് പെയര്‍ (ടിപി)" + +#: ../src/connection-editor/ce-page-wired.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "അറ്റാച്ച്മെന്റ് യൂണിറ്റ് ഇന്റര്‍ഫേസ് (എയുഐ)" + +#: ../src/connection-editor/ce-page-wired.ui.h:4 +msgid "BNC" +msgstr "ബിഎന്‍സി" + +#: ../src/connection-editor/ce-page-wired.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "മീഡിയ ഇന്‍ഡിപെന്‍ഡന്റ് ഇന്റര്‍ഫേസ് (എംഐഐ)" + +#: ../src/connection-editor/ce-page-wired.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" -#: ../src/connection-editor/ce-page-ppp.glade.h:20 -msgid "_EAP" -msgstr "_EAP" - -#: ../src/connection-editor/ce-page-ppp.glade.h:21 -msgid "_MSCHAP" -msgstr "_MSCHAP" - -#: ../src/connection-editor/ce-page-ppp.glade.h:22 -msgid "_PAP" -msgstr "_PAP" +#: ../src/connection-editor/ce-page-wired.ui.h:10 +msgid "_Port:" +msgstr "_പോര്‍ട്ട്:" -#: ../src/connection-editor/ce-page-ppp.glade.h:23 -msgid "_Require 128-bit encryption" -msgstr "128-ബിറ്റ് എന്‍ക്രിപ്ഷന്‍ _ആവശ്യമുണ്ടു്" +#: ../src/connection-editor/ce-page-wired.ui.h:11 +msgid "_Speed:" +msgstr "_വേഗത:" -#: ../src/connection-editor/ce-page-ppp.glade.h:24 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "പോയിന്റ്-ടു-പോയിന്റ് ഇന്‍ക്രിപ്ഷന്‍ (MPPE) _ഉപയോഗിക്കുക " +#: ../src/connection-editor/ce-page-wired.ui.h:12 +msgid "Full duple_x" +msgstr "പൂര്‍ണ്ണമായും _ഡ്യൂപ്ലെക്സ്" -#: ../src/connection-editor/ce-page-wired.glade.h:1 +#: ../src/connection-editor/ce-page-wired.ui.h:13 msgid "Aut_onegotiate" msgstr "Aut_onegotiate" -#: ../src/connection-editor/ce-page-wired.glade.h:2 -msgid "" -"Automatic\n" -"10 Mb/s\n" -"100 Mb/s\n" -"1 Gb/s\n" -"10 Gb/s" -msgstr "" -"ഓട്ടോമാറ്റിക്\n" -"10 Mb/s\n" -"100 Mb/s\n" -"1 Gb/s\n" -"10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.glade.h:7 -msgid "" -"Automatic\n" -"Twisted Pair (TP)\n" -"Attachment Unit Interface (AUI)\n" -"BNC\n" -"Media Independent Interface (MII)" -msgstr "" -"ഓട്ടോമാറ്റിക്\n" -"ട്വിസ്റ്റഡ് പെയര്‍ (TP)\n" -"അറ്റാച്മെന്റ് യൂണിറ്റ് ഇന്റര്‍ഫെയിസ് (AUI)\n" -"BNC\n" -"മീഡിയ ഇന്‍ഡിപന്‍ഡന്റ് ഇന്റര്‍ഫെയിസ് (MII)" +#: ../src/connection-editor/ce-page-wired.ui.h:14 +#: ../src/connection-editor/ce-page-wireless.ui.h:8 +msgid "_Device MAC address:" +msgstr "_ഉപകരണത്തിന്റെ മാക് വിലാസം:" + +#: ../src/connection-editor/ce-page-wired.ui.h:15 +#: ../src/connection-editor/ce-page-wireless.ui.h:10 +msgid "C_loned MAC address:" +msgstr "തനിപ്പകര്‍പ്പെടുത്ത മാക് വിലാസം:" + +#: ../src/connection-editor/ce-page-wired.ui.h:16 +#: ../src/connection-editor/ce-page-wireless.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"ഇവിടെ നല്‍കിയിരിയ്ക്കുന്ന മാക് വിലാസം, ഈ കണക്ഷന്‍ സജീവമാക്കിയിരിയ്ക്കുന്ന നെറ്റ്‌വര്‍ക്ക് " +"ഡിവൈസിനുള്ള ഹാര്‍ഡ്‌വെയര്‍ വിലാസമായി ഉപയോഗിയ്ക്കുന്നു. ഈ വിശേഷതയെ മാക് " +"ക്ലോണിങ് അല്ലെങ്കില്‍ സ്പൂഫീങ് എന്നു് വിളിയ്ക്കുന്നു. ഉദാഹരണം: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-wired.ui.h:17 +#: ../src/connection-editor/ce-page-wireless.ui.h:7 +msgid "_MTU:" +msgstr "_എംടിയു:" -#: ../src/connection-editor/ce-page-wired.glade.h:12 -msgid "Full duple_x" -msgstr "പൂര്‍ണ്ണമായും _ഡ്യൂപ്ലെക്സ്" +#: ../src/connection-editor/ce-page-wired.ui.h:18 +#: ../src/connection-editor/ce-page-wireless.ui.h:6 +msgid "bytes" +msgstr "ബൈറ്റുകള്‍" -#: ../src/connection-editor/ce-page-wired.glade.h:13 -#: ../src/connection-editor/ce-page-wireless.glade.h:8 -msgid "MT_U:" -msgstr "MT_U:" - -#: ../src/connection-editor/ce-page-wired.glade.h:14 -#: ../src/connection-editor/ce-page-wireless.glade.h:15 -msgid "_MAC address:" -msgstr "_MAC വിലാസം:" +#: ../src/connection-editor/ce-page-wireless.ui.h:2 +msgid "A (5 GHz)" +msgstr "എ (5 GHz)" + +#: ../src/connection-editor/ce-page-wireless.ui.h:3 +msgid "B/G (2.4 GHz)" +msgstr "ബി/ജി (2.4 GHz)" + +#: ../src/connection-editor/ce-page-wireless.ui.h:4 +msgid "Infrastructure" +msgstr "ഇന്‍ഫ്രാസ്ട്രക്ചര്‍" + +#: ../src/connection-editor/ce-page-wireless.ui.h:5 +msgid "Ad-hoc" +msgstr "അഡ്-ഹോക്" -#: ../src/connection-editor/ce-page-wired.glade.h:15 -msgid "_Port:" -msgstr "_പോര്‍ട്ട്:" +#: ../src/connection-editor/ce-page-wireless.ui.h:11 +msgid "mW" +msgstr "mW" -#: ../src/connection-editor/ce-page-wired.glade.h:16 -msgid "_Speed:" -msgstr "_വേഗത:" +#: ../src/connection-editor/ce-page-wireless.ui.h:12 +msgid "Transmission po_wer:" +msgstr "ട്രാന്‍സ്മിഷന്‍ _പവര്‍:" -#: ../src/connection-editor/ce-page-wired.glade.h:17 -#: ../src/connection-editor/ce-page-wireless.glade.h:18 -msgid "bytes" -msgstr "ബൈറ്റുകള്‍" +#: ../src/connection-editor/ce-page-wireless.ui.h:13 +msgid "Mb/s" +msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.glade.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:14 +msgid "_Rate:" +msgstr "_നിരക്ക്:" + +#: ../src/connection-editor/ce-page-wireless.ui.h:15 msgid "" -"Automatic\n" -"A (5 GHz)\n" -"B/G (2.4 GHz)" +"This option locks this connection to the wireless access point (AP) " +"specified by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"ഓട്ടോമാറ്റിക്\n" -"A (5 GHz)\n" -"B/G (2.4 GHz)" +"BSSID ഇവിടെ സൂചിപ്പിക്കുന്ന വയര്‍ലെസ് ആക്സെസ് പോയിന്റിലേക്കുള്ള (എപി) ബന്ധം ഈ ഐച്ഛികം " +"മാറ്റാര്‍ക്കും അനുവദിക്കുന്നതല്ല. ഉദാഹരണം: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.glade.h:4 -msgid "Ban_d:" -msgstr "_ബാന്‍ഡ്:" +#: ../src/connection-editor/ce-page-wireless.ui.h:16 +msgid "_BSSID:" +msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.glade.h:5 +#: ../src/connection-editor/ce-page-wireless.ui.h:17 msgid "C_hannel:" msgstr "_ചാനല്‍:" -#: ../src/connection-editor/ce-page-wireless.glade.h:6 -msgid "" -"Infrastructure\n" -"Ad-hoc" -msgstr "" -"ഇന്‍ഫ്രാസ്ട്രക്ചര്‍\n" -"Ad-hoc" +#: ../src/connection-editor/ce-page-wireless.ui.h:18 +msgid "Ban_d:" +msgstr "_ബാന്‍ഡ്:" -#: ../src/connection-editor/ce-page-wireless.glade.h:9 +#: ../src/connection-editor/ce-page-wireless.ui.h:19 msgid "M_ode:" msgstr "_മോഡ്:" -#: ../src/connection-editor/ce-page-wireless.glade.h:10 -msgid "Mb/s" -msgstr "Mb/s" +#: ../src/connection-editor/ce-page-wireless.ui.h:20 +msgid "SS_ID:" +msgstr "എസ്എസ്_ഐഡി:" + +#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 +msgid "S_ecurity:" +msgstr "സു_രക്ഷ:" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 +msgid "Allowed Authentication Methods" +msgstr "തിരിച്ചറിയാന്‍ അനുവദിച്ച രീതികള്‍" -#: ../src/connection-editor/ce-page-wireless.glade.h:11 -msgid "" -"This option locks this connection to the network device specified by the MAC " -"address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"മാക് വിലാസം ഇവിടെ സൂചിപ്പിക്കുന്ന നെറ്റ്‌വര്‍ക്ക് ഡിവൈസിലേക്കുള്ള കണക്ഷന്‍ ഈ ഐച്ഛികം മാറ്റാര്‍ക്കും " -"അനുവദിക്കുന്നതല്ല. ഉദാഹരണം: 00:11:22:33:44:55" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 +msgid "_EAP" +msgstr "_EAP" -#: ../src/connection-editor/ce-page-wireless.glade.h:12 -msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "" -"BSSID ഇവിടെ സൂചിപ്പിക്കുന്ന വയര്‍ലെസ് ആക്സെസ് പോയിന്റിലേക്കുള്ള (എപി) കണക്ഷന്‍ ഈ ഐച്ഛികം " -"മാറ്റാര്‍ക്കും അനുവദിക്കുന്നതല്ല. ഉദാഹരണം: 00:11:22:33:44:55" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +msgid "Extensible Authentication Protocol" +msgstr "എക്സ്റ്റെന്‍സിബിള്‍ തിരിച്ചറിയല്‍ പ്രോട്ടോക്കോള്‍" -#: ../src/connection-editor/ce-page-wireless.glade.h:13 -msgid "Transmission po_wer:" -msgstr "ട്രാന്‍സ്മിഷന്‍ _പവര്‍:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "_PAP" -#: ../src/connection-editor/ce-page-wireless.glade.h:14 -msgid "_BSSID:" -msgstr "_BSSID:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +msgid "Password Authentication Protocol" +msgstr "പാസ്‌വേര്‍ഡ് തിരിച്ചറിയല്‍ പ്രോട്ടോക്കോള്‍" -#: ../src/connection-editor/ce-page-wireless.glade.h:16 -msgid "_Rate:" -msgstr "_നിരക്ക്:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 +msgid "C_HAP" +msgstr "C_HAP" -#: ../src/connection-editor/ce-page-wireless.glade.h:17 -msgid "_SSID:" -msgstr "_SSID:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 +msgid "Challenge Handshake Authentication Protocol" +msgstr "ചാലഞ്ച് ഹാന്‍ഡ്ഷെയിക് തിരിച്ചറിയല്‍ പ്രോട്ടോക്കോള്‍" -#: ../src/connection-editor/ce-page-wireless.glade.h:19 -msgid "mW" -msgstr "mW" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "_MSCHAP" +msgstr "_MSCHAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "മൈക്രോസോഫ്റ്റ് ചാലഞ്ച് ഹാന്‍ഡ്ഷെയിക് തിരിച്ചറിയല്‍ പ്രോട്ടോക്കോള്‍" -#: ../src/connection-editor/ce-page-wireless-security.glade.h:1 -msgid "_Security:" -msgstr "_സുരക്ഷ:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "മൈക്രോസോഫ്റ്റ് ചാലഞ്ച് ഹാന്‍ഡ്ഷെയിക് തിരിച്ചറിയല്‍ പ്രോട്ടോക്കോള്‍ പതിപ്പു് 2" -#: ../src/connection-editor/ce-vpn-wizard.glade.h:2 +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "" +"മിക്കപ്പോഴും, പ്രൊവൈഡറിന്റെ PPP സെര്‍വറുകള്‍ എല്ലാ ആധികാരികത ഉറപ്പാക്കുന്ന മാര്‍ഗ്ഗങ്ങളും " +"പിന്തുണയ്ക്കുന്നു. ബന്ധങ്ങള്‍ പരാജയപ്പെട്ടാല്‍, ചില മാര്‍ഗ്ഗങ്ങള്‍ക്കുള്ള പിന്തുണ പ്രവര്‍ത്ത രഹിതമാക്കി " +"വീണ്ടും ശ്രമിക്കുക." + +#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 +msgid "Choose a VPN Connection Type" +msgstr "ഒരു വിപിഎന്‍ കണക്ഷന്‍ രീതി തെരഞ്ഞെടുക്കുക" + +#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 msgid "" -"Choose a VPN Connection Type\n" -"\n" "Select the type of VPN you wish to use for the new connection. If the type " "of VPN connection you wish to create does not appear in the list, you may " "not have the correct VPN plugin installed." msgstr "" -"ഒരു വിപിഎന്‍ തരത്തിലുള്ള കണക്ഷന്‍ തെരഞ്ഞെടുക്കുക\n" -"\n" -"പുതിയ കണക്ഷനുവേണ്ടി നിങ്ങള്‍ ഉപയോഗിക്കുവാന്‍ ആഗ്രഹിക്കുന്ന തരത്തിലുള്ള വിപിഎന്‍ കണക്ഷന്‍ " +"പുതിയ കണക്ഷനുവേണ്ടി നിങ്ങള്‍ ഉപയോഗിക്കുവാന്‍ ആഗ്രഹിക്കുന്ന തരത്തിലുള്ള വിപിഎന്‍ ബന്ധം " "തെരഞ്ഞെടുക്കുക. നിങ്ങള്‍ക്കു് ആവശ്യമുള്ളതു് പട്ടികയില്‍ ലഭ്യമല്ല എങ്കില്‍, നിങ്ങള്‍ ശരിയായ പ്ലഗിന്‍ " "ഇന്‍സ്റ്റോള്‍ ചെയ്തിട്ടുണ്ടാവില്ല." -#: ../src/connection-editor/ce-vpn-wizard.glade.h:5 +#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 msgid "Create…" msgstr "ഉണ്ടാക്കുക" -#: ../src/connection-editor/ip4-routes-dialog.c:501 -#: ../src/connection-editor/ip6-routes-dialog.c:459 -#: ../src/connection-editor/page-ip4.c:731 -#: ../src/connection-editor/page-ip6.c:716 +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "വിലാസം" -#: ../src/connection-editor/ip4-routes-dialog.c:517 -#: ../src/connection-editor/page-ip4.c:748 +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "നെറ്റ്‌മാസ്ക്" -#: ../src/connection-editor/ip4-routes-dialog.c:533 -#: ../src/connection-editor/ip6-routes-dialog.c:491 -#: ../src/connection-editor/page-ip4.c:765 -#: ../src/connection-editor/page-ip6.c:750 +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "ഗേറ്റ്‌വേ" -#: ../src/connection-editor/ip4-routes-dialog.c:549 -#: ../src/connection-editor/ip6-routes-dialog.c:507 +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 msgid "Metric" msgstr "മെട്രിക്" -#: ../src/connection-editor/ip6-routes-dialog.c:475 -#: ../src/connection-editor/page-ip6.c:733 +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "പ്രീഫിക്സ്" -#: ../src/connection-editor/page-dsl.c:140 -#: ../src/connection-editor/page-dsl.c:147 -msgid "Could not load DSL user interface." -msgstr "DSL യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." - -#: ../src/connection-editor/page-dsl.c:153 -#: ../src/connection-editor/nm-connection-editor.glade.h:4 -#: ../src/connection-editor/nm-connection-list.c:1409 +#: ../src/connection-editor/page-dsl.c:139 +#: ../src/connection-editor/nm-connection-editor.ui.h:8 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" -#: ../src/connection-editor/page-dsl.c:241 +#: ../src/connection-editor/page-dsl.c:141 +msgid "Could not load DSL user interface." +msgstr "DSL യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." + +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" -msgstr "DSL കണക്ഷന്‍ %d" +msgstr "DSL ബന്ധം%d" -#: ../src/connection-editor/page-ip4.c:126 -#: ../src/connection-editor/page-ip6.c:125 +#: ../src/connection-editor/page-ip4.c:133 +#: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" msgstr "ഓട്ടോമാറ്റിക് (VPN)" -#: ../src/connection-editor/page-ip4.c:127 -#: ../src/connection-editor/page-ip6.c:126 +#: ../src/connection-editor/page-ip4.c:134 +#: ../src/connection-editor/page-ip6.c:133 msgid "Automatic (VPN) addresses only" msgstr "ഓട്ടോമാറ്റിക് (VPN) വിലാസങ്ങള്‍ മാത്രം" -#: ../src/connection-editor/page-ip4.c:130 -#: ../src/connection-editor/page-ip6.c:129 +#: ../src/connection-editor/page-ip4.c:137 +#: ../src/connection-editor/page-ip6.c:136 msgid "Automatic (PPP)" msgstr "ഓട്ടോമാറ്റിക് (PPP)" -#: ../src/connection-editor/page-ip4.c:131 -#: ../src/connection-editor/page-ip6.c:130 +#: ../src/connection-editor/page-ip4.c:138 +#: ../src/connection-editor/page-ip6.c:137 msgid "Automatic (PPP) addresses only" msgstr "ഓട്ടോമാറ്റിക് (PPP) വിലാസങ്ങള്‍ മാത്രം" -#: ../src/connection-editor/page-ip4.c:133 -#: ../src/connection-editor/page-ip6.c:132 +#: ../src/connection-editor/page-ip4.c:140 +#: ../src/connection-editor/page-ip6.c:139 msgid "Automatic (PPPoE)" msgstr "ഓട്ടോമാറ്റിക് (PPPoE)" -#: ../src/connection-editor/page-ip4.c:134 -#: ../src/connection-editor/page-ip6.c:133 +#: ../src/connection-editor/page-ip4.c:141 +#: ../src/connection-editor/page-ip6.c:140 msgid "Automatic (PPPoE) addresses only" msgstr "ഓട്ടോമാറ്റിക് (PPPoE) വിലാസങ്ങള്‍ മാത്രം" -#: ../src/connection-editor/page-ip4.c:136 +#: ../src/connection-editor/page-ip4.c:143 msgid "Automatic (DHCP)" msgstr "ഓട്ടോമാറ്റിക് (DHCP)" -#: ../src/connection-editor/page-ip4.c:137 +#: ../src/connection-editor/page-ip4.c:144 msgid "Automatic (DHCP) addresses only" msgstr "ഓട്ടോമാറ്റിക് (DHCP) വിലാസങ്ങള്‍ മാത്രം" -#: ../src/connection-editor/page-ip4.c:162 -#: ../src/connection-editor/page-ip6.c:184 -msgid "Manual" -msgstr "നിങ്ങള്‍ സ്വയം (മാനുവല്‍)" - -#: ../src/connection-editor/page-ip4.c:174 -#: ../src/connection-editor/page-ip6.c:197 +#: ../src/connection-editor/page-ip4.c:181 +#: ../src/connection-editor/page-ip6.c:204 msgid "Link-Local Only" msgstr "ലിങ്ക്-ലോക്കല്‍ മാത്രം" -#: ../src/connection-editor/page-ip4.c:180 -#: ../src/connection-editor/page-ip6.c:204 -msgid "Shared to other computers" -msgstr "മറ്റു് കമ്പ്യൂട്ടറുകളുമായി പങ്കിടുന്നു" - -#: ../src/connection-editor/page-ip4.c:190 +#: ../src/connection-editor/page-ip4.c:197 msgid "Disabled" msgstr "പ്രവര്‍ത്തന രഹിതം" -#: ../src/connection-editor/page-ip4.c:693 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +#| msgid "_DNS servers:" +msgid "Additional _DNS servers:" +msgstr "കൂടുതല്‍ _ഡിഎന്‍എസ് സെര്‍വറുകള്‍:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +#| msgid "S_earch domains:" +msgid "Additional s_earch domains:" +msgstr "അധികമായി തെ_രയേണ്ട ഡൊമെയിനുകള്‍:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "%s-നുള്ള IPv4 റൂട്ടുകള്‍ ചിട്ടപ്പെടുത്തുക" -#: ../src/connection-editor/page-ip4.c:812 -#: ../src/connection-editor/page-ip4.c:819 -msgid "Could not load IPv4 user interface." -msgstr "IPv4 യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." - -#: ../src/connection-editor/page-ip4.c:825 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "IPv4 സജ്ജീകരണങ്ങള്‍" -#: ../src/connection-editor/page-ip6.c:135 -msgid "Automatic" -msgstr "ഓട്ടോമാറ്റിക്" +#: ../src/connection-editor/page-ip4.c:994 +msgid "Could not load IPv4 user interface." +msgstr "IPv4 യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." -#: ../src/connection-editor/page-ip6.c:136 +#: ../src/connection-editor/page-ip6.c:143 msgid "Automatic, addresses only" msgstr "ഓട്ടോമാറ്റിക് വിലാസങ്ങള്‍ മാത്രം" -#: ../src/connection-editor/page-ip6.c:148 -#: ../src/wireless-security/eap-method.c:196 +#: ../src/connection-editor/page-ip6.c:155 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "അവഗണിക്കുക" -#: ../src/connection-editor/page-ip6.c:172 +#: ../src/connection-editor/page-ip6.c:179 msgid "Automatic, DHCP only" msgstr "ഓട്ടോമാറ്റിക്, DHCP മാത്രം" -#: ../src/connection-editor/page-ip6.c:678 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "%s-നുള്ള IPv6 റൂട്ടുകള്‍ ചിട്ടപ്പെടുത്തുക" -#: ../src/connection-editor/page-ip6.c:795 -#: ../src/connection-editor/page-ip6.c:802 -msgid "Could not load IPv6 user interface." -msgstr "IPv6 യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." - -#: ../src/connection-editor/page-ip6.c:808 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "IPv6 സജ്ജീകരണങ്ങള്‍" -#: ../src/connection-editor/page-mobile.c:305 -#: ../src/connection-editor/page-mobile.c:312 +#: ../src/connection-editor/page-ip6.c:958 +msgid "Could not load IPv6 user interface." +msgstr "IPv6 യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." + +#: ../src/connection-editor/page-mobile.c:381 msgid "Could not load mobile broadband user interface." msgstr "ബ്രോഡ്ബാന്‍ഡ് യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." -#: ../src/connection-editor/page-mobile.c:333 +#: ../src/connection-editor/page-mobile.c:398 msgid "Unsupported mobile broadband connection type." -msgstr "പിന്തുണ ലഭ്യമല്ലാത്ത മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് കണക്ഷന്‍." +msgstr "പിന്തുണ ലഭ്യമല്ലാത്ത മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ബന്ധം." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:574 +#: ../src/connection-editor/page-mobile.c:639 msgid "Select Mobile Broadband Provider Type" msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് പ്രൊവൈഡര്‍ തരം തെരഞ്ഞെടുക്കുക" -#: ../src/connection-editor/page-mobile.c:601 +#: ../src/connection-editor/page-mobile.c:674 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." @@ -1635,381 +1782,422 @@ "നിങ്ങളുടെ മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് പ്രൊവൈഡര്‍ ഉപയോഗിക്കുന്ന ടെക്നോളജി തെരഞ്ഞെടുക്കുക. " "നിങ്ങള്‍ക്കറിയില്ലെങ്കില്‍ പ്രൊവൈഡറിനോട് അന്വേഷിക്കുക." -#: ../src/connection-editor/page-mobile.c:606 +#: ../src/connection-editor/page-mobile.c:679 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "എന്റെ പ്രൊവൈഡര്‍ _GSM ടെക്നോളജി ഉപയോഗിക്കുന്നു (i.e. GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/page-mobile.c:611 +#: ../src/connection-editor/page-mobile.c:686 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "എന്റെ പ്രൊവൈഡര്‍ C_DMA ടെക്നോളജി ഉപയോഗിക്കുന്നു (i.e. 1xRTT, EVDO)" -#: ../src/connection-editor/page-ppp.c:132 +#: ../src/connection-editor/page-ppp.c:134 msgid "EAP" msgstr "EAP" -#: ../src/connection-editor/page-ppp.c:133 -#: ../src/wireless-security/eap-method-ttls.c:228 +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 msgid "PAP" msgstr "PAP" -#: ../src/connection-editor/page-ppp.c:134 -#: ../src/wireless-security/eap-method-ttls.c:276 +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 msgid "CHAP" msgstr "CHAP" -#: ../src/connection-editor/page-ppp.c:135 -#: ../src/wireless-security/eap-method-peap.c:245 -#: ../src/wireless-security/eap-method-ttls.c:260 +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 msgid "MSCHAPv2" msgstr "MSCHAPv2" -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:244 +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 msgid "MSCHAP" msgstr "MSCHAP" #. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:139 +#: ../src/connection-editor/page-ppp.c:141 msgid "none" msgstr "ഒന്നുമില്ല" -#: ../src/connection-editor/page-ppp.c:199 +#: ../src/connection-editor/page-ppp.c:201 #, c-format msgid "Editing PPP authentication methods for %s" msgstr "%s-നുള്ല PPP ആധികാരികത ഉറപ്പാക്കല്‍ മാര്‍ഗ്ഗങ്ങള്‍ ചിട്ടപ്പെടുത്തുന്നു" -#: ../src/connection-editor/page-ppp.c:283 -#: ../src/connection-editor/page-ppp.c:290 -msgid "Could not load PPP user interface." -msgstr "PPP യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." - -#: ../src/connection-editor/page-ppp.c:296 +#: ../src/connection-editor/page-ppp.c:282 msgid "PPP Settings" msgstr "PPP സജ്ജീകരണങ്ങള്‍" -#: ../src/connection-editor/page-vpn.c:108 -#: ../src/connection-editor/nm-connection-editor.glade.h:8 -#: ../src/connection-editor/nm-connection-list.c:1405 +#: ../src/connection-editor/page-ppp.c:284 +msgid "Could not load PPP user interface." +msgstr "PPP യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." + +#: ../src/connection-editor/page-vpn.c:109 +#: ../src/connection-editor/nm-connection-editor.ui.h:7 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" -#: ../src/connection-editor/page-vpn.c:119 +#: ../src/connection-editor/page-vpn.c:111 +msgid "Could not load VPN user interface." +msgstr "വിപിഎന്‍ യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." + +#: ../src/connection-editor/page-vpn.c:126 #, c-format msgid "Could not find VPN plugin service for '%s'." msgstr "'%s'-നുള്ള വിപിഎന്‍ പ്ലഗിന്‍ സര്‍വീസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." -#: ../src/connection-editor/page-vpn.c:213 -#: ../src/connection-editor/nm-connection-list.c:990 +#: ../src/connection-editor/page-vpn.c:201 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" -msgstr "വിപിഎന്‍ കണക്ഷന്‍ %d" +msgstr "വിപിഎന്‍ ബന്ധം%d" -#: ../src/connection-editor/page-wired.c:207 -#: ../src/connection-editor/page-wired.c:214 -msgid "Could not load wired user interface." -msgstr "വയര്‍ഡ് യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." +#: ../src/connection-editor/page-wired.c:89 +#: ../src/connection-editor/page-wireless.c:94 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"മാക് വിലാസം ഇവിടെ സൂചിപ്പിക്കുന്ന ശൃംഖല ഡിവൈസിലേക്കുള്ള ബന്ധം ഈ ഐച്ഛികം മാറ്റാര്‍ക്കും " +"അനുവദിക്കുന്നതല്ല. ഉദാഹരണം: 00:11:22:33:44:55" -#: ../src/connection-editor/page-wired.c:220 -#: ../src/connection-editor/nm-connection-editor.glade.h:9 -#: ../src/connection-editor/nm-connection-list.c:1393 +#: ../src/connection-editor/page-wired.c:272 +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "വയര്‍ഡ്" -#: ../src/connection-editor/page-wired.c:339 +#: ../src/connection-editor/page-wired.c:274 +msgid "Could not load wired user interface." +msgstr "വയര്‍ഡ് യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." + +#: ../src/connection-editor/page-wired.c:449 #, c-format msgid "Wired connection %d" -msgstr "വയര്‍ഡ് കണക്ഷന്‍ %d" +msgstr "വയര്‍ഡ് ബന്ധം %d" -#: ../src/connection-editor/page-wired-security.c:115 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "802.1X സുരക്ഷ" -#: ../src/connection-editor/page-wired-security.c:123 -msgid "Use 802.1X security for this connection" -msgstr "ഈ കണക്ഷനുവേണ്ടി 802.1X സുരക്ഷ ഉപയോഗിക്കുക" - -#: ../src/connection-editor/page-wireless.c:144 -#: ../src/connection-editor/page-wireless.c:148 +#: ../src/connection-editor/page-wired-security.c:121 +msgid "Could not load Wired Security security user interface." +msgstr "വയര്‍ഡ് സെക്യൂരിറ്റി യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." + +#: ../src/connection-editor/page-wired-security.c:139 +msgid "Use 802.1_X security for this connection" +msgstr "ഈ കണക്ഷനുവേണ്ടി 802.1_X സുരക്ഷ ഉപയോഗിക്കുക" + +#: ../src/connection-editor/page-wireless.c:171 +#: ../src/connection-editor/page-wireless.c:175 +#: ../src/connection-editor/page-wireless.c:196 +#, c-format msgid "default" msgstr "സ്വതവേയുള്ള" -#: ../src/connection-editor/page-wireless.c:166 +#: ../src/connection-editor/page-wireless.c:200 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:351 -#: ../src/connection-editor/page-wireless.c:358 -msgid "Could not load WiFi user interface." -msgstr "വൈഫൈ യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." - -#: ../src/connection-editor/page-wireless.c:364 -#: ../src/connection-editor/nm-connection-editor.glade.h:10 -#: ../src/connection-editor/nm-connection-list.c:1397 +#: ../src/connection-editor/page-wireless.c:457 +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "വയര്‍ലെസ്" -#: ../src/connection-editor/page-wireless.c:511 +#: ../src/connection-editor/page-wireless.c:459 +msgid "Could not load WiFi user interface." +msgstr "വൈഫൈ യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." + +#: ../src/connection-editor/page-wireless.c:663 #, c-format msgid "Wireless connection %d" -msgstr "വയര്‍ലെസ് കണക്ഷന്‍ %d" +msgstr "വയര്‍ലെസ് ബന്ധം %d" -#: ../src/connection-editor/page-wireless-security.c:262 -#: ../src/wireless-dialog.c:936 -msgid "WEP 40/128-bit Key" -msgstr "WEP 40/128-bit കീ" +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "ഡബ്ലിയുഇപി 40/128-bit കീ (ഹെക്സോ ആസ്കിയോ)" -#: ../src/connection-editor/page-wireless-security.c:271 -#: ../src/wireless-dialog.c:945 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128-bit പാസ്‌ഫ്രെയിസ്" -#: ../src/connection-editor/page-wireless-security.c:297 -#: ../src/wireless-dialog.c:975 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "ഡൈനമിക് WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:311 -#: ../src/wireless-dialog.c:989 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 പേഴ്സണല്‍" -#: ../src/connection-editor/page-wireless-security.c:325 -#: ../src/wireless-dialog.c:1003 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA & WPA2 എന്റര്‍പ്രൈസ്" -#: ../src/connection-editor/page-wireless-security.c:365 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "വൈഫൈ സുരക്ഷ യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല; വൈഫൈ ക്രമീകരണം ലഭ്യമല്ല." -#: ../src/connection-editor/page-wireless-security.c:372 -#: ../src/connection-editor/page-wireless-security.c:379 -msgid "Could not load WiFi security user interface." -msgstr "വൈഫൈ സെക്യൂരിറ്റി യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." - -#: ../src/connection-editor/page-wireless-security.c:385 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "വയര്‍ലെസ് സെക്യൂരിറ്റി" -#: ../src/connection-editor/nm-connection-editor.c:100 +#: ../src/connection-editor/page-wireless-security.c:407 +msgid "Could not load WiFi security user interface." +msgstr "വൈഫൈ സെക്യൂരിറ്റി യൂസര്‍ ഇന്റര്‍ഫെയിസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." + +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "%s ചിട്ടപ്പെടുത്തുന്നു" -#: ../src/connection-editor/nm-connection-editor.c:104 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" -msgstr "പേരില്ലാത്ത കണക്ഷന്‍ ചിട്ടപ്പെടുത്തുന്നു" +msgstr "പേരില്ലാത്ത ബന്ധം ചിട്ടപ്പെടുത്തുന്നു" -#: ../src/connection-editor/nm-connection-editor.c:287 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "" -"The connection editor could not find some required resources (the " -"NetworkManager applet glade file was not found)." -msgstr "" -"ആവശ്യമുള്ള ചില ഉറവിടങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ കണക്ഷന്‍ എഡിറ്ററിനു് സാധ്യമായില്ല (NetworkManager " -"ആപ്ലെറ്റ് glade ഫയല്‍ ലഭ്യമായില്ല)." - -#: ../src/connection-editor/nm-connection-editor.c:300 -msgid "" -"The connection editor could not find some required resources (the glade file " +"The connection editor could not find some required resources (the .ui file " "was not found)." msgstr "" -"ആവശ്യമുള്ള ചില ഉറവിടങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ കണക്ഷന്‍ എഡിറ്ററിനു് സാധ്യമായില്ല (glade ഫയല്‍ " +"ആവശ്യമുള്ള ചില ഉറവിടങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ ബന്ധം എഡിറ്ററിനു് സാധ്യമായില്ല (.ui ഫയല്‍ " "ലഭ്യമായില്ല)" -#: ../src/connection-editor/nm-connection-editor.c:398 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." -msgstr "കണക്ഷന്‍ സംബന്ധിച്ചുള്ള വിവരം കാണിക്കുന്നതില്‍ പിശക്." +msgstr "ബന്ധം സംബന്ധിച്ചുള്ള വിവരം കാണിക്കുന്നതില്‍ പിശക്." -#: ../src/connection-editor/nm-connection-editor.c:419 -msgid "Apply" -msgstr "കമ്പ്യൂട്ടറില്‍ സൂക്ഷിക്കുക" +#: ../src/connection-editor/nm-connection-editor.c:407 +msgid "_Save" +msgstr "_സൂക്ഷിക്കുക" -#: ../src/connection-editor/nm-connection-editor.c:420 -msgid "Save this connection for all users of this machine." -msgstr "ഈ സിസ്റ്റമിലുള്ള എല്ലാ ഉപയോക്താക്കള്‍ക്കും ഈ കണക്ഷന്‍ സൂക്ഷിക്കുക." +#: ../src/connection-editor/nm-connection-editor.c:408 +msgid "Save any changes made to this connection." +msgstr "ഈ കണക്ഷന്‍ വരുത്തിയിരിയ്ക്കുന്ന ഏതു് മാറ്റങ്ങളും സൂക്ഷിയ്ക്കുക." -#: ../src/connection-editor/nm-connection-editor.c:421 -msgid "Apply..." -msgstr "കമ്പ്യൂട്ടറില്‍ സൂക്ഷിക്കുക..." +#: ../src/connection-editor/nm-connection-editor.c:409 +msgid "_Save..." +msgstr "_സൂക്ഷിക്കുക..." -#: ../src/connection-editor/nm-connection-editor.c:422 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." msgstr "" -"ഈ സിസ്റ്റമിലുള്ള എല്ലാ ഉപയോക്താക്കള്‍ക്കും ഉപയോഗിക്കുന്ന രീതിയില്‍ ഈ കണക്ഷന്‍ സൂക്ഷിക്കുന്നതിനായി " +"ഈ സിസ്റ്റത്തിലുള്ള എല്ലാ ഉപയോക്താക്കള്‍ക്കും ഉപയോഗിയ്ക്കാവുന്ന രീതിയില്‍ ഈ ബന്ധം സൂക്ഷിക്കുന്നതിനായി " "ആധികാരികത നല്‍കുക." -#: ../src/connection-editor/nm-connection-editor.glade.h:1 -msgid "Available to all users" -msgstr "എല്ലാ ഉപയോക്താക്കള്‍ക്കും ലഭ്യമാകുക" +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Import" +msgstr "_ഇംപോര്‍ട്ട് ചെയ്യുക" -#: ../src/connection-editor/nm-connection-editor.glade.h:2 -msgid "Connect _automatically" -msgstr "_സ്വയം കണക്ട് ചെയ്യുക" +#: ../src/connection-editor/nm-connection-editor.ui.h:6 +msgid "E_xport" +msgstr "_എക്സ്പോര്‍ട്ട് ചെയ്യുക" -#: ../src/connection-editor/nm-connection-editor.glade.h:3 +#: ../src/connection-editor/nm-connection-editor.ui.h:9 msgid "Connection _name:" msgstr "കണക്ഷന്റെ _പേരു്:" -#: ../src/connection-editor/nm-connection-editor.glade.h:5 -msgid "E_xport" -msgstr "_എക്സ്പോര്‍ട്ട് ചെയ്യുക" +#: ../src/connection-editor/nm-connection-editor.ui.h:10 +msgid "Connect _automatically" +msgstr "_സ്വയം കണക്ട് ചെയ്യുക" -#: ../src/connection-editor/nm-connection-editor.glade.h:11 -msgid "_Import" -msgstr "_ഇംപോര്‍ട്ട് ചെയ്യുക" +#: ../src/connection-editor/nm-connection-editor.ui.h:11 +msgid "A_vailable to all users" +msgstr "എല്ലാ ഉപയോക്താക്കള്‍ക്കും ലഭ്യമാകുക" -#: ../src/connection-editor/nm-connection-list.c:219 +#: ../src/connection-editor/nm-connection-list.c:216 msgid "never" msgstr "ഒരിക്കലും" -#: ../src/connection-editor/nm-connection-list.c:230 -#: ../src/connection-editor/nm-connection-list.c:241 +#: ../src/connection-editor/nm-connection-list.c:227 +#: ../src/connection-editor/nm-connection-list.c:238 msgid "now" msgstr "ഉടന്‍" #. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:248 +#: ../src/connection-editor/nm-connection-list.c:245 #, c-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d മിനിറ്റ് മുമ്പു്" msgstr[1] "%d മിനിറ്റുകള്‍ മുമ്പു്" -#: ../src/connection-editor/nm-connection-list.c:252 +#: ../src/connection-editor/nm-connection-list.c:249 #, c-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d മണിക്കൂര്‍ മുമ്പു്" msgstr[1] "%d മണിക്കൂറുകള്‍ മുമ്പു്" -#: ../src/connection-editor/nm-connection-list.c:264 +#: ../src/connection-editor/nm-connection-list.c:261 #, c-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d ദിവസം മുമ്പു്" msgstr[1] "%d ദിവസങ്ങള്‍ മുമ്പു്" -#: ../src/connection-editor/nm-connection-list.c:270 +#: ../src/connection-editor/nm-connection-list.c:267 #, c-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d മാസം മുമ്പു്" msgstr[1] "%d മാസങ്ങള്‍ മുമ്പു്" -#: ../src/connection-editor/nm-connection-list.c:274 +#: ../src/connection-editor/nm-connection-list.c:271 #, c-format msgid "%d year ago" msgid_plural "%d years ago" msgstr[0] "%d വര്‍ഷം മുമ്പു്" msgstr[1] "%d വര്‍ഷങ്ങള്‍ മുമ്പു്" -#: ../src/connection-editor/nm-connection-list.c:596 +#: ../src/connection-editor/nm-connection-list.c:486 msgid "Connection add failed" -msgstr "കണക്ഷന്‍ ചേര്‍ക്കുന്നതില്‍ പരാജയം" +msgstr "ബന്ധം ചേര്‍ക്കുന്നതില്‍ പരാജയം" + +#: ../src/connection-editor/nm-connection-list.c:515 +msgid "Error saving connection" +msgstr "ബന്ധം സൂക്ഷിയ്ക്കുന്നതില്‍ തെറ്റു്" -#: ../src/connection-editor/nm-connection-list.c:625 +#: ../src/connection-editor/nm-connection-list.c:516 #, c-format -msgid "Error editing connection: property '%s' / '%s' invalid: %d" -msgstr "കണക്ഷന്‍ ചിട്ടപ്പെടുത്തുന്നതില്‍ പിശക്: വിശേഷത '%s' / '%s' അസാധു: %d" +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "'%s' / '%s' വിശേഷത അസാധുവാകുന്നു: %d" -#: ../src/connection-editor/nm-connection-list.c:632 -#: ../src/connection-editor/nm-connection-list.c:747 +#: ../src/connection-editor/nm-connection-list.c:523 +#: ../src/connection-editor/nm-connection-list.c:662 msgid "An unknown error occurred." msgstr "ഒരു അപരിചിത പിശക് ഉണ്ടായിരിക്കുന്നു." -#: ../src/connection-editor/nm-connection-list.c:637 -#: ../src/connection-editor/nm-connection-list.c:788 +#: ../src/connection-editor/nm-connection-list.c:528 +#: ../src/connection-editor/nm-connection-list.c:702 msgid "Error initializing editor" msgstr "എഡിറ്റര്‍ ആരംഭിക്കുന്നതില്‍ പിശക്." -#: ../src/connection-editor/nm-connection-list.c:653 -#: ../src/connection-editor/nm-connection-list.c:805 -#: ../src/connection-editor/nm-connection-list.c:973 +#: ../src/connection-editor/nm-connection-list.c:546 +#: ../src/connection-editor/nm-connection-list.c:719 +#: ../src/connection-editor/nm-connection-list.c:885 msgid "" "The connection editor dialog could not be initialized due to an unknown " "error." -msgstr "അപരിചിതമായ പിശക് കാരണം കണക്ഷന്‍ എഡിറ്റര്‍ ഡയലോഗ് ആരംഭിക്കുവാന്‍ സാധിച്ചില്ല." +msgstr "അപരിചിതമായ പിശക് കാരണം ബന്ധംഎഡിറ്റര്‍ ഡയലോഗ് ആരംഭിക്കുവാന്‍ സാധിച്ചില്ല." -#: ../src/connection-editor/nm-connection-list.c:662 +#: ../src/connection-editor/nm-connection-list.c:557 msgid "Could not create new connection" -msgstr "പുതിയ കണക്ഷന്‍ ഉണ്ടാക്കുവാന്‍ സാധ്യമായില്ല" +msgstr "പുതിയ ബന്ധം ഉണ്ടാക്കുവാന്‍ സാധ്യമായില്ല" -#: ../src/connection-editor/nm-connection-list.c:673 +#: ../src/connection-editor/nm-connection-list.c:569 msgid "Could not edit new connection" -msgstr "പുതിയ കണക്ഷന്‍ ചിട്ടപ്പെടുത്തുവാന്‍ സാധ്യമായില്ല" +msgstr "പുതിയ ബന്ധം ചിട്ടപ്പെടുത്തുവാന്‍ സാധ്യമായില്ല" -#: ../src/connection-editor/nm-connection-list.c:820 +#: ../src/connection-editor/nm-connection-list.c:733 msgid "Could not edit connection" -msgstr "കണക്ഷന്‍ ചിട്ടപ്പെടുത്തുവാന്‍ സാധ്യമായില്ല" +msgstr "ബന്ധം ചിട്ടപ്പെടുത്തുവാന്‍ സാധ്യമായില്ല" -#: ../src/connection-editor/nm-connection-list.c:845 +#: ../src/connection-editor/nm-connection-list.c:763 msgid "Connection delete failed" -msgstr "കണക്ഷന്‍ നീക്കം ചെയ്യുന്നതില്‍ പരാജയം" +msgstr "ബന്ധം നീക്കം ചെയ്യുന്നതില്‍ പരാജയം" -#: ../src/connection-editor/nm-connection-list.c:877 +#: ../src/connection-editor/nm-connection-list.c:795 #, c-format msgid "Are you sure you wish to delete the connection %s?" -msgstr "നിങ്ങള്‍ക്കു് %s കണക്ഷന്‍ വെട്ടിനീക്കണം എന്നുറപ്പാണോ?" +msgstr "നിങ്ങള്‍ക്കു് %s ബന്ധം വെട്ടിനീക്കണം എന്നുറപ്പാണോ?" -#: ../src/connection-editor/nm-connection-list.c:1020 +#: ../src/connection-editor/nm-connection-list.c:929 #: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" -msgstr "വിപിഎന്‍ കണക്ഷന്‍ ഇംപോര്‍ട്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല" +msgstr "വിപിഎന്‍ ബന്ധം ഇംപോര്‍ട്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല" -#: ../src/connection-editor/nm-connection-list.c:1022 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" "Error: no VPN service type." msgstr "" -"വിപിഎന്‍ പ്ലഗിനു് വിപിഎന്‍ കണക്ഷന്‍ ശരിയായ ഇംപോര്‍ട്ട് ചെയ്യുവാന്‍ സാധിച്ചില്ല\n" +"വിപിഎന്‍ പ്ലഗിനു് വിപിഎന്‍ ബന്ധംശരിയായ ഇംപോര്‍ട്ട് ചെയ്യുവാന്‍ സാധിച്ചില്ല\n" "\n" "പിശക്: വിപിഎന്‍ സര്‍വീസ് തരം ലഭ്യമല്ല." -#: ../src/connection-editor/nm-connection-list.c:1035 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" -msgstr "ഇംപോര്‍ട്ട് ചെയ്ത കണക്ഷന്‍ ചിട്ടപ്പെടുത്തുവാന്‍ സാധ്യമായില്ല" +msgstr "ഇംപോര്‍ട്ട് ചെയ്ത ബന്ധം ചിട്ടപ്പെടുത്തുവാന്‍ സാധ്യമായില്ല" -#: ../src/connection-editor/nm-connection-list.c:1169 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "പേര്" -#: ../src/connection-editor/nm-connection-list.c:1181 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "ഏറ്റവും ഒടുവില്‍ ഉപയോഗിച്ചതു്" -#: ../src/connection-editor/nm-connection-list.c:1284 -msgid "Edit" -msgstr "ചിട്ടപ്പെടുത്തുക" +#: ../src/connection-editor/nm-connection-list.c:1263 +msgid "No VPN plugin available. Please install one to enable this button." +msgstr "" +"വിപിഎന്‍ പ്ലഗിന്‍ ലഭ്യമല്ല. ഈ ബട്ടണ്‍ പ്രവര്‍ത്തന സജ്ജമാക്കുന്നതിനായി ദയവായി ഒരെണ്ണം ഇന്‍സ്റ്റോള്‍ ചെയ്യുക." + +#: ../src/connection-editor/nm-connection-list.c:1274 +msgid "_Edit" +msgstr "_ചിട്ട" -#: ../src/connection-editor/nm-connection-list.c:1285 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" -msgstr "തെരഞ്ഞെടുത്ത കണക്ഷന്‍ ചിട്ടപ്പെടുത്തുക." +msgstr "തെരഞ്ഞെടുത്ത ബന്ധം ചിട്ടപ്പെടുത്തുക." -#: ../src/connection-editor/nm-connection-list.c:1286 -msgid "Edit..." -msgstr "ചിട്ടപ്പെടുത്തുക..." +#: ../src/connection-editor/nm-connection-list.c:1276 +msgid "_Edit..." +msgstr "_ചിട്ട..." -#: ../src/connection-editor/nm-connection-list.c:1287 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" -msgstr "തെരഞ്ഞെടുത്ത കണക്ഷന്‍ ചിട്ടപ്പെടുത്തുന്നതിനു് മുമ്പ് ആധികാരികത ഉറപ്പാക്കുക." +msgstr "തെരഞ്ഞെടുത്ത ബന്ധം ചിട്ടപ്പെടുത്തുന്നതിനു് മുമ്പ് ആധികാരികത ഉറപ്പാക്കുക." -#: ../src/connection-editor/nm-connection-list.c:1301 -msgid "Delete" -msgstr "വെട്ടിനീക്കുക" +#: ../src/connection-editor/nm-connection-list.c:1292 +msgid "_Delete" +msgstr "_നീക്കം ചെയ്യുക" -#: ../src/connection-editor/nm-connection-list.c:1302 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" -msgstr "തെരഞ്ഞെടുത്ത കണക്ഷന്‍ നീക്കം ചെയ്യുക." +msgstr "തെരഞ്ഞെടുത്ത ബന്ധം നീക്കം ചെയ്യുക." -#: ../src/connection-editor/nm-connection-list.c:1303 -msgid "Delete..." -msgstr "ഇല്ലാതാക്കുക..." +#: ../src/connection-editor/nm-connection-list.c:1294 +msgid "_Delete..." +msgstr "_നീക്കം ചെയ്യുക..." -#: ../src/connection-editor/nm-connection-list.c:1304 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" -msgstr "തെരഞ്ഞെടുത്ത കണക്ഷന്‍ ഇല്ലാതാക്കുന്നതിനായി ആധികാരികത ഉറപ്പാക്കുക" +msgstr "തെരഞ്ഞെടുത്ത ബന്ധംഇല്ലാതാക്കുന്നതിനായി ആധികാരികത ഉറപ്പാക്കുക" + +#: ../src/connection-editor/nm-connection-list.c:1574 +msgid "Error creating connection" +msgstr "ബന്ധം സൃഷ്ടിയ്ക്കുമ്പോള്‍ തെറ്റു്" + +#: ../src/connection-editor/nm-connection-list.c:1575 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "എങ്ങനെ '%s' കണക്ഷനുകള്‍ തയ്യാറാക്കണമെന്നറിയില്ല" + +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 +msgid "Error editing connection" +msgstr "ബന്ധം ചിട്ടപ്പെടുത്തുന്നതില്‍ പിശക്" + +#: ../src/connection-editor/nm-connection-list.c:1631 +#, c-format +msgid "Don't know how to edit '%s' connections" +msgstr "'%s' കണക്ഷനുകള്‍ ഏങ്ങനെ ചിട്ടപ്പെടുത്തണമെന്നറിയില്ല" + +#: ../src/connection-editor/nm-connection-list.c:1643 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "UUID '%s'-മായുള്ളൊരു കണക്ഷന്‍ ലഭ്യമായില്ല" #: ../src/connection-editor/vpn-helpers.c:230 #, c-format @@ -2019,238 +2207,151 @@ "\n" "Error: %s." msgstr "" -"ഫയല്‍ '%s' വിപിഎന്‍ കണക്ഷന്‍ വിവരം ലഭ്യമാക്കുവാന്‍ സാധിച്ചില്ല\n" +"ഫയല്‍ '%s' വിപിഎന്‍ ബന്ധവിവരം ലഭ്യമാക്കുവാന്‍ സാധിച്ചില്ല\n" "\n" "പിശക്: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "ഇംപോര്‍ട്ട് ചെയ്യുന്നതിനുള്ള ഫയല്‍ തെരഞ്ഞെടുക്കുക" -#: ../src/connection-editor/vpn-helpers.c:310 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "\"%s\" എന്ന പേരില്‍ ഒരു ഫയല്‍ നിലവിലുണ്ടു്." -#: ../src/connection-editor/vpn-helpers.c:312 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "_മാറ്റിസ്ഥാപിക്കുക" -#: ../src/connection-editor/vpn-helpers.c:314 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" -msgstr "നിങ്ങള്‍ സൂക്ഷിച്ചുകൊണ്ടിരിക്കുന്ന വിപിഎന്‍ കണക്ഷന്‍ ഉപയോഗിച്ചു് %s മാറ്റണമോ?" +msgstr "നിങ്ങള്‍ സൂക്ഷിച്ചുകൊണ്ടിരിക്കുന്ന വിപിഎന്‍ ബന്ധംഉപയോഗിച്ചു് %s മാറ്റണമോ?" -#: ../src/connection-editor/vpn-helpers.c:350 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" -msgstr "വിപിഎന്‍ കണക്ഷന്‍ എക്സ്പോര്‍ട്ട് ചെയ്യുവാന്‍ സാധിച്ചില്ല" +msgstr "വിപിഎന്‍ ബന്ധം എക്സ്പോര്‍ട്ട് ചെയ്യുവാന്‍ സാധിച്ചില്ല" -#: ../src/connection-editor/vpn-helpers.c:352 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" "\n" "Error: %s." msgstr "" -"വിപിഎന്‍ കണക്ഷന്‍ '%s' %s-ലേക്കു് എക്സ്പോര്‍ട്ട് ചെയ്യുവാന്‍ സാധിച്ചില്ല.\n" +"വിപിഎന്‍ ബന്ധം '%s' %s-ലേക്കു് എക്സ്പോര്‍ട്ട് ചെയ്യുവാന്‍ സാധിച്ചില്ല.\n" "\n" "പിശക്: %s." -#: ../src/connection-editor/vpn-helpers.c:386 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." -msgstr "വിപിഎന്‍ കണക്ഷന്‍ എക്സ്പോര്‍ട്ട് ചെയ്യുക..." +msgstr "വിപിഎന്‍ ബന്ധം എക്സ്പോര്‍ട്ട് ചെയ്യുക..." -#: ../src/gnome-bluetooth/bt-widget.c:213 +#: ../src/gnome-bluetooth/bt-widget.c:321 #, c-format -msgid "%s Network" -msgstr "%s നെറ്റ്‌വര്‍ക്ക്" +#| msgid "" +#| "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." +msgid "Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "ബ്ലൂടൂത് ക്രമീകരണം സാധ്യമല്ല (ഡീ-ബസിലേക്കു് കണക്ട് ചെയ്യുന്നതില്‍ പരാജയം: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:322 +#: ../src/gnome-bluetooth/bt-widget.c:330 +#, c-format +#| msgid "" +#| "Bluetooth configuration not possible (error finding NetworkManager: %s)." +msgid "Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "ബ്ലൂടൂത് ക്രമീകരണം സാധ്യമല്ല (NetworkManager കണ്ടുപിടിയ്ക്കുന്നതില്‍ പിശക്: (%s) %s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "നിങ്ങളുടെ മൊബൈല്‍ ഫോണ്‍ ശൃംഖല ഡിവൈസായി ഉപയോഗിക്കുക (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "നിങ്ങളുടെ മൊബൈല്‍ ഫോണിലൂടെ (DUN) ഇന്റര്‍നെറ്റ് ലഭ്യമാക്കുക" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "പിശക്: %s" -#: ../src/gnome-bluetooth/bt-widget.c:441 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 +#, c-format +msgid "Failed to create DUN connection: %s" +msgstr "ഡിയുഎന്‍ കണക്ഷനുണ്ടാക്കുന്നതില്‍ പരാജയം: %s" + +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "ഫോണ്‍ ഉപയോഗിക്കുവാന്‍ തയ്യാര്‍!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "മൊബൈല്‍ വിസാര്‍ഡ് റദ്ദാക്കിയിരിക്കുന്നു" -#: ../src/gnome-bluetooth/bt-widget.c:450 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "അപരിചിതമായ ഫോണ്‍ ഡിവൈസ് രീതി (GSM അല്ലെങ്കില്‍ CDMA അല്ല)" -#: ../src/gnome-bluetooth/bt-widget.c:478 -msgid "Your phone is now ready to use!" -msgstr "ഫോണ്‍ ഉപയോഗിക്കുവാന്‍ തയ്യാര്‍!" +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "അപരിചിതമായ മോഡം തരം." -#: ../src/gnome-bluetooth/bt-widget.c:648 -#: ../src/gnome-bluetooth/bt-widget.c:654 +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "ഫോണിലേക്ക് കണക്ട് ചെയ്യുന്നതില്‍ പരാജയം." -#: ../src/gnome-bluetooth/bt-widget.c:687 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "ഫോണില്‍ നിന്നും അപ്രതീക്ഷിതമായി വിഛേദിക്കപ്പെട്ടിരിക്കുന്നു." -#: ../src/gnome-bluetooth/bt-widget.c:696 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "ഫോണ്‍ വിശദാംശങ്ങള്‍ തെരയുന്നതിനുള്ള സമയം കഴിഞ്ഞിരിക്കുന്നു." -#: ../src/gnome-bluetooth/bt-widget.c:711 -msgid "could not connect to the system bus." -msgstr "സിസ്റ്റം ബസിലേക്ക് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല." - -#: ../src/gnome-bluetooth/bt-widget.c:716 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "ഫോണ്‍ ക്രമീകരണം ലഭ്യമാക്കുന്നു..." -#: ../src/gnome-bluetooth/bt-widget.c:782 -msgid "could not find the Bluetooth device." -msgstr "ബ്ലൂടൂത് ഡിവൈസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." - -#: ../src/gnome-bluetooth/bt-widget.c:912 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." msgstr "" -"ഡയല്‍-അപ്പ് നെറ്റ്‌വര്‍ക്കിങ് കണക്ഷന്‍ സജ്ജമാക്കുന്നതിനു മുമ്പായി സ്വതവേയുള്ള ബ്ലൂടൂത് അഡാപ്ടര്‍ പ്രവര്‍ത്തന " +"ഡയല്‍-അപ്പ് നെറ്റ്‌വര്‍ക്കിങ് ബന്ധം സജ്ജമാക്കുന്നതിനു മുമ്പായി സ്വതവേയുള്ള ബ്ലൂടൂത് അഡാപ്ടര്‍ പ്രവര്‍ത്തന " "സജ്ജമാക്കുക." -#: ../src/gnome-bluetooth/bt-widget.c:944 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "ബ്ലൂടൂത് ക്രമീകരണം സാധ്യമല്ല (ഡീ-ബസിലേക്കു് കണക്ട് ചെയ്യുന്നതില്‍ പരാജയം: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:954 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "ബ്ലൂടൂത് ക്രമീകരണം സാധ്യമല്ല (ഡീ-ബസ് പ്രോക്സി തയ്യാറാക്കുന്നതില്‍ പരാജയം)." +msgid "Failed to create PAN connection: %s" +msgstr "പിഎഎന്‍ കണക്ഷന്‍ തയ്യാറാക്കുന്നതില്‍ പരാജയം: %s" -#: ../src/gnome-bluetooth/bt-widget.c:963 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "ബ്ലൂടൂത് ക്രമീകരണം സാധ്യമല്ല (NetworkManager കണ്ടുപിടിയ്ക്കുന്നതില്‍ പിശക്: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1014 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "നിങ്ങളുടെ മൊബൈല്‍ ഫോണ്‍ നെറ്റ്‌വര്‍ക്ക് ഡിവൈസായി ഉപയോഗിക്കുക (PAN/NAP)" - -#: ../src/gnome-bluetooth/bt-widget.c:1023 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "നിങ്ങളുടെ മൊബൈല്‍ ഫോണിലൂടെ (DUN) ഇന്റര്‍നെറ്റ് ലഭ്യമാക്കുക" - -#: ../src/main.c:70 -msgid "Usage:" -msgstr "ഉപയോഗം:" - -#: ../src/main.c:72 -msgid "" -"This program is a component of NetworkManager (http://projects.gnome.org/" -"NetworkManager)." -msgstr "" -"ഈ പ്രോഗ്രാം നെറ്റ്‌വര്‍ക്ക്മാനേജറിന്റെ ഒരു ഘടകമാണു് (http://projects.gnome.org/" -"NetworkManager)." - -#: ../src/main.c:73 -msgid "" -"It is not intended for command-line interaction but instead runs in the " -"GNOME desktop environment." -msgstr "ഇതു് കമാന്‍ഡ് ലൈന്‍ ഇടപെടലിനു് ഉചിതമല്ല, പകരം ഗ്നോം പണിയിട എന്‍വയോണ്മെന്റില്‍ പ്രവര്‍ത്തിക്കുന്നു." - -#: ../src/mb-menu-item.c:58 -msgid "EVDO" -msgstr "EVDO" - -#: ../src/mb-menu-item.c:62 -msgid "GPRS" -msgstr "GPRS" - -#: ../src/mb-menu-item.c:64 -msgid "EDGE" -msgstr "EDGE" - -#: ../src/mb-menu-item.c:66 -msgid "UMTS" -msgstr "UMTS" - -#: ../src/mb-menu-item.c:68 -msgid "HSDPA" -msgstr "HSDPA" - -#: ../src/mb-menu-item.c:70 -msgid "HSUPA" -msgstr "HSUPA" - -#: ../src/mb-menu-item.c:72 -msgid "HSPA" -msgstr "HSPA" - -#: ../src/mb-menu-item.c:104 -msgid "not enabled" -msgstr "പ്രവര്‍ത്തന സജ്ജമല്ല" - -#: ../src/mb-menu-item.c:110 -msgid "not registered" -msgstr "രജിസ്ടര്‍ ചെയ്തിട്ടില്ല" - -#: ../src/mb-menu-item.c:128 -#, c-format -msgid "Home network (%s)" -msgstr "ഹോം നെറ്റ്‌വര്‍ക്ക് (%s)" - -#: ../src/mb-menu-item.c:130 -#, c-format -msgid "Home network" -msgstr "ഹോം നെറ്റ്‌വര്‍ക്ക് " - -#: ../src/mb-menu-item.c:138 -msgid "searching" -msgstr "തെരയുന്നു" - -#: ../src/mb-menu-item.c:141 -msgid "registration denied" -msgstr "രജിസ്ട്രേഷന്‍ നിഷേധിച്ചിരിക്കുന്നു" - -#: ../src/mb-menu-item.c:146 ../src/mb-menu-item.c:152 -#, c-format -msgid "%s (%s roaming)" -msgstr "%s (%s റോമിങ്)" - -#: ../src/mb-menu-item.c:148 ../src/mb-menu-item.c:154 -#, c-format -msgid "%s (roaming)" -msgstr "%s (റോമിങ്)" - -#: ../src/mb-menu-item.c:157 -#, c-format -msgid "Roaming network (%s)" -msgstr "റോമിങ് നെറ്റ്‌വര്‍ക്ക് (%s)" - -#: ../src/mb-menu-item.c:159 -#, c-format -msgid "Roaming network" -msgstr "റോമിങ് നെറ്റ്‌വര്‍ക്ക്" +msgid "%s Network" +msgstr "%s ശൃംഖല" -#: ../src/utils/mobile-wizard.c:196 +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 msgid "Your mobile broadband connection is configured with the following settings:" -msgstr "" -"നിങ്ങളുടെ മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് കണക്ഷന്‍ താഴെ പറഞ്ഞിരിക്കുന്ന ക്രമീകരണങ്ങള്‍കൊണ്ട് " -"സജ്ജമാക്കിയിരിക്കുന്നു:" +msgstr "നിങ്ങളുടെ മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ബന്ധം താഴെ പറഞ്ഞിരിക്കുന്ന ക്രമീകരണങ്ങള്‍കൊണ്ട് സജ്ജമാക്കിയിരിക്കുന്നു:" #. Device -#: ../src/utils/mobile-wizard.c:203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:212 msgid "Your Device:" msgstr "നിങ്ങളുടെ ഡിവൈസ്:" #. Provider -#: ../src/utils/mobile-wizard.c:214 +#: ../src/libnm-gtk/nm-mobile-wizard.c:223 msgid "Your Provider:" msgstr "നിങ്ങളുടെ പ്രൊവൈഡര്‍:" #. Plan and APN -#: ../src/utils/mobile-wizard.c:225 +#: ../src/libnm-gtk/nm-mobile-wizard.c:234 msgid "Your Plan:" msgstr "നിങ്ങളുടെ പ്ലാന്‍:" -#: ../src/utils/mobile-wizard.c:246 +#: ../src/libnm-gtk/nm-mobile-wizard.c:259 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2258,221 +2359,185 @@ "connection settings, choose \"Network Connections\" from the System >> " "Preferences menu." msgstr "" -"നിങ്ങള്‍ തെരഞ്ഞെടുത്ത ക്രമീകരണങ്ങള്‍ ഉപയോഗിച്ച് നിങ്ങളുടെ മൊബൈല്‍ പ്രൊവൈഡറിലേക്ക് ഒരു കണക്ഷന്‍ " -"ഇപ്പോള്‍ നല്‍കുന്നു. കണക്ഷന്‍ പരാജയപ്പെടുകയോ, നെറ്റ്‌വര്‍ക്ക് സോഴ്സുകള്‍ ലഭ്യമാക്കുകയോ സാധ്യമല്ലെങ്കില്‍, " -"ക്രമീകരണങ്ങളില്‍ ഡബിള്‍ ക്ലിക്ക് ചെയ്യുക. നിങ്ങളുടെ മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് കണക്ഷന്‍ ക്രമീകരണങ്ങള്‍ " -"മാറ്റുന്നതിനായി, സിസ്റ്റം >> മുന്‍ഗണനകള്‍ എന്ന മെനുവില്‍ നിന്നും \"നെറ്റ്‌വര്‍ക്ക് കണക്ഷനുകള്‍\" " -"തെരഞ്ഞെടുക്കുക." +"നിങ്ങള്‍ തെരഞ്ഞെടുത്ത ക്രമീകരണങ്ങള്‍ ഉപയോഗിച്ച് നിങ്ങളുടെ മൊബൈല്‍ പ്രൊവൈഡറിലേക്ക് ഒരു ബന്ധം ഇപ്പോള്‍ " +"നല്‍കുന്നു. ബന്ധം പരാജയപ്പെടുകയോ, ശൃംഖല സോഴ്സുകള്‍ ലഭ്യമാക്കുകയോ സാധ്യമല്ലെങ്കില്‍, ക്രമീകരണങ്ങളില്‍ " +"ഡബിള്‍ ക്ലിക്ക് ചെയ്യുക. നിങ്ങളുടെ മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ബന്ധം ക്രമീകരണങ്ങള്‍ മാറ്റുന്നതിനായി, " +"സിസ്റ്റം >> മുന്‍ഗണനകള്‍ എന്ന മെനുവില്‍ നിന്നും \"ശൃംഖല ബന്ധങ്ങള്‍\" തെരഞ്ഞെടുക്കുക." -#: ../src/utils/mobile-wizard.c:258 +#: ../src/libnm-gtk/nm-mobile-wizard.c:271 msgid "Confirm Mobile Broadband Settings" msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് സജ്ജീകരണങ്ങള്‍ ഉറപ്പാക്കുക" -#: ../src/utils/mobile-wizard.c:319 +#: ../src/libnm-gtk/nm-mobile-wizard.c:332 msgid "Unlisted" msgstr "പട്ടികയിലില്ലാത്ത" -#: ../src/utils/mobile-wizard.c:437 +#: ../src/libnm-gtk/nm-mobile-wizard.c:487 msgid "_Select your plan:" msgstr "നിങ്ങളുടെ പ്ലാന്‍ _തെരെഞ്ഞെടുക്കുക:" -#: ../src/utils/mobile-wizard.c:461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:511 msgid "Selected plan _APN (Access Point Name):" msgstr "തെരഞ്ഞെടുത്ത പ്ലാന്‍ _APN (ആക്സസ് പോയിന്റ് നെയിം):" -#: ../src/utils/mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"മുന്നറിയിപ്പു്: തെറ്റായ പ്ലാന്‍ തെരഞ്ഞെടുക്കുന്നതു് ബില്ലിങില്‍ പ്രശ്നങ്ങള്‍ ഉണ്ടാക്കുന്നു, അല്ലെങ്കില്‍ " -"കണക്ഷന്‍ തടസ്സപ്പെടുത്തുന്നു.\n" +"മുന്നറിയിപ്പു്: തെറ്റായ പ്ലാന്‍ തെരഞ്ഞെടുക്കുന്നതു് ബില്ലിങില്‍ പ്രശ്നങ്ങള്‍ ഉണ്ടാക്കുന്നു, അല്ലെങ്കില്‍ ബന്ധം " +"തടസ്സപ്പെടുത്തുന്നു.\n" "\n" "നിങ്ങളുടെ പ്ലാന്‍ ഏതെന്നുറപ്പല്ലെങ്കില്‍, ദയവായി നിങ്ങളുടെ പ്രൊവൈഡറില്‍ നിന്നും APN ലഭ്യമാക്കുക." -#: ../src/utils/mobile-wizard.c:487 +#: ../src/libnm-gtk/nm-mobile-wizard.c:542 msgid "Choose your Billing Plan" msgstr "നിങ്ങളുടെ ബില്ലിങ് പ്ലാന്‍ തെരഞ്ഞെടുക്കുക" -#: ../src/utils/mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:590 msgid "My plan is not listed..." msgstr "എന്റെ പ്ലാന്‍ പട്ടികയിലില്ല..." -#: ../src/utils/mobile-wizard.c:688 +#: ../src/libnm-gtk/nm-mobile-wizard.c:747 msgid "Select your provider from a _list:" msgstr "_പട്ടികയില്‍ നിന്നും നിങ്ങളുടെ പ്രൊവൈഡര്‍ തെരഞ്ഞെടുക്കുക:" -#: ../src/utils/mobile-wizard.c:701 +#: ../src/libnm-gtk/nm-mobile-wizard.c:760 msgid "Provider" msgstr "പ്രൊവൈഡര്‍" -#: ../src/utils/mobile-wizard.c:726 +#: ../src/libnm-gtk/nm-mobile-wizard.c:785 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "എന്റെ പ്രൊവൈഡര്‍ ലഭ്യമല്ല, സ്വയം നല്‍കുവാന്‍ ആഗ്രഹിക്കുന്നു:" -#: ../src/utils/mobile-wizard.c:737 +#: ../src/libnm-gtk/nm-mobile-wizard.c:796 msgid "Provider:" msgstr "പ്രൊവൈഡര്‍:" -#: ../src/utils/mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:820 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "എന്റെ പ്രൊവൈഡര്‍ GSM ടെക്നോളജി ഉപയോഗിക്കുന്നു (GPRS, EDGE, UMTS, HSPA)" -#: ../src/utils/mobile-wizard.c:755 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "എന്റെ പ്രൊവൈഡര്‍ CDMA ടെക്നോളജി ഉപയോഗിക്കുന്നു (1xRTT, EVDO)" -#: ../src/utils/mobile-wizard.c:766 +#: ../src/libnm-gtk/nm-mobile-wizard.c:837 msgid "Choose your Provider" msgstr "നിങ്ങളുടെ പ്രൊവൈഡര്‍ തെരഞ്ഞെടുക്കുക" -#: ../src/utils/mobile-wizard.c:1012 -msgid "Country List:" -msgstr "രാജ്യത്തിന്റെ പട്ടിക:" - -#: ../src/utils/mobile-wizard.c:1024 -msgid "Country" -msgstr "രാജ്യം" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1088 +msgid "Country or Region List:" +msgstr "രാജ്യങ്ങളുടേയോ പ്രദേശങ്ങളുടേയോ പട്ടിക:" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +msgid "Country or region" +msgstr "രാജ്യമോ പ്രദേശമോ:" -#: ../src/utils/mobile-wizard.c:1031 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1107 msgid "My country is not listed" msgstr "എന്റെ രാജ്യം ലഭ്യമല്ല" -#: ../src/utils/mobile-wizard.c:1077 -msgid "Choose your Provider's Country" -msgstr "നിങ്ങളുടെ പ്രൊവൈഡറുടെ രാജ്യം തെരഞ്ഞെടുക്കുക" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1153 +msgid "Choose your Provider's Country or Region" +msgstr "നിങ്ങളുടെ ദാതാവിന്റെ രാജ്യമോ പ്രദേശമോ തിരഞ്ഞെടുക്കുക" -#: ../src/utils/mobile-wizard.c:1126 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1207 msgid "Installed GSM device" msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്ന GSM ഡിവൈസ്" -#: ../src/utils/mobile-wizard.c:1129 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1210 msgid "Installed CDMA device" msgstr "ഇന്‍സ്റ്റോള്‍ ചെയ്തിരിക്കുന്ന CDMA ഡിവൈസ്" -#: ../src/utils/mobile-wizard.c:1297 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1382 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." msgstr "" "ഈ സഹായി നിങ്ങളെ എളുപ്പത്തില്‍ ഒരു സെല്ലുലാര്‍ (3G) നെറ്റ്‌വര്‍ക്കിലേക്ക് നിങ്ങളുടെമൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് " -"കണക്ഷന്‍ സജ്ജമാക്കുന്നു." +"ബന്ധം സജ്ജമാക്കുന്നു." -#: ../src/utils/mobile-wizard.c:1302 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1387 msgid "You will need the following information:" msgstr "നിങ്ങള്‍ക്ക് ഈ വിവരങ്ങള്‍ ആവശ്യമാകുന്നു:" -#: ../src/utils/mobile-wizard.c:1313 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1402 msgid "Your broadband provider's name" msgstr "നിങ്ങളുടെ ബ്രോഡ്ബാന്‍ഡ് പ്രൊവൈഡറിന്റെ പേര്" -#: ../src/utils/mobile-wizard.c:1319 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband billing plan name" msgstr "നിങ്ങളുടെ ബ്രോഡ്ബാന്‍ഡ് ബില്ലിങ് പ്ലാന്‍" -#: ../src/utils/mobile-wizard.c:1325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(ചില സാഹചര്യങ്ങളില്‍) നിങ്ങളുടെ ബ്രോഡ്ബാന്‍ഡ് ബില്ലിങ് പ്ലാന്‍ APN (ആക്സസ് പോയിന്റ് നെയിം)" -#: ../src/utils/mobile-wizard.c:1352 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1441 msgid "Create a connection for _this mobile broadband device:" -msgstr "ഈ മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ഡിവൈസിനു് ഒരു കണക്ഷന്‍ ഉണ്ടാക്കുക:" +msgstr "ഈ മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ഡിവൈസിനു് ഒരു ബന്ധം ഉണ്ടാക്കുക:" -#: ../src/utils/mobile-wizard.c:1367 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1456 msgid "Any device" msgstr "ഏതെങ്കിലും ഡിവൈസ്" -#: ../src/utils/mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1469 msgid "Set up a Mobile Broadband Connection" -msgstr "ഒരു മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് കണക്ഷന്‍ സജ്ജമാക്കുക" +msgstr "ഒരു മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ബന്ധം സജ്ജമാക്കുക" -#: ../src/utils/mobile-wizard.c:1554 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1633 msgid "New Mobile Broadband Connection" msgstr "പുതിയ മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് കണക്ഷന്‍" -#: ../src/utils/nmn-mobile-providers.c:76 -msgid "United Kingdom" -msgstr "യുണൈറ്റഡ് കിങ്ഡം" - -#: ../src/utils/nmn-mobile-providers.c:523 -msgid "Default" -msgstr "സ്വതവേയുള്ള" - -#: ../src/vpn-password-dialog.c:137 ../src/vpn-password-dialog.c:255 -#, c-format -msgid "Cannot start VPN connection '%s'" -msgstr "വിപിഎന്‍ കണക്ഷന്‍ '%s' ആരംഭിക്കുവാന്‍ സാധ്യമായില്ല" - -#: ../src/vpn-password-dialog.c:140 -#, c-format -msgid "" -"Could not find the authentication dialog for VPN connection type '%s'. " -"Contact your system administrator." -msgstr "" -"വിപിഎന്‍ കണക്ഷന്‍ തരത്തിലുള്ള'%s'-നുള്ള ഓഥന്റിക്കേഷന്‍ ഡയലോഗ് ലഭ്യമായില്ല. ദയവായി സിസ്റ്റം " -"അഡ്മിനിസ്ട്രേറ്ററുമായി ബന്ധപ്പെടുക." - -#: ../src/vpn-password-dialog.c:258 -#, c-format -msgid "" -"There was a problem launching the authentication dialog for VPN connection " -"type '%s'. Contact your system administrator." -msgstr "" -"വിപിഎന്‍ കണക്ഷന്‍ തരത്തിലുള്ള'%s'-നുള്ള ഓഥന്റിക്കേഷന്‍ ഡയലോഗ് ലഭ്യമാക്കുന്നതില്‍ പ്രശ്നം. ദയവായി " -"സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്ററുമായി ബന്ധപ്പെടുക." - -#: ../src/wired-dialog.c:99 -msgid "Wired 802.1X authentication" -msgstr "വയര്‍ഡ് 802.1X ആധികാരികത" - -#: ../src/wireless-dialog.c:474 +#: ../src/libnm-gtk/nm-wireless-dialog.c:457 msgid "New..." msgstr "പുതിയ..." -#: ../src/wireless-dialog.c:1094 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "_ഉണ്ടാക്കുക" -#: ../src/wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." +"Passwords or encryption keys are required to access the wireless network " +"'%s'." msgstr "" -"വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക് '%s'-ലേക്ക് പ്രവേശിക്കുന്നതിനായി അടയാളവാക്കുകള്‍ അല്ലെങ്കില്‍ എന്‍ക്രിപ്ഷന്‍ " -"കീകള്‍ ആവശ്യമുണ്ടു്." +"വയര്‍ലെസ് ശൃംഖല '%s'-ലേക്ക് പ്രവേശിക്കുന്നതിനായി അടയാളവാക്കുകള്‍ അല്ലെങ്കില്‍ എന്‍ക്രിപ്ഷന്‍ കീകള്‍ " +"ആവശ്യമുണ്ടു്." -#: ../src/wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" -msgstr "വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക് ആധികാരികത ആവശ്യമുണ്ടു്" +msgstr "വയര്‍ലെസ് ശൃംഖല ആധികാരികത ആവശ്യമുണ്ടു്" -#: ../src/wireless-dialog.c:1179 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" -msgstr "വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക് ആധികാരികത ഉറപ്പിക്കുന്നതിനായി ആവശ്യപ്പെട്ടിരിക്കുന്നു" +msgstr "വയര്‍ലെസ് ശൃംഖല ആധികാരികത ഉറപ്പിക്കുന്നതിനായി ആവശ്യപ്പെട്ടിരിക്കുന്നു" -#: ../src/wireless-dialog.c:1184 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" -msgstr "പുതിയ വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക് ഉണ്ടാക്കുക" +msgstr "പുതിയ വയര്‍ലെസ് ശൃംഖല ഉണ്ടാക്കുക" -#: ../src/wireless-dialog.c:1186 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" -msgstr "പുതിയ വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക്" +msgstr "പുതിയ വയര്‍ലെസ് ശൃംഖല" -#: ../src/wireless-dialog.c:1187 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "നിങ്ങള്‍ ഉണ്ടാക്കുവാന്‍ ആഗ്രഹിക്കുന്ന വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്കിന്റെ പേരു് നല്‍കുക." -#: ../src/wireless-dialog.c:1189 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "അദൃശ്യമായ വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്കിലേക്ക് കണക്ട് ചെയ്യുക" -#: ../src/wireless-dialog.c:1191 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" -msgstr "അദൃശ്യമായ വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്ക്" +msgstr "അദൃശ്യമായ വയര്‍ലെസ് ശൃംഖല" -#: ../src/wireless-dialog.c:1192 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." @@ -2480,51 +2545,246 @@ "നിങ്ങള്‍ കണക്ട് ചെയ്യുവാന്‍ ആഗ്രഹിക്കുന്ന അദൃശ്യമായ വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്കിന്റ് പേരും സുരക്ഷാ " "വിശദാംശങ്ങളും നല്‍കുക" -#: ../src/wireless-security/eap-method.c:190 +#: ../src/libnm-gtk/wifi.ui.h:2 +msgid "Wireless _security:" +msgstr "_വയര്‍ലെസ് സുരക്ഷ:" + +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "ക_ണക്ഷന്‍:" + +#: ../src/libnm-gtk/wifi.ui.h:5 +msgid "Wireless _adapter:" +msgstr "വയര്‍ലെസ് _അഡാപ്ടര്‍:" + +#: ../src/main.c:73 +msgid "Usage:" +msgstr "ഉപയോഗം:" + +#: ../src/main.c:75 +msgid "" +"This program is a component of NetworkManager (http://projects.gnome.org/" +"NetworkManager)." +msgstr "" +"ഈ പ്രോഗ്രാം ശൃംഖലമാനേജറിന്റെ ഒരു ഘടകമാണു് (http://projects.gnome.org/" +"NetworkManager)." + +#: ../src/main.c:76 +msgid "" +"It is not intended for command-line interaction but instead runs in the " +"GNOME desktop environment." +msgstr "ഇതു് കമാന്‍ഡ് ലൈന്‍ ഇടപെടലിനു് ഉചിതമല്ല, പകരം ഗ്നോം പണിയിട എന്‍വയോണ്മെന്റില്‍ പ്രവര്‍ത്തിക്കുന്നു." + +#: ../src/mb-menu-item.c:57 +msgid "EVDO" +msgstr "EVDO" + +#: ../src/mb-menu-item.c:61 +msgid "GPRS" +msgstr "GPRS" + +#: ../src/mb-menu-item.c:63 +msgid "EDGE" +msgstr "EDGE" + +#: ../src/mb-menu-item.c:65 +msgid "UMTS" +msgstr "UMTS" + +#: ../src/mb-menu-item.c:67 +msgid "HSDPA" +msgstr "HSDPA" + +#: ../src/mb-menu-item.c:69 +msgid "HSUPA" +msgstr "HSUPA" + +#: ../src/mb-menu-item.c:71 +msgid "HSPA" +msgstr "HSPA" + +#: ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "വൈമാക്സ്" + +#: ../src/mb-menu-item.c:109 +msgid "not enabled" +msgstr "പ്രവര്‍ത്തന സജ്ജമല്ല" + +#: ../src/mb-menu-item.c:115 +msgid "not registered" +msgstr "രജിസ്ടര്‍ ചെയ്തിട്ടില്ല" + +#: ../src/mb-menu-item.c:133 +#, c-format +msgid "Home network (%s)" +msgstr "ഹോം ശൃംഖല (%s)" + +#: ../src/mb-menu-item.c:135 +#, c-format +msgid "Home network" +msgstr "ഹോം ശൃംഖല " + +#: ../src/mb-menu-item.c:143 +msgid "searching" +msgstr "തെരയുന്നു" + +#: ../src/mb-menu-item.c:146 +msgid "registration denied" +msgstr "രജിസ്ട്രേഷന്‍ നിഷേധിച്ചിരിക്കുന്നു" + +#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 +#, c-format +msgid "%s (%s roaming)" +msgstr "%s (%s റോമിങ്)" + +#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 +#, c-format +msgid "%s (roaming)" +msgstr "%s (റോമിങ്)" + +#: ../src/mb-menu-item.c:162 +#, c-format +msgid "Roaming network (%s)" +msgstr "റോമിങ് ശൃംഖല (%s)" + +#: ../src/mb-menu-item.c:164 +#, c-format +msgid "Roaming network" +msgstr "റോമിങ് ശൃംഖല" + +#: ../src/utils/nmn-mobile-providers.c:531 +msgid "Default" +msgstr "സ്വതവേയുള്ള" + +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +#| msgid "Base Connection:" +msgid "%s connection" +msgstr "%s കണക്ഷന്‍" + +#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"ആവശ്യമുള്ള ചില ഉറവിടങ്ങള്‍ ലഭ്യമാക്കുവാന്‍ NetworkManager ആപ്ലെറ്റിനു് സാധ്യമായില്ല (.ui" +"ഫയല്‍ ലഭ്യമായില്ല)" + +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "സര്‍ട്ടിഫീക്കേറ്റ് അഥോറിറ്റി (CA) സര്‍ട്ടിഫീക്കേറ്റ് തെരഞ്ഞെടുത്തിട്ടില്ല" -#: ../src/wireless-security/eap-method.c:191 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " "Certificate Authority certificate?" msgstr "" "ഒരു സര്‍ട്ടിഫീക്കേറ്റ് അഥോറിറ്റി (CA) സര്‍ട്ടിഫീക്കേറ്റ് ഉപയോഗിച്ചില്ല എങ്കില്‍, സുരക്ഷിതമല്ലാത്ത " -"വയര്‍ലെസ് നെറ്റ്‌വര്‍ക്കുകളിലേക്കു് കടക്കുവാന്‍ സാധ്യതയുണ്ടു്. നിങ്ങള്‍ക്കു് ഒരു സര്‍ട്ടിഫീക്കേറ്റ് അഥോറിറ്റി " +"വയര്‍ലെസ് ശൃംഖലകളിലേയ്ക്കു് കടക്കുവാന്‍ സാധ്യതയുണ്ടു്. നിങ്ങള്‍ക്കു് ഒരു സര്‍ട്ടിഫീക്കേറ്റ് അഥോറിറ്റി " "സര്‍ട്ടിഫീക്കേറ്റ് തെരഞ്ഞെടുക്കണമോ?" -#: ../src/wireless-security/eap-method.c:200 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "CA സര്‍ട്ടിഫീക്കേറ്റ് തെരഞ്ഞെടുക്കുക" -#: ../src/wireless-security/eap-method.c:515 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM, അല്ലെങ്കില്‍ PKCS#12 സ്വകാര്യ കീകള്‍ (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:518 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER അല്ലെങ്കില്‍ PEM സര്‍ട്ടിഫീക്കേറ്റുകള്‍ (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-peap.c:261 -msgid "MD5" -msgstr "MD5" +#: ../src/wireless-security/eap-method-fast.ui.h:2 +msgid "Anonymous" +msgstr "വെളിപ്പെടുത്താതെ" + +#: ../src/wireless-security/eap-method-fast.ui.h:3 +msgid "Authenticated" +msgstr "തിരിച്ചറിഞ്ഞിരിയ്ക്കുന്നു" + +#: ../src/wireless-security/eap-method-fast.ui.h:4 +msgid "Both" +msgstr "രണ്ടും" + +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "_അ‍ജ്ഞാതം:" -#: ../src/wireless-security/eap-method-peap.c:277 +#: ../src/wireless-security/eap-method-fast.ui.h:6 +msgid "PAC _file:" +msgstr "പിഎസി _ഫയല്‍:" + +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-ttls.ui.h:4 +msgid "_Inner authentication:" +msgstr "_ആന്തരിക ആധികാരികത ഉറപ്പാക്കല്‍" + +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "ഓട്ടോമാറ്റിക് പിഎസി അനുവദിയ്ക്കുക" + +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 msgid "GTC" msgstr "GTC" -#: ../src/wireless-security/eap-method-peap.c:366 -#: ../src/wireless-security/eap-method-tls.c:457 -#: ../src/wireless-security/eap-method-ttls.c:365 +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "ഒരു പിഎസി ഫയല്‍ തിരഞ്ഞെടുക്കുക..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "പിഎസി ഫയലുകള്‍ (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "എല്ലാ ഫയലുകളും" + +#: ../src/wireless-security/eap-method-peap.c:263 +#: ../src/wireless-security/wireless-security.c:382 +msgid "MD5" +msgstr "MD5" + +#: ../src/wireless-security/eap-method-peap.c:350 +#: ../src/wireless-security/eap-method-tls.c:416 +#: ../src/wireless-security/eap-method-ttls.c:350 msgid "Choose a Certificate Authority certificate..." msgstr "ഒരു സര്‍ട്ടിഫീക്കേറ്റ് അഥോറിറ്റി സര്‍ട്ടിഫീക്കേറ്റ് തെരഞ്ഞെടുക്കുക..." -#: ../src/wireless-security/eap-method-tls.c:263 +#: ../src/wireless-security/eap-method-peap.ui.h:3 +msgid "Version 0" +msgstr "പതിപ്പ് 0" + +#: ../src/wireless-security/eap-method-peap.ui.h:4 +msgid "Version 1" +msgstr "പതിപ്പ് 1" + +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-ttls.ui.h:3 +msgid "C_A certificate:" +msgstr "C_A സര്‍ട്ടിഫീക്കേറ്റ്:" + +#: ../src/wireless-security/eap-method-peap.ui.h:8 +msgid "PEAP _version:" +msgstr "പിഇഎപി _പതിപ്പ്:" + +#: ../src/wireless-security/eap-method-simple.ui.h:3 +msgid "As_k for this password every time" +msgstr "അടയാളവാക്ക് എപ്പോഴും ചോ_ദിക്കുക" + +#: ../src/wireless-security/eap-method-tls.c:246 msgid "Unencrypted private keys are insecure" msgstr "എന്‍ക്രിപ്റ്റ് ചെയ്യാത്ത സ്വകാര്യ കീകള്‍ അസുരക്ഷിതമാണു്" -#: ../src/wireless-security/eap-method-tls.c:266 +#: ../src/wireless-security/eap-method-tls.c:249 msgid "" "The selected private key does not appear to be protected by a password. " "This could allow your security credentials to be compromised. Please select " @@ -2538,23 +2798,117 @@ "\n" "(openssl ഉപയോഗിച്ചു് നിങ്ങളുടെ സ്വകാര്യ കീ അടയാളവാക്ക് വഴി സുരക്ഷിതമാക്കാം)" -#: ../src/wireless-security/eap-method-tls.c:451 +#: ../src/wireless-security/eap-method-tls.c:410 msgid "Choose your personal certificate..." msgstr "നിങ്ങളുടെ സ്വകാര്യ സര്‍ട്ടിഫിക്കേറ്റ് തെരഞ്ഞെടുക്കുക..." -#: ../src/wireless-security/eap-method-tls.c:463 +#: ../src/wireless-security/eap-method-tls.c:422 msgid "Choose your private key..." msgstr "നിങ്ങളുടെ സ്വകാര്യ കീ തെരഞ്ഞെടുക്കുക..." -#: ../src/wireless-security/wireless-security.c:329 +#: ../src/wireless-security/eap-method-tls.ui.h:1 +msgid "I_dentity:" +msgstr "_തിരിച്ചറിയല്‍:" + +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "_ഉപയോക്താവിന്റെ സര്‍ട്ടിഫീക്കേറ്റ്:" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 +msgid "Private _key:" +msgstr "സ്വകാര്യ _കീ:" + +#: ../src/wireless-security/eap-method-tls.ui.h:5 +msgid "_Private key password:" +msgstr "_സ്വകാര്യ കീ അടയാളവാക്ക്:" + +#: ../src/wireless-security/nag-user-dialog.ui.h:1 +msgid "Don't _warn me again" +msgstr "ഇനി _മുന്നറിയിപ്പ് നല്‍കേണ്ടതില്ല" + +#: ../src/wireless-security/nag-user-dialog.ui.h:2 +msgid "No" +msgstr "ഇല്ല" + +#: ../src/wireless-security/nag-user-dialog.ui.h:3 +msgid "Yes" +msgstr "ഉവ്വു്" + +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:353 +#: ../src/wireless-security/wireless-security.c:418 +msgid "FAST" +msgstr "എഫ്എഎസ്‌ടി" + +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "ടണ്‍ല്ഡ് TLS" -#: ../src/wireless-security/wireless-security.c:364 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "സുരക്ഷിതമായ EAP (PEAP)" +#: ../src/wireless-security/ws-dynamic-wep.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:9 +#: ../src/wireless-security/ws-wpa-eap.ui.h:2 +msgid "Au_thentication:" +msgstr "_തിരിച്ചറിയല്‍:" + +#: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "തുറന്ന സിസ്റ്റം" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "പങ്കുവച്ച കീ" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 +msgid "1 (Default)" +msgstr "1 (സഹജം)" + +#: ../src/wireless-security/ws-wep-key.ui.h:4 +msgid "2" +msgstr "2" + +#: ../src/wireless-security/ws-wep-key.ui.h:5 +msgid "3" +msgstr "3" + +#: ../src/wireless-security/ws-wep-key.ui.h:6 +msgid "4" +msgstr "4" + +#: ../src/wireless-security/ws-wep-key.ui.h:7 +msgid "_Key:" +msgstr "_കീ:" + +#: ../src/wireless-security/ws-wep-key.ui.h:8 +msgid "Sho_w key" +msgstr "കീ കാ_ണിക്കുക" + +#: ../src/wireless-security/ws-wep-key.ui.h:10 +msgid "WEP inde_x:" +msgstr "WEP _സൂചിക:" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "ബ്ലൂടൂത് ഡിവൈസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല." + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "ബ്ലൂടൂത് ക്രമീകരണം സാധ്യമല്ല (ഡീ-ബസ് പ്രോക്സി തയ്യാറാക്കുന്നതില്‍ പരാജയം)." + +#~ msgid "Network Manager" +#~ msgstr "ശൃംഖല മാനേജര്‍" + +#~ msgid "An instance of nm-applet is already running.\n" +#~ msgstr "nm-applet-ന്റെ ഒരു ഇന്‍സ്റ്റന്‍സ് പ്രവര്‍ത്തിക്കുന്നു.\n" + +#~ msgid "Could not acquire the %s service. (%d)\n" +#~ msgstr "%s സര്‍വീസ് ലഭ്യമാക്കുവാന്‍ സാധ്യമായില്ല. (%d)\n" + +#~ msgid "PUK code required" +#~ msgstr "PUK കോഡ് ആവശ്യമുണ്ടു്" + +#~ msgid "PUK code is needed for the mobile broadband device" +#~ msgstr "മൊബൈല്‍ ബ്രോഡ്ബാന്‍ഡ് ഡിവൈസിനു് PUK കോഡ് ആവശ്യമുണ്ടു്" diff -Nru network-manager-applet-0.9.4.1/po/mr.po network-manager-applet-0.9.6.2+git201210311320.2620/po/mr.po --- network-manager-applet-0.9.4.1/po/mr.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/mr.po 2012-10-31 13:20:57.000000000 +0000 @@ -981,7 +981,7 @@ msgstr "जुळवा (_o)" #: ../src/applet.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "जोडणी (_n):" #: ../src/applet.ui.h:5 @@ -1005,7 +1005,7 @@ msgstr "कुलूपबंद अशक्य करा (_U)" #: ../src/applet.ui.h:10 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "वायरलेस सुरक्षा (_W):" #: ../src/applet.ui.h:11 @@ -1903,7 +1903,7 @@ msgstr "या मशीन वरील सर्व वापरकर्त्यांकरीता ही जोडणी साठवण्यासाठी ओळख पटवा." #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "सर्व वापरकर्त्यांकरीता उपलब्ध" #: ../src/connection-editor/nm-connection-editor.ui.h:2 diff -Nru network-manager-applet-0.9.4.1/po/ms.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ms.po --- network-manager-applet-0.9.4.1/po/ms.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ms.po 2012-10-31 13:20:57.000000000 +0000 @@ -1902,7 +1902,7 @@ "Sahkan untuk menyimpan sambungan ini bagi semua pengguna pada komputer ini." #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Tersedia untuk semua pengguna" #: ../src/connection-editor/nm-connection-editor.ui.h:2 @@ -2463,7 +2463,7 @@ "tersembunyi yang anda ingin sambungkan ke." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "S_ambungan:" #: ../src/libnm-gtk/wifi.ui.h:3 @@ -2471,7 +2471,7 @@ msgstr "Penyesuai w_ayarles:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "Sekuriti _wayarles" #: ../src/main.c:73 diff -Nru network-manager-applet-0.9.4.1/po/nb.po network-manager-applet-0.9.6.2+git201210311320.2620/po/nb.po --- network-manager-applet-0.9.4.1/po/nb.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/nb.po 2012-10-31 13:20:57.000000000 +0000 @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: NetworkManager 0.9.x\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-12 18:52+0100\n" -"PO-Revision-Date: 2012-03-12 18:52+0100\n" +"POT-Creation-Date: 2012-07-25 16:32+0200\n" +"PO-Revision-Date: 2012-07-25 16:33+0200\n" "Last-Translator: Kjartan Maraas \n" "Language-Team: Norwegian bokmål \n" "Language: nb\n" @@ -26,69 +26,91 @@ msgid "Manage your network connections" msgstr "Håndter dine nettverksforbindelser" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Nettverkstilkoblinger" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Håndter og endre innstillinger for nettverksforbindelser" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Slå av varsling om tilkobling" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" -"Sett denne til TRUE For å slå av varsling ved tilkobling til et nettverk." +"Sett denne til «true» For å slå av varsling ved tilkobling til et nettverk." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Slå av varsling om frakobling" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "" -"Sett denne til TRUE for å slå av varsling ved frakobling fra et nettverk." +"Sett denne til «true» for å slå av varsling ved frakobling fra et nettverk." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Slå av varsling om VPN" -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "Sett denne til true for å slå av varsling ved til- eller frakobling fra et VPN." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Slå av varsling om tilgjengelige nettverk" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " +"Set this to true to disable notifications when wireless networks are " "available." -msgstr "" -"Sett denne til TRUE for å slå av varsling når trådløse nettverk er " -"tilgjengelige." +msgstr "Sett denne til true for å slå av varsling når trådløse nettverk er tilgjengelige." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Stempel" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "Brukes til å bestemme om innstillingene skal migreres til en ny versjon." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Slå av oppretting av WiFi" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "" -"Sett til TRUE for å slå av oppretting av ad-hoc nettverk når panelprogrammet " -"brukes." +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "Sett til true for å slå av oppretting av ad-hoc nettverk når panelprogrammet brukes." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Nettverkstilkoblinger" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Overse CA-sertifikat" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Håndter og endre innstillinger for nettverksforbindelser" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" #: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 #: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Tilgjengelige" @@ -101,7 +123,7 @@ #: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 #: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Tilkoblingen er satt opp" @@ -129,7 +151,7 @@ #: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 #: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "Ber om en nettverksadresse for «%s» …" @@ -146,7 +168,7 @@ msgstr "CDMA" #: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Mobilt bredbånd (%s)" @@ -154,7 +176,7 @@ #: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 #: ../src/connection-editor/page-mobile.c:379 #: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "Mobilt bredbånd" @@ -321,7 +343,7 @@ msgstr "Kablet nettverk" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "frakoblet" @@ -362,89 +384,107 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "_Koble til skjult trådløst nettverk …" -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "Lag _nytt trådløst nettverk …" -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(ingen)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "Trådløse nettverk (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "Trådløst nettverk (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Trådløst nettverk" msgstr[1] "Trådløse nettverk" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "trådløs er slått av" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "trådløs er slått av med bryter" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "Flere nettverk" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "Trådløse nettverk er tilgjengelige" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "Bruk nettverksmenyen for å koble til et trådløst nettverk" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "Ikke vis denne meldingen igjen" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Du er nå koblet til trådløst nettverk «%s»." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "Forbereder trådløs nettverkstilkobling «%s» …" -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "Konfigurerer trådløs nettverkstilkobling «%s» …" -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "Brukerautentisering kreves av trådløst nettverk «%s» …" -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "Ber om en nettverksadresse på trådløst nettverk for «%s» …" -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "Trådløs nettverkstilkobling «%s» er aktiv: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "Trådløs nettverkstilkobling «%s» er aktiv" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Kunne ikke å aktivere tilkobling" + +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +msgid "Unknown error" +msgstr "Ukjent feil" + +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 +msgid "Connection failure" +msgstr "Feil med tilkobling" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Klarte ikke å legge til ny tilkobling" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -471,9 +511,9 @@ msgstr "Feil under visning av tilkoblingsinformasjon:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -481,195 +521,195 @@ msgid "Dynamic WEP" msgstr "Dynamisk WEP" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "Ingen" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-dialogs.c:277 #, c-format msgid "%s (default)" msgstr "%s (forvalg)" -#: ../src/applet-dialogs.c:347 ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:349 ../src/applet-dialogs.c:487 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Ukjent" -#: ../src/applet-dialogs.c:362 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:364 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "ukjent" -#: ../src/applet-dialogs.c:376 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "ukjent" -#: ../src/applet-dialogs.c:411 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Ethernet (%s)" -#: ../src/applet-dialogs.c:414 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:421 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:423 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:427 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:433 ../src/applet-dialogs.c:792 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "Generelt" -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "Grensesnitt:" -#: ../src/applet-dialogs.c:453 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "Maskinvareadresse:" #. Driver -#: ../src/applet-dialogs.c:461 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "Driver:" -#: ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "Hastighet:" -#: ../src/applet-dialogs.c:500 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "Sikkerhet:" -#: ../src/applet-dialogs.c:513 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:526 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:543 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:554 ../src/applet-dialogs.c:661 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP-adresse:" -#: ../src/applet-dialogs.c:556 ../src/applet-dialogs.c:572 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "Ukjent" -#: ../src/applet-dialogs.c:570 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "Kringkastingsadresse:" #. Prefix -#: ../src/applet-dialogs.c:579 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "Subnettmaske:" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "Ukjent" -#: ../src/applet-dialogs.c:589 ../src/applet-dialogs.c:676 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "Forvalgt rute:" -#: ../src/applet-dialogs.c:601 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "Primær DNS:" -#: ../src/applet-dialogs.c:610 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "Sekundær DNS:" -#: ../src/applet-dialogs.c:620 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "Ternær DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:635 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:644 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "Ignorert" -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "Type VPN:" -#: ../src/applet-dialogs.c:804 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "VPN-gateway:" -#: ../src/applet-dialogs.c:810 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "Brukernavn for VPN:" -#: ../src/applet-dialogs.c:816 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "VPN-topptekst:" -#: ../src/applet-dialogs.c:822 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "Grunntilkobling:" -#: ../src/applet-dialogs.c:824 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "Ukjent" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "Ingen gyldige aktive tilkoblinger funnet!" -#: ../src/applet-dialogs.c:940 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -678,33 +718,49 @@ "Opphavsrett © 2004-2011 Red Hat, Inc.\n" "Opphavsrett © 2005-2008 Novell, Inc." -#: ../src/applet-dialogs.c:943 +#: ../src/applet-dialogs.c:942 msgid "" "Notification area applet for managing your network devices and connections." msgstr "Panelprogram for håndtering av dine nettverksenheter og -tilkoblinger." -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "NetworkManager nettsted" -#: ../src/applet-dialogs.c:960 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "Mangler ressurser" -#: ../src/applet-dialogs.c:985 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "Passord for tilkoblign med mobilt bredbånd" -#: ../src/applet-dialogs.c:994 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "Et passord kreves for å koble til «%s»." -#: ../src/applet-dialogs.c:1013 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "Passord:" -#: ../src/applet.c:995 +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Kunne ikke å legge til/slå på tilkobling" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Frakobling av enhet feilet" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Feil ved frakobling" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "Aktivering av tilkobling feilet" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -714,7 +770,7 @@ "\n" "VPN-tilkobling «%s» feilet fordi nettverksforbindelsen ble avbrutt." -#: ../src/applet.c:998 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" @@ -723,7 +779,7 @@ "\n" "VPN-tilkobling «%s» feilet fordi VPN-tjenesten stoppet uventet." -#: ../src/applet.c:1001 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -734,7 +790,7 @@ "VPN-tilkobling «%s» feilet fordi VPN-tjenesten returnerte ugyldig " "konfigurasjon." -#: ../src/applet.c:1004 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -743,7 +799,7 @@ "\n" "VPN-tilkobling «%s» feilet pga tidsavbrudd for tilkoblingsforsøket." -#: ../src/applet.c:1007 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -752,7 +808,7 @@ "\n" "VPN-tilkobling «%s» feilet fordi VPN-tjenesten ikke startet i tide." -#: ../src/applet.c:1010 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -761,7 +817,7 @@ "\n" "VPN-tilkobling «%s» feilet fordi VPN-tjenesten ikke klarte å starte opp." -#: ../src/applet.c:1013 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -770,7 +826,7 @@ "\n" "VPN-tilkobling «%s» feilet fordi det ikke finnes gyldige VPN-passord." -#: ../src/applet.c:1016 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -779,7 +835,7 @@ "\n" "VPN-tilkobling «%s» feilet pga ugyldig hemmelighet for VPN." -#: ../src/applet.c:1023 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -788,7 +844,7 @@ "\n" "VPN-tilkobling «%s» feilet." -#: ../src/applet.c:1041 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -798,7 +854,7 @@ "\n" "VPN-tilkobling «%s» ble koblet fra fordi nettverkstilkoblingen ble avbrutt." -#: ../src/applet.c:1044 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -807,7 +863,7 @@ "\n" "VPN-tilkobling «%s» koblet fra fordi VPN-tjenesten stoppet." -#: ../src/applet.c:1050 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -816,15 +872,30 @@ "\n" "VPN-tilkobling «%s» koblet fra." -#: ../src/applet.c:1084 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"Etablering av VPN-tilkobling er fullført.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "Etablering av VPN-tilkobling er fullført.\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "Påloggingsmelding for VPN" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "VPN-tilkobling feilet" -#: ../src/applet.c:1155 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -837,7 +908,7 @@ "\n" "%s" -#: ../src/applet.c:1158 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -850,139 +921,139 @@ "\n" "%s" -#: ../src/applet.c:1478 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "enheten er ikke klar (fastvare mangler)" -#: ../src/applet.c:1480 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "enheten er ikke klar" -#: ../src/applet.c:1506 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "Koble fra" -#: ../src/applet.c:1520 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "enheten er ikke håndtert" -#: ../src/applet.c:1564 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "Ingen nettverksenheter tilgjengelig" -#: ../src/applet.c:1652 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "_VPN-tilkoblinger" -#: ../src/applet.c:1709 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "_Sett opp VPN …" -#: ../src/applet.c:1713 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "Ko_ble fra VPN" -#: ../src/applet.c:1811 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "NetworkManager kjører ikke …" -#: ../src/applet.c:1816 ../src/applet.c:2609 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "Nettverk slått av" #. 'Enable Networking' item -#: ../src/applet.c:2037 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "Slå på _nettverk" #. 'Enable Wireless' item -#: ../src/applet.c:2046 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "Slå på _trådløs" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "Slå på _mobilt bredbånd" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "Slå på WiMA_X mobilt bredbånd" #. Toggle notifications item -#: ../src/applet.c:2075 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "Slå på _varsling" #. 'Connection Information' item -#: ../src/applet.c:2086 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "Tilkoblings_informasjon" #. 'Edit Connections...' item -#: ../src/applet.c:2096 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "Rediger tilkoblinger …" #. Help item -#: ../src/applet.c:2110 +#: ../src/applet.c:2124 msgid "_Help" msgstr "_Hjelp" #. About item -#: ../src/applet.c:2119 +#: ../src/applet.c:2133 msgid "_About" msgstr "_Om" -#: ../src/applet.c:2296 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "Frakoblet" -#: ../src/applet.c:2297 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "Nettverksforbindelsen har blitt frakoblet." -#: ../src/applet.c:2478 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "Forbereder nettverkstilkobling «%s» …" -#: ../src/applet.c:2481 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Brukerautentisering kreves for nettverkstilkobling «%s» …" -#: ../src/applet.c:2487 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "Nettverkstilkobling «%s» er aktiv" -#: ../src/applet.c:2565 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "Starter VPN-tilkobling «%s» …" -#: ../src/applet.c:2568 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "Brukerautentisering kreves for VPN-tilkobling «%s» …" -#: ../src/applet.c:2571 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "Ber om en nettverksadresse på VPN for «%s» …" -#: ../src/applet.c:2574 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "VPN-tilkobling «%s» er aktiv" -#: ../src/applet.c:2613 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "Ingen nettverksforbindelse" -#: ../src/applet.c:3263 +#: ../src/applet.c:3327 msgid "NetworkManager Applet" msgstr "NetworkManager panelprogram" @@ -1014,7 +1085,7 @@ msgid "automatic" msgstr "automatisk" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "" "Klarte ikke å oppdatere hemmelighet for tilkobling på grunn av en ukjent " @@ -1148,11 +1219,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Søk_edomener:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_DNS-tjenere" @@ -1528,20 +1603,20 @@ #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "Adresse" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "Nettmaske" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "Gateway" @@ -1551,13 +1626,13 @@ msgstr "Metrisk" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "Prefiks" #: ../src/connection-editor/page-dsl.c:139 #: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1565,7 +1640,7 @@ msgid "Could not load DSL user interface." msgstr "Kunne ikke laste brukergrensesnitt for DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "DSL-tilkobling %d" @@ -1617,16 +1692,26 @@ msgid "Disabled" msgstr "Slått av" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Flere _DNS-tjenere:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Flere søk_edomener:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Rediger IPv4-ruter for %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "IPv4-innstillinger" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Kunne ikke laste brukergrensesnitt for IPv4" @@ -1635,7 +1720,7 @@ msgstr "Automatisk, kun adresser" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ignorer" @@ -1643,16 +1728,16 @@ msgid "Automatic, DHCP only" msgstr "Automatisk. Kun DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Rediger IPv6-ruter for %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "IPv6-innstillinger" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Kunne ikke laste brukergrensesnitt for IPv6." @@ -1732,7 +1817,7 @@ #: ../src/connection-editor/page-vpn.c:109 #: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1746,7 +1831,7 @@ msgstr "Fant ikke tjeneste for VPN-tillegg «%s»." #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "VPN-tilkobling %d" @@ -1762,7 +1847,7 @@ #: ../src/connection-editor/page-wired.c:272 #: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Kablet" @@ -1775,16 +1860,16 @@ msgid "Wired connection %d" msgstr "Kablet nettverkforbindelse %d" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "802.1x sikkerhet" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "" "Klarte ikke å laste brukergrensesnitt for sikkerhet for kablet nettverk." -#: ../src/connection-editor/page-wired-security.c:136 +#: ../src/connection-editor/page-wired-security.c:139 msgid "Use 802.1_X security for this connection" msgstr "Bruk 802.1_X-sikkerhet for denne tilkoblingen" @@ -1802,7 +1887,7 @@ #: ../src/connection-editor/page-wireless.c:457 #: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Trådløs" @@ -1815,55 +1900,55 @@ msgid "Wireless connection %d" msgstr "Trådløs nettverksforbindelse %d" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP 40/128-bit nøkkel (Heksadesimal eller ASCII)" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128-bit passord" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "Dynamisk WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 personlig" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA og WPA2 enterprise" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "" "Kunne ikke laste brukergrensesnitt for trådløs sikkerhet; mangler WiFi-" "innstilling." -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "Trådløs sikkerhet" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "Kunne ikke laste brukergrensesnitt for trådløs sikkerhet." -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "Redigerer %s" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "Redigerer tilkobling uten navn" -#: ../src/connection-editor/nm-connection-editor.c:288 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." @@ -1871,23 +1956,23 @@ "Redigering av tilkobling fant ikke alle nødvendige ressurser (.ui-fil ble " "ikke funnet)." -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "Feil under oppretting av dialog for redigering av tilkobling." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "_Lagre" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "Lagre alle endringer som er gjort på denne tilkoblingen." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "_Lagre …" -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." msgstr "" "Autentiser for å lagre denne tilkoblingen for alle brukere på denne maskinen." @@ -1909,7 +1994,7 @@ msgstr "_Automatisk tilkobling" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Tilgjengelig for alle brukere" #: ../src/connection-editor/nm-connection-list.c:216 @@ -1982,7 +2067,7 @@ #: ../src/connection-editor/nm-connection-list.c:546 #: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 +#: ../src/connection-editor/nm-connection-list.c:885 msgid "" "The connection editor dialog could not be initialized due to an unknown " "error." @@ -2010,12 +2095,12 @@ msgid "Are you sure you wish to delete the connection %s?" msgstr "Sikker på at du vil slette denne tilkoblingen %s?" -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "Kan ikke importere VPN-tilkobling" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2025,81 +2110,81 @@ "\n" "Feil: ingen type for VPN-tjeneste." -#: ../src/connection-editor/nm-connection-list.c:945 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "Kunne ikke redigere importert tilkobling" -#: ../src/connection-editor/nm-connection-list.c:1126 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "Navn" -#: ../src/connection-editor/nm-connection-list.c:1138 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "Sist brukt" -#: ../src/connection-editor/nm-connection-list.c:1264 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." msgstr "" "Ingen VPN-tillegg tilgjengelig. Vennligst installer ett for å aktivere denne " "knappen." -#: ../src/connection-editor/nm-connection-list.c:1275 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "R_ediger" -#: ../src/connection-editor/nm-connection-list.c:1276 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "Rediger valgt tilkobling" -#: ../src/connection-editor/nm-connection-list.c:1277 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "R_ediger …" -#: ../src/connection-editor/nm-connection-list.c:1278 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "Autentiser for å redigere valgt tilkobling." -#: ../src/connection-editor/nm-connection-list.c:1293 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "_Slett" -#: ../src/connection-editor/nm-connection-list.c:1294 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "Slett valgt tilkobling" -#: ../src/connection-editor/nm-connection-list.c:1295 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "_Slett …" -#: ../src/connection-editor/nm-connection-list.c:1296 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "Autentiser for å slette valgt tilkobling" -#: ../src/connection-editor/nm-connection-list.c:1575 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "Feil under oppretting av tilkobling" -#: ../src/connection-editor/nm-connection-list.c:1576 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "Vet ikke hvordan tilkoblinger av type «%s» lages" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "Feil under redigering av tilkobling" -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "Vet ikke hvordan tilkoblinger av type «%s» redigeres" -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "Fant ingen tilkobling med UUID «%s»" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2112,29 +2197,29 @@ "\n" "Feil: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "Velg fil som skal importeres" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "En fil med navn «%s» eksisterer allerede." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "E_rstatt" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Vil du erstatte %s med VPN-tilkoblingen du lagrer?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "Kan ikke eksportere VPN-tilkobling" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2145,7 +2230,7 @@ "\n" "Feil: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "Eksporter VPN-tilkobling …" @@ -2238,28 +2323,28 @@ msgid "Access the Internet using your mobile phone (DUN)" msgstr "Koble til internett med din mobiltelefon (DUN)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "" "Din mobile bredbåndstilkobling er konfigurert med følgende innstillinger:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:212 msgid "Your Device:" msgstr "Din enhet:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:223 msgid "Your Provider:" msgstr "Din tilbyder:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:234 msgid "Your Plan:" msgstr "Din plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:259 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2273,23 +2358,23 @@ "endre dine innstillinger for mobil bredbåndstilkobling kan du velge " "«Nettverkstilkoblinger» fra menyen System->Brukervalg." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:271 msgid "Confirm Mobile Broadband Settings" msgstr "Bekreft innstillinger for mobilt bredbånd" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:332 msgid "Unlisted" msgstr "Ikke listet" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:487 msgid "_Select your plan:" msgstr "_Velg din plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:511 msgid "Selected plan _APN (Access Point Name):" msgstr "_APN (Navn på aksesspunkt) for valgt plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2301,67 +2386,67 @@ "\n" "Spør tilbyder om APN for ditt abonnement hvis du er usikker." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:542 msgid "Choose your Billing Plan" msgstr "Velg din betalingsplan" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:590 msgid "My plan is not listed..." msgstr "Min plan er ikke på listen …" -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:747 msgid "Select your provider from a _list:" msgstr "Velg din tilbyder fra en _liste:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:760 msgid "Provider" msgstr "Tilbyder" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:785 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Jeg kan ikke finne min tilbyder og ønsker å oppgi denne _manuelt:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:796 msgid "Provider:" msgstr "Tilbyder:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:820 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Min tilbyder bruker GSM-teknologi (GPRS, EDGE, UMTS, HSDPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Min tilbyder bruker CDMA-teknologi (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:837 msgid "Choose your Provider" msgstr "Velg din tilbyder" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1088 msgid "Country or Region List:" msgstr "Liste med land eller regioner:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "Country or region" msgstr "Land eller region" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1107 msgid "My country is not listed" msgstr "Landet mitt er ikke på listen" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1153 msgid "Choose your Provider's Country or Region" msgstr "Velg din tilbyders land eller region" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1207 msgid "Installed GSM device" msgstr "Installert GSM-enhet" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1210 msgid "Installed CDMA device" msgstr "Installert CDMA-enhet" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1382 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2369,37 +2454,37 @@ "Denne assistenten hjelper deg å sette opp en mobil bredbåndstilkobling til " "et mobilnettverk (3G)." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1387 msgid "You will need the following information:" msgstr "Du trenger følgende informasjon:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1402 msgid "Your broadband provider's name" msgstr "Navnet på din bredbåndstilbyder" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband billing plan name" msgstr "Navn på betalingsplan for bredbånd" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" "(i enkelte tilfeller) APN (navn på aksesspunkt) for din betalingsplan for " "bredbånd" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1441 msgid "Create a connection for _this mobile broadband device:" msgstr "Lag en tilkobling for _denne mobile bredbåndsenheten:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1456 msgid "Any device" msgstr "Enhver enhet" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1469 msgid "Set up a Mobile Broadband Connection" msgstr "Sett opp en mobil bredbåndstilkobling" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1633 msgid "New Mobile Broadband Connection" msgstr "Ny mobil bredbåndstilkobling" @@ -2407,11 +2492,11 @@ msgid "New..." msgstr "Ny …" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "_Lag:" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "" "Passwords or encryption keys are required to access the wireless network " @@ -2420,35 +2505,35 @@ "Passord eller krypteringsnøkler er nødvendig for å koble til trådløst " "nettverk «%s»." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "Autentisering for trådløst nettverk kreves" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "Autentisering kreves av trådløst nettverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "Opprett nytt trådløst nettverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "Nytt trådløst nettverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "Oppgi et navn på det trådløse nettverket du ønsker å opprette." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "Koble til skjult trådløst nettverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "Skjult trådløst nettverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." @@ -2456,11 +2541,11 @@ "Oppgi navnet til det skjulte trådløse nettverket du ønsker å koble deg til." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "Tr_ådløs sikkerhet:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Tilkobli_ng:" #: ../src/libnm-gtk/wifi.ui.h:5 @@ -2576,11 +2661,11 @@ msgstr "" "NetworkManager fant ikke nødvendige ressurser (.ui-filen ble ikke funnet)." -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Ingen Certificate Authority-sertifikat er valgt" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " @@ -2590,15 +2675,15 @@ "tilkoblinger til usikre og villedende trådløse nettverk. Vil du velge et " "Certificate Authority-sertifikat?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Velg CA-sertifikat" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM eller PKCS#12 private nøkler (*.der, *.pem, *.12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER eller PEM-sertifikater (*.der, *.pem, *.crt, *.cer)" @@ -2652,7 +2737,7 @@ msgstr "Alle filer" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2738,19 +2823,19 @@ msgid "Yes" msgstr "Ja" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "Tunnelert TLS (TTLS)" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Beskyttet EAP (PEAP)" diff -Nru network-manager-applet-0.9.4.1/po/nl.po network-manager-applet-0.9.6.2+git201210311320.2620/po/nl.po --- network-manager-applet-0.9.4.1/po/nl.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/nl.po 2012-10-31 13:20:57.000000000 +0000 @@ -1041,7 +1041,7 @@ msgstr " " #: ../src/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "_Verbinding:" # draadloze adapter is een adapter zonder draadjes @@ -1057,7 +1057,7 @@ # Bedoeld wordt beveiliging van het draadloos netwerk. # niet dat de beveiling draadloos is. #: ../src/wifi.ui.h:5 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Draadloos beveiliging:" #: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 @@ -1975,7 +1975,7 @@ "gebruikers." #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Beschikbaar voor alle gebruikers" # automatisch verbinding maken diff -Nru network-manager-applet-0.9.4.1/po/nn.po network-manager-applet-0.9.6.2+git201210311320.2620/po/nn.po --- network-manager-applet-0.9.4.1/po/nn.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/nn.po 2012-10-31 13:20:57.000000000 +0000 @@ -1,108 +1,108 @@ # translation of NetworkManager to Norwegian nynorsk # This file is distributed under the same license as the NetworkManager package. +# # Eskild Hustvedt , 2008. # Torstein Adolf Winterseth , 2010. # Torstein Adolf Winterseth , 2010. # Andreas N. , 2011. -# Åsmund Skjæveland , 2011. -# +# Åsmund Skjæveland , 2011, 2012. msgid "" msgstr "" "Project-Id-Version: NetworkManager 0.1.x\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2011-12-08 08:32+0000\n" -"PO-Revision-Date: 2011-12-26 14:55+0100\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-04-03 10:08+0000\n" +"PO-Revision-Date: 2012-05-08 10:24+0200\n" "Last-Translator: Åsmund Skjæveland \n" -"Language-Team: Norsk (nynorsk) \n" +"Language-Team: Norwegian Nynorsk \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -"X-Generator: Lokalize 1.0\n" +"X-Generator: Lokalize 1.4\n" +"Language: nn\n" #: ../nm-applet.desktop.in.h:1 -#| msgid "Control your network connections" -msgid "Manage your network connections" -msgstr "Handsam nettverkstilkoplingane" - -#: ../nm-applet.desktop.in.h:2 -#| msgid "N_etwork:" msgid "Network" msgstr "Nettverk" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "Slå av laging av trådlaust nettverk" +#: ../nm-applet.desktop.in.h:2 +msgid "Manage your network connections" +msgstr "Handsam nettverkstilkoplingane" -#: ../nm-applet.schemas.in.h:2 +#: ../nm-applet.schemas.in.h:1 msgid "Disable connected notifications" msgstr "Slå av varsel om tilkopling" +#: ../nm-applet.schemas.in.h:2 +msgid "Set this to TRUE to disable notifications when connecting to a network." +msgstr "Set til TRUE for å slå av varsel når du koplar til eit nettverk." + #: ../nm-applet.schemas.in.h:3 msgid "Disable disconnected notifications" msgstr "Slå av varsel om fråkopling" #: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "Set til TRUE for å slå av varsel når du koplar til eit nettverk." +msgid "" +"Set this to TRUE to disable notifications when disconnecting from a network." +msgstr "Set til TRUE for å slå av varsel når du koplar frå eit nettverk." #: ../nm-applet.schemas.in.h:5 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "Set til TRUE for å slå av varsel når du koplar frå eit nettverk." +msgid "Suppress networks available notifications" +msgstr "Hindra varsel om tilgjengelege nettverk" #: ../nm-applet.schemas.in.h:6 -msgid "Set this to TRUE to disable notifications when wireless networks are available." -msgstr "Set til TRUE for å slå av varsel når trådlause nettverk er tilgjengelege." +msgid "" +"Set this to TRUE to disable notifications when wireless networks are " +"available." +msgstr "" +"Set til TRUE for å slå av varsel når trådlause nettverk er tilgjengelege." #: ../nm-applet.schemas.in.h:7 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "Set til TRUE for å slå av laging av ad hoc-nettverk ved bruk av miniprogrammet." - -#: ../nm-applet.schemas.in.h:8 msgid "Stamp" msgstr "Stempel" +#: ../nm-applet.schemas.in.h:8 +msgid "Used to determine whether settings should be migrated to a new version." +msgstr "" +"Brukt til å fastslå om innstillingar skal verta migrert til ein ny versjon." + #: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" -msgstr "Hindra varsel om tilgjengelege nettverk" +msgid "Disable WiFi Create" +msgstr "Slå av laging av trådlaust nettverk" #: ../nm-applet.schemas.in.h:10 -msgid "Used to determine whether settings should be migrated to a new version." -msgstr "Brukt til å fastslå om innstillingar skal verta migrert til ein ny versjon." +msgid "" +"Set to TRUE to disable creation of adhoc networks when using the applet." +msgstr "" +"Set til TRUE for å slå av laging av ad hoc-nettverk ved bruk av " +"miniprogrammet." #: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "Handter og endra innstillingar for nettverkstilkopling" - -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 msgid "Network Connections" msgstr "Nettverkstilkoplingar" -#: ../src/applet-device-bt.c:174 -#: ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 -#: ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 -#: ../src/applet-device-wimax.c:279 +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Handter og endra innstillingar for nettverkstilkopling" + +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 +#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Tilgjengeleg" -#: ../src/applet-device-bt.c:200 -#: ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 -#: ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 +#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "Du er no kopla til «%s»." -#: ../src/applet-device-bt.c:204 -#: ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 -#: ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 -#: ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 +#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Tilkoplinga er sett opp" @@ -110,64 +110,53 @@ msgid "You are now connected to the mobile broadband network." msgstr "Du er no kopla til eit mobilt breibandnettverk." -#: ../src/applet-device-bt.c:231 -#: ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 -#: ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "Førebur mobil breibandstilkopling «%s» …" -#: ../src/applet-device-bt.c:234 -#: ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 -#: ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "Set opp mobil breibandstilkopling «%s» …" -#: ../src/applet-device-bt.c:237 -#: ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 -#: ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "Brukarautentikasjon er påkravt for den mobile breibandstilkoplinga %s …" +msgstr "" +"Brukarautentikasjon er påkravt for den mobile breibandstilkoplinga %s …" -#: ../src/applet-device-bt.c:240 -#: ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 -#: ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2479 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 +#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2504 #, c-format msgid "Requesting a network address for '%s'..." msgstr "Ber om ei nettverksadresse for «%s» …" -#: ../src/applet-device-bt.c:244 -#: ../src/applet-device-cdma.c:508 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 #: ../src/applet-device-gsm.c:555 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "Mobil breibandstilkopling «%s» er i bruk." -#: ../src/applet-device-cdma.c:184 -#: ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 -#: ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:430 +#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Mobilt breiband (%s)" -#: ../src/applet-device-cdma.c:347 -#: ../src/applet-device-gsm.c:394 +#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 #: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -#: ../src/connection-editor/nm-connection-list.c:1474 +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "Mobilt breiband" @@ -180,41 +169,31 @@ msgid "You are now connected to the CDMA network." msgstr "Du er no kopla til eit CDMA-nettverk." -#: ../src/applet-device-cdma.c:503 -#: ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 #: ../src/applet-device-wimax.c:482 #, c-format -#| msgid "Mobile broadband connection '%s' active" msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "Mobil breibandstilkopling «%s» er i bruk: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 -#: ../src/applet-device-gsm.c:553 +#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 #: ../src/applet-device-wimax.c:485 msgid "roaming" -msgstr "" +msgstr "utanlands" -#: ../src/applet-device-cdma.c:647 -#: ../src/applet-device-cdma.c:653 -#| msgid "CDMA Network" +#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 msgid "CDMA network." -msgstr "CDMA-nettverk" +msgstr "CDMA-nettverk." -#: ../src/applet-device-cdma.c:648 -#: ../src/applet-device-gsm.c:1198 -#| msgid "You are now connected to the wired network." +#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 msgid "You are now registered on the home network." msgstr "Du er no registrert på heimenettverket." -#: ../src/applet-device-cdma.c:654 -#: ../src/applet-device-gsm.c:1204 -#, fuzzy +#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 #| msgid "You are now connected to the wired network." msgid "You are now registered on a roaming network." -msgstr "Du er no registrert på eit roaming-nettverk." +msgstr "Du er no registrert som gjest på eit utanlandsk nettverk." -#: ../src/applet-device-gsm.c:213 -#: ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" @@ -255,24 +234,25 @@ msgstr "Sender opplåsingskode …" #: ../src/applet-device-gsm.c:988 -#| msgid "PIN code required" msgid "SIM PIN unlock required" msgstr "Opplåsingskode for SIM-kortet er nødvendig" #: ../src/applet-device-gsm.c:989 -#| msgid "PIN code required" msgid "SIM PIN Unlock Required" msgstr "Opplåsingskode for SIM-kortet er nødvendig" #. FIXME: some warning about # of times you can enter incorrect PIN #: ../src/applet-device-gsm.c:991 #, c-format -msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." -msgstr "Den mobile breibandseininga «%s» krev ein PIN-kode for SIM-kortet før den kan brukast." +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "" +"Den mobile breibandseininga «%s» krev ein PIN-kode for SIM-kortet før den kan " +"brukast." #. Translators: PIN code entry label #: ../src/applet-device-gsm.c:993 -#| msgid "PIN code required" msgid "PIN code:" msgstr "PIN-kode:" @@ -282,24 +262,25 @@ msgstr "Vis PIN-kode" #: ../src/applet-device-gsm.c:1000 -#| msgid "PUK code required" msgid "SIM PUK unlock required" msgstr "Opplåsing av PUK-koden til SIM-kortet er nødvendig" #: ../src/applet-device-gsm.c:1001 -#| msgid "PUK code required" msgid "SIM PUK Unlock Required" msgstr "Opplåsing av PUK-koden til SIM-kortet er nødvendig" #. FIXME: some warning about # of times you can enter incorrect PUK #: ../src/applet-device-gsm.c:1003 #, c-format -msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." -msgstr "Den mobile breibandseininga «%s» krev ein PUK-kode for SIM-kortet før den kan brukast." +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "" +"Den mobile breibandseininga «%s» krev ein PUK-kode for SIM-kortet før den kan " +"brukast." #. Translators: PUK code entry label #: ../src/applet-device-gsm.c:1005 -#| msgid "PUK code required" msgid "PUK code:" msgstr "PUK-kode:" @@ -318,9 +299,7 @@ msgid "Show PIN/PUK codes" msgstr "Vis PIN/PUK-kodar" -#: ../src/applet-device-gsm.c:1197 -#: ../src/applet-device-gsm.c:1203 -#| msgid "More networks" +#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 msgid "GSM network." msgstr "GSM-nettverk" @@ -347,8 +326,7 @@ msgstr "Kabla nettverk" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 -#: ../src/applet.c:1485 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1510 msgid "disconnected" msgstr "fråkopla" @@ -397,97 +375,113 @@ msgid "(none)" msgstr "(ingen)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Networks (%s)" msgstr "Trådlause nettverk (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:794 #, c-format msgid "Wireless Network (%s)" msgstr "Trådlaust nettverk (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:796 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Trådlaust nettverk" msgstr[1] "Trådlause nettverk" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:829 msgid "wireless is disabled" msgstr "trådlaus er slått av" -#: ../src/applet-device-wifi.c:841 -#| msgid "wireless is disabled" +#: ../src/applet-device-wifi.c:830 msgid "wireless is disabled by hardware switch" msgstr "trådlaus er slått av med brytar" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:891 msgid "More networks" msgstr "Fleire nettverk" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1071 msgid "Wireless Networks Available" msgstr "Trådlause nettverk er tilgjengelege" -#: ../src/applet-device-wifi.c:1082 -#| msgid "Click on this icon to connect to a wireless network" +#: ../src/applet-device-wifi.c:1072 msgid "Use the network menu to connect to a wireless network" msgstr "Bruk nettverksmenyen for å kopla til eit trådlaust nettverk" -#: ../src/applet-device-wifi.c:1085 -#: ../src/applet.c:901 +#: ../src/applet-device-wifi.c:1075 ../src/applet.c:926 msgid "Don't show this message again" msgstr "Ikkje vis denne meldinga igjen" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1267 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Du er no kopla til trådlaust nettverk «%s»." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1298 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "Klargjer trådlaus nettverkstilkopling «%s» …" -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1301 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "Set opp trådlaus nettverkstilkopling «%s» …" -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1304 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "Brukarautentisering krevst av det trådlause nettverket «%s» …" -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1307 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "Ber om ei nettverksadresse for det trådlaust nettverket «%s» …" -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1328 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "Trådlaus nettverkstilkopling «%s» er i bruk: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1333 #, c-format msgid "Wireless network connection '%s' active" msgstr "Trådlaus nettverkstilkopling «%s» er i bruk" +#: ../src/applet-device-wifi.c:1381 +#| msgid "Failed to create PAN connection: %s" +msgid "Failed to activate connection" +msgstr "Klarte ikkje å ta i bruk tilkoplinga" + +#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 +#: ../src/applet.c:492 ../src/applet.c:536 ../src/applet.c:562 +#| msgid "Unknown" +msgid "Unknown error" +msgstr "Ukjend feil" + +#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 +#: ../src/applet.c:495 ../src/applet.c:565 +#| msgid "Connection add failed" +msgid "Connection failure" +msgstr "Feil under tilkopling" + +#: ../src/applet-device-wifi.c:1400 +#| msgid "Could not edit new connection" +msgid "Failed to add new connection" +msgstr "Klarte ikkje leggja til ny tilkopling" + #: ../src/applet-device-wimax.c:231 #, c-format -#| msgid "Mobile Broadband (%s)" msgid "WiMAX Mobile Broadband (%s)" msgstr "WiMAX mobilt breiband (%s)" #: ../src/applet-device-wimax.c:233 -#| msgid "Mobile Broadband" msgid "WiMAX Mobile Broadband" msgstr "WiMAX mobilt breiband" #: ../src/applet-device-wimax.c:259 -#| msgid "wireless is disabled" msgid "WiMAX is disabled" msgstr "WiMAX er slått av" @@ -496,7 +490,6 @@ msgstr "WiMAX er slått av med brytar" #: ../src/applet-device-wimax.c:428 -#| msgid "You are now connected to the CDMA network." msgid "You are now connected to the WiMAX network." msgstr "Du er no kopla til WiMAX-nettverket." @@ -505,9 +498,9 @@ msgstr "Feil under vising av tilkoplingsinformasjon:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:396 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -515,217 +508,197 @@ msgid "Dynamic WEP" msgstr "Dynamisk WEP" -#: ../src/applet-dialogs.c:113 -#: ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 -#: ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 -#| msgid "None" +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "Ingen" -#: ../src/applet-dialogs.c:352 -#: ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:277 +#, c-format +#| msgid "1 (Default)" +msgid "%s (default)" +msgstr "%s (forvald)" + +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:354 -#: ../src/applet-dialogs.c:492 -#| msgid "Unknown" +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Ukjend" -#: ../src/applet-dialogs.c:367 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:369 -#| msgid "Unknown" +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "ukjend" -#: ../src/applet-dialogs.c:381 -#| msgid "Unknown" +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "ukjend" -#: ../src/applet-dialogs.c:416 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Ethernet (%s)" -#: ../src/applet-dialogs.c:419 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:426 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:428 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:432 +#: ../src/applet-dialogs.c:426 #, c-format -#| msgid "CDMA (%s)" msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:438 -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "Generelt" -#: ../src/applet-dialogs.c:442 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "Grensesnitt:" -#: ../src/applet-dialogs.c:458 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "Maskinvareadresse:" #. Driver -#: ../src/applet-dialogs.c:466 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "Driver:" -#: ../src/applet-dialogs.c:495 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "Snøggleik:" -#: ../src/applet-dialogs.c:505 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "Tryggleik:" -#: ../src/applet-dialogs.c:518 -#| msgid "PI_N:" +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:531 -#| msgid "_BSSID:" +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:548 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:559 -#: ../src/applet-dialogs.c:666 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP-adresse:" -#: ../src/applet-dialogs.c:561 -#: ../src/applet-dialogs.c:577 -#| msgid "Unknown" +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "Ukjend" -#: ../src/applet-dialogs.c:575 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "Kringkastingsadresse:" #. Prefix -#: ../src/applet-dialogs.c:584 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "Subnettmaske:" -#: ../src/applet-dialogs.c:586 -#| msgid "Unknown" +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "Ukjend" -#: ../src/applet-dialogs.c:594 -#: ../src/applet-dialogs.c:681 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "Standard rute:" -#: ../src/applet-dialogs.c:606 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "Primær DNS:" -#: ../src/applet-dialogs.c:615 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "Sekundær DNS:" -#: ../src/applet-dialogs.c:625 -#| msgid "Secondary DNS:" +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "Ternær DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:640 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:649 -#| msgid "Ignore" +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "Ignorert" -#: ../src/applet-dialogs.c:802 -#| msgid "_Type:" +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "VPN-type:" -#: ../src/applet-dialogs.c:809 -#, fuzzy +#: ../src/applet-dialogs.c:803 #| msgid "Gateway" msgid "VPN Gateway:" -msgstr "VPN-gateway:" +msgstr "VPN-portnar:" -#: ../src/applet-dialogs.c:815 -#| msgid "_Username:" +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "VPN-brukarnamn:" -#: ../src/applet-dialogs.c:821 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "VPN-topptekst:" -#: ../src/applet-dialogs.c:827 -#| msgid "Co_nnection:" +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "Grunntilkopling:" -#: ../src/applet-dialogs.c:829 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "Ukjend" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:892 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "Fann ingen tilkoplingar som er i bruk." -#: ../src/applet-dialogs.c:945 -#| msgid "" -#| "Copyright © 2004-2008 Red Hat, Inc.\n" -#| "Copyright © 2005-2008 Novell, Inc." +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -735,41 +708,64 @@ "Opphavsrett © 2005–2008 Novell, Inc.\n" "og mange andre bidragsytarar og omsetjarar i fellesskapet" -#: ../src/applet-dialogs.c:948 -msgid "Notification area applet for managing your network devices and connections." -msgstr "Panelprogram for handtering av dine nettverkseiningar og -tilkoplingar." +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"Panelprogram for handtering av dine nettverkseiningar og -tilkoplingar." -#: ../src/applet-dialogs.c:950 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "Netstaden til NetworkManager" -#: ../src/applet-dialogs.c:965 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "Manglande ressursar" -#: ../src/applet-dialogs.c:990 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "Passord for mobilt breibandsnettverk" -#: ../src/applet-dialogs.c:999 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "Passord krevst for å kopla til «%s»." -#: ../src/applet-dialogs.c:1018 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "Passord:" -#: ../src/applet.c:990 +#: ../src/applet.c:490 +#| msgid "Failed to create PAN connection: %s" +msgid "Failed to add/activate connection" +msgstr "Klarte ikkje laga/ta i bruk tilkopling" + +#: ../src/applet.c:534 +#| msgid "disconnected" +msgid "Device disconnect failed" +msgstr "Klarte ikkje kopla frå eining" + +#: ../src/applet.c:539 +#| msgid "Disconnected" +msgid "Disconnect failure" +msgstr "Feil under fråkopling" + +#: ../src/applet.c:560 +#| msgid "Connection add failed" +msgid "Connection activation failed" +msgstr "Klarte ikkje ta i bruk tilkopling" + +#: ../src/applet.c:1015 #, c-format msgid "" "\n" -"The VPN connection '%s' failed because the network connection was interrupted." +"The VPN connection '%s' failed because the network connection was " +"interrupted." msgstr "" "\n" -"VPN-tilkoplinga «%s» vart mislukka fordi nettverkstilkoplinga vart avbrutt." +"VPN-tilkoplinga «%s» vart mislukka fordi nettverkstilkoplinga vart avbroten." -#: ../src/applet.c:993 +#: ../src/applet.c:1018 #, c-format msgid "" "\n" @@ -778,25 +774,27 @@ "\n" "VPN-tilkoplinga «%s» vart mislukka fordi VPN-tenesta vart uventa stoppa." -#: ../src/applet.c:996 +#: ../src/applet.c:1021 #, c-format msgid "" "\n" -"The VPN connection '%s' failed because the VPN service returned invalid configuration." +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." msgstr "" "\n" -"VPN-tilkoplinga «%s» vart mislukka fordi VPN-tenesta sendte eit ugyldig oppsett." +"VPN-tilkoplinga «%s» vart mislukka fordi VPN-tenesta sendte eit ugyldig " +"oppsett." -#: ../src/applet.c:999 +#: ../src/applet.c:1024 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the connection attempt timed out." msgstr "" "\n" -"VPN-tilkoplinga «%s» vart mislukka på grunn av eit tidsavbrudd." +"VPN-tilkoplinga «%s» vart mislukka på grunn av eit tidsavbrot." -#: ../src/applet.c:1002 +#: ../src/applet.c:1027 #, c-format msgid "" "\n" @@ -805,7 +803,7 @@ "\n" "VPN-tilkoplinga «%s» vart mislukka fordi VPN tenesta ikkje vart starta i tide." -#: ../src/applet.c:1005 +#: ../src/applet.c:1030 #, c-format msgid "" "\n" @@ -814,25 +812,26 @@ "\n" "VPN-tilkoplinga «%s» vart mislukka fordi VPN tenesta ikkje klarte å starta." -#: ../src/applet.c:1008 +#: ../src/applet.c:1033 #, c-format msgid "" "\n" "The VPN connection '%s' failed because there were no valid VPN secrets." msgstr "" "\n" -"VPN-tilkoplinga «%s» vart mislukka fordi det ikkje eksisterte nokre gyldige gyldige VPN-løyndomar" +"VPN-tilkoplinga «%s» vart mislukka fordi det ikkje fanst nokon gyldige " +"gyldige VPN-løyndomar." -#: ../src/applet.c:1011 +#: ../src/applet.c:1036 #, c-format msgid "" "\n" "The VPN connection '%s' failed because of invalid VPN secrets." msgstr "" "\n" -"VPN-tilkoplinga «%s» vart mislukka pga. ugyldige VPN-løyndomar" +"VPN-tilkoplinga «%s» vart mislukka pga. ugyldige VPN-løyndomar." -#: ../src/applet.c:1018 +#: ../src/applet.c:1043 #, c-format msgid "" "\n" @@ -841,44 +840,58 @@ "\n" "VPN-tilkoplinga «%s» vart mislukka." -#: ../src/applet.c:1036 +#: ../src/applet.c:1061 #, c-format msgid "" "\n" -"The VPN connection '%s' disconnected because the network connection was interrupted." +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." msgstr "" "\n" -"VPN-tilkoplinga «%s» vart fråkopla fordi nettverkstilkopling vart avbrutt." +"VPN-tilkoplinga «%s» vart fråkopla fordi nettverkstilkoplinga vart broten." -#: ../src/applet.c:1039 +#: ../src/applet.c:1064 #, c-format msgid "" "\n" "The VPN connection '%s' disconnected because the VPN service stopped." msgstr "" "\n" -"VPN-tilkoplinga «%s» vart brutt fordi VPN-tenesta vart stoppa." +"VPN-tilkoplinga «%s» vart fråkopla fordi VPN-tenesta vart stoppa." -#: ../src/applet.c:1045 +#: ../src/applet.c:1070 #, c-format msgid "" "\n" "The VPN connection '%s' disconnected." msgstr "" "\n" -"VPN-tilkoplinga «%s» er kobla fra." +"VPN-tilkoplinga «%s» er kopla frå." + +#: ../src/applet.c:1100 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN-tilkopling vart kopla opp.\n" +"\n" +"%s\n" -#: ../src/applet.c:1079 +#: ../src/applet.c:1102 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN-tilkopling vart kopla opp.\n" + +#: ../src/applet.c:1104 msgid "VPN Login Message" msgstr "Påloggingsmelding for VPN" -#: ../src/applet.c:1085 -#: ../src/applet.c:1093 -#: ../src/applet.c:1143 +#: ../src/applet.c:1110 ../src/applet.c:1118 ../src/applet.c:1168 msgid "VPN Connection Failed" msgstr "VPN-tilkoplinga vart mislukka" -#: ../src/applet.c:1150 +#: ../src/applet.c:1175 #, c-format msgid "" "\n" @@ -891,7 +904,7 @@ "\n" "%s" -#: ../src/applet.c:1153 +#: ../src/applet.c:1178 #, c-format msgid "" "\n" @@ -900,147 +913,143 @@ "%s" msgstr "" "\n" -"VPN-tilkoplinga «%s» klarte ikkje starte.\n" +"VPN-tilkoplinga «%s» klarte ikkje starta.\n" "\n" "%s" -#: ../src/applet.c:1473 -#| msgid "device not ready" +#: ../src/applet.c:1498 msgid "device not ready (firmware missing)" msgstr "eininga er ikkje klar (manglar fastvare)" -#: ../src/applet.c:1475 +#: ../src/applet.c:1500 msgid "device not ready" msgstr "eininga er ikkje klar" -#: ../src/applet.c:1501 +#: ../src/applet.c:1526 msgid "Disconnect" msgstr "Kopla frå" -#: ../src/applet.c:1515 +#: ../src/applet.c:1540 msgid "device not managed" msgstr "eining ikkje handsama" -#: ../src/applet.c:1559 +#: ../src/applet.c:1584 msgid "No network devices available" msgstr "Ingen nettverkseiningar er tilgjengelege" -#: ../src/applet.c:1647 +#: ../src/applet.c:1672 msgid "_VPN Connections" msgstr "_VPN-tilkoplingar" -#: ../src/applet.c:1704 +#: ../src/applet.c:1729 msgid "_Configure VPN..." msgstr "_Set opp VPN …" -#: ../src/applet.c:1708 -#| msgid "_Disconnect VPN..." +#: ../src/applet.c:1733 msgid "_Disconnect VPN" msgstr "Ko_pla frå VPN …" -#: ../src/applet.c:1806 +#: ../src/applet.c:1831 msgid "NetworkManager is not running..." msgstr "NetworkManager køyrer ikkje …" -#: ../src/applet.c:1811 -#: ../src/applet.c:2604 +#: ../src/applet.c:1836 ../src/applet.c:2635 msgid "Networking disabled" msgstr "Nettverk slått av" #. 'Enable Networking' item -#: ../src/applet.c:2032 +#: ../src/applet.c:2057 msgid "Enable _Networking" msgstr "Slå på _nettverk" #. 'Enable Wireless' item -#: ../src/applet.c:2041 +#: ../src/applet.c:2066 msgid "Enable _Wireless" msgstr "Slå på _trådlaus" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2050 +#: ../src/applet.c:2075 msgid "Enable _Mobile Broadband" msgstr "Slå på _mobilt breiband" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2059 -#| msgid "Enable _Mobile Broadband" +#: ../src/applet.c:2084 msgid "Enable WiMA_X Mobile Broadband" msgstr "Slå på WiMA_X mobilt breiband" #. Toggle notifications item -#: ../src/applet.c:2070 +#: ../src/applet.c:2095 msgid "Enable N_otifications" msgstr "Slå på _varsling" #. 'Connection Information' item -#: ../src/applet.c:2081 +#: ../src/applet.c:2106 msgid "Connection _Information" msgstr "Tilkoplings_informasjon" #. 'Edit Connections...' item -#: ../src/applet.c:2091 +#: ../src/applet.c:2116 msgid "Edit Connections..." msgstr "Rediger tilkoplingar …" #. Help item -#: ../src/applet.c:2105 +#: ../src/applet.c:2130 msgid "_Help" msgstr "_Hjelp" #. About item -#: ../src/applet.c:2114 +#: ../src/applet.c:2139 msgid "_About" msgstr "_Om" -#: ../src/applet.c:2291 +#: ../src/applet.c:2316 msgid "Disconnected" -msgstr "Frakopla" +msgstr "Fråkopla" -#: ../src/applet.c:2292 +#: ../src/applet.c:2317 msgid "The network connection has been disconnected." msgstr "Nettverkstilkoplinga er fråkopla." -#: ../src/applet.c:2473 +#: ../src/applet.c:2498 #, c-format msgid "Preparing network connection '%s'..." msgstr "Førebur nettverkstilkobling «%s» …" -#: ../src/applet.c:2476 +#: ../src/applet.c:2501 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Brukarautentisering krevst for nettverkstilkoplinga «%s» …" -#: ../src/applet.c:2482 +#: ../src/applet.c:2507 #, c-format msgid "Network connection '%s' active" -msgstr "Nettverkstilkopling «%s» er i bruk" +msgstr "Nettverkstilkoplinga «%s» er i bruk" -#: ../src/applet.c:2560 +#: ../src/applet.c:2590 #, c-format msgid "Starting VPN connection '%s'..." msgstr "Startar VPN-tilkopling «%s» …" -#: ../src/applet.c:2563 +#: ../src/applet.c:2593 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "Brukarautentisering krevst for VPN-tilkoplinga «%s» …" -#: ../src/applet.c:2566 +#: ../src/applet.c:2596 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "Ber om ei VPN-adresse for «%s» …" -#: ../src/applet.c:2569 +#: ../src/applet.c:2599 #, c-format msgid "VPN connection '%s' active" msgstr "VPN-tilkopling «%s» i bruk" -#: ../src/applet.c:2608 +#: ../src/applet.c:2640 msgid "No network connection" msgstr "Inga nettverkstilkopling" -#: ../src/applet.c:3258 +#: ../src/applet.c:3354 msgid "NetworkManager Applet" msgstr "Panelprogram for NetworkManager" @@ -1053,21 +1062,18 @@ msgstr "_Lås opp" #: ../src/info.ui.h:1 -#| msgid "Network Connections" -msgid "Active Network Connections" -msgstr "Aktive nettverkstilkoplingar" - -#: ../src/info.ui.h:2 msgid "Connection Information" msgstr "Tilkoplingsinformasjon" -#: ../src/wired-8021x.ui.h:1 -#: ../src/wired-dialog.c:104 +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Aktive nettverkstilkoplingar" + +#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 msgid "Wired 802.1X authentication" msgstr "Kabla 802.1X-autentisering" -#: ../src/wired-8021x.ui.h:2 -#: ../src/libnm-gtk/wifi.ui.h:4 +#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 msgid "_Network name:" msgstr "_Nettverksnamn:" @@ -1075,467 +1081,499 @@ msgid "automatic" msgstr "automatisk" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "Klarte ikkje å oppdatera tilkoplingsløyndom pga. ein ukjend feil." #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 -msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." -msgstr "IP-adresser identifiserer datamaskina di på nettverket. Trykk på «Legg til»-knappen for å leggja til ei IP-adresse." +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 +msgid "" +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." +msgstr "" +"IP-adresser identifiserer datamaskina di på nettverket. Trykk på «Legg til»-" +"knappen for å leggja til ei IP-adresse." #: ../src/connection-editor/ce-ip4-routes.ui.h:2 #: ../src/connection-editor/ce-ip6-routes.ui.h:2 -msgid "If enabled, this connection will never be used as the default network connection." -msgstr "Viss det er kryssa av her vil denne tilkoplinga aldri verta brukt som den forvalde nettverkstilkoplinga." +msgid "Ig_nore automatically obtained routes" +msgstr "O_versjå automatisk innhenta ruter" #: ../src/connection-editor/ce-ip4-routes.ui.h:3 #: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" -msgstr "Oversjå automatisk innhenta ruter" +#| msgid "Use this c_onnection only for resources on its network" +msgid "_Use this connection only for resources on its network" +msgstr "Br_uk denne tilkoplinga berre for ressursar på nettverket ho tilhøyrer" #: ../src/connection-editor/ce-ip4-routes.ui.h:4 #: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "Use this c_onnection only for resources on its network" -msgstr "Bruk denne tilkoplinga berre for ressursar på nettverket hennar" +msgid "" +"If enabled, this connection will never be used as the default network " +"connection." +msgstr "" +"Viss det er kryssa av her vil denne tilkoplinga aldri verta brukt som den " +"forvalde nettverkstilkoplinga." #: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 +#: ../src/wireless-security/eap-method-simple.ui.h:1 #: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "V_is passord" +msgid "_Username:" +msgstr "_Brukarnamn:" #: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "_Passord:" - -#: ../src/connection-editor/ce-page-dsl.ui.h:3 msgid "_Service:" msgstr "Tene_ste:" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 +#: ../src/connection-editor/ce-page-dsl.ui.h:3 #: ../src/wireless-security/eap-method-leap.ui.h:3 #: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 #: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "_Brukarnamn:" +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "V_is passord" + +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_Passord:" #: ../src/connection-editor/ce-page-ip4.ui.h:1 #: ../src/connection-editor/ce-page-ip6.ui.h:1 -#| msgid "Address" -msgid "Addresses" -msgstr "Adresser" - -#: ../src/connection-editor/ce-page-ip4.ui.h:2 -#: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wired.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:1 #: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 +#: ../src/wireless-security/eap-method-peap.ui.h:2 msgid "Automatic" msgstr "Automatisk" -#: ../src/connection-editor/ce-page-ip4.ui.h:3 -#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 msgid "Automatic with manual DNS settings" msgstr "Automatisk med manuelle DNS-innstillingar" +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "Manuell" + #: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" -msgstr "D_HCP-klient-ID:" +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "Tilkopling-lokal" #: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "Domains used when resolving host names. Use commas to separate multiple domains." -msgstr "Domene som vert brukt til å slå opp vertsnamn. Bruk komma for å separera fleire domene." +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "Delt med andre datamaskiner" -#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 #: ../src/connection-editor/ce-page-ip6.ui.h:6 -msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." -msgstr "IP-adresser til domenenamntenarar vert brukt til å slå opp versnamn. Bruk komma for å separera fleire adresser til domenenamntenarar." +msgid "_Method:" +msgstr "_Metode:" -#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip4.ui.h:7 #: ../src/connection-editor/ce-page-ip6.ui.h:7 -#| msgid "Link-Local Only" -msgid "Link-Local" -msgstr "Lenkje-lokal" +msgid "Addresses" +msgstr "Adresser" #: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 -#: ../src/connection-editor/page-ip4.c:169 -#: ../src/connection-editor/page-ip6.c:191 -msgid "Manual" -msgstr "Manuell" +msgid "" +"The DHCP client identifier allows the network administrator to customize " +"your computer's configuration. If you wish to use a DHCP client identifier, " +"enter it here." +msgstr "" +"DHCP-klientidentifikatoren tillèt nettverksadministratoren til å tilpassa " +"innstillingane til datamaskina di. Skriv inn identifikatoren her " #: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv4 addressing for this connection to complete" -msgstr "Krev IPv4-adressering for denne tilkoplinga" +#: ../src/connection-editor/ce-page-ip6.ui.h:9 +msgid "" +"Domains used when resolving host names. Use commas to separate multiple " +"domains." +msgstr "" +"Eitt eller fleire domene som vert brukt til å slå opp vertsnamn. Bruk komma " +"for å skilja domener frå kvarandre." #: ../src/connection-editor/ce-page-ip4.ui.h:11 -#: ../src/connection-editor/ce-page-ip6.ui.h:10 -#: ../src/connection-editor/page-ip4.c:187 -#: ../src/connection-editor/page-ip6.c:211 -msgid "Shared to other computers" -msgstr "Delt med andre datamaskiner" +msgid "D_HCP client ID:" +msgstr "D_HCP-klient-ID:" #: ../src/connection-editor/ce-page-ip4.ui.h:12 -msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." -msgstr "DHCP-klientidentifikatoren tillèt nettverksadministratoren til å tilpassa innstillingane til datamaskina di. Skriv inn identifikatoren her " +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#| msgid "_Search domains:" +msgid "S_earch domains:" +msgstr "_Søkjedomene:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 -msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "Tillèt bruk av IPv6 ved tilkopling til nettverk med støtte for IPv6, dersom IPv4-oppsett ikkje fungerer." +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +msgid "_DNS servers:" +msgstr "_DNS-tenarar:" #: ../src/connection-editor/ce-page-ip4.ui.h:14 #: ../src/connection-editor/ce-page-ip6.ui.h:12 -msgid "_DNS servers:" -msgstr "_DNS-tenarar:" +msgid "" +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." +msgstr "" +"IP-adresser til domenenamntenarar vert brukt til å slå opp versnamn. Bruk " +"komma for å skilja fleire adresser til domenenamntenarar." #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 -msgid "_Method:" -msgstr "_Metode:" +#| msgid "Require IPv4 addressing for this connection to complete" +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "Krev IPv4-adressering for å fullføra denne tilkoplinga" #: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Routes…" -msgstr "_Ruter …" +msgid "" +"When connecting to IPv6-capable networks, allows the connection to complete " +"if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "" +"Tillèt bruk av IPv6 ved tilkopling til nettverk med støtte for IPv6, dersom " +"IPv4-oppsett ikkje fungerer." #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 -msgid "_Search domains:" -msgstr "_Søkjedomene:" +msgid "_Routes…" +msgstr "_Ruter …" -#: ../src/connection-editor/ce-page-ip6.ui.h:9 -msgid "Require IPv6 addressing for this connection to complete" -msgstr "Krev IPv6-adressering for å bruka denne tilkoplinga" +#: ../src/connection-editor/ce-page-ip6.ui.h:13 +#| msgid "Require IPv6 addressing for this connection to complete" +msgid "Require IPv_6 addressing for this connection to complete" +msgstr "Krev IPv6-adressering for å fullføra denne tilkoplinga" -#: ../src/connection-editor/ce-page-ip6.ui.h:11 -msgid "When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds." -msgstr "Tillèt bruk av IPv4 ved tilkopling til nettverk med støtte for IPv4, dersom IPv6-oppsett ikkje fungerer." +#: ../src/connection-editor/ce-page-ip6.ui.h:14 +msgid "" +"When connecting to IPv4-capable networks, allows the connection to complete " +"if IPv6 configuration fails but IPv4 configuration succeeds." +msgstr "" +"Tillèt bruk av IPv4 ved tilkopling til nettverk med støtte for IPv4, dersom " +"IPv6-oppsett ikkje fungerer." #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "Kva som helst" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -#| msgid "Advanced" -msgid "Advanced" -msgstr "Avansert" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -#, fuzzy -msgid "Allow roaming if home network is not available" -msgstr "Tillat roaming dersom heimenettverk ikkje er tilgjengeleg" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "Føretrekk 3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "Kva som helst" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "Føretrekk 2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 msgid "Basic" msgstr "Grunnleggjande" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "Endra …" - -#: ../src/connection-editor/ce-page-mobile.ui.h:8 -#| msgid "N_etwork:" -msgid "N_etwork ID:" -msgstr "Nettverks-ID:" - -#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "Nu_mmer:" #: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "PI_N:" -msgstr "PI_N:" +msgid "Advanced" +msgstr "Avansert" #: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "Føretrekk 2G (GPRS/EDGE)" +msgid "_APN:" +msgstr "_APN:" #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "Føretrekk 3G (UMTS/HSPA)" +msgid "N_etwork ID:" +msgstr "Nettverks-ID:" #: ../src/connection-editor/ce-page-mobile.ui.h:13 -msgid "Sho_w passwords" -msgstr "_Vis passord" +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "_Type:" #: ../src/connection-editor/ce-page-mobile.ui.h:14 -msgid "_APN:" -msgstr "_APN:" +msgid "Change..." +msgstr "Endra …" + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +#| msgid "PI_N:" +msgid "P_IN:" +msgstr "P_IN:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "_Type:" +msgid "Allow _roaming if home network is not available" +msgstr "Tillat _vandring dersom heimenettverk ikkje er tilgjengeleg" + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "_Vis passord" #: ../src/connection-editor/ce-page-ppp.ui.h:1 -msgid "Allow _BSD data compression" -msgstr "Tillat _BSD-datakomprimering" +msgid "Authentication" +msgstr "Autentisering" #: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "Tillat _Deflate-datakomprimering" +msgid "Allowed methods:" +msgstr "Tillatne metodar:" #: ../src/connection-editor/ce-page-ppp.ui.h:3 -msgid "Allowed methods:" -msgstr "Tillate metodar:" +msgid "Configure _Methods…" +msgstr "Set opp _metodar …" #: ../src/connection-editor/ce-page-ppp.ui.h:4 -#| msgid "_Authentication:" -msgid "Authentication" -msgstr "Autentisering:" - -#: ../src/connection-editor/ce-page-ppp.ui.h:5 -#| msgid "Compression" msgid "Compression" msgstr "Komprimering" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "_Bruk punkt-til-punkt-kryptering (MPPE)" + #: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" -msgstr "Set opp _metodar …" +msgid "_Require 128-bit encryption" +msgstr "_Krev 128-bitars kryptering" #: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" -msgstr "Ekko" +msgid "Use _stateful MPPE" +msgstr "Bruk til_standsrik MPPE" #: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" -msgstr "Send PPP-ekkopakkar" +msgid "Allow _BSD data compression" +msgstr "Tillat _BSD-datakomprimering" #: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" -msgstr "Bruk komprimering på TCP-hovud" +msgid "Allow _Deflate data compression" +msgstr "Tillat _Deflate-datakomprimering" #: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" -msgstr "Bruk til_standsrik MPPE" +msgid "Use TCP _header compression" +msgstr "Bruk komprimering på TCP-hovud" #: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" -msgstr "_Krev 128-bitars kryptering" +msgid "Echo" +msgstr "Ekko" #: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "_Bruk punkt-til-punkt-kryptering (MPPE)" - -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#| msgid "%u Mb/s" -msgid "1 Gb/s" -msgstr "1 Gb/s" +msgid "Send PPP _echo packets" +msgstr "Send PPP-ekkopakkar" #: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 Gb/s" +msgid "Twisted Pair (TP)" +msgstr "Tvinna Par (TP)" #: ../src/connection-editor/ce-page-wired.ui.h:3 -#| msgid "Mb/s" -msgid "10 Mb/s" -msgstr "10 Mb/s" +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" #: ../src/connection-editor/ce-page-wired.ui.h:4 -#| msgid "%u Mb/s" -msgid "100 Mb/s" -msgstr "100 Mb/s" +msgid "BNC" +msgstr "BNC" #: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" #: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "F_orhandle automatisk" +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" #: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" +msgid "1 Gb/s" +msgstr "1 Gb/s" #: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "Full duple_x" -msgstr "Full duple_ks" +msgid "10 Gb/s" +msgstr "10 Gb/s" #: ../src/connection-editor/ce-page-wired.ui.h:10 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "MT_U:" -msgstr "MT_U:" +msgid "_Port:" +msgstr "_Port:" #: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "Media Independent Interface (MII)" +msgid "_Speed:" +msgstr "_Snøggleik:" #: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "MAC-adressa som vert oppgjeven her, vil brukast som maskinvareadresse for nettverkseininga denne tilkoplinga brukar. Denne funksjonen er kjend som MAC-kloning. Døme: 00:11:22:33:44:55" +msgid "Full duple_x" +msgstr "Full duple_ks" #: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Twisted Pair (TP)" -msgstr "Tvunnet Par (TP)" +msgid "Aut_onegotiate" +msgstr "F_orhandla automatisk" #: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:15 -#| msgid "_MAC address:" -msgid "_Cloned MAC address:" -msgstr "_Klona MAC-adresse:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 -#| msgid "_MAC address:" +#: ../src/connection-editor/ce-page-wireless.ui.h:8 msgid "_Device MAC address:" msgstr "_MAC-adresse for eining:" +#: ../src/connection-editor/ce-page-wired.ui.h:15 +#: ../src/connection-editor/ce-page-wireless.ui.h:10 +#| msgid "_Cloned MAC address:" +msgid "C_loned MAC address:" +msgstr "_Klona MAC-adresse:" + #: ../src/connection-editor/ce-page-wired.ui.h:16 -msgid "_Port:" -msgstr "_Port:" +#: ../src/connection-editor/ce-page-wireless.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"MAC-adressa som vert oppgjeven her, vil brukast som maskinvareadresse for " +"nettverkseininga denne tilkoplinga brukar. Denne funksjonen er kjend som MAC-" +"kloning. Døme: 00:11:22:33:44:55" #: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Speed:" -msgstr "_Snøggleik:" +#: ../src/connection-editor/ce-page-wireless.ui.h:7 +#| msgid "MT_U:" +msgid "_MTU:" +msgstr "_MTU:" #: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wireless.ui.h:6 msgid "bytes" msgstr "bytar" -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -#| msgid "%u (%u MHz)" +#: ../src/connection-editor/ce-page-wireless.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "Ad-hoc" - -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wireless.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2,4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" -msgstr "Ban_d:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "Ka_nal" - -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -#| msgid "" -#| "Infrastructure\n" -#| "Ad-hoc" +#: ../src/connection-editor/ce-page-wireless.ui.h:4 msgid "Infrastructure" -msgstr "Infrastruktur" - -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" -msgstr "M_odus:" +msgstr "Infrastruktur" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "Mb/s" -msgstr "Mb/s" +#: ../src/connection-editor/ce-page-wireless.ui.h:5 +msgid "Ad-hoc" +msgstr "Ad-hoc" + +#: ../src/connection-editor/ce-page-wireless.ui.h:11 +msgid "mW" +msgstr "mW" #: ../src/connection-editor/ce-page-wireless.ui.h:12 -msgid "This option locks this connection to the wireless access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "Dette alternativet låser denne tilkoplinga til eit trådlaust aksesspunkt (AP), bestemt av BSSID-en oppgjeve her. Døme: 00:11:22:33:44:55" +msgid "Transmission po_wer:" +msgstr "_Sendareffekt:" #: ../src/connection-editor/ce-page-wireless.ui.h:13 -msgid "Transmission po_wer:" -msgstr "Overføringsst_yrke:" +msgid "Mb/s" +msgstr "Mb/s" #: ../src/connection-editor/ce-page-wireless.ui.h:14 +msgid "_Rate:" +msgstr "_Rate:" + +#: ../src/connection-editor/ce-page-wireless.ui.h:15 +msgid "" +"This option locks this connection to the wireless access point (AP) " +"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Dette alternativet låser denne tilkoplinga til eit trådlaust aksesspunkt " +"(AP), bestemt av BSSID-en oppgjeve her. Døme: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-wireless.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" #: ../src/connection-editor/ce-page-wireless.ui.h:17 -msgid "_Rate:" -msgstr "_Rate:" +msgid "C_hannel:" +msgstr "Ka_nal:" #: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_SSID:" -msgstr "_SSID:" +msgid "Ban_d:" +msgstr "Ban_d:" + +#: ../src/connection-editor/ce-page-wireless.ui.h:19 +msgid "M_ode:" +msgstr "M_odus:" #: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "mW" -msgstr "mW" +#| msgid "_SSID:" +msgid "SS_ID:" +msgstr "SS_ID:" #: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "_Security:" -msgstr "Try_ggleik:" +#| msgid "Security:" +msgid "S_ecurity:" +msgstr "Tryggl_eik:" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 -#| msgid "Allowed Authentication Methods" msgid "Allowed Authentication Methods" msgstr "Tillatne autentiseringsmetodar" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 -msgid "C_HAP" -msgstr "C_HAP" +msgid "_EAP" +msgstr "_EAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 -msgid "Challenge Handshake Authentication Protocol" -msgstr "Challenge Handshake Authentication Protocol" - -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 msgid "Extensible Authentication Protocol" msgstr "Extensible Authentication Protocol" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "_PAP" + #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 -#| msgid "" -#| "In most cases, the provider's PPP servers will support all " -#| "authentication methods. If connections fail, try disabling support for " -#| "some methods." -msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." -msgstr "I dei fleste tilfelle vil leverandøren sine PPP-tenarar støtte alle autentiseringsmetodar. Dersom du ikkje får kopla til, prøv å slå av støtte for nokre metodar." +msgid "Password Authentication Protocol" +msgstr "Password Authentication Protocol" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +msgid "C_HAP" +msgstr "C_HAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft Challenge Handshake Authentication Protocol" +msgid "Challenge Handshake Authentication Protocol" +msgstr "Challenge Handshake Authentication Protocol" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft Challenge Handshake Authentication Protocol versjon 2" +msgid "_MSCHAP" +msgstr "_MSCHAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" -msgstr "Password Authentication Protocol" +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft Challenge Handshake Authentication Protocol" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "_EAP" +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "_MSCHAP" +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft Challenge Handshake Authentication Protocol versjon 2" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "_PAP" +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "" +"I dei fleste tilfelle vil leverandøren sine PPP-tenarar støtte alle " +"autentiseringsmetodar. Dersom du ikkje får kopla til, prøv å slå av støtte " +"for nokre metodar." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 -#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 #: ../src/wireless-security/eap-method-peap.ui.h:1 #: ../src/wireless-security/eap-method-ttls.ui.h:1 #: ../src/wireless-security/ws-dynamic-wep.ui.h:1 @@ -1544,63 +1582,60 @@ msgstr " " #: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -#| msgid "Create VPN Connection" msgid "Choose a VPN Connection Type" msgstr "Vel type VPN-tilkopling" #: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "Lag …" +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Vel type VPN du ønskjer å bruka for den nye tilkoplinga. Dersom du ikkje " +"finn rett type i lista, har du kanskje ikkje riktig VPN-tillegg installert." #: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -#| msgid "" -#| "Choose a VPN Connection Type\n" -#| "\n" -#| "Select the type of VPN you wish to use for the new connection. If the " -#| "type of VPN connection you wish to create does not appear in the list, " -#| "you may not have the correct VPN plugin installed." -msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." -msgstr "Vel type VPN du ønskjer å bruka for den nye tilkoplinga. Dersom du ikkje finn rett type i lista, har du kanskje ikkje riktig VPN-tillegg installert." +msgid "Create…" +msgstr "Lag …" #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:901 -#: ../src/connection-editor/page-ip6.c:867 +#: ../src/connection-editor/page-ip4.c:900 +#: ../src/connection-editor/page-ip6.c:866 msgid "Address" msgstr "Adresse" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:918 +#: ../src/connection-editor/page-ip4.c:917 msgid "Netmask" msgstr "Nettmaske" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:935 -#: ../src/connection-editor/page-ip6.c:901 +#: ../src/connection-editor/page-ip4.c:934 +#: ../src/connection-editor/page-ip6.c:900 msgid "Gateway" msgstr "Portnar" #: ../src/connection-editor/ip4-routes-dialog.c:796 #: ../src/connection-editor/ip6-routes-dialog.c:738 msgid "Metric" -msgstr "Metrisk" +msgstr "Kostnad" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:884 +#: ../src/connection-editor/page-ip6.c:883 msgid "Prefix" msgstr "Prefiks" #: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1482 +#: ../src/connection-editor/nm-connection-editor.ui.h:8 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" #: ../src/connection-editor/page-dsl.c:141 msgid "Could not load DSL user interface." -msgstr "Klarte ikkje lasta brukargrensesnitt for DSL-nettverk" +msgstr "Klarte ikkje lasta brukargrensesnitt for DSL-nettverk." #: ../src/connection-editor/page-dsl.c:231 #, c-format @@ -1615,7 +1650,7 @@ #: ../src/connection-editor/page-ip4.c:134 #: ../src/connection-editor/page-ip6.c:133 msgid "Automatic (VPN) addresses only" -msgstr "Kun automatiske (VPN) adresser" +msgstr "Berre automatiske (VPN-) adresser" #: ../src/connection-editor/page-ip4.c:137 #: ../src/connection-editor/page-ip6.c:136 @@ -1625,7 +1660,7 @@ #: ../src/connection-editor/page-ip4.c:138 #: ../src/connection-editor/page-ip6.c:137 msgid "Automatic (PPP) addresses only" -msgstr "Kun automatiske (PPP) adresser" +msgstr "Berre automatiske (PPP-) adresser" #: ../src/connection-editor/page-ip4.c:140 #: ../src/connection-editor/page-ip6.c:139 @@ -1635,7 +1670,7 @@ #: ../src/connection-editor/page-ip4.c:141 #: ../src/connection-editor/page-ip6.c:140 msgid "Automatic (PPPoE) addresses only" -msgstr "Kun automatiske (PPPoE) adresser" +msgstr "Berre automatiske (PPPoE-) adresser" #: ../src/connection-editor/page-ip4.c:143 msgid "Automatic (DHCP)" @@ -1643,7 +1678,7 @@ #: ../src/connection-editor/page-ip4.c:144 msgid "Automatic (DHCP) addresses only" -msgstr "Kun automatiske (DHCP) adresser" +msgstr "Berre automatiske (DHCP-) adresser" #: ../src/connection-editor/page-ip4.c:181 #: ../src/connection-editor/page-ip6.c:204 @@ -1659,11 +1694,11 @@ msgid "Editing IPv4 routes for %s" msgstr "Redigerer IPv4-ruter for %s" -#: ../src/connection-editor/page-ip4.c:982 +#: ../src/connection-editor/page-ip4.c:981 msgid "IPv4 Settings" msgstr "IPv4-innstillingar" -#: ../src/connection-editor/page-ip4.c:984 +#: ../src/connection-editor/page-ip4.c:983 msgid "Could not load IPv4 user interface." msgstr "Klarte ikkje lasta brukargrensesnitt for IPv4-nettverk." @@ -1677,7 +1712,6 @@ msgstr "Ignorer" #: ../src/connection-editor/page-ip6.c:179 -#| msgid "Automatic (DHCP)" msgid "Automatic, DHCP only" msgstr "Automatisk, berre DHCP" @@ -1686,17 +1720,17 @@ msgid "Editing IPv6 routes for %s" msgstr "Redigerer IPv6-ruter for %s" -#: ../src/connection-editor/page-ip6.c:946 +#: ../src/connection-editor/page-ip6.c:945 msgid "IPv6 Settings" msgstr "IPv6-innstillingar" -#: ../src/connection-editor/page-ip6.c:948 +#: ../src/connection-editor/page-ip6.c:947 msgid "Could not load IPv6 user interface." msgstr "Klarte ikkje lasta brukargrensesnitt for IPv6-nettverk" #: ../src/connection-editor/page-mobile.c:381 msgid "Could not load mobile broadband user interface." -msgstr "Klarte ikkje lasta brukargrensesnitt for mobilt breibandnettverk" +msgstr "Klarte ikkje lasta brukargrensesnitt for mobilt breibandnettverk." #: ../src/connection-editor/page-mobile.c:398 msgid "Unsupported mobile broadband connection type." @@ -1708,8 +1742,12 @@ msgstr "Vel mobil breibandtilbydartype" #: ../src/connection-editor/page-mobile.c:674 -msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." -msgstr "Vel teknologien tilbydaren til ditt mobile breiband brukar. Spør tilbydaren om du er usikker." +msgid "" +"Select the technology your mobile broadband provider uses. If you are " +"unsure, ask your provider." +msgstr "" +"Vel teknologien tilbydaren til ditt mobile breiband brukar. Spør tilbydaren " +"om du er usikker." #: ../src/connection-editor/page-mobile.c:679 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" @@ -1734,6 +1772,7 @@ msgstr "CHAP" #: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 #: ../src/wireless-security/eap-method-peap.c:246 #: ../src/wireless-security/eap-method-ttls.c:263 msgid "MSCHAPv2" @@ -1754,24 +1793,23 @@ msgid "Editing PPP authentication methods for %s" msgstr "Endrar PPP-autentiseringsmetodar for %s" -#: ../src/connection-editor/page-ppp.c:283 +#: ../src/connection-editor/page-ppp.c:282 msgid "PPP Settings" msgstr "PPP-innstillingar" -#: ../src/connection-editor/page-ppp.c:285 +#: ../src/connection-editor/page-ppp.c:284 msgid "Could not load PPP user interface." msgstr "Klarte ikkje lasta brukargrensesnitt for PPP-nettverk" #: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1478 +#: ../src/connection-editor/nm-connection-editor.ui.h:7 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" #: ../src/connection-editor/page-vpn.c:111 -#| msgid "Could not load PPP user interface." msgid "Could not load VPN user interface." -msgstr "Klarte ikkje lasta brukargrensesnitt for VPN" +msgstr "Klarte ikkje lasta brukargrensesnitt for VPN." #: ../src/connection-editor/page-vpn.c:126 #, c-format @@ -1779,106 +1817,111 @@ msgstr "Klarte ikkje finna VPN-programtilleggsteneste til «%s»." #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:884 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "VPN-tilkopling %d" -#: ../src/connection-editor/page-wired.c:88 -#: ../src/connection-editor/page-wireless.c:93 -msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "Dette alternativet låser tilkoplinga til nettverkseininga med den permanente MAC-adressa oppgjeve her. Døme: 00:11:22:33:44:55" +#: ../src/connection-editor/page-wired.c:89 +#: ../src/connection-editor/page-wireless.c:94 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Dette alternativet låser tilkoplinga til nettverkseininga med den permanente " +"MAC-adressa oppgjeve her. Døme: 00:11:22:33:44:55" -#: ../src/connection-editor/page-wired.c:267 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -#: ../src/connection-editor/nm-connection-list.c:1466 +#: ../src/connection-editor/page-wired.c:272 +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Kabla" -#: ../src/connection-editor/page-wired.c:269 +#: ../src/connection-editor/page-wired.c:274 msgid "Could not load wired user interface." msgstr "Klarte ikkje lasta brukergrensesnitt for kabla nettverk." -#: ../src/connection-editor/page-wired.c:444 +#: ../src/connection-editor/page-wired.c:449 #, c-format msgid "Wired connection %d" msgstr "Kabla tilkopling %d" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "802.1X-tryggleik:" -#: ../src/connection-editor/page-wired-security.c:118 -#| msgid "Could not load WiFi security user interface." +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "Klarte ikkje lasta brukargrensesnittet for kabla nettverkstryggleik." -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1X security for this connection" -msgstr "Bruk 802.1X-tryggleik for denne tilkoplinga" - -#: ../src/connection-editor/page-wireless.c:166 -#: ../src/connection-editor/page-wireless.c:170 -#: ../src/connection-editor/page-wireless.c:191 +#: ../src/connection-editor/page-wired-security.c:139 +#| msgid "Use 802.1X security for this connection" +msgid "Use 802.1_X security for this connection" +msgstr "Bruk 802.1_X-tryggleik for denne tilkoplinga" + +#: ../src/connection-editor/page-wireless.c:171 +#: ../src/connection-editor/page-wireless.c:175 +#: ../src/connection-editor/page-wireless.c:196 #, c-format msgid "default" msgstr "forval" -#: ../src/connection-editor/page-wireless.c:195 +#: ../src/connection-editor/page-wireless.c:200 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:452 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -#: ../src/connection-editor/nm-connection-list.c:1470 +#: ../src/connection-editor/page-wireless.c:457 +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Trådlaus" -#: ../src/connection-editor/page-wireless.c:454 +#: ../src/connection-editor/page-wireless.c:459 msgid "Could not load WiFi user interface." -msgstr "Klarte ikkje lasta brukargrensesnitt for trådlaus tryggleik." +msgstr "Klarte ikkje lasta brukargrensesnitt for trådlaust nettverk." -#: ../src/connection-editor/page-wireless.c:658 +#: ../src/connection-editor/page-wireless.c:663 #, c-format msgid "Wireless connection %d" msgstr "Trådlaus tilkopling %d" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 -#| msgid "WEP 40/128-bit Key" +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP 40/128-bit-nøkkel (Heksadesimal eller ASCII)" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" -msgstr "WEP 128-bit passord" +msgstr "WEP 128-bit passfrase" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "Dynamisk WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 personleg" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA og WPA2 enterprise" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "Klart ikkje lasta brukargrensesnitt for trådlaus tryggleik; manglar tryggleiksinnstilling." +msgstr "" +"Klart ikkje lasta brukargrensesnitt for trådlaus tryggleik; manglar " +"trådlausinnstilling." -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "Trådlaus tryggleik" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "Klarte ikkje lasta brukargrensesnitt for trådlaus tryggleik." @@ -1891,52 +1934,55 @@ msgid "Editing un-named connection" msgstr "Redigerer tilkopling utan namn" -#: ../src/connection-editor/nm-connection-editor.c:288 -#| msgid "" -#| "The connection editor could not find some required resources (the glade " -#| "file was not found)." -msgid "The connection editor could not find some required resources (the .ui file was not found)." -msgstr "Tilkoplingsredigering fann ikkje alle nødvendige ressursar (fann ikkje .ui-fila)" +#: ../src/connection-editor/nm-connection-editor.c:291 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"Tilkoplingsredigering fann ikkje alle nødvendige ressursar (fann ikkje .ui-" +"fila)" -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:394 msgid "Error creating connection editor dialog." -msgstr "Klarte ikkje laga vindauge for tilkoplingsredigering" +msgstr "Klarte ikkje laga vindauge for tilkoplingsredigering." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:406 msgid "_Save" msgstr "_Lagra" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "Save any changes made to this connection." msgstr "Lagra alle endringar for denne tilkoplinga." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "_Save..." msgstr "_Lagra …" -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "Authenticate to save this connection for all users of this machine." -msgstr "Autentiser til å lagra denne innstillinga til alle brukarane av denne maskina." +msgstr "" +"Autentiser til å lagra denne innstillinga til alle brukarane av denne " +"maskina." -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "Tilgjengeleg til alle brukarar" +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Import" +msgstr "_Importer" -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "Kopla til _automatisk" +#: ../src/connection-editor/nm-connection-editor.ui.h:6 +msgid "E_xport" +msgstr "E_ksporter" -#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-editor.ui.h:9 msgid "Connection _name:" msgstr "Tilkoplings_namn:" -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "E_ksporter" +#: ../src/connection-editor/nm-connection-editor.ui.h:10 +msgid "Connect _automatically" +msgstr "Kopla til _automatisk" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "_Importer" +msgid "A_vailable to all users" +msgstr "_Tilgjengeleg til alle brukarar" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -1981,39 +2027,40 @@ msgid "%d year ago" msgid_plural "%d years ago" msgstr[0] "%d år sidan" -msgstr[1] "%d år sida" +msgstr[1] "%d år sidan" #: ../src/connection-editor/nm-connection-list.c:486 msgid "Connection add failed" msgstr "Klarte ikkje leggja til tilkopling" #: ../src/connection-editor/nm-connection-list.c:515 -#| msgid "Error displaying connection information:" msgid "Error saving connection" msgstr "Klarte ikkje lagra tilkopling" #: ../src/connection-editor/nm-connection-list.c:516 #, c-format -#| msgid "Error editing connection: property '%s' / '%s' invalid: %d" msgid "The property '%s' / '%s' is invalid: %d" msgstr "Eigenskapen «%s» eller «%s» er ugyldig: %d" #: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:642 -#| msgid "An unknown error ocurred." +#: ../src/connection-editor/nm-connection-list.c:662 msgid "An unknown error occurred." msgstr "Ein ukjend feil oppstod." #: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:686 +#: ../src/connection-editor/nm-connection-list.c:702 msgid "Error initializing editor" msgstr "Feil når redigeringsverktøyet skulle startast" #: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:703 -#: ../src/connection-editor/nm-connection-list.c:870 -msgid "The connection editor dialog could not be initialized due to an unknown error." -msgstr "Feil når dialogvindauge for tilkoplingsredigering skulle startast på grunn av ein ukjend feil." +#: ../src/connection-editor/nm-connection-list.c:719 +#: ../src/connection-editor/nm-connection-list.c:885 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"Klarte ikkje starta dialogvindauge for tilkoplingsredigering på grunn " +"av ein ukjend feil." #: ../src/connection-editor/nm-connection-list.c:557 msgid "Could not create new connection" @@ -2023,25 +2070,25 @@ msgid "Could not edit new connection" msgstr "Klarte ikkje redigera ny tilkopling" -#: ../src/connection-editor/nm-connection-list.c:717 +#: ../src/connection-editor/nm-connection-list.c:733 msgid "Could not edit connection" msgstr "Klarte ikkje redigera tilkopling" -#: ../src/connection-editor/nm-connection-list.c:747 +#: ../src/connection-editor/nm-connection-list.c:763 msgid "Connection delete failed" msgstr "Sletting av tilkopling feila" -#: ../src/connection-editor/nm-connection-list.c:779 +#: ../src/connection-editor/nm-connection-list.c:795 #, c-format msgid "Are you sure you wish to delete the connection %s?" msgstr "Er du sikker på at du vil sletta tilkoplinga %s?" -#: ../src/connection-editor/nm-connection-list.c:914 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "Klarte ikkje importera VPN-tilkopling" -#: ../src/connection-editor/nm-connection-list.c:916 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2051,137 +2098,131 @@ "\n" "Feil: Ingen VPN-tenestetype." -#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "Klarte ikkje redigera importert tilkopling" -#: ../src/connection-editor/nm-connection-list.c:1099 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "Namn" -#: ../src/connection-editor/nm-connection-list.c:1111 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "Sist brukt" -#: ../src/connection-editor/nm-connection-list.c:1227 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." -msgstr "Ingen VPN-tillegg tilgjengelege. Installer eit for å aktivera denne knappen." +msgstr "" +"Ingen VPN-tillegg tilgjengelege. Installer eit for å aktivera denne knappen." -#: ../src/connection-editor/nm-connection-list.c:1238 -#| msgid "Edit" +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "R_ediger" -#: ../src/connection-editor/nm-connection-list.c:1239 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "Rediger valt tilkopling" -#: ../src/connection-editor/nm-connection-list.c:1240 -#| msgid "Edit..." +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "R_ediger …" -#: ../src/connection-editor/nm-connection-list.c:1241 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "Autentiser for å redigera den valde tilkoplinga" -#: ../src/connection-editor/nm-connection-list.c:1256 -#| msgid "Delete" +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "_Slett" -#: ../src/connection-editor/nm-connection-list.c:1257 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "Slett vald tilkopling" -#: ../src/connection-editor/nm-connection-list.c:1258 -#| msgid "Delete..." +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "_Slett …" -#: ../src/connection-editor/nm-connection-list.c:1259 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "Autentiser til å sletta den valde tilkoplinga" -#: ../src/connection-editor/nm-connection-list.c:1538 -#| msgid "Error creating connection editor dialog." +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "Klarte ikkje oppretta tilkopling" -#: ../src/connection-editor/nm-connection-list.c:1539 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format -#| msgid "Could not create new connection" msgid "Don't know how to create '%s' connections" msgstr "Veit ikkje korleis «%s»-tilkoplingar vert laga" -#: ../src/connection-editor/nm-connection-list.c:1594 -#: ../src/connection-editor/nm-connection-list.c:1606 -#| msgid "Editing un-named connection" +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "Feil under redigering av tilkopling" -#: ../src/connection-editor/nm-connection-list.c:1595 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format -#| msgid "Could not edit connection" msgid "Don't know how to edit '%s' connections" msgstr "Veit ikkje korleis «%s»-tilkoplingar vert endra" -#: ../src/connection-editor/nm-connection-list.c:1607 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "Fann ikkje tilkopling med UUID «%s»" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" -"The file '%s' could not be read or does not contain recognized VPN connection information\n" +"The file '%s' could not be read or does not contain recognized VPN " +"connection information\n" "\n" "Error: %s." msgstr "" -"Fila «%s» klarte ikkje å verta lese eller inneheld ikkje gjenkjend VPN- tilkoplingssinformasjon\n" +"Fila «%s» kunne ikkje lesast eller inneheld ikkje gjenkjend VPN- " +"tilkoplingssinformasjon\n" "\n" "Feil: %s" -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "Vel fil som skal importerast" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "Ei fil kalla «%s» finst alt." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "_Byt ut" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Vil du byta ut %s med VPN-tilkoplinga du no lagrar?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "Klarte ikkje eksportera VPN-tilkopling" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" "\n" "Error: %s." msgstr "" -"Klarte ikkje å eksportera VPN-sambadet «%s» til %s\n" +"Klarte ikkje å eksportera VPN-tilkoplinga «%s» til %s\n" "\n" "Feil: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "Eksporter VPN-tilkopling …" #: ../src/gnome-bluetooth/bt-widget.c:220 #, c-format -#| msgid "Finished Create VPN Connection" msgid "Failed to create PAN connection: %s" msgstr "Klarte ikkje oppretta PAN-tilkopling: %s" @@ -2198,17 +2239,16 @@ #: ../src/gnome-bluetooth/bt-widget.c:375 #, c-format msgid "Error: %s" -msgstr "Feil %s" +msgstr "Feil: %s" #: ../src/gnome-bluetooth/bt-widget.c:488 #, c-format -#| msgid "Could not create new connection" msgid "Failed to create DUN connection: %s" msgstr "Klarte ikkje oppretta DUN-tilkopling: %s" #: ../src/gnome-bluetooth/bt-widget.c:511 msgid "Mobile wizard was canceled" -msgstr "Mobilvegvisaren var avbrutt" +msgstr "Mobilvegvisaren vart avbroten" #: ../src/gnome-bluetooth/bt-widget.c:520 msgid "Unknown phone device type (not GSM or CDMA)" @@ -2225,7 +2265,7 @@ #: ../src/gnome-bluetooth/bt-widget.c:762 msgid "timed out detecting phone details." -msgstr "tidsavbrudd under oppdaging av telefondetaljar." +msgstr "tidsavbrot under oppdaging av telefondetaljar." #: ../src/gnome-bluetooth/bt-widget.c:774 msgid "Detecting phone configuration..." @@ -2236,8 +2276,12 @@ msgstr "klarte ikkje å finna blåtanneininga." #: ../src/gnome-bluetooth/bt-widget.c:980 -msgid "The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection." -msgstr "Den forvalde blåtannadapteren må vera påslått før du kan setja opp eismalbandstilkopling" +msgid "" +"The default Bluetooth adapter must be enabled before setting up a Dial-Up-" +"Networking connection." +msgstr "" +"Den forvalde blåtannadapteren må vera påslått før du kan setja opp " +"ei oppringt tilkopling." #: ../src/gnome-bluetooth/bt-widget.c:1012 #, c-format @@ -2246,12 +2290,15 @@ #: ../src/gnome-bluetooth/bt-widget.c:1022 msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Ikkje mogleg å setja opp blåtann (klarte ikkje oppretta D-Bus-mellomtenar)." +msgstr "" +"Ikkje mogleg å setja opp blåtann (klarte ikkje oppretta D-Bus-mellomtenar)." #: ../src/gnome-bluetooth/bt-widget.c:1031 #, c-format -msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "Ikkje mogleg å setja opp blåtann (klarte ikkje finna NetworkManager: %s)" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: %s)." +msgstr "" +"Ikkje mogleg å setja opp blåtann (klarte ikkje finna NetworkManager: %s)" #: ../src/gnome-bluetooth/bt-widget.c:1098 msgid "Use your mobile phone as a network device (PAN/NAP)" @@ -2259,11 +2306,13 @@ #: ../src/gnome-bluetooth/bt-widget.c:1107 msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Få tilgang til Internettet ved å bruka din mobiltelefon (DUN)" +msgstr "Få tilgang til Internettet ved å bruka mobiltelefonen din (DUN)" #: ../src/libnm-gtk/nm-mobile-wizard.c:198 -msgid "Your mobile broadband connection is configured with the following settings:" -msgstr "Din mobile breibandstilkopling er set opp med følgjande innstillingar:" +msgid "" +"Your mobile broadband connection is configured with the following settings:" +msgstr "" +"Den mobile breibandstilkoplinga er set opp med følgjande innstillingar:" #. Device #: ../src/libnm-gtk/nm-mobile-wizard.c:205 @@ -2281,12 +2330,22 @@ msgstr "Din plan:" #: ../src/libnm-gtk/nm-mobile-wizard.c:252 -msgid "A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose \"Network Connections\" from the System >> Preferences menu." -msgstr "Ei tilkopling med dei innstillingane du set opp vil no verta set opp til din mobile breibandltilbydar . Dobbelsjekk innstillingane dine om tilkoplinga feilar eller du ikkje får tilgang til nettverksressursar. Vel «Nettverkstilkoblingar» frå «System → Nettverkstilkoblingar» for å endra innstillingane til den mobile breibandstilkoplinga di." +msgid "" +"A connection will now be made to your mobile broadband provider using the " +"settings you selected. If the connection fails or you cannot access network " +"resources, double-check your settings. To modify your mobile broadband " +"connection settings, choose \"Network Connections\" from the System >> " +"Preferences menu." +msgstr "" +"Vil no kopla til ditt mobile breiband med dei innstillingane du vel. " +"Dobbelsjekk innstillingane dine om tilkoplinga " +"feilar eller du ikkje får tilgang til nettverksressursar. Vel " +"«Nettverkstilkoplingar» frå «System → Nettverkstilkoplingar» for å endra " +"innstillingane til den mobile breibandstilkoplinga di." #: ../src/libnm-gtk/nm-mobile-wizard.c:264 msgid "Confirm Mobile Broadband Settings" -msgstr "Stadfest mobil breibandinnstillingar" +msgstr "Stadfest innstillingar for mobilt breiband" #: ../src/libnm-gtk/nm-mobile-wizard.c:325 msgid "Unlisted" @@ -2294,7 +2353,7 @@ #: ../src/libnm-gtk/nm-mobile-wizard.c:480 msgid "_Select your plan:" -msgstr "Vel planen din:" +msgstr "_Vel planen din:" #: ../src/libnm-gtk/nm-mobile-wizard.c:504 msgid "Selected plan _APN (Access Point Name):" @@ -2302,11 +2361,13 @@ #: ../src/libnm-gtk/nm-mobile-wizard.c:528 msgid "" -"Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity.\n" +"Warning: Selecting an incorrect plan may result in billing issues for your " +"broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"Åtvaring: Å velja feil betalingsplan kan føra til at du vert trekt for feile beløp eller at du ikkje får kopla deg til.\n" +"Åtvaring: Å velja feil betalingsplan kan føra til at du vert trekt for feile " +"beløp eller at du ikkje får kopla deg til.\n" "\n" "Kontakt tilbydaren din om du er usikker på kva for plan du har." @@ -2316,7 +2377,7 @@ #: ../src/libnm-gtk/nm-mobile-wizard.c:583 msgid "My plan is not listed..." -msgstr "Min plan er ikkje oppgjeve …" +msgstr "Min plan er ikkje oppgjeven …" #: ../src/libnm-gtk/nm-mobile-wizard.c:740 msgid "Select your provider from a _list:" @@ -2346,66 +2407,69 @@ msgid "Choose your Provider" msgstr "Vel tilbydaren din" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1080 -#| msgid "Country List:" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 msgid "Country or Region List:" msgstr "Liste over land eller regionar:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1092 -#| msgid "Country List:" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 msgid "Country or region" msgstr "Land eller region" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1099 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "My country is not listed" msgstr "Mitt land er ikkje oppgjeve" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1145 -#| msgid "Choose your Provider's Country" +#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 msgid "Choose your Provider's Country or Region" msgstr "Vel landet eller regionen for leverandøren din" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1199 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 msgid "Installed GSM device" msgstr "Innstallert GSM-eining" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1202 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 msgid "Installed CDMA device" msgstr "Installert CDMA-eining" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1374 -msgid "This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network." -msgstr "Denne vegvisaren hjelper deg å setja opp ei mobil breibandstilkopling til eit 3G-nettverk." +#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +msgid "" +"This assistant helps you easily set up a mobile broadband connection to a " +"cellular (3G) network." +msgstr "" +"Denne vegvisaren hjelper deg å setja opp ei mobil breibandstilkopling til " +"eit 3G-nettverk." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1379 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 msgid "You will need the following information:" msgstr "Du treng følgjande informasjon:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1394 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 msgid "Your broadband provider's name" msgstr "Namnet på breibandtilbydaren din" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1400 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 msgid "Your broadband billing plan name" msgstr "Namnet på betalingsplanen til breibandet ditt" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1406 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" -msgstr "(i nokre tilfelle) APN-en (namnet på tilgangspunkt) til breibandet ditt sin betalingsplan" +msgstr "" +"(i nokre tilfelle) APN-en (namnet på tilgangspunkt) til breibandet ditt sin " +"betalingsplan" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1433 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 msgid "Create a connection for _this mobile broadband device:" msgstr "Lag ei tilkopling for _denne mobile breibandseininga" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1448 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 msgid "Any device" -msgstr "Eikor eining" +msgstr "Eikvar eining" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Set up a Mobile Broadband Connection" msgstr "Set opp ei mobil breibandstilkopling" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1625 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 msgid "New Mobile Broadband Connection" msgstr "Ny mobil breibandstilkopling" @@ -2413,70 +2477,86 @@ msgid "New..." msgstr "Ny …" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" -msgstr "Opp_rett" +msgstr "L_ag" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format -msgid "Passwords or encryption keys are required to access the wireless network '%s'." -msgstr "Passord eller krypteringsnøklar er nødvendig for å kopla til det trådlause nettverket «%s»." +msgid "" +"Passwords or encryption keys are required to access the wireless network '%" +"s'." +msgstr "" +"Passord eller krypteringsnøklar er nødvendig for å kopla til det trådlause " +"nettverket «%s»." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "Autentisering for trådlaust nettverk påkravd" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "Autentisering er påkravd av det trådlause nettverket" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "Opprett nytt trådlaust nettverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "Nytt trådlaust nettverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "Oppgje eit namn på det trådlause nettverket du ønskjer å oppretta." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "Kopla til eit gøymt trådlaust nettverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "Gøymt trådlaust nettverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 -msgid "Enter the name and security details of the hidden wireless network you wish to connect to." -msgstr "Oppgje namnet og tryggleiksdetaljane til det gøymde trådlause nettverket du ønskjer å kopla til." +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +msgid "" +"Enter the name and security details of the hidden wireless network you wish " +"to connect to." +msgstr "" +"Oppgje namnet og tryggleiksdetaljane til det gøymde trådlause nettverket du " +"ynskjer å kopla til." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" -msgstr "Samba_nd:" +msgid "Wireless _security:" +msgstr "Tr_ådlaus tryggleik:" -#: ../src/libnm-gtk/wifi.ui.h:3 -msgid "Wireless _adapter:" -msgstr "Trådlaust _kort:" +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "Tilkopli_ng:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "Tr_ådlaus tryggleik:" +msgid "Wireless _adapter:" +msgstr "Trådlaust _kort:" #: ../src/main.c:73 msgid "Usage:" msgstr "Bruk:" #: ../src/main.c:75 -msgid "This program is a component of NetworkManager (http://projects.gnome.org/NetworkManager)." -msgstr "Dette programmet er ein komponent av NetworkManager http://projects.gnome.org/NetworkManager)." +msgid "" +"This program is a component of NetworkManager (http://projects.gnome.org/" +"NetworkManager)." +msgstr "" +"Dette programmet er ein komponent av NetworkManager http://projects.gnome." +"org/NetworkManager)." #: ../src/main.c:76 -msgid "It is not intended for command-line interaction but instead runs in the GNOME desktop environment." -msgstr "Det er ikkje meint for å brukast gjennom kommandolinja, men heller å køyrast i GNOME-skrivebordsmiljøet." +msgid "" +"It is not intended for command-line interaction but instead runs in the " +"GNOME desktop environment." +msgstr "" +"Det er ikkje meint for å brukast gjennom kommandolinja, men heller å køyrast " +"i GNOME-skrivebordsmiljøet." #: ../src/mb-menu-item.c:57 msgid "EVDO" @@ -2520,13 +2600,11 @@ #: ../src/mb-menu-item.c:133 #, c-format -#| msgid "Wired Network (%s)" msgid "Home network (%s)" msgstr "Heimenettverk (%s)" #: ../src/mb-menu-item.c:135 #, c-format -#| msgid "More networks" msgid "Home network" msgstr "Heimenettverk" @@ -2538,49 +2616,53 @@ msgid "registration denied" msgstr "registrering nekta" -#: ../src/mb-menu-item.c:151 -#: ../src/mb-menu-item.c:157 +#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 #, c-format msgid "%s (%s roaming)" -msgstr "" +msgstr "%s (%s utanlands)" -#: ../src/mb-menu-item.c:153 -#: ../src/mb-menu-item.c:159 +#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 #, c-format msgid "%s (roaming)" -msgstr "" +msgstr "%s (utanlands)" #: ../src/mb-menu-item.c:162 -#, fuzzy, c-format +#, c-format #| msgid "Wired Network (%s)" msgid "Roaming network (%s)" -msgstr "Roaming-nettverk (%s)" +msgstr "Utanlandsk nettverk (%s)" #: ../src/mb-menu-item.c:164 -#, fuzzy, c-format +#, c-format #| msgid "More networks" msgid "Roaming network" -msgstr "Roaming-nettverk" +msgstr "Utanlandsk nettverk" #: ../src/utils/nmn-mobile-providers.c:531 msgid "Default" msgstr "Standard" -#: ../src/wired-dialog.c:91 -#: ../src/wired-dialog.c:99 -#| msgid "" -#| "The NetworkManager Applet could not find some required resources (the " -#| "glade file was not found)." -msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." -msgstr "NetworkManager-miniprogrammet fann ikkje alle nødvendige ressursar (fann ikkje .ui-fila)." +#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"NetworkManager-miniprogrammet fann ikkje alle nødvendige ressursar (fann " +"ikkje .ui-fila)." #: ../src/wireless-security/eap-method.c:279 msgid "No Certificate Authority certificate chosen" msgstr "Ingen sertifikatautoriserte sertifikat er valde" #: ../src/wireless-security/eap-method.c:280 -msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue wireless networks. Would you like to choose a Certificate Authority certificate?" -msgstr "Å ikkje bruka eit sertifikatautorisert sertifikat (CA) kan resultera i tilkoplingar til usikre og villeiande trådlause nettverk. Vil du velja eit sertifikatautorisert sertifikat?" +msgid "" +"Not using a Certificate Authority (CA) certificate can result in connections " +"to insecure, rogue wireless networks. Would you like to choose a " +"Certificate Authority certificate?" +msgstr "" +"Å ikkje bruka eit sertifikatautorisert sertifikat (CA) kan resultera i " +"tilkoplingar til usikre og villeiande trådlause nettverk. Vil du velja eit " +"sertifikatautorisert sertifikat?" #: ../src/wireless-security/eap-method.c:289 msgid "Choose CA Certificate" @@ -2594,50 +2676,89 @@ msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER- eller PEM-sertifikat (*.der, *.pem, *.crt, *cer)" -#: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:372 -msgid "MD5" -msgstr "MD5" +#: ../src/wireless-security/eap-method-fast.ui.h:2 +#| msgid "Anony_mous identity:" +msgid "Anonymous" +msgstr "Anonym" + +#: ../src/wireless-security/eap-method-fast.ui.h:3 +#| msgid "Authentication" +msgid "Authenticated" +msgstr "Autentisert" + +#: ../src/wireless-security/eap-method-fast.ui.h:4 +msgid "Both" +msgstr "Begge" + +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "Anony_m identitet:" + +#: ../src/wireless-security/eap-method-fast.ui.h:6 +msgid "PAC _file:" +msgstr "PAC-_fil:" +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-ttls.ui.h:4 +#| msgid "I_nner authentication:" +msgid "_Inner authentication:" +msgstr "I_ndre autentisering:" + +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "Tillat automatisk PAC-_tildeling" + +#: ../src/wireless-security/eap-method-fast.c:261 #: ../src/wireless-security/eap-method-peap.c:280 msgid "GTC" msgstr "GTC" +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Vel PAC-fil …" + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC-filer (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Alle filer" + +#: ../src/wireless-security/eap-method-peap.c:263 +#: ../src/wireless-security/wireless-security.c:382 +msgid "MD5" +msgstr "MD5" + #: ../src/wireless-security/eap-method-peap.c:350 #: ../src/wireless-security/eap-method-tls.c:416 #: ../src/wireless-security/eap-method-ttls.c:350 msgid "Choose a Certificate Authority certificate..." msgstr "Vel eit sertifikatautorisert sertifikat (CA) …" -#: ../src/wireless-security/eap-method-peap.ui.h:2 -#: ../src/wireless-security/eap-method-ttls.ui.h:2 -msgid "Anony_mous identity:" -msgstr "Anony_m identitet:" - -#: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:3 -msgid "C_A certificate:" -msgstr "C_A-sertifikat:" - -#: ../src/wireless-security/eap-method-peap.ui.h:5 -#: ../src/wireless-security/eap-method-ttls.ui.h:4 -msgid "I_nner authentication:" -msgstr "I_ntern autentisering:" - -#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-peap.ui.h:3 msgid "Version 0" msgstr "Versjon 0" -#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:4 msgid "Version 1" msgstr "Versjon 1" +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-ttls.ui.h:3 +msgid "C_A certificate:" +msgstr "C_A-sertifikat:" + #: ../src/wireless-security/eap-method-peap.ui.h:8 -msgid "_PEAP version:" -msgstr "_PEAP-versjon:" +#| msgid "_PEAP version:" +msgid "PEAP _version:" +msgstr "PEAP-_versjon:" -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "S_pør etter dette passordet kvar gong" @@ -2647,11 +2768,15 @@ #: ../src/wireless-security/eap-method-tls.c:249 msgid "" -"The selected private key does not appear to be protected by a password. This could allow your security credentials to be compromised. Please select a password-protected private key.\n" +"The selected private key does not appear to be protected by a password. " +"This could allow your security credentials to be compromised. Please select " +"a password-protected private key.\n" "\n" "(You can password-protect your private key with openssl)" msgstr "" -"Det ser ikkje ut til at den valte private nøkkelen er verna av eit passord. Dette kan føra til at dine tyggleiksakkreditiva til å koma på avvege. Vel eit passordverna privat nøkkel.\n" +"Det ser ikkje ut til at den valde private nøkkelen er verna av eit passord. " +"Dette kan føra til at dine tyggleiksakkreditiva kan koma på avvege. Vel " +"eit passordverna privat nøkkel.\n" "\n" "(Du kan passordverna din private nøkkel med OpenSSL)" @@ -2663,11 +2788,15 @@ msgid "Choose your private key..." msgstr "Vel din private nøkkel …" -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "I_dentitet:" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "Br_ukarsertifikat:" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "Privat nø_kkel:" @@ -2675,10 +2804,6 @@ msgid "_Private key password:" msgstr "_Passord for privat nøkkel:" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "Br_ukarsertifikat:" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "Ikkje _åtvar meg igjen" @@ -2691,68 +2816,64 @@ msgid "Yes" msgstr "Ja" -#: ../src/wireless-security/wireless-security.c:384 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:408 +#: ../src/wireless-security/wireless-security.c:418 +msgid "FAST" +msgstr "FAST" + +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" -msgstr "Tunnelert TLS (TTLS)" +msgstr "Tunnelert TLS" -#: ../src/wireless-security/wireless-security.c:419 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Verna EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 #: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 -msgid "_Authentication:" -msgstr "_Autentisering:" +#| msgid "_Authentication:" +msgid "Au_thentication:" +msgstr "Au_tentisering:" #: ../src/wireless-security/ws-wep-key.ui.h:1 -#| msgid "" -#| "1 (Default)\n" -#| "2\n" -#| "3\n" -#| "4" +msgid "Open System" +msgstr "Ope system" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "Delt nøkkel" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (Forval)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:5 -#| msgid "" -#| "Open System\n" -#| "Shared Key" -msgid "Open System" -msgstr "Ope system" - -#: ../src/wireless-security/ws-wep-key.ui.h:6 -#| msgid "" -#| "Open System\n" -#| "Shared Key" -msgid "Shared Key" -msgstr "Delt nøkkel" - #: ../src/wireless-security/ws-wep-key.ui.h:7 +msgid "_Key:" +msgstr "Nø_kkel:" + +#: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "_Vis nøkkel" -#: ../src/wireless-security/ws-wep-key.ui.h:8 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "WEP-indek_s:" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "Nø_kkel:" - +#~ msgid "_Security:" +#~ msgstr "Try_ggleik:" diff -Nru network-manager-applet-0.9.4.1/po/or.po network-manager-applet-0.9.6.2+git201210311320.2620/po/or.po --- network-manager-applet-0.9.4.1/po/or.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/or.po 2012-10-31 13:20:57.000000000 +0000 @@ -986,7 +986,7 @@ msgstr "ସଂଯୋଗ କରନ୍ତୁ (_o)" #: ../src/applet.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "ସଂଯୋଗ (_n):" #: ../src/applet.ui.h:5 @@ -1010,7 +1010,7 @@ msgstr "ଖୋଲନ୍ତୁ (_U)" #: ../src/applet.ui.h:10 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "ବେତାର ସୁରକ୍ଷା (_W):" #: ../src/applet.ui.h:11 @@ -1916,7 +1916,7 @@ msgstr "ଏହି ଯନ୍ତ୍ରର ସମସ୍ତ ଚାଳକମାନଙ୍କ ପାଇଁ ଏହି ସଂଯୋଗକୁ ସଂରକ୍ଷଣ କରିବା ପାଇଁ ବୈଧିକରଣ କରନ୍ତୁ।" #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "ସମସ୍ତ ଚାଳକ ମାନଙ୍କ ପାଇଁ ଉପଲବ୍ଧ" #: ../src/connection-editor/nm-connection-editor.ui.h:2 diff -Nru network-manager-applet-0.9.4.1/po/pa.po network-manager-applet-0.9.6.2+git201210311320.2620/po/pa.po --- network-manager-applet-0.9.4.1/po/pa.po 2012-03-15 20:11:25.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/pa.po 2012-10-31 13:20:57.000000000 +0000 @@ -8,16 +8,16 @@ "Project-Id-Version: NetworkManager.HEAD\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-09 22:26+0000\n" -"PO-Revision-Date: 2012-03-15 07:17+0530\n" +"POT-Creation-Date: 2012-08-20 16:44+0000\n" +"PO-Revision-Date: 2012-08-21 07:45+0530\n" "Last-Translator: A S Alam \n" "Language-Team: Punjabi/Panjabi \n" +"Language: pa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pa\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 1.2\n" +"X-Generator: Lokalize 1.4\n" #: ../nm-applet.desktop.in.h:1 msgid "Network" @@ -27,425 +27,799 @@ msgid "Manage your network connections" msgstr "ਆਪਣੇ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨਾਂ ਦਾ ਪਰਬੰਧ ਕਰੋ" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "ਆਪਣੀ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਸੈਟਿੰਗ ਦਾ ਪਰਬੰਧ ਕਰੋ ਅਤੇ ਬਦਲੋ" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "ਕੁਨੈਕਟ ਹੋਣ ਲਈ ਨੋਟੀਫਿਕੇਸ਼ਨ ਆਯੋਗ ਕਰੋ" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" "ਜੇ ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਹੋਣ ਦੇ ਦੌਰਾਨ ਸੂਚਨਾਵਾਂ ਨੂੰ ਆਯੋਗ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਸੱਚ " "ਸੈਟ ਕਰੋ।" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਹੋਣ ਲਈ ਨੋਟੀਫਿਕੇਸ਼ਨ ਆਯੋਗ ਕਰੋ" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "" "ਜੇ ਨੈੱਟਵਰਕ ਨਾਲ ਡਿਸ-ਕੁਨੈਕਟ ਹੋਣ ਦੇ ਦੌਰਾਨ ਸੂਚਨਾਵਾਂ ਨੂੰ ਆਯੋਗ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ " "ਸੱਚ ਸੈਟ ਕਰੋ।" -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "VPN ਨੋਟੀਫਿਕੇਸ਼ਨ ਬੰਦ ਕਰੋ" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"ਜੇ VPN ਨਾਲ ਕੁਨੈਕਟ ਹੋਣ ਜਾਂ ਡਿਸ-ਕੁਨੈਕਟ ਹੋਣ ਦੇ ਦੌਰਾਨ ਸੂਚਨਾਵਾਂ ਨੂੰ ਆਯੋਗ ਕਰਨਾ " +"ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਸੱਚ " +"(ture) ਸੈਟ ਕਰੋ।" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "ਨੈੱਟਵਰਕ ਉਪਲੱਬਧਤਾ ਸੂਚਨਾ ਨਾ ਦਿਓ" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when Wi-Fi networks are available." msgstr "" -"ਜੇ ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਉਪਲੱਬਧ ਹੋਣ ਦੇ ਦੌਰਾਨ ਸੂਚਨਾਵਾਂ ਨੂੰ ਆਯੋਗ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ " +"ਜੇ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਉਪਲੱਬਧ ਹੋਣ ਦੇ ਦੌਰਾਨ ਸੂਚਨਾਵਾਂ ਨੂੰ ਆਯੋਗ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ " "ਸੱਚ ਸੈਟ ਕਰੋ।" -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "ਸਟੈਂਪ" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "ਪਤਾ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਕਿ ਸੈਟਿੰਗ ਨਵੇਂ ਵਰਜਨ ਲਈ ਮਾਈਗਰੇਟ ਕਰਨੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ।" -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "ਵਾਈ-ਫਾਈ ਬਣਾਉਣਾ ਆਯੋਗ ਕਰੋ" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" "ਜਦੋਂ ਐਪਲਿਟ ਵਰਤਣ ਦੌਰਾਨ ਐਡ-ਹਾਕ ਨੈੱਟਵਰਕ ਬਣਾਉਣ ਨੂੰ ਆਯੋਗ ਕਰਨ ਲਈ ਸਹੀਂ ਸੈੱਟ ਕਰੋ।" -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "CA ਸਰਟੀਫਿਕੇਟ ਅਣਡਿੱਠਾ" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "ਆਪਣੀ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਸੈਟਿੰਗ ਦਾ ਪਰਬੰਧ ਕਰੋ ਅਤੇ ਬਦਲੋ" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"ਇਸ ਨੂੰ ਸੱਚ (ture) ਕਰੋ, ਜੇ EAP ਪਰਮਾਣਕਿਤਾ ਵਿੱਚ CA ਸਰਟੀਫਿਕੇਟ ਬਾਰੇ ਚੇਤਾਵਨੀਆਂ " +"ਬੰਦ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ।" -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "ਉਪਲੱਬਧ" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"ਇਸ ਨੂੰ ਸੱਚ (ture) ਕਰੋ, ਜੇ EAP ਪਰਮਾਣਕਿਤਾ ਦੇ ਦੂਜੇ ਪੜਾਅ ਵਿੱਚ CA ਸਰਟੀਫਿਕੇਟ ਬਾਰੇ " +"ਚੇਤਾਵਨੀਆਂ " +"ਬੰਦ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ।" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "ਹੁਣ ਤੁਸੀਂ '%s' ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਗਏ ਹੋ।" +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "802.1X ਪਰਮਾਣਕਿਤਾ" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "ਕੁਨੈਕਸ਼ਨ ਬਣਾਇਆ ਗਿਆ" +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "ਨੈੱਟਵਰਕ ਨਾਂ(_N):" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "ਹੁਣ ਤੁਸੀਂ ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਗਏ ਹੋ।" +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "ਕੁਨੈਕਸ਼ਨ ਜੋੜਨ/ਐਕਟੀਵੇਟ ਕਰਨ ਲਈ ਫੇਲ੍ਹ" + +#: ../src/applet.c:514 ../src/applet.c:558 ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "ਅਣਜਾਣ ਗਲਤੀ" + +#: ../src/applet.c:517 ../src/applet.c:587 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "ਕੁਨੈਕਸ਼ਨ ਫੇਲ੍ਹ" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "ਜੰਤਰ ਡਿਸ-ਕੁਨੈਕਟ ਫੇਲ੍ਹ ਹੈ" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਫੇਲ੍ਹ ਹੈ" + +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "ਕੁਨੈਕਸ਼ਨ ਸਰਗਰਮ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ" + +#: ../src/applet.c:948 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "ਇਹ ਸੁਨੇਹਾ ਮੁੜ ਨਾ ਵੇਖਾਓ" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:1037 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਤਿਆਰ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..." +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਵਿਚੇ ਰੋਕਿਆ ਗਿਆ।" -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1040 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ '%s' ਸੰਰਚਨਾ ਜਾਰੀ..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ VPN ਸਰਵਿਸ ਅਚਾਨਕ ਰੁਕ ਗਈ।" -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1043 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਯੂਜ਼ਰ ਪਰਮਾਣਕਿਤਾ ਲਾਜ਼ਮੀ" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ VPN ਸਰਵਿਸ ਨੇ ਅਢੁੱਕਵੀਂ ਸੰਰਚਨਾ ਦਿੱਤੀ।" -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:1046 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "'%s' ਲਈ ਨੈੱਟਵਰਕ ਐਡਰੈੱਸ ਦੀ ਮੰਗ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..." +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ ਕੁਨੈਕਸ਼ਨ ਕੋਸ਼ਿਸ਼ ਲਈ ਸਮਾਂ ਸਮਾਪਤ ਹੋਇਆ।" -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1049 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ VPN ਸਰਵਿਸ ਸਮੇਂ ਸਿਰ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਈ।" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1052 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ VPN ਸਰਵਿਸ ਸ਼ੁਰੂ ਹੋਣ ਲਈ ਫੇਲ੍ਹ ਹੋਈ।" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet.c:1055 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ ਕੋਈ ਢੁੱਕਵੇਂ VPN ਸੀਕਰਟ ਨਹੀਂ ਸਨ" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 -msgid "Mobile Broadband" -msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ" +#: ../src/applet.c:1058 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ ਅਢੁੱਕਵੇਂ VPN ਸੀਕਰਟ ਸਨ।" -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "...ਨਵਾਂ ਆਟੋ ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ (CDMA) ਕੁਨੈਕਸ਼ਨ" +#: ../src/applet.c:1065 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ।" -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "ਹੁਣ ਤੁਸੀਂ CDMA ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਗਏ ਹੋ।" +#: ../src/applet.c:1083 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਡਿਸ-ਕੁਨੈਕਟ ਹੋਇਆ, ਕਿਉਂਕਿ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਰੁਕ ਗਿਆ।" -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1086 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਡਿਸ-ਕੁਨੈਕਟ ਹੋਇਆ, ਕਿਉਂਕਿ VPN ਸਰਵਿਸ ਰੁਕ ਗਈ।" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "ਰੋਮਿੰਗ" +#: ../src/applet.c:1092 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਡਿਸ-ਕੁਨੈਕਟ ਹੋਇਆ।" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "CDMA ਨੈੱਟਵਰਕ।" +#: ../src/applet.c:1122 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN ਕੁਨੈਕਸ਼ਨ ਠੀਕ ਤਰ੍ਹਾਂ ਬਣਾਇਆ ਗਿਆ ਹੈ।\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "ਹੁਣ ਤੁਸੀਂ ਘਰ ਨੈੱਟਵਰਕ ਨਾਲ ਰਜਿਸਟਰ ਹੋ ਚੁੱਕੇ ਹੋ।" +#: ../src/applet.c:1124 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN ਕੁਨੈਕਸ਼ਨ ਠੀਕ ਤਰ੍ਹਾਂ ਬਣਾਇਆ ਗਿਆ ਹੈ।\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "ਹੁਣ ਤੁਸੀਂ ਰੋਮਿੰਗ (roaming) ਨੈੱਟਵਰਕ ਨਾਲ ਰਜਿਸਟਰ ਹੋ ਗਏ ਹੋ।" +#: ../src/applet.c:1126 +msgid "VPN Login Message" +msgstr "VPN ਲਾਗਇਨ ਸੁਨੇਹਾ" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1132 ../src/applet.c:1140 ../src/applet.c:1190 +msgid "VPN Connection Failed" +msgstr "VPN ਕੁਨੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੋਇਆ" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "...ਨਵਾਂ ਆਟੋ ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ (GSM) ਕੁਨੈਕਸ਼ਨ" +#: ../src/applet.c:1197 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ VPN ਸ਼ੁਰੂ ਹੋਣ ਲਈ ਫੇਲ੍ਹ ਹੋਈ।\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "ਹੁਣ ਤੁਸੀਂ GSM ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਗਏ ਹੋ।" +#: ../src/applet.c:1200 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਸ਼ੁਰੂ ਹੋਣ ਲਈ ਫੇਲ੍ਹ ਹੈ।\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "PIN ਕੋਡ ਲੋੜੀਦਾ ਹੈ" +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "ਜੰਤਰ ਤਿਆਰ ਨਹੀਂ ਹੈ (ਫਿਰਮਵੇਅਰ ਗੁੰਮ ਹੈ)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਜੰਤਰ ਲਈ PIN ਕੋਡ ਚਾਹੀਦਾ ਹੈ" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "ਜੰਤਰ ਤਿਆਰ ਨਹੀਂ ਹੈ" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "SIM ਕਾਰਡ '%s' '%s' ਉੱਤੇ ਲਈ ਪਿੰਨ ਕੋਡ" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਹੈ" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "ਗਲਤ ਪਿੰਨ ਕੋਡ; ਆਪਣੇ ਪਰੋਵਾਇਡਰ ਨਾਲ ਸੰਪਰਕ ਕਰੋ ਜੀ।" +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਕਰੋ" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "ਗਲਤ PUK ਕੋਡ; ਆਪਣੇ ਪਰੋਵਾਇਡਰ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।" +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "ਜੰਤਰ ਪਰਬੰਧ ਅਧੀਨ ਨਹੀਂ ਹੈ" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "...ਅਣ-ਲਾਕ ਕੋਡ ਭੇਜਿਆ ਜਾ ਰਿਹਾ ਹੈ" +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "ਕੋਈ ਨੈੱਟਵਰਕ ਜੰਤਰ ਨਹੀਂ ਉਪਲੱਬਧ ਹੈ" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "ਸਿਮ PIN ਅਣ-ਲਾਕ ਲੋੜੀਦਾ ਹੈ" +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "_VPN ਕੁਨੈਕਸ਼ਨ" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "ਸਿਮ PIN ਅਣ-ਲਾਕ ਲੋੜੀਦਾ ਹੈ" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "VPN ਸੰਰਚਨਾ(_C)..." -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "" -"ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਜੰਤਰ '%s' ਲਈ ਸਿਮ PIN ਕੋਡ ਇਸ ਨੂੰ ਵਰਤਣ ਤੋਂ ਪਹਿਲਾਂ ਚਾਹੀਦਾ ਹੈ।" +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "VPN ਡਿਸ-ਕੁਨੈਕਟ ਕਰੋ(_D)" -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "PIN ਕੋਡ:" +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "ਨੈੱਟਵਰਕਮੈਨੇਜਰ ਚੱਲ ਨਹੀਂ ਰਿਹਾ ਹੈ..." -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "ਪਿੰਨ ਕੋਡ ਵੇਖੋ" +#: ../src/applet.c:1854 ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "ਨੈੱਟਵਰਕਮੈਨੇਜਰ ਆਯੋਗ ਹੈ" -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "ਸਿਮ PUK ਅਣ-ਲਾਕ ਲੋੜੀਦਾ ਹੈ" +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "ਨੈੱਟਵਰਕਿੰਗ ਚਾਲੂ(_N)" -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "ਸਿਮ PUK ਅਣ-ਲਾਕ ਲੋੜੀਦਾ ਹੈ" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +msgid "Enable _Wi-Fi" +msgstr "ਵਾਈ-ਫਾਈ ਚਾਲੂ(_W)" -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਚਾਲੂ(_M)" + +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "WiMA_X ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਚਾਲੂ" + +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "ਨੋਟੀਫਿਕੇਸ਼ਨ ਦਿਓ(_o)" + +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "ਕੁਨੈਕਸ਼ਨ ਜਾਣਕਾਰੀ(_I)" + +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "...ਕੁਨੈਕਸ਼ਨ ਸੋਧ" + +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "ਮੱਦਦ(_H)" + +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "ਇਸ ਬਾਰੇ(_A)" + +#: ../src/applet.c:2335 +msgid "Disconnected" +msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਹੈ" + +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਡਿਸ-ਕੁਨੈਕਟ ਹੈ।" + +#: ../src/applet.c:2519 #, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "" -"ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਜੰਤਰ '%s' ਲਈ ਸਿਮ PUK ਕੋਡ ਇਸ ਨੂੰ ਵਰਤਣ ਤੋਂ ਪਹਿਲਾਂ ਚਾਹੀਦਾ ਹੈ।" +msgid "Preparing network connection '%s'..." +msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਤਿਆਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..." -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "PUK ਕੋਡ:" +#: ../src/applet.c:2522 +#, c-format +msgid "User authentication required for network connection '%s'..." +msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਯੂਜ਼ਰ ਪਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ ਹੈ..." -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "ਨਵਾਂ ਪਿੰਨ ਕੋਡ:" +#: ../src/applet.c:2525 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 +#, c-format +msgid "Requesting a network address for '%s'..." +msgstr "'%s' ਲਈ ਨੈੱਟਵਰਕ ਐਡਰੈੱਸ ਦੀ ਮੰਗ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..." -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "ਨਵਾਂ ਪਿੰਨ ਕੋਡ ਫੇਰ ਦਿਓ:" +#: ../src/applet.c:2528 +#, c-format +msgid "Network connection '%s' active" +msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "PIN/PUK ਕੋਡ ਵੇਖੋ" +#: ../src/applet.c:2611 +#, c-format +msgid "Starting VPN connection '%s'..." +msgstr "VPN ਕੁਨੈਕਸ਼ਨ '%s' ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..." -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "GSM ਨੈੱਟਵਰਕ।" +#: ../src/applet.c:2614 +#, c-format +msgid "User authentication required for VPN connection '%s'..." +msgstr "VPN ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਯੂਜ਼ਰ ਪਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ ਹੈ..." + +#: ../src/applet.c:2617 +#, c-format +msgid "Requesting a VPN address for '%s'..." +msgstr "'%s' ਲਈ VPN ਐਡਰੈੱਸ ਦੀ ਮੰਗ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..." + +#: ../src/applet.c:2620 +#, c-format +msgid "VPN connection '%s' active" +msgstr "VPN ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ ਹੈ" + +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "ਕੋਈ ਨੈਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਨਹੀਂ" + +#: ../src/applet.c:3361 +msgid "NetworkManager Applet" +msgstr "ਨੈੱਟਵਰਕਮੈਨੇਜਰ ਐਪਲਿਟ" + +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "ਉਪਲੱਬਧ" + +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "ਹੁਣ ਤੁਸੀਂ '%s' ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਗਏ ਹੋ।" + +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "ਕੁਨੈਕਸ਼ਨ ਬਣਾਇਆ ਗਿਆ" + +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "ਹੁਣ ਤੁਸੀਂ ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਗਏ ਹੋ।" + +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 +#, c-format +msgid "Preparing mobile broadband connection '%s'..." +msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਤਿਆਰ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..." + +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 +#, c-format +msgid "Configuring mobile broadband connection '%s'..." +msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ '%s' ਸੰਰਚਨਾ ਜਾਰੀ..." + +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 +#, c-format +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਯੂਜ਼ਰ ਪਰਮਾਣਕਿਤਾ ਲਾਜ਼ਮੀ" + +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 +#, c-format +msgid "Mobile broadband connection '%s' active" +msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ" + +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:700 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" + +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 +#, c-format +msgid "Mobile Broadband (%s)" +msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ (%s)" + +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:87 +#: ../src/connection-editor/page-mobile.c:380 +msgid "Mobile Broadband" +msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ" + +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "...ਨਵਾਂ ਆਟੋ ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ (CDMA) ਕੁਨੈਕਸ਼ਨ" + +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "ਹੁਣ ਤੁਸੀਂ CDMA ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਗਏ ਹੋ।" + +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ: (%d%%%s%s)" + +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "ਰੋਮਿੰਗ" + +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "CDMA ਨੈੱਟਵਰਕ।" + +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "ਹੁਣ ਤੁਸੀਂ ਘਰ ਨੈੱਟਵਰਕ ਨਾਲ ਰਜਿਸਟਰ ਹੋ ਚੁੱਕੇ ਹੋ।" -#: ../src/applet-device-wired.c:62 +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "ਹੁਣ ਤੁਸੀਂ ਰੋਮਿੰਗ (roaming) ਨੈੱਟਵਰਕ ਨਾਲ ਰਜਿਸਟਰ ਹੋ ਗਏ ਹੋ।" + +#: ../src/applet-device-ethernet.c:62 msgid "Auto Ethernet" msgstr "ਆਟੋ ਈਥਰਨੈੱਟ" -#: ../src/applet-device-wired.c:205 +#: ../src/applet-device-ethernet.c:205 #, c-format -msgid "Wired Networks (%s)" -msgstr "ਤਾਰ ਨੈੱਟਵਰਕ (%s)" +msgid "Ethernet Networks (%s)" +msgstr "ਈਥਰਨੈੱਟ ਨੈੱਟਵਰਕ (%s)" -#: ../src/applet-device-wired.c:207 +#: ../src/applet-device-ethernet.c:207 #, c-format -msgid "Wired Network (%s)" -msgstr "ਤਾਰ ਨੈੱਟਵਰਕ (%s)" - -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "ਤਾਰ ਨੈੱਟਵਰਕ" +msgid "Ethernet Network (%s)" +msgstr "ਈਥਰਨੈੱਟ ਨੈੱਟਵਰਕ (%s)" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "ਤਾਰ ਨੈੱਟਵਰਕ" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "ਈਥਰਨੈੱਟ ਨੈੱਟਵਰਕ" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 -msgid "disconnected" -msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਹੈ" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "ਈਥਰਨੈੱਟ ਨੈੱਟਵਰਕ" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "ਹੁਣ ਤੁਸੀਂ ਤਾਰ ਵਾਲੇ ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਗਏ ਹੋ।" +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "ਹੁਣ ਤੁਸੀਂ ਈਥਰਨੈੱਟ ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਗਏ ਹੋ।" -#: ../src/applet-device-wired.c:300 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "ਤਾਰ ਵਾਲੇ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਤਿਆਰੀ ਜਾਰੀ..." +msgid "Preparing ethernet network connection '%s'..." +msgstr "ਈਥਰਨੈੱਟ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਤਿਆਰੀ..." -#: ../src/applet-device-wired.c:303 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "ਤਾਰ ਵਾਲੇ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਨਾਲ ਸੰਰਚਨਾ ਜਾਰੀ..." +msgid "Configuring ethernet network connection '%s'..." +msgstr "ਈਥਰਨੈੱਟ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਨਾਲ ਸੰਰਚਨਾ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..." -#: ../src/applet-device-wired.c:306 +#: ../src/applet-device-ethernet.c:306 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "ਤਾਰ ਵਾਲੇ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਯੂਜ਼ਰ ਪਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ ਹੈ..." +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "ਈਥਰਨੈੱਟ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਯੂਜ਼ਰ ਪਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ ਹੈ..." -#: ../src/applet-device-wired.c:309 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "'%s' ਲਈ ਤਾਰ ਵਾਲੇ ਨੈੱਟਵਰਕ ਐਡਰੈੱਸ ਦੀ ਮੰਗ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..." +msgid "Requesting an ethernet network address for '%s'..." +msgstr "'%s' ਲਈ ਈਥਰਨੈੱਟ ਨੈੱਟਵਰਕ ਐਡਰੈੱਸ ਦੀ ਮੰਗ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..." -#: ../src/applet-device-wired.c:313 +#: ../src/applet-device-ethernet.c:313 #, c-format -msgid "Wired network connection '%s' active" -msgstr "ਤਾਰ ਵਾਲਾ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ" +msgid "Ethernet network connection '%s' active" +msgstr "ਈਥਰਨੈੱਟ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ" -#: ../src/applet-device-wired.c:494 +#: ../src/applet-device-ethernet.c:494 msgid "DSL authentication" msgstr "DSL ਪਰਮਾਣਕਿਤਾ" +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:703 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" + +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "...ਨਵਾਂ ਆਟੋ ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ (GSM) ਕੁਨੈਕਸ਼ਨ" + +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "ਹੁਣ ਤੁਸੀਂ GSM ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਗਏ ਹੋ।" + +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "PIN ਕੋਡ ਲੋੜੀਦਾ ਹੈ" + +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਜੰਤਰ ਲਈ PIN ਕੋਡ ਚਾਹੀਦਾ ਹੈ" + +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "SIM ਕਾਰਡ '%s' '%s' ਉੱਤੇ ਲਈ ਪਿੰਨ ਕੋਡ" + +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "ਗਲਤ ਪਿੰਨ ਕੋਡ; ਆਪਣੇ ਪਰੋਵਾਇਡਰ ਨਾਲ ਸੰਪਰਕ ਕਰੋ ਜੀ।" + +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "ਗਲਤ PUK ਕੋਡ; ਆਪਣੇ ਪਰੋਵਾਇਡਰ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।" + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "...ਅਣ-ਲਾਕ ਕੋਡ ਭੇਜਿਆ ਜਾ ਰਿਹਾ ਹੈ" + +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "ਸਿਮ PIN ਅਣ-ਲਾਕ ਲੋੜੀਦਾ ਹੈ" + +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "ਸਿਮ PIN ਅਣ-ਲਾਕ ਲੋੜੀਦਾ ਹੈ" + +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "" +"ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਜੰਤਰ '%s' ਲਈ ਸਿਮ PIN ਕੋਡ ਇਸ ਨੂੰ ਵਰਤਣ ਤੋਂ ਪਹਿਲਾਂ ਚਾਹੀਦਾ ਹੈ।" + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "PIN ਕੋਡ:" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "ਪਿੰਨ ਕੋਡ ਵੇਖੋ" + +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "ਸਿਮ PUK ਅਣ-ਲਾਕ ਲੋੜੀਦਾ ਹੈ" + +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "ਸਿਮ PUK ਅਣ-ਲਾਕ ਲੋੜੀਦਾ ਹੈ" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "" +"ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਜੰਤਰ '%s' ਲਈ ਸਿਮ PUK ਕੋਡ ਇਸ ਨੂੰ ਵਰਤਣ ਤੋਂ ਪਹਿਲਾਂ ਚਾਹੀਦਾ ਹੈ।" + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "PUK ਕੋਡ:" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "ਨਵਾਂ ਪਿੰਨ ਕੋਡ:" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "ਨਵਾਂ ਪਿੰਨ ਕੋਡ ਫੇਰ ਦਿਓ:" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "PIN/PUK ਕੋਡ ਵੇਖੋ" + +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "GSM ਨੈੱਟਵਰਕ।" + #: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "...ਲੁਕਵੇਂ ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਕਰੋ(_C)" +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "...ਲੁਕਵੇਂ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਕਰੋ(_C)" -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "....ਨਵਾਂ ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਬਣਾਓ(_N)" +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "....ਨਵਾਂ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਬਣਾਓ(_N)" -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(ਕੋਈ ਨਹੀਂ)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format -msgid "Wireless Networks (%s)" -msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ (%s)" +msgid "Wi-Fi Networks (%s)" +msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format -msgid "Wireless Network (%s)" -msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ (%s)" +msgid "Wi-Fi Network (%s)" +msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ (%s)" -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "ਬੇਤਾਰ ਨੈੱਟਵਰਕ" -msgstr[1] "ਬੇਤਾਰ ਨੈੱਟਵਰਕ" +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ" +msgstr[1] "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ" -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "ਬੇਤਾਰ ਬੰਦ ਹੈ" +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "ਵਾਈ-ਫਾਈ ਬੰਦ ਹੈ" -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "ਬੇਤਾਰ ਨੂੰ ਹਾਰਡਵੇਅਰ ਸਵਿੱਚ ਰਾਹੀਂ ਬੰਦ ਕੀਤਾ ਹੋਇਆ ਹੈ" +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "ਵਾਈ-ਫਾਈ ਨੂੰ ਹਾਰਡਵੇਅਰ ਸਵਿੱਚ ਰਾਹੀਂ ਬੰਦ ਕੀਤਾ ਹੈ" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "ਹੋਰ ਨੈੱਟਵਰਕ" -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" -msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਉਪਲੱਬਧ ਹੈ" - -#: ../src/applet-device-wifi.c:1082 -msgid "Use the network menu to connect to a wireless network" -msgstr "ਨੈੱਟਵਰਕ ਮੇਨੂ ਨੂੰ ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਲਈ ਵਰਤੋਂ" +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਉਪਲੱਬਧ ਹੈ" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 -msgid "Don't show this message again" -msgstr "ਇਹ ਸੁਨੇਹਾ ਮੁੜ ਨਾ ਵੇਖਾਓ" +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "ਨੈੱਟਵਰਕ ਮੇਨੂ ਨੂੰ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਲਈ ਵਰਤੋਂ" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1263 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "ਹੁਣ ਤੁਸੀਂ ਬੇਤਾਰ ਨੈੱਟਵਰਕ '%s' ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਗਏ ਹੋ।" +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "ਹੁਣ ਤੁਸੀਂ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ '%s' ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਗਏ ਹੋ।" -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1294 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਤਿਆਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..." +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਤਿਆਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1297 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਦੀ ਸੰਰਚਨਾ ਜਾਰੀ..." +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਨਾਲ ਸੰਰਚਨਾ ਜਾਰੀ..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1300 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ '%s' ਲਈ ਯੂਜ਼ਰ ਪਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ ਹੈ..." +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ '%s' ਲਈ ਯੂਜ਼ਰ ਪਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ ਹੈ..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1303 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "'%s' ਲਈ ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਐਡਰੈੱਸ ਲਈ ਮੰਗ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..." +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "'%s' ਲਈ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਐਡਰੈੱਸ ਦੀ ਮੰਗ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1324 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ: '%s' (%d%%)" +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਸਰਗਰਮ: '%s' (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1329 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ" +msgid "Wi-Fi network connection '%s' active" +msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਸਰਗਰਮ" + +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "ਕੁਨੈਕਸ਼ਨ ਸਰਗਰਮ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "ਨਵਾਂ ਕੁਨੈਕਸ਼ਨ ਜੋੜਨ ਲਈ ਫੇਲ੍ਹ ਹੈ" #: ../src/applet-device-wimax.c:231 #, c-format @@ -473,9 +847,9 @@ msgstr "ਕੁਨੈਕਸ਼ਨ ਜਾਣਕਾਰੀ ਵੇਖਾਉਣ ਲਈ ਗਲਤੀ:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -483,196 +857,194 @@ msgid "Dynamic WEP" msgstr "ਡਾਇਨੇਮਕ WEP" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 msgctxt "Wifi/wired security" msgid "None" msgstr "ਕੋਈ ਨਹੀਂ" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-dialogs.c:277 #, c-format -#| msgid "1 (Default)" msgid "%s (default)" msgstr "%s (ਡਿਫਾਲਟ)" -#: ../src/applet-dialogs.c:347 ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:349 ../src/applet-dialogs.c:487 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "ਅਣਜਾਣ" -#: ../src/applet-dialogs.c:362 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:364 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "ਅਣਜਾਣ" -#: ../src/applet-dialogs.c:376 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "ਅਣਜਾਣ" -#: ../src/applet-dialogs.c:411 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "ਈਥਰਨੈੱਟ (%s)" -#: ../src/applet-dialogs.c:414 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:421 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:423 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:427 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:433 ../src/applet-dialogs.c:792 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "ਸਧਾਰਨ" -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "ਇੰਟਰਫੇਸ:" -#: ../src/applet-dialogs.c:453 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "ਹਾਰਡਵੇਅਰ ਐਡਰੈੱਸ:" #. Driver -#: ../src/applet-dialogs.c:461 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "ਡਰਾਇਵਰ:" -#: ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "ਸਪੀਡ:" -#: ../src/applet-dialogs.c:500 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "ਸੁਰੱਖਿਆ:" -#: ../src/applet-dialogs.c:513 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:526 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:543 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:554 ../src/applet-dialogs.c:661 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP ਐਡਰੈੱਸ:" -#: ../src/applet-dialogs.c:556 ../src/applet-dialogs.c:572 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "ਅਣਜਾਣ" -#: ../src/applet-dialogs.c:570 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "ਬਰਾਡਕਾਸਟ ਐਡਰੈੱਸ:" #. Prefix -#: ../src/applet-dialogs.c:579 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "ਸਬਨੈੱਟ ਮਾਸਕ:" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "ਅਣਜਾਣ" -#: ../src/applet-dialogs.c:589 ../src/applet-dialogs.c:676 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "ਡਿਫਾਲਟ ਰੂਟ:" -#: ../src/applet-dialogs.c:601 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "ਪ੍ਰਾਇਮਰੀ DNS:" -#: ../src/applet-dialogs.c:610 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "ਸੈਕੰਡਰੀ DNS:" -#: ../src/applet-dialogs.c:620 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "ਤ੍ਰਿਨਰੀ DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:635 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:644 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "ਅਣਡਿੱਠਾ" -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "VPN ਕਿਸਮ:" -#: ../src/applet-dialogs.c:804 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "VPN ਗੇਟਵੇ:" -#: ../src/applet-dialogs.c:810 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "VPN ਯੂਜ਼ਰ ਨਾਂ:" -#: ../src/applet-dialogs.c:816 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "VPN ਬੈਨਰ:" -#: ../src/applet-dialogs.c:822 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "ਬੇਸ ਕੁਨੈਕਸ਼ਨ:" -#: ../src/applet-dialogs.c:824 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "ਅਣਜਾਣ" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "ਕੋਈ ਢੁੱਕਵਾਂ ਐਕਟਿਵ ਕੁਨੈਕਸ਼ਨ ਨਹੀਂ ਲੱਭਿਆ!" -#: ../src/applet-dialogs.c:940 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -682,346 +1054,33 @@ "Copyright © 2005-2008 Novell, Inc.\n" "ਅਤੇ ਕਈ ਹੋਰ ਕਮਿਊਨਟੀ ਯੋਗਦਾਨੀ ਅਤੇ ਅਨੁਵਾਦਕ" -#: ../src/applet-dialogs.c:943 +#: ../src/applet-dialogs.c:942 msgid "" "Notification area applet for managing your network devices and connections." msgstr "" "ਤੁਹਾਡੇ ਨੈਟਵਰਕ ਜੰਤਰਾਂ ਅਤੇ ਕੁਨੈਕਸ਼ਨਾਂ ਦੇ ਪਰਬੰਧ ਲਈ ਨੋਟੀਫਿਕੇਸ਼ਨ ਏਰੀਆ ਐਪਲਿਟ ਹੈ।" -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "ਨੈੱਟਵਰਕਮੈਨੇਜਰ ਵੈੱਬਸਾਈਟ" -#: ../src/applet-dialogs.c:960 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "ਗੁੰਮ ਸਰੋਤ" -#: ../src/applet-dialogs.c:985 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਨੈੱਟਵਰਕ ਪਾਸਵਰਡ" -#: ../src/applet-dialogs.c:994 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "'%s' ਨਾਲ ਕੁਨੈਕਟ ਹੋਣ ਲਈ ਪਾਸਵਰਡ ਦੀ ਲੋੜ ਹੈ। " -#: ../src/applet-dialogs.c:1013 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "ਪਾਸਵਰਡ:" -#: ../src/applet.c:995 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਵਿਚੇ ਰੋਕਿਆ ਗਿਆ।" - -#: ../src/applet.c:998 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ VPN ਸਰਵਿਸ ਅਚਾਨਕ ਰੁਕ ਗਈ।" - -#: ../src/applet.c:1001 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ VPN ਸਰਵਿਸ ਨੇ ਅਢੁੱਕਵੀਂ ਸੰਰਚਨਾ ਦਿੱਤੀ।" - -#: ../src/applet.c:1004 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ ਕੁਨੈਕਸ਼ਨ ਕੋਸ਼ਿਸ਼ ਲਈ ਸਮਾਂ ਸਮਾਪਤ ਹੋਇਆ।" - -#: ../src/applet.c:1007 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ VPN ਸਰਵਿਸ ਸਮੇਂ ਸਿਰ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਈ।" - -#: ../src/applet.c:1010 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ VPN ਸਰਵਿਸ ਸ਼ੁਰੂ ਹੋਣ ਲਈ ਫੇਲ੍ਹ ਹੋਈ।" - -#: ../src/applet.c:1013 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ ਕੋਈ ਢੁੱਕਵੇਂ VPN ਸੀਕਰਟ ਨਹੀਂ ਸਨ" - -#: ../src/applet.c:1016 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ ਅਢੁੱਕਵੇਂ VPN ਸੀਕਰਟ ਸਨ।" - -#: ../src/applet.c:1023 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ।" - -#: ../src/applet.c:1041 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਡਿਸ-ਕੁਨੈਕਟ ਹੋਇਆ, ਕਿਉਂਕਿ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਰੁਕ ਗਿਆ।" - -#: ../src/applet.c:1044 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਡਿਸ-ਕੁਨੈਕਟ ਹੋਇਆ, ਕਿਉਂਕਿ VPN ਸਰਵਿਸ ਰੁਕ ਗਈ।" - -#: ../src/applet.c:1050 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਡਿਸ-ਕੁਨੈਕਟ ਹੋਇਆ।" - -#: ../src/applet.c:1084 -msgid "VPN Login Message" -msgstr "VPN ਲਾਗਇਨ ਸੁਨੇਹਾ" - -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 -msgid "VPN Connection Failed" -msgstr "VPN ਕੁਨੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੋਇਆ" - -#: ../src/applet.c:1155 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਫੇਲ੍ਹ ਹੋਇਆ, ਕਿਉਂਕਿ VPN ਸ਼ੁਰੂ ਹੋਣ ਲਈ ਫੇਲ੍ਹ ਹੋਈ।\n" -"\n" -"%s" - -#: ../src/applet.c:1158 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"VPN ਕੁਨੈਕਸ਼ਨ '%s' ਸ਼ੁਰੂ ਹੋਣ ਲਈ ਫੇਲ੍ਹ ਹੈ।\n" -"\n" -"%s" - -#: ../src/applet.c:1478 -msgid "device not ready (firmware missing)" -msgstr "ਜੰਤਰ ਤਿਆਰ ਨਹੀਂ ਹੈ (ਫਿਰਮਵੇਅਰ ਗੁੰਮ ਹੈ)" - -#: ../src/applet.c:1480 -msgid "device not ready" -msgstr "ਜੰਤਰ ਤਿਆਰ ਨਹੀਂ ਹੈ" - -#: ../src/applet.c:1506 -msgid "Disconnect" -msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਕਰੋ" - -#: ../src/applet.c:1520 -msgid "device not managed" -msgstr "ਜੰਤਰ ਪਰਬੰਧ ਅਧੀਨ ਨਹੀਂ ਹੈ" - -#: ../src/applet.c:1564 -msgid "No network devices available" -msgstr "ਕੋਈ ਨੈੱਟਵਰਕ ਜੰਤਰ ਨਹੀਂ ਉਪਲੱਬਧ ਹੈ" - -#: ../src/applet.c:1652 -msgid "_VPN Connections" -msgstr "_VPN ਕੁਨੈਕਸ਼ਨ" - -#: ../src/applet.c:1709 -msgid "_Configure VPN..." -msgstr "VPN ਸੰਰਚਨਾ(_C)..." - -#: ../src/applet.c:1713 -msgid "_Disconnect VPN" -msgstr "VPN ਡਿਸ-ਕੁਨੈਕਟ ਕਰੋ(_D)" - -#: ../src/applet.c:1811 -msgid "NetworkManager is not running..." -msgstr "ਨੈੱਟਵਰਕਮੈਨੇਜਰ ਚੱਲ ਨਹੀਂ ਰਿਹਾ ਹੈ..." - -#: ../src/applet.c:1816 ../src/applet.c:2609 -msgid "Networking disabled" -msgstr "ਨੈੱਟਵਰਕਮੈਨੇਜਰ ਆਯੋਗ ਹੈ" - -#. 'Enable Networking' item -#: ../src/applet.c:2037 -msgid "Enable _Networking" -msgstr "ਨੈੱਟਵਰਕਿੰਗ ਚਾਲੂ(_N)" - -#. 'Enable Wireless' item -#: ../src/applet.c:2046 -msgid "Enable _Wireless" -msgstr "ਬੇਤਾਰ ਚਾਲੂ(_W)" - -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 -msgid "Enable _Mobile Broadband" -msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਚਾਲੂ(_M)" - -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "WiMA_X ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਚਾਲੂ" - -#. Toggle notifications item -#: ../src/applet.c:2075 -msgid "Enable N_otifications" -msgstr "ਨੋਟੀਫਿਕੇਸ਼ਨ ਦਿਓ(_o)" - -#. 'Connection Information' item -#: ../src/applet.c:2086 -msgid "Connection _Information" -msgstr "ਕੁਨੈਕਸ਼ਨ ਜਾਣਕਾਰੀ(_I)" - -#. 'Edit Connections...' item -#: ../src/applet.c:2096 -msgid "Edit Connections..." -msgstr "...ਕੁਨੈਕਸ਼ਨ ਸੋਧ" - -#. Help item -#: ../src/applet.c:2110 -msgid "_Help" -msgstr "ਮੱਦਦ(_H)" - -#. About item -#: ../src/applet.c:2119 -msgid "_About" -msgstr "ਇਸ ਬਾਰੇ(_A)" - -#: ../src/applet.c:2296 -msgid "Disconnected" -msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਹੈ" - -#: ../src/applet.c:2297 -msgid "The network connection has been disconnected." -msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਡਿਸ-ਕੁਨੈਕਟ ਹੈ।" - -#: ../src/applet.c:2478 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਤਿਆਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..." - -#: ../src/applet.c:2481 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਯੂਜ਼ਰ ਪਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ ਹੈ..." - -#: ../src/applet.c:2487 -#, c-format -msgid "Network connection '%s' active" -msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ" - -#: ../src/applet.c:2565 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "VPN ਕੁਨੈਕਸ਼ਨ '%s' ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..." - -#: ../src/applet.c:2568 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "VPN ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਯੂਜ਼ਰ ਪਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ ਹੈ..." - -#: ../src/applet.c:2571 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "'%s' ਲਈ VPN ਐਡਰੈੱਸ ਦੀ ਮੰਗ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..." - -#: ../src/applet.c:2574 -#, c-format -msgid "VPN connection '%s' active" -msgstr "VPN ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ ਹੈ" - -#: ../src/applet.c:2613 -msgid "No network connection" -msgstr "ਕੋਈ ਨੈਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਨਹੀਂ" - -#: ../src/applet.c:3263 -msgid "NetworkManager Applet" -msgstr "ਨੈੱਟਵਰਕਮੈਨੇਜਰ ਐਪਲਿਟ" - -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "ਇਹ ਜੰਤਰ ਆਟੋਮੈਟਿਕ ਅਣ-ਲਾਕ ਕਰੋ" - -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "ਅਣ-ਲਾਕ(_U)" - -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "ਕੁਨੈਕਸ਼ਨ ਜਾਣਕਾਰੀ" - -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "ਸਰਗਰਮ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ" - -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "ਤਾਰ 802.1X ਪਰਮਾਣਕਿਤਾ" - -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "ਨੈੱਟਵਰਕ ਨਾਂ(_N):" - -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "ਆਟੋਮੈਟਿਕ" - -#: ../src/connection-editor/ce-page.c:310 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "ਅਣਜਾਣੀ ਗਲਤੀ ਕਰਕੇ ਕੁਨੈਕਸ਼ਨ ਸੀਕਰਟ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ।" - #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 #: ../src/connection-editor/ce-page-ip4.ui.h:8 @@ -1053,6 +1112,143 @@ "ਜੇ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ ਇਹ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਕਦੇ ਵੀ ਡਿਫਾਲਟ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਵਜੋਂ " "ਨਹੀਂ ਵਰਤਿਆ ਜਾਵੇਗਾ।" +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "ਕੁਨੈਕਸ਼ਨ ਕਿਸਮ ਚੁਣੋ" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"ਕੁਨੈਕਸ਼ਨ ਦੀ ਕਿਸਮ ਚੁਣੋ, ਜੋ ਕਿ ਤੁਸੀਂ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ।\n" +"\n" +"ਜੇ ਤੁਸੀਂ VPN ਕੁਨੈਕਸ਼ਨ ਬਣਾ ਰਹੇ ਹੋ ਅਤੇ ਉਹ VPN ਕੁਨੈਕਸ਼ਨ ਕਿਸਮ ਲਿਸਟ ਵਿੱਚ ਨਾ ਹੋਵੇ ਤਾਂ " +"ਸ਼ਾਇਦ ਤੁਹਾਡੇ ਕੋਲ " +"ਢੁੱਕਵੀਂ VPN ਪਲੱਗਇਨ ਇੰਸਟਾਲ ਨਾ ਹੋਵੇ।" + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "ਬਣਾਓ..." + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "ਆਟੋਮੈਟਿਕ" + +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "ਅਣਜਾਣੀ ਗਲਤੀ ਕਰਕੇ ਕੁਨੈਕਸ਼ਨ ਸੀਕਰਟ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ।" + +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" +msgstr "ਰਾਊਂਡ ਰਾਬਿਨ" + +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" +msgstr "ਐਕਟਿਵ ਬੈਕਅੱਪ" + +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" +msgstr "XOR" + +#: ../src/connection-editor/ce-page-bond.ui.h:4 +#| msgid "Broadcast Address:" +msgid "Broadcast" +msgstr "ਬਰਾਡਕਾਸਟ" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "802.3ad" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" +msgstr "ਅਡੈਪਟਿਵ ਟਰਾਂਸਮਿਟ ਲੋਡ ਸੰਤੁਲਨ" + +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" +msgstr "ਅਡੈਪਟਿਵ ਲੋਡ ਸੰਤੁਲਨ" + +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "MII (ਸਿਫਾਰਸ਼ੀ)" + +#: ../src/connection-editor/ce-page-bond.ui.h:9 +#| msgid "EAP" +msgid "ARP" +msgstr "ARP" + +#: ../src/connection-editor/ce-page-bond.ui.h:10 +#| msgid "Base Connection:" +msgid "Bonded _connections:" +msgstr "ਬਾਊਂਡ ਕੀਤੇ ਕੁਨੈਕਸ਼ਨ(_c):" + +#: ../src/connection-editor/ce-page-bond.ui.h:11 +#| msgid "M_ode:" +msgid "_Mode:" +msgstr "ਮੋਡ(_M):" + +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "ਸੋਧ(_E)" + +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "ਹਟਾਓ(_D)" + +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "ਨਿਗਰਾਨੀ ਫਰੀਕਿਊਂਸੀ(_f):" + +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "ms" + +#: ../src/connection-editor/ce-page-bond.ui.h:16 +#| msgid "Interface:" +msgid "_Interface name:" +msgstr "ਇੰਟਰਫੇਸ ਨਾਂ(_i):" + +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "ਲਿੰਕ ਨਿਗਰਾਨੀ(_L):" + +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "ARP ਟਾਰਗੇਟ(_t):" + +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "" +"An IP address, or a comma-separated list of IP addresses, to look for when " +"checking the link status." +msgstr "" +"ਜਦੋਂ ਲਿੰਕ ਦੀ ਸਥਿਤੀ ਪਤਾ ਕਰਨੀ ਹੋਵੇ ਤਾਂ ਵੇਖਣ ਲਈ IP ਐਡਰੈਸ ਜਾਂ ਕਾਮਿਆਂ ਨਾਲ ਵੱਖ ਕੀਤੀ " +"IP ਐਡਰੈਸ " +"ਦੀ ਸੂਚੀ।" + +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "ਲਿੰਕ ਅੱਪ ਦੇਰੀ(_u):" + +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "ਲਿੰਕ ਡਾਊਨਲੋਡ ਦੇਰੀ(_d):" + #: ../src/connection-editor/ce-page-dsl.ui.h:1 #: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 @@ -1074,23 +1270,122 @@ msgid "Sho_w password" msgstr "ਪਾਸਵਰਡ ਵੇਖੋ(_w)" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:9 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "_Password:" -msgstr "ਪਾਸਵਰਡ(_P):" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "ਪਾਸਵਰਡ(_P):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "ਆਟੋਮੈਟਿਕ" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "ਟਵਿੱਸਟ ਪੇਅਰ (TP)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "ਅਟੈਚਮੈਂਟ ਯੂਨਿਟ ਇੰਟਰਫੇਸ (AUI)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "ਮੀਡਿਆ ਇੰਡੀਮੈਂਡੈਂਟ ਇੰਟਰਫੇਸ (MII)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "ਪੋਰਟ(_P):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "ਸਪੀਡ(_S):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "ਫੂਲ ਡੁਪਲੈਕਸ(_x)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "ਆਟੋ-ਨੈਗੋਸ਼ਿਏਟ(_o)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "ਜੰਤਰ MAC ਐਡਰੈੱਸ(_D):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "ਕਨੋਲ ਕੀਤਾ MAC ਐਡਰੈੱਸ(_l):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"ਇੱਥੇ ਦਿੱਤਾ ਮੈਕ (MAC) ਐਡਰੈੱਸ ਨੈੱਟਵਰਕ ਜੰਤਰ ਲਈ ਹਾਰਡਵੇਅਰ ਐਡਰੈੱਸ ਵਜੋਂ ਵਰਤਿਆ " +"ਜਾਵੇਗਾ, ਜਿਸ ਲਈ ਇਸ " +"ਕੁਨੈਕਸ਼ਨ ਐਕਟੀਵੇਟ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਫੀਚਰ ਨੂੰ ਮੈਕ ਕਲੋਨਿੰਗ ਜਾਂ ਸਪੂਫਿੰਗ ਕਹਿੰਦੇ ਹਨ। " +"ਜਿਵੇਂ: " +"00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -msgid "Automatic" -msgstr "ਆਟੋਮੈਟਿਕ" +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "ਬਾਈਟ" + +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "ਟਰਾਂਸਪੋਰਟ ਮੋਡ(_T):" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "ਡਾਟਾਗਰਾਮ" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "ਕੁਨੈਕਟ ਹੈ" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 @@ -1107,7 +1402,7 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:4 #: ../src/connection-editor/ce-page-ip6.ui.h:4 msgid "Link-Local" -msgstr "ਲਿੰਕ-ਲੋਕਲ ਹੀ" +msgstr "ਲਿੰਕ-ਲੋਕਲ" #: ../src/connection-editor/ce-page-ip4.ui.h:5 #: ../src/connection-editor/ce-page-ip6.ui.h:5 @@ -1150,11 +1445,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "ਖੋਜ ਡੋਮੇਨ(_e):" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_DNS ਸਰਵਰ:" @@ -1308,152 +1607,71 @@ msgid "Send PPP _echo packets" msgstr "PPP ਈਚੋ ਪੈਕੇਟ ਭੇਜੋ(_e)" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "ਟਵਿੱਸਟ ਪੇਅਰ (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "ਅਟੈਚਮੈਂਟ ਯੂਨਿਟ ਇੰਟਰਫੇਸ (AUI)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "ਮੀਡਿਆ ਇੰਡੀਮੈਂਡੈਂਟ ਇੰਟਰਫੇਸ (MII)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "ਪੋਰਟ(_P):" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "ਸਪੀਡ(_S):" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "ਫੂਲ ਡੁਪਲੈਕਸ(_x)" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "ਆਟੋ-ਨੈਗੋਸ਼ਿਏਟ(_o)" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "ਜੰਤਰ MAC ਐਡਰੈੱਸ(_D):" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "C_loned MAC address:" -msgstr "ਕਨੋਲ ਕੀਤਾ MAC ਐਡਰੈੱਸ(_l):" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"ਇੱਥੇ ਦਿੱਤਾ ਮੈਕ (MAC) ਐਡਰੈੱਸ ਨੈੱਟਵਰਕ ਜੰਤਰ ਲਈ ਹਾਰਡਵੇਅਰ ਐਡਰੈੱਸ ਵਜੋਂ ਵਰਤਿਆ " -"ਜਾਵੇਗਾ, ਜਿਸ ਲਈ ਇਸ " -"ਕੁਨੈਕਸ਼ਨ ਐਕਟੀਵੇਟ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਫੀਚਰ ਨੂੰ ਮੈਕ ਕਲੋਨਿੰਗ ਜਾਂ ਸਪੂਫਿੰਗ ਕਹਿੰਦੇ ਹਨ। " -"ਜਿਵੇਂ: " -"00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "_MTU:" -msgstr "_MTU:" - -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "ਬਾਈਟ" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "ਸੁਰੱਖਿਆ(_e):" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "ਇੰਫਰਾਸਟੱਕਚਰ" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "ਐਡ-ਹਾਕ" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "mW" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "ਟਰਾਂਸਮਿਸ਼ਨ ਪਾਵਰ(_w):" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "ਰੇਟ(_R):" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"ਇਹ ਚੋਣ ਇਸ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਵਾਇਰਲੈੱਸ ਐਕਸੈੱਸ ਪੁਆਇੰਟ (AP) ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਤੋਂ ਲਾਕ ਕਰਦੀ " +"ਇਹ ਚੋਣ ਇਸ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਵਾਈ-ਫਾਈ ਐਕਸੈੱਸ ਪੁਆਇੰਟ (AP) ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਤੋਂ ਲਾਕ ਕਰਦੀ " "ਹੈ, ਜੋ ਇੱਥੇ ਦਿੱਤੇ " "BSSID ਵਲੋਂ ਦਿੱਤਾ ਹੈ। ਜਿਵੇਂ: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "ਚੈਨਲ(_h):" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "ਬੈਂਡ(_d):" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "ਮੋਡ(_o):" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "SS_ID:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "ਸੁਰੱਖਿਆ(_e):" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "ਮਨਜ਼ੂਰ ਕੀਤੇ ਪਰਮਾਣਕਿਤਾ ਢੰਗ" @@ -1507,78 +1725,333 @@ "ਕੁਨੈਕਸ਼ਨ ਫੇਲ੍ਹ " "ਹੋਵੇ ਤਾਂ ਕੁਝ ਢੰਗ ਆਯੋਗ ਕਰਕੇ ਕੋਸ਼ਿਸ਼ ਕਰ ਸਕਦੇ ਹੋ।" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "ਐਡਰੈੱਸ" + +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "ਨੈੱਟਮਾਸਕ" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "ਗੇਟਵੇ" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "ਮੈਟਰਿਕ" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "ਪ੍ਰੀਫਿਕਸ" + +#: ../src/connection-editor/new-connection.c:77 +#: ../src/connection-editor/page-ethernet.c:274 +msgid "Ethernet" +msgstr "ਈਥਰਨੈੱਟ" + +#: ../src/connection-editor/new-connection.c:82 +#: ../src/connection-editor/page-wifi.c:463 +msgid "Wi-Fi" +msgstr "ਵਾਈ-ਫਾਈ" + +#: ../src/connection-editor/new-connection.c:92 +#: ../src/connection-editor/page-wimax.c:158 ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:97 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:102 +#: ../src/connection-editor/page-infiniband.c:190 +msgid "InfiniBand" +msgstr "ਇੰਫੀਬੈਂਡ" + +#: ../src/connection-editor/new-connection.c:107 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "ਬੌਂਡ" + +#: ../src/connection-editor/new-connection.c:119 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:252 +msgid "Import a saved VPN configuration..." +msgstr "...ਸੰਭਾਲੀ VPN ਕੁਨੈਕਸ਼ਨ ਇੰਪੋਰਟ ਕਰੋ" + +#: ../src/connection-editor/new-connection.c:274 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "ਅਣਜਾਣ ਗਲਤੀ ਕਰਕੇ ਕੁਨੈਕਸ਼ਨ ਐਡੀਟਰ ਡਾਈਲਾਗ ਸ਼ੁਰੂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" + +#: ../src/connection-editor/new-connection.c:283 +msgid "Could not create new connection" +msgstr "ਨਵਾਂ ਕੁਨੈਕਸ਼ਨ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" + +#: ../src/connection-editor/new-connection.c:419 +msgid "Connection delete failed" +msgstr "ਕੁਨੈਕਸ਼ਨ ਹਟਾਉਣ ਲਈ ਫੇਲ੍ਹ" + +#: ../src/connection-editor/new-connection.c:466 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "ਕੀ ਤੁਸੀਂ ਕੁਨੈਕਸ਼ਨ %s ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "%s ਸੋਧ" + +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "ਬੇਨਾਮ ਕੁਨੈਕਸ਼ਨ ਸੋਧ" + +#: ../src/connection-editor/nm-connection-editor.c:301 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "ਕੁਨੈਕਸ਼ਨ ਐਡੀਟਰ ਕੁਝ ਲੋੜੀਦੇ ਸਰੋਤ ਨਹੀਂ ਲੱਭ ਸਕਿਆ (.ui ਫਾਇਲ ਨਹੀਂ ਲੱਭੀ ਹੈ)।" + +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "ਸੰਭਾਲੋ(_S)" + +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "ਇਸ ਕੁਨੈਕਸ਼ਨ ਲਈ ਕੀਤੇ ਬਦਲਾਅ ਸੰਭਾਲੋ" + +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "ਸੰਭਾਲੋ(_S)..." + +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "ਇਸ ਕੁਨੈਕਸ਼ਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਨੂੰ ਇਸ ਮਸ਼ੀਨ ਉੱਤੇ ਸਭ ਯੂਜ਼ਰਾਂ ਲਈ ਸੰਭਾਲੋ।" + +#: ../src/connection-editor/nm-connection-editor.c:447 +#| msgid "Could not create new connection" +msgid "Could not create connection" +msgstr "ਕੁਨੈਕਸ਼ਨ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "ਕੁਨੈਕਸ਼ਨ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" + +#: ../src/connection-editor/nm-connection-editor.c:449 +#| msgid "Error creating connection editor dialog." +msgid "Unknown error creating connection editor dialog." +msgstr "ਕੁਨੈਕਸ਼ਨ ਐਡੀਟਰ ਡਾਈਲਾਗ ਬਣਾਉਣ ਦੌਰਾਨ ਅਣਜਾਣ ਗਲਤੀ।" + +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "ਕੁਨੈਕਸ਼ਨ ਸੰਭਾਲਣ ਦੌਰਾਨ ਗਲਤੀ" + +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "ਵਿਸ਼ੇਸ਼ਤਾ '%s' / '%s' ਅਢੁੱਕਵੀਂ: %d" + +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "ਐਡੀਟਰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਗਲਤੀ" + +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "ਕੁਨੈਕਸ਼ਨ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਫੇਲ੍ਹ" + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "ਕੁਨੈਕਸ਼ਨ ਨਾਂ(_n):" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "ਆਟੋਮੈਟਿਕ ਕੁਨੈਕਟ ਕਰੋ(_a)" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "ਸਭ ਯੂਜ਼ਰ ਲਈ ਉਪਲੱਬਧ" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "...ਐਕਸਪੋਰਟ(_E)" + +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "ਕਦੇ ਨਹੀਂ" + +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "ਹੁਣ" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d ਮਿੰਟ ਪਹਿਲਾਂ" +msgstr[1] "%d ਮਿੰਟ ਪਹਿਲਾਂ" + +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ਘੰਟਾ ਪਹਿਲਾਂ" +msgstr[1] "%d ਘੰਟੇ ਪਹਿਲਾਂ" + +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d ਦਿਨ ਪਹਿਲਾਂ" +msgstr[1] "%d ਦਿਨ ਪਹਿਲਾਂ" + +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d ਮਹੀਨਾ ਪਹਿਲਾਂ" +msgstr[1] "%d ਮਹੀਨੇ ਪਹਿਲਾਂ" + +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "%d ਸਾਲ ਪਹਿਲਾਂ" +msgstr[1] "%d ਸਾਲ ਪਹਿਲਾਂ" + +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "ਨਾਂ" + +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "ਆਖਰੀ ਵਰਤੇ" + +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "ਚੁਣਿਆ ਕੁਨੈਕਸ਼ਨ ਸੋਧੋ" + +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "ਸੋਧ(_E)..." + +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "ਚੁਣੇ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਸੋਧਣ ਲੀ ਪਰਮਾਣਕਿਤਾ" + +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "ਚੁਣਿਆ ਕੁਨੈਕਸ਼ਨ ਹਟਾਓ" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "ਹਟਾਓ(_D)..." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "VPN ਕੁਨੈਕਸ਼ਨ ਕਿਸਮ ਚੁਣੋ" +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "ਚੁਣੇ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਹਟਾਉਣ ਲਈ ਪਰਮਾਣਕਿਤਾ" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" -"VPN ਦੀ ਕਿਸਮ ਚੁਣੋ, ਜੋ ਤੁਸੀਂ ਨਵੇਂ ਕੁਨੈਕਸ਼ਨ ਲਈ ਵਰਤਣੀ ਚਾਹੁੰਦੇ ਹੋ। ਜੇ VPN ਕੁਨੈਕਸ਼ਨ " -"ਦੀ ਟਾਈਪ ਲਿਸਟ ਵਿੱਚ " -"ਨਾ ਦੱਸੇ, ਜੋ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਢੁੱਕਵੀਂ VPN ਪਲੱਗਇਨ " -"ਇੰਸਟਾਲ ਨਾ ਹੋਵੇ।" +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "ਕੁਨੈਕਸ਼ਨ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "ਬਣਾਓ..." +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "ਪਤਾ ਨਹੀਂ ਹੈ ਕਿ '%s' ਕੁਨੈਕਸ਼ਨ ਕਿਵੇਂ ਬਣਾਇਆ ਜਾਵੇ" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "ਐਡਰੈੱਸ" +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "ਕੁਨੈਕਸ਼ਨ ਸੋਧਣ ਦੌਰਾਨ ਗਲਤੀ" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "ਨੈੱਟਮਾਸਕ" +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "UUID '%s' ਨਾਲ ਕੋਈ ਕੁਨੈਕਸ਼ਨ ਨਹੀਂ ਲੱਭਿਆ" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "ਗੇਟਵੇ" +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "802.1x ਸੁਰੱਖਿਆ" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "ਮੈਟਰਿਕ" +#: ../src/connection-editor/page-8021x-security.c:122 +msgid "Could not load 802.1x Security user interface." +msgstr "802.1x ਸੁਰੱਖਿਆ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "ਪ੍ਰੀਫਿਕਸ" +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "ਇਸ ਕੁਨੈਕਸ਼ਨ ਲਈ 802.1_X ਸੁਰੱਖਿਆ ਵਰਤੋਂ" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "%s ਸਲੇਵ %d" + +#: ../src/connection-editor/page-bond.c:749 +#| msgid "Could not load DSL user interface." +msgid "Could not load bond user interface." +msgstr "ਬੌਂਡ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" + +#: ../src/connection-editor/page-bond.c:909 +#, c-format +#| msgid "InfiniBand connection %d" +msgid "Bond connection %d" +msgstr "ਬੌਂਡ ਕੁਨੈਕਸ਼ਨ %d" -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-dsl.c:142 msgid "Could not load DSL user interface." msgstr "DSL ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ:" -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:234 #, c-format msgid "DSL connection %d" msgstr "DSL ਕੁਨੈਕਸ਼ਨ %d" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"ਇਹ ਚੋਣ ਨੈੱਟਵਰਕ ਜੰਤਰਾਂ ਨਾਲ ਕੁਨੈਕਸ਼ਨ ਲਾਕ ਕਰ ਦਿੰਦੀ ਹੈ, ਜੋ ਇੱਥੇ ਦਿੱਤੇ ਪੱਕੇ MAC " +"ਐਡਰੈੱਸ ਰਾਹੀਂ ਦਿੱਤੇ ਹਨ। " +"ਜਿਵੇਂ: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:276 +msgid "Could not load ethernet user interface." +msgstr "ਈਥਰਨੈੱਟ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" + +#: ../src/connection-editor/page-ethernet.c:452 +#, c-format +msgid "Ethernet connection %d" +msgstr "ਈਥਰਨੈੱਟ ਕੁਨੈਕਸ਼ਨ %d" + +#: ../src/connection-editor/page-infiniband.c:193 +msgid "Could not load InfiniBand user interface." +msgstr "ਇਫੀਂਬੈਂਡ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" + +#: ../src/connection-editor/page-infiniband.c:318 +#, c-format +msgid "InfiniBand connection %d" +msgstr "ਇਫੀਂਬੈਂਡ ਕੁਨੈਕਸ਼ਨ %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1626,16 +2099,26 @@ msgid "Disabled" msgstr "ਅਯੋਗ ਕੀਤਾ" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "ਵਾਧੂ _DNS ਸਰਵਰ:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "ਵਾਧੂ ਖੋਜ ਡੋਮੇਨ(_e):" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "%s ਲਈ IPv4 ਰੂਟ ਸੋਧ" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:993 msgid "IPv4 Settings" msgstr "IPv4 ਸੈਟਿੰਗ" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:995 msgid "Could not load IPv4 user interface." msgstr "IPv4 ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" @@ -1644,7 +2127,7 @@ msgstr "ਆਟੋਮੈਟਿਕ, ਸਿਰਫ਼ ਐਡਰੈੱਸ ਹੀ" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "ਅਣਡਿੱਠਾ" @@ -1652,33 +2135,33 @@ msgid "Automatic, DHCP only" msgstr "ਆਟੋਮੈਟਿਕ, ਸਿਰਫ (DHCP)" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "%s ਲਈ IPv6 ਰੂਟ ਸੋਧ" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:957 msgid "IPv6 Settings" msgstr "IPv6 ਸੈਟਿੰਗ" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:959 msgid "Could not load IPv6 user interface." msgstr "IPv6 ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" -#: ../src/connection-editor/page-mobile.c:381 +#: ../src/connection-editor/page-mobile.c:382 msgid "Could not load mobile broadband user interface." msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" -#: ../src/connection-editor/page-mobile.c:398 +#: ../src/connection-editor/page-mobile.c:399 msgid "Unsupported mobile broadband connection type." msgstr "ਅਣ-ਸਹਾਇਕ ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ ਕਿਸਮ" #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:643 msgid "Select Mobile Broadband Provider Type" msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਪਰੋਵਾਇਡਰ ਕਿਸਮ ਚੁਣੋ" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:678 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." @@ -1687,340 +2170,75 @@ "ਨਾ ਹੋਵੇ ਤਾਂ ਆਪਣੇ " "ਪਰੋਵਾਇਡਰ ਤੋਂ ਪੁੱਛੋ।" -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:683 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "" "ਮੇਰਾ ਪਰੋਵਾਇਡਰ _GSM ਅਧਾਰਿਤ ਤਕਨਾਲੋਜੀ (ਜਿਵੇਂ GPRS, EDGE, UMTS, HSDPA) ਵਰਤਦਾ ਹੈ।" -#: ../src/connection-editor/page-mobile.c:686 -msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "ਮੇਰਾ ਪਰੋਵਾਇਡਰ C_DMA ਅਧਾਰਿਤ ਤਕਨਾਲੋਜੀ (ਜਿਵੇਂ 1xRTT, EVDO) ਵਰਤਦਾ ਹੈ।" - -#: ../src/connection-editor/page-ppp.c:134 -msgid "EAP" -msgstr "EAP" - -#: ../src/connection-editor/page-ppp.c:135 -#: ../src/wireless-security/eap-method-ttls.c:230 -msgid "PAP" -msgstr "PAP" - -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:280 -msgid "CHAP" -msgstr "CHAP" - -#: ../src/connection-editor/page-ppp.c:137 -#: ../src/wireless-security/eap-method-fast.c:277 -#: ../src/wireless-security/eap-method-peap.c:246 -#: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "ਕੋਈ ਨਹੀਂ" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "%s ਲਈ PPP ਪਰਮਾਣਕਿਤਾ ਢੰਗ ਸੋਧ" - -#: ../src/connection-editor/page-ppp.c:282 -msgid "PPP Settings" -msgstr "PPP ਸੈਟਿੰਗ" - -#: ../src/connection-editor/page-ppp.c:284 -msgid "Could not load PPP user interface." -msgstr "PPP ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "VPN ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "'%s' ਲਈ VPN ਪਲੱਗਇਨ ਸਰਵਿਸ ਲੱਭੀ ਨਹੀਂ ਜਾ ਸਕੀ।" - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 -#, c-format -msgid "VPN connection %d" -msgstr "VPN ਕੁਨੈਕਸ਼ਨ %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"ਇਹ ਚੋਣ ਨੈੱਟਵਰਕ ਜੰਤਰਾਂ ਨਾਲ ਕੁਨੈਕਸ਼ਨ ਲਾਕ ਕਰ ਦਿੰਦੀ ਹੈ, ਜੋ ਇੱਥੇ ਦਿੱਤੇ ਪੱਕੇ MAC " -"ਐਡਰੈੱਸ ਰਾਹੀਂ ਦਿੱਤੇ ਹਨ। " -"ਜਿਵੇਂ: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 -msgid "Wired" -msgstr "ਤਾਰ" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "ਤਾਰ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "ਤਾਰ ਵਾਲਾ ਕੁਨੈਕਸ਼ਨ %d" - -#: ../src/connection-editor/page-wired-security.c:116 -msgid "802.1x Security" -msgstr "802.1x ਸੁਰੱਖਿਆ" - -#: ../src/connection-editor/page-wired-security.c:118 -msgid "Could not load Wired Security security user interface." -msgstr "ਤਾਰ ਵਾਲਾ ਸੁਰੱਖਿਆ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" - -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1_X security for this connection" -msgstr "ਇਸ ਕੁਨੈਕਸ਼ਨ ਲਈ 802.1_X ਸੁਰੱਖਿਆ ਵਰਤੋਂ" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "ਡਿਫਾਲਟ" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 -msgid "Wireless" -msgstr "ਬੇਤਾਰ" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "ਵਾਈ-ਫਾਈ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "ਬੇਤਾਰ ਕੁਨੈਕਸ਼ਨ %d" - -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "WEP 40/128-ਬਿੱਟ ਕੁੰਜੀ (Hex ਜਾਂ ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 -msgid "WEP 128-bit Passphrase" -msgstr "WEP 128-ਬਿੱਟ ਸ਼ਬਦ" - -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 -msgid "Dynamic WEP (802.1x)" -msgstr "ਡਾਇਨੈਮਿਕ WEP (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 -msgid "WPA & WPA2 Personal" -msgstr "WPA & WPA2 ਨਿੱਜੀ" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA & WPA2 ਇੰਟਰਪ੍ਰਾਈਜ" - -#: ../src/connection-editor/page-wireless-security.c:360 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"ਵਾਈ-ਫਾਈ ਸੁਰੱਖਿਆ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ; ਵਾਈ-ਫਾਈ ਸੈਟਿੰਗ ਗੁੰਮ ਹੈ।" - -#: ../src/connection-editor/page-wireless-security.c:370 -msgid "Wireless Security" -msgstr "ਬੇਤਾਰ ਸੁਰੱਖਿਆ" - -#: ../src/connection-editor/page-wireless-security.c:372 -msgid "Could not load WiFi security user interface." -msgstr "ਵਾਈ-ਫਾਈ ਸੁਰੱਖਿਆ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "%s ਸੋਧ" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "ਬੇਨਾਮ ਕੁਨੈਕਸ਼ਨ ਸੋਧ" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "ਕੁਨੈਕਸ਼ਨ ਐਡੀਟਰ ਕੁਝ ਲੋੜੀਦੇ ਸਰੋਤ ਨਹੀਂ ਲੱਭ ਸਕਿਆ (.ui ਫਾਇਲ ਨਹੀਂ ਲੱਭੀ ਹੈ)।" - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "ਕੁਨੈਕਸ਼ਨ ਐਡੀਟਰ ਡਾਈਲਾਗ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ।" - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "ਸੰਭਾਲੋ(_S)" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "ਇਸ ਕੁਨੈਕਸ਼ਨ ਲਈ ਕੀਤੇ ਬਦਲਾਅ ਸੰਭਾਲੋ" - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "ਸੰਭਾਲੋ(_S)..." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "ਇਸ ਕੁਨੈਕਸ਼ਨ ਲਈ ਪਰਮਾਣਕਿਤਾ ਨੂੰ ਇਸ ਮਸ਼ੀਨ ਉੱਤੇ ਸਭ ਯੂਜ਼ਰਾਂ ਲਈ ਸੰਭਾਲੋ।" - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "ਇੰਪੋਰਟ(_I)" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "ਐਕਸਪੋਰਟ(_x)" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "ਕੁਨੈਕਸ਼ਨ ਨਾਂ(_n):" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "ਆਟੋਮੈਟਿਕ ਕੁਨੈਕਟ ਕਰੋ(_a)" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "ਸਭ ਯੂਜ਼ਰ ਲਈ ਉਪਲੱਬਧ" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "ਕਦੇ ਨਹੀਂ" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "ਹੁਣ" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "%d ਮਿੰਟ ਪਹਿਲਾਂ" -msgstr[1] "%d ਮਿੰਟ ਪਹਿਲਾਂ" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "%d ਘੰਟਾ ਪਹਿਲਾਂ" -msgstr[1] "%d ਘੰਟੇ ਪਹਿਲਾਂ" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "%d ਦਿਨ ਪਹਿਲਾਂ" -msgstr[1] "%d ਦਿਨ ਪਹਿਲਾਂ" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "%d ਮਹੀਨਾ ਪਹਿਲਾਂ" -msgstr[1] "%d ਮਹੀਨੇ ਪਹਿਲਾਂ" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "%d ਸਾਲ ਪਹਿਲਾਂ" -msgstr[1] "%d ਸਾਲ ਪਹਿਲਾਂ" - -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "ਕੁਨੈਕਸ਼ਨ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਫੇਲ੍ਹ" +#: ../src/connection-editor/page-mobile.c:690 +msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" +msgstr "ਮੇਰਾ ਪਰੋਵਾਇਡਰ C_DMA ਅਧਾਰਿਤ ਤਕਨਾਲੋਜੀ (ਜਿਵੇਂ 1xRTT, EVDO) ਵਰਤਦਾ ਹੈ।" -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "ਕੁਨੈਕਸ਼ਨ ਸੰਭਾਲਣ ਦੌਰਾਨ ਗਲਤੀ" +#: ../src/connection-editor/page-ppp.c:134 +msgid "EAP" +msgstr "EAP" -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "ਵਿਸ਼ੇਸ਼ਤਾ '%s' / '%s' ਅਢੁੱਕਵੀਂ: %d" +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 +msgid "PAP" +msgstr "PAP" -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "ਇੱਕ ਅਣਜਾਣੀ ਗਲਤੀ ਆਈ ਹੈ।" +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "ਐਡੀਟਰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਗਲਤੀ" +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "ਅਣਜਾਣ ਗਲਤੀ ਕਰਕੇ ਕੁਨੈਕਸ਼ਨ ਐਡੀਟਰ ਡਾਈਲਾਗ ਸ਼ੁਰੂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "ਨਵਾਂ ਕੁਨੈਕਸ਼ਨ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "ਕੋਈ ਨਹੀਂ" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "ਨਵਾਂ ਕੁਨੈਕਸ਼ਨ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "%s ਲਈ PPP ਪਰਮਾਣਕਿਤਾ ਢੰਗ ਸੋਧ" -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "ਕੁਨੈਕਸ਼ਨ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" +#: ../src/connection-editor/page-ppp.c:283 +msgid "PPP Settings" +msgstr "PPP ਸੈਟਿੰਗ" -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "ਕੁਨੈਕਸ਼ਨ ਹਟਾਉਣ ਲਈ ਫੇਲ੍ਹ" +#: ../src/connection-editor/page-ppp.c:285 +msgid "Could not load PPP user interface." +msgstr "PPP ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" + +#: ../src/connection-editor/page-vpn.c:114 +msgid "Could not load VPN user interface." +msgstr "VPN ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:129 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "ਕੀ ਤੁਸੀਂ ਕੁਨੈਕਸ਼ਨ %s ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "'%s' ਲਈ VPN ਪਲੱਗਇਨ ਸਰਵਿਸ ਲੱਭੀ ਨਹੀਂ ਜਾ ਸਕੀ।" -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 -msgid "Cannot import VPN connection" -msgstr "VPN ਕੁਨੈਕਸ਼ਨ ਇੰਪੋਰਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 +#, c-format +msgid "VPN connection %d" +msgstr "VPN ਕੁਨੈਕਸ਼ਨ %d" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/page-vpn.c:249 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2030,79 +2248,99 @@ "\n" "ਗਲਤੀ: ਕੋਈ VPN ਸਰਵਿਸ ਟਾਈਪ ਨਹੀਂ।" -#: ../src/connection-editor/nm-connection-list.c:945 -msgid "Could not edit imported connection" -msgstr "ਇੰਪੋਰਟ ਕੀਤਾ ਕੁਨੈਕਸ਼ਨ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "VPN ਕੁਨੈਕਸ਼ਨ ਕਿਸਮ ਚੁਣੋ" -#: ../src/connection-editor/nm-connection-list.c:1126 -msgid "Name" -msgstr "ਨਾਂ" +#: ../src/connection-editor/page-vpn.c:275 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"VPN ਦੀ ਕਿਸਮ ਚੁਣੋ, ਜੋ ਤੁਸੀਂ ਨਵੇਂ ਕੁਨੈਕਸ਼ਨ ਲਈ ਵਰਤਣੀ ਚਾਹੁੰਦੇ ਹੋ। ਜੇ VPN ਕੁਨੈਕਸ਼ਨ " +"ਦੀ ਟਾਈਪ ਲਿਸਟ ਵਿੱਚ " +"ਨਾ ਦੱਸੇ, ਜੋ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਢੁੱਕਵੀਂ VPN ਪਲੱਗਇਨ " +"ਇੰਸਟਾਲ ਨਾ ਹੋਵੇ।" -#: ../src/connection-editor/nm-connection-list.c:1138 -msgid "Last Used" -msgstr "ਆਖਰੀ ਵਰਤੇ" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "ਡਿਫਾਲਟ" -#: ../src/connection-editor/nm-connection-list.c:1264 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "ਕੋਈ VPN ਪਲੱਗਇਨ ਨਹੀਂ ਲੱਭੀ। ਇਹ ਬਟਨ ਚਾਲੂ ਕਰਨ ਲਈ ਕੋਈ ਇੰਸਟਾਲ ਕਰੋ।" +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "_Edit" -msgstr "ਸੋਧ(_E)" +#: ../src/connection-editor/page-wifi.c:465 +msgid "Could not load Wi-Fi user interface." +msgstr "ਵਾਈ-ਫਾਈ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "Edit the selected connection" -msgstr "ਚੁਣਿਆ ਕੁਨੈਕਸ਼ਨ ਸੋਧੋ" +#: ../src/connection-editor/page-wifi.c:670 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "ਵਾਈ-ਫਾਈ ਕੁਨੈਕਸ਼ਨ %d" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "_Edit..." -msgstr "ਸੋਧ(_E)..." +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "ਕੋਈ ਨਹੀਂ" -#: ../src/connection-editor/nm-connection-list.c:1278 -msgid "Authenticate to edit the selected connection" -msgstr "ਚੁਣੇ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਸੋਧਣ ਲੀ ਪਰਮਾਣਕਿਤਾ" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "WEP 40/128-ਬਿੱਟ ਕੁੰਜੀ (Hex ਜਾਂ ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "_Delete" -msgstr "ਹਟਾਓ(_D)" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "WEP 128-ਬਿੱਟ ਸ਼ਬਦ" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "Delete the selected connection" -msgstr "ਚੁਣਿਆ ਕੁਨੈਕਸ਼ਨ ਹਟਾਓ" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "ਡਾਇਨੈਮਿਕ WEP (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "_Delete..." -msgstr "ਹਟਾਓ(_D)..." +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "WPA & WPA2 ਨਿੱਜੀ" -#: ../src/connection-editor/nm-connection-list.c:1296 -msgid "Authenticate to delete the selected connection" -msgstr "ਚੁਣੇ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਹਟਾਉਣ ਲਈ ਪਰਮਾਣਕਿਤਾ" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA & WPA2 ਇੰਟਰਪ੍ਰਾਈਜ" -#: ../src/connection-editor/nm-connection-list.c:1575 -msgid "Error creating connection" -msgstr "ਕੁਨੈਕਸ਼ਨ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ" +#: ../src/connection-editor/page-wifi-security.c:396 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"ਵਾਈ-ਫਾਈ ਸੁਰੱਖਿਆ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ; ਵਾਈ-ਫਾਈ ਸੈਟਿੰਗ ਗੁੰਮ ਹੈ।" -#: ../src/connection-editor/nm-connection-list.c:1576 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "ਪਤਾ ਨਹੀਂ ਹੈ ਕਿ '%s' ਕੁਨੈਕਸ਼ਨ ਕਿਵੇਂ ਬਣਾਇਆ ਜਾਵੇ" +#: ../src/connection-editor/page-wifi-security.c:406 +msgid "Wi-Fi Security" +msgstr "ਵਾਈ-ਫਾਈ ਸੁਰੱਖਿਆ" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 -msgid "Error editing connection" -msgstr "ਕੁਨੈਕਸ਼ਨ ਸੋਧਣ ਦੌਰਾਨ ਗਲਤੀ" +#: ../src/connection-editor/page-wifi-security.c:408 +msgid "Could not load Wi-Fi security user interface." +msgstr "ਵਾਈ-ਫਾਈ ਸੁਰੱਖਿਆ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" -#: ../src/connection-editor/nm-connection-list.c:1632 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "ਪਤਾ ਨਹੀਂ ਹੈ ਕਿ '%s' ਕੁਨੈਕਸ਼ਨ ਕਿਵੇਂ ਸੋਧਿਆ ਜਾਵੇ" +#: ../src/connection-editor/page-wimax.c:161 +msgid "Could not load WiMAX user interface." +msgstr "ਵਾਈਮੈਕਸ (WiMAX) ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/page-wimax.c:290 #, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "UUID '%s' ਨਾਲ ਕੋਈ ਕੁਨੈਕਸ਼ਨ ਨਹੀਂ ਲੱਭਿਆ" +msgid "WiMAX connection %d" +msgstr "WiMAX ਕੁਨੈਕਸ਼ਨ %d" + +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "VPN ਕੁਨੈਕਸ਼ਨ ਇੰਪੋਰਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2114,29 +2352,29 @@ "\n" "ਗਲਤੀ: %s।" -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "ਇੰਪੋਰਟ ਕਰਨ ਲਈ ਫਾਇਲ ਚੁਣੋ" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "ਫਾਇਲ ਨਾਂ \"%s\" ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ।" -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "ਬਦਲੋ(_R)" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "ਕੀ ਤੁਸੀਂ %s ਨੂੰ VPN, ਜੋ ਤੁਸੀਂ ਸੰਭਾਲ ਰਹੇ ਹੋ, ਨਾਲ ਬਦਲਣਾ ਚਾਹੁੰਦੇ ਹੋ?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "VPN ਕੁਨੈਕਸ਼ਨ ਐਕਸਪੋਰਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2147,65 +2385,82 @@ "\n" "ਗਲਤੀ: %s" -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "VPN ਕੁਨੈਕਸ਼ਨ ਐਕਸਪੋਰਟ..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "PAN ਕੁਨੈਕਸ਼ਨ ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "ਨੈੱਟਵਰਕ-ਮੈਨੇਜਰ ਐਪਲਿਟ ਲੋੜੀਦੇ ਸਰੋਤ ਨਹੀਂ ਲੱਭਿਆ ਸਕਿਆ (.ui ਫਾਇਲ ਨਹੀਂ ਲੱਭੀ)।" -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "ਤੁਹਾਡਾ ਫੋਨ ਵਰਤਣ ਲਈ ਤਿਆਰ ਹੈ!" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"ਬਲਿਊਟੁੱਥ ਸੰਰਚਨਾ ਸੰਭਵ ਨਹੀਂ ਹੈ (D-Bus ਨਾਲ ਜੁੜਨ ਤੋਂ ਫੇਲ੍ਹ ਹੋਇਆ ਹੈ: (%s) %s)।" -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s ਨੈੱਟਵਰਕ" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "ਬਲਿਊਟੁੱਥ ਸੰਰਚਨਾ ਸੰਭਵ ਨਹੀਂ ਹੈ (ਨੈੱਟਵਰਕ-ਮੈਨੇਜਰ ਲੱਭਣ ਵਿੱਚ ਗਲਤੀ: (%s) %s)।" + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "ਆਪਣੇ ਮੋਬਾਇਲ ਫੋਨ ਨੂੰ ਨੈੱਟਵਰਕ ਜੰਤਰ ਵਜੋਂ ਵਰਤੋਂ (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "ਆਪਣੇ ਮੋਬਾਇਲ ਫੋਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੰਟਰਨੈੱਟ ਵਰਤੋਂ (DUN)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "ਗਲਤੀ: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "DUN ਕੁਨੈਕਸ਼ਨ ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "ਤੁਹਾਡਾ ਫੋਨ ਵਰਤਣ ਲਈ ਤਿਆਰ ਹੈ!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "ਮੋਬਾਇਲ ਸਹਾਇਕ ਰੱਦ ਕੀਤਾ ਗਿਆ" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "ਅਣਜਾਣ ਫੋਨ ਜੰਤਰ ਕਿਸਮ (GSM ਜਾਂ CDMA ਨਹੀਂ)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "ਅਣਜਾਣ ਮਾਡਮ ਕਿਸਮ:" + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "ਫੋਨ ਨਾਲ ਕੁਨੈਕਟ ਹੋਣ ਲਈ ਫੇਲ੍ਹ ਹੈ" -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "ਫੋਨ ਤੋਂ ਅਚਾਨਕ ਡਿਸ-ਕੁਨੈਕਟ ਹੋ ਗਿਆ।" -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "ਫੋਨ ਵੇਰਵਾ ਲੈਣ ਲਈ ਸਮਾਂ ਸਮਾਪਤ।" -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "ਫੋਨ ਸੰਰਚਨਾ ਲਈ ਜਾ ਰਹੀ ਹੈ..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "ਬਲਿਊਟੁੱਥ ਜੰਤਰ ਲੱਭਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ।" - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2214,52 +2469,54 @@ "ਚਾਲੂ ਕਰਨਾ ਲਾਜ਼ਮੀ " "ਹੈ।" -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "ਬਲਿਊਟੁੱਥ ਸੰਰਚਨਾ ਸੰਭਵ ਨਹੀਂ ਹੈ (D-Bus ਨਾਲ ਜੁੜਨ ਤੋਂ ਫੇਲ ਹੋਇਆ ਹੈ: %s)।" - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" -"ਬਲਿਊਟੁੱਥ ਸੰਰਚਨਾ ਸੰਭਵ ਨਹੀਂ ਹੈ (D-Bus ਪਰਾਕਸੀ ਨਾਲ ਜੁੜਨ ਤੋਂ ਫੇਲ ਹੋਇਆ ਹੈ: %s)।" +msgid "Failed to create PAN connection: %s" +msgstr "PAN ਕੁਨੈਕਸ਼ਨ ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "ਬਲਿਊਟੁੱਥ ਸੰਰਚਨਾ ਸੰਭਵ ਨਹੀਂ ਹੈ (ਨੈੱਟਵਰਕ-ਮੈਨੇਜਰ ਲੱਭਣ ਵਿੱਚ ਗਲਤੀ: %s)।" +msgid "%s Network" +msgstr "%s ਨੈੱਟਵਰਕ" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "ਆਪਣੇ ਮੋਬਾਇਲ ਫੋਨ ਨੂੰ ਨੈੱਟਵਰਕ ਜੰਤਰ ਵਜੋਂ ਵਰਤੋਂ (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "ਇਹ ਜੰਤਰ ਆਟੋਮੈਟਿਕ ਅਣ-ਲਾਕ ਕਰੋ" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "ਆਪਣੇ ਮੋਬਾਇਲ ਫੋਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੰਟਰਨੈੱਟ ਵਰਤੋਂ (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "ਅਣ-ਲਾਕ(_U)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "ਕੁਨੈਕਸ਼ਨ ਜਾਣਕਾਰੀ" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "ਸਰਗਰਮ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "" "ਤੁਹਾਡਾ ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ ਦੀ ਹੇਠ ਦਿੱਤੀ ਸੈਟਿੰਗ ਨਾਲ ਸੰਰਚਨਾ ਕੀਤੀ ਗਈ ਹੈ।" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "ਤੁਹਾਡਾ ਜੰਤਰ:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "ਤੁਹਾਡਾ ਪਰੋਵਾਇਡਰ:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "ਤੁਹਾਡਾ ਪਲੈਨ:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2274,23 +2531,23 @@ "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ ਸੈਟਿੰਗ ਨੂੰ ਸੋਧਣ ਲਈ, ਸਿਸਟਮ >> ਪਸੰਦ ਮੇਨੂ ਤੋਂ \"ਨੈੱਟਵਰਕ " "ਕੁਨੈਕਸ਼ਨ\" ਚੁਣੋ। " -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਸੈਟਿੰਗ ਪੁਸ਼ਟੀ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "ਬਿਨ-ਲਿਸਟ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "ਆਪਣਾ ਪਲੈਨ ਚੁਣੋ(_S):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "ਚੁਣਿਆ ਪਲੈਨ _APN (ਅਸੈੱਸ ਪੁਆਇੰਟ ਨੇਮ):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2304,68 +2561,68 @@ "ਜੇ ਤੁਹਾਨੂੰ ਆਪਣੇ ਪਲੈਨ ਬਾਰੇ ਪੱਕਾ ਪਤਾ ਨਾ ਹੋਵੇ ਤਾਂ ਆਪਣੇ ਪਰੋਵਾਇਡਰ ਨੂੰ ਆਪਣੇ ਪਲੈਨ ਦੇ " "APN ਬਾਰੇ ਪਤਾ ਕਰੋ।" -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "ਆਪਣਾ ਬਿੱਲ ਪਲੈਨ ਚੁਣੋ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "ਮੇਰਾ ਪਲੈਨ ਲਿਸਟ 'ਚ ਨਹੀਂ ਹੈ..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "ਲਿਸਟ ਤੋਂ ਆਪਣਾ ਪਰੋਵਾਇਡਰ ਚੁਣੋ(_l):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "ਪਰੋਵਾਇਡਰ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "ਮੈਨੂੰ ਆਪਣਾ ਪਰੋਵਾਇਡਰ ਨਹੀਂ ਮਿਲਿਆ ਅਤੇ ਮੈਂ ਖੁਦ ਦੇਣਾ ਚਾਹੁੰਦਾ ਹਾਂ(_m):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "ਪਰੋਵਾਇਡਰ:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "" "ਮੇਰਾ ਪਰੋਵਾਇਡਰ GSM ਅਧਾਰਿਤ ਤਕਨਾਲੋਜੀ (ਜਿਵੇਂ GPRS, EDGE, UMTS, HSDPA) ਵਰਤਦਾ ਹੈ।" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "ਮੇਰਾ ਪਰੋਵਾਇਡਰ CDMA ਅਧਾਰਿਤ ਤਕਨਾਲੋਜੀ (ਜਿਵੇਂ 1xRTT, EVDO) ਵਰਤਦਾ ਹੈ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "ਆਪਣਾ ਪਰੋਵਾਇਡਰ ਚੁਣੋ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "ਦੇਸ਼ ਜਾਂ ਖੇਤਰ ਲਿਸਟ:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "ਦੇਸ਼ ਜਾਂ ਖੇਤਰ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "ਮੇਰਾ ਦੇਸ਼ ਲਿਸਟ ਵਿੱਚ ਨਹੀਂ ਹੈ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "ਆਪਣੇ ਪਰੋਵਾਇਡਰ ਦਾ ਦੇਸ਼ ਜਾਂ ਖੇਤਰ ਚੁਣੋ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "ਇੰਸਟਾਲ ਕੀਤਾ GSM ਜੰਤਰ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "ਇੰਸਟਾਲ ਕੀਤਾ CDMA ਜੰਤਰ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2373,100 +2630,99 @@ "ਇਹ ਸਹਾਇਕ ਤੁਹਾਨੂੰ ਸੈਲੁਲਰ (3G) ਨੈੱਟਵਰਕ ਉੱਤੇ ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ ਸੈੱਟ ਕਰਨ " "ਲਈ ਮੱਦਦ ਕਰਦਾ ਹੈ।" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "ਤੁਹਾਨੂੰ ਹੇਠ ਦਿੱਤੀ ਜਾਣਕਾਰੀ ਚਾਹੀਦੀ ਹੈ:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "ਤੁਹਾਡੇ ਬਰਾਡਬੈਂਡ ਪਰੋਵਾਇਡਰ ਦਾ ਨਾਂ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "ਤੁਹਾਡਾ ਬਰਾਡਬੈਂਡ ਬਿੱਲ ਪਲੈਨ ਨਾਂ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(ਕੁਝ ਹਾਲਤਾਂ ਵਿੱਚ) ਤੁਹਾਡਾ ਬਰਾਡਬੈਂਡ ਬਿੱਲ ਪਲੈਨ APN (ਅਸੈੱਸ ਪੁਆਇੰਟ ਨਾਂ)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "ਇਸ ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਜੰਤਰ ਲਈ ਇੱਕ ਕੁਨੈਕਸ਼ਨ ਬਣਾਓ(_t):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "ਕੋਈ ਵੀ ਜੰਤਰ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬਾਂਡ ਕੁਨੈਕਸ਼ਨ ਸੈੱਟਅੱਪ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "ਨਵਾਂ ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਕੁਨੈਕਸ਼ਨ" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "ਨਵਾਂ..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "ਬਣਾਓ(_r)" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." -msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ '%s' ਵਰਤਣ ਲਈ ਪਾਸਵਰਡ ਜਾਂ ਇੰਕ੍ਰਿਪਸ਼ਨ ਕੁੰਜੀਆਂ ਦੀ ਲੋੜ ਹੈ।" +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." +msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ '%s' ਵਰਤਣ ਲਈ ਪਾਸਵਰਡ ਜਾਂ ਇੰਕ੍ਰਿਪਸ਼ਨ ਕੁੰਜੀਆਂ ਦੀ ਲੋੜ ਹੈ।" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 -msgid "Wireless Network Authentication Required" -msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਪਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" +msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਪਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 -msgid "Authentication required by wireless network" -msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਵਲੋਂ ਪਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ ਹੈ" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" +msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਵਲੋਂ ਪਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ ਹੈ" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 -msgid "Create New Wireless Network" -msgstr "ਨਵਾਂ ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਬਣਾਓ" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" +msgstr "ਨਵਾਂ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਬਣਾਓ" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "New wireless network" -msgstr "ਨਵਾਂ ਬੇਤਾਰ ਨੈੱਟਵਰਕ" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" +msgstr "ਨਵਾਂ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 -msgid "Enter a name for the wireless network you wish to create." -msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ, ਜੋ ਤੁਸੀਂ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਲਈ ਨਾਂ ਦਿਓ।" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ, ਜੋ ਤੁਸੀਂ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਲਈ ਨਾਂ ਦਿਓ।" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 -msgid "Connect to Hidden Wireless Network" -msgstr "ਲੁਕਵੇਂ ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਕਰੋ" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" +msgstr "ਲੁਕਵੇਂ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਕਰੋ" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Hidden wireless network" -msgstr "ਲੁਕਵਾਂ ਬੇਤਾਰ ਨੈੱਟਵਰਕ" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" +msgstr "ਲੁਕਵਾਂ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." msgstr "" -"ਲੁਕਵੇਂ ਬੇਤਾਰ ਨੈੱਟਵਰਕ, ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕੁਨੈਕਟ ਹੋਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਲਈ ਨਾਂ ਅਤੇ " +"ਲੁਕਵੇਂ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ, ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕੁਨੈਕਟ ਹੋਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਲਈ ਨਾਂ ਅਤੇ " "ਸੁਰੱਖਿਆ ਵੇਰਵਾ ਦਿਓ।" #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" -msgstr "ਬੇਤਾਰ ਸੁਰੱਖਿਆ(_W):" +msgid "Wi-Fi _security:" +msgstr "ਵਾਈ-ਫਾਈ ਸੁਰੱਖਿਆ(_s):" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "ਕੁਨੈਕਸ਼ਨ(_n):" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" -msgstr "ਬੇਤਾਰ ਐਡਪਟਰ(_a):" +msgid "Wi-Fi _adapter:" +msgstr "ਵਾਈ-ਫਾਈ ਐਡਪਟਰ(_a):" #: ../src/main.c:73 msgid "Usage:" @@ -2515,10 +2771,6 @@ msgid "HSPA" msgstr "HSPA" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "ਯੋਗ ਨਹੀਂ" @@ -2569,38 +2821,55 @@ msgid "Default" msgstr "ਡਿਫਾਲਟ" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "ਨੈੱਟਵਰਕ-ਮੈਨੇਜਰ ਐਪਲਿਟ ਲੋੜੀਦੇ ਸਰੋਤ ਨਹੀਂ ਲੱਭਿਆ ਸਕਿਆ (.ui ਫਾਇਲ ਨਹੀਂ ਲੱਭੀ)।" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "%s ਕੁਨੈਕਸ਼ਨ" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "ਕੋਈ ਸਰਟੀਫਿਕੇਟ ਅਥਾਰਟੀ ਸਰਟੀਫਿਕੇਟ ਨਹੀਂ ਚੁਣਿਆ" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" "ਸਰਟੀਫਿਕੇਟ ਅਥਾਰਟੀ (CA) ਸਰਟੀਫਿਕੇਟ ਦੀ ਵਰਤੋਂ ਨਾ ਕਰਨ ਨਾਲ ਕੁਨੈਕਸ਼ਨ ਅਸੁਰੱਖਿਅਤ, ਠੱਗ " -"ਬੇਤਾਰ ਨੈੱਟਵਰਕ " -"ਹੋ ਸਕਦੇ ਹਨ। ਕੀ ਤੁਸੀਂ ਸਰਟੀਫਿਕੇਟ ਅਥਾਰਟੀ ਸਰਟੀਫਿਕੇਟ ਚੁਣਨਾ ਚਾਹੁੰਦੇ ਹੋ?" +"ਵਾਈ-ਫਾਈ " +"ਨੈੱਟਵਰਕ ਹੋ ਸਕਦੇ ਹਨ। ਕੀ ਤੁਸੀਂ ਸਰਟੀਫਿਕੇਟ ਅਥਾਰਟੀ ਸਰਟੀਫਿਕੇਟ ਚੁਣਨਾ ਚਾਹੁੰਦੇ ਹੋ?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "CA ਸਰਟੀਫਿਕੇਟ ਚੁਣੋ" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM, ਜਾਂ PKCS#12 ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀਆਂ (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER ਜਾਂ PEM ਸਰਟੀਫਿਕੇਟ (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "ਇੱਕ PAC ਫਾਇਲ ਚੁਣੋ..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC ਫਾਇਲਾਂ (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "ਸਭ ਫਾਇਲਾਂ" + #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "ਅਗਿਆਤ" @@ -2633,25 +2902,8 @@ msgid "Allow automatic PAC pro_visioning" msgstr "ਆਟੋਮੈਟਿਕ PAC ਪਰੋਵਿਜ਼ਨਿੰਗ ਮਨਜ਼ੂਰ(_v)" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "ਇੱਕ PAC ਫਾਇਲ ਚੁਣੋ..." - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "PAC ਫਾਇਲਾਂ (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "ਸਭ ਫਾਇਲਾਂ" - #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2737,19 +2989,19 @@ msgid "Yes" msgstr "ਹਾਂ" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "ਟਨਲ TLS" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "ਸੁਰੱਖਿਅਤ EAP (PEAP)" @@ -2795,6 +3047,71 @@ msgid "WEP inde_x:" msgstr "WEP ਇੰਡੈਕਸ(_x):" +#~ msgid "An unknown error occurred." +#~ msgstr "ਇੱਕ ਅਣਜਾਣੀ ਗਲਤੀ ਆਈ ਹੈ।" + +#~ msgid "Could not edit new connection" +#~ msgstr "ਨਵਾਂ ਕੁਨੈਕਸ਼ਨ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" + +#~ msgid "Wireless Networks (%s)" +#~ msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ (%s)" + +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "ਬੇਤਾਰ ਨੈੱਟਵਰਕ" +#~ msgstr[1] "ਬੇਤਾਰ ਨੈੱਟਵਰਕ" + +#~ msgid "wireless is disabled" +#~ msgstr "ਬੇਤਾਰ ਬੰਦ ਹੈ" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "ਬੇਤਾਰ ਨੂੰ ਹਾਰਡਵੇਅਰ ਸਵਿੱਚ ਰਾਹੀਂ ਬੰਦ ਕੀਤਾ ਹੋਇਆ ਹੈ" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਲਈ ਤਿਆਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..." + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਦੀ ਸੰਰਚਨਾ ਜਾਰੀ..." + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "'%s' ਲਈ ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਐਡਰੈੱਸ ਲਈ ਮੰਗ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..." + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ '%s' ਐਕਟਿਵ" + +#~ msgid "Wired" +#~ msgstr "ਤਾਰ" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "ਤਾਰ ਵਾਲਾ ਸੁਰੱਖਿਆ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" + +#~ msgid "Wireless" +#~ msgstr "ਬੇਤਾਰ" + +#~ msgid "Wireless connection %d" +#~ msgstr "ਬੇਤਾਰ ਕੁਨੈਕਸ਼ਨ %d" + +#~ msgid "_Import" +#~ msgstr "ਇੰਪੋਰਟ(_I)" + +#~ msgid "Could not edit imported connection" +#~ msgstr "ਇੰਪੋਰਟ ਕੀਤਾ ਕੁਨੈਕਸ਼ਨ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "ਕੋਈ VPN ਪਲੱਗਇਨ ਨਹੀਂ ਲੱਭੀ। ਇਹ ਬਟਨ ਚਾਲੂ ਕਰਨ ਲਈ ਕੋਈ ਇੰਸਟਾਲ ਕਰੋ।" + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "ਪਤਾ ਨਹੀਂ ਹੈ ਕਿ '%s' ਕੁਨੈਕਸ਼ਨ ਕਿਵੇਂ ਸੋਧਿਆ ਜਾਵੇ" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "ਬਲਿਊਟੁੱਥ ਜੰਤਰ ਲੱਭਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ।" + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "ਬਲਿਊਟੁੱਥ ਸੰਰਚਨਾ ਸੰਭਵ ਨਹੀਂ ਹੈ (D-Bus ਪਰਾਕਸੀ ਨਾਲ ਜੁੜਨ ਤੋਂ ਫੇਲ ਹੋਇਆ ਹੈ: %s)।" + #~ msgid "Click on this icon to connect to a wireless network" #~ msgstr "ਇਹ ਆਈਕਾਨ ਨੂੰ ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਲਈ ਕਲਿੱਕ ਕਰੋ" @@ -2804,9 +3121,6 @@ #~ msgid "United Kingdom" #~ msgstr "ਯੂਨਾਈਟਡ ਕਿੰਗਡਮ" -#~ msgid "C_onnect" -#~ msgstr "ਕੁਨੈਕਸ਼ਨ(_o)" - #~ msgid "Other Wireless Network..." #~ msgstr "...ਹੋਰ ਬੇਤਾਰ ਨੈੱਟਵਰਕ" @@ -3051,9 +3365,6 @@ #~ msgid "GSM connection %d" #~ msgstr "GSM ਕੁਨੈਕਸ਼ਨ %d" -#~ msgid "CDMA connection %d" -#~ msgstr "CDMA ਕੁਨੈਕਸ਼ਨ %d" - #~ msgid "Modify Wireless Networks" #~ msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਸੋਧ" diff -Nru network-manager-applet-0.9.4.1/po/pl.po network-manager-applet-0.9.6.2+git201210311320.2620/po/pl.po --- network-manager-applet-0.9.4.1/po/pl.po 2012-03-23 20:29:08.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/pl.po 2012-10-31 13:20:57.000000000 +0000 @@ -4,12 +4,17 @@ # pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas: # gnomepl@aviary.pl # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +# Wadim Dziedzic , 2006-2008. +# Tomasz Dominikowski , 2007-2009. +# Piotr Zaryk , 2008. +# Piotr Drąg , 2009-2012. +# Aviary.pl , 2006-2012. msgid "" msgstr "" "Project-Id-Version: network-manager-applet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 16:14+0100\n" -"PO-Revision-Date: 2012-03-23 16:15+0100\n" +"POT-Creation-Date: 2012-10-04 21:59+0200\n" +"PO-Revision-Date: 2012-10-04 22:00+0200\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" @@ -29,247 +34,681 @@ msgid "Manage your network connections" msgstr "Zarządzanie połączeniami sieciowymi" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Połączenia sieciowe" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Zarządzanie ustawieniami połączeń sieciowych" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Wyłączenie powiadomień o połączeniu" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" -"Ustawienie na \"True\" wyłącza powiadomienia podczas łączenia z siecią." +"Ustawienie na \"true\" wyłącza powiadomienia podczas łączenia z siecią." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Wyłączenie powiadomień o rozłączeniu" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "" +"Ustawienie na \"true\" wyłącza powiadomienia podczas rozłączania z sieci." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Wyłączenie powiadomień VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." msgstr "" -"Ustawienie na \"True\" wyłącza powiadomienia podczas rozłączenia z sieci." +"Ustawienie na \"true\" wyłącza powiadomienia podczas łączenia lub " +"rozłączania z sieci VPN." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Wyłączenie powiadomień o dostępnych sieciach" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when Wi-Fi networks are available." msgstr "" -"Ustawienie na \"True\" wyłącza powiadamiania o dostępności sieci " -"bezprzewodowych." +"Ustawienie na \"true\" wyłącza powiadomienia o dostępności sieci Wi-Fi." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Okres czasowy" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "Używane do określenia, czy ustawienia powinny zostać migrowane do nowej " "wersji." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Wyłączenie tworzenia sieci WiFi" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" -"Ustawienie na \"True\" wyłącza tworzenie sieci ad-hoc podczas używania " -"apletu." +"Ustawienie na \"true\" wyłącza możliwość tworzenia sieci ad-hoc podczas " +"używania apletu." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Połączenia sieciowe" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ignorowanie certyfikatu CA" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Zarządzanie ustawieniami połączeń sieciowych" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Ustawienie na \"true\" wyłącza ostrzeżenia o certyfikatach CA podczas " +"uwierzytelniania EAP." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Dostępne" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Ustawienie na \"true\" wyłącza ostrzeżenia o certyfikatach CA podczas " +"drugiego etapu uwierzytelniania EAP." -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Połączono z \"%s\"." +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "Uwierzytelnianie 802.1X" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Ustanowiono połączenie" +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_Nazwa sieci:" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Połączono z siecią komórkową." +#: ../src/applet.c:513 +msgid "Failed to add/activate connection" +msgstr "Dodanie/aktywowanie połączenia się nie powiodło" + +#: ../src/applet.c:515 ../src/applet.c:559 ../src/applet.c:585 +#: ../src/applet-device-wifi.c:1376 ../src/applet-device-wifi.c:1395 +msgid "Unknown error" +msgstr "Nieznany błąd" + +#: ../src/applet.c:518 ../src/applet.c:588 ../src/applet-device-wifi.c:1379 +#: ../src/applet-device-wifi.c:1398 +msgid "Connection failure" +msgstr "Niepowodzenie połączenia" + +#: ../src/applet.c:557 +msgid "Device disconnect failed" +msgstr "Rozłączenie urządzenia się nie powiodło" + +#: ../src/applet.c:562 +msgid "Disconnect failure" +msgstr "Niepowodzenie rozłączenia" + +#: ../src/applet.c:583 +msgid "Connection activation failed" +msgstr "Aktywacja połączenia się nie powiodła" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:953 ../src/applet-device-wifi.c:1069 +msgid "Don't show this message again" +msgstr "Nie wyświetlaj tego komunikatu ponownie" + +#: ../src/applet.c:1042 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Przygotowywanie połączenia komórkowego \"%s\"..." +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"Połączenie VPN \"%s\" się nie powiodło, ponieważ połączenie sieciowe zostało " +"przerwane." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1045 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Konfigurowanie połączenia komórkowego \"%s\"..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"Połączenie VPN \"%s\" się nie powiodło, ponieważ usługa VPN została " +"nieoczekiwanie zatrzymana." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1048 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "Wymagane uwierzytelnienie dla połączenia komórkowego \"%s\"..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"Połączenie VPN \"%s\" się nie powiodło, ponieważ usługa VPN nie zwróciła " +"odpowiedniej konfiguracji sieci." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2503 +#: ../src/applet.c:1051 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Żądanie adresu sieciowego dla \"%s\"..." +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"Połączenie VPN \"%s\" się nie powiodło z powodu przekroczenia limitu czasu." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1054 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "Nawiązano połączenie komórkowe \"%s\"" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"Połączenie VPN \"%s\" się nie powiodło, ponieważ usługa VPN nie została " +"uruchomiona na czas." -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1057 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"Połączenie VPN \"%s\" się nie powiodło, ponieważ usługa VPN nie mogła zostać " +"uruchomiona." -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:424 +#: ../src/applet.c:1060 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Komórkowe (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"Połączenie VPN \"%s\" się nie powiodło z powodu braku prawidłowych sekretów " +"VPN." -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1510 -msgid "Mobile Broadband" -msgstr "Komórkowe" +#: ../src/applet.c:1063 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"Połączenie VPN \"%s\" się nie powiodło z powodu nieprawidłowych sekretów VPN." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Nowe połączenie komórkowe (CDMA)..." +#: ../src/applet.c:1070 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"Połączenie VPN \"%s\" się nie powiodło." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Połączono z siecią CDMA." +#: ../src/applet.c:1088 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"Połączenie VPN \"%s\" rozłączone, ponieważ połączenie sieciowe zostało " +"przerwane." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1091 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Połączenie komórkowe \"%s\" jest aktywne: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"Połączenie VPN \"%s\" rozłączone, ponieważ usługa VPN została zatrzymana." -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "roaming" +#: ../src/applet.c:1097 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"Połączenie VPN \"%s\" zostało rozłączone." -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "Sieć CDMA." +#: ../src/applet.c:1127 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"Połączenie VPN zostało pomyślnie ustanowione.\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Zarejestrowano w sieci domowej." +#: ../src/applet.c:1129 +msgid "VPN connection has been successfully established.\n" +msgstr "Połączenie VPN zostało pomyślnie ustanowione.\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Zarejestrowano w sieci roamingowej." +#: ../src/applet.c:1131 +msgid "VPN Login Message" +msgstr "Wiadomość logowania VPN" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1137 ../src/applet.c:1145 ../src/applet.c:1195 +msgid "VPN Connection Failed" +msgstr "Połączenie VPN się nie powiodło" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Nowe połączenie komórkowe (GSM)..." +#: ../src/applet.c:1202 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Połączenie VPN \"%s\" się nie powiodło, ponieważ usługa VPN nie mogła zostać " +"uruchomiona.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Połączono z siecią GSM." +#: ../src/applet.c:1205 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Uruchomienie połączenia VPN \"%s\" się nie powiodło.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "Wymagany kod PIN" +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "urządzenie nie jest gotowe (brak oprogramowania sprzętowego)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "Wymagany kod PIN dla urządzenia dostępowego do sieci komórkowej" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "urządzenie nie jest gotowe" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "Kod PIN dla karty SIM \"%s\" w \"%s\"" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 ../src/applet-device-ethernet.c:229 +msgid "disconnected" +msgstr "rozłączone" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "Błędny kod PIN. Proszę skontaktować się z dostawcą." +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "Rozłącz" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "Błędny kod PUK. Proszę skontaktować się z dostawcą." +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "urządzenie nieobsługiwane" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "Wysyłanie kodu odblokowania..." +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "Brak dostępnych urządzeń sieciowych" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "Wymagany kod PIN odblokowania karty SIM" +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "Połączenia _VPN" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "Wymagany kod PIN odblokowania karty SIM" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "S_konfiguruj VPN..." -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "_Rozłącz VPN" + +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "Usługa NetworkManager nie jest uruchomiona..." + +#: ../src/applet.c:1854 ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "Sieć wyłączona" + +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "_Sieć" + +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +msgid "Enable _Wi-Fi" +msgstr "Sieć _Wi-Fi" + +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "Sieć _komórkowa" + +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Sieć komórkowa WiMA_X" + +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "P_owiadomienia" + +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "I_nformacje o połączeniu" + +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "Modyfikuj połączenia..." + +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "Pomo_c" + +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "_O programie" + +#: ../src/applet.c:2335 +msgid "Disconnected" +msgstr "Rozłączony" + +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "Połączenie sieciowe zostało rozłączone." + +#: ../src/applet.c:2519 +#, c-format +msgid "Preparing network connection '%s'..." +msgstr "Przygotowywanie połączenia sieciowego \"%s\"..." + +#: ../src/applet.c:2522 +#, c-format +msgid "User authentication required for network connection '%s'..." +msgstr "Wymagane uwierzytelnienie dla połączenia sieciowego \"%s\"..." + +#: ../src/applet.c:2525 ../src/applet-device-bt.c:235 +#: ../src/applet-device-cdma.c:484 ../src/applet-device-gsm.c:538 +#: ../src/applet-device-wimax.c:469 +#, c-format +msgid "Requesting a network address for '%s'..." +msgstr "Żądanie adresu sieciowego dla \"%s\"..." + +#: ../src/applet.c:2528 +#, c-format +msgid "Network connection '%s' active" +msgstr "Nawiązano połączenie sieciowe \"%s\"" + +#: ../src/applet.c:2611 +#, c-format +msgid "Starting VPN connection '%s'..." +msgstr "Nawiązywanie połączenia VPN \"%s\"..." + +#: ../src/applet.c:2614 +#, c-format +msgid "User authentication required for VPN connection '%s'..." +msgstr "Wymagane uwierzytelnienie dla połączenia VPN \"%s\"..." + +#: ../src/applet.c:2617 +#, c-format +msgid "Requesting a VPN address for '%s'..." +msgstr "Żądanie adresu VPN dla \"%s\"..." + +#: ../src/applet.c:2620 +#, c-format +msgid "VPN connection '%s' active" +msgstr "Nawiązano połączenie VPN \"%s\"" + +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "Brak połączenia sieciowego" + +#: ../src/applet.c:3362 +msgid "NetworkManager Applet" +msgstr "Aplet NetworkManager" + +#: ../src/applet-device-bt.c:169 ../src/applet-device-cdma.c:393 +#: ../src/applet-device-ethernet.c:237 ../src/applet-device-gsm.c:447 +#: ../src/applet-device-wifi.c:859 ../src/applet-device-wimax.c:275 +msgid "Available" +msgstr "Dostępne" + +#: ../src/applet-device-bt.c:195 ../src/applet-device-cdma.c:435 +#: ../src/applet-device-ethernet.c:266 ../src/applet-device-gsm.c:489 +#: ../src/applet-device-wimax.c:419 +#, c-format +msgid "You are now connected to '%s'." +msgstr "Połączono z \"%s\"." + +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:439 +#: ../src/applet-device-ethernet.c:270 ../src/applet-device-gsm.c:493 +#: ../src/applet-device-wifi.c:1261 ../src/applet-device-wimax.c:423 +msgid "Connection Established" +msgstr "Ustanowiono połączenie" + +#: ../src/applet-device-bt.c:200 +msgid "You are now connected to the mobile broadband network." +msgstr "Połączono z siecią komórkową." + +#: ../src/applet-device-bt.c:226 ../src/applet-device-cdma.c:475 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:460 +#, c-format +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Przygotowywanie połączenia komórkowego \"%s\"..." + +#: ../src/applet-device-bt.c:229 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:463 +#, c-format +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Konfigurowanie połączenia komórkowego \"%s\"..." + +#: ../src/applet-device-bt.c:232 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:466 +#, c-format +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "Wymagane uwierzytelnienie dla połączenia komórkowego \"%s\"..." + +#: ../src/applet-device-bt.c:239 ../src/applet-device-cdma.c:502 +#: ../src/applet-device-gsm.c:556 +#, c-format +msgid "Mobile broadband connection '%s' active" +msgstr "Nawiązano połączenie komórkowe \"%s\"" + +#: ../src/applet-device-cdma.c:182 ../src/connection-editor/page-mobile.c:715 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" + +#: ../src/applet-device-cdma.c:339 ../src/applet-device-gsm.c:393 +#: ../src/applet-dialogs.c:424 +#, c-format +msgid "Mobile Broadband (%s)" +msgstr "Komórkowe (%s)" + +#: ../src/applet-device-cdma.c:341 ../src/applet-device-gsm.c:395 +#: ../src/connection-editor/new-connection.c:112 +#: ../src/connection-editor/page-mobile.c:389 +#: ../src/libnm-gtk/nm-ui-utils.c:333 +msgid "Mobile Broadband" +msgstr "Komórkowe" + +#. Default connection item +#: ../src/applet-device-cdma.c:406 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Nowe połączenie komórkowe (CDMA)..." + +#: ../src/applet-device-cdma.c:440 +msgid "You are now connected to the CDMA network." +msgstr "Połączono z siecią CDMA." + +#: ../src/applet-device-cdma.c:497 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:478 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "Połączenie komórkowe \"%s\" jest aktywne: (%d%%%s%s)" + +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:554 +#: ../src/applet-device-wimax.c:481 +msgid "roaming" +msgstr "roaming" + +#: ../src/applet-device-cdma.c:641 ../src/applet-device-cdma.c:647 +msgid "CDMA network." +msgstr "Sieć CDMA." + +#: ../src/applet-device-cdma.c:642 ../src/applet-device-gsm.c:1199 +msgid "You are now registered on the home network." +msgstr "Zarejestrowano w sieci domowej." + +#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1205 +msgid "You are now registered on a roaming network." +msgstr "Zarejestrowano w sieci roamingowej." + +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "Automatyczne połączenie ethernetowe" + +#: ../src/applet-device-ethernet.c:202 +#, c-format +msgid "Ethernet Networks (%s)" +msgstr "Sieci ethernetowe (%s)" + +#: ../src/applet-device-ethernet.c:204 +#, c-format +msgid "Ethernet Network (%s)" +msgstr "Sieć ethernetowa (%s)" + +#: ../src/applet-device-ethernet.c:207 +msgid "Ethernet Networks" +msgstr "Sieci ethernetowe" + +#: ../src/applet-device-ethernet.c:209 +msgid "Ethernet Network" +msgstr "Sieć ethernetowa" + +#: ../src/applet-device-ethernet.c:271 +msgid "You are now connected to the ethernet network." +msgstr "Połączono z siecią ethernetową." + +#: ../src/applet-device-ethernet.c:297 +#, c-format +msgid "Preparing ethernet network connection '%s'..." +msgstr "Przygotowywanie ethernetowego połączenia sieciowego \"%s\"..." + +#: ../src/applet-device-ethernet.c:300 +#, c-format +msgid "Configuring ethernet network connection '%s'..." +msgstr "Konfigurowanie ethernetowego połączenia sieciowego \"%s\"..." + +#: ../src/applet-device-ethernet.c:303 +#, c-format +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "" +"Wymagane uwierzytelnienie dla ethernetowego połączenia sieciowego \"%s\"..." + +#: ../src/applet-device-ethernet.c:306 +#, c-format +msgid "Requesting an ethernet network address for '%s'..." +msgstr "Żądanie ethernetowego adresu sieciowego dla \"%s\"..." + +#: ../src/applet-device-ethernet.c:310 +#, c-format +msgid "Ethernet network connection '%s' active" +msgstr "Nawiązano ethernetowe połączenie sieciowe \"%s\"" + +#: ../src/applet-device-ethernet.c:491 +msgid "DSL authentication" +msgstr "Uwierzytelnianie DSL" + +#: ../src/applet-device-gsm.c:214 ../src/connection-editor/page-mobile.c:718 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" + +#. Default connection item +#: ../src/applet-device-gsm.c:460 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Nowe połączenie komórkowe (GSM)..." + +#: ../src/applet-device-gsm.c:494 +msgid "You are now connected to the GSM network." +msgstr "Połączono z siecią GSM." + +#: ../src/applet-device-gsm.c:655 +msgid "PIN code required" +msgstr "Wymagany kod PIN" + +#: ../src/applet-device-gsm.c:663 +msgid "PIN code is needed for the mobile broadband device" +msgstr "Wymagany kod PIN dla urządzenia dostępowego do sieci komórkowej" + +#: ../src/applet-device-gsm.c:784 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "Kod PIN dla karty SIM \"%s\" w \"%s\"" + +#: ../src/applet-device-gsm.c:876 +msgid "Wrong PIN code; please contact your provider." +msgstr "Błędny kod PIN. Proszę skontaktować się z dostawcą." + +#: ../src/applet-device-gsm.c:899 +msgid "Wrong PUK code; please contact your provider." +msgstr "Błędny kod PUK. Proszę skontaktować się z dostawcą." + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:926 +msgid "Sending unlock code..." +msgstr "Wysyłanie kodu odblokowania..." + +#: ../src/applet-device-gsm.c:989 +msgid "SIM PIN unlock required" +msgstr "Wymagany kod PIN odblokowania karty SIM" + +#: ../src/applet-device-gsm.c:990 +msgid "SIM PIN Unlock Required" +msgstr "Wymagany kod PIN odblokowania karty SIM" + +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:992 +#, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " "used." msgstr "Urządzenie komórkowe \"%s\" wymaga kodu PIN karty SIM przed użyciem." #. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 +#: ../src/applet-device-gsm.c:994 msgid "PIN code:" msgstr "Kod PIN:" #. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 +#: ../src/applet-device-gsm.c:998 msgid "Show PIN code" msgstr "Wyświetlanie kodu PIN" -#: ../src/applet-device-gsm.c:1000 +#: ../src/applet-device-gsm.c:1001 msgid "SIM PUK unlock required" msgstr "Wymagany kod PUK odblokowania karty SIM" -#: ../src/applet-device-gsm.c:1001 +#: ../src/applet-device-gsm.c:1002 msgid "SIM PUK Unlock Required" msgstr "Wymagany kod PUK odblokowania karty SIM" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#: ../src/applet-device-gsm.c:1004 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " @@ -277,215 +716,139 @@ msgstr "Urządzenie komórkowe \"%s\" wymaga kodu PUK karty SIM przed użyciem." #. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 +#: ../src/applet-device-gsm.c:1006 msgid "PUK code:" msgstr "Kod PUK:" #. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 +#: ../src/applet-device-gsm.c:1009 msgid "New PIN code:" msgstr "Nowy kod PIN:" #. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 +#: ../src/applet-device-gsm.c:1011 msgid "Re-enter new PIN code:" msgstr "Proszę ponownie wprowadzić nowy kod PIN:" #. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 +#: ../src/applet-device-gsm.c:1016 msgid "Show PIN/PUK codes" msgstr "Wyświetlanie kodów PIN/PUK" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 +#: ../src/applet-device-gsm.c:1198 ../src/applet-device-gsm.c:1204 msgid "GSM network." msgstr "Sieć GSM." -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "Automatyczne połączenie Ethernet" - -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "Sieci przewodowe (%s)" - -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "Sieć przewodowa (%s)" - -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "Sieci przewodowe" - -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "Sieć przewodowa" - -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1509 -msgid "disconnected" -msgstr "rozłączone" - -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "Połączono z siecią przewodową." - -#: ../src/applet-device-wired.c:300 -#, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Przygotowywanie przewodowego połączenia sieciowego \"%s\"..." - -#: ../src/applet-device-wired.c:303 -#, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "Konfigurowanie przewodowego połączenia sieciowego \"%s\"..." - -#: ../src/applet-device-wired.c:306 -#, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "" -"Wymagane uwierzytelnienie dla przewodowego połączenia sieciowego \"%s\"..." - -#: ../src/applet-device-wired.c:309 -#, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "Żądanie adresu sieciowego dla \"%s\"..." - -#: ../src/applet-device-wired.c:313 -#, c-format -msgid "Wired network connection '%s' active" -msgstr "Nawiązano przewodowe połączenie sieciowe \"%s\"" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "Uwierzytelnianie DSL" +#: ../src/applet-device-wifi.c:98 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "_Połącz z ukrytą siecią Wi-Fi..." + +#: ../src/applet-device-wifi.c:149 +msgid "Create _New Wi-Fi Network..." +msgstr "Utwórz _nową sieć Wi-Fi..." -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "_Połącz z ukrytą siecią bezprzewodową..." - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "Utwórz nową sieć _bezprzewodową..." - -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:293 msgid "(none)" msgstr "(brak)" -#: ../src/applet-device-wifi.c:792 +#: ../src/applet-device-wifi.c:787 #, c-format -msgid "Wireless Networks (%s)" -msgstr "Sieci bezprzewodowe (%s)" +msgid "Wi-Fi Networks (%s)" +msgstr "Sieci Wi-Fi (%s)" -#: ../src/applet-device-wifi.c:794 +#: ../src/applet-device-wifi.c:789 #, c-format -msgid "Wireless Network (%s)" -msgstr "Sieć bezprzewodowa (%s)" +msgid "Wi-Fi Network (%s)" +msgstr "Sieć Wi-Fi (%s)" -#: ../src/applet-device-wifi.c:796 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Sieć bezprzewodowa" -msgstr[1] "Sieci bezprzewodowe" -msgstr[2] "Sieci bezprzewodowe" +#: ../src/applet-device-wifi.c:791 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Sieć Wi-Fi" +msgstr[1] "Sieci Wi-Fi" +msgstr[2] "Sieci Wi-Fi" -#: ../src/applet-device-wifi.c:829 -msgid "wireless is disabled" -msgstr "sieć bezprzewodowa jest wyłączona" +#: ../src/applet-device-wifi.c:824 +msgid "Wi-Fi is disabled" +msgstr "Wi-Fi jest wyłączone" -#: ../src/applet-device-wifi.c:830 -msgid "wireless is disabled by hardware switch" -msgstr "sieć bezprzewodowa jest wyłączona przez przełącznik sprzętowy" +#: ../src/applet-device-wifi.c:825 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Wi-Fi jest wyłączone przez przełącznik sprzętowy" -#: ../src/applet-device-wifi.c:891 +#: ../src/applet-device-wifi.c:886 msgid "More networks" msgstr "Więcej sieci" -#: ../src/applet-device-wifi.c:1071 -msgid "Wireless Networks Available" -msgstr "Dostępne sieci bezprzewodowe" - -#: ../src/applet-device-wifi.c:1072 -msgid "Use the network menu to connect to a wireless network" -msgstr "Należy użyć menu sieci, aby połączyć z siecią bezprzewodową" +#: ../src/applet-device-wifi.c:1065 +msgid "Wi-Fi Networks Available" +msgstr "Dostępne sieci Wi-Fi" -#: ../src/applet-device-wifi.c:1075 ../src/applet.c:925 -msgid "Don't show this message again" -msgstr "Nie wyświetlaj tego komunikatu ponownie" +#: ../src/applet-device-wifi.c:1066 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Należy użyć menu sieci, aby połączyć z siecią Wi-Fi" -#: ../src/applet-device-wifi.c:1267 +#: ../src/applet-device-wifi.c:1260 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Połączono z siecią bezprzewodową \"%s\"." +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Połączono z siecią Wi-Fi \"%s\"." -#: ../src/applet-device-wifi.c:1298 +#: ../src/applet-device-wifi.c:1291 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Przygotowywanie bezprzewodowego połączenia sieciowego \"%s\"..." +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Przygotowywanie połączenia sieciowego Wi-Fi \"%s\"..." -#: ../src/applet-device-wifi.c:1301 +#: ../src/applet-device-wifi.c:1294 #, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Konfigurowanie bezprzewodowego połączenia sieciowego \"%s\"..." +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Konfigurowanie połączenia sieciowego Wi-Fi \"%s\"..." -#: ../src/applet-device-wifi.c:1304 +#: ../src/applet-device-wifi.c:1297 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "" -"Wymagane uwierzytelnienie dla bezprzewodowego połączenia sieciowego \"%s\"..." +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "Wymagane uwierzytelnienie dla sieci Wi-Fi \"%s\"..." -#: ../src/applet-device-wifi.c:1307 +#: ../src/applet-device-wifi.c:1300 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Żądanie adresu sieciowego dla \"%s\"..." +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Żądanie adresu sieciowego Wi-Fi dla \"%s\"..." -#: ../src/applet-device-wifi.c:1328 +#: ../src/applet-device-wifi.c:1321 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "Nawiązano bezprzewodowe połączenie sieciowe \"%s\": %s (%d%%)" +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Nawiązano bezprzewodowe połączenie sieciowe Wi-Fi \"%s\": %s (%d%%)" -#: ../src/applet-device-wifi.c:1333 +#: ../src/applet-device-wifi.c:1326 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "Nawiązano bezprzewodowe połączenie sieciowe \"%s\"" +msgid "Wi-Fi network connection '%s' active" +msgstr "Nawiązano połączenie sieciowe Wi-Fi \"%s\"" -#: ../src/applet-device-wifi.c:1381 +#: ../src/applet-device-wifi.c:1374 msgid "Failed to activate connection" msgstr "Aktywowanie połączenia się nie powiodło" -#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 -#: ../src/applet.c:491 ../src/applet.c:535 ../src/applet.c:561 -msgid "Unknown error" -msgstr "Nieznany błąd" - -#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 -#: ../src/applet.c:494 ../src/applet.c:564 -msgid "Connection failure" -msgstr "Niepowodzenie połączenia" - -#: ../src/applet-device-wifi.c:1400 +#: ../src/applet-device-wifi.c:1393 msgid "Failed to add new connection" msgstr "Dodanie nowego połączenia się nie powiodło" -#: ../src/applet-device-wimax.c:231 +#: ../src/applet-device-wimax.c:227 #, c-format msgid "WiMAX Mobile Broadband (%s)" msgstr "Komórkowe WiMAX (%s)" -#: ../src/applet-device-wimax.c:233 +#: ../src/applet-device-wimax.c:229 msgid "WiMAX Mobile Broadband" msgstr "Komórkowe WiMAX" -#: ../src/applet-device-wimax.c:259 +#: ../src/applet-device-wimax.c:255 msgid "WiMAX is disabled" msgstr "WiMAX jest wyłączone" -#: ../src/applet-device-wimax.c:260 +#: ../src/applet-device-wimax.c:256 msgid "WiMAX is disabled by hardware switch" msgstr "WiMAX jest wyłączony przez przełącznik sprzętowy" -#: ../src/applet-device-wimax.c:428 +#: ../src/applet-device-wimax.c:424 msgid "You are now connected to the WiMAX network." msgstr "Połączono z siecią WiMAX." @@ -494,8 +857,8 @@ msgstr "Błąd podczas wyświetlania informacji o połączeniu:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:313 -#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:924 #: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -514,8 +877,7 @@ msgstr "WEP" #: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 -#: ../src/connection-editor/page-wireless-security.c:265 -#: ../src/libnm-gtk/nm-wireless-dialog.c:905 +#: ../src/libnm-gtk/nm-wifi-dialog.c:881 msgctxt "Wifi/wired security" msgid "None" msgstr "Brak" @@ -620,454 +982,115 @@ msgstr "Adres IP:" #: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 -msgctxt "Address" -msgid "Unknown" -msgstr "Nieznany" - -#: ../src/applet-dialogs.c:569 -msgid "Broadcast Address:" -msgstr "Adres rozgłoszeniowy:" - -#. Prefix -#: ../src/applet-dialogs.c:578 -msgid "Subnet Mask:" -msgstr "Maska podsieci:" - -#: ../src/applet-dialogs.c:580 -msgctxt "Subnet Mask" -msgid "Unknown" -msgstr "Nieznana" - -#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 -msgid "Default Route:" -msgstr "Domyślna droga:" - -#: ../src/applet-dialogs.c:600 -msgid "Primary DNS:" -msgstr "Główny DNS:" - -#: ../src/applet-dialogs.c:609 -msgid "Secondary DNS:" -msgstr "Drugorzędny DNS:" - -#: ../src/applet-dialogs.c:619 -msgid "Ternary DNS:" -msgstr "Trzeciorzędny DNS:" - -#. --- IPv6 --- -#: ../src/applet-dialogs.c:634 -msgid "IPv6" -msgstr "IPv6" - -#: ../src/applet-dialogs.c:643 -msgid "Ignored" -msgstr "Ignorowanie" - -#: ../src/applet-dialogs.c:796 -msgid "VPN Type:" -msgstr "Typ VPN:" - -#: ../src/applet-dialogs.c:803 -msgid "VPN Gateway:" -msgstr "Brama VPN:" - -#: ../src/applet-dialogs.c:809 -msgid "VPN Username:" -msgstr "Nazwa użytkownika VPN:" - -#: ../src/applet-dialogs.c:815 -msgid "VPN Banner:" -msgstr "Baner VPN:" - -#: ../src/applet-dialogs.c:821 -msgid "Base Connection:" -msgstr "Podstawowe połączenie:" - -#: ../src/applet-dialogs.c:823 -msgid "Unknown" -msgstr "Nieznane" - -#. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:886 -msgid "No valid active connections found!" -msgstr "Nie odnaleziono prawidłowych aktywnych połączeń." - -#: ../src/applet-dialogs.c:939 -msgid "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"and many other community contributors and translators" -msgstr "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"oraz wielu innych współtwórców i tłumaczy społeczności" - -#: ../src/applet-dialogs.c:942 -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "" -"Aplet obszaru powiadamiania do zarządzania urządzeniami i połączeniami " -"sieciowymi." - -#: ../src/applet-dialogs.c:944 -msgid "NetworkManager Website" -msgstr "Witryna programu NetworkManager" - -#: ../src/applet-dialogs.c:959 -msgid "Missing resources" -msgstr "Brakujące zasoby" - -#: ../src/applet-dialogs.c:984 -msgid "Mobile broadband network password" -msgstr "Hasło do sieci komórkowej" - -#: ../src/applet-dialogs.c:993 -#, c-format -msgid "A password is required to connect to '%s'." -msgstr "Wymagane hasło do połączenia z \"%s\"." - -#: ../src/applet-dialogs.c:1012 -msgid "Password:" -msgstr "Hasło:" - -#: ../src/applet.c:489 -msgid "Failed to add/activate connection" -msgstr "Dodanie/aktywowanie połączenia się nie powiodło" - -#: ../src/applet.c:533 -msgid "Device disconnect failed" -msgstr "Rozłączenie urządzenia się nie powiodło" - -#: ../src/applet.c:538 -msgid "Disconnect failure" -msgstr "Niepowodzenie rozłączenia" - -#: ../src/applet.c:559 -msgid "Connection activation failed" -msgstr "Aktywacja połączenia się nie powiodła" - -#: ../src/applet.c:1014 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"Połączenie VPN \"%s\" się nie powiodło, ponieważ połączenie sieciowe zostało " -"przerwane." - -#: ../src/applet.c:1017 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"Połączenie VPN \"%s\" się nie powiodło, ponieważ usługa VPN została " -"nieoczekiwanie zatrzymana." - -#: ../src/applet.c:1020 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"Połączenie VPN \"%s\" się nie powiodło, ponieważ usługa VPN nie zwróciła " -"odpowiedniej konfiguracji sieci." - -#: ../src/applet.c:1023 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"Połączenie VPN \"%s\" się nie powiodło z powodu przekroczenia limitu czasu." - -#: ../src/applet.c:1026 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"Połączenie VPN \"%s\" się nie powiodło, ponieważ usługa VPN nie została " -"uruchomiona na czas." - -#: ../src/applet.c:1029 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"Połączenie VPN \"%s\" się nie powiodło, ponieważ usługa VPN nie mogła zostać " -"uruchomiona." - -#: ../src/applet.c:1032 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"Połączenie VPN \"%s\" się nie powiodło z powodu braku prawidłowych sekretów " -"VPN." - -#: ../src/applet.c:1035 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"Połączenie VPN \"%s\" się nie powiodło z powodu nieprawidłowych sekretów VPN." - -#: ../src/applet.c:1042 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"Połączenie VPN \"%s\" się nie powiodło." - -#: ../src/applet.c:1060 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"Połączenie VPN \"%s\" rozłączone, ponieważ połączenie sieciowe zostało " -"przerwane." - -#: ../src/applet.c:1063 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"Połączenie VPN \"%s\" rozłączone, ponieważ usługa VPN została zatrzymana." - -#: ../src/applet.c:1069 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"Połączenie VPN \"%s\" zostało rozłączone." - -#: ../src/applet.c:1103 -msgid "VPN Login Message" -msgstr "Wiadomość logowania VPN" - -#: ../src/applet.c:1109 ../src/applet.c:1117 ../src/applet.c:1167 -msgid "VPN Connection Failed" -msgstr "Połączenie VPN się nie powiodło" - -#: ../src/applet.c:1174 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Połączenie VPN \"%s\" się nie powiodło, ponieważ usługa VPN nie mogła zostać " -"uruchomiona.\n" -"\n" -"%s" - -#: ../src/applet.c:1177 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Uruchomienie połączenia VPN \"%s\" się nie powiodło.\n" -"\n" -"%s" - -#: ../src/applet.c:1497 -msgid "device not ready (firmware missing)" -msgstr "urządzenie nie jest gotowe (brak oprogramowania wbudowanego)" - -#: ../src/applet.c:1499 -msgid "device not ready" -msgstr "urządzenie nie jest gotowe" - -#: ../src/applet.c:1525 -msgid "Disconnect" -msgstr "Rozłącz" - -#: ../src/applet.c:1539 -msgid "device not managed" -msgstr "urządzenie nieobsługiwane" - -#: ../src/applet.c:1583 -msgid "No network devices available" -msgstr "Brak dostępnych urządzeń sieciowych" - -#: ../src/applet.c:1671 -msgid "_VPN Connections" -msgstr "Połączenia _VPN" - -#: ../src/applet.c:1728 -msgid "_Configure VPN..." -msgstr "S_konfiguruj VPN..." - -#: ../src/applet.c:1732 -msgid "_Disconnect VPN" -msgstr "_Rozłącz VPN" - -#: ../src/applet.c:1830 -msgid "NetworkManager is not running..." -msgstr "Usługa NetworkManager nie jest uruchomiona..." - -#: ../src/applet.c:1835 ../src/applet.c:2634 -msgid "Networking disabled" -msgstr "Sieć wyłączona" - -#. 'Enable Networking' item -#: ../src/applet.c:2056 -msgid "Enable _Networking" -msgstr "_Sieć" - -#. 'Enable Wireless' item -#: ../src/applet.c:2065 -msgid "Enable _Wireless" -msgstr "Sieć _bezprzewodowa" - -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2074 -msgid "Enable _Mobile Broadband" -msgstr "Sieć _komórkowa" - -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2083 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Sieć komórkowa WiMA_X" - -#. Toggle notifications item -#: ../src/applet.c:2094 -msgid "Enable N_otifications" -msgstr "P_owiadomienia" +msgctxt "Address" +msgid "Unknown" +msgstr "Nieznany" -#. 'Connection Information' item -#: ../src/applet.c:2105 -msgid "Connection _Information" -msgstr "I_nformacje o połączeniu" +#: ../src/applet-dialogs.c:569 +msgid "Broadcast Address:" +msgstr "Adres rozgłoszeniowy:" -#. 'Edit Connections...' item -#: ../src/applet.c:2115 -msgid "Edit Connections..." -msgstr "Modyfikuj połączenia..." +#. Prefix +#: ../src/applet-dialogs.c:578 +msgid "Subnet Mask:" +msgstr "Maska podsieci:" -#. Help item -#: ../src/applet.c:2129 -msgid "_Help" -msgstr "Pomo_c" +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Nieznana" -#. About item -#: ../src/applet.c:2138 -msgid "_About" -msgstr "_O programie" +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 +msgid "Default Route:" +msgstr "Domyślna droga:" -#: ../src/applet.c:2315 -msgid "Disconnected" -msgstr "Rozłączony" +#: ../src/applet-dialogs.c:600 +msgid "Primary DNS:" +msgstr "Główny DNS:" -#: ../src/applet.c:2316 -msgid "The network connection has been disconnected." -msgstr "Połączenie sieciowe zostało rozłączone." +#: ../src/applet-dialogs.c:609 +msgid "Secondary DNS:" +msgstr "Drugorzędny DNS:" -#: ../src/applet.c:2497 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Przygotowywanie połączenia sieciowego \"%s\"..." +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "Trzeciorzędny DNS:" -#: ../src/applet.c:2500 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Wymagane uwierzytelnienie dla połączenia sieciowego \"%s\"..." +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" -#: ../src/applet.c:2506 -#, c-format -msgid "Network connection '%s' active" -msgstr "Nawiązano połączenie sieciowe \"%s\"" +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "Ignorowanie" -#: ../src/applet.c:2589 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Nawiązywanie połączenia VPN \"%s\"..." +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "Typ VPN:" -#: ../src/applet.c:2592 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Wymagane uwierzytelnienie dla połączenia VPN \"%s\"..." +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "Brama VPN:" -#: ../src/applet.c:2595 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Żądanie adresu VPN dla \"%s\"..." +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "Nazwa użytkownika VPN:" -#: ../src/applet.c:2598 -#, c-format -msgid "VPN connection '%s' active" -msgstr "Nawiązano połączenie VPN \"%s\"" +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "Baner VPN:" -#: ../src/applet.c:2639 -msgid "No network connection" -msgstr "Brak połączenia sieciowego" +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Podstawowe połączenie:" -#: ../src/applet.c:3394 -msgid "NetworkManager Applet" -msgstr "Aplet NetworkManager" +#: ../src/applet-dialogs.c:823 ../src/libnm-gtk/nm-ui-utils.c:343 +msgid "Unknown" +msgstr "Nieznane" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Automatyczne odblokowywanie tego urządzenia" +#. Shouldn't really happen but ... +#: ../src/applet-dialogs.c:886 +msgid "No valid active connections found!" +msgstr "Nie odnaleziono prawidłowych aktywnych połączeń." -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "_Odblokuj" +#: ../src/applet-dialogs.c:939 +msgid "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" +msgstr "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"oraz wielu innych współtwórców i tłumaczy społeczności" -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "Informacje o połączeniu" +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"Aplet obszaru powiadamiania do zarządzania urządzeniami i połączeniami " +"sieciowymi." -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "Aktywne połączenia sieciowe" +#: ../src/applet-dialogs.c:944 +msgid "NetworkManager Website" +msgstr "Witryna programu NetworkManager" -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Przewodowe uwierzytelnianie 802.1X" +#: ../src/applet-dialogs.c:959 +msgid "Missing resources" +msgstr "Brakujące zasoby" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "_Nazwa sieci:" +#: ../src/applet-dialogs.c:984 +msgid "Mobile broadband network password" +msgstr "Hasło do sieci komórkowej" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "automatycznie" +#: ../src/applet-dialogs.c:993 +#, c-format +msgid "A password is required to connect to '%s'." +msgstr "Wymagane hasło do połączenia z \"%s\"." -#: ../src/connection-editor/ce-page.c:318 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "" -"Zaktualizowanie ustawień połączenia się nie powiodło z powodu nieznanego " -"błędu." +#: ../src/applet-dialogs.c:1012 +msgid "Password:" +msgstr "Hasło:" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 @@ -1099,8 +1122,141 @@ "Jeśli włączone, to połączenie nigdy nie będzie użyte jako domyślne " "połączenie sieciowe." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "Wybór typu połączenia" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"Należy wybrać typ VPN, który zamierza się nawiązać.\n" +"\n" +"Jeśli tworzone jest połączenie VPN, ale wymagany typ nie jest dostępny na " +"liście, odpowiednia wtyczka VPN może nie być zainstalowana." + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Utwórz…" + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "automatycznie" + +#: ../src/connection-editor/ce-page.c:356 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "" +"Zaktualizowanie ustawień połączenia się nie powiodło z powodu nieznanego " +"błędu." + +#: ../src/connection-editor/ce-page-bond.ui.h:1 +msgid "Round-robin" +msgstr "Round-Robin" + +#: ../src/connection-editor/ce-page-bond.ui.h:2 +msgid "Active backup" +msgstr "Aktywna rezerwa" + +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" +msgstr "XOR" + +#: ../src/connection-editor/ce-page-bond.ui.h:4 +msgid "Broadcast" +msgstr "Rozgłaszanie" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "802.3ad" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" +msgstr "Adaptacyjne równoważenie obciążenia przesyłu" + +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" +msgstr "Adaptacyjne równoważenie obciążenia" + +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "MII (zalecane)" + +#: ../src/connection-editor/ce-page-bond.ui.h:9 +msgid "ARP" +msgstr "ARP" + +#: ../src/connection-editor/ce-page-bond.ui.h:10 +msgid "Bonded _connections:" +msgstr "_Połączone połączenia:" + +#: ../src/connection-editor/ce-page-bond.ui.h:11 +msgid "_Mode:" +msgstr "_Tryb:" + +# na przycisku +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit" +msgstr "_Modyfikuj" + +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete" +msgstr "_Usuń" + +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "_Częstotliwość monitorowania:" + +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "ms" + +#: ../src/connection-editor/ce-page-bond.ui.h:16 +msgid "_Interface name:" +msgstr "Nazwa _interfejsu:" + +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "_Monitorowanie łącza:" + +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "Cele A_RP:" + +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "" +"An IP address, or a comma-separated list of IP addresses, to look for when " +"checking the link status." +msgstr "" +"Adres IP lub lista adresów oddzielonych przecinkami do wyszukiwania podczas " +"sprawdzania stanu łącza." + +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "Opóźnienie _włączenia łącza:" + +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "_Opóźnienie wyłączenia łącza:" + #: ../src/connection-editor/ce-page-dsl.ui.h:1 -#: ../src/connection-editor/ce-page-mobile.ui.h:8 +#: ../src/connection-editor/ce-page-mobile.ui.h:10 #: ../src/wireless-security/eap-method-leap.ui.h:1 #: ../src/wireless-security/eap-method-simple.ui.h:1 #: ../src/wireless-security/ws-leap.ui.h:1 @@ -1122,7 +1278,7 @@ msgstr "_Wyświetlanie hasła" #: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/connection-editor/ce-page-mobile.ui.h:11 #: ../src/wireless-security/eap-method-leap.ui.h:2 #: ../src/wireless-security/eap-method-simple.ui.h:2 #: ../src/wireless-security/ws-leap.ui.h:2 @@ -1130,15 +1286,115 @@ msgid "_Password:" msgstr "_Hasło:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 #: ../src/connection-editor/ce-page-ip4.ui.h:1 #: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 #: ../src/connection-editor/page-ip6.c:142 #: ../src/wireless-security/eap-method-peap.ui.h:2 msgid "Automatic" msgstr "Automatycznie" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Skrętka (TP)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "AUI (Attachment Unit Interface)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "MII (Media Independent Interface)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Port:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "Pręd_kość:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Pełny duple_ks" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "Aut_omatyczna negocjacja" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "A_dres MAC urządzenia:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "Sk_lonowany adres MAC:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"Podany tu adres MAC będzie używany jako adres sprzętowy dla urządzenia " +"sieciowego, dla którego zostało utworzone to połączenie. Ta funkcja jest " +"znana jako klonowanie lub \"spoofing\" adresu MAC. Przykład: " +"00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-vlan.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-vlan.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "bajtów" + +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "_Tryb przesyłania:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagram" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "Połączony" + #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 msgid "Automatic with manual DNS settings" @@ -1198,11 +1454,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Dom_eny wyszukiwania:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "Serwery _DNS:" @@ -1265,43 +1525,51 @@ msgstr "Preferowanie 2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 +msgid "Prefer 4G (LTE)" +msgstr "Preferowanie 4G (LTE)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:7 +msgid "Use only 4G (LTE)" +msgstr "Używanie tylko 4G (LTE)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:8 msgid "Basic" msgstr "Podstawowe" -#: ../src/connection-editor/ce-page-mobile.ui.h:7 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "Nu_mer:" -#: ../src/connection-editor/ce-page-mobile.ui.h:10 +#: ../src/connection-editor/ce-page-mobile.ui.h:12 msgid "Advanced" msgstr "Zaawansowane" -#: ../src/connection-editor/ce-page-mobile.ui.h:11 +#: ../src/connection-editor/ce-page-mobile.ui.h:13 msgid "_APN:" msgstr "_APN:" -#: ../src/connection-editor/ce-page-mobile.ui.h:12 +#: ../src/connection-editor/ce-page-mobile.ui.h:14 msgid "N_etwork ID:" msgstr "Identyfikator si_eci:" -#: ../src/connection-editor/ce-page-mobile.ui.h:13 +#: ../src/connection-editor/ce-page-mobile.ui.h:15 #: ../src/wireless-security/ws-wpa-psk.ui.h:2 msgid "_Type:" msgstr "_Typ:" -#: ../src/connection-editor/ce-page-mobile.ui.h:14 +#: ../src/connection-editor/ce-page-mobile.ui.h:16 msgid "Change..." msgstr "Zmień..." -#: ../src/connection-editor/ce-page-mobile.ui.h:15 +#: ../src/connection-editor/ce-page-mobile.ui.h:17 msgid "P_IN:" msgstr "P_IN:" -#: ../src/connection-editor/ce-page-mobile.ui.h:16 +#: ../src/connection-editor/ce-page-mobile.ui.h:18 msgid "Allow _roaming if home network is not available" msgstr "Zezwolenie na _roaming, jeśli sieć domowa nie jest dostępna" -#: ../src/connection-editor/ce-page-mobile.ui.h:17 +#: ../src/connection-editor/ce-page-mobile.ui.h:19 msgid "Sho_w passwords" msgstr "_Wyświetlanie haseł" @@ -1353,150 +1621,96 @@ msgid "Send PPP _echo packets" msgstr "Wysyłanie pakietów _echo PPP" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "Skrętka (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "AUI (Attachment Unit Interface)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "MII (Media Independent Interface)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "_Port:" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "Pręd_kość:" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "Pełny duple_ks" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "Aut_omatyczna negocjacja" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "A_dres MAC urządzenia:" +#: ../src/connection-editor/ce-page-vlan.ui.h:1 +msgid "_Parent interface:" +msgstr "Interfejs na_drzędny:" + +#: ../src/connection-editor/ce-page-vlan.ui.h:2 +msgid "VLAN interface _name:" +msgstr "_Nazwa interfejsu VLAN:" -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "C_loned MAC address:" +#: ../src/connection-editor/ce-page-vlan.ui.h:3 +msgid "_Cloned MAC address:" msgstr "Sk_lonowany adres MAC:" -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"Podany tu adres MAC będzie używany jako adres sprzętowy dla urządzenia " -"sieciowego, dla którego zostało utworzone to połączenie. Ta funkcja jest " -"znana jako klonowanie lub \"spoofing\" adresu MAC. Przykład: " -"00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "_MTU:" -msgstr "_MTU:" +#: ../src/connection-editor/ce-page-vlan.ui.h:6 +msgid "VLAN _id:" +msgstr "_Identyfikator VLAN:" + +#. In context, this means "concatenate the device name and the VLAN ID number together" +#: ../src/connection-editor/ce-page-vlan.ui.h:8 +msgid "Device name + number" +msgstr "Nazwa urządzenia + numer" + +#. LEAVE "vlan" UNTRANSLATED. In context, this means "concatenate the string 'vlan' and the VLAN ID number together". +#: ../src/connection-editor/ce-page-vlan.ui.h:10 +msgid "\"vlan\" + number" +msgstr "\"vlan\" + numer" -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "bajtów" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "Zab_ezpieczenia:" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Infrastruktura" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "Ad-hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "mW" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "_Moc nadawania:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "P_rędkość:" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"Ta opcja blokuje to połączenie do bezprzewodowego punktu dostępowego (AP) " -"określonego przez BSSID. Przykład: 00:11:22:33:44:55" +"Ta opcja blokuje to połączenie do punktu dostępowego Wi-Fi (AP) określonego " +"przez BSSID. Przykład: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "Ka_nał:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "Pa_smo:" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "_Tryb:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "SS_ID:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "Zab_ezpieczenia:" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Dozwolone metody uwierzytelniania" @@ -1550,78 +1764,358 @@ "metody uwierzytelniania. Jeśli połączenie zawodzi, proszę spróbować wyłączyć " "obsługę niektórych metod." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Adres" + +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Maska sieci" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Brama" + +# http://en.wikipedia.org/wiki/Metrics_(networking) +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Parametry" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Przedrostek" + +#: ../src/connection-editor/new-connection.c:100 +#: ../src/connection-editor/page-ethernet.c:251 +#: ../src/libnm-gtk/nm-ui-utils.c:323 +msgid "Ethernet" +msgstr "Ethernet" + +#: ../src/connection-editor/new-connection.c:106 +#: ../src/connection-editor/page-wifi.c:439 ../src/libnm-gtk/nm-ui-utils.c:325 +msgid "Wi-Fi" +msgstr "Wi-Fi" + +#: ../src/connection-editor/new-connection.c:118 +#: ../src/connection-editor/page-wimax.c:134 +#: ../src/libnm-gtk/nm-ui-utils.c:331 ../src/mb-menu-item.c:75 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:124 +#: ../src/connection-editor/page-dsl.c:141 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:130 +#: ../src/connection-editor/page-infiniband.c:168 +#: ../src/libnm-gtk/nm-ui-utils.c:335 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:136 +#: ../src/connection-editor/page-bond.c:747 ../src/libnm-gtk/nm-ui-utils.c:337 +msgid "Bond" +msgstr "Łączenie" + +#: ../src/connection-editor/new-connection.c:142 +#: ../src/connection-editor/page-vlan.c:480 ../src/libnm-gtk/nm-ui-utils.c:339 +msgid "VLAN" +msgstr "VLAN" + +#: ../src/connection-editor/new-connection.c:155 +#: ../src/connection-editor/new-connection.c:294 +#: ../src/connection-editor/page-vpn.c:113 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:245 +msgid "Hardware" +msgstr "Sprzętowe" + +#: ../src/connection-editor/new-connection.c:265 +msgid "Virtual" +msgstr "Wirtualne" + +#: ../src/connection-editor/new-connection.c:332 +#: ../src/connection-editor/new-connection.c:334 +msgid "Import a saved VPN configuration..." +msgstr "Zaimportuj zapisaną konfigurację VPN..." + +#: ../src/connection-editor/new-connection.c:363 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"Nie można zainicjować okna dialogowego edytora połączeń z powodu nieznanego " +"błędu." + +#: ../src/connection-editor/new-connection.c:372 +msgid "Could not create new connection" +msgstr "Nie można utworzyć nowego połączenia" + +#: ../src/connection-editor/new-connection.c:507 +msgid "Connection delete failed" +msgstr "Usunięcie połączenia się nie powiodło" + +#: ../src/connection-editor/new-connection.c:554 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Na pewno usunąć połączenie %s?" + +#: ../src/connection-editor/nm-connection-editor.c:111 +#, c-format +msgid "Editing %s" +msgstr "Modyfikowanie %s" + +#: ../src/connection-editor/nm-connection-editor.c:115 +msgid "Editing un-named connection" +msgstr "Modyfikowanie połączenia bez nazwy" + +#: ../src/connection-editor/nm-connection-editor.c:302 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"Edytor połączeń nie może odnaleźć niektórych wymaganych zasobów (plik .ui " +"nie został odnaleziony)." + +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "_Save" +msgstr "Zapi_sz" + +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "Save any changes made to this connection." +msgstr "Zapis zmian dokonanych na tym połączeniu." + +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "_Save..." +msgstr "Zapi_sz..." + +#: ../src/connection-editor/nm-connection-editor.c:432 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "" +"Należy się uwierzytelnić, aby zapisać to połączenie dla wszystkich " +"użytkowników komputera." + +#: ../src/connection-editor/nm-connection-editor.c:448 +msgid "Could not create connection" +msgstr "Nie można utworzyć połączenia" + +#: ../src/connection-editor/nm-connection-editor.c:448 +msgid "Could not edit connection" +msgstr "Nie można zmodyfikować połączenia" + +#: ../src/connection-editor/nm-connection-editor.c:450 +msgid "Unknown error creating connection editor dialog." +msgstr "Nieznany błąd podczas tworzenia okna dialogowego edytora połączeń." + +#: ../src/connection-editor/nm-connection-editor.c:556 +msgid "Error saving connection" +msgstr "Błąd podczas zapisywania połączenia" + +#: ../src/connection-editor/nm-connection-editor.c:557 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Właściwość \"%s\" / \"%s\" jest nieprawidłowa: %d" + +#: ../src/connection-editor/nm-connection-editor.c:659 +msgid "Error initializing editor" +msgstr "Błąd podczas inicjowania edytora" + +#: ../src/connection-editor/nm-connection-editor.c:973 +msgid "Connection add failed" +msgstr "Dodanie połączenia się nie powiodło" + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "_Nazwa połączenia:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "Łączenie _automatyczne" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "_Dostępne dla wszystkich użytkowników" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "Wye_ksportuj..." + +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "nigdy" + +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "teraz" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minutę temu" +msgstr[1] "%d minuty temu" +msgstr[2] "%d minut temu" + +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d godzinę temu" +msgstr[1] "%d godziny temu" +msgstr[2] "%d godzin temu" + +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d dzień temu" +msgstr[1] "%d dni temu" +msgstr[2] "%d dni temu" + +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d miesiąc temu" +msgstr[1] "%d miesiące temu" +msgstr[2] "%d miesięcy temu" + +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "%d rok temu" +msgstr[1] "%d lata temu" +msgstr[2] "%d lat temu" + +#: ../src/connection-editor/nm-connection-list.c:628 +msgid "Name" +msgstr "Nazwa" + +#: ../src/connection-editor/nm-connection-list.c:641 +msgid "Last Used" +msgstr "Ostatnie użycie" + +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Edit the selected connection" +msgstr "Modyfikowanie zaznaczonego połączenia" + +#: ../src/connection-editor/nm-connection-list.c:684 +msgid "_Edit..." +msgstr "_Modyfikuj..." + +#: ../src/connection-editor/nm-connection-list.c:685 +msgid "Authenticate to edit the selected connection" +msgstr "Należy się uwierzytelnić, aby modyfikować zaznaczone połączenie" + +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Delete the selected connection" +msgstr "Usunięcie zaznaczonego połączenia" + +#: ../src/connection-editor/nm-connection-list.c:701 +msgid "_Delete..." +msgstr "_Usuń..." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Wybór typu połączenia VPN" +#: ../src/connection-editor/nm-connection-list.c:702 +msgid "Authenticate to delete the selected connection" +msgstr "Należy się uwierzytelnić, aby usunąć zaznaczone połączenie" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" -"Należy wybrać typ VPN, który zamierza się nawiązać. Jeśli wymagany typ " -"połączenia VPN nie jest dostępny w liście, odpowiednia wtyczka VPN może nie " -"być zainstalowana." +#: ../src/connection-editor/nm-connection-list.c:939 +msgid "Error creating connection" +msgstr "Błąd podczas tworzenia połączenia" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "Utwórz…" +#: ../src/connection-editor/nm-connection-list.c:940 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Nie wiadomo, jak utworzyć połączenia \"%s\"" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Adres" +#: ../src/connection-editor/nm-connection-list.c:995 +msgid "Error editing connection" +msgstr "Błąd podczas modyfikowania połączenia" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Maska sieci" +#: ../src/connection-editor/nm-connection-list.c:996 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Nie odnaleziono połączenia z UUID \"%s\"" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Brama" +#: ../src/connection-editor/page-8021x-security.c:121 +msgid "802.1x Security" +msgstr "Zabezpieczenia 802.1x" -# http://en.wikipedia.org/wiki/Metrics_(networking) -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Parametry" +#: ../src/connection-editor/page-8021x-security.c:123 +msgid "Could not load 802.1x Security user interface." +msgstr "Nie można wczytać interfejsu użytkownika zabezpieczeń 802.1x." -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Przedrostek" +#: ../src/connection-editor/page-8021x-security.c:141 +msgid "Use 802.1_X security for this connection" +msgstr "Użycie zabezpieczeń 802.1_X dla tego połączenia" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1518 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "%s podrzędny %d" -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-bond.c:750 +msgid "Could not load bond user interface." +msgstr "Nie można wczytać interfejsu użytkownika łączenia." + +#: ../src/connection-editor/page-bond.c:910 +#, c-format +msgid "Bond connection %d" +msgstr "Łączone połączenie %d" + +#: ../src/connection-editor/page-dsl.c:143 msgid "Could not load DSL user interface." msgstr "Nie można wczytać interfejsu użytkownika DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:235 #, c-format msgid "DSL connection %d" msgstr "Połączenie DSL %d" +#: ../src/connection-editor/page-ethernet.c:90 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Ta opcja blokuje to połączenie z urządzeniem sieciowym określonym przez " +"trwały adres MAC. Przykład: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:253 +msgid "Could not load ethernet user interface." +msgstr "Nie można wczytać interfejsu użytkownika połączenia ethernetowego." + +#: ../src/connection-editor/page-ethernet.c:396 +#, c-format +msgid "Ethernet connection %d" +msgstr "Połączenie ethernetowe %d" + +#: ../src/connection-editor/page-infiniband.c:171 +msgid "Could not load InfiniBand user interface." +msgstr "Nie można wczytać interfejsu użytkownika InfiniBand." + +#: ../src/connection-editor/page-infiniband.c:263 +#, c-format +msgid "InfiniBand connection %d" +msgstr "Połączenie InfiniBand %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1669,16 +2163,26 @@ msgid "Disabled" msgstr "Wyłączone" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "_Dodatkowe serwery DNS:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Dodatkowe dom_eny wyszukiwania:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Modyfikowanie tras IPv4 dla %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:994 msgid "IPv4 Settings" msgstr "Ustawienia IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:996 msgid "Could not load IPv4 user interface." msgstr "Nie można wczytać interfejsu użytkownika IPv4." @@ -1687,7 +2191,7 @@ msgstr "Automatycznie, tylko adresy" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ignorowanie" @@ -1695,33 +2199,33 @@ msgid "Automatic, DHCP only" msgstr "Automatycznie, tylko DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Modyfikowanie tras IPv6 dla %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:958 msgid "IPv6 Settings" msgstr "Ustawienia IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:960 msgid "Could not load IPv6 user interface." msgstr "Nie można wczytać interfejsu użytkownika IPv6." -#: ../src/connection-editor/page-mobile.c:381 +#: ../src/connection-editor/page-mobile.c:391 msgid "Could not load mobile broadband user interface." msgstr "Nie można wczytać interfejsu użytkownika połączeń komórkowych." -#: ../src/connection-editor/page-mobile.c:398 +#: ../src/connection-editor/page-mobile.c:408 msgid "Unsupported mobile broadband connection type." msgstr "Nieobsługiwany typ połączenia komórkowego." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:658 msgid "Select Mobile Broadband Provider Type" msgstr "Wybór typu dostawcy połączenia komórkowego" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:693 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." @@ -1729,352 +2233,84 @@ "Proszę wybrać technologię używaną przez dostawcę połączenia komórkowego. W " "razie wątpliwości należy zapytać dostawcę." -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:698 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "" "Dostawca używa technologii opartej na _GSM (np. GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:705 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "Dostawca używa technologii opartej na C_DMA (np. 1xRTT, EVDO)" -#: ../src/connection-editor/page-ppp.c:134 -msgid "EAP" -msgstr "EAP" - -#: ../src/connection-editor/page-ppp.c:135 -#: ../src/wireless-security/eap-method-ttls.c:230 -msgid "PAP" -msgstr "PAP" - -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:280 -msgid "CHAP" -msgstr "CHAP" - -#: ../src/connection-editor/page-ppp.c:137 -#: ../src/wireless-security/eap-method-fast.c:277 -#: ../src/wireless-security/eap-method-peap.c:246 -#: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "brak" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Modyfikowanie metod uwierzytelniania PPP dla %s" - -#: ../src/connection-editor/page-ppp.c:282 -msgid "PPP Settings" -msgstr "Ustawienia PPP" - -#: ../src/connection-editor/page-ppp.c:284 -msgid "Could not load PPP user interface." -msgstr "Nie można wczytać interfejsu użytkownika PPP." - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1514 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "Nie można wczytać interfejsu użytkownika VPN." - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "Nie można odnaleźć wtyczki usługi VPN dla \"%s\"." - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:899 -#, c-format -msgid "VPN connection %d" -msgstr "Połączenie VPN %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"Ta opcja blokuje to połączenie z urządzeniem sieciowym określonym przez " -"trwały adres MAC. Przykład: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1502 -msgid "Wired" -msgstr "Przewodowe" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "Nie można wczytać interfejsu użytkownika połączenia przewodowego." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Połączenie przewodowe %d" - -#: ../src/connection-editor/page-wired-security.c:119 -msgid "802.1x Security" -msgstr "Zabezpieczenia 802.1x" - -#: ../src/connection-editor/page-wired-security.c:121 -msgid "Could not load Wired Security security user interface." -msgstr "" -"Nie można wczytać interfejsu użytkownika zabezpieczeń sieci przewodowej." - -#: ../src/connection-editor/page-wired-security.c:139 -msgid "Use 802.1_X security for this connection" -msgstr "Użycie zabezpieczeń 802.1_X dla tego połączenia" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "domyślne" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -# tytuł karty, gdzie są rodzaje połączeń (jest przewodowe, więc tu jest bezprzewodowe, nie Sieć bezprzewodowa) -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1506 -msgid "Wireless" -msgstr "Bezprzewodowe" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "Nie można wczytać interfejsu użytkownika WiFi." - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Połączenie bezprzewodowe %d" - -#: ../src/connection-editor/page-wireless-security.c:290 -#: ../src/libnm-gtk/nm-wireless-dialog.c:922 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "40/128-bitowy klucz WEP (szesnastkowy lub ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:300 -#: ../src/libnm-gtk/nm-wireless-dialog.c:931 -msgid "WEP 128-bit Passphrase" -msgstr "128-bitowe hasło WEP" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:961 -msgid "Dynamic WEP (802.1x)" -msgstr "Dynamiczny WEP (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:340 -#: ../src/libnm-gtk/nm-wireless-dialog.c:975 -msgid "WPA & WPA2 Personal" -msgstr "WPA i WPA2 Personal" - -#: ../src/connection-editor/page-wireless-security.c:354 -#: ../src/libnm-gtk/nm-wireless-dialog.c:989 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA i WPA2 Enterprise" - -#: ../src/connection-editor/page-wireless-security.c:395 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "Nie można wczytać interfejsu użytkownika WiFi. Brak ustawienia WiFi." - -# tłumaczenie całości jest okropnie długie, a to nazwa karty tylko i wyłącznie przy tworzeniu połączenia z nową siecią *bezprzewodową*, więc nie ma sensu przedłużać -#: ../src/connection-editor/page-wireless-security.c:405 -msgid "Wireless Security" -msgstr "Zabezpieczenia" - -#: ../src/connection-editor/page-wireless-security.c:407 -msgid "Could not load WiFi security user interface." -msgstr "Nie można wczytać interfejsu użytkownika zabezpieczeń WiFi." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Modyfikowanie %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Modyfikowanie połączenia bez nazwy" - -#: ../src/connection-editor/nm-connection-editor.c:291 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"Edytor połączeń nie może odnaleźć niektórych wymaganych zasobów (plik .ui " -"nie został odnaleziony)." - -#: ../src/connection-editor/nm-connection-editor.c:394 -msgid "Error creating connection editor dialog." -msgstr "Błąd podczas tworzenia okna dialogowego edytora połączeń." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "_Save" -msgstr "Zapi_sz" - -#: ../src/connection-editor/nm-connection-editor.c:407 -msgid "Save any changes made to this connection." -msgstr "Zapis zmian dokonanych na tym połączeniu." - -#: ../src/connection-editor/nm-connection-editor.c:408 -msgid "_Save..." -msgstr "Zapi_sz..." - -#: ../src/connection-editor/nm-connection-editor.c:409 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "" -"Należy się uwierzytelnić, aby zapisać to połączenie dla wszystkich " -"użytkowników komputera." - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "_Zaimportuj" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "Wye_ksportuj" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "_Nazwa połączenia:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "Łączenie _automatyczne" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Dostępne dla wszystkich użytkowników" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "nigdy" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "teraz" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "%d minutę temu" -msgstr[1] "%d minuty temu" -msgstr[2] "%d minut temu" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "%d godzinę temu" -msgstr[1] "%d godziny temu" -msgstr[2] "%d godzin temu" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "%d dzień temu" -msgstr[1] "%d dni temu" -msgstr[2] "%d dni temu" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "%d miesiąc temu" -msgstr[1] "%d miesiące temu" -msgstr[2] "%d miesięcy temu" +#: ../src/connection-editor/page-ppp.c:134 +msgid "EAP" +msgstr "EAP" -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "%d rok temu" -msgstr[1] "%d lata temu" -msgstr[2] "%d lat temu" +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 +msgid "PAP" +msgstr "PAP" -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Dodanie połączenia się nie powiodło" +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Błąd podczas zapisywania połączenia" +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "Właściwość \"%s\" / \"%s\" jest nieprawidłowa: %d" +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Wystąpił nieznany błąd." +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "brak" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Błąd podczas inicjowania edytora" +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Modyfikowanie metod uwierzytelniania PPP dla %s" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:885 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "" -"Nie można zainicjować okna dialogowego edytora połączeń z powodu nieznanego " -"błędu." +#: ../src/connection-editor/page-ppp.c:284 +msgid "PPP Settings" +msgstr "Ustawienia PPP" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Nie można utworzyć nowego połączenia" +#: ../src/connection-editor/page-ppp.c:286 +msgid "Could not load PPP user interface." +msgstr "Nie można wczytać interfejsu użytkownika PPP." -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Nie można modyfikować nowego połączenia" +#: ../src/connection-editor/page-vlan.c:482 +msgid "Could not load vlan user interface." +msgstr "Nie można wczytać interfejsu użytkownika VLAN." -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "Nie można zmodyfikować połączenia" +#: ../src/connection-editor/page-vlan.c:667 +#, c-format +msgid "VLAN connection %d" +msgstr "Połączenie VLAN %d" -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Usunięcie połączenia się nie powiodło" +#: ../src/connection-editor/page-vpn.c:115 +msgid "Could not load VPN user interface." +msgstr "Nie można wczytać interfejsu użytkownika VPN." -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:130 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Na pewno usunąć połączenie %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "Nie można odnaleźć wtyczki usługi VPN dla \"%s\"." -#: ../src/connection-editor/nm-connection-list.c:929 -#: ../src/connection-editor/vpn-helpers.c:228 -msgid "Cannot import VPN connection" -msgstr "Nie można zaimportować połączenia VPN" +#: ../src/connection-editor/page-vpn.c:224 +#: ../src/connection-editor/page-vpn.c:321 +#, c-format +msgid "VPN connection %d" +msgstr "Połączenie VPN %d" -#: ../src/connection-editor/nm-connection-list.c:931 +#: ../src/connection-editor/page-vpn.c:250 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2084,82 +2320,98 @@ "\n" "Błąd: brak typu usługi VPN." -#: ../src/connection-editor/nm-connection-list.c:944 -msgid "Could not edit imported connection" -msgstr "Nie można zmodyfikować zaimportowanego połączenia" +#: ../src/connection-editor/page-vpn.c:275 +msgid "Choose a VPN Connection Type" +msgstr "Wybór typu połączenia VPN" -#: ../src/connection-editor/nm-connection-list.c:1125 -msgid "Name" -msgstr "Nazwa" +#: ../src/connection-editor/page-vpn.c:276 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Należy wybrać typ VPN, który zamierza się nawiązać. Jeśli wymagany typ " +"połączenia VPN nie jest dostępny w liście, odpowiednia wtyczka VPN może nie " +"być zainstalowana." -#: ../src/connection-editor/nm-connection-list.c:1137 -msgid "Last Used" -msgstr "Ostatnie użycie" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "domyślne" -#: ../src/connection-editor/nm-connection-list.c:1263 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "" -"Brak dostępnej wtyczki VPN. Proszę zainstalować jakąś, aby włączyć ten " -"przycisk." +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -# na przycisku -#: ../src/connection-editor/nm-connection-list.c:1274 -msgid "_Edit" -msgstr "_Modyfikuj" +#: ../src/connection-editor/page-wifi.c:441 +msgid "Could not load Wi-Fi user interface." +msgstr "Nie można wczytać interfejsu użytkownika Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "Edit the selected connection" -msgstr "Modyfikowanie zaznaczonego połączenia" +#: ../src/connection-editor/page-wifi.c:613 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Połączenie Wi-Fi %d" -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "_Edit..." -msgstr "_Modyfikuj..." +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Brak" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "Authenticate to edit the selected connection" -msgstr "Należy się uwierzytelnić, aby modyfikować zaznaczone połączenie" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:898 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "40/128-bitowy klucz WEP (szesnastkowy lub ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1292 -msgid "_Delete" -msgstr "_Usuń" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:907 +msgid "WEP 128-bit Passphrase" +msgstr "128-bitowe hasło WEP" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "Delete the selected connection" -msgstr "Usunięcie zaznaczonego połączenia" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:937 +msgid "Dynamic WEP (802.1x)" +msgstr "Dynamiczny WEP (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "_Delete..." -msgstr "_Usuń..." +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:951 +msgid "WPA & WPA2 Personal" +msgstr "WPA i WPA2 Personal" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "Authenticate to delete the selected connection" -msgstr "Należy się uwierzytelnić, aby usunąć zaznaczone połączenie" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:965 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA i WPA2 Enterprise" -#: ../src/connection-editor/nm-connection-list.c:1574 -msgid "Error creating connection" -msgstr "Błąd podczas tworzenia połączenia" +#: ../src/connection-editor/page-wifi-security.c:396 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "Nie można wczytać interfejsu użytkownika Wi-Fi. Brak ustawienia Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1575 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Nie wiadomo, jak utworzyć połączenia \"%s\"" +# tłumaczenie całości jest okropnie długie, a to nazwa karty tylko i wyłącznie przy tworzeniu połączenia z nową siecią *bezprzewodową*, więc nie ma sensu przedłużać +#: ../src/connection-editor/page-wifi-security.c:407 +msgid "Wi-Fi Security" +msgstr "Zabezpieczenia" -#: ../src/connection-editor/nm-connection-list.c:1630 -#: ../src/connection-editor/nm-connection-list.c:1642 -msgid "Error editing connection" -msgstr "Błąd podczas modyfikowania połączenia" +#: ../src/connection-editor/page-wifi-security.c:409 +msgid "Could not load Wi-Fi security user interface." +msgstr "Nie można wczytać interfejsu użytkownika zabezpieczeń Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1631 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Nie wiadomo, jak modyfikować połączenia \"%s\"" +#: ../src/connection-editor/page-wimax.c:137 +msgid "Could not load WiMAX user interface." +msgstr "Nie można wczytać interfejsu użytkownika WiMAX." -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/page-wimax.c:233 #, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Nie odnaleziono połączenia z UUID \"%s\"" +msgid "WiMAX connection %d" +msgstr "Połączenie WiMAX %d" + +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Nie można zaimportować połączenia VPN" -#: ../src/connection-editor/vpn-helpers.c:230 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2172,29 +2424,29 @@ "\n" "Błąd: %s." -#: ../src/connection-editor/vpn-helpers.c:263 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Wybór pliku do zaimportowania." -#: ../src/connection-editor/vpn-helpers.c:314 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Plik o nazwie \"%s\" już istnieje." -#: ../src/connection-editor/vpn-helpers.c:316 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "Za_mień" -#: ../src/connection-editor/vpn-helpers.c:318 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Zastąpić połączenie %s zapisywanym połączeniem VPN?" -#: ../src/connection-editor/vpn-helpers.c:354 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "Nie można wyeksportować połączenia VPN" -#: ../src/connection-editor/vpn-helpers.c:356 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2205,65 +2457,87 @@ "\n" "Błąd: %s." -#: ../src/connection-editor/vpn-helpers.c:391 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Wyeksportuj połączenie VPN..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Utworzenie połączenia PAN się nie powiodło: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"Aplet NetworkManager nie może odnaleźć niektórych wymaganych zasobów (nie " +"odnaleziono pliku .ui)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Telefon jest gotowy do użycia." +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"Konfiguracja Bluetooth nie jest możliwa (połączenie z usługą D-Bus się nie " +"powiodło: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "Sieć %s" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"Konfiguracja Bluetooth nie jest możliwa (błąd podczas wyszukiwania usługi " +"NetworkManager: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Użycie telefonu jako urządzenia sieciowego (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Dostęp do Internetu używając telefonu komórkowego (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Błąd: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Utworzenie połączenia DUN się nie powiodło: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Telefon jest gotowy do użycia." + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Asystent połączenia komórkowego został anulowany" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Nieznany typ telefonu (nie GSM lub CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "nieznany typ modemu." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "połączenie z telefonem się nie powiodło." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "nieoczekiwane rozłączenie z telefonu." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "przekroczono czas oczekiwania podczas wykrywania szczegółów telefonu." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Wykrywanie konfiguracji telefonu..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "nie można odnaleźć urządzenia Bluetooth." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2271,57 +2545,54 @@ "Domyślny adapter Bluetooth musi być włączony przez ustawieniem połączenia " "wdzwanianego." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "" -"Konfiguracja Bluetooth nie jest możliwa (połączenie z usługą D-Bus się nie " -"powiodło: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" -"Konfiguracja Bluetooth nie jest możliwa (utworzenie pośrednika usługi D-Bus " -"się nie powiodło)." +msgid "Failed to create PAN connection: %s" +msgstr "Utworzenie połączenia PAN się nie powiodło: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"Konfiguracja Bluetooth nie jest możliwa (błąd podczas wyszukiwania usługi " -"NetworkManager: %s)" +msgid "%s Network" +msgstr "Sieć %s" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Użycie telefonu jako urządzenia sieciowego (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Automatyczne odblokowywanie tego urządzenia" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Dostęp do Internetu używając telefonu komórkowego (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_Odblokuj" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Informacje o połączeniu" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Aktywne połączenia sieciowe" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "" "Połączenie komórkowe zostało skonfigurowane za pomocą poniższych ustawień:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Urządzenie:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Dostawca:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2335,23 +2606,23 @@ "zmodyfikować, należy wybrać \"Połączenia sieciowe\" z menu System >> " "Preferencje." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Potwierdzenie ustawień połączenia komórkowego" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Nie na liście" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "Pro_szę wybrać plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "Wybr_ana nazwa punktu dostępowego (APN) planu:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2363,171 +2634,203 @@ "\n" "W razie wątpliwości dotyczących planu należy zapytać dostawcę o APN planu." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Proszę wybrać plan taryfowy" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Planu nie ma na liście..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "P_roszę wybrać dostawcę z listy:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Dostawca" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Dostawcy nie _ma na liście, proszę wprowadzić go ręcznie:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Dostawca:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Dostawca używa technologii GSM (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Dostawca używa technologii CDMA (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Wybór dostawcy" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Lista krajów lub regionów:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "Kraj lub region:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "Kraju nie ma na liście" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Wybór kraju lub regionu dostawcy" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Zainstalowane urządzenie GSM" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Zainstalowane urządzenie CDMA" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." msgstr "" "Ten asystent pomaga w łatwym ustawieniu połączenia komórkowego z siecią 3G." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Wymagane są następujące informacje:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "Nazwa dostawcy połączenia komórkowego" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "Nazwa planu taryfowego" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" "(w niektórych przypadkach) nazwa punktu dostępowego (APN) planu taryfowego" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Utworzenie połączenia dla _tego urządzenia komórkowego:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Dowolne urządzenie" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Ustawienie połączenia komórkowego" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1643 msgid "New Mobile Broadband Connection" msgstr "Nowe połączenie komórkowe" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:437 msgid "New..." msgstr "Nowe..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1052 msgid "C_reate" msgstr "_Utwórz" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1136 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network " -"'%s'." +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "" -"Do połączenia z siecią bezprzewodową \"%s\" wymagane są hasła lub klucze " -"szyfrujące." +"Do połączenia z siecią Wi-Fi \"%s\" wymagane są hasła lub klucze szyfrujące." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 -msgid "Wireless Network Authentication Required" -msgstr "Wymagane uwierzytelnienie w sieci bezprzewodowej" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1138 +msgid "Wi-Fi Network Authentication Required" +msgstr "Wymagane uwierzytelnienie w sieci Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 -msgid "Authentication required by wireless network" -msgstr "Wymagane uwierzytelnienie w sieci bezprzewodowej" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1140 +msgid "Authentication required by Wi-Fi network" +msgstr "Wymagane uwierzytelnienie w sieci Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 -msgid "Create New Wireless Network" -msgstr "Tworzenie nowej sieci bezprzewodowej" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Create New Wi-Fi Network" +msgstr "Tworzenie nowej sieci Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 -msgid "New wireless network" -msgstr "Nowa sieć bezprzewodowa" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1147 +msgid "New Wi-Fi network" +msgstr "Nowa sieć Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "Enter a name for the wireless network you wish to create." -msgstr "" -"Proszę wprowadzić nazwę sieci bezprzewodowej, jaka ma zostać utworzona." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1148 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "Proszę wprowadzić nazwę sieci Wi-Fi, jaka ma zostać utworzona." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 -msgid "Connect to Hidden Wireless Network" -msgstr "Połączenie z ukrytą siecią bezprzewodową" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Connect to Hidden Wi-Fi Network" +msgstr "Połączenie z ukrytą siecią Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 -msgid "Hidden wireless network" -msgstr "Ukryta sieć bezprzewodowa" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "Hidden Wi-Fi network" +msgstr "Ukryta sieć Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." msgstr "" -"Proszę wprowadzić nazwę i ustawienia bezpieczeństwa dla żądanej sieci " -"bezprzewodowej." +"Proszę wprowadzić nazwę i ustawienia zabezpieczeń dla żądanej sieci Wi-Fi." + +#: ../src/libnm-gtk/nm-ui-utils.c:304 +msgid "Wired" +msgstr "Przewodowe" + +#: ../src/libnm-gtk/nm-ui-utils.c:327 +msgid "Bluetooth" +msgstr "Bluetooth" + +#: ../src/libnm-gtk/nm-ui-utils.c:329 +msgid "OLPC Mesh" +msgstr "Kratowe OLPC" + +#: ../src/libnm-gtk/nm-ui-utils.c:341 +msgid "ADSL" +msgstr "ADSL" + +#: ../src/libnm-gtk/nm-ui-utils.c:376 +msgid "PCI" +msgstr "PCI" + +#: ../src/libnm-gtk/nm-ui-utils.c:378 +msgid "USB" +msgstr "USB" + +#. Translators: the first %s is a bus name (eg, "USB") or +#. * product name, the second is a device type (eg, +#. * "Ethernet"). You can change this to something like +#. * "%$2s (%$1s)" if there's no grammatical way to combine +#. * the strings otherwise. +#. +#: ../src/libnm-gtk/nm-ui-utils.c:452 ../src/libnm-gtk/nm-ui-utils.c:470 +#, c-format +msgctxt "long device name" +msgid "%s %s" +msgstr "%s %s" #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" -msgstr "Zabezpieczenia sieci bezprze_wodowej:" +msgid "Wi-Fi _security:" +msgstr "Zabezpieczenia sieci_Wi-Fi:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Połącze_nie:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" -msgstr "_Adapter bezprzewodowy:" +msgid "Wi-Fi _adapter:" +msgstr "_Adapter Wi-Fi:" #: ../src/main.c:73 msgid "Usage:" @@ -2578,51 +2881,55 @@ msgstr "HSPA" #: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" +msgid "HSPA+" +msgstr "HSPA+" + +#: ../src/mb-menu-item.c:77 +msgid "LTE" +msgstr "LTE" -#: ../src/mb-menu-item.c:109 +#: ../src/mb-menu-item.c:113 msgid "not enabled" msgstr "nie włączono" -#: ../src/mb-menu-item.c:115 +#: ../src/mb-menu-item.c:119 msgid "not registered" msgstr "nie zarejestrowano" -#: ../src/mb-menu-item.c:133 +#: ../src/mb-menu-item.c:137 #, c-format msgid "Home network (%s)" msgstr "Sieć domowa (%s)" -#: ../src/mb-menu-item.c:135 +#: ../src/mb-menu-item.c:139 #, c-format msgid "Home network" msgstr "Sieć domowa" -#: ../src/mb-menu-item.c:143 +#: ../src/mb-menu-item.c:147 msgid "searching" msgstr "wyszukiwanie" -#: ../src/mb-menu-item.c:146 +#: ../src/mb-menu-item.c:150 msgid "registration denied" msgstr "odmowa rejestracji" -#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 +#: ../src/mb-menu-item.c:155 ../src/mb-menu-item.c:161 #, c-format msgid "%s (%s roaming)" msgstr "%s (roaming %s)" -#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 +#: ../src/mb-menu-item.c:157 ../src/mb-menu-item.c:163 #, c-format msgid "%s (roaming)" msgstr "%s (roaming)" -#: ../src/mb-menu-item.c:162 +#: ../src/mb-menu-item.c:166 #, c-format msgid "Roaming network (%s)" msgstr "Sieć roamingowa (%s)" -#: ../src/mb-menu-item.c:164 +#: ../src/mb-menu-item.c:168 #, c-format msgid "Roaming network" msgstr "Sieć roamingowa" @@ -2631,39 +2938,54 @@ msgid "Default" msgstr "Domyślne" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"Aplet NetworkManager nie może odnaleźć niektórych wymaganych zasobów (nie " -"odnaleziono pliku .ui)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:174 +#, c-format +msgid "%s connection" +msgstr "Połączenie %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Nie wybrano certyfikatu CA" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" "Nieskorzystanie z certyfikatu CA może spowodować połączenia z " -"niezabezpieczonymi sieciami bezprzewodowymi. Czy wybrać certyfikat CA?" +"niezabezpieczonymi sieciami Wi-Fi. Czy wybrać certyfikat CA?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Wybór certyfikatu CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Certyfikaty DER, PEM lub klucze prywatne PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Certyfikaty DER lub PEM (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Wybierz plik PAC..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "Pliki PAC (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Wszystkie pliki" + #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Anonimowo" @@ -2696,23 +3018,6 @@ msgid "Allow automatic PAC pro_visioning" msgstr "Automatyczne za_bezpieczanie PAC" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Wybierz plik PAC..." - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "Pliki PAC (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Wszystkie pliki" - #: ../src/wireless-security/eap-method-peap.c:263 #: ../src/wireless-security/wireless-security.c:382 msgid "MD5" diff -Nru network-manager-applet-0.9.4.1/po/pt.po network-manager-applet-0.9.6.2+git201210311320.2620/po/pt.po --- network-manager-applet-0.9.4.1/po/pt.po 2012-03-22 17:34:37.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/pt.po 2012-10-31 13:20:57.000000000 +0000 @@ -6,10 +6,10 @@ # msgid "" msgstr "" -"Project-Id-Version: 3.4\n" +"Project-Id-Version: 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-21 23:57+0000\n" -"PO-Revision-Date: 2012-03-22 00:10+0000\n" +"POT-Creation-Date: 2012-09-12 23:53+0100\n" +"PO-Revision-Date: 2012-09-12 23:58+0000\n" "Last-Translator: Duarte Loreto \n" "Language-Team: Portuguese \n" "Language: pt\n" @@ -26,85 +26,117 @@ msgid "Manage your network connections" msgstr "Controle as suas ligações de rede" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Ligações de Rede" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Gerir e alterar as suas definições da ligação de rede" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Desactivar as notificações de ligado" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" -"Defina isto como VERDADEIRO para desactivar as notificações ao ligar a uma " +"Defina isto como verdadeiro para desactivar notificações ao se ligar a uma " "rede." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Desactivar as notificações de desligado" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "" -"Defina isto como VERDADEIRO para desactivar as notificações ao desligar a " +"Defina isto como verdadeiro para desactivar notificações ao se desligar de " "uma rede." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Desactivar as notificações de VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"Defina isto como verdadeiro para desactivar notificações ao se ligar ou " +"desligar de uma rede." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Não mostrar notificações de redes sem fios disponíveis" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " +"Set this to true to disable notifications when wireless networks are " "available." msgstr "" -"Defina isto como VERDADEIRO para desactivar as notificações quando redes sem " -"fios estão disponíveis." +"Defina isto como verdadeiro para desactivar notificações quando estão " +"disponíveis redes sem fios." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Carimbo" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "Utilizado para determinar se as definições deviam ser migradas para uma nova " "versão." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Desactivar Criação de WiFi" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" -"Defina isto como VERDADEIRO para desactivar a criação de redes adhoc ao " -"utilizar este applet." +"Defina como verdadeiro para desactivar a criação de redes adhoc ao " +"utilizar a applet." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Ligações de Rede" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Ignorar o certificado da AC" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Gerir e alterar as suas definições da ligação de rede" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Defina como verdadeiro para desactivar avisos sobre os certificados das " +"ACs (Autoridades de Certificação) na autenticação EAP." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Defina como verdadeiro para desactivar avisos sobre certificados de ACs na " +"2ª fase da autenticação EAP." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-gsm.c:444 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Disponível" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-gsm.c:486 ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "Encontra-se agora ligado a '%s'." -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-gsm.c:490 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Ligação Estabelecida" @@ -112,51 +144,51 @@ msgid "You are now connected to the mobile broadband network." msgstr "Encontra-se agora ligado à rede de banda larga móvel." -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "A preparar ligação de banda larga móvel '%s'..." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "A configurar ligação de banda larga móvel '%s'..." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "" "Autenticação de utilizador necessária para ligação de banda larga móvel " "'%s'..." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2486 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "A pedir um endereço de rede para '%s'..." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "Ligação de banda larga móvel '%s' activa" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:696 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 #: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Banda Larga Móvel (%s)" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 #: ../src/connection-editor/page-mobile.c:379 #: ../src/connection-editor/nm-connection-editor.ui.h:4 #: ../src/connection-editor/nm-connection-list.c:1510 @@ -164,87 +196,87 @@ msgstr "Banda Larga Móvel" #. Default connection item -#: ../src/applet-device-cdma.c:412 +#: ../src/applet-device-cdma.c:409 msgid "New Mobile Broadband (CDMA) connection..." msgstr "Nova ligação de Banda Larga Móvel (CDMA)..." -#: ../src/applet-device-cdma.c:446 +#: ../src/applet-device-cdma.c:443 msgid "You are now connected to the CDMA network." msgstr "Encontra-se agora ligado à rede CDMA." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "Ligação de banda larga móvel '%s' activa: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "roaming" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 msgid "CDMA network." msgstr "Rede CDMA." -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 msgid "You are now registered on the home network." msgstr "Encontra-se agora registado na rede de casa." -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 msgid "You are now registered on a roaming network." msgstr "Encontra-se agora registado numa rede de roaming." -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" #. Default connection item -#: ../src/applet-device-gsm.c:459 +#: ../src/applet-device-gsm.c:457 msgid "New Mobile Broadband (GSM) connection..." msgstr "Nova ligação de Banda Larga Móvel (GSM)..." -#: ../src/applet-device-gsm.c:493 +#: ../src/applet-device-gsm.c:491 msgid "You are now connected to the GSM network." msgstr "Encontra-se agora ligado à rede GSM." -#: ../src/applet-device-gsm.c:654 +#: ../src/applet-device-gsm.c:652 msgid "PIN code required" msgstr "Necessário código PIN" -#: ../src/applet-device-gsm.c:662 +#: ../src/applet-device-gsm.c:660 msgid "PIN code is needed for the mobile broadband device" msgstr "O código PIN é necessário para dispositivo de banda larga móvel" -#: ../src/applet-device-gsm.c:783 +#: ../src/applet-device-gsm.c:781 #, c-format msgid "PIN code for SIM card '%s' on '%s'" msgstr "Código PIN do cartão SIM de '%s' em '%s'" -#: ../src/applet-device-gsm.c:875 +#: ../src/applet-device-gsm.c:873 msgid "Wrong PIN code; please contact your provider." msgstr "Código PIN errado; por favor contacte o seu fornecedor." -#: ../src/applet-device-gsm.c:898 +#: ../src/applet-device-gsm.c:896 msgid "Wrong PUK code; please contact your provider." msgstr "Código PUK errado; por favor contacte o seu fornecedor." #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 +#: ../src/applet-device-gsm.c:923 msgid "Sending unlock code..." msgstr "A enviar código de desbloqueio..." -#: ../src/applet-device-gsm.c:988 +#: ../src/applet-device-gsm.c:986 msgid "SIM PIN unlock required" msgstr "Necessário desbloqueio do PIN" -#: ../src/applet-device-gsm.c:989 +#: ../src/applet-device-gsm.c:987 msgid "SIM PIN Unlock Required" msgstr "Necessário Desbloqueio do PIN" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 +#: ../src/applet-device-gsm.c:989 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " @@ -254,25 +286,25 @@ "ser utilizado." #. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 +#: ../src/applet-device-gsm.c:991 msgid "PIN code:" msgstr "Código PIN:" #. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 +#: ../src/applet-device-gsm.c:995 msgid "Show PIN code" msgstr "Apresentar código PIN" -#: ../src/applet-device-gsm.c:1000 +#: ../src/applet-device-gsm.c:998 msgid "SIM PUK unlock required" msgstr "Necessário desbloqueio do PUK" -#: ../src/applet-device-gsm.c:1001 +#: ../src/applet-device-gsm.c:999 msgid "SIM PUK Unlock Required" msgstr "Necessário Desbloqueio do PUK" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#: ../src/applet-device-gsm.c:1001 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " @@ -282,26 +314,26 @@ "ser utilizado." #. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 +#: ../src/applet-device-gsm.c:1003 msgid "PUK code:" msgstr "Código PUK:" #. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 +#: ../src/applet-device-gsm.c:1006 msgid "New PIN code:" msgstr "Novo código PIN:" #. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 +#: ../src/applet-device-gsm.c:1008 msgid "Re-enter new PIN code:" msgstr "Re-insira o novo código PIN:" #. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 +#: ../src/applet-device-gsm.c:1013 msgid "Show PIN/PUK codes" msgstr "Apresentar códigos PIN/PUK" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 msgid "GSM network." msgstr "Rede GSM." @@ -328,7 +360,7 @@ msgstr "Rede Com Fios" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1492 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "desligado" @@ -370,89 +402,107 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "_Ligar-se a Rede Sem Fios Oculta..." -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "Criar uma _Nova Rede Sem Fios..." -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(nenhum)" -#: ../src/applet-device-wifi.c:792 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "Redes Sem Fios (%s)" -#: ../src/applet-device-wifi.c:794 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "Rede Sem Fios (%s)" -#: ../src/applet-device-wifi.c:796 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Rede Sem Fios" msgstr[1] "Redes Sem Fios" -#: ../src/applet-device-wifi.c:829 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "a rede sem fios está desactivada" -#: ../src/applet-device-wifi.c:830 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "a rede sem fios está desactivada por interruptor físico" -#: ../src/applet-device-wifi.c:891 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "Mais redes" -#: ../src/applet-device-wifi.c:1071 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "Redes Sem Fios Disponíveis" -#: ../src/applet-device-wifi.c:1072 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "Utilize o menu de rede para se ligar a uma rede sem fios" -#: ../src/applet-device-wifi.c:1075 ../src/applet.c:908 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "Não apresentar esta mensagem novamente" -#: ../src/applet-device-wifi.c:1267 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Encontra-se agora ligado à rede sem fios '%s'." -#: ../src/applet-device-wifi.c:1298 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "A preparar ligação de rede sem fios '%s'..." -#: ../src/applet-device-wifi.c:1301 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "A configurar ligação de rede sem fios '%s'..." -#: ../src/applet-device-wifi.c:1304 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "Autenticação de utilizador necessária para a rede sem fios '%s'..." -#: ../src/applet-device-wifi.c:1307 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "A pedir endereço de rede sem fios para '%s'..." -#: ../src/applet-device-wifi.c:1328 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "Ligação de rede sem fios '%s' activa: %s (%d%%)" -#: ../src/applet-device-wifi.c:1333 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "Ligação de rede sem fios a '%s' activa" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Falha ao activar a ligação" + +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +msgid "Unknown error" +msgstr "Erro desconhecido" + +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 +msgid "Connection failure" +msgstr "Ligação falhou" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Falha ao adicionar uma nova ligação" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -715,7 +765,23 @@ msgid "Password:" msgstr "Senha:" -#: ../src/applet.c:997 +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Falha ao adicionar/activar ligação" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Falha ao desligar dispositivo" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Falha ao desligar" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "Falha ao activar a ligação" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -725,7 +791,7 @@ "\n" "A ligação VPN '%s' falhou porque a ligação de rede foi interrompida." -#: ../src/applet.c:1000 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" @@ -734,7 +800,7 @@ "\n" "A ligação VPN '%s' falhou porque o serviço VPN parou inesperadamente." -#: ../src/applet.c:1003 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -745,7 +811,7 @@ "A ligação VPN '%s' falhou porque o serviço VPN devolveu uma configuração " "inválida." -#: ../src/applet.c:1006 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -754,7 +820,7 @@ "\n" "A ligação VPN '%s' falhou porque a tentativa de ligação expirou." -#: ../src/applet.c:1009 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -763,7 +829,7 @@ "\n" "A ligação VPN '%s' falhou porque o serviço VPN não se iniciou a tempo." -#: ../src/applet.c:1012 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -772,7 +838,7 @@ "\n" "A ligação VPN '%s' falhou porque o serviço VPN falhou ao iniciar." -#: ../src/applet.c:1015 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -781,7 +847,7 @@ "\n" "A ligação VPN '%s' falhou porque não haviam segredos VPN válidos." -#: ../src/applet.c:1018 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -790,7 +856,7 @@ "\n" "A ligação VPN '%s' falhou por causa de segredos VPN inválidos." -#: ../src/applet.c:1025 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -799,7 +865,7 @@ "\n" "A ligação VPN '%s' falhou." -#: ../src/applet.c:1043 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -809,7 +875,7 @@ "\n" "A ligação VPN '%s' desligou-se porque a ligação de rede foi interrompida." -#: ../src/applet.c:1046 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -818,7 +884,7 @@ "\n" "A ligação VPN '%s' desligou-se porque o serviço VPN parou." -#: ../src/applet.c:1052 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -827,15 +893,30 @@ "\n" "A ligação VPN '%s' desligou-se." -#: ../src/applet.c:1086 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"A ligação VPN foi estabelecida com sucesso.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "A ligação VPN foi estabelecida com sucesso.\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "Mensagem de Início de Sessão VPN" -#: ../src/applet.c:1092 ../src/applet.c:1100 ../src/applet.c:1150 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "Ligação VPN Falhou" -#: ../src/applet.c:1157 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -848,7 +929,7 @@ "\n" "%s" -#: ../src/applet.c:1160 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -861,139 +942,139 @@ "\n" "%s" -#: ../src/applet.c:1480 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "dispositivo não preparado (firmware em falta)" -#: ../src/applet.c:1482 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "dispositivo não preparado" -#: ../src/applet.c:1508 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "Desligar" -#: ../src/applet.c:1522 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "dispositivo não gerido" -#: ../src/applet.c:1566 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "Nenhum dispositivo de rede disponível" -#: ../src/applet.c:1654 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "Ligações _VPN" -#: ../src/applet.c:1711 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "_Configurar VPN..." -#: ../src/applet.c:1715 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "_Desligar VPN" -#: ../src/applet.c:1813 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "O Gestor de Rede não está em execução..." -#: ../src/applet.c:1818 ../src/applet.c:2617 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "Rede inactivada" #. 'Enable Networking' item -#: ../src/applet.c:2039 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "Activar a _Rede" #. 'Enable Wireless' item -#: ../src/applet.c:2048 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "Activar a Rede sem _Fios" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2057 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "Activar Banda Larga _Móvel" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2066 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "Activar Banda Larga Móvel WiMA_X" #. Toggle notifications item -#: ../src/applet.c:2077 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "Activar as N_otificações" #. 'Connection Information' item -#: ../src/applet.c:2088 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "_Informação de Ligação" #. 'Edit Connections...' item -#: ../src/applet.c:2098 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "Editar Ligações..." #. Help item -#: ../src/applet.c:2112 +#: ../src/applet.c:2124 msgid "_Help" msgstr "_Ajuda" #. About item -#: ../src/applet.c:2121 +#: ../src/applet.c:2133 msgid "_About" msgstr "_Sobre" -#: ../src/applet.c:2298 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "Desligado" -#: ../src/applet.c:2299 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "A ligação de rede foi terminada." -#: ../src/applet.c:2480 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "A preparar ligação de rede '%s'..." -#: ../src/applet.c:2483 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Autenticação de utilizador necessária para ligação de rede '%s'..." -#: ../src/applet.c:2489 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "Ligação de rede '%s' activa" -#: ../src/applet.c:2572 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "A iniciar ligação VPN '%s'..." -#: ../src/applet.c:2575 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "Autenticação de utilizador necessária para ligação VPN '%s'..." -#: ../src/applet.c:2578 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "A pedir um endereço de rede VPN para '%s'..." -#: ../src/applet.c:2581 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "Ligação VPN '%s' activa" -#: ../src/applet.c:2622 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "Sem ligação à rede" -#: ../src/applet.c:3377 +#: ../src/applet.c:3336 msgid "NetworkManager Applet" msgstr "Applet do Gestor de Rede" @@ -1157,11 +1238,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Domínios de _procura:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "Servidores _DNS:" @@ -1538,20 +1623,20 @@ #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "Endereço" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "Máscara de Rede" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "Gateway" @@ -1561,7 +1646,7 @@ msgstr "Métrico" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "Prefixo" @@ -1575,7 +1660,7 @@ msgid "Could not load DSL user interface." msgstr "Incapaz de carregar interface de utilizador de DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "Ligação DSL %d" @@ -1627,16 +1712,26 @@ msgid "Disabled" msgstr "Desactivado" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Servidores _DNS adicionais:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Domínios de _procura adicionais:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "A editar rotas IPv4 para %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "Configuração IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Incapaz de carregar interface de utilizador IPv4." @@ -1645,7 +1740,7 @@ msgstr "Automático, apenas endereços" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Ignorar" @@ -1653,16 +1748,16 @@ msgid "Automatic, DHCP only" msgstr "Automático, apenas DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "A editar rotas IPv6 para %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "Configuração IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Incapaz de carregar interface de utilizador IPv6." @@ -1762,8 +1857,8 @@ msgid "VPN connection %d" msgstr "Ligações VPN %d" -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 +#: ../src/connection-editor/page-wired.c:91 +#: ../src/connection-editor/page-wireless.c:95 msgid "" "This option locks this connection to the network device specified by its " "permanent MAC address entered here. Example: 00:11:22:33:44:55" @@ -1771,17 +1866,17 @@ "Esta opção bloqueia esta ligação ao dispositivo de rede especificado pelo " "endereço MAC permanente inserido aqui. Exemplo: 00:11:22:33:44:55" -#: ../src/connection-editor/page-wired.c:272 +#: ../src/connection-editor/page-wired.c:271 #: ../src/connection-editor/nm-connection-editor.ui.h:2 #: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Com Fios" -#: ../src/connection-editor/page-wired.c:274 +#: ../src/connection-editor/page-wired.c:273 msgid "Could not load wired user interface." msgstr "Incapaz de carregar interface de utilizador de ligação com fios." -#: ../src/connection-editor/page-wired.c:449 +#: ../src/connection-editor/page-wired.c:448 #, c-format msgid "Wired connection %d" msgstr "Ligação com fios %d" @@ -1798,29 +1893,29 @@ msgid "Use 802.1_X security for this connection" msgstr "Utilizar segurança 802.1_X para esta ligação" -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 +#: ../src/connection-editor/page-wireless.c:172 +#: ../src/connection-editor/page-wireless.c:176 +#: ../src/connection-editor/page-wireless.c:197 #, c-format msgid "default" msgstr "predefinição" -#: ../src/connection-editor/page-wireless.c:200 +#: ../src/connection-editor/page-wireless.c:201 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:457 +#: ../src/connection-editor/page-wireless.c:455 #: ../src/connection-editor/nm-connection-editor.ui.h:3 #: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Sem Fios" -#: ../src/connection-editor/page-wireless.c:459 +#: ../src/connection-editor/page-wireless.c:457 msgid "Could not load WiFi user interface." msgstr "Incapaz de carregar interface de utilizador sem fios." -#: ../src/connection-editor/page-wireless.c:663 +#: ../src/connection-editor/page-wireless.c:661 #, c-format msgid "Wireless connection %d" msgstr "Ligação sem fios %d" @@ -1864,16 +1959,16 @@ msgid "Could not load WiFi security user interface." msgstr "Incapaz de carregar interface de utilizador de segurança sem fios." -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "A editar %s" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "A editar ligação anónima" -#: ../src/connection-editor/nm-connection-editor.c:291 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." @@ -1881,23 +1976,23 @@ "O editor de ligação foi incapaz de encontrar alguns recursos necessários (o " "ficheiro .ui não foi encontrado)." -#: ../src/connection-editor/nm-connection-editor.c:394 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "Erro ao criar diálogo de editor de ligação." -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "_Gravar" -#: ../src/connection-editor/nm-connection-editor.c:407 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "Guardar quaisquer alterações feitas a esta ligação." -#: ../src/connection-editor/nm-connection-editor.c:408 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "_Gravar..." -#: ../src/connection-editor/nm-connection-editor.c:409 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." msgstr "" "Autentique-se para gravar esta ligação para todos os utilizadores deste " @@ -1920,8 +2015,8 @@ msgstr "Ligar _automaticamente" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Disponível para todos os utilizadores" +msgid "A_vailable to all users" +msgstr "_Disponível para todos os utilizadores" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -2161,61 +2256,73 @@ msgid "Export VPN connection..." msgstr "Exportar ligação VPN..." -#: ../src/gnome-bluetooth/bt-widget.c:220 +#: ../src/gnome-bluetooth/bt-widget.c:321 #, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Falhou a criação da ligação PAN: %s" - -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "O seu telefone encontra-se agora pronto a utilizar!" +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"Configuração Bluetooth impossível (falhou a ligação ao D-Bus: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "Rede %s" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"Configuração Bluetooth impossível (erro ao encontrar NetworkManager: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Utilize o seu telemóvel como dispositivo de rede (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Aceder à Internet utilizando o seu telemóvel (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Erro: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Falhou a criação da ligação DUN: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "O seu telefone encontra-se agora pronto a utilizar!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Assistente móvel foi cancelado" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Tipo de dispositivo de telefone desconhecido (não é GSM ou CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "tipo de modem desconhecido." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "falhou ao ligar ao telefone." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "desligado inesperadamente do telefone." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "tempo expirado ao detectar os detalhes do telefone." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "A detectar configuração do telefone..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "incapaz de encontrar o dispositivo Bluetooth." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." @@ -2223,31 +2330,17 @@ "O adaptador de Bluetooth por omissão deve estar activo antes de configurar " "uma ligação de rede Dial-Up." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "Configuração Bluetooth impossível (falhou a ligação ao D-Bus: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Configuração Bluetooth impossível (falhou a criação de proxy D-Bus)." +msgid "Failed to create PAN connection: %s" +msgstr "Falhou a criação da ligação PAN: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" -"Configuração Bluetooth impossível (erro ao encontrar NetworkManager: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Utilize o seu telemóvel como dispositivo de rede (PAN/NAP)" - -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Aceder à Internet utilizando o seu telemóvel (DUN)" +msgid "%s Network" +msgstr "Rede %s" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "" @@ -2255,21 +2348,21 @@ "definições:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:212 msgid "Your Device:" msgstr "O seu Dispositivo:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:223 msgid "Your Provider:" msgstr "O seu Fornecedor:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:234 msgid "Your Plan:" msgstr "O seu Plano:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:259 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2283,23 +2376,23 @@ "Para modificar as definições da sua ligação de banda larga móvel, escolha " "\"Novas Ligações\" a partir do menu Sistema >> Preferências." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:271 msgid "Confirm Mobile Broadband Settings" msgstr "Confirme as Definições da Banda Larga Móvel" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:332 msgid "Unlisted" msgstr "Não Listado" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:487 msgid "_Select your plan:" msgstr "_Seleccione o seu plano:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:511 msgid "Selected plan _APN (Access Point Name):" msgstr "Seleccione o seu plano _APN (Nome do Ponto de Acesso):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2312,68 +2405,68 @@ "Se não tem a certeza do seu plano por favor pergunte ao seu fornecedor o APN " "do seu plano." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:542 msgid "Choose your Billing Plan" msgstr "Escolha o seu Tarifário" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:590 msgid "My plan is not listed..." msgstr "O meu plano não está listado..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:747 msgid "Select your provider from a _list:" msgstr "Seleccione o seu fornecedor da _lista:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:760 msgid "Provider" msgstr "Fornecedor" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:785 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "" "Não consigo encontrar o meu fornecedor e quero introduzi-lo _manualmente:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:796 msgid "Provider:" msgstr "Fornecedor:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:820 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "O meu fornecedor utiliza tecnologia GSM (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "O meu fornecedor utiliza tecnologia CDMA (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:837 msgid "Choose your Provider" msgstr "Escolha o seu Forncedor" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1088 msgid "Country or Region List:" msgstr "Lista de Países ou Regiões:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "Country or region" msgstr "País ou região" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1107 msgid "My country is not listed" msgstr "O meu país não está listado" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1153 msgid "Choose your Provider's Country or Region" msgstr "Escolha o País ou Região do seu Fornecedor" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1207 msgid "Installed GSM device" msgstr "Dispositivo GSM instalado" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1210 msgid "Installed CDMA device" msgstr "Dispositivo CDMA instalado" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1382 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2381,37 +2474,37 @@ "Este assistente ajuda-o a configurar facilmente uma ligação de banda larga " "móvel a uma rede de telemóvel (3G)." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1387 msgid "You will need the following information:" msgstr "Irá precisar da seguinte informação:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1402 msgid "Your broadband provider's name" msgstr "O nome do seu fornecedor de banda larga" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband billing plan name" msgstr "O nome do seu tarifário de banda larga" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" "(em alguns casos) O APN (Nome do Ponto de Acesso) do seu tarifário de banda " "larga" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1441 msgid "Create a connection for _this mobile broadband device:" msgstr "Criar uma ligação para es_te dispositivo de banda larga móvel:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1456 msgid "Any device" msgstr "Qualquer dispositivo" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1469 msgid "Set up a Mobile Broadband Connection" msgstr "Configurar uma Ligação de Banda Larga Móvel" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1633 msgid "New Mobile Broadband Connection" msgstr "Nova Ligação de Banda Larga Móvel" @@ -2469,11 +2562,11 @@ "deseja ligar." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Segurança sem fios:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Ligaçã_o:" #: ../src/libnm-gtk/wifi.ui.h:5 @@ -2582,6 +2675,12 @@ msgid "Default" msgstr "Omissão" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "Ligação %s" + #: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 msgid "" "The NetworkManager Applet could not find some required resources (the .ui " @@ -2590,11 +2689,11 @@ "O Applet de Gestão de Rede foi incapaz de encontrar alguns recursos " "necessários (o ficheiro .ui não foi encontrado)." -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Nenhum certificado de Autoridade Certificadora escolhido" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " @@ -2604,15 +2703,15 @@ "ligações inseguras, redes sem fios inseguras. Deseja escolher um " "certificado de Autoridade Certificadora?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Escolha o Certificado CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Chaves privadas DER, PEM, ou PKCS# 12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Certificados DER ou PEM (*.der, *.pem, *.crt, *.cer)" @@ -2810,6 +2909,13 @@ msgid "WEP inde_x:" msgstr "Índice _WEP:" +#~ msgid "could not find the Bluetooth device." +#~ msgstr "incapaz de encontrar o dispositivo Bluetooth." + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "" +#~ "Configuração Bluetooth impossível (falhou a criação de proxy D-Bus)." + #~ msgid "Click on this icon to connect to a wireless network" #~ msgstr "Clique neste ícone para ligar-se a uma rede sem fios" diff -Nru network-manager-applet-0.9.4.1/po/pt_BR.po network-manager-applet-0.9.6.2+git201210311320.2620/po/pt_BR.po --- network-manager-applet-0.9.4.1/po/pt_BR.po 2012-03-23 22:52:46.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/pt_BR.po 2012-10-31 13:20:57.000000000 +0000 @@ -10,17 +10,17 @@ # Michel Recondo , 2008. # Carlos Eduardo Moreira dos Santos , 2008. # Djavan Fagundes , 2008, 2010, 2011, 2012. -# Jonh Wendell , 2009. # Antonio Fernandes C. Neto , 2009, 2011. # Glaucia Cintra , 2010. # André Gondim , 2009, 2010. +# Jonh Wendell , 2009, 2012. msgid "" msgstr "" "Project-Id-Version: pt_BR\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=Networ" "kManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-23 08:27+0000\n" -"PO-Revision-Date: 2012-03-21 05:56-0200\n" +"POT-Creation-Date: 2012-06-25 18:50+0000\n" +"PO-Revision-Date: 2012-07-10 19:24-0200\n" "Last-Translator: Djavan Fagundes \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" @@ -41,70 +41,119 @@ msgid "Manage your network connections" msgstr "Controle suas conexões de rede" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Conexões de rede" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Gerencie e altere suas configurações de conexão de rede" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Desabilitar notificações de conexão" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +#| msgid "" +#| "Set this to TRUE to disable notifications when connecting to a network." +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" -"Defina como TRUE para desabilitar notificações ao conectar-se a uma rede." +"Defina como verdadeiro para desabilitar notificações ao conectar-se a uma " +"rede." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Desabilitar notificações de desconexão" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "" -"Defina como TRUE para desabilitar notificações ao desconectar-se de uma rede." +"Defina como verdadeiro para desabilitar notificações ao desconectar-se de " +"uma rede." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +#| msgid "Disable connected notifications" +msgid "Disable VPN notifications" +msgstr "Desabilitar notificações de VPN" -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"Defina como verdadeiro para desabilitar notificações ao conectar-se ou " +"desconectar-se de uma VPN." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Não mostrar notificações de redes disponíveis" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#| msgid "" +#| "Set this to TRUE to disable notifications when wireless networks are " +#| "available." msgid "" -"Set this to TRUE to disable notifications when wireless networks are " +"Set this to true to disable notifications when wireless networks are " "available." msgstr "" -"Defina como TRUE para desabilitar notificações quando redes sem fio " -"estiverem disponíveis" +"Defina como verdadeiro para desabilitar notificações quando redes sem fio " +"estiverem disponíveis." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Selo" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "" "Usado para determinar se as configurações devem ser migradas para uma nova " "versão." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Desabilitar criação de WiFi" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +#| msgid "" +#| "Set to TRUE to disable creation of adhoc networks when using the applet." msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" -"Defina como TRUE para desabilitar a criação de redes adhoc quando usar o " +"Defina como verdade para desabilitar a criação de redes adhoc quando usar o " "miniaplicativo." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Conexões de rede" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +#| msgid "Choose CA Certificate" +msgid "Ignore CA certificate" +msgstr "Ignorar certificado CA" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Gerencie e altere suas configurações de conexão de rede" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Defina como verdadeiro para desabilitar avisos de certificados CA na " +"autenticação EAP." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Defina como verdadeiro para desabilitar avisos de certificados CA na fase 2 " +"da autenticação EAP." #: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 #: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Disponível" @@ -117,7 +166,7 @@ #: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 #: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Conexão estabelecida" @@ -145,7 +194,7 @@ #: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 #: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2503 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "Requisitando um endereço de rede para \"%s\"..." @@ -339,7 +388,7 @@ msgstr "Rede com fio" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1509 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "desconectado" @@ -380,108 +429,104 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "_Conectar-se a rede sem fio oculta..." -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "Criar _nova rede sem fio..." -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(nenhum)" -#: ../src/applet-device-wifi.c:792 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "Redes sem fio (%s)" -#: ../src/applet-device-wifi.c:794 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "Rede sem fio (%s)" -#: ../src/applet-device-wifi.c:796 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Rede sem fio" msgstr[1] "Redes sem fio" -#: ../src/applet-device-wifi.c:829 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "rede sem fio está desabilitada" -#: ../src/applet-device-wifi.c:830 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "a rede sem fio está desabilitada por hardware" -#: ../src/applet-device-wifi.c:891 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "Mais redes" -#: ../src/applet-device-wifi.c:1071 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "Redes sem fio disponíveis" -#: ../src/applet-device-wifi.c:1072 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "Use o menu de rede para se conectar a uma rede sem fio" -#: ../src/applet-device-wifi.c:1075 ../src/applet.c:925 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "Não mostrar esta mensagem novamente" -#: ../src/applet-device-wifi.c:1267 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Você agora está conectado à rede sem fio \"%s\"." -#: ../src/applet-device-wifi.c:1298 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "Preparando conexão de rede sem fio \"%s\"..." -#: ../src/applet-device-wifi.c:1301 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "Configurando conexão de rede sem fio \"%s\"..." -#: ../src/applet-device-wifi.c:1304 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "Autenticação necessária pela rede sem fio \"%s\"..." -#: ../src/applet-device-wifi.c:1307 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "Requisitando um endereço de rede da rede sem fio para \"%s\"..." -#: ../src/applet-device-wifi.c:1328 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "Conexão de rede sem fio \"%s\" ativa: %s (%d%%)" -#: ../src/applet-device-wifi.c:1333 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "Conexão de rede sem fio \"%s\" ativa" -#: ../src/applet-device-wifi.c:1381 -#| msgid "Failed to create PAN connection: %s" +#: ../src/applet-device-wifi.c:1377 msgid "Failed to activate connection" msgstr "Falhou ao ativar conexão" -#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 -#: ../src/applet.c:491 ../src/applet.c:535 ../src/applet.c:561 -#| msgid "Unknown" +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 msgid "Unknown error" msgstr "Erro desconhecido" -#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 -#: ../src/applet.c:494 ../src/applet.c:564 -#| msgid "Connection add failed" +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 msgid "Connection failure" msgstr "Falha de conexão" -#: ../src/applet-device-wifi.c:1400 -#| msgid "Could not edit new connection" +#: ../src/applet-device-wifi.c:1396 msgid "Failed to add new connection" msgstr "Falhou ao adicionar nova conexão" @@ -748,27 +793,23 @@ msgid "Password:" msgstr "Senha:" -#: ../src/applet.c:489 -#| msgid "Failed to create PAN connection: %s" +#: ../src/applet.c:488 msgid "Failed to add/activate connection" msgstr "Falhou ao adicionar/ativar conexão" -#: ../src/applet.c:533 -#| msgid "disconnected" +#: ../src/applet.c:532 msgid "Device disconnect failed" msgstr "Desconexão de dispositivo falhou" -#: ../src/applet.c:538 -#| msgid "Disconnected" +#: ../src/applet.c:537 msgid "Disconnect failure" msgstr "Falha ao desconectar" -#: ../src/applet.c:559 -#| msgid "Connection add failed" +#: ../src/applet.c:558 msgid "Connection activation failed" msgstr "Ativação da conexão falhou" -#: ../src/applet.c:1014 +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -778,7 +819,7 @@ "\n" "A conexão VPN \"%s\" falhou porque a conexão de rede foi interrompida." -#: ../src/applet.c:1017 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" @@ -787,7 +828,7 @@ "\n" "A conexão VPN \"%s\" falhou porque o serviço VPN parou inesperadamente." -#: ../src/applet.c:1020 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -798,7 +839,7 @@ "A conexão VPN \"%s\" falhou porque o serviço VPN retornou uma configuração " "inválida." -#: ../src/applet.c:1023 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -807,7 +848,7 @@ "\n" "A conexão VPN \"%s\" falhou porque esgotou o tempo de tentativas de conexão." -#: ../src/applet.c:1026 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -816,7 +857,7 @@ "\n" "A conexão VPN \"%s\" falhou porque o serviço VPN não iniciou a tempo." -#: ../src/applet.c:1029 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -825,7 +866,7 @@ "\n" "A conexão VPN \"%s\" falhou porque o serviço VPN falhou ao iniciar." -#: ../src/applet.c:1032 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -834,7 +875,7 @@ "\n" "A conexão VPN \"%s\" falhou porque não haviam segredos VPN válidos." -#: ../src/applet.c:1035 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -843,7 +884,7 @@ "\n" "A conexão VPN \"%s\" falhou por causa de chaves VPN inválidas." -#: ../src/applet.c:1042 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -852,7 +893,7 @@ "\n" "A conexão VPN \"%s\" falhou." -#: ../src/applet.c:1060 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -862,7 +903,7 @@ "\n" "A conexão VPN \"%s\" desconectou porque a conexão de rede foi interrompida." -#: ../src/applet.c:1063 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -871,7 +912,7 @@ "\n" "A conexão VPN \"%s\" desconectou porque o serviço VPN parou." -#: ../src/applet.c:1069 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -880,15 +921,30 @@ "\n" "A conexão VPN \"%s\" desconectou." -#: ../src/applet.c:1103 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"A conexão VPN foi estabelecida com sucesso.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "A conexão VPN foi estabelecida com sucesso.\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "Mensagem de login VPN" -#: ../src/applet.c:1109 ../src/applet.c:1117 ../src/applet.c:1167 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "A conexão VPN falhou" -#: ../src/applet.c:1174 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -901,7 +957,7 @@ "\n" "%s" -#: ../src/applet.c:1177 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -914,139 +970,139 @@ "\n" "%s" -#: ../src/applet.c:1497 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "o dispositivo não está pronto (faltando firmware)" -#: ../src/applet.c:1499 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "o dispositivo não está pronto" -#: ../src/applet.c:1525 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "Desconectar" -#: ../src/applet.c:1539 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "o dispositivo não é gerenciável" -#: ../src/applet.c:1583 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "Nenhum dispositivo de rede disponível" -#: ../src/applet.c:1671 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "Conexões _VPN" -#: ../src/applet.c:1728 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "_Configurar VPN..." -#: ../src/applet.c:1732 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" -msgstr "_Desconectar VPN... " +msgstr "_Desconectar VPN" -#: ../src/applet.c:1830 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "O Gerenciador de redes não está sendo executado..." -#: ../src/applet.c:1835 ../src/applet.c:2634 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "Rede desabilitada" #. 'Enable Networking' item -#: ../src/applet.c:2056 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "_Habilitar rede" #. 'Enable Wireless' item -#: ../src/applet.c:2065 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "Habilitar rede _sem fio" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2074 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "Habilitar banda larga _móvel" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2083 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "Habilitar banda larga móvel WiMAX" #. Toggle notifications item -#: ../src/applet.c:2094 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "Habilitar n_otificações" #. 'Connection Information' item -#: ../src/applet.c:2105 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "_Informações da conexão" #. 'Edit Connections...' item -#: ../src/applet.c:2115 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "Editar conexões..." #. Help item -#: ../src/applet.c:2129 +#: ../src/applet.c:2124 msgid "_Help" msgstr "Aj_uda" #. About item -#: ../src/applet.c:2138 +#: ../src/applet.c:2133 msgid "_About" msgstr "_Sobre" -#: ../src/applet.c:2315 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "Desconectado" -#: ../src/applet.c:2316 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "A conexão de rede foi desconectada." -#: ../src/applet.c:2497 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "Preparando conexão de rede \"%s\"..." -#: ../src/applet.c:2500 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Autenticação necessária pela conexão de rede \"%s\"..." -#: ../src/applet.c:2506 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "Conexão de rede \"%s\" está ativa" -#: ../src/applet.c:2589 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "Iniciando conexão VPN \"%s\"..." -#: ../src/applet.c:2592 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "Autenticação necessária pela conexão VPN \"%s\"..." -#: ../src/applet.c:2595 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "Requisitando um endereço de rede VPN para \"%s\"..." -#: ../src/applet.c:2598 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "Conexão VPN \"%s\" ativa" -#: ../src/applet.c:2639 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "Nenhuma conexão de rede" -#: ../src/applet.c:3394 +#: ../src/applet.c:3327 msgid "NetworkManager Applet" msgstr "Miniaplicativo Gerenciador de Redes" @@ -1210,11 +1266,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Pe_squisar domínios:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "Servidores _DNS:" @@ -1590,20 +1650,20 @@ #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "Endereço" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "Máscara de rede" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "Gateway" @@ -1613,7 +1673,7 @@ msgstr "Métrica" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "Prefixo" @@ -1627,7 +1687,7 @@ msgid "Could not load DSL user interface." msgstr "Não foi possível carregar a interface gráfica para DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "Conexão DSL %d" @@ -1679,16 +1739,26 @@ msgid "Disabled" msgstr "Desativado" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Servidores _DNS adicionais:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Pe_squisar domínios adicionais:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Editando rotas IPv4 para %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "Configurações IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Não foi possível carregar a interface gráfica para IPv4." @@ -1697,7 +1767,7 @@ msgstr "Automático, somente endereços" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:280 msgid "Ignore" msgstr "Ignorar" @@ -1705,16 +1775,16 @@ msgid "Automatic, DHCP only" msgstr "Automático, somente DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Editando rotas IPv6 para %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "Configurações IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Não foi possível carregar a interface gráfica para IPv6." @@ -1914,16 +1984,16 @@ msgid "Could not load WiFi security user interface." msgstr "Não foi possível carregar a interface gráfica para segurança WiFi." -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "Editando %s" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "Editando conexão sem nome" -#: ../src/connection-editor/nm-connection-editor.c:291 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." @@ -1931,23 +2001,23 @@ "O editor de conexão não pôde localizar alguns recursos necessários (o " "arquivo .ui não foi localizado)." -#: ../src/connection-editor/nm-connection-editor.c:394 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "Erro ao criar o diálogo de edição de conexões." -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "_Salvar" -#: ../src/connection-editor/nm-connection-editor.c:407 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "Salvar qualquer alteração feita nesta conexão." -#: ../src/connection-editor/nm-connection-editor.c:408 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "_Salvar..." -#: ../src/connection-editor/nm-connection-editor.c:409 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." msgstr "" "Autenticar para salvar esta conexão para todos os usuários desta máquina." @@ -1969,7 +2039,7 @@ msgstr "Conectar _automaticamente" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Disponível para todos os usuários" #: ../src/connection-editor/nm-connection-list.c:216 @@ -2523,11 +2593,11 @@ "deseja se conectar." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Segurança sem fio:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Co_nexão:" #: ../src/libnm-gtk/wifi.ui.h:5 @@ -2644,11 +2714,11 @@ "O miniaplicativo Gerenciador de Redes não pôde localizar alguns recursos " "necessários (o arquivo .ui não foi localizado)." -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:274 msgid "No Certificate Authority certificate chosen" msgstr "Nenhum certificado de autoridade certificadora escolhido" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:275 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " @@ -2658,15 +2728,15 @@ "conexões inseguras, redes sem fio vulneráveis e não confiáveis. Você " "gostaria de escolher um certificado de Autoridade Certificadora?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:284 msgid "Choose CA Certificate" msgstr "Escolha o certificado CA:" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:643 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Chaves privadas DER, PEM ou PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:646 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Certificados DER ou PEM (*.der, *.pem, *.crt, *.cer)" diff -Nru network-manager-applet-0.9.4.1/po/ro.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ro.po --- network-manager-applet-0.9.4.1/po/ro.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ro.po 2012-10-31 13:20:57.000000000 +0000 @@ -986,7 +986,7 @@ msgstr "C_onectare" #: ../src/applet.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Co_nexiune:" #: ../src/applet.ui.h:5 @@ -1010,7 +1010,7 @@ msgstr "_Deblochează" #: ../src/applet.ui.h:10 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "Secur_itatea rețelei fără fir:" #: ../src/applet.ui.h:11 @@ -1896,7 +1896,7 @@ "acestui calculator." #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Disponibil tuturor utilizatorilor" #: ../src/connection-editor/nm-connection-editor.ui.h:2 diff -Nru network-manager-applet-0.9.4.1/po/ru.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ru.po --- network-manager-applet-0.9.4.1/po/ru.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ru.po 2012-10-31 13:20:57.000000000 +0000 @@ -7,19 +7,23 @@ # Yulia , 2010. # Andrey Cherepanov , 2009, 2010. # Stas Solovey , 2011. +# Yuri Myasoedov , 2012. # msgid "" msgstr "" "Project-Id-Version: NetworkManager-applet\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-09 22:26+0000\n" -"PO-Revision-Date: 2012-03-11 20:11+0300\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" +"POT-Creation-Date: 2012-08-20 16:42+0000\n" +"PO-Revision-Date: 2012-08-25 11:21+0400\n" "Last-Translator: Yuri Myasoedov \n" -"Language-Team: Russian \n" +"Language-Team: русский \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" "X-Generator: Lokalize 1.0\n" #: ../nm-applet.desktop.in.h:1 @@ -30,79 +34,128 @@ msgid "Manage your network connections" msgstr "Управление сетевыми соединениями" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Сетевые соединения" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Управление параметрами сетевых соединений" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Отключить уведомления о подключении" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +#| msgid "" +#| "Set this to TRUE to disable notifications when connecting to a network." +msgid "Set this to true to disable notifications when connecting to a network." msgstr "Установите в TRUE, чтобы отключить уведомления при подключении к сети." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Отключить уведомления об отключении" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "" +"Set this to true to disable notifications when disconnecting from a network." msgstr "Установите в TRUE, чтобы отключить уведомления при отключении от сети." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +#| msgid "Disable connected notifications" +msgid "Disable VPN notifications" +msgstr "Отключить уведомления от VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"Установите в TRUE, чтобы отключить уведомления при подключении к VPN или " +"отключении от VPN." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Не показывать уведомления о доступных беспроводных сетях" -#: ../nm-applet.schemas.in.h:6 -msgid "Set this to TRUE to disable notifications when wireless networks are available." -msgstr "Установите в TRUE, чтобы отключить уведомления о доступных беспроводных сетях." +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#| msgid "" +#| "Set this to TRUE to disable notifications when wireless networks are " +#| "available." +msgid "" +"Set this to true to disable notifications when wireless networks are " +"available." +msgstr "" +"Установите в TRUE, чтобы отключить уведомления о доступных беспроводных " +"сетях." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Штамп" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." -msgstr "Используется для определения параметров, которые должны быть перенесены в новую версию." +msgstr "" +"Используется для определения параметров, которые должны быть перенесены в " +"новую версию." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Отключить создание соединения WiFi" -#: ../nm-applet.schemas.in.h:10 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "Установите в TRUE, чтобы отключить создание сетей ad-hoc при использовании апплета." +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +#| msgid "" +#| "Set to TRUE to disable creation of adhoc networks when using the applet." +msgid "" +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "" +"Установите в TRUE, чтобы отключить создание сетей ad-hoc при использовании " +"апплета." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Сетевые соединения" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +#| msgid "Choose CA Certificate" +msgid "Ignore CA certificate" +msgstr "Игнорировать сертификат CA" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Управление параметрами сетевых соединений" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Установите в TRUE, чтобы отключить предупреждения о сертификатах CA для " +"аутентификации EAP." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Установите в TRUE, чтобы отключить предупреждения о сертификатах CA для " +"второго этапа аутентификации EAP." -#: ../src/applet-device-bt.c:174 -#: ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 -#: ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 -#: ../src/applet-device-wimax.c:279 +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-gsm.c:444 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Доступные" -#: ../src/applet-device-bt.c:200 -#: ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 -#: ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-gsm.c:486 ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "Вы подключены к сети «%s»." -#: ../src/applet-device-bt.c:204 -#: ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 -#: ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 -#: ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-gsm.c:490 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Соединение установлено" @@ -110,205 +163,190 @@ msgid "You are now connected to the mobile broadband network." msgstr "Вы подключены к мобильной сети." -#: ../src/applet-device-bt.c:231 -#: ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 -#: ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "Подготовка мобильного соединения «%s»…" -#: ../src/applet-device-bt.c:234 -#: ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 -#: ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "Настройка мобильного соединения «%s»…" -#: ../src/applet-device-bt.c:237 -#: ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 -#: ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "Для мобильного соединения «%s» требуется аутентификация…" -#: ../src/applet-device-bt.c:240 -#: ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 -#: ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "Получение сетевого адреса для «%s»…" -#: ../src/applet-device-bt.c:244 -#: ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "Мобильное соединение «%s» установлено" -#: ../src/applet-device-cdma.c:184 -#: ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:696 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 -#: ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Мобильное (%s)" -#: ../src/applet-device-cdma.c:347 -#: ../src/applet-device-gsm.c:394 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 #: ../src/connection-editor/page-mobile.c:379 #: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "Мобильные" #. Default connection item -#: ../src/applet-device-cdma.c:412 +#: ../src/applet-device-cdma.c:409 msgid "New Mobile Broadband (CDMA) connection..." msgstr "Новое подключение к мобильной сети CDMA…" -#: ../src/applet-device-cdma.c:446 +#: ../src/applet-device-cdma.c:443 msgid "You are now connected to the CDMA network." msgstr "Вы подключены к сети CDMA." -#: ../src/applet-device-cdma.c:503 -#: ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "Мобильное соединение «%s» установлено: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 -#: ../src/applet-device-gsm.c:553 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "роуминг" -#: ../src/applet-device-cdma.c:647 -#: ../src/applet-device-cdma.c:653 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 msgid "CDMA network." msgstr "Сеть CDMA." -#: ../src/applet-device-cdma.c:648 -#: ../src/applet-device-gsm.c:1198 +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 msgid "You are now registered on the home network." msgstr "Вы зарегистрированы в домашней сети." -#: ../src/applet-device-cdma.c:654 -#: ../src/applet-device-gsm.c:1204 +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 msgid "You are now registered on a roaming network." msgstr "Вы зарегистрированы в роуминговой сети." -#: ../src/applet-device-gsm.c:213 -#: ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" #. Default connection item -#: ../src/applet-device-gsm.c:459 +#: ../src/applet-device-gsm.c:457 msgid "New Mobile Broadband (GSM) connection..." msgstr "Новое подключение к мобильной сети GSM…" -#: ../src/applet-device-gsm.c:493 +#: ../src/applet-device-gsm.c:491 msgid "You are now connected to the GSM network." msgstr "Вы подключены к сети GSM." -#: ../src/applet-device-gsm.c:654 +#: ../src/applet-device-gsm.c:652 msgid "PIN code required" msgstr "Требуется PIN-код" -#: ../src/applet-device-gsm.c:662 +#: ../src/applet-device-gsm.c:660 msgid "PIN code is needed for the mobile broadband device" msgstr "Для использования мобильного устройства требуется PIN-код" -#: ../src/applet-device-gsm.c:783 +#: ../src/applet-device-gsm.c:781 #, c-format msgid "PIN code for SIM card '%s' on '%s'" msgstr "PIN-код для SIM-карты «%s» (%s)" -#: ../src/applet-device-gsm.c:875 +#: ../src/applet-device-gsm.c:873 msgid "Wrong PIN code; please contact your provider." msgstr "Неправильный PIN-код, обратитесь к оператору сети." -#: ../src/applet-device-gsm.c:898 +#: ../src/applet-device-gsm.c:896 msgid "Wrong PUK code; please contact your provider." msgstr "Неправильный PUK-код, обратитесь к оператору сети." #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 +#: ../src/applet-device-gsm.c:923 msgid "Sending unlock code..." msgstr "Отправка кода разблокировки…" -#: ../src/applet-device-gsm.c:988 +#: ../src/applet-device-gsm.c:986 msgid "SIM PIN unlock required" msgstr "Для разблокировки SIM требуется PIN-код" -#: ../src/applet-device-gsm.c:989 +#: ../src/applet-device-gsm.c:987 msgid "SIM PIN Unlock Required" msgstr "Для разблокировки SIM требуется PIN-код" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 +#: ../src/applet-device-gsm.c:989 #, c-format -msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." msgstr "Для работы мобильного устройства «%s» требуется PIN-код SIM." #. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 +#: ../src/applet-device-gsm.c:991 msgid "PIN code:" msgstr "PIN-код:" #. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 +#: ../src/applet-device-gsm.c:995 msgid "Show PIN code" msgstr "Показывать PIN-код" -#: ../src/applet-device-gsm.c:1000 +#: ../src/applet-device-gsm.c:998 msgid "SIM PUK unlock required" msgstr "Для разблокировки SIM требуется PUK-код" -#: ../src/applet-device-gsm.c:1001 +#: ../src/applet-device-gsm.c:999 msgid "SIM PUK Unlock Required" msgstr "Для разблокировки SIM требуется PUK-код" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#: ../src/applet-device-gsm.c:1001 #, c-format -msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." msgstr "Для работы мобильного устройства «%s» требуется PUK-код SIM." #. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 +#: ../src/applet-device-gsm.c:1003 msgid "PUK code:" msgstr "PUK-код:" #. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 +#: ../src/applet-device-gsm.c:1006 msgid "New PIN code:" msgstr "Новый PIN-код:" #. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 +#: ../src/applet-device-gsm.c:1008 msgid "Re-enter new PIN code:" msgstr "Введите новый PIN-код ещё раз:" #. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 +#: ../src/applet-device-gsm.c:1013 msgid "Show PIN/PUK codes" msgstr "Показывать PIN/PUK-коды:" -#: ../src/applet-device-gsm.c:1197 -#: ../src/applet-device-gsm.c:1203 +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 msgid "GSM network." msgstr "Сеть GSM." @@ -335,8 +373,7 @@ msgstr "Проводная сеть" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 -#: ../src/applet.c:1490 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "соединение разорвано" @@ -377,91 +414,108 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "Подключиться к _скрытой беспроводной сети…" -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "Создать _новую беспроводную сеть…" -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(нет)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "Беспроводные сети (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "Беспроводная сеть (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Беспроводная сеть" msgstr[1] "Беспроводные сети" msgstr[2] "Беспроводных сетей" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "поддержка беспроводных сетей отключена" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "поддержка беспроводных сетей отключена аппаратно" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "Ещё сети" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "Доступны беспроводные сети" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "Используйте меню сети для подключения к беспроводной сети" -#: ../src/applet-device-wifi.c:1085 -#: ../src/applet.c:906 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "Не выводить больше это сообщение" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Вы подключены к беспроводной сети «%s»." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "Подготовка беспроводного сетевого соединения «%s»…" -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "Настройка беспроводного сетевого соединения «%s»…" -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "Для беспроводного сетевого соединения «%s» требуется аутентификация…" -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "Получение адреса в беспроводной сети для «%s»…" -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "Беспроводное сетевое соединение «%s» установлено: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "Беспроводное сетевое соединение «%s» установлено" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Не удалось включить соединение" + +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +msgid "Unknown error" +msgstr "Неизвестная ошибка" + +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 +msgid "Connection failure" +msgstr "Сбой при подключении" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Не удалось добавить новое соединение" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -488,9 +542,9 @@ msgstr "Ошибка показа сведений о соединении:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -498,204 +552,195 @@ msgid "Dynamic WEP" msgstr "Динамический WEP" -#: ../src/applet-dialogs.c:113 -#: ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 -#: ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "Без проверки подлинности" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-dialogs.c:277 #, c-format -#| msgid "1 (Default)" msgid "%s (default)" msgstr "%s (по умолчанию)" -#: ../src/applet-dialogs.c:347 -#: ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Мбит/c" -#: ../src/applet-dialogs.c:349 -#: ../src/applet-dialogs.c:487 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Неизвестно" -#: ../src/applet-dialogs.c:362 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d дБ" -#: ../src/applet-dialogs.c:364 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "неизвестно" -#: ../src/applet-dialogs.c:376 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "неизвестно" -#: ../src/applet-dialogs.c:411 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Ethernet (%s)" -#: ../src/applet-dialogs.c:414 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:421 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:423 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:427 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:433 -#: ../src/applet-dialogs.c:792 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "Общий" -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "Интерфейс:" -#: ../src/applet-dialogs.c:453 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "MAC-адрес:" #. Driver -#: ../src/applet-dialogs.c:461 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "Драйвер:" -#: ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "Скорость:" -#: ../src/applet-dialogs.c:500 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "Защита:" -#: ../src/applet-dialogs.c:513 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:526 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:543 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:554 -#: ../src/applet-dialogs.c:661 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP-адрес:" -#: ../src/applet-dialogs.c:556 -#: ../src/applet-dialogs.c:572 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "Неизвестно" -#: ../src/applet-dialogs.c:570 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "Широковещательный адрес:" #. Prefix -#: ../src/applet-dialogs.c:579 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "Маска подсети:" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "Неизвестно" -#: ../src/applet-dialogs.c:589 -#: ../src/applet-dialogs.c:676 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "Шлюз по умолчанию:" -#: ../src/applet-dialogs.c:601 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "Первичный DNS:" -#: ../src/applet-dialogs.c:610 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "Вторичный DNS:" -#: ../src/applet-dialogs.c:620 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "Третичный DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:635 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:644 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "Игнорировать" -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "Тип VPN:" -#: ../src/applet-dialogs.c:804 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "Шлюз VPN:" -#: ../src/applet-dialogs.c:810 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "Имя пользователя VPN:" -#: ../src/applet-dialogs.c:816 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "Баннер VPN:" -#: ../src/applet-dialogs.c:822 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "Основное соединение:" -#: ../src/applet-dialogs.c:824 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "Неизвестно" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "Активные соединения отсутствуют!" -#: ../src/applet-dialogs.c:940 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -705,59 +750,83 @@ "© 2005-2008 Novell, Inc.\n" "и многие другие участники сообщества и переводчики" -#: ../src/applet-dialogs.c:943 -msgid "Notification area applet for managing your network devices and connections." -msgstr "Апплет области уведомления для управления сетевыми устройствами и соединениями." +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"Апплет области уведомления для управления сетевыми устройствами и " +"соединениями." -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "Веб-сайт NetworkManager" -#: ../src/applet-dialogs.c:960 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "Компоненты приложения отсутствуют" -#: ../src/applet-dialogs.c:985 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "Пароль мобильной сети" -#: ../src/applet-dialogs.c:994 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "Для подключения к сети «%s» требуется пароль." -#: ../src/applet-dialogs.c:1013 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "Пароль:" -#: ../src/applet.c:995 +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Не удалось создать/включить соединение" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Сбой устройства при отключении" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Сбой при отключении" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "Сбой при включении соединения" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" -"The VPN connection '%s' failed because the network connection was interrupted." +"The VPN connection '%s' failed because the network connection was " +"interrupted." msgstr "" "\n" -"Произошёл сбой VPN-соединения «%s», поскольку подключение к сети было прервано." +"Произошёл сбой VPN-соединения «%s», поскольку подключение к сети было " +"прервано." -#: ../src/applet.c:998 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service stopped unexpectedly." msgstr "" "\n" -"Произошёл сбой VPN-соединения «%s», поскольку служба VPN неожиданно завершилась." +"Произошёл сбой VPN-соединения «%s», поскольку служба VPN неожиданно " +"завершилась." -#: ../src/applet.c:1001 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" -"The VPN connection '%s' failed because the VPN service returned invalid configuration." +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." msgstr "" "\n" -"Произошёл сбой VPN-соединения «%s», поскольку служба VPN вернула неверную конфигурацию." +"Произошёл сбой VPN-соединения «%s», поскольку служба VPN вернула неверную " +"конфигурацию." -#: ../src/applet.c:1004 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -766,7 +835,7 @@ "\n" "Произошёл сбой VPN-соединения «%s»: превышено время ожидания." -#: ../src/applet.c:1007 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -775,7 +844,7 @@ "\n" "Произошёл сбой VPN-соединения «%s»: служба VPN не запустилась вовремя." -#: ../src/applet.c:1010 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -784,7 +853,7 @@ "\n" "Произошёл сбой VPN-соединения «%s»: не удалось запустить службу VPN." -#: ../src/applet.c:1013 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -793,7 +862,7 @@ "\n" "Произошёл сбой соединения VPN «%s»: не удалось найти подходящий ключ для VPN." -#: ../src/applet.c:1016 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -802,7 +871,7 @@ "\n" "Не удалось установить VPN-соединение «%s» — неверный ключ доступа к VPN." -#: ../src/applet.c:1023 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -811,16 +880,17 @@ "\n" "Произошёл сбой VPN-соединения «%s»." -#: ../src/applet.c:1041 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" -"The VPN connection '%s' disconnected because the network connection was interrupted." +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." msgstr "" "\n" "VPN-соединение «%s» разорвано, поскольку подключение к сети было прервано." -#: ../src/applet.c:1044 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -829,7 +899,7 @@ "\n" "VPN-соединение «%s» разорвано, поскольку служба VPN была остановлена." -#: ../src/applet.c:1050 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -838,17 +908,30 @@ "\n" "VPN-соединение «%s» разорвано." -#: ../src/applet.c:1084 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"Соединение VPN успешно установлено.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "Соединение VPN успешно установлено.\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "Сообщение авторизации VPN" -#: ../src/applet.c:1090 -#: ../src/applet.c:1098 -#: ../src/applet.c:1148 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "Сбой соединения VPN" -#: ../src/applet.c:1155 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -857,11 +940,12 @@ "%s" msgstr "" "\n" -"Произошёл сбой VPN-соединения «%s», поскольку не удалось запустить службу VPN.\n" +"Произошёл сбой VPN-соединения «%s», поскольку не удалось запустить службу " +"VPN.\n" "\n" "%s" -#: ../src/applet.c:1158 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -874,140 +958,139 @@ "\n" "%s" -#: ../src/applet.c:1478 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "устройство не готово (нет прошивки)" -#: ../src/applet.c:1480 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "устройство не готово" -#: ../src/applet.c:1506 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "Отключиться" -#: ../src/applet.c:1520 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "устройство не управляется" -#: ../src/applet.c:1564 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "Нет доступных сетевых устройств" -#: ../src/applet.c:1652 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "Соединения _VPN" -#: ../src/applet.c:1709 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "_Настроить VPN…" -#: ../src/applet.c:1713 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "_Отключить VPN" -#: ../src/applet.c:1811 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "Служба NetworkManager не запущена…" -#: ../src/applet.c:1816 -#: ../src/applet.c:2609 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "Поддержка сети отключена" #. 'Enable Networking' item -#: ../src/applet.c:2037 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "Управление _сетью" #. 'Enable Wireless' item -#: ../src/applet.c:2046 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "_Беспроводная связь" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "_Мобильная связь" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "Мобильная связь WiMA_X" #. Toggle notifications item -#: ../src/applet.c:2075 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "_Уведомлять о подключении" #. 'Connection Information' item -#: ../src/applet.c:2086 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "C_ведения о соединении" #. 'Edit Connections...' item -#: ../src/applet.c:2096 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "Изменить соединения…" #. Help item -#: ../src/applet.c:2110 +#: ../src/applet.c:2124 msgid "_Help" msgstr "_Справка" #. About item -#: ../src/applet.c:2119 +#: ../src/applet.c:2133 msgid "_About" msgstr "_О программе" -#: ../src/applet.c:2296 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "Соединение разорвано" -#: ../src/applet.c:2297 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "Сетевое соединение было разорвано." -#: ../src/applet.c:2478 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "Подготовка сетевого соединения «%s»…" -#: ../src/applet.c:2481 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Для сетевого соединения «%s» требуется аутентификация…" -#: ../src/applet.c:2487 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "Сетевое соединение «%s» установлено" -#: ../src/applet.c:2565 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "Устанавливается соединение VPN «%s»…" -#: ../src/applet.c:2568 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "Для VPN-соединения «%s» требуется аутентификация…" -#: ../src/applet.c:2571 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "Получение адреса VPN для «%s»…" -#: ../src/applet.c:2574 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "VPN-соединение «%s» установлено" -#: ../src/applet.c:2613 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "Нет подключения к сети" -#: ../src/applet.c:3263 +#: ../src/applet.c:3336 msgid "NetworkManager Applet" msgstr "Апплет NetworkManager" @@ -1027,13 +1110,11 @@ msgid "Active Network Connections" msgstr "Активные сетевые соединения" -#: ../src/wired-8021x.ui.h:1 -#: ../src/wired-dialog.c:104 +#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 msgid "Wired 802.1X authentication" msgstr "Аутентификация проводной сети 802.1X" -#: ../src/wired-8021x.ui.h:2 -#: ../src/libnm-gtk/wifi.ui.h:3 +#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 msgid "_Network name:" msgstr "_Имя сети:" @@ -1041,7 +1122,7 @@ msgid "automatic" msgstr "автоматически" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "Внутренняя ошибка обновления ключей." @@ -1049,8 +1130,12 @@ #: ../src/connection-editor/ce-ip6-routes.ui.h:1 #: ../src/connection-editor/ce-page-ip4.ui.h:8 #: ../src/connection-editor/ce-page-ip6.ui.h:8 -msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." -msgstr "IP-адреса вашего компьютера в сети. Нажмите кнопку «Добавить» для добавления IP-адреса." +msgid "" +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." +msgstr "" +"IP-адреса вашего компьютера в сети. Нажмите кнопку «Добавить» для добавления " +"IP-адреса." #: ../src/connection-editor/ce-ip4-routes.ui.h:2 #: ../src/connection-editor/ce-ip6-routes.ui.h:2 @@ -1064,8 +1149,12 @@ #: ../src/connection-editor/ce-ip4-routes.ui.h:4 #: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "If enabled, this connection will never be used as the default network connection." -msgstr "Если включено, то это соединение никогда не будет использоваться как сетевое соединение по умолчанию." +msgid "" +"If enabled, this connection will never be used as the default network " +"connection." +msgstr "" +"Если включено, то это соединение никогда не будет использоваться как сетевое " +"соединение по умолчанию." #: ../src/connection-editor/ce-page-dsl.ui.h:1 #: ../src/connection-editor/ce-page-mobile.ui.h:8 @@ -1141,13 +1230,23 @@ msgstr "Адреса" #: ../src/connection-editor/ce-page-ip4.ui.h:9 -msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." -msgstr "Идентификатор клиента DHCP позволяет сетевому администратору определить настройки доступа к сети специально для вашего компьютера. Если у вас используется такой идентификатор, введите его." +msgid "" +"The DHCP client identifier allows the network administrator to customize " +"your computer's configuration. If you wish to use a DHCP client identifier, " +"enter it here." +msgstr "" +"Идентификатор клиента DHCP позволяет сетевому администратору определить " +"настройки доступа к сети специально для вашего компьютера. Если у вас " +"используется такой идентификатор, введите его." #: ../src/connection-editor/ce-page-ip4.ui.h:10 #: ../src/connection-editor/ce-page-ip6.ui.h:9 -msgid "Domains used when resolving host names. Use commas to separate multiple domains." -msgstr "Домены, используемые для разрешения имён узлов. Можно указать несколько доменов через запятую." +msgid "" +"Domains used when resolving host names. Use commas to separate multiple " +"domains." +msgstr "" +"Домены, используемые для разрешения имён узлов. Можно указать несколько " +"доменов через запятую." #: ../src/connection-editor/ce-page-ip4.ui.h:11 msgid "D_HCP client ID:" @@ -1155,26 +1254,38 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" -msgstr "_Домены поиска:" +msgstr "_Поисковый домен:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "Серверы _DNS:" #: ../src/connection-editor/ce-page-ip4.ui.h:14 #: ../src/connection-editor/ce-page-ip6.ui.h:12 -msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." -msgstr "IP-адреса DNS-серверов используются для разрешения имён узлов. Можно указать несколько DNS-серверов через запятую." +msgid "" +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." +msgstr "" +"IP-адреса DNS-серверов используются для разрешения имён узлов. Можно указать " +"несколько DNS-серверов через запятую." #: ../src/connection-editor/ce-page-ip4.ui.h:15 msgid "Require IPv_4 addressing for this connection to complete" msgstr "Требовать адресацию IPv_4 для этого соединения" #: ../src/connection-editor/ce-page-ip4.ui.h:16 -msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "При подключении к сетям с возможностями IPv6: разрешает установить соединение в случае сбоя конфигурации IPv4, но успеха конфигурации IPv6." +msgid "" +"When connecting to IPv6-capable networks, allows the connection to complete " +"if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "" +"При подключении к сетям с возможностями IPv6: разрешает установить " +"соединение в случае сбоя конфигурации IPv4, но успеха конфигурации IPv6." #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 @@ -1186,8 +1297,12 @@ msgstr "Требовать адресацию IPv_6 для этого соединения" #: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds." -msgstr "При подключении к сетям с возможностями IPv4: разрешает установить соединение в случае сбоя конфигурации IPv6, но успеха конфигурации IPv4." +msgid "" +"When connecting to IPv4-capable networks, allows the connection to complete " +"if IPv6 configuration fails but IPv4 configuration succeeds." +msgstr "" +"При подключении к сетям с возможностями IPv4: разрешает установить " +"соединение в случае сбоя конфигурации IPv6, но успеха конфигурации IPv4." #: ../src/connection-editor/ce-page-mobile.ui.h:1 msgid "Any" @@ -1358,8 +1473,14 @@ #: ../src/connection-editor/ce-page-wired.ui.h:16 #: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "Введённый MAC-адрес будет использоваться в качестве адреса сетевого устройства, на котором включено это соединение. Эта возможность известна как клонирование MAC-адреса или подмена (spoofing). Пример: 00:11:22:33:44:55" +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"Введённый MAC-адрес будет использоваться в качестве адреса сетевого " +"устройства, на котором включено это соединение. Эта возможность известна как " +"клонирование MAC-адреса или подмена (spoofing). Пример: 00:11:22:33:44:55" #: ../src/connection-editor/ce-page-wired.ui.h:17 #: ../src/connection-editor/ce-page-wireless.ui.h:7 @@ -1404,8 +1525,12 @@ msgstr "Скорость:" #: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "This option locks this connection to the wireless access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "Привязывать соединение к BSSID беспроводной точки доступа. Пример: 00:11:22:33:44:55" +msgid "" +"This option locks this connection to the wireless access point (AP) " +"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Привязывать соединение к BSSID беспроводной точки доступа. Пример: " +"00:11:22:33:44:55" #: ../src/connection-editor/ce-page-wireless.ui.h:16 msgid "_BSSID:" @@ -1476,11 +1601,15 @@ msgstr "Microsoft Challenge Handshake Authentication Protocol версии 2" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." -msgstr "В большинстве случаев PPP-серверы провайдера поддерживают любой метод аутентификации. Если же соединение не устанавливается, попробуйте выключить поддержку некоторых методов." +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "" +"В большинстве случаев PPP-серверы провайдера поддерживают любой метод " +"аутентификации. Если же соединение не устанавливается, попробуйте выключить " +"поддержку некоторых методов." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 -#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 #: ../src/wireless-security/eap-method-fast.ui.h:1 #: ../src/wireless-security/eap-method-peap.ui.h:1 #: ../src/wireless-security/eap-method-ttls.ui.h:1 @@ -1494,8 +1623,13 @@ msgstr "Выберите тип VPN-соединения" #: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." -msgstr "Выберите тип создаваемого VPN-соединения. Если необходимый тип отсутствует в списке, то возможно, не установлен необходимый VPN-модуль." +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Выберите тип создаваемого VPN-соединения. Если необходимый тип отсутствует в " +"списке, то возможно, не установлен необходимый VPN-модуль." #: ../src/connection-editor/ce-vpn-wizard.ui.h:4 msgid "Create…" @@ -1503,20 +1637,20 @@ #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "Адрес" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "Маска сети" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "Шлюз" @@ -1526,13 +1660,13 @@ msgstr "Метрика" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "Префикс" #: ../src/connection-editor/page-dsl.c:139 #: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1540,7 +1674,7 @@ msgid "Could not load DSL user interface." msgstr "Не удалось загрузить диалог настройки DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "DSL-соединение %d" @@ -1592,16 +1726,26 @@ msgid "Disabled" msgstr "Не указывать адрес" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "_Дополнительные серверы DNS:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "До_полнительные поисковые домены:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Маршруты IPv4 для %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "Параметры IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Не удалось загрузить диалог настройки IPv4." @@ -1610,7 +1754,7 @@ msgstr "Автоматически, только адреса" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Игнорировать" @@ -1618,16 +1762,16 @@ msgid "Automatic, DHCP only" msgstr "Автоматически, только DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Маршруты IPv4 для %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "Параметры IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Не удалось загрузить диалог настройки IPv4." @@ -1645,7 +1789,9 @@ msgstr "Выберите оператора мобильной связи" #: ../src/connection-editor/page-mobile.c:674 -msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." +msgid "" +"Select the technology your mobile broadband provider uses. If you are " +"unsure, ask your provider." msgstr "Выберите предоставляемый оператором тип мобильной связи." #: ../src/connection-editor/page-mobile.c:679 @@ -1702,7 +1848,7 @@ #: ../src/connection-editor/page-vpn.c:109 #: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1716,19 +1862,23 @@ msgstr "Не удалось найти VPN-модуль «%s»." #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "VPN-соединение %d" #: ../src/connection-editor/page-wired.c:89 #: ../src/connection-editor/page-wireless.c:94 -msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "Привязать соединение к сетевому устройству с этим MAC-адресом. Пример: 00:11:22:33:44:55" +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Привязать соединение к сетевому устройству с этим MAC-адресом. Пример: " +"00:11:22:33:44:55" #: ../src/connection-editor/page-wired.c:272 #: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Проводные" @@ -1741,15 +1891,15 @@ msgid "Wired connection %d" msgstr "Проводное соединение %d" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "Защита 802.1x" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "Не удалось загрузить интерфейс настройки защиты проводного соединения." -#: ../src/connection-editor/page-wired-security.c:136 +#: ../src/connection-editor/page-wired-security.c:139 msgid "Use 802.1_X security for this connection" msgstr "Использовать защиту 802.1_X для этого соединения" @@ -1767,7 +1917,7 @@ #: ../src/connection-editor/page-wireless.c:457 #: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Беспроводные" @@ -1780,75 +1930,83 @@ msgid "Wireless connection %d" msgstr "Беспроводное соединение %d" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP (40/128-битный ключ (Hex или ASCII))" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP (128-битный ключ)" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "Динамический WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA/WPA2 Personal" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA/WPA2 Enterprise" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "Не удалось загрузить диалог настройки защиты WiFi-соединения, настройка WiFi пропускается." +msgstr "" +"Не удалось загрузить диалог настройки защиты WiFi-соединения, настройка WiFi " +"пропускается." -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "Защита беспроводной сети" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "Не удалось загрузить диалог настройки защиты WiFi-соединения." -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "Изменение %s" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "Изменение безымянного соединения" -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "The connection editor could not find some required resources (the .ui file was not found)." -msgstr "Редактор соединений не может найти некоторые необходимые ресурсы (не найден файл glade)." +#: ../src/connection-editor/nm-connection-editor.c:292 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"Редактор соединений не может найти некоторые необходимые ресурсы (не найден " +"файл glade)." -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "Ошибка создания диалога редактора соединений" -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "_Сохранить" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "Сохранить параметры соединения." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "_Сохранить…" -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." -msgstr "Введите пароль администратора для того, чтобы сделать это соединение общим для всех пользователей компьютера." +msgstr "" +"Введите пароль администратора для того, чтобы сделать это соединение общим " +"для всех пользователей компьютера." #: ../src/connection-editor/nm-connection-editor.ui.h:5 msgid "_Import" @@ -1867,8 +2025,8 @@ msgstr "Подключаться _автоматически" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Доступно всем пользователям" +msgid "A_vailable to all users" +msgstr "Доступно _всем пользователям" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -1945,9 +2103,12 @@ #: ../src/connection-editor/nm-connection-list.c:546 #: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "The connection editor dialog could not be initialized due to an unknown error." -msgstr "Не удалось создать диалог редактора соединений из-за внутренней ошибки." +#: ../src/connection-editor/nm-connection-list.c:885 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"Не удалось создать диалог редактора соединений из-за внутренней ошибки." #: ../src/connection-editor/nm-connection-list.c:557 msgid "Could not create new connection" @@ -1970,12 +2131,12 @@ msgid "Are you sure you wish to delete the connection %s?" msgstr "Удалить соединение «%s»?" -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "Не удалось импортировать VPN-соединение" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -1985,112 +2146,115 @@ "\n" "Ошибка: тип службы VPN не поддерживается." -#: ../src/connection-editor/nm-connection-list.c:945 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "Не удалось изменить импортированное соединение" -#: ../src/connection-editor/nm-connection-list.c:1126 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "Название" -#: ../src/connection-editor/nm-connection-list.c:1138 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "Последнее подключение" -#: ../src/connection-editor/nm-connection-list.c:1264 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." -msgstr "Модуль VPN недоступен. Установите модуль, чтобы эта кнопка стала активной." +msgstr "" +"Модуль VPN недоступен. Установите модуль, чтобы эта кнопка стала активной." -#: ../src/connection-editor/nm-connection-list.c:1275 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "_Изменить" -#: ../src/connection-editor/nm-connection-list.c:1276 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "Изменить выбранное соединение." -#: ../src/connection-editor/nm-connection-list.c:1277 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "_Изменить…" -#: ../src/connection-editor/nm-connection-list.c:1278 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "Для изменения выбранного соединения необходима аутентификация" -#: ../src/connection-editor/nm-connection-list.c:1293 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "_Удалить" -#: ../src/connection-editor/nm-connection-list.c:1294 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "Удалить выбранное соединение" -#: ../src/connection-editor/nm-connection-list.c:1295 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "_Удалить…" -#: ../src/connection-editor/nm-connection-list.c:1296 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "Для удаления выбранного соединения необходима аутентификация" -#: ../src/connection-editor/nm-connection-list.c:1575 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "Ошибка создания соединения" -#: ../src/connection-editor/nm-connection-list.c:1576 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "Неизвестно, как создавать соединения «%s»" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "Ошибка изменения соединения" -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "Неизвестно, как изменять соединения «%s»" -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "Соединение с UUID «%s» не найдено" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" -"The file '%s' could not be read or does not contain recognized VPN connection information\n" +"The file '%s' could not be read or does not contain recognized VPN " +"connection information\n" "\n" "Error: %s." msgstr "" -"Файл «%s» не может быть прочитан или не содержит распознаваемые данные о VPN-соединении.\n" +"Файл «%s» не может быть прочитан или не содержит распознаваемые данные о VPN-" +"соединении.\n" "\n" "Ошибка: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "Выбор файла для импортирования" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "Файл с именем «%s» уже существует." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "_Заменить" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Заменить «%s» VPN-соединением, которое вы хотите сохранить?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "Не удалось экспортировать VPN-соединение" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2101,232 +2265,255 @@ "\n" "Ошибка: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "Экспортировать VPN-соединение…" -#: ../src/gnome-bluetooth/bt-widget.c:220 +#: ../src/gnome-bluetooth/bt-widget.c:321 #, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Не удалось создать PAN-соединение: %s" - -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Телефон готов к работе!" +#| msgid "" +#| "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "Невозможно настроить Bluetooth (ошибка подключения к D-Bus: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "Сеть %s" +#| msgid "" +#| "Bluetooth configuration not possible (error finding NetworkManager: %s)." +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "Невозможно настроить Bluetooth (не найден NetworkManager: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Использовать мобильный телефон как сетевое устройство (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Доступ к Интернету с использованием вашего мобильного телефона (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Ошибка: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Не удалось создать DUN-соединение: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Телефон готов к работе!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Мастер настройки мобильного соединения отменён" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Неизвестный тип телефона (не GSM и не CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "неизвестный тип модема." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "не удалось подключиться к телефону." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "неожиданный разрыв связи с телефоном." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "превышено время ожидания для поиска телефона." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Поиск настроек телефона…" -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "не удалось найти устройство Bluetooth." - -#: ../src/gnome-bluetooth/bt-widget.c:980 -msgid "The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection." -msgstr "Адаптер Bluetooth по умолчанию должен быть включён до настройки коммутируемого соединения." +#: ../src/gnome-bluetooth/nma-bt-device.c:794 +msgid "" +"The default Bluetooth adapter must be enabled before setting up a Dial-Up-" +"Networking connection." +msgstr "" +"Адаптер Bluetooth по умолчанию должен быть включён до настройки " +"коммутируемого соединения." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "Невозможно настроить Bluetooth (ошибка подключения к D-Bus: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Невозможно настроить Bluetooth (ошибка создания прокси D-Bus)." +msgid "Failed to create PAN connection: %s" +msgstr "Не удалось создать PAN-соединение: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "Невозможно настроить Bluetooth (не найден NetworkManager: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Использовать мобильный телефон как сетевое устройство (PAN/NAP)" - -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Доступ к Интернету с использованием вашего мобильного телефона (DUN)" +msgid "%s Network" +msgstr "Сеть %s" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 -msgid "Your mobile broadband connection is configured with the following settings:" +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +msgid "" +"Your mobile broadband connection is configured with the following settings:" msgstr "Мобильное соединение настроено со следующими параметрами:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:212 msgid "Your Device:" msgstr "Устройство:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:223 msgid "Your Provider:" msgstr "Оператор:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:234 msgid "Your Plan:" msgstr "Тарифный план:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 -msgid "A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose \"Network Connections\" from the System >> Preferences menu." -msgstr "После указания параметров доступа к мобильной сети будет установлено соединение с этой сетью. Чтобы изменить параметры соединения, дважды щёлкните на соединении." +#: ../src/libnm-gtk/nm-mobile-wizard.c:259 +msgid "" +"A connection will now be made to your mobile broadband provider using the " +"settings you selected. If the connection fails or you cannot access network " +"resources, double-check your settings. To modify your mobile broadband " +"connection settings, choose \"Network Connections\" from the System >> " +"Preferences menu." +msgstr "" +"После указания параметров доступа к мобильной сети будет установлено " +"соединение с этой сетью. Чтобы изменить параметры соединения, дважды " +"щёлкните на соединении." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:271 msgid "Confirm Mobile Broadband Settings" msgstr "Подтверждение параметров мобильной сети" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:332 msgid "Unlisted" msgstr "Нет в списке" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:487 msgid "_Select your plan:" msgstr "_Выберите тарифный план:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:511 msgid "Selected plan _APN (Access Point Name):" msgstr "Выберите точку доступа (APN) этого тарифного плана:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "" -"Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity.\n" +"Warning: Selecting an incorrect plan may result in billing issues for your " +"broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"Внимание! Выбор неверного тарифного плана может привести к применению неправильного тарифа для мобильной связи или невозможности доступа в сеть.\n" +"Внимание! Выбор неверного тарифного плана может привести к применению " +"неправильного тарифа для мобильной связи или невозможности доступа в сеть.\n" "\n" -"Если вы не уверены, какой тарифный план выбрать, уточните APN у оператора мобильной связи." +"Если вы не уверены, какой тарифный план выбрать, уточните APN у оператора " +"мобильной связи." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:542 msgid "Choose your Billing Plan" msgstr "Выберите тарифный план" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:590 msgid "My plan is not listed..." msgstr "Другой…" -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:747 msgid "Select your provider from a _list:" msgstr "Выбор оператора из _списка:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:760 msgid "Provider" msgstr "Оператор" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:785 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "_Указать оператора вручную:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:796 msgid "Provider:" msgstr "Оператор:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:820 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Провайдер использует технологию GSM (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Провайдер использует технологию CDMA (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:837 msgid "Choose your Provider" msgstr "Выберите оператора" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1088 msgid "Country or Region List:" msgstr "Список стран и регионов:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "Country or region" msgstr "Страна и регион" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1107 msgid "My country is not listed" msgstr "Другая страна" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1153 msgid "Choose your Provider's Country or Region" msgstr "Выберите страну и регион оператора" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1207 msgid "Installed GSM device" msgstr "Установленное GSM-устройство" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1210 msgid "Installed CDMA device" msgstr "Установленное CDMA-устройство" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 -msgid "This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network." -msgstr "Мастер подключения к мобильной сети поможет вам настроить соединение с сетью 3G через сотовый телефон." +#: ../src/libnm-gtk/nm-mobile-wizard.c:1382 +msgid "" +"This assistant helps you easily set up a mobile broadband connection to a " +"cellular (3G) network." +msgstr "" +"Мастер подключения к мобильной сети поможет вам настроить соединение с сетью " +"3G через сотовый телефон." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1387 msgid "You will need the following information:" msgstr "Необходимо знать следующие сведения:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1402 msgid "Your broadband provider's name" msgstr "Название оператора мобильной связи" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband billing plan name" msgstr "Название тарифного плана (необязательно)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" -msgstr "Точка доступа (APN), соответствующая тарифному плану (в некоторых случаях)" +msgstr "" +"Точка доступа (APN), соответствующая тарифному плану (в некоторых случаях)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1441 msgid "Create a connection for _this mobile broadband device:" msgstr "Создать соединение через мобильное _устройство:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1456 msgid "Any device" msgstr "Любое устройство" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1469 msgid "Set up a Mobile Broadband Connection" msgstr "Настройка мобильного соединения" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1633 msgid "New Mobile Broadband Connection" msgstr "Новое мобильное соединение" @@ -2334,53 +2521,60 @@ msgid "New..." msgstr "Новая…" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "С_оздать" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format -msgid "Passwords or encryption keys are required to access the wireless network '%s'." -msgstr "Для подключения к беспроводной сети «%s» требуется указать ключ или пароль." +msgid "" +"Passwords or encryption keys are required to access the wireless network " +"'%s'." +msgstr "" +"Для подключения к беспроводной сети «%s» требуется указать ключ или пароль." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "Для доступа к беспроводной сети требуется аутентификация" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "Для беспроводной сети требуется аутентификация" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "Создание новой беспроводной сети" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "Новая беспроводная сеть" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "Введите имя для создаваемой беспроводной сети." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "Подключение к скрытой беспроводной сети" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "Скрытая беспроводная сеть" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 -msgid "Enter the name and security details of the hidden wireless network you wish to connect to." -msgstr "Введите имя и параметры защиты скрытой беспроводной сети, к которой необходимо подключиться." +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +msgid "" +"Enter the name and security details of the hidden wireless network you wish " +"to connect to." +msgstr "" +"Введите имя и параметры защиты скрытой беспроводной сети, к которой " +"необходимо подключиться." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Защита беспроводной сети:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Сое_динение:" #: ../src/libnm-gtk/wifi.ui.h:5 @@ -2392,12 +2586,20 @@ msgstr "Использование:" #: ../src/main.c:75 -msgid "This program is a component of NetworkManager (http://projects.gnome.org/NetworkManager)." -msgstr "Эта программа является частью NetworkManager (http://projects.gnome.org/NetworkManager)." +msgid "" +"This program is a component of NetworkManager (http://projects.gnome.org/" +"NetworkManager)." +msgstr "" +"Эта программа является частью NetworkManager (http://projects.gnome.org/" +"NetworkManager)." #: ../src/main.c:76 -msgid "It is not intended for command-line interaction but instead runs in the GNOME desktop environment." -msgstr "Она не предназначена для использования из командной строки, её следует запускать из рабочей среды GNOME." +msgid "" +"It is not intended for command-line interaction but instead runs in the " +"GNOME desktop environment." +msgstr "" +"Она не предназначена для использования из командной строки, её следует " +"запускать из рабочей среды GNOME." #: ../src/mb-menu-item.c:57 msgid "EVDO" @@ -2457,14 +2659,12 @@ msgid "registration denied" msgstr "регистрация запрещена" -#: ../src/mb-menu-item.c:151 -#: ../src/mb-menu-item.c:157 +#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 #, c-format msgid "%s (%s roaming)" msgstr "%s (роуминг %s)" -#: ../src/mb-menu-item.c:153 -#: ../src/mb-menu-item.c:159 +#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 #, c-format msgid "%s (roaming)" msgstr "%s (роуминг)" @@ -2483,28 +2683,43 @@ msgid "Default" msgstr "По умолчанию" -#: ../src/wired-dialog.c:91 -#: ../src/wired-dialog.c:99 -msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." -msgstr "Апплет NetworkManager не смог найти некоторые необходимые ресурсы (не найден .ui-файл интерфейса)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +#| msgid "Base Connection:" +msgid "%s connection" +msgstr "Подключение %s" + +#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"Апплет NetworkManager не смог найти некоторые необходимые ресурсы (не " +"найден .ui-файл интерфейса)." -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Не выбран сертификат удостоверяющего центра" -#: ../src/wireless-security/eap-method.c:280 -msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue wireless networks. Would you like to choose a Certificate Authority certificate?" -msgstr "Без сертификата удостоверяющего центра (УЦ) можно подключиться только к небезопасным публичным сетям. Установить сертификат удостоверяющего центра?" +#: ../src/wireless-security/eap-method.c:276 +msgid "" +"Not using a Certificate Authority (CA) certificate can result in connections " +"to insecure, rogue wireless networks. Would you like to choose a " +"Certificate Authority certificate?" +msgstr "" +"Без сертификата удостоверяющего центра (УЦ) можно подключиться только к " +"небезопасным публичным сетям. Установить сертификат удостоверяющего центра?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Выбрать сертификат УЦ" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Секретные ключи DER, PEM или PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Сертификаты DER или PEM (*.der, *.pem, *.crt, *.cer)" @@ -2558,7 +2773,7 @@ msgstr "Все файлы" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2596,11 +2811,14 @@ #: ../src/wireless-security/eap-method-tls.c:249 msgid "" -"The selected private key does not appear to be protected by a password. This could allow your security credentials to be compromised. Please select a password-protected private key.\n" +"The selected private key does not appear to be protected by a password. " +"This could allow your security credentials to be compromised. Please select " +"a password-protected private key.\n" "\n" "(You can password-protect your private key with openssl)" msgstr "" -"Выбранный секретный ключ не защищён паролем. Это небезопасно, выберите секретный ключ, защищённый паролем.\n" +"Выбранный секретный ключ не защищён паролем. Это небезопасно, выберите " +"секретный ключ, защищённый паролем.\n" "\n" "Примечание: секретный ключ можно защитить с помощью openssl." @@ -2640,20 +2858,20 @@ msgid "Yes" msgstr "Да" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" # Метод аутентификации -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "Туннелированный TLS" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Защищённый EAP (PEAP)" @@ -2699,6 +2917,12 @@ msgid "WEP inde_x:" msgstr "_Индекс WEP:" +#~ msgid "could not find the Bluetooth device." +#~ msgstr "не удалось найти устройство Bluetooth." + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "Невозможно настроить Bluetooth (ошибка создания прокси D-Bus)." + #~ msgid "_Security:" #~ msgstr "_Защита:" diff -Nru network-manager-applet-0.9.4.1/po/sk.po network-manager-applet-0.9.6.2+git201210311320.2620/po/sk.po --- network-manager-applet-0.9.4.1/po/sk.po 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/sk.po 2012-10-31 13:20:57.000000000 +0000 @@ -908,8 +908,8 @@ msgstr "Prip_ojiť" #: ../src/applet.ui.h:4 -msgid "Co_nnection:" -msgstr "Pripoje_nie:" +msgid "C_onnection:" +msgstr "_Pripojenie:" #: ../src/applet.ui.h:5 msgid "Connection Information" @@ -932,7 +932,7 @@ msgstr "_Odomknúť" #: ../src/applet.ui.h:10 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Bezdrôtové zabezpečenie:" # myslím, že ide buď o chybu alebo o "placeholder" @@ -1849,8 +1849,8 @@ "overte svoju totožnosť." #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "Dostupné pre všetkých používateľov" +msgid "A_vailable to all users" +msgstr "Dostupné pre _všetkých používateľov" #: ../src/connection-editor/nm-connection-editor.ui.h:2 msgid "Connect _automatically" diff -Nru network-manager-applet-0.9.4.1/po/sl.po network-manager-applet-0.9.6.2+git201210311320.2620/po/sl.po --- network-manager-applet-0.9.4.1/po/sl.po 2012-03-23 20:29:08.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/sl.po 2012-10-31 13:20:57.000000000 +0000 @@ -1,6 +1,6 @@ -# Slovenian translation of NetworkManager. +# Slovenian translation of network-manager-applet. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the NetworkManager package. +# This file is distributed under the same license as the network-manager-applet package. # # Matic Žgur , 2007. # Andrej Žnidaršič , 2009 - 2010. @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: NetworkManager\n" +"Project-Id-Version: network-manager-applet master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-23 16:28+0000\n" -"PO-Revision-Date: 2012-03-23 18:43+0100\n" +"POT-Creation-Date: 2012-08-13 06:15+0000\n" +"PO-Revision-Date: 2012-10-20 00:09+0100\n" "Last-Translator: Matej Urbančič \n" "Language-Team: Slovenian GNOME Translation Team \n" "Language: \n" @@ -31,1066 +31,1076 @@ msgid "Manage your network connections" msgstr "Upravljanje omrežnih povezav" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Omrežne povezave" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Upravljanje in spreminjanje nastavitev omrežne povezave" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Onemogoči obvestila ob vzpostavitvi povezav" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "Izbrana možnost onemogoča obvestila ob povezovanju z omrežjem." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "Izbrana možnost onemogoča obvestila ob vzpostavitvi povezave z omrežjem." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Onemogoči obvestila ob prekinitvi povezav" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "Set this to true to disable notifications when disconnecting from a network." msgstr "Izbrana možnost onemogoča obvestila ob prekinitvi omrežne povezave." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Onemogoči obvestila VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "Set this to true to disable notifications when connecting to or disconnecting from a VPN." +msgstr "Izbrana možnost onemogoča obvestila ob povezovanju ali prekinjanju omrežne povezave VPN." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Prepreči obvestila o razpoložljivosti omrežij" -#: ../nm-applet.schemas.in.h:6 -msgid "Set this to TRUE to disable notifications when wireless networks are available." -msgstr "Izbrana možnost onemogoča obvestila o razpoložljivosti brezžičnih omrežij." +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +msgid "Set this to true to disable notifications when Wi-Fi networks are available." +msgstr "Izbrana možnost onemogoča obvestila o razpoložljivosti brezžičnih Wi-Fi omrežij." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Žig" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "Uporabljeno za določanje ali naj bodo nastavitve preseljene v novo različico." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Onemogoči ustvarjanje WiFi" -#: ../nm-applet.schemas.in.h:10 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +msgid "Set to true to disable creation of adhoc networks when using the applet." msgstr "Izbrana možnost onemogoči ustvarjanje omrežij adhoc med uporabo apleta. " -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Omrežne povezave" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Prezri potrdilo CA" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "Set this to true to disable warnings about CA certificates in EAP authentication." +msgstr "Izbrana možnost onemogoča opozorila o potrdilih CA overitve EAP." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "Set this to true to disable warnings about CA certificates in phase 2 of EAP authentication." +msgstr "Izbrana možnost onemogoča opozorila o potrdilih CA na drugem koraku overitve EAP." + +#: ../src/8021x.ui.h:1 +#: ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "Overitev 802.1X" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Upravljajte in spreminjajte nastavitve omrežne povezave" +#: ../src/8021x.ui.h:2 +#: ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_Ime omrežja:" -#: ../src/applet-device-bt.c:174 -#: ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 -#: ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:864 -#: ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Na voljo" +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Dodajanje ali odpiranje povezave je spodletelo." -#: ../src/applet-device-bt.c:200 -#: ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 -#: ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Sedaj ste povezani z '%s'." +#: ../src/applet.c:490 +#: ../src/applet.c:534 +#: ../src/applet.c:560 +#: ../src/applet-device-wifi.c:1379 +#: ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Neznana napaka" -#: ../src/applet-device-bt.c:204 -#: ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 -#: ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1268 -#: ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Povezava je vzpostavljena" +#: ../src/applet.c:493 +#: ../src/applet.c:563 +#: ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Povezava je spodletela" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Sedaj ste povezani z mobilnim širokopasovnim omrežjem." +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Odklapljanje naprave je spodletelo." -#: ../src/applet-device-bt.c:231 -#: ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 -#: ../src/applet-device-wimax.c:464 +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Napaka odklapljanja" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "Omogočanje povezave je spodletelo." + +#: ../src/applet.c:924 +#: ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "Tega sporočila ne pokaži več" + +#: ../src/applet.c:1013 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Pripravljanje mobilne širokopasovne povezave '%s' ..." +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was interrupted." +msgstr "" +"\n" +"Povezava VPN '%s' je spodletela zaradi prekinitve omrežne povezave." -#: ../src/applet-device-bt.c:234 -#: ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 -#: ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1016 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Nastavljanje mobilne širokopasovne povezave '%s' ..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"Povezava VPN '%s' je spodletela zaradi nepričakovane zaustavitve storitve VPN." -#: ../src/applet-device-bt.c:237 -#: ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 -#: ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1019 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "Za mobilno širokopasovno povezavo '%s' je zahtevana overitev uporabnika ... " +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid configuration." +msgstr "" +"\n" +"Povezava VPN '%s' je spodletela, ker je storitev VPN vrnila neveljavno nastavitev. " -#: ../src/applet-device-bt.c:240 -#: ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 -#: ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2503 +#: ../src/applet.c:1022 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Poteka zahteva za pridobitev omrežnega naslova za '%s' ..." +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"Povezava VPN '%s' je spodletela zaradi zakasnitve poskusa povezave. " -#: ../src/applet-device-bt.c:244 -#: ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1025 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "Mobilna širokopasovna povezava '%s' je dejavna" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"Povezava VPN '%s' je spodletela, zaradi nepravočasnega zagona storitve VPN." -#: ../src/applet-device-cdma.c:184 -#: ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1028 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"Povezava VPN '%s' je spodletela zaradi spodletelega zagona storitve VPN." -#: ../src/applet-device-cdma.c:345 -#: ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:424 +#: ../src/applet.c:1031 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Mobilni širokopasovni dostop (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"Povezava VPN '%s' je spodletela zaradi neveljavnih varovanih podatkov VPN." -#: ../src/applet-device-cdma.c:347 -#: ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1510 -msgid "Mobile Broadband" -msgstr "Mobilni širokopasovni dostop" +#: ../src/applet.c:1034 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"Povezava VPN '%s' je spodletela zaradi neveljavnih varovanih podatkov VPN ." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Nova mobilna širokopasovna (CDMA) povezava ..." +#: ../src/applet.c:1041 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"Povezava VPN '%s' je spodletela." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Sedaj ste povezani z omrežjem CDMA." +#: ../src/applet.c:1059 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was interrupted." +msgstr "" +"\n" +"Povezava VPN '%s' je prekinjena zaradi prekinitve omrežne povezave." -#: ../src/applet-device-cdma.c:503 -#: ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1062 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Mobilna širokopasovna povezava '%s' je dejavna: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"Povezava VPN '%s' je prekinjena zaradi zaustavitve storitve VPN ." -#: ../src/applet-device-cdma.c:506 -#: ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "prehajajoči način" +#: ../src/applet.c:1068 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"Povezava VPN '%s' je prekinjena." -#: ../src/applet-device-cdma.c:647 -#: ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "Omrežje CDMA." +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"Povezava VPN je uspešno vzpostavljena.\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 -#: ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Sedaj ste vpisani v domače omrežje." +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "Povezava VPN je uspešno vzpostavljena.\n" -#: ../src/applet-device-cdma.c:654 -#: ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Sedaj ste vpisani v gostujoče omrežje." +#: ../src/applet.c:1102 +msgid "VPN Login Message" +msgstr "Prijavno sporočilo VPN" -#: ../src/applet-device-gsm.c:213 -#: ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1108 +#: ../src/applet.c:1116 +#: ../src/applet.c:1166 +msgid "VPN Connection Failed" +msgstr "Neuspela povezava VPN " -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Nova mobilna širokopasovna (GSM) povezava ..." +#: ../src/applet.c:1173 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN povezava '%s' je spodletela zaradi spodletelega zagona storitve VPN.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Sedaj ste povezani z omrežjem GSM." +#: ../src/applet.c:1176 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Zagon VPN povezave '%s' je spodletel.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "Zahtevana koda PIN" +#: ../src/applet.c:1496 +msgid "device not ready (firmware missing)" +msgstr "naprava ni pripravljena (strojna programska oprema manjka)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN." +#: ../src/applet.c:1498 +msgid "device not ready" +msgstr "naprava ni pripravljena" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "Koda PIN za kartico SIM '%s' na '%s'" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1508 +#: ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "povezava je bila prekinjena" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "Napačna koda PIN; stopite v stik s svojim ponudnikom." +#: ../src/applet.c:1524 +msgid "Disconnect" +msgstr "Prekini povezavo" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "Napačna koda PUK; stopite v stik s svojim ponudnikom." +#: ../src/applet.c:1538 +msgid "device not managed" +msgstr "naprava ni upravljana" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "Pošiljanje kode za odklepanje ..." +#: ../src/applet.c:1582 +msgid "No network devices available" +msgstr "Ni razpoložljivih omrežnih naprav" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "Zahtevan je odklep PIN SIM" +#: ../src/applet.c:1670 +msgid "_VPN Connections" +msgstr "Povezave _VPN" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "Zahtevan je odklep PIN SIM" +#: ../src/applet.c:1727 +msgid "_Configure VPN..." +msgstr "_Nastavi VPN ..." -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." -msgstr "Naprava mobilne širokopasovne povezave '%s' pred uporabo zahteva kodo SIM PIN." +#: ../src/applet.c:1731 +msgid "_Disconnect VPN" +msgstr "_Prekini povezavo z VPN" -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "Koda PIN:" +#: ../src/applet.c:1825 +msgid "NetworkManager is not running..." +msgstr "Upravljalnik omrežja ni zagnan ..." -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "Pokaži kodo kodo PIN" +#: ../src/applet.c:1830 +#: ../src/applet.c:2631 +msgid "Networking disabled" +msgstr "Omrežje je onemogočeno" -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "Zahtevan je odklep PUK SIM" +#. 'Enable Networking' item +#: ../src/applet.c:2051 +msgid "Enable _Networking" +msgstr "Omogoči _omrežje" -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "Zahtevan je odklep PUK SIM" - -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 -#, c-format -msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." -msgstr "Naprava mobilne širokopasovne povezave '%s' pred uporabo zahteva kodo SIM PUK." - -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "Koda PUK:" - -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "Nova koda PIN:" - -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "Znova vnesite novo kodo PIN:" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2060 +msgid "Enable _Wi-Fi" +msgstr "Omogoči _Wi-Fi" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "Pokaži kode PIN/PUK" +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2069 +msgid "Enable _Mobile Broadband" +msgstr "Omogoči _mobilno širokopasovno omrežje" -#: ../src/applet-device-gsm.c:1197 -#: ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "Omrežje GSM." +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2078 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Omogoči mobilno širokopasovno povezavo WiMA_X" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "Samodejni eternet" +#. Toggle notifications item +#: ../src/applet.c:2089 +msgid "Enable N_otifications" +msgstr "Omogoči _obvestila" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "Žična omrežja (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2100 +msgid "Connection _Information" +msgstr "_Podrobnosti o povezavi" -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "Žično omrežje (%s)" +#. 'Edit Connections...' item +#: ../src/applet.c:2110 +msgid "Edit Connections..." +msgstr "Urejanje povezav ..." -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "Žična omrežja" +#. Help item +#: ../src/applet.c:2124 +msgid "_Help" +msgstr "Pomo_č" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "Žično omrežje" +#. About item +#: ../src/applet.c:2133 +msgid "_About" +msgstr "_O Programu" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 -#: ../src/applet.c:1509 -msgid "disconnected" -msgstr "povezava je bila prekinjena" +#: ../src/applet.c:2310 +msgid "Disconnected" +msgstr "Povezava je prekinjena" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "Sedaj ste povezani z žičnim omrežjem." +#: ../src/applet.c:2311 +msgid "The network connection has been disconnected." +msgstr "Omrežna povezava je bila prekinjena." -#: ../src/applet-device-wired.c:300 +#: ../src/applet.c:2494 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "Pripravljanje žične omrežne povezave '%s' ..." +msgid "Preparing network connection '%s'..." +msgstr "Pripravljanje omrežne povezave '%s' ..." -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2497 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "Prilagajanje nastavitev žične omrežne povezave '%s' ..." +msgid "User authentication required for network connection '%s'..." +msgstr "Za omrežno povezavo '%s' je zahtevana overitev uporabnika ..." -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2500 +#: ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "Za žično povezavo '%s' je potreba overitev uporabnika ..." +msgid "Requesting a network address for '%s'..." +msgstr "Poteka zahteva za pridobitev omrežnega naslova za '%s' ..." -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2503 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "Poteka zahteva naslova žične omrežne povezave '%s' ..." +msgid "Network connection '%s' active" +msgstr "Omrežna povezava '%s' je dejavna" -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2586 #, c-format -msgid "Wired network connection '%s' active" -msgstr "Žična omrežna povezava '%s' je dejavna" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "DSL overitev" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "Po_veži se s skritim brezžičnim omrežjem ..." - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "_Ustvari novo brezžično omrežje ..." - -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(brez)" +msgid "Starting VPN connection '%s'..." +msgstr "Zaganjanje VPN povezave '%s' ..." -#: ../src/applet-device-wifi.c:792 +#: ../src/applet.c:2589 #, c-format -msgid "Wireless Networks (%s)" -msgstr "Brezžična omrežja (%s)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "Za povezavo VPN '%s' je zahtevana overitev uporabnika ..." -#: ../src/applet-device-wifi.c:794 +#: ../src/applet.c:2592 #, c-format -msgid "Wireless Network (%s)" -msgstr "Brezžično omrežje (%s)" - -#: ../src/applet-device-wifi.c:796 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "Brezžična omrežja" -msgstr[1] "Brezžično omrežje" -msgstr[2] "Brezžični omrežji" -msgstr[3] "Brezžična omrežja" - -#: ../src/applet-device-wifi.c:829 -msgid "wireless is disabled" -msgstr "brezžični dostop je onemogočen" - -#: ../src/applet-device-wifi.c:830 -msgid "wireless is disabled by hardware switch" -msgstr "brezžična povezava je onemogočena s stikalom strojne opreme" +msgid "Requesting a VPN address for '%s'..." +msgstr "Poteka zahteva naslova VPN za '%s' ..." -#: ../src/applet-device-wifi.c:891 -msgid "More networks" -msgstr "Več omrežij" +#: ../src/applet.c:2595 +#, c-format +msgid "VPN connection '%s' active" +msgstr "Povezava VPN '%s' je dejavna" -#: ../src/applet-device-wifi.c:1071 -msgid "Wireless Networks Available" -msgstr "Razpoložljiva brezžična omrežja" +#: ../src/applet.c:2636 +msgid "No network connection" +msgstr "Nobene omrežne povezave" -#: ../src/applet-device-wifi.c:1072 -msgid "Use the network menu to connect to a wireless network" -msgstr "Uporabite meni omrežja za povezavo z brezžičnim omrežjem" +#: ../src/applet.c:3336 +msgid "NetworkManager Applet" +msgstr "Aplet upravljalnika omrežja" -#: ../src/applet-device-wifi.c:1075 -#: ../src/applet.c:925 -msgid "Don't show this message again" -msgstr "Tega sporočila ne pokaži več" +#: ../src/applet-device-bt.c:173 +#: ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 +#: ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 +#: ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Na voljo" -#: ../src/applet-device-wifi.c:1267 +#: ../src/applet-device-bt.c:199 +#: ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 +#: ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Sedaj ste povezani z brezžičnim omrežjem '%s'." +msgid "You are now connected to '%s'." +msgstr "Vzpostavljena je povezava z '%s'." -#: ../src/applet-device-wifi.c:1298 -#, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Pripravljanje brezžične omrežne povezave '%s' ..." +#: ../src/applet-device-bt.c:203 +#: ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 +#: ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 +#: ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "Povezava je vzpostavljena" -#: ../src/applet-device-wifi.c:1301 -#, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "Prilagajanje nastavitev brezžične omrežne povezave '%s' ..." +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Vzpostavljena je povezava z mobilnim širokopasovnim omrežjem." -#: ../src/applet-device-wifi.c:1304 +#: ../src/applet-device-bt.c:230 +#: ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 +#: ../src/applet-device-wimax.c:464 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "Zahtevana je overitev uporabnika za povezavo v brezžično omrežje '%s' ..." +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Pripravljanje mobilne širokopasovne povezave '%s' ..." -#: ../src/applet-device-wifi.c:1307 +#: ../src/applet-device-bt.c:233 +#: ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 +#: ../src/applet-device-wimax.c:467 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Pošiljanje zahteve za pridobitev brezžičnega omrežnega naslova '%s' ..." +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Nastavljanje mobilne širokopasovne povezave '%s' ..." -#: ../src/applet-device-wifi.c:1328 +#: ../src/applet-device-bt.c:236 +#: ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 +#: ../src/applet-device-wimax.c:470 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "Dejavna brezžična omrežna povezava '%s': %s (%d%%)" +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "Za mobilno širokopasovno povezavo '%s' je zahtevana overitev uporabnika ... " -#: ../src/applet-device-wifi.c:1333 +#: ../src/applet-device-bt.c:243 +#: ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "Dejavna brezžična omrežna povezava '%s'" - -#: ../src/applet-device-wifi.c:1381 -msgid "Failed to activate connection" -msgstr "Omogočanje povezave je spodletelo." - -#: ../src/applet-device-wifi.c:1383 -#: ../src/applet-device-wifi.c:1402 -#: ../src/applet.c:491 -#: ../src/applet.c:535 -#: ../src/applet.c:561 -msgid "Unknown error" -msgstr "Neznana napaka" - -#: ../src/applet-device-wifi.c:1386 -#: ../src/applet-device-wifi.c:1405 -#: ../src/applet.c:494 -#: ../src/applet.c:564 -msgid "Connection failure" -msgstr "Povezava je spodletela" +msgid "Mobile broadband connection '%s' active" +msgstr "Mobilna širokopasovna povezava '%s' je dejavna" -#: ../src/applet-device-wifi.c:1400 -msgid "Failed to add new connection" -msgstr "Dodajanje nove povezave je spodletelo." +#: ../src/applet-device-cdma.c:181 +#: ../src/connection-editor/page-mobile.c:699 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wimax.c:231 +#: ../src/applet-device-cdma.c:342 +#: ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 #, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr " WiMAX mobilno širokopasovno omrežje (%s)" - -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr " WiMAX mobilno širokopasovno omrežje" +msgid "Mobile Broadband (%s)" +msgstr "Mobilni širokopasovni dostop (%s)" -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "WiMAX je onemogočen" +#: ../src/applet-device-cdma.c:344 +#: ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:85 +#: ../src/connection-editor/page-mobile.c:379 +msgid "Mobile Broadband" +msgstr "Mobilni širokopasovni dostop" -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX je onemogočen s stikalom strojne opreme" +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Nova mobilna širokopasovna (CDMA) povezava ..." -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "Sedaj ste povezani z omrežjem WiMAX." +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Vzpostavljena je povezava z omrežjem CDMA." -#: ../src/applet-dialogs.c:57 -msgid "Error displaying connection information:" -msgstr "Napaka pri prikazovanju podrobnosti o povezavi:" +#: ../src/applet-device-cdma.c:500 +#: ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "Mobilna širokopasovna povezava '%s' je dejavna: (%d%%%s%s)" -#: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:313 -#: ../src/libnm-gtk/nm-wireless-dialog.c:948 -#: ../src/wireless-security/wireless-security.c:406 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-cdma.c:503 +#: ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "prehajajoči način" -#: ../src/applet-dialogs.c:111 -msgid "Dynamic WEP" -msgstr "Dinamični WEP" +#: ../src/applet-device-cdma.c:644 +#: ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "Omrežje CDMA." -#: ../src/applet-dialogs.c:113 -#: ../src/applet-dialogs.c:245 -#: ../src/applet-dialogs.c:247 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-cdma.c:645 +#: ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "Vzpostavljena je povezava v domače omrežje." -#: ../src/applet-dialogs.c:243 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-cdma.c:651 +#: ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "Vzpostavljena je povezava v gostujoče omrežje." -#: ../src/applet-dialogs.c:251 -#: ../src/applet-dialogs.c:260 -#: ../src/connection-editor/page-wireless-security.c:265 -#: ../src/libnm-gtk/nm-wireless-dialog.c:905 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "Brez" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "Samodejni eternet" -#: ../src/applet-dialogs.c:277 +#: ../src/applet-device-ethernet.c:205 #, c-format -msgid "%s (default)" -msgstr "%s (privzeto)" +msgid "Ethernet Networks (%s)" +msgstr "Omrežja eternet (%s)" -#: ../src/applet-dialogs.c:346 -#: ../src/applet-dialogs.c:484 +#: ../src/applet-device-ethernet.c:207 #, c-format -msgid "%u Mb/s" -msgstr "%u Mb/s" - -#: ../src/applet-dialogs.c:348 -#: ../src/applet-dialogs.c:486 -msgctxt "Speed" -msgid "Unknown" -msgstr "Neznano" +msgid "Ethernet Network (%s)" +msgstr "Omrežje eternet (%s)" -#: ../src/applet-dialogs.c:361 -#, c-format -msgid "%d dB" -msgstr "%d dB" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "Omrežja eternet" -#: ../src/applet-dialogs.c:363 -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "neznano" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "Omrežje eternet" -#: ../src/applet-dialogs.c:375 -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "neznano" +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "Vzpostavljena je povezava z omrežjem eternet." -#: ../src/applet-dialogs.c:410 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "Ethernet (%s)" -msgstr "Ethernet (%s)" +msgid "Preparing ethernet network connection '%s'..." +msgstr "Pripravljanje žične omrežne povezave '%s' ..." -#: ../src/applet-dialogs.c:413 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "802.11 WiFi (%s)" -msgstr "802.11 WiFi (%s)" +msgid "Configuring ethernet network connection '%s'..." +msgstr "Prilagajanje nastavitev žične omrežne povezave '%s' ..." -#: ../src/applet-dialogs.c:420 +#: ../src/applet-device-ethernet.c:306 #, c-format -msgid "GSM (%s)" -msgstr "GSM (%s)" +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "Za žično povezavo '%s' je zahtevana overitev uporabnika ..." -#: ../src/applet-dialogs.c:422 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "CDMA (%s)" -msgstr "CDMA (%s)" +msgid "Requesting an ethernet network address for '%s'..." +msgstr "Poteka pridobivanje omrežnega naslova povezave '%s' ..." -#: ../src/applet-dialogs.c:426 +#: ../src/applet-device-ethernet.c:313 #, c-format -msgid "WiMAX (%s)" -msgstr "WiMAX (%s)" +msgid "Ethernet network connection '%s' active" +msgstr "Žična omrežna povezava '%s' je dejavna" -#. --- General --- -#: ../src/applet-dialogs.c:432 -#: ../src/applet-dialogs.c:791 -msgid "General" -msgstr "Splošno" - -#: ../src/applet-dialogs.c:436 -msgid "Interface:" -msgstr "Vmesnik:" - -#: ../src/applet-dialogs.c:452 -msgid "Hardware Address:" -msgstr "Naslov strojne opreme:" - -#. Driver -#: ../src/applet-dialogs.c:460 -msgid "Driver:" -msgstr "Gonilnik:" - -#: ../src/applet-dialogs.c:489 -msgid "Speed:" -msgstr "Hitrost:" - -#: ../src/applet-dialogs.c:499 -msgid "Security:" -msgstr "Varnost:" - -#: ../src/applet-dialogs.c:512 -msgid "CINR:" -msgstr "CINR:" +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "DSL overitev" -#: ../src/applet-dialogs.c:525 -msgid "BSID:" -msgstr "BSID:" +#: ../src/applet-device-gsm.c:211 +#: ../src/connection-editor/page-mobile.c:702 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" -#. --- IPv4 --- -#: ../src/applet-dialogs.c:542 -msgid "IPv4" -msgstr "IPv4" +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Nova mobilna širokopasovna (GSM) povezava ..." -#. Address -#: ../src/applet-dialogs.c:553 -#: ../src/applet-dialogs.c:660 -msgid "IP Address:" -msgstr "Naslov IP:" +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "Vzpostavljena je povezava z omrežjem GSM." -#: ../src/applet-dialogs.c:555 -#: ../src/applet-dialogs.c:571 -msgctxt "Address" -msgid "Unknown" -msgstr "Neznano" +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "Zahtevana koda PIN" -#: ../src/applet-dialogs.c:569 -msgid "Broadcast Address:" -msgstr "Naslov za razpršeno oddajanje:" +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN." -#. Prefix -#: ../src/applet-dialogs.c:578 -msgid "Subnet Mask:" -msgstr "Maska podomrežja:" +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "Koda PIN za kartico SIM '%s' na '%s'" -#: ../src/applet-dialogs.c:580 -msgctxt "Subnet Mask" -msgid "Unknown" -msgstr "Neznano" +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "Napačna koda PIN; stopite v stik s svojim ponudnikom." -#: ../src/applet-dialogs.c:588 -#: ../src/applet-dialogs.c:675 -msgid "Default Route:" -msgstr "Privzeta smer:" +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "Napačna koda PUK; stopite v stik s svojim ponudnikom." -#: ../src/applet-dialogs.c:600 -msgid "Primary DNS:" -msgstr "Glavni DNS:" +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "Pošiljanje kode za odklepanje ..." -#: ../src/applet-dialogs.c:609 -msgid "Secondary DNS:" -msgstr "Drugi DNS:" +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "Zahtevan je odklep PIN SIM" -#: ../src/applet-dialogs.c:619 -msgid "Ternary DNS:" -msgstr "Tretji DNS:" +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "Zahtevan je odklep PIN SIM" -#. --- IPv6 --- -#: ../src/applet-dialogs.c:634 -msgid "IPv6" -msgstr "IPv6" +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." +msgstr "Naprava mobilne širokopasovne povezave '%s' pred uporabo zahteva kodo SIM PIN." -#: ../src/applet-dialogs.c:643 -msgid "Ignored" -msgstr "Prezrto" +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "Koda PIN:" -#: ../src/applet-dialogs.c:796 -msgid "VPN Type:" -msgstr "Vrsta VPN:" +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "Pokaži kodo kodo PIN" -#: ../src/applet-dialogs.c:803 -msgid "VPN Gateway:" -msgstr "Prehod VPN:" +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "Zahtevan je odklep PUK SIM" -#: ../src/applet-dialogs.c:809 -msgid "VPN Username:" -msgstr "Uporabniško ime VPN:" +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "Zahtevan je odklep PUK SIM" -#: ../src/applet-dialogs.c:815 -msgid "VPN Banner:" -msgstr "Pasica VPN:" +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." +msgstr "Naprava mobilne širokopasovne povezave '%s' pred uporabo zahteva kodo SIM PUK." -#: ../src/applet-dialogs.c:821 -msgid "Base Connection:" -msgstr "Osnovna povezava:" +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "Koda PUK:" -#: ../src/applet-dialogs.c:823 -msgid "Unknown" -msgstr "Neznano" +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "Nova koda PIN:" -#. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:886 -msgid "No valid active connections found!" -msgstr "Ni mogoče najti veljavnih dejavnih povezav!" +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "Znova vnesite novo kodo PIN:" -#: ../src/applet-dialogs.c:939 -msgid "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"and many other community contributors and translators" -msgstr "" -"Avtorske pravice © 2004-2011 Red Hat, Inc.\n" -"Avtorske pravice © 2005-2008 Novell, Inc.\n" -"in veliko drugih posameznikov, ki so prispevali skupnosti." +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "Pokaži kode PIN/PUK" -#: ../src/applet-dialogs.c:942 -msgid "Notification area applet for managing your network devices and connections." -msgstr "Aplet področja obvestil za upravljanje vaših omrežnih naprav in povezav." +#: ../src/applet-device-gsm.c:1195 +#: ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "Omrežje GSM." -#: ../src/applet-dialogs.c:944 -msgid "NetworkManager Website" -msgstr "Spletišče upravljalnika omrežja" +#: ../src/applet-device-wifi.c:97 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "Po_veži se s skritim brezžičnim omrežjem ..." -#: ../src/applet-dialogs.c:959 -msgid "Missing resources" -msgstr "Manjkajoča sredstva" +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "_Ustvari novo brezžično omrežje ..." -#: ../src/applet-dialogs.c:984 -msgid "Mobile broadband network password" -msgstr "Geslo mobilnega širokopasovnega dostopa" +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(brez)" -#: ../src/applet-dialogs.c:993 +#: ../src/applet-device-wifi.c:790 #, c-format -msgid "A password is required to connect to '%s'." -msgstr "Za povezavo z '%s' je zahtevano geslo." +msgid "Wi-Fi Networks (%s)" +msgstr "Omrežja Wi-Fi (%s)" -#: ../src/applet-dialogs.c:1012 -msgid "Password:" -msgstr "Geslo:" +#: ../src/applet-device-wifi.c:792 +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Omrežje Wi-Fi (%s)" -#: ../src/applet.c:489 -msgid "Failed to add/activate connection" -msgstr "Dodajanje ali odpiranje povezave je spodletelo." +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Omrežja Wi-Fi" +msgstr[1] "Omrežje Wi-Fi" +msgstr[2] "Omrežji Wi-Fi" +msgstr[3] "Omrežja Wi-Fi" + +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "Brezžično omrežje Wi-Fi je onemogočeno" + +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Vmesnik WiMAX je onemogočen s stikalom strojne opreme" -#: ../src/applet.c:533 -msgid "Device disconnect failed" -msgstr "Odklapljanje naprave je spodletelo." +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "Več omrežij" -#: ../src/applet.c:538 -msgid "Disconnect failure" -msgstr "Napaka odklapljanja" +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "Razpoložljiva omrežija Wi-Fi" -#: ../src/applet.c:559 -msgid "Connection activation failed" -msgstr "Omogočanje povezave je spodletelo." +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Uporabite meni omrežja za povezavo z brezžičnim Wi-Fi omrežjem" -#: ../src/applet.c:1014 +#: ../src/applet-device-wifi.c:1263 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was interrupted." -msgstr "" -"\n" -"VPN povezava '%s' je spodletela zaradi prekinitve omrežne povezave." +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Vzpostavljena je povezava z brezžičnim omrežjem eternet Wi-Fi '%s'." -#: ../src/applet.c:1017 +#: ../src/applet-device-wifi.c:1294 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"VPN povezava '%s' je spodletela zaradi nepričakovane zaustavitve storitve VPN." +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Pripravljanje omrežne povezave Wi-Fi '%s' ..." -#: ../src/applet.c:1020 +#: ../src/applet-device-wifi.c:1297 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid configuration." -msgstr "" -"\n" -"VPN povezava '%s' je spodletela, ker je storitev VPN vrnila neveljavno nastavitev. " +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "Prilagajanje nastavitev omrežne povezave Wi-Fi '%s' ..." -#: ../src/applet.c:1023 +#: ../src/applet-device-wifi.c:1300 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"VPN povezava '%s' je spodletela zaradi zakasnitve poskusa povezave. " +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "Za brezžično povezavo Wi-Fi '%s' je zahtevana overitev uporabnika ..." -#: ../src/applet.c:1026 +#: ../src/applet-device-wifi.c:1303 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"VPN povezava '%s' je spodletela, zaradi nepravočasnega zagona storitve VPN." +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Poteka pridobivanje omrežnega naslova Wi-Fi za '%s' ..." -#: ../src/applet.c:1029 +#: ../src/applet-device-wifi.c:1324 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"VPN povezava '%s' je spodletela zaradi spodletelega zagona storitve VPN." +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Dejavna brezžična omrežna povezava '%s': %s (%d%%)" -#: ../src/applet.c:1032 +#: ../src/applet-device-wifi.c:1329 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"VPN povezava '%s' je spodletela zaradi neveljavnih varovanih podatkov VPN." +msgid "Wi-Fi network connection '%s' active" +msgstr "Brezžična omrežna povezava '%s' je dejavna" -#: ../src/applet.c:1035 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"VPN povezava '%s' je spodletela zaradi neveljavnih varovanih podatkov VPN ." +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Omogočanje povezave je spodletelo." + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Dodajanje nove povezave je spodletelo." -#: ../src/applet.c:1042 +#: ../src/applet-device-wimax.c:231 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"VPN povezava '%s' je spodletela." +msgid "WiMAX Mobile Broadband (%s)" +msgstr "WiMAX mobilno širokopasovno omrežje (%s)" + +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "WiMAX mobilno širokopasovno omrežje" + +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "WiMAX je onemogočen" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "Vmesnik WiMAX je onemogočen s stikalom strojne opreme" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "Vzpostavljena je povezava z omrežjem WiMAX." + +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "Napaka pri prikazovanju podrobnosti o povezavi:" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" + +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "Dinamični WEP" + +#: ../src/applet-dialogs.c:113 +#: ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" -#: ../src/applet.c:1060 +#: ../src/applet-dialogs.c:251 +#: ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "Brez" + +#: ../src/applet-dialogs.c:277 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was interrupted." -msgstr "" -"\n" -"VPN povezava '%s' je bila prekinjena zaradi prekinitve omrežne povezave." +msgid "%s (default)" +msgstr "%s (privzeto)" -#: ../src/applet.c:1063 +#: ../src/applet-dialogs.c:346 +#: ../src/applet-dialogs.c:484 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"VPN povezava '%s' je bila prekinjena zaradi zaustavitve storitve VPN ." +msgid "%u Mb/s" +msgstr "%u Mb/s" -#: ../src/applet.c:1069 +#: ../src/applet-dialogs.c:348 +#: ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "Neznano" + +#: ../src/applet-dialogs.c:361 #, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"VPN povezava '%s' je bila prekinjena." +msgid "%d dB" +msgstr "%d dB" -#: ../src/applet.c:1103 -msgid "VPN Login Message" -msgstr "Prijavno sporočilo VPN" +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "neznano" -#: ../src/applet.c:1109 -#: ../src/applet.c:1117 -#: ../src/applet.c:1167 -msgid "VPN Connection Failed" -msgstr "Neuspela povezava VPN " +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "neznano" -#: ../src/applet.c:1174 +#: ../src/applet-dialogs.c:410 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"VPN povezava '%s' je spodletela zaradi spodletelega zagona storitve VPN.\n" -"\n" -"%s" +msgid "Ethernet (%s)" +msgstr "Ethernet (%s)" -#: ../src/applet.c:1177 +#: ../src/applet-dialogs.c:413 #, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Zagon VPN povezave '%s' je spodletel.\n" -"\n" -"%s" - -#: ../src/applet.c:1497 -msgid "device not ready (firmware missing)" -msgstr "naprava ni pripravljena (strojna programska oprema manjka)" - -#: ../src/applet.c:1499 -msgid "device not ready" -msgstr "naprava ni pripravljena" +msgid "802.11 WiFi (%s)" +msgstr "802.11 WiFi (%s)" -#: ../src/applet.c:1525 -msgid "Disconnect" -msgstr "Prekini povezavo" +#: ../src/applet-dialogs.c:420 +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" -#: ../src/applet.c:1539 -msgid "device not managed" -msgstr "naprava ni upravljana" +#: ../src/applet-dialogs.c:422 +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" -#: ../src/applet.c:1583 -msgid "No network devices available" -msgstr "Ni razpoložljivih omrežnih naprav" +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" -#: ../src/applet.c:1671 -msgid "_VPN Connections" -msgstr "Povezave _VPN" +#. --- General --- +#: ../src/applet-dialogs.c:432 +#: ../src/applet-dialogs.c:791 +msgid "General" +msgstr "Splošno" -#: ../src/applet.c:1728 -msgid "_Configure VPN..." -msgstr "_Nastavi VPN ..." +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "Vmesnik:" -#: ../src/applet.c:1732 -msgid "_Disconnect VPN" -msgstr "_Prekini povezavo z VPN" +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "Naslov strojne opreme:" -#: ../src/applet.c:1830 -msgid "NetworkManager is not running..." -msgstr "Upravljalnik omrežja ni zagnan ..." +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "Gonilnik:" -#: ../src/applet.c:1835 -#: ../src/applet.c:2634 -msgid "Networking disabled" -msgstr "Omrežje je onemogočeno" +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "Hitrost:" -#. 'Enable Networking' item -#: ../src/applet.c:2056 -msgid "Enable _Networking" -msgstr "Omogoči _omrežje" +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "Varnost:" -#. 'Enable Wireless' item -#: ../src/applet.c:2065 -msgid "Enable _Wireless" -msgstr "Omogoči _brezžično omrežje" +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "CINR:" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2074 -msgid "Enable _Mobile Broadband" -msgstr "Omogoči _mobilno širokopasovno omrežje" +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "BSID:" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2083 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Omogoči mobilno širokopasovno povezavo WiMA_X" +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" -#. Toggle notifications item -#: ../src/applet.c:2094 -msgid "Enable N_otifications" -msgstr "Omogoči _obvestila" +#. Address +#: ../src/applet-dialogs.c:553 +#: ../src/applet-dialogs.c:660 +msgid "IP Address:" +msgstr "Naslov IP:" -#. 'Connection Information' item -#: ../src/applet.c:2105 -msgid "Connection _Information" -msgstr "_Podatki o povezavi" +#: ../src/applet-dialogs.c:555 +#: ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "Neznano" -#. 'Edit Connections...' item -#: ../src/applet.c:2115 -msgid "Edit Connections..." -msgstr "Urejanje povezav ..." +#: ../src/applet-dialogs.c:569 +msgid "Broadcast Address:" +msgstr "Naslov za razpršeno oddajanje:" -#. Help item -#: ../src/applet.c:2129 -msgid "_Help" -msgstr "Pomo_č" +#. Prefix +#: ../src/applet-dialogs.c:578 +msgid "Subnet Mask:" +msgstr "Maska podomrežja:" -#. About item -#: ../src/applet.c:2138 -msgid "_About" -msgstr "_O Programu" +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Neznano" -#: ../src/applet.c:2315 -msgid "Disconnected" -msgstr "Povezava je prekinjena" +#: ../src/applet-dialogs.c:588 +#: ../src/applet-dialogs.c:675 +msgid "Default Route:" +msgstr "Privzeta smer:" -#: ../src/applet.c:2316 -msgid "The network connection has been disconnected." -msgstr "Omrežna povezava je bila prekinjena." +#: ../src/applet-dialogs.c:600 +msgid "Primary DNS:" +msgstr "Glavni DNS:" -#: ../src/applet.c:2497 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Pripravljanje omrežne povezave '%s' ..." +#: ../src/applet-dialogs.c:609 +msgid "Secondary DNS:" +msgstr "Drugi DNS:" -#: ../src/applet.c:2500 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Za omrežno povezavo '%s' je zahtevana overitev uporabnika ..." +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "Tretji DNS:" -#: ../src/applet.c:2506 -#, c-format -msgid "Network connection '%s' active" -msgstr "Omrežna povezava '%s' je dejavna" +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" -#: ../src/applet.c:2589 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Zaganjanje VPN povezave '%s' ..." +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "Prezrto" -#: ../src/applet.c:2592 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Za povezavo VPN '%s' je zahtevana overitev uporabnika ..." +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "Vrsta VPN:" -#: ../src/applet.c:2595 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Poteka zahteva naslova VPN za '%s' ..." +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "Prehod VPN:" -#: ../src/applet.c:2598 -#, c-format -msgid "VPN connection '%s' active" -msgstr "Povezava VPN '%s' je dejavna" +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "Uporabniško ime VPN:" -#: ../src/applet.c:2639 -msgid "No network connection" -msgstr "Nobene omrežne povezave" +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "Pasica VPN:" -#: ../src/applet.c:3394 -msgid "NetworkManager Applet" -msgstr "Aplet upravljalnika omrežja" +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Osnovna povezava:" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Samodejno odkleni napravo" +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "Neznano" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "_Odkleni" +#. Shouldn't really happen but ... +#: ../src/applet-dialogs.c:886 +msgid "No valid active connections found!" +msgstr "Ni mogoče najti veljavnih dejavnih povezav!" -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "Podatki o povezavi" +#: ../src/applet-dialogs.c:939 +msgid "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" +msgstr "" +"Avtorske pravice © 2004-2011 Red Hat, Inc.\n" +"Avtorske pravice © 2005-2008 Novell, Inc.\n" +"in veliko drugih posameznikov, ki so prispevali skupnosti." -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "Dejavne omrežne storitve" +#: ../src/applet-dialogs.c:942 +msgid "Notification area applet for managing your network devices and connections." +msgstr "Aplet področja obvestil za upravljanje vaših omrežnih naprav in povezav." -#: ../src/wired-8021x.ui.h:1 -#: ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Žična overitev 802.1X" +#: ../src/applet-dialogs.c:944 +msgid "NetworkManager Website" +msgstr "Spletišče upravljalnika omrežja" -#: ../src/wired-8021x.ui.h:2 -#: ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "_Ime omrežja:" +#: ../src/applet-dialogs.c:959 +msgid "Missing resources" +msgstr "Manjkajoča sredstva" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "samodejno" +#: ../src/applet-dialogs.c:984 +msgid "Mobile broadband network password" +msgstr "Geslo mobilnega širokopasovnega dostopa" -#: ../src/connection-editor/ce-page.c:318 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "Zaradi neznane napake ni mogoče posodobiti varovanih podatkov povezave." +#: ../src/applet-dialogs.c:993 +#, c-format +msgid "A password is required to connect to '%s'." +msgstr "Za povezavo z '%s' je zahtevano geslo." + +#: ../src/applet-dialogs.c:1012 +msgid "Password:" +msgstr "Geslo:" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 #: ../src/connection-editor/ce-page-ip4.ui.h:8 #: ../src/connection-editor/ce-page-ip6.ui.h:8 msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." -msgstr "Naslovi IP določajo istovetnost računalnika na omrežju. Dodajte naslov IP s klikom na gumb \"Dodaj\"." +msgstr "Naslovi IP določajo istovetnost računalnika na omrežju. Naslov IP je mogoče dodati s klikom na gumb \"Dodaj\"." #: ../src/connection-editor/ce-ip4-routes.ui.h:2 #: ../src/connection-editor/ce-ip6-routes.ui.h:2 @@ -1107,6 +1117,42 @@ msgid "If enabled, this connection will never be used as the default network connection." msgstr "Izbrana možnost določa, da izbrana povezava nikoli ne bo uporabljena kot privzeta omrežna povezava." +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "Izbor vrste povezave" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"Izberite vrsto povezave, ki jo želite ustvariti.\n" +"\n" +"V primeru, da vrste povezave VPN, ki jo želite ustvariti, ni na seznamu, morda ni nameščenega ustreznega vstavka VPN." + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Ustvari ..." + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "samodejno" + +#: ../src/connection-editor/ce-page.c:288 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "Zaradi neznane napake ni mogoče posodobiti varovanih podatkov povezave." + #: ../src/connection-editor/ce-page-dsl.ui.h:1 #: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 @@ -1128,23 +1174,114 @@ msgid "Sho_w password" msgstr "Pokaži _geslo" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:9 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "_Password:" -msgstr "_Geslo:" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_Geslo:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "Samodejno" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Twisted Pair (TP)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Vmesnik enote pripenjanja (AUI)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Od nosilca neodvisen vmesnik (MII)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Vrata:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Hitrost:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Polno d_vostransko" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "Sa_modejno pogajanje" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "MAC naslov _naprave:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "_Kloniran naslov MAC:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "Tu vnesen naslov MAC bo uporabljen kot strojni naslov za omrežno napravo, na kateri je ta povezava omogočena. Ta zmožnost je poznana kot kloniranje MAC ali lažno predstavljanje: primer: 00:11:22:33:44:55 " -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -msgid "Automatic" -msgstr "Samodejno" +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "bajti" + +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "Način _prenosa:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagram" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "Povezano" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 @@ -1182,7 +1319,7 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:9 msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." -msgstr "Določilnik odjemalca DHCP skrbniku omrežja omogoča nastavitev vašega računalnika po meri. V primeru da želite uporabiti določilnik odjemalca DHCP, ga vnesite sem." +msgstr "Določilnik odjemalca DHCP skrbniku omrežja omogoča nastavitev vašega računalnika po meri. V primeru, da želite uporabiti določilnik odjemalca DHCP, ga vnesite tu." #: ../src/connection-editor/ce-page-ip4.ui.h:10 #: ../src/connection-editor/ce-page-ip6.ui.h:9 @@ -1195,22 +1332,26 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Preišči _domene:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_Strežniki DNS:" #: ../src/connection-editor/ce-page-ip4.ui.h:14 #: ../src/connection-editor/ce-page-ip6.ui.h:12 msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." -msgstr "IP naslovi imenskih strežnikov domen, ki so uporabljeni za razreševanje imen gostiteljev. Za ločevanje več imenskih strežnikov domen uporabite vejice. " +msgstr "Naslovi IP imenskih strežnikov domen, ki so uporabljeni za razreševanje imen gostiteljev. Za ločevanje več imenskih strežnikov domen uporabite vejice. " #: ../src/connection-editor/ce-page-ip4.ui.h:15 msgid "Require IPv_4 addressing for this connection to complete" -msgstr "Zahtevaj IPv_4 naslavljanje za dokončanje te povezave" +msgstr "Zahtevaj naslavljanje IPv_4 za dokončanje te povezave" #: ../src/connection-editor/ce-page-ip4.ui.h:16 msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." @@ -1223,11 +1364,11 @@ #: ../src/connection-editor/ce-page-ip6.ui.h:13 msgid "Require IPv_6 addressing for this connection to complete" -msgstr "Zahtevaj IPv_6 naslavljanje za dokončanje te povezave" +msgstr "Zahtevaj naslavljanje IPv_6 za dokončanje te povezave" #: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds." -msgstr "Pri povezovanju na IPv4 zmožna omrežja omogoča dokončanje povezave, če nastavitev IPv6 spodleti in je nastavitev IPv4 uspešna. " +msgstr "Pri povezovanju na omrežja s podporo IPv4 povezava omogoča dokončanje povezave, če nastavitev IPv6 spodleti in je nastavitev IPv4 uspešna. " #: ../src/connection-editor/ce-page-mobile.ui.h:1 msgid "Any" @@ -1338,139 +1479,66 @@ msgid "Send PPP _echo packets" msgstr "Pošlji pakete PPP _echo" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "Twisted Pair (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "Vmesnik enote pripenjanja (AUI)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "Od medija neodvisen vmesnik (MII)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "_Vrata:" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "_Hitrost:" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "Polno d_vostransko" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "Sa_modejno pogajanje" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "MAC naslov _naprave:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "C_loned MAC address:" -msgstr "_Kloniran naslov MAC:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "Sem vnesen naslov MAC bo bil uporabljen kot strojni naslov za omrežno napravo na kateri je ta povezava omogočena. Ta zmožnost je poznana kot kloniranje MAC ali lažno predstavljanje: Primer: 00:11:22:33:44:55 " - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "_MTU:" -msgstr "_MTU:" - -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "bajti" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "_Varnost:" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Infrastruktura" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "Ad-hoc" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "mW" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "Prenosna _moč:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "_Hitrost:" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "This option locks this connection to the wireless access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "Ta možnost zaklene to povezavo na brezžično priklopno točko navedeno s tukaj vnesenim BSSID. Primer: 00:11:22:33:44:55 " +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +msgid "This option locks this connection to the Wi-Fi access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "Ta možnost zaklene to povezavo na brezžično priklopno točko Wi-Fi navedeno z določilom BSSID. Primer: 00:11:22:33:44:55 " -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "_Kanal:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "Pa_s:" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "_Način:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "SS_ID:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "_Varnost:" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "Dovoljeni načini overitve" @@ -1497,94 +1565,351 @@ #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 msgid "Challenge Handshake Authentication Protocol" -msgstr "Challenge protokol overitve izmenjave signalov" +msgstr "Protokol Challenge za overitev izmenjave signalov" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "_MSCHAP" +msgstr "_MSCHAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Protokol Microsoft Challenge za overitev izmenjave signalov" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Protokol Microsoft Challenge za overitev izmenjave signalov različica 2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 +msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." +msgstr "V večini primerov bodo strežniki PPP podpirali vse načine overitve. V primeru, da povezave spodletijo, poskusite onemogoči podporo za nekatere načine." + +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Naslov" + +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Omrežna maska" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Prehod" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Merilo" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Predpona" + +#: ../src/connection-editor/new-connection.c:75 +#: ../src/connection-editor/page-ethernet.c:273 +msgid "Ethernet" +msgstr "Eternet" + +#: ../src/connection-editor/new-connection.c:80 +#: ../src/connection-editor/page-wifi.c:462 +msgid "Wi-Fi" +msgstr "Wi-Fi" + +#: ../src/connection-editor/new-connection.c:90 +#: ../src/connection-editor/page-wimax.c:157 +#: ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:95 +#: ../src/connection-editor/page-dsl.c:139 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:100 +#: ../src/connection-editor/page-infiniband.c:189 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:112 +#: ../src/connection-editor/page-vpn.c:111 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:245 +msgid "Import a saved VPN configuration..." +msgstr "Uvozi shranjene nastavitve VPN ..." + +#: ../src/connection-editor/nm-connection-editor.c:106 +#, c-format +msgid "Editing %s" +msgstr "Urejanje %s" + +#: ../src/connection-editor/nm-connection-editor.c:110 +msgid "Editing un-named connection" +msgstr "Urejanje neimenovane povezave" + +#: ../src/connection-editor/nm-connection-editor.c:297 +msgid "The connection editor could not find some required resources (the .ui file was not found)." +msgstr "Urejevalnik povezav ni našel zahtevanih sredstev (datoteke .ui ni mogoče najti)." + +#: ../src/connection-editor/nm-connection-editor.c:401 +msgid "Error creating connection editor dialog." +msgstr "Napaka med ustvarjanjem pogovornega okna urejevalnika povezav." + +#: ../src/connection-editor/nm-connection-editor.c:413 +msgid "_Save" +msgstr "_Shrani" + +#: ../src/connection-editor/nm-connection-editor.c:414 +msgid "Save any changes made to this connection." +msgstr "Shrani vse spremembe narejene na tej povezavi." + +#: ../src/connection-editor/nm-connection-editor.c:415 +msgid "_Save..." +msgstr "_Shrani ..." + +#: ../src/connection-editor/nm-connection-editor.c:416 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "Overi za shranitev te povezave za vse uporabnike tega računalnika." + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "_Ime povezave:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "_Samodejna povezava" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "Na voljo _vsem uporabnikom" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "_Izvozi ..." + +#: ../src/connection-editor/nm-connection-list.c:169 +msgid "never" +msgstr "nikoli" + +#: ../src/connection-editor/nm-connection-list.c:180 +#: ../src/connection-editor/nm-connection-list.c:191 +msgid "now" +msgstr "zdaj" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "Pred %d minutami" +msgstr[1] "Pred %d minuto" +msgstr[2] "Pred %d minutama" +msgstr[3] "Pred %d minutami" + +#: ../src/connection-editor/nm-connection-list.c:202 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "Pred %d urami" +msgstr[1] "Pred %d uro" +msgstr[2] "Pred %d urama" +msgstr[3] "Pred %d urami" + +#: ../src/connection-editor/nm-connection-list.c:214 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "Pred %d dnevi" +msgstr[1] "Pred %d dnevom" +msgstr[2] "Pred %d dnevoma" +msgstr[3] "Pred %d dnevi" + +#: ../src/connection-editor/nm-connection-list.c:220 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "Pred %d meseci" +msgstr[1] "Pred %d mesecem" +msgstr[2] "Pred %d mesecema" +msgstr[3] "Pred %d meseci" + +#: ../src/connection-editor/nm-connection-list.c:224 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "Pred %d leti" +msgstr[1] "Pred %d letom" +msgstr[2] "Pred %d letoma" +msgstr[3] "Pred %d leti" + +#: ../src/connection-editor/nm-connection-list.c:443 +msgid "Connection add failed" +msgstr "Dodajanje povezave ni uspelo" + +#: ../src/connection-editor/nm-connection-list.c:472 +msgid "Error saving connection" +msgstr "Napaka med shranjevanjem povezave" + +#: ../src/connection-editor/nm-connection-list.c:473 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Lastnost '%s' / '%s' ni veljavna: %d" + +#: ../src/connection-editor/nm-connection-list.c:480 +#: ../src/connection-editor/nm-connection-list.c:598 +msgid "An unknown error occurred." +msgstr "Prišlo je do neznane napake." + +#: ../src/connection-editor/nm-connection-list.c:485 +#: ../src/connection-editor/nm-connection-list.c:638 +msgid "Error initializing editor" +msgstr "Napaka med začenjanjem urejevalnika" + +#: ../src/connection-editor/nm-connection-list.c:503 +#: ../src/connection-editor/nm-connection-list.c:655 +msgid "The connection editor dialog could not be initialized due to an unknown error." +msgstr "Pogovornega okna urejevalnika povezav ni mogoče začeti zaradi neznane napake." + +#: ../src/connection-editor/nm-connection-list.c:512 +msgid "Could not create new connection" +msgstr "Ni mogoče ustvariti nove povezave" + +#: ../src/connection-editor/nm-connection-list.c:524 +msgid "Could not edit new connection" +msgstr "Nove povezave ni mogoče urediti" + +#: ../src/connection-editor/nm-connection-list.c:669 +msgid "Could not edit connection" +msgstr "Ni mogoče urediti povezave" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "Connection delete failed" +msgstr "Izbris povezave ni uspel" + +#: ../src/connection-editor/nm-connection-list.c:731 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Ali ste prepričani, da želite izbrisati povezavo %s?" + +#: ../src/connection-editor/nm-connection-list.c:972 +msgid "Name" +msgstr "Ime" + +#: ../src/connection-editor/nm-connection-list.c:985 +msgid "Last Used" +msgstr "Nazadnje uporabljeno" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "_MSCHAP" -msgstr "_MSCHAP" +#. Edit +#: ../src/connection-editor/nm-connection-list.c:1026 +msgid "_Edit" +msgstr "_Uredi" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft Challenge protokol overitve izmenjave signalov" +#: ../src/connection-editor/nm-connection-list.c:1027 +msgid "Edit the selected connection" +msgstr "Uredi izbrano povezavo" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +#: ../src/connection-editor/nm-connection-list.c:1028 +msgid "_Edit..." +msgstr "_Uredi ..." -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft Challenge protokol overitve izmenjave signalov različica 2" +#: ../src/connection-editor/nm-connection-list.c:1029 +msgid "Authenticate to edit the selected connection" +msgstr "Overi za urejanje izbrane povezave" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." -msgstr "V večini primerov bodo strežniki PPP podpirali vse načine overitve. V primeru, da povezave spodletijo, poskusite onemogoči podporo za nekatere načine." +#. Delete +#: ../src/connection-editor/nm-connection-list.c:1043 +msgid "_Delete" +msgstr "_Izbriši" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 -#: ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/nm-connection-list.c:1044 +msgid "Delete the selected connection" +msgstr "Izbriši izbrano povezavo" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Izberite vrsto povezave VPN" +#: ../src/connection-editor/nm-connection-list.c:1045 +msgid "_Delete..." +msgstr "I_zbriši ..." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." -msgstr "Izberite vrsto VPN, ki jo želite uporabiti za novo povezavo. V primeru da vrste povezave VPN, ki jo želite ustvariti, ni na seznamu, morda nimate nameščenega pravilnega vstavka VPN." +#: ../src/connection-editor/nm-connection-list.c:1046 +msgid "Authenticate to delete the selected connection" +msgstr "Overi za izbris izbrane povezave" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "Ustvari ..." +#: ../src/connection-editor/nm-connection-list.c:1285 +msgid "Error creating connection" +msgstr "Napaka med ustvarjanjem povezave" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Naslov" +#: ../src/connection-editor/nm-connection-list.c:1286 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Ni jasno, kako ustvariti '%s' povezav" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Omrežna maska" +#: ../src/connection-editor/nm-connection-list.c:1341 +msgid "Error editing connection" +msgstr "Napaka med urejanjem povezave" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Prehod" +#: ../src/connection-editor/nm-connection-list.c:1342 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Ni mogoče najti povezave z UUID '%s'" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Merilo" +#: ../src/connection-editor/page-8021x-security.c:119 +msgid "802.1x Security" +msgstr "Varnost 802.1x" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Predpona" +#: ../src/connection-editor/page-8021x-security.c:121 +msgid "Could not load 802.1x Security user interface." +msgstr "Uporabniškega vmesnika za 802.1x ni mogoče naložiti." -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1518 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-8021x-security.c:139 +msgid "Use 802.1_X security for this connection" +msgstr "Za to povezavo uporabi varnostni protokol 802.1X" #: ../src/connection-editor/page-dsl.c:141 msgid "Could not load DSL user interface." msgstr "Uporabniškega vmesnika DSL ni mogoče naložiti." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:233 #, c-format msgid "DSL connection %d" msgstr "Povezava DSL %d" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "Ta možnost zaklene to povezavo na omrežno napravo navedeno s svojim trajnim naslovom MAC, vnesenim tukaj. Primer: 00:11:22:33:44:55 " + +#: ../src/connection-editor/page-ethernet.c:275 +msgid "Could not load ethernet user interface." +msgstr "Uporabniškega vmesnika za eternet ni mogoče naložiti." + +#: ../src/connection-editor/page-ethernet.c:451 +#, c-format +msgid "Ethernet connection %d" +msgstr "Povezava eterneg %d" + +#: ../src/connection-editor/page-infiniband.c:192 +msgid "Could not load InfiniBand user interface." +msgstr "Uporabniškega vmesnika InfiniBand ni mogoče naložiti." + +#: ../src/connection-editor/page-infiniband.c:317 +#, c-format +msgid "InfiniBand connection %d" +msgstr "Povezava InfiniBand %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1632,16 +1957,26 @@ msgid "Disabled" msgstr "Onemogočeno" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Dodatni strežniki _DNS:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Dodatne i_skalne domene:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Urejanje smeri IPv4 za %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "Nastavitve IPv4" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Uporabniškega vmesnika IPv4 ni mogoče naložiti." @@ -1650,7 +1985,7 @@ msgstr "Samodejno, le naslovi" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Prezri" @@ -1658,16 +1993,16 @@ msgid "Automatic, DHCP only" msgstr "Samodejno, le DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Urejanje smeri IPv6 za %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "Nastavitve IPv6" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Uporabniškega vmesnika IPv6 ni mogoče naložiti." @@ -1680,347 +2015,82 @@ msgstr "Nepodprta vrsta mobilnih širokopasovnih povezav." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:642 msgid "Select Mobile Broadband Provider Type" msgstr "Izbor vrste ponudnika mobilnih širokopasovnih povezav" -#: ../src/connection-editor/page-mobile.c:674 -msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." -msgstr "Izberite tehnologijo svojega ponudnika mobilnih širokopasovnih povezav. Če niste prepričani, vprašajte ponudnika." - -#: ../src/connection-editor/page-mobile.c:679 -msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "Moj ponudnik uporablja na _GSM osnovano tehnologijo (npr. GPRS, EDGE, UMTS, HSDPA)" - -#: ../src/connection-editor/page-mobile.c:686 -msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "Moj ponudnik uporablja na _CDMA osnovano tehnologijo (npr. 1xRTT, EVDO)" - -#: ../src/connection-editor/page-ppp.c:134 -msgid "EAP" -msgstr "EAP" - -#: ../src/connection-editor/page-ppp.c:135 -#: ../src/wireless-security/eap-method-ttls.c:230 -msgid "PAP" -msgstr "PAP" - -#: ../src/connection-editor/page-ppp.c:136 -#: ../src/wireless-security/eap-method-ttls.c:280 -msgid "CHAP" -msgstr "CHAP" - -#: ../src/connection-editor/page-ppp.c:137 -#: ../src/wireless-security/eap-method-fast.c:277 -#: ../src/wireless-security/eap-method-peap.c:246 -#: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "brez" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Urejanje načinov overitve PPP za %s" - -#: ../src/connection-editor/page-ppp.c:282 -msgid "PPP Settings" -msgstr "Nastavitve PPP" - -#: ../src/connection-editor/page-ppp.c:284 -msgid "Could not load PPP user interface." -msgstr "Uporabniškega vmesnika PPP ni mogoče naložiti." - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1514 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "Ni mogoče naložiti uporabniškega vmesnika VPN" - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "Vstavka storitve VPN za '%s' ni mogoče najti." - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:899 -#, c-format -msgid "VPN connection %d" -msgstr "Povezava VPN %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "Ta možnost zaklene to povezavo na omrežno napravo navedeno s svojim trajnim naslovom MAC, vnesenim tukaj. Primer: 00:11:22:33:44:55 " - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1502 -msgid "Wired" -msgstr "Žično" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "Žičnega uporabniškega vmesnika ni mogoče naložiti." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Žična povezava %d" - -#: ../src/connection-editor/page-wired-security.c:119 -msgid "802.1x Security" -msgstr "Varnost 802.1x" - -#: ../src/connection-editor/page-wired-security.c:121 -msgid "Could not load Wired Security security user interface." -msgstr "Varnostnega uporabniškega vmesnika WiFi ni mogoče naložiti." - -#: ../src/connection-editor/page-wired-security.c:139 -msgid "Use 802.1_X security for this connection" -msgstr "Za to povezavo uporabi varnostni protokol 802.1X" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "privzeto" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1506 -msgid "Wireless" -msgstr "Brezžično" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "Uporabniškega vmesnika WiFi ni mogoče naložiti." - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Brezžična povezava %d" - -#: ../src/connection-editor/page-wireless-security.c:290 -#: ../src/libnm-gtk/nm-wireless-dialog.c:922 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "Ključ WEP 40/128-bit (Šestnajstiški ali ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:300 -#: ../src/libnm-gtk/nm-wireless-dialog.c:931 -msgid "WEP 128-bit Passphrase" -msgstr "128-bit šifrirno geslo WEP" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:961 -msgid "Dynamic WEP (802.1x)" -msgstr "Dinamični WEP (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:340 -#: ../src/libnm-gtk/nm-wireless-dialog.c:975 -msgid "WPA & WPA2 Personal" -msgstr "Osebni WPA in WPA2" - -#: ../src/connection-editor/page-wireless-security.c:354 -#: ../src/libnm-gtk/nm-wireless-dialog.c:989 -msgid "WPA & WPA2 Enterprise" -msgstr "Podjetniški WPA in WPA2" - -#: ../src/connection-editor/page-wireless-security.c:395 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "Varnostnega uporabniškega vmesnika WiFi ni mogoče naložiti; manjka nastavitev WiFi." - -#: ../src/connection-editor/page-wireless-security.c:405 -msgid "Wireless Security" -msgstr "Brezžična varnost" - -#: ../src/connection-editor/page-wireless-security.c:407 -msgid "Could not load WiFi security user interface." -msgstr "Varnostnega uporabniškega vmesnika WiFi ni mogoče naložiti." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Urejanje %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Urejanje neimenovane povezave" - -#: ../src/connection-editor/nm-connection-editor.c:291 -msgid "The connection editor could not find some required resources (the .ui file was not found)." -msgstr "Urejevalnik povezav ni našel zahtevanih sredstev (datoteke .ui ni mogoče najti)." - -#: ../src/connection-editor/nm-connection-editor.c:394 -msgid "Error creating connection editor dialog." -msgstr "Napaka med ustvarjanjem pogovornega okna urejevalnika povezav." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "_Save" -msgstr "_Shrani" - -#: ../src/connection-editor/nm-connection-editor.c:407 -msgid "Save any changes made to this connection." -msgstr "Shrani vse spremembe narejene na tej povezavi." - -#: ../src/connection-editor/nm-connection-editor.c:408 -msgid "_Save..." -msgstr "_Shrani ..." - -#: ../src/connection-editor/nm-connection-editor.c:409 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "Overi za shranitev te povezave za vse uporabnike tega računalnika." - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "_Uvozi" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "I_zvozi" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "_Ime povezave:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "_Samodejna povezava" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Na voljo vsem uporabnikom" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "nikoli" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "zdaj" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "Pred %d minutami" -msgstr[1] "Pred %d minuto" -msgstr[2] "Pred %d minutama" -msgstr[3] "Pred %d minutami" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "Pred %d urami" -msgstr[1] "Pred %d uro" -msgstr[2] "Pred %d urama" -msgstr[3] "Pred %d urami" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "Pred %d dnevi" -msgstr[1] "Pred %d dnevom" -msgstr[2] "Pred %d dnevoma" -msgstr[3] "Pred %d dnevi" +#: ../src/connection-editor/page-mobile.c:677 +msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." +msgstr "Izberite tehnologijo svojega ponudnika mobilnih širokopasovnih povezav. Če niste prepričani, vprašajte ponudnika." -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "Pred %d meseci" -msgstr[1] "Pred %d mesecem" -msgstr[2] "Pred %d mesecema" -msgstr[3] "Pred %d meseci" +#: ../src/connection-editor/page-mobile.c:682 +msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" +msgstr "Moj ponudnik uporablja na _GSM osnovano tehnologijo (npr. GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "Pred %d leti" -msgstr[1] "Pred %d letom" -msgstr[2] "Pred %d letoma" -msgstr[3] "Pred %d leti" +#: ../src/connection-editor/page-mobile.c:689 +msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" +msgstr "Moj ponudnik uporablja na _CDMA osnovano tehnologijo (npr. 1xRTT, EVDO)" -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Dodajanje povezave ni uspelo" +#: ../src/connection-editor/page-ppp.c:134 +msgid "EAP" +msgstr "EAP" -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Napaka med shranjevanjem povezave" +#: ../src/connection-editor/page-ppp.c:135 +#: ../src/wireless-security/eap-method-ttls.c:230 +msgid "PAP" +msgstr "PAP" -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "Lastnost '%s' / '%s' ni veljavna: %d" +#: ../src/connection-editor/page-ppp.c:136 +#: ../src/wireless-security/eap-method-ttls.c:280 +msgid "CHAP" +msgstr "CHAP" -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Prišlo je do neznane napake." +#: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 +#: ../src/wireless-security/eap-method-peap.c:246 +#: ../src/wireless-security/eap-method-ttls.c:263 +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Napaka med začenjanjem urejevalnika" +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:885 -msgid "The connection editor dialog could not be initialized due to an unknown error." -msgstr "Pogovornega okna urejevalnika povezav ni bilo mogoče začeti zaradi neznane napake." +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "brez" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Ni mogoče ustvariti nove povezave" +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Urejanje načinov overitve PPP za %s" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Nove povezave ni mogoče urediti" +#: ../src/connection-editor/page-ppp.c:282 +msgid "PPP Settings" +msgstr "Nastavitve PPP" -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "Ni mogoče urediti povezave" +#: ../src/connection-editor/page-ppp.c:284 +msgid "Could not load PPP user interface." +msgstr "Uporabniškega vmesnika PPP ni mogoče naložiti." -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Izbris povezave ni uspel" +#: ../src/connection-editor/page-vpn.c:113 +msgid "Could not load VPN user interface." +msgstr "Ni mogoče naložiti uporabniškega vmesnika VPN" -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:128 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Ali ste prepričani, da želite izbrisati povezavo %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "Vstavka storitve VPN za '%s' ni mogoče najti." -#: ../src/connection-editor/nm-connection-list.c:929 -#: ../src/connection-editor/vpn-helpers.c:228 -msgid "Cannot import VPN connection" -msgstr "Povezave VPN ni mogoče uvoziti " +#: ../src/connection-editor/page-vpn.c:222 +#: ../src/connection-editor/page-vpn.c:305 +#, c-format +msgid "VPN connection %d" +msgstr "Povezava VPN %d" -#: ../src/connection-editor/nm-connection-list.c:931 +#: ../src/connection-editor/page-vpn.c:248 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2030,112 +2100,124 @@ "\n" "Napaka: vrsta storitve VPN ni navedena." -#: ../src/connection-editor/nm-connection-list.c:944 -msgid "Could not edit imported connection" -msgstr "Ni mogoče urejati uvožene povezave" +#: ../src/connection-editor/page-vpn.c:273 +msgid "Choose a VPN Connection Type" +msgstr "Izberite vrsto povezave VPN" -#: ../src/connection-editor/nm-connection-list.c:1125 -msgid "Name" -msgstr "Ime" +#: ../src/connection-editor/page-vpn.c:274 +msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." +msgstr "Izberite vrsto VPN, ki jo želite uporabiti za novo povezavo. V primeru, da vrste povezave VPN, ki jo želite ustvariti, ni na seznamu, morda ni nameščenega ustreznega vstavka VPN." -#: ../src/connection-editor/nm-connection-list.c:1137 -msgid "Last Used" -msgstr "Nazadnje uporabljeno" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "privzeto" -#: ../src/connection-editor/nm-connection-list.c:1263 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "Vstavek VPN ni na voljo. Namestite enega za omogočitev tega gumba." +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1274 -msgid "_Edit" -msgstr "_Uredi" +#: ../src/connection-editor/page-wifi.c:464 +msgid "Could not load Wi-Fi user interface." +msgstr "Uporabniškega vmesnika Wi-Fi ni mogoče naložiti." -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "Edit the selected connection" -msgstr "Uredi izbrano povezavo" +#: ../src/connection-editor/page-wifi.c:669 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Povezava Wi-Fi %d" -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "_Edit..." -msgstr "_Uredi ..." +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Brez" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "Authenticate to edit the selected connection" -msgstr "Overi za urejanje izbrane povezave" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "Ključ WEP 40/128-bit (Šestnajstiški ali ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1292 -msgid "_Delete" -msgstr "_Izbriši" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "128-bit šifrirno geslo WEP" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "Delete the selected connection" -msgstr "Izbriši izbrano povezavo" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "Dinamični WEP (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "_Delete..." -msgstr "I_zbriši ..." +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "Osebni WPA in WPA2" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "Authenticate to delete the selected connection" -msgstr "Overi za izbris izbrane povezave" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "Podjetniški WPA in WPA2" -#: ../src/connection-editor/nm-connection-list.c:1574 -msgid "Error creating connection" -msgstr "Napaka med ustvarjanjem povezave" +#: ../src/connection-editor/page-wifi-security.c:395 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "Uporabniškega vmesnika varnosti WiFi ni mogoče naložiti; manjka nastavitev Wi-Fi." -#: ../src/connection-editor/nm-connection-list.c:1575 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Program ne ve kako ustvariti '%s' povezav" +#: ../src/connection-editor/page-wifi-security.c:405 +msgid "Wi-Fi Security" +msgstr "Varnost Wi-Fi" -#: ../src/connection-editor/nm-connection-list.c:1630 -#: ../src/connection-editor/nm-connection-list.c:1642 -msgid "Error editing connection" -msgstr "Napaka med urejanjem povezave" +#: ../src/connection-editor/page-wifi-security.c:407 +msgid "Could not load Wi-Fi security user interface." +msgstr "Uporabniškega vmesnika varnosti Wi-Fi ni mogoče naložiti." -#: ../src/connection-editor/nm-connection-list.c:1631 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Program ne ve kako urediti '%s' povezav" +#: ../src/connection-editor/page-wimax.c:160 +msgid "Could not load WiMAX user interface." +msgstr "Uporabniškega vmesnika WiMAX ni mogoče naložiti." -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/page-wimax.c:289 #, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Ni bilo mogoče najti povezave z UUID '%s'" +msgid "WiMAX connection %d" +msgstr "Povezava WiMAX %d" + +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Povezave VPN ni mogoče uvoziti " -#: ../src/connection-editor/vpn-helpers.c:230 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN connection information\n" "\n" "Error: %s." msgstr "" -"Datoteke '%s' ni mogoče brati ali ne vsebuje prepoznanih podatkov o povezavi VPN\n" +"Datoteke '%s' ni mogoče prebrati ali pa ne vsebuje prepoznanih podatkov o povezavi VPN\n" "\n" "Napaka:%s." -#: ../src/connection-editor/vpn-helpers.c:263 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Izbor datoteke za uvoz" -#: ../src/connection-editor/vpn-helpers.c:314 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Datoteka z imenom \"%s\" že obstaja." -#: ../src/connection-editor/vpn-helpers.c:316 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "_Zamenjaj" -#: ../src/connection-editor/vpn-helpers.c:318 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Ali želite zamenjati povezavo %s z nastavitvami povezave VPN, ki jih shranjujete?" -#: ../src/connection-editor/vpn-helpers.c:354 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "Ni mogoče izvoziti povezave VPN" -#: ../src/connection-editor/vpn-helpers.c:356 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2146,293 +2228,310 @@ "\n" "Napaka: %s." -#: ../src/connection-editor/vpn-helpers.c:391 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Izvoz povezave VPN ..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Ustvarjanje povezave PAN je spodletelo: %s" +#: ../src/ethernet-dialog.c:91 +#: ../src/ethernet-dialog.c:99 +msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." +msgstr "Aplet upravljalnika omrežja ne najde nekaterih zahtevanih sredstev (datoteke .ui ni mogoče najti)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Vaš telefon je sedaj pripravljen za uporabo!" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "Nastavitev Bluetooth ni mogoča (povezava z vodilom D-Bus je spodletela: (%s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "Omrežje %s" +msgid "Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "Nastavitev Bluetooth ni mogoča (napaka med iskanjem NetworkManager: (%s) %s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Uporaba mobilnega telefona kot omrežne naprave (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Dostop do medmrežja z uporabo mobilnega telefona (DUN)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Napaka: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Ustvarjanje povezave DUN je spodletelo: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Telefon je pripravljen za uporabo!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Mobilni čarovnik je bil preklican" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Neznana vrsta naprave telefona (ni GSM ali CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "neznana vrsta modema" + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "povezava s telefonom je spodletela." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "nepričakovana prekinitev povezave s telefonom." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "zaznavanje podrobnosti telefona je poteklo." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Zaznavanje nastavitev telefona ..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "Bluetooth naprave ni mogoče najti." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection." msgstr "Privzeti vmesnik Bluetooth mora pred nastavljanjem povezave klicnega omrežja biti omogočen." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "Nastavitev Bluetooth ni mogoča (povezava z D-Bus je spodletela: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Nastavitev Bluetooth ni mogoča (ustvarjanje posredniškega strežnika D-Bus je spodletelo)." +msgid "Failed to create PAN connection: %s" +msgstr "Ustvarjanje povezave PAN je spodletelo: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "Nastavitev Bluetooth ni mogoča (napaka med iskanjem NetworkManager: %s)." +msgid "%s Network" +msgstr "Omrežje %s" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Uporaba mobilnega telefona kot omrežne naprave (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Samodejno odkleni napravo" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Dostop do medmrežja z uporabo mobilnega telefona (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_Odkleni" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Podatki o povezavi" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Dejavne omrežne storitve" + +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "Your mobile broadband connection is configured with the following settings:" msgstr "Vaša mobilna širokopasovna povezava ima naslednje nastavitve:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Vaša naprava:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Vaš ponudnik:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Vaš naročniški paket:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose \"Network Connections\" from the System >> Preferences menu." msgstr "S ponudnikom mobilnega širokopasovnega omrežja bo vzpostavljena povezava z izbranimi nastavitvami. V primeru, da povezava spodleti ali pa omrežnih sredstev ni mogoče uporabljati, preverite svoje nastavitve. Za spremembo nastavitev mobilne širokopasovne povezave izberite \"Omrežne povezave\" v meniju Sistem >> Možnosti. " -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Potrdite nastavitve mobilnega širokopasovnega omrežja" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Nenavedeno" # tukaj govorimo o načinu preklopa -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "_Izberite svoj naročniški paket:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "Izbor _IPK (Imena PriKlopne točke) paketa:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"Opozorilo: Izbira napačne priklopne točke lahko neugodno vpliva na znesek računa vašega širokopasovnega dostopa ali prepreči povezovanje.\n" +"Opozorilo: izbira napačne priklopne točke lahko neugodno vpliva na znesek računa vašega širokopasovnega dostopa ali prepreči povezovanje.\n" "\n" "Če ne veste, kaj izbrati, vprašajte svojega ponudnika za priklopno točko za vaš naročniški paket." # način je bolj smiselno kot načrt .. -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Izbor naročniškega paketa" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Moj načrt ni na seznamu ..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "S _seznama izberite svojega ponudnika:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "Ponudnik" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" -msgstr "Ponudnika ne morem najti, zato bom nastavitve vnes-el/la _ročno:" +msgstr "Ponudnika ni mogoče najti, zato bodo podatki vneseni ročno ročno:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Ponudnik:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Ponudnik uporablja tehnologijo GSM (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Ponudnik uporablja tehnologijo CDMA (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Izbor ponudnika" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Seznama držav ali regij:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "Država ali regija" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" -msgstr "Moja država ni na seznamu" +msgstr "Moje države ni na seznamu" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Izberite državo ali področje svojega ponudnika" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Nameščena naprava GSM" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Nameščena naprava CDMA" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network." -msgstr "Pomočnik vam pomaga preprosto nastaviti mobilno širokopasovno povezavo v mobilno 3G omrežje." +msgstr "Pomočnik pomaga pri hitrem nastavljanju mobilne širokopasovne povezavo v mobilno 3G omrežje." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" -msgstr "Potrebovali boste naslednje podatke:" +msgstr "Navesti je treba naslednje podatke:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "Ime ponudnika širokopasovnih storitev" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "Ime naročniškega paketa širokopasovnega dostopa" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(v nekaterih primerih) IPK (Ime PriKlopne točke) vašega širokopasovnega naročniškega paketa" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Ustvari povezavo za _to širokopasovno mobilno napravo:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Katerakoli naprava" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Nastavite mobilno širokopasovno povezavo" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Nova mobilna širokopasovna povezava" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "Novo ..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "Ustva_ri" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format -msgid "Passwords or encryption keys are required to access the wireless network '%s'." +msgid "Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "Za povezavo v brezžično omrežje '%s' je zahtevana overitev ali nastavitev šifrirnega ključa." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 -msgid "Wireless Network Authentication Required" -msgstr "Zahtevana je overitev brezžičnega omrežja" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" +msgstr "Zahtevana je overitev za brezžično omrežje" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 -msgid "Authentication required by wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" msgstr "Brezžično omrežje zahteva overitev" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 -msgid "Create New Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" msgstr "Ustvari novo brezžično omrežje" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 -msgid "New wireless network" -msgstr "Novo brezžično omrežje" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" +msgstr "Novo omrežje Wi-Fi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "Enter a name for the wireless network you wish to create." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." msgstr "Vnesite ime brezžičnega omrežja, ki ga želite ustvariti." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 -msgid "Connect to Hidden Wireless Network" -msgstr "Poveži se s skritim brezžičnim omrežjem" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 -msgid "Hidden wireless network" -msgstr "Skrito brezžično omrežje" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Enter the name and security details of the hidden wireless network you wish to connect to." -msgstr "Vnesite ime in varnostne podrobnosti skritega brezžičnega omrežja, s katerim se želite povezati." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" +msgstr "Poveži se s skritim omrežjem Wi-Fi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" +msgstr "Skrito omrežje Wi-Fi" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 +msgid "Enter the name and security details of the hidden Wi-Fi network you wish to connect to." +msgstr "Vnesite ime in varnostne podrobnosti skritega omrežja Wi-Fi, s katerim se želite povezati." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" -msgstr "_Brezžična varnost:" +msgid "Wi-Fi _security:" +msgstr "Varnost Wi-Fi:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" -msgstr "_Povezava:" +msgid "C_onnection:" +msgstr "P_ovezava:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" -msgstr "Brezžični _vmesnik:" +msgid "Wi-Fi _adapter:" +msgstr "Vmeskin Wi-Fi:" #: ../src/main.c:73 msgid "Usage:" @@ -2444,7 +2543,7 @@ #: ../src/main.c:76 msgid "It is not intended for command-line interaction but instead runs in the GNOME desktop environment." -msgstr "Ni namenjen za ukazno vrstico, saj teče v namiznem okolju GNOME." +msgstr "Ni namenjen ukazni vrstici, saj teče v namiznem okolju GNOME." #: ../src/mb-menu-item.c:57 msgid "EVDO" @@ -2474,10 +2573,6 @@ msgid "HSPA" msgstr "HSPA" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "ni omogočeno" @@ -2530,31 +2625,49 @@ msgid "Default" msgstr "Privzeto" -#: ../src/wired-dialog.c:91 -#: ../src/wired-dialog.c:99 -msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." -msgstr "Aplet upravljalnika omrežja ne najde nekaterih zahtevanih sredstev (datoteke .ui ni mogoče najti)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "Povezava %s" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Potrdilo pooblastitelja potrdil ni izbrano" -#: ../src/wireless-security/eap-method.c:280 -msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue wireless networks. Would you like to choose a Certificate Authority certificate?" +#: ../src/wireless-security/eap-method.c:276 +msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate Authority certificate?" msgstr "Neuporaba potrdila pooblastitelja potrdil (CA) lahko vodi k povezovanju z nezavarovanimi brezžičnimi omrežji. Ali želite izbrati potrdilo pooblastitelja potrdil? " -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Izbor potrdila CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM, ali PKCS#12 zasebni ključi (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER ali PEM potrdila (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Izbor datoteke PAC ..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "Datoteke PAC (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Vse datoteke" + #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Brezimno" @@ -2587,23 +2700,6 @@ msgid "Allow automatic PAC pro_visioning" msgstr "_Dovoli samodejno odbiro PAC" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Izbor datoteke PAC ..." - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "Datoteke PAC (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Vse datoteke" - #: ../src/wireless-security/eap-method-peap.c:263 #: ../src/wireless-security/wireless-security.c:382 msgid "MD5" @@ -2647,7 +2743,7 @@ "\n" "(You can password-protect your private key with openssl)" msgstr "" -"Videti je da izbrani zasebni ključi niso zaščiteni z geslom. To bi lahko dovolilo ogroženost vaših varnostnih podatkov. Izberite z geslom zaščiten zasebni ključ.\n" +"Kaže, da izbrani zasebni ključi niso zaščiteni z geslom. Vaši osebni podatki so morda ogroženi. Izberite z geslom zaščiten zasebni ključ.\n" "\n" "(Zasebne ključe lahko zaščitite z geslom z openssl)" @@ -2745,186 +2841,67 @@ msgid "WEP inde_x:" msgstr "_Določilo WEP:" -#~ msgid "PI_N:" -#~ msgstr "PI_N:" - -#~ msgid "MT_U:" -#~ msgstr "MT_U:" - -#~ msgid "_SSID:" -#~ msgstr "_SSID:" - -#~ msgid "_Security:" -#~ msgstr "_Varnost:" - -#~ msgid "Click on this icon to connect to a wireless network" -#~ msgstr "Kliknite na to ikono za vzpostavitev povezave z brezžičnim omrežjem" +#~ msgid "Wireless Networks (%s)" +#~ msgstr "Brezžična omrežja (%s)" -#~ msgid "United Kingdom" -#~ msgstr "Združeno kraljestvo" +#~ msgid "Wireless Network (%s)" +#~ msgstr "Brezžično omrežje (%s)" -#~ msgid "C_onnect" -#~ msgstr "Po_veži se" +#~ msgid "Wireless Network" -#~ msgid "Other Wireless Network..." -#~ msgstr "Drugo brezžično omrežje ..." +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "Brezžična omrežja" +#~ msgstr[1] "Brezžično omrežje" +#~ msgstr[2] "Brezžični omrežji" +#~ msgstr[3] "Brezžična omrežja" -#~ msgid "label" -#~ msgstr "oznaka" +#~ msgid "wireless is disabled" +#~ msgstr "brezžični dostop je onemogočen" -#~ msgid "Network Manager" -#~ msgstr "Upravljalnik omrežja" +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "brezžična povezava je onemogočena s stikalom strojne opreme" -#~ msgid "An instance of nm-applet is already running.\n" -#~ msgstr "Drug primerek programa že teče.\n" +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "Pripravljanje brezžične omrežne povezave '%s' ..." -#~ msgid "Could not acquire the %s service. (%d)\n" -#~ msgstr "Storitve %s ni mogoče pridobiti. (%d)\n" +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "Prilagajanje nastavitev brezžične omrežne povezave '%s' ..." -#~ msgid "could not connect to the system bus." -#~ msgstr "ni se mogoče povezati s sistemskim vodilom." - -#~ msgid "Cannot start VPN connection '%s'" -#~ msgstr "Ni mogoče začeti povezave VPN '%s'" - -#~ msgid "" -#~ "Could not find the authentication dialog for VPN connection type '%s'. " -#~ "Contact your system administrator." -#~ msgstr "" -#~ "Ni mogoče najti pogovornega okna za overitev povezave VPN vrste '%s'. " -#~ "Obrnite se na svojega sistemskega skrbnika." - -#~ msgid "" -#~ "There was a problem launching the authentication dialog for VPN " -#~ "connection type '%s'. Contact your system administrator." +#~ msgid "Requesting a wireless network address for '%s'..." #~ msgstr "" -#~ "Med zaganjanjem pogovornega okna za overovitev povezave VPN vrste '%s' je " -#~ "prišlo do težave. Obrnite se na svojega sistemskega skrbnika." +#~ "Pošiljanje zahteve za pridobitev brezžičnega omrežnega naslova '%s' ..." -#~ msgid "Country" -#~ msgstr "Država" +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "Dejavna brezžična omrežna povezava '%s'" -#~ msgid "Create…" -#~ msgstr "Ustvari…" - -#~ msgid "" -#~ "The connection editor could not find some required resources (the " -#~ "NetworkManager applet .ui file was not found)." -#~ msgstr "" -#~ "Urejevalnik povezav ni našel zahtevanih sredstev (datoteke .ui apleta " -#~ "upravljalnika omrežij ni mogoče najti). " - -#~ msgid "" -#~ "Active Network Connections" -#~ msgstr "" -#~ "Dejavne omrežne povezave" +#~ msgid "Wired" +#~ msgstr "Žično" -#~ msgid "" -#~ "Automatic\n" -#~ "Version 0\n" -#~ "Version 1" -#~ msgstr "" -#~ "Samodejno\n" -#~ "Različica 0\n" -#~ "Različica 1" - -#~ msgid "Addresses" -#~ msgstr "Naslovi" - -#~ msgid "" -#~ "Automatic\n" -#~ "Automatic with manual DNS settings\n" -#~ "Manual\n" -#~ "Link-Local\n" -#~ "Shared to other computers" -#~ msgstr "" -#~ "Samodejno\n" -#~ "Samodejno z ročnimi nastavitvami DNS\n" -#~ "Ročno\n" -#~ "Krajevna povezava\n" -#~ "Souporaba z ostalimi računalniki" - -#~ msgid "Basic" -#~ msgstr "Osnovno" - -#~ msgid "" -#~ "Any\n" -#~ "3G (UMTS/HSPA)\n" -#~ "2G (GPRS/EDGE)\n" -#~ "Prefer 3G (UMTS/HSPA)\n" -#~ "Prefer 2G (GPRS/EDGE)" -#~ msgstr "" -#~ "Katerikoli\n" -#~ "3G (UMTS/HSPA)\n" -#~ "2G (GPRS/EDGE)\n" -#~ "prednostno 3G (UMTS/HSPA)\n" -#~ "prednostno 2G (GPRS/EDGE)" - -#~ msgid "Authentication" -#~ msgstr "Overitev" - -#~ msgid "Echo" -#~ msgstr "Odmev" - -#~ msgid "" -#~ "Automatic\n" -#~ "10 Mb/s\n" -#~ "100 Mb/s\n" -#~ "1 Gb/s\n" -#~ "10 Gb/s" -#~ msgstr "" -#~ "Samodejno\n" -#~ "10 Mb/s\n" -#~ "100 Mb/s\n" -#~ "1 Gb/s\n" -#~ "10 Gb/s" - -#~ msgid "" -#~ "Automatic\n" -#~ "Twisted Pair (TP)\n" -#~ "Attachment Unit Interface (AUI)\n" -#~ "BNC\n" -#~ "Media Independent Interface (MII)" -#~ msgstr "" -#~ "Samodejno\n" -#~ "Twisted Pair (TP)\n" -#~ "Attachment Unit Interface (AUI)\n" -#~ "BNC\n" -#~ "Media Independent Interface (MII)" - -#~ msgid "" -#~ "Automatic\n" -#~ "A (5 GHz)\n" -#~ "B/G (2.4 GHz)" -#~ msgstr "" -#~ "Samodejno\n" -#~ "A (5 GHz)\n" -#~ "B/G (2.4 GHz)" +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "Varnostnega uporabniškega vmesnika WiFi ni mogoče naložiti." -#~ msgid "translator-credits" -#~ msgstr "" -#~ "Matic Žgur \n" -#~ "Andrej Žnidaršič " +#~ msgid "Wireless" +#~ msgstr "Brezžično" -#~ msgid "Apply" -#~ msgstr "Uveljavi" +#~ msgid "Wireless connection %d" +#~ msgstr "Brezžična povezava %d" -#~ msgid "Apply..." -#~ msgstr "Uveljavi ..." +#~ msgid "_Import" +#~ msgstr "_Uvozi" -#~ msgid "PUK code required" -#~ msgstr "Zahtevana koda PUK" +#~ msgid "Could not edit imported connection" +#~ msgstr "Ni mogoče urejati uvožene povezave" -#~ msgid "PUK code is needed for the mobile broadband device" -#~ msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PUK." -#~ msgctxt "No wired security used" +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "Vstavek VPN ni na voljo. Namestite enega za omogočitev tega gumba." -#~ msgid "None" -#~ msgstr "Brez" -#~ msgctxt "Unknown/unrecognized wired or wifi security" +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "Program ne ve kako urediti '%s' povezav" -#~ msgid "Unknown" -#~ msgstr "Neznano" +#~ msgid "could not find the Bluetooth device." +#~ msgstr "Bluetooth naprave ni mogoče najti." -#~ msgid "Show it" -#~ msgstr "Pokaži jo" +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "" +#~ "Nastavitev Bluetooth ni mogoča (ustvarjanje posredniškega strežnika D-Bus " +#~ "je spodletelo)." diff -Nru network-manager-applet-0.9.4.1/po/sr.po network-manager-applet-0.9.6.2+git201210311320.2620/po/sr.po --- network-manager-applet-0.9.4.1/po/sr.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/sr.po 2012-10-31 13:20:57.000000000 +0000 @@ -9,8 +9,8 @@ "Project-Id-Version: NetworkManager\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=Networ" "kManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-09 22:26+0000\n" -"PO-Revision-Date: 2012-03-10 23:49+0200\n" +"POT-Creation-Date: 2012-08-09 18:11+0000\n" +"PO-Revision-Date: 2012-08-17 18:28+0200\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian \n" "Language: sr\n" @@ -29,437 +29,833 @@ msgid "Manage your network connections" msgstr "Управљајте вашим везама мреже" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Везе са мрежом" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Управљајте и измените подешавања ваших мрежних веза" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Искључивање обавештења о повезивању" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" -"Укључите ову опцију како би онемогућили обавештење при повезивању на мрежу." +"Укључите ову опцију да искључите обавештења када се повезујете на мрежу." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Искључивање обавештења о прекиду везе" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "" +"Укључите ову опцију да искључите обавештења када прекидате везу са мрежом." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Искључивање ВПН обавештења" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." msgstr "" -"Укључите ову опцију како би онемогућили обавештење при прекиду везе са " -"мрежом." +"Укључите ову опцију да искључите обавештења када се повезујете на ВПН или " +"када прекидате везу са њим." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Искључи обавештавања о доступним мрежама" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#| msgid "" +#| "Set this to true to disable notifications when wireless networks are " +#| "available." msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when Wi-Fi networks are available." msgstr "" -"Укључите ову опцију како би онемогућили обавештење о доступности бежичних " -"мрежа." +"Укључите ову опцију да искључите обавештења о доступности бежичних мрежа." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Печат" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "Ово одређује да ли треба превести подешавања на ново издање." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Онемогући образовање бежичне мреже" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" -"Укључите ову опцију како би онемогућили образовање адхок мрежа из Управника " -"мрежама." +"Укључите ову опцију да искључите образовање адхок мрежа из Управника мрежама." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Везе са мрежом" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Занемарује ЦА уверење" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Управљајте и измените подешавања ваших мрежних веза" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Укључите ову опцију да искључите упозорења о ЦА уверењима у ЕАП потврђивању " +"идентитета." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Доступно" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Укључите ову опцију да искључите упозорења о ЦА уверењима у другој фази ЕАП " +"потврђивања идентитета." -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Повезани сте на „%s“." +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +#| msgid "Wired 802.1X authentication" +msgid "802.1X authentication" +msgstr "Потврђивање идентитета за 802.1X везу" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Веза успостављена" +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_Име мреже:" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Повезани сте мобилном широкопојасном мрежом." +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Нисам успео да додам/активирам везу" + +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Непозната грешка" + +#: ../src/applet.c:493 ../src/applet.c:563 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Неуспело повезивање" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Неуспело прекидање везе уређаја" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Неуспело прекидање везе" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "Неуспело активирање везе" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:924 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "Не приказуј више ову поруку" + +#: ../src/applet.c:1013 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Припремам мобилну, широкопојасну везу „%s“..." +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"Не могу да успоставим ВПН везу „%s“ због прекида везе у мрежи." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1016 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Подешавам мобилну, широкопојасну везу „%s“..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"Не могу да успоставим ВПН везу „%s“ због неочекиваног искључења ВПН сервиса." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1019 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "Потребна је пријава корисника за повезивање у мобилној мрежи „%s“..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"Не могу да успоставим ВПН везу „%s“ јер је ВПН сервис послао неодговарајућа " +"подешавања." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:1022 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Захтевам мрежну адресу за „%s“..." +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"Не могу да успоставим ВПН везу „%s“ јер је истекло време за повезивање." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1025 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "Повезани сте преко мобилне широкопојасне везе „%s“" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"Не могу да успоставим ВПН везу „%s“ јер ВПН сервис није покренут на време." -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "ЦДМА" +#: ../src/applet.c:1028 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"Не могу да успоставим ВПН везу „%s“ зато што не могу да покренем ВПН сервис." -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet.c:1031 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Мобилна веза (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"Не могу да успоставим ВПН везу „%s“ јер не постоје исправне ВПН лозинке." -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 -msgid "Mobile Broadband" -msgstr "Мобилна" +#: ../src/applet.c:1034 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"Не могу да успоставим ВПН везу „%s“ због неисправних ВПН лозинки." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Нова мобилна, широкопојасна веза (ЦДМА)..." +#: ../src/applet.c:1041 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"Не могу да успоставим ВПН везу „%s“." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Сада сте повезани на ЦДМА мрежу." +#: ../src/applet.c:1059 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"Прекинута је ВПН веза „%s“ због прекида везе у мрежи." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1062 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Повезани сте на мобилну широкопојасну везу „%s“: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"Прекинута је ВПН веза „%s“ због искључивања ВПН сервиса." -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "роминг" +#: ../src/applet.c:1068 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"ВПН веза „%s“ је прекинута." -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "ЦДМА мрежа." +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"ВПН веза је успешно успостављена.\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Сада сте регистровани на кућну мрежу." +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "ВПН веза је успешно успостављена.\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Сада сте регистровани на мрежу пребацивања." +#: ../src/applet.c:1102 +msgid "VPN Login Message" +msgstr "Порука за ВПН пријаву" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "ГСМ" +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 +msgid "VPN Connection Failed" +msgstr "Није успело повезивање на ВПН" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Нова мобилна, широкопојасна мрежа..." +#: ../src/applet.c:1173 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Не могу да успоставим ВПН везу „%s“ због немогућности покретања ВПН " +"сервиса.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Повезани сте на ГСМ мрежу." +#: ../src/applet.c:1176 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Не могу да покренем ВПН везу „%s“.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "Потребан је ПИН кôд" +#: ../src/applet.c:1496 +msgid "device not ready (firmware missing)" +msgstr "уређај није спреман (недостаје фирмвер)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "Потребан је ПИН код за повезивање мобилног, широкопојасног уређаја" +#: ../src/applet.c:1498 +msgid "device not ready" +msgstr "уређај није спреман" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "ПИН код за СИМ картицу „%s“ на „%s“" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1508 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "веза је прекинута" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "Погрешан ПИН код, контактирајте вашег провајдера." +#: ../src/applet.c:1524 +msgid "Disconnect" +msgstr "Прекини везу" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "Погрешан ПУК код, контактирајте вашег провајдера." +#: ../src/applet.c:1538 +msgid "device not managed" +msgstr "не могу да управљам уређајем" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "Шаљем код за откључавање." +#: ../src/applet.c:1582 +msgid "No network devices available" +msgstr "Није пронађен ниједан мрежни уређај" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "Потребно је откључати СИМ ПИН" +#: ../src/applet.c:1670 +msgid "_VPN Connections" +msgstr "_ВПН везе" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "Потребно је откључати СИМ ПИН" +#: ../src/applet.c:1727 +msgid "_Configure VPN..." +msgstr "По_деси ВПН..." -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "Мобилни широкопојасни уређај „%s“ захтева СИМ ПИН код." +#: ../src/applet.c:1731 +msgid "_Disconnect VPN" +msgstr "_Прекини ВПН везу" -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "ПИН кôд:" +#: ../src/applet.c:1825 +msgid "NetworkManager is not running..." +msgstr "Управљач мрежом није покренут..." -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "Прикажи ПИН кôд" +#: ../src/applet.c:1830 ../src/applet.c:2631 +msgid "Networking disabled" +msgstr "Умрежавање искључено" -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "Потребно је откључати СИМ ПУК" +#. 'Enable Networking' item +#: ../src/applet.c:2051 +msgid "Enable _Networking" +msgstr "Укључи _мрежне услуге" -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "Потребно је откључати СИМ ПУК" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2060 +#| msgid "Enable _Wireless" +msgid "Enable _Wi-Fi" +msgstr "Укључи _бежично мрежење" -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2069 +msgid "Enable _Mobile Broadband" +msgstr "Омогући _мобилне везе" + +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2078 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Омогу_ћи ВиМАХ Мобилну широкопојасну" + +#. Toggle notifications item +#: ../src/applet.c:2089 +msgid "Enable N_otifications" +msgstr "_Прикажи обавештења" + +#. 'Connection Information' item +#: ../src/applet.c:2100 +msgid "Connection _Information" +msgstr "Пода_ци о вези" + +#. 'Edit Connections...' item +#: ../src/applet.c:2110 +msgid "Edit Connections..." +msgstr "Уреди везе..." + +#. Help item +#: ../src/applet.c:2124 +msgid "_Help" +msgstr "По_моћ" + +#. About item +#: ../src/applet.c:2133 +msgid "_About" +msgstr "_О програму" + +#: ../src/applet.c:2310 +msgid "Disconnected" +msgstr "Веза је прекинута" + +#: ../src/applet.c:2311 +msgid "The network connection has been disconnected." +msgstr "Мрежна веза је прекинута." + +#: ../src/applet.c:2494 #, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "Мобилни широкопојасни уређај „%s“ захтева СИМ ПУК кôд." +msgid "Preparing network connection '%s'..." +msgstr "Припремам мрежну везу „%s“..." -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "ПУК кôд:" +#: ../src/applet.c:2497 +#, c-format +msgid "User authentication required for network connection '%s'..." +msgstr "Потребна је пријава корисника за успостављање везе „%s“..." -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "Нови ПИН кôд:" +#: ../src/applet.c:2500 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 +#, c-format +msgid "Requesting a network address for '%s'..." +msgstr "Захтевам мрежну адресу за „%s“..." -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "Поново унесите ПИН кôд:" +#: ../src/applet.c:2503 +#, c-format +msgid "Network connection '%s' active" +msgstr "Повезани сте преко везе „%s“" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "Прикажи ПИН/ПУК кôдове" +#: ../src/applet.c:2586 +#, c-format +msgid "Starting VPN connection '%s'..." +msgstr "Успостављам ВПН везу „%s“..." -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "ГСМ мрежа." +#: ../src/applet.c:2589 +#, c-format +msgid "User authentication required for VPN connection '%s'..." +msgstr "Потребна је пријава корисника за успостављање ВПН везе „%s“..." + +#: ../src/applet.c:2592 +#, c-format +msgid "Requesting a VPN address for '%s'..." +msgstr "Захтевам ВПН мрежну адресу за „%s“..." + +#: ../src/applet.c:2595 +#, c-format +msgid "VPN connection '%s' active" +msgstr "Повезани сте преко ВПН везе „%s“" + +#: ../src/applet.c:2636 +msgid "No network connection" +msgstr "Нема мрежне везе" + +#: ../src/applet.c:3336 +msgid "NetworkManager Applet" +msgstr "Програмче управника мреже" + +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Доступно" + +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "Повезани сте на „%s“." + +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "Веза успостављена" + +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Повезани сте мобилном широкопојасном мрежом." + +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 +#, c-format +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Припремам мобилну, широкопојасну везу „%s“..." + +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 +#, c-format +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Подешавам мобилну, широкопојасну везу „%s“..." + +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 +#, c-format +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "Потребна је пријава корисника за повезивање у мобилној мрежи „%s“..." + +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 +#, c-format +msgid "Mobile broadband connection '%s' active" +msgstr "Повезани сте преко мобилне широкопојасне везе „%s“" + +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:699 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "ЦДМА" + +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 +#, c-format +msgid "Mobile Broadband (%s)" +msgstr "Мобилна веза (%s)" + +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:85 +#: ../src/connection-editor/page-mobile.c:379 +msgid "Mobile Broadband" +msgstr "Мобилна" + +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Нова мобилна широкопојасна (ЦДМА) веза..." + +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Сада сте повезани на ЦДМА мрежу." + +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "Повезани сте на мобилну широкопојасну везу „%s“: (%d%%%s%s)" + +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "роминг" -#: ../src/applet-device-wired.c:62 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "ЦДМА мрежа." + +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "Сада сте регистровани на кућну мрежу." + +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "Сада сте регистровани на мрежу пребацивања." + +#: ../src/applet-device-ethernet.c:62 msgid "Auto Ethernet" msgstr "Аутоматска жичана веза" -#: ../src/applet-device-wired.c:205 +#: ../src/applet-device-ethernet.c:205 #, c-format -msgid "Wired Networks (%s)" +#| msgid "Wired Networks (%s)" +msgid "Ethernet Networks (%s)" msgstr "Жичане мреже (%s)" -#: ../src/applet-device-wired.c:207 +#: ../src/applet-device-ethernet.c:207 #, c-format -msgid "Wired Network (%s)" +#| msgid "Wired Network (%s)" +msgid "Ethernet Network (%s)" msgstr "Жичана мрежа (%s)" -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" +#: ../src/applet-device-ethernet.c:210 +#| msgid "Wired Networks" +msgid "Ethernet Networks" msgstr "Жичане мреже" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" +#: ../src/applet-device-ethernet.c:212 +#| msgid "Wired Network" +msgid "Ethernet Network" msgstr "Жичана мрежа" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 -msgid "disconnected" -msgstr "веза је прекинута" - -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." +#: ../src/applet-device-ethernet.c:274 +#| msgid "You are now connected to the wired network." +msgid "You are now connected to the ethernet network." msgstr "Повезани сте на жичану мрежу." -#: ../src/applet-device-wired.c:300 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "Preparing wired network connection '%s'..." +#| msgid "Preparing wired network connection '%s'..." +msgid "Preparing ethernet network connection '%s'..." msgstr "Припремам везу преко жичане мрежу „%s“..." -#: ../src/applet-device-wired.c:303 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "Configuring wired network connection '%s'..." +#| msgid "Configuring wired network connection '%s'..." +msgid "Configuring ethernet network connection '%s'..." msgstr "Подешавам везу преко жичане мрежу „%s“..." -#: ../src/applet-device-wired.c:306 +#: ../src/applet-device-ethernet.c:306 #, c-format -msgid "User authentication required for wired network connection '%s'..." +#| msgid "User authentication required for wired network connection '%s'..." +msgid "User authentication required for ethernet network connection '%s'..." msgstr "Потребна је пријава корисника за успостављање жичане везе „%s“..." -#: ../src/applet-device-wired.c:309 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "Requesting a wired network address for '%s'..." +#| msgid "Requesting a wired network address for '%s'..." +msgid "Requesting an ethernet network address for '%s'..." msgstr "Захтевам адресу за жичану мрежу „%s“..." -#: ../src/applet-device-wired.c:313 +#: ../src/applet-device-ethernet.c:313 #, c-format -msgid "Wired network connection '%s' active" +#| msgid "Wired network connection '%s' active" +msgid "Ethernet network connection '%s' active" msgstr "Повезани сте преко жичане везе „%s“" -#: ../src/applet-device-wired.c:494 +#: ../src/applet-device-ethernet.c:494 msgid "DSL authentication" -msgstr "ДСЛ пријава" +msgstr "Потврђивање идентитета ДСЛ-а" -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "По_вежи се на скривене бежичне мреже..." +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:702 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "ГСМ" + +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Нова мобилна, широкопојасна мрежа..." + +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "Повезани сте на ГСМ мрежу." + +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "Потребан је ПИН кôд" + +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "Потребан је ПИН код за повезивање мобилног широкопојасног уређаја" + +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "ПИН код за СИМ картицу „%s“ на „%s“" + +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "Погрешан ПИН код, контактирајте вашег провајдера." + +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "Погрешан ПУК код, контактирајте вашег провајдера." + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "Шаљем код за откључавање..." + +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "Потребно је откључати СИМ ПИН" + +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "Потребно је откључати СИМ ПИН" -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "Мобилни широкопојасни уређај „%s“ захтева СИМ ПИН код." + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "ПИН кôд:" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "Прикажи ПИН кôд" + +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "Потребно је откључати СИМ ПУК" + +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "Потребно је откључати СИМ ПУК" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "Мобилни широкопојасни уређај „%s“ захтева СИМ ПУК кôд." + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "ПУК кôд:" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "Нови ПИН кôд:" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "Поново унесите ПИН кôд:" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "Прикажи ПИН/ПУК кôдове" + +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "ГСМ мрежа." + +#: ../src/applet-device-wifi.c:97 +#| msgid "_Connect to Hidden Wireless Network..." +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "Повежи се на _скривену бежичну мрежу..." + +#: ../src/applet-device-wifi.c:148 +#| msgid "Create _New Wireless Network..." +msgid "Create _New Wi-Fi Network..." msgstr "Направи _нову бежичну мрежу..." -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(ништа)" -# bug: no plural forms -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format -msgid "Wireless Networks (%s)" +#| msgid "Wired Networks (%s)" +msgid "Wi-Fi Networks (%s)" msgstr "Бежичне мреже (%s)" -# bug: no plural forms -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format -msgid "Wireless Network (%s)" +#| msgid "Wired Network (%s)" +msgid "Wi-Fi Network (%s)" msgstr "Бежична мрежа (%s)" -# bug: no plural forms -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" +#: ../src/applet-device-wifi.c:794 +#| msgid "Wired Network" +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" msgstr[0] "Бежична мрежа" msgstr[1] "Бежичне мреже" msgstr[2] "Бежичне мреже" -msgstr[3] "Бежична мрежа" +msgstr[3] "Жичана мрежа" -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "Бежична мрежа је онемогућена" +#: ../src/applet-device-wifi.c:827 +#| msgid "WiMAX is disabled" +msgid "Wi-Fi is disabled" +msgstr "Бежична мрежа је искључена" + +#: ../src/applet-device-wifi.c:828 +#| msgid "WiMAX is disabled by hardware switch" +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Бежична мрежа је искључена физичким прекидачем" -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "бежична мрежа је искључена физичким прекидачем" - -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "Још мрежа" # bug: no plural forms -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" +#: ../src/applet-device-wifi.c:1068 +#| msgid "Wireless Networks Available" +msgid "Wi-Fi Networks Available" msgstr "Доступне су бежичне мреже" -#: ../src/applet-device-wifi.c:1082 -msgid "Use the network menu to connect to a wireless network" -msgstr "Користите мени мреже да се повежете на бежичну мрежу" - -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 -msgid "Don't show this message again" -msgstr "Не приказуј више ово прозорче" +#: ../src/applet-device-wifi.c:1069 +#| msgid "Use the network menu to connect to a wireless network" +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Користите изборник мреже да се повежете на бежичну мрежу" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1263 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Повезани сте са бежичном мрежом „%s“." +#| msgid "You are now connected to the wireless network '%s'." +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Повезани сте на бежичну мрежу „%s“." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1294 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Припремам везу преко бежичне мреже „%s“..." +#| msgid "Preparing network connection '%s'..." +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Припремам бежичну мрежну везу „%s“..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1297 #, c-format -msgid "Configuring wireless network connection '%s'..." +#| msgid "Configuring wired network connection '%s'..." +msgid "Configuring Wi-Fi network connection '%s'..." msgstr "Подешавам везу преко бежичне мреже „%s“..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1300 #, c-format -msgid "User authentication required for wireless network '%s'..." +#| msgid "User authentication required for wireless network '%s'..." +msgid "User authentication required for Wi-Fi network '%s'..." msgstr "Потребна је пријава корисника за успостављање бежичне везе „%s“..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1303 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Захтевам адресу за бежичну мрежу „%s“..." +#| msgid "Requesting a network address for '%s'..." +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Захтевам адресу бежичне мреже за „%s“..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1324 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" +#| msgid "Wireless network connection '%s' active: %s (%d%%)" +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" msgstr "Повезани сте преко бежичне везе „%s“ : %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1329 #, c-format -msgid "Wireless network connection '%s' active" +#| msgid "Wired network connection '%s' active" +msgid "Wi-Fi network connection '%s' active" msgstr "Повезани сте преко бежичне везе „%s“" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Нисам успео да активирам везу" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Нисам успео да додам нову везу" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" -msgstr "ВиМАХ Мобилна широкопојасна (%s)" +msgstr "ВиМАКС Мобилна широкопојасна (%s)" #: ../src/applet-device-wimax.c:233 msgid "WiMAX Mobile Broadband" -msgstr "ВиМАХ Мобилна широкопојасна" +msgstr "ВиМАКС Мобилна широкопојасна" #: ../src/applet-device-wimax.c:259 msgid "WiMAX is disabled" @@ -467,20 +863,20 @@ #: ../src/applet-device-wimax.c:260 msgid "WiMAX is disabled by hardware switch" -msgstr "ВиМАХ је искључена физичким прекидачем" +msgstr "ВиМАКС је искључена физичким прекидачем" #: ../src/applet-device-wimax.c:428 msgid "You are now connected to the WiMAX network." -msgstr "Сада сте повезани на ВиМАХ мрежу." +msgstr "Сада сте повезани на ВиМАКС мрежу." #: ../src/applet-dialogs.c:57 msgid "Error displaying connection information:" msgstr "Грешка при приказивању података о вези:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "ЛЕАП" @@ -488,545 +884,228 @@ msgid "Dynamic WEP" msgstr "Динамички ВЕП" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "ВПА/ВПА2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "ВЕП" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 msgctxt "Wifi/wired security" msgid "None" msgstr "Ништа" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-dialogs.c:277 #, c-format -#| msgid "1 (Default)" msgid "%s (default)" msgstr "%s (основно)" -#: ../src/applet-dialogs.c:347 ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:349 ../src/applet-dialogs.c:487 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Непознато" -#: ../src/applet-dialogs.c:362 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:364 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "непознато" -#: ../src/applet-dialogs.c:376 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "непознато" -#: ../src/applet-dialogs.c:411 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Жичана мрежа (%s)" -#: ../src/applet-dialogs.c:414 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 бежична (%s)" -#: ../src/applet-dialogs.c:421 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "ГСМ (%s)" -#: ../src/applet-dialogs.c:423 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "ЦДМА (%s)" -#: ../src/applet-dialogs.c:427 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" -msgstr "ВиМАХ (%s)" +msgstr "ВиМАКС (%s)" #. --- General --- -#: ../src/applet-dialogs.c:433 ../src/applet-dialogs.c:792 -msgid "General" -msgstr "Опште" - -#: ../src/applet-dialogs.c:437 -msgid "Interface:" -msgstr "Уређај:" - -#: ../src/applet-dialogs.c:453 -msgid "Hardware Address:" -msgstr "Хардверска адреса:" - -#. Driver -#: ../src/applet-dialogs.c:461 -msgid "Driver:" -msgstr "Драјвер:" - -#: ../src/applet-dialogs.c:490 -msgid "Speed:" -msgstr "Брзина:" - -#: ../src/applet-dialogs.c:500 -msgid "Security:" -msgstr "Безбедност:" - -#: ../src/applet-dialogs.c:513 -msgid "CINR:" -msgstr "ЦИНР:" - -#: ../src/applet-dialogs.c:526 -msgid "BSID:" -msgstr "БСИД:" - -#. --- IPv4 --- -#: ../src/applet-dialogs.c:543 -msgid "IPv4" -msgstr "ИПв4" - -#. Address -#: ../src/applet-dialogs.c:554 ../src/applet-dialogs.c:661 -msgid "IP Address:" -msgstr "ИП адреса:" - -#: ../src/applet-dialogs.c:556 ../src/applet-dialogs.c:572 -msgctxt "Address" -msgid "Unknown" -msgstr "Непозната" - -#: ../src/applet-dialogs.c:570 -msgid "Broadcast Address:" -msgstr "Адреса за емитовање:" - -#. Prefix -#: ../src/applet-dialogs.c:579 -msgid "Subnet Mask:" -msgstr "Мрежна маска:" - -#: ../src/applet-dialogs.c:581 -msgctxt "Subnet Mask" -msgid "Unknown" -msgstr "Непозната" - -#: ../src/applet-dialogs.c:589 ../src/applet-dialogs.c:676 -msgid "Default Route:" -msgstr "Подразумевана рута:" - -#: ../src/applet-dialogs.c:601 -msgid "Primary DNS:" -msgstr "Примарни ДНС:" - -#: ../src/applet-dialogs.c:610 -msgid "Secondary DNS:" -msgstr "Секундарни ДНС:" - -#: ../src/applet-dialogs.c:620 -msgid "Ternary DNS:" -msgstr "Терцијарни ДНС:" - -#. --- IPv6 --- -#: ../src/applet-dialogs.c:635 -msgid "IPv6" -msgstr "ИПв6" - -#: ../src/applet-dialogs.c:644 -msgid "Ignored" -msgstr "Занемарено" - -#: ../src/applet-dialogs.c:797 -msgid "VPN Type:" -msgstr "ВПН врста:" - -#: ../src/applet-dialogs.c:804 -msgid "VPN Gateway:" -msgstr "ВПН мрежни пролаз:" - -#: ../src/applet-dialogs.c:810 -msgid "VPN Username:" -msgstr "ВПН корисничко име:" - -#: ../src/applet-dialogs.c:816 -msgid "VPN Banner:" -msgstr "ВПН банер:" - -#: ../src/applet-dialogs.c:822 -msgid "Base Connection:" -msgstr "Веза основе:" - -#: ../src/applet-dialogs.c:824 -msgid "Unknown" -msgstr "Непознато" - -#. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 -msgid "No valid active connections found!" -msgstr "Нема исправних, покренутих веза!" - -#: ../src/applet-dialogs.c:940 -msgid "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"and many other community contributors and translators" -msgstr "" -"Ауторска права © 2004-2010 Red Hat, Inc.\n" -"Ауторска права © 2005-2008 Novell, Inc.\n" -"и многи други сарадници заједнице и преводиоци" - -#: ../src/applet-dialogs.c:943 -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "Програмче обавештајне зоне за управљање мрежним уређајима и везама." - -#: ../src/applet-dialogs.c:945 -msgid "NetworkManager Website" -msgstr "Веб страница Управника мрежом" - -#: ../src/applet-dialogs.c:960 -msgid "Missing resources" -msgstr "Недостају ресурси" - -#: ../src/applet-dialogs.c:985 -msgid "Mobile broadband network password" -msgstr "Лозинка мобилне, широкопојасне мреже" - -#: ../src/applet-dialogs.c:994 -#, c-format -msgid "A password is required to connect to '%s'." -msgstr "Потребна је лозинка за повезивање на „%s“." - -#: ../src/applet-dialogs.c:1013 -msgid "Password:" -msgstr "Лозинка:" - -#: ../src/applet.c:995 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"Не могу да успоставим ВПН везу „%s“ због прекида везе у мрежи." - -#: ../src/applet.c:998 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"Не могу да успоставим ВПН везу „%s“ због неочекиваног искључења ВПН сервиса." - -#: ../src/applet.c:1001 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"Не могу да успоставим ВПН везу „%s“ јер је ВПН сервис послао неодговарајућа " -"подешавања." - -#: ../src/applet.c:1004 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"Не могу да успоставим ВПН везу „%s“ јер је истекло време за повезивање." - -#: ../src/applet.c:1007 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"Не могу да успоставим ВПН везу „%s“ јер ВПН сервис није покренут на време." - -#: ../src/applet.c:1010 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"Не могу да успоставим ВПН везу „%s“ зато што не могу да покренем ВПН сервис." - -#: ../src/applet.c:1013 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"Не могу да успоставим ВПН везу „%s“ јер не постоје исправне ВПН лозинке." - -#: ../src/applet.c:1016 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"Не могу да успоставим ВПН везу „%s“ због неисправних ВПН лозинки." - -#: ../src/applet.c:1023 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"Не могу да успоставим ВПН везу „%s“" - -#: ../src/applet.c:1041 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"Прекинута је ВПН веза „%s“ због прекида везе у мрежи." - -#: ../src/applet.c:1044 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"Прекинута је ВПН веза „%s“ због искључивања ВПН сервиса." - -#: ../src/applet.c:1050 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"ВПН веза „%s“ је прекинута." - -#: ../src/applet.c:1084 -msgid "VPN Login Message" -msgstr "Порука за ВПН пријаву" - -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 -msgid "VPN Connection Failed" -msgstr "Није успело повезивање на ВПН" - -#: ../src/applet.c:1155 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Не могу да успоставим ВПН везу „%s“ због немогућности покретања ВПН " -"сервиса.\n" -"\n" -"%s" - -#: ../src/applet.c:1158 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Не могу да покренем ВПН везу „%s“.\n" -"\n" -"%s" - -#: ../src/applet.c:1478 -msgid "device not ready (firmware missing)" -msgstr "уређај није спреман (недостаје фирмвер)" - -#: ../src/applet.c:1480 -msgid "device not ready" -msgstr "уређај није спреман" - -#: ../src/applet.c:1506 -msgid "Disconnect" -msgstr "Прекини везу" - -#: ../src/applet.c:1520 -msgid "device not managed" -msgstr "не могу да управљам уређајем" - -#: ../src/applet.c:1564 -msgid "No network devices available" -msgstr "Није пронађен ниједан мрежни уређај" +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "Опште" -#: ../src/applet.c:1652 -msgid "_VPN Connections" -msgstr "_ВПН везе" +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "Уређај:" -#: ../src/applet.c:1709 -msgid "_Configure VPN..." -msgstr "По_деси ВПН..." +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "Хардверска адреса:" -#: ../src/applet.c:1713 -msgid "_Disconnect VPN" -msgstr "_Прекини ВПН везу" +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "Драјвер:" -#: ../src/applet.c:1811 -msgid "NetworkManager is not running..." -msgstr "Управљач мрежом није покренут..." +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "Брзина:" -#: ../src/applet.c:1816 ../src/applet.c:2609 -msgid "Networking disabled" -msgstr "Умрежавање искључено" +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "Безбедност:" -#. 'Enable Networking' item -#: ../src/applet.c:2037 -msgid "Enable _Networking" -msgstr "Укључи _мрежне услуге" +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "ЦИНР:" -#. 'Enable Wireless' item -#: ../src/applet.c:2046 -msgid "Enable _Wireless" -msgstr "Укључи _бежично мрежење" +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "БСИД:" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 -msgid "Enable _Mobile Broadband" -msgstr "Омогући _мобилне везе" +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "ИПв4" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Омогу_ћи ВиМАХ Мобилну широкопојасну" +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 +msgid "IP Address:" +msgstr "ИП адреса:" -#. Toggle notifications item -#: ../src/applet.c:2075 -msgid "Enable N_otifications" -msgstr "_Прикажи обавештења" +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "Непозната" -#. 'Connection Information' item -#: ../src/applet.c:2086 -msgid "Connection _Information" -msgstr "Пода_ци о вези" +#: ../src/applet-dialogs.c:569 +msgid "Broadcast Address:" +msgstr "Адреса за емитовање:" -#. 'Edit Connections...' item -#: ../src/applet.c:2096 -msgid "Edit Connections..." -msgstr "Уреди везе..." +#. Prefix +#: ../src/applet-dialogs.c:578 +msgid "Subnet Mask:" +msgstr "Мрежна маска:" -#. Help item -#: ../src/applet.c:2110 -msgid "_Help" -msgstr "_Помоћ" +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Непозната" -#. About item -#: ../src/applet.c:2119 -msgid "_About" -msgstr "_О програму" +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 +msgid "Default Route:" +msgstr "Подразумевана рута:" -#: ../src/applet.c:2296 -msgid "Disconnected" -msgstr "Веза је прекинута" +#: ../src/applet-dialogs.c:600 +msgid "Primary DNS:" +msgstr "Примарни ДНС:" -#: ../src/applet.c:2297 -msgid "The network connection has been disconnected." -msgstr "Мрежна веза је прекинута." +#: ../src/applet-dialogs.c:609 +msgid "Secondary DNS:" +msgstr "Секундарни ДНС:" -#: ../src/applet.c:2478 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Припремам мрежну везу „%s“..." +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "Терцијарни ДНС:" -#: ../src/applet.c:2481 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Потребна је пријава корисника за успостављање везе „%s“..." +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "ИПв6" -#: ../src/applet.c:2487 -#, c-format -msgid "Network connection '%s' active" -msgstr "Повезани сте преко везе „%s“" +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "Занемарено" -#: ../src/applet.c:2565 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Успостављам ВПН везу „%s“..." +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "ВПН врста:" -#: ../src/applet.c:2568 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Потребна је пријава корисника за успостављање ВПН везе „%s“..." +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "ВПН мрежни пролаз:" -#: ../src/applet.c:2571 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Захтевам ВПН мрежну адресу за „%s“..." +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "ВПН корисничко име:" -#: ../src/applet.c:2574 -#, c-format -msgid "VPN connection '%s' active" -msgstr "Повезани сте преко ВПН везе „%s“" +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "ВПН банер:" -#: ../src/applet.c:2613 -msgid "No network connection" -msgstr "Нема мрежних веза" +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Веза основе:" -#: ../src/applet.c:3263 -msgid "NetworkManager Applet" -msgstr "Програмче управника мреже" +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "Непознато" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Самостално откључајте овај уређај" +#. Shouldn't really happen but ... +#: ../src/applet-dialogs.c:886 +msgid "No valid active connections found!" +msgstr "Нема исправних, покренутих веза!" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "_Откључај" +#: ../src/applet-dialogs.c:939 +msgid "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" +msgstr "" +"Ауторска права © 2004-2011 Red Hat, Inc.\n" +"Ауторска права © 2005-2008 Novell, Inc.\n" +"и многи други сарадници заједнице и преводиоци" -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "Подаци о вези" +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "Програмче обавештајне зоне за управљање мрежним уређајима и везама." -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "Активне везе мреже" +#: ../src/applet-dialogs.c:944 +msgid "NetworkManager Website" +msgstr "Веб страница Управника мрежом" -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Жичана 802.1X пријава" +#: ../src/applet-dialogs.c:959 +msgid "Missing resources" +msgstr "Недостају ресурси" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "_Име мреже:" +#: ../src/applet-dialogs.c:984 +msgid "Mobile broadband network password" +msgstr "Лозинка мобилне широкопојасне мреже" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "аутоматски" +#: ../src/applet-dialogs.c:993 +#, c-format +msgid "A password is required to connect to '%s'." +msgstr "Потребна је лозинка за повезивање на „%s“." -#: ../src/connection-editor/ce-page.c:310 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "Не могу да ажурурам лозинке везе због непознате грешке." +#: ../src/applet-dialogs.c:1012 +msgid "Password:" +msgstr "Лозинка:" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 @@ -1057,13 +1136,52 @@ msgstr "" "Уколико је укључено, ова веза никада неће бити у коришћена као подразумевана." +# bug: translatable, really? +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "Изаберите врсту везе" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"Изаберите врсту ВПН везе коју желите да направите.\n" +"\n" +"Ако правите ВПН везу, а иста се не појављује на списку, можда немате " +"инсталиран исправан ВПН прикључак." + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Направи…" + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "аутоматски" + +#: ../src/connection-editor/ce-page.c:288 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "Не могу да ажурурам лозинке везе због непознате грешке." + #: ../src/connection-editor/ce-page-dsl.ui.h:1 #: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 #: ../src/wireless-security/eap-method-simple.ui.h:1 #: ../src/wireless-security/ws-leap.ui.h:1 msgid "_Username:" -msgstr "Кори_сничко име:" +msgstr "_Корисничко име:" #: ../src/connection-editor/ce-page-dsl.ui.h:2 msgid "_Service:" @@ -1078,23 +1196,119 @@ msgid "Sho_w password" msgstr "Прикажи _лозинку" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:9 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "_Password:" -msgstr "_Лозинка:" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_Лозинка:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "Самостално" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Уплетени пар (ТП)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Сучеље јединице прикачињања (АУИ)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "БНЦ" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Сучеље независног медија (МИИ)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 MB/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 MB/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 GB/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 GB/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Порт:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Брзина:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Пуни _дуплекс" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "_Самоуговарање" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "_МАК адреса уређаја:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "_Клонирана МАК адреса:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"Унета МАК адреса се користи као адреса мрежног уређаја. Ова могућност се " +"назива МАК клонирање или спуфинг. Пример: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_МТУ:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "бајта" -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -msgid "Automatic" -msgstr "Аутоматски" +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "Режим _преноса:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Датаграм" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "Повезан" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 @@ -1155,11 +1369,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Домени _претраге:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_ДНС сервери:" @@ -1260,7 +1478,7 @@ #: ../src/connection-editor/ce-page-mobile.ui.h:17 msgid "Sho_w passwords" -msgstr "Прика_жи лозинке" +msgstr "Прикажи _лозинке" #: ../src/connection-editor/ce-page-ppp.ui.h:1 msgid "Authentication" @@ -1276,7 +1494,7 @@ #: ../src/connection-editor/ce-page-ppp.ui.h:4 msgid "Compression" -msgstr "Компресија" +msgstr "Сажимање" #: ../src/connection-editor/ce-page-ppp.ui.h:5 msgid "_Use point-to-point encryption (MPPE)" @@ -1296,7 +1514,7 @@ #: ../src/connection-editor/ce-page-ppp.ui.h:9 msgid "Allow _Deflate data compression" -msgstr "Дозволи „_Deflate“ паковање података" +msgstr "Дозволи _Дефлејт паковање података" #: ../src/connection-editor/ce-page-ppp.ui.h:10 msgid "Use TCP _header compression" @@ -1310,153 +1528,78 @@ msgid "Send PPP _echo packets" msgstr "Шаљи ППП _ехо пакете" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "Уплетени пар (ТП)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "Сучеље јединице прикачињања (АУИ)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "БНЦ" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "Сучеље независног медија (МИИ)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 MB/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 MB/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 GB/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "_Порт:" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "_Брзина:" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "Пуни _дуплекс" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "_Самоуговарање" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "_МАК адреса уређаја:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "C_loned MAC address:" -msgstr "_Клонирана МАК адреса:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"Унета МАК адреса се користи као адреса мрежног уређаја. Ова могућност се " -"назива МАК клонирање или спуфинг. Пример: 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "_MTU:" -msgstr "_МТУ:" - -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "бајтова" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "Б_езбедност:" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Инфраструктурно" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "Ад-хок" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "mW" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "_Јачина преноса:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "_Проток:" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +#| msgid "" +#| "This option locks this connection to the wireless access point (AP) " +#| "specified by the BSSID entered here. Example: 00:11:22:33:44:55" msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"Ова опција додељује везу бежичној приступној тачки (АП) која је одређен " -"БССИД-ом. Нпр: 00:11:22:33:44:55" +"Ова опција додељује ову везу тачки бежичног приступа (АП) која је наведена " +"овде унетим БССИД-ом. Нпр: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_БССИД:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "_Канал:" # Ваљда се односи на опсег, а? # ~Милош -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "_Опсег:" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "_Режим:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "СС_ИД:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "Б_езбедност:" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" -msgstr "Дозвољени начини потврђивања идентитета:" +msgstr "Дозвољени начини потврђивања идентитета" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 msgid "_EAP" @@ -1506,117 +1649,381 @@ "methods. If connections fail, try disabling support for some methods." msgstr "" "У већини случајева, ППП сервери добављача ће подржати све начине потврђивања " -"идентитета. Ако веза не успе, покушајте да искључите подршку за неке начине." +"идентитета. Ако веза не успе, покушајте да искључите подршку за неке начине." -# bug: translatable, really? -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Адреса" + +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Мрежна маска" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Мрежни пролаз" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Метрички" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Префикс" + +#: ../src/connection-editor/new-connection.c:75 +#: ../src/connection-editor/page-ethernet.c:273 +#| msgid "Auto Ethernet" +msgid "Ethernet" +msgstr "Жичана веза" + +#: ../src/connection-editor/new-connection.c:80 +#: ../src/connection-editor/page-wifi.c:462 +msgid "Wi-Fi" +msgstr "Бежична" + +#: ../src/connection-editor/new-connection.c:90 +#: ../src/connection-editor/page-wimax.c:157 ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "ВиМАКС" + +#: ../src/connection-editor/new-connection.c:95 +#: ../src/connection-editor/page-dsl.c:139 +msgid "DSL" +msgstr "ДСЛ" + +#: ../src/connection-editor/new-connection.c:100 +#: ../src/connection-editor/page-infiniband.c:189 +msgid "InfiniBand" +msgstr "Инфини банд" + +#: ../src/connection-editor/new-connection.c:112 +#: ../src/connection-editor/page-vpn.c:111 +msgid "VPN" +msgstr "ВПН" + +#: ../src/connection-editor/new-connection.c:245 +msgid "Import a saved VPN configuration..." +msgstr "Увези сачувна ВПН подешавања..." + +#: ../src/connection-editor/nm-connection-editor.c:106 +#, c-format +msgid "Editing %s" +msgstr "Уређујем %s" + +#: ../src/connection-editor/nm-connection-editor.c:110 +msgid "Editing un-named connection" +msgstr "Уређујем неименовану везу" + +#: ../src/connection-editor/nm-connection-editor.c:297 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"Програм за уређивање веза не може да пронађе неке од потребних ресурса (није " +"нађена „.ui“ датотека)." + +#: ../src/connection-editor/nm-connection-editor.c:401 +msgid "Error creating connection editor dialog." +msgstr "Грешка у образовању прозорчета за уређивање веза." + +#: ../src/connection-editor/nm-connection-editor.c:413 +msgid "_Save" +msgstr "_Сачувај" + +#: ../src/connection-editor/nm-connection-editor.c:414 +msgid "Save any changes made to this connection." +msgstr "Сачувај све промене у овој вези." + +#: ../src/connection-editor/nm-connection-editor.c:415 +msgid "_Save..." +msgstr "_Сачувај..." + +#: ../src/connection-editor/nm-connection-editor.c:416 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "Пријавите се како би сачували ову везу за све кориснике рачунара." + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "Име _везе:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "_Сам се повежи" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "_Доступно свим корисницима" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "_Извези..." + +#: ../src/connection-editor/nm-connection-list.c:169 +msgid "never" +msgstr "никад" + +#: ../src/connection-editor/nm-connection-list.c:180 +#: ../src/connection-editor/nm-connection-list.c:191 +msgid "now" +msgstr "сада" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "пре %d минут" +msgstr[1] "пре %d минута" +msgstr[2] "пре %d минута" +msgstr[3] "пре %d минут" + +#: ../src/connection-editor/nm-connection-list.c:202 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "пре %d сат" +msgstr[1] "пре %d сата" +msgstr[2] "пре %d сати" +msgstr[3] "пре %d сат" + +#: ../src/connection-editor/nm-connection-list.c:214 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "пре %d дан" +msgstr[1] "пре %d дана" +msgstr[2] "пре %d дана" +msgstr[3] "пре %d дан" + +#: ../src/connection-editor/nm-connection-list.c:220 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "пре %d месец" +msgstr[1] "пре %d месеца" +msgstr[2] "пре %d месеци" +msgstr[3] "пре %d месец" + +#: ../src/connection-editor/nm-connection-list.c:224 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "пре %d године" +msgstr[1] "пре %d године" +msgstr[2] "пре %d година" +msgstr[3] "пре %d године" + +#: ../src/connection-editor/nm-connection-list.c:443 +msgid "Connection add failed" +msgstr "Није успело додавање везе" + +#: ../src/connection-editor/nm-connection-list.c:472 +msgid "Error saving connection" +msgstr "Грешка приликом чувања везе" + +#: ../src/connection-editor/nm-connection-list.c:473 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Својство „%s“/ „%s“ је неважеће: „%d“" + +#: ../src/connection-editor/nm-connection-list.c:480 +#: ../src/connection-editor/nm-connection-list.c:598 +msgid "An unknown error occurred." +msgstr "Дошло је до непознате грешке." + +#: ../src/connection-editor/nm-connection-list.c:485 +#: ../src/connection-editor/nm-connection-list.c:638 +msgid "Error initializing editor" +msgstr "Грешка у покретању уређивача" + +#: ../src/connection-editor/nm-connection-list.c:503 +#: ../src/connection-editor/nm-connection-list.c:655 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "Не могу да покренем прозорче за измену везе због непознате грешке." + +#: ../src/connection-editor/nm-connection-list.c:512 +msgid "Could not create new connection" +msgstr "Не могу да направим нову везу" + +#: ../src/connection-editor/nm-connection-list.c:524 +msgid "Could not edit new connection" +msgstr "Не могу да уредим нову везу" + +#: ../src/connection-editor/nm-connection-list.c:669 +msgid "Could not edit connection" +msgstr "Не могу да уредим везу" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "Connection delete failed" +msgstr "Не могу да обришем везу" + +#: ../src/connection-editor/nm-connection-list.c:731 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Да ли да заиста обришем везу %s?" + +#: ../src/connection-editor/nm-connection-list.c:972 +msgid "Name" +msgstr "Назив" + +#: ../src/connection-editor/nm-connection-list.c:985 +msgid "Last Used" +msgstr "Употрбљена" + +#. Edit +#: ../src/connection-editor/nm-connection-list.c:1026 +msgid "_Edit" +msgstr "_Уређивање" + +#: ../src/connection-editor/nm-connection-list.c:1027 +msgid "Edit the selected connection" +msgstr "Уређује податке за изабрану везу" + +#: ../src/connection-editor/nm-connection-list.c:1028 +msgid "_Edit..." +msgstr "_Уреди..." + +#: ../src/connection-editor/nm-connection-list.c:1029 +msgid "Authenticate to edit the selected connection" +msgstr "Пријавите се како би изменили изабрану везу" + +#. Delete +#: ../src/connection-editor/nm-connection-list.c:1043 +msgid "_Delete" +msgstr "_Обриши" + +#: ../src/connection-editor/nm-connection-list.c:1044 +msgid "Delete the selected connection" +msgstr "Брише изабрану везу" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Избор врсте ВПН везе" +#: ../src/connection-editor/nm-connection-list.c:1045 +msgid "_Delete..." +msgstr "_Обриши..." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" -"Изаберите врсту ВПН везе коју желите да користите за нове везе. Уколико се " -"врста ВПН везе коју желите да направите не појави на списку, можда немате " -"инсталиран исправан ВПН додатак." +#: ../src/connection-editor/nm-connection-list.c:1046 +msgid "Authenticate to delete the selected connection" +msgstr "Пријавите се како би обрисали изабрану везу" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "Направи…" +#: ../src/connection-editor/nm-connection-list.c:1285 +msgid "Error creating connection" +msgstr "Грешка приликом стварања везе" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Адреса" +#: ../src/connection-editor/nm-connection-list.c:1286 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Не знам како да направим „%s“ везу" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Мрежна маска" +#: ../src/connection-editor/nm-connection-list.c:1341 +msgid "Error editing connection" +msgstr "Грешка приликом уређивања везе" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Мрежни излаз" +#: ../src/connection-editor/nm-connection-list.c:1342 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Нисам нашао везу која има УУИД „%s“" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Метрички" +#: ../src/connection-editor/page-8021x-security.c:119 +msgid "802.1x Security" +msgstr "Безбедност 802.1x" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Префикс" +#: ../src/connection-editor/page-8021x-security.c:121 +#| msgid "Could not load WiFi security user interface." +msgid "Could not load 802.1x Security user interface." +msgstr "Не могу да учитам безбедносно корисничко сучеље за 802.1x." -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 -msgid "DSL" -msgstr "ДСЛ" +#: ../src/connection-editor/page-8021x-security.c:139 +msgid "Use 802.1_X security for this connection" +msgstr "Користи 802.1_X безбедност за ову везу" #: ../src/connection-editor/page-dsl.c:141 msgid "Could not load DSL user interface." msgstr "Не могу да учитам корисничко сучеље за DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:233 #, c-format msgid "DSL connection %d" msgstr "ДСЛ веза „%d“" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Ова опција закључава везу са мрежним уређајем који је одређен трајном МАК " +"адресом. Нпр: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:275 +#| msgid "Could not load wired user interface." +msgid "Could not load ethernet user interface." +msgstr "Не могу да учитам корисничко сучеље за жичану мрежу." + +#: ../src/connection-editor/page-ethernet.c:451 +#, c-format +#| msgid "Wired connection %d" +msgid "Ethernet connection %d" +msgstr "Жичана веза %d" + +#: ../src/connection-editor/page-infiniband.c:192 +msgid "Could not load InfiniBand user interface." +msgstr "Не могу да учитам корисничко сучеље Инфини банда." + +#: ../src/connection-editor/page-infiniband.c:317 +#, c-format +msgid "InfiniBand connection %d" +msgstr "Инфини банд веза %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" -msgstr "Аутоматски (ВПН)" +msgstr "Самостално (ВПН)" #: ../src/connection-editor/page-ip4.c:134 #: ../src/connection-editor/page-ip6.c:133 msgid "Automatic (VPN) addresses only" -msgstr "Аутоматска адреса (ВПН)" +msgstr "Само самосталне (ВПН) адресе" #: ../src/connection-editor/page-ip4.c:137 #: ../src/connection-editor/page-ip6.c:136 msgid "Automatic (PPP)" -msgstr "Аутоматски (ППП)" +msgstr "Самостално (ППП)" #: ../src/connection-editor/page-ip4.c:138 #: ../src/connection-editor/page-ip6.c:137 msgid "Automatic (PPP) addresses only" -msgstr "Аутоматска адреса (ППП)" +msgstr "Само самосталне (ППП) адресе" #: ../src/connection-editor/page-ip4.c:140 #: ../src/connection-editor/page-ip6.c:139 msgid "Automatic (PPPoE)" -msgstr "Аутоматски (ПППоЕ)" +msgstr "Самостално (ПППоЕ)" #: ../src/connection-editor/page-ip4.c:141 #: ../src/connection-editor/page-ip6.c:140 msgid "Automatic (PPPoE) addresses only" -msgstr "Аутоматска адреса (ПППоЕ)" +msgstr "Само самосталне (ПППоЕ) адресе" #: ../src/connection-editor/page-ip4.c:143 msgid "Automatic (DHCP)" -msgstr "Аутоматски (ДХЦП)" +msgstr "Самостално (ДХЦП)" #: ../src/connection-editor/page-ip4.c:144 msgid "Automatic (DHCP) addresses only" -msgstr "Аутоматска адреса (ДХЦП)" +msgstr "Само самосталне (ДХЦП) адресе" #: ../src/connection-editor/page-ip4.c:181 #: ../src/connection-editor/page-ip6.c:204 @@ -1625,18 +2032,28 @@ #: ../src/connection-editor/page-ip4.c:197 msgid "Disabled" -msgstr "Онемогућено" +msgstr "Искључено" + +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Додатни _ДНС сервери:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Додатни домени _претраге:" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Уређујем ИПв4 руте за %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" -msgstr "Подешавања за ИПв4" +msgstr "ИПв4 подешавања" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Не могу да учитам ИПв4 корисничко сучеље." @@ -1645,7 +2062,7 @@ msgstr "Аутоматски, само адресе" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Занемари" @@ -1653,16 +2070,16 @@ msgid "Automatic, DHCP only" msgstr "Аутоматски, само ДХЦП" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Уређујем ИПв6 руте за %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "ИПв6 подешавања" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Не могу да учитам ИПв6 корисничко сучеље." @@ -1675,11 +2092,11 @@ msgstr "Није подржана ова врста мобилне, широкопојасне мреже." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:642 msgid "Select Mobile Broadband Provider Type" msgstr "Изаберите врсту мобилног широкопојасног издавача" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:677 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." @@ -1687,11 +2104,11 @@ "Изаберите технологију коју користи ваш издавач мобилних широкопојасних " "услуга. Уколико нисте сигурни, питајте издавача." -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:682 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "Мој издавач користи _ГСМ технологије (нпр. ГПРС, ЕДГЕ, УМТС, ХСДПА)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:689 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "Мој издавач користи Ц_ДМА технологије (нпр. 1xРТТ, ЕВДО)" @@ -1713,409 +2130,157 @@ #: ../src/wireless-security/eap-method-fast.c:277 #: ../src/wireless-security/eap-method-peap.c:246 #: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "МСЦХАПв2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "МСЦХАП" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "ни један" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Уређујем ППП начине пријаве за %s" - -#: ../src/connection-editor/page-ppp.c:282 -msgid "PPP Settings" -msgstr "ППП подешавања" - -#: ../src/connection-editor/page-ppp.c:284 -msgid "Could not load PPP user interface." -msgstr "Не могу да учитам ППП корисничко сучеље." - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 -msgid "VPN" -msgstr "ВПН" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "Не могу да учитам ВПН корисничко сучеље." - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "Не могу да нађем услугу ВПН додатка за „%s“." - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 -#, c-format -msgid "VPN connection %d" -msgstr "ВПН веза %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"Ова опција закључава везу са мрежним уређајем који је одређен трајном МАК " -"адресом. Нпр: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 -msgid "Wired" -msgstr "Жичана" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "Не могу да учитам корисничко сучеље за жичану мрежу." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Жичана веза %d" - -#: ../src/connection-editor/page-wired-security.c:116 -msgid "802.1x Security" -msgstr "Безбедност 802.1x" - -#: ../src/connection-editor/page-wired-security.c:118 -msgid "Could not load Wired Security security user interface." -msgstr "Не могу да учитам безбедно корисничко сучеље Жичане сигурности." - -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1_X security for this connection" -msgstr "Користи 802.1_X безбедност за ову везу" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "подразумевано" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 -msgid "Wireless" -msgstr "Бежична" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "Не могу да учитам корисничко сучеље за бежичну мрежу." - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Бежична веза %d" - -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "ВЕП 40/128-битни кључ" - -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 -msgid "WEP 128-bit Passphrase" -msgstr "ВЕП 128-битна лозинка" - -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 -msgid "Dynamic WEP (802.1x)" -msgstr "Динамички ВЕП (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 -msgid "WPA & WPA2 Personal" -msgstr "Лични ВПА & ВПА2" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 -msgid "WPA & WPA2 Enterprise" -msgstr "Пословни ВПА & ВПА2" - -#: ../src/connection-editor/page-wireless-security.c:360 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"Не могу да учитам безбедносно корисничко сучеље за бежичну мрежу; недостају " -"ВиФи подешавања." - -#: ../src/connection-editor/page-wireless-security.c:370 -msgid "Wireless Security" -msgstr "Бежична безбедност" - -#: ../src/connection-editor/page-wireless-security.c:372 -msgid "Could not load WiFi security user interface." -msgstr "Не могу да учитам безбедносно корисничко сучеље за бежичну мрежу." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Уређујем %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Уређујем неименовану везу" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"Програм за уређивање веза не може да пронађе неке од потребних ресурса (није " -"нађена „.ui“ датотека)." - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "Грешка у образовању прозорчета за уређивање веза." - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "Са_чувај" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "Сачувај све промене у овој вези." - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "Сачу_вај..." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "Пријавите се како би сачували ову везу за све кориснике рачунара." - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "_Увези" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "_Извези" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "Име _везе:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "_Сам се повежи" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Доступно свим корисницима" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "никад" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "сад" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "пре %d минут" -msgstr[1] "пре %d минута" -msgstr[2] "пре %d минута" -msgstr[3] "пре %d минут" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "пре %d сат" -msgstr[1] "пре %d сата" -msgstr[2] "пре %d сати" -msgstr[3] "пре %d сат" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "пре %d дан" -msgstr[1] "пре %d дана" -msgstr[2] "пре %d дана" -msgstr[3] "пре %d дан" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "пре %d месец" -msgstr[1] "пре %d месеца" -msgstr[2] "пре %d месеци" -msgstr[3] "пре %d месец" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "пре %d године" -msgstr[1] "пре %d године" -msgstr[2] "пре %d година" -msgstr[3] "пре %d године" - -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Није успело додавање везе" - -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Грешка приликом чувања везе" - -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "Својство „%s“/ „%s“ је неважеће: „%d“" - -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Дошло је до непознате грешке." +msgid "MSCHAPv2" +msgstr "МСЦХАПв2" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Грешка у покретању уређивача" +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "МСЦХАП" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "Не могу да покренем прозорче за измену везе због непознате грешке." +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "ништа" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Не могу да направим нову везу" +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Уређујем ППП начине пријаве за %s" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Не могу да уредим нову везу" +#: ../src/connection-editor/page-ppp.c:282 +msgid "PPP Settings" +msgstr "ППП подешавања" -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "Не могу да уредим везу" +#: ../src/connection-editor/page-ppp.c:284 +msgid "Could not load PPP user interface." +msgstr "Не могу да учитам ППП корисничко сучеље." -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Не могу да обришем везу" +#: ../src/connection-editor/page-vpn.c:113 +msgid "Could not load VPN user interface." +msgstr "Не могу да учитам ВПН корисничко сучеље." -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:128 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Да ли да заиста обришем везу %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "Не могу да нађем услугу ВПН прикључка за „%s“." -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 -msgid "Cannot import VPN connection" -msgstr "Не могу да увезем ВПН везу" +#: ../src/connection-editor/page-vpn.c:222 +#: ../src/connection-editor/page-vpn.c:305 +#, c-format +msgid "VPN connection %d" +msgstr "ВПН веза %d" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/page-vpn.c:248 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" "Error: no VPN service type." msgstr "" -"Додатак за ВПН не може да увезе ВПН везе\n" +"Прикључак за ВПН не може да увезе ВПН везе\n" "\n" "Грешка: није изабрана врста ВПН сервиса." -#: ../src/connection-editor/nm-connection-list.c:945 -msgid "Could not edit imported connection" -msgstr "Не могу да изменим увезене везе" +#: ../src/connection-editor/page-vpn.c:273 +msgid "Choose a VPN Connection Type" +msgstr "Избор врсте ВПН везе" -#: ../src/connection-editor/nm-connection-list.c:1126 -msgid "Name" -msgstr "Назив" +#: ../src/connection-editor/page-vpn.c:274 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Изаберите врсту ВПН везе коју желите да користите за нове везе. Уколико се " +"врста ВПН везе коју желите да направите не појави на списку, можда немате " +"инсталиран исправан ВПН прикључак." -#: ../src/connection-editor/nm-connection-list.c:1138 -msgid "Last Used" -msgstr "Употрбљена" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "основно" -#: ../src/connection-editor/nm-connection-list.c:1264 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "" -"Нема доступних ВПН додатака. Молим инсталирајте један да бисте омогућили ово " -"дугме." +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "_Edit" -msgstr "Уре_ђивање" +#: ../src/connection-editor/page-wifi.c:464 +#| msgid "Could not load WiFi user interface." +msgid "Could not load Wi-Fi user interface." +msgstr "Не могу да учитам корисничко сучеље за бежичну мрежу." -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "Edit the selected connection" -msgstr "Уређује податке за изабрану везу" +#: ../src/connection-editor/page-wifi.c:669 +#, c-format +#| msgid "WiMAX connection %d" +msgid "Wi-Fi connection %d" +msgstr "Бежична веза %d" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "_Edit..." -msgstr "Уре_ди..." +#: ../src/connection-editor/page-wifi-security.c:265 +#| msgctxt "Wifi/wired security" +#| msgid "None" +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Ништа" -#: ../src/connection-editor/nm-connection-list.c:1278 -msgid "Authenticate to edit the selected connection" -msgstr "Пријавите се како би изменили изабрану везу" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "ВЕП 40/128-битни кључ" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "_Delete" -msgstr "Из_бриши" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "ВЕП 128-битна лозинка" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "Delete the selected connection" -msgstr "Брише изабрану везу" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "Динамички ВЕП (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "_Delete..." -msgstr "Избри_ши..." +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "Лични ВПА & ВПА2" -#: ../src/connection-editor/nm-connection-list.c:1296 -msgid "Authenticate to delete the selected connection" -msgstr "Пријавите се како би обрисали изабрану везу" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "Пословни ВПА & ВПА2" -#: ../src/connection-editor/nm-connection-list.c:1575 -msgid "Error creating connection" -msgstr "Грешка приликом стварања везе" +#: ../src/connection-editor/page-wifi-security.c:395 +#| msgid "Could not load WiFi security user interface; missing WiFi setting." +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"Не могу да учитам безбедносно корисничко сучеље за бежичну мрежу; недостају " +"подешавања бежичне мреже." -#: ../src/connection-editor/nm-connection-list.c:1576 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Не знам како да направим „%s“ везу" +#: ../src/connection-editor/page-wifi-security.c:405 +#| msgid "Wireless Security" +msgid "Wi-Fi Security" +msgstr "Бежична безбедност" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 -msgid "Error editing connection" -msgstr "Грешка приликом уређивања везе" +#: ../src/connection-editor/page-wifi-security.c:407 +#| msgid "Could not load WiFi security user interface." +msgid "Could not load Wi-Fi security user interface." +msgstr "Не могу да учитам безбедносно корисничко сучеље за бежичну мрежу." -#: ../src/connection-editor/nm-connection-list.c:1632 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Не знам како да уредим „%s“ везу" +#: ../src/connection-editor/page-wimax.c:160 +msgid "Could not load WiMAX user interface." +msgstr "Не могу да учитам корисничко сучеље за ВиМАКС." -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/page-wimax.c:289 #, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Нисам нашао везу која има УУИД „%s“" +msgid "WiMAX connection %d" +msgstr "ВиМАКС веза %d" + +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Не могу да увезем ВПН везу" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2128,29 +2293,29 @@ "\n" "Грешка: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Изаберите датотеку за увоз" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Већ постоји датотека „%s“." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "_Замени" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Да ли желите да замените %s ВПН везом пре чувања?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "Не могу да извезем ВПН везу" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2161,115 +2326,143 @@ "\n" "Грешка: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Извези ВПН везу..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Нисам успео да направим ПАН везу: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"Програмче Управник мреже не може да пронађе неке потребне ресурсе („.ui“ " +"датотека није пронађена)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Ваш телефон је спреман за употребу!" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +#| msgid "" +#| "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"Није могуће подешавање Блутута (нисам успео да се повежем на Д-сабирницу: (%" +"s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s мрежа" +#| msgid "" +#| "Bluetooth configuration not possible (error finding NetworkManager: %s)." +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"Није могуће подешавање Блутута (не могу да нађем Управника мреже: (%s) %s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Употребите мобилни телефон као мрежни уређај (ПАН/НАП)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Приступите Интернету преко мобилног телефона (ДУН)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Грешка: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Нисам успео да направим ДУН везу: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Ваш телефон је спреман за употребу!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Чаробњак за мобилне уређаје је отказан" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Непознат тип телефона (није ГСМ ни ЦДМА)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "непознат модем." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "не могу да се повежем на телефон." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "неочекиван прекид везе са телефоном." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "истекло је време за налажење података о телефону." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Тражим податке о телефону..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "не могу да нађем Блутут уређај." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." msgstr "" "Морате да омогућите подразумевани Блутут уређај пре подешавања Дајл-ап везе." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "Није могуће Блутут подешавање (не могу да се повежем на Д-Бас: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Није могуће Блутут подешавање (не могу да образујем Д-Бас посредника)." +msgid "Failed to create PAN connection: %s" +msgstr "Нисам успео да направим ПАН везу: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "Није могуће Блутут подешавање (не могу да нађем Управника мреже: %s)." +msgid "%s Network" +msgstr "%s мрежа" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Употребите мобилни телефон као мрежни уређај (ПАН/НАП)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Самостално откључајте овај уређај" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Приступите Интернету преко мобилног телефона (ДУН)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_Откључај" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Подаци о вези" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Активне везе мреже" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" -msgstr "Ваша мобилна широкопојасна веза је подешена са следећим параметрима" +msgstr "Ваша мобилна широкопојасна веза је подешена са следећим параметрима:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Ваш уређај:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Ваш повајдер:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Ваш план:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2280,25 +2473,25 @@ "Сада ће бити направљена веза са вашим издавачем мобилних широкопојасних " "услуга на основу подешавања које сте унели. Уколико не успете да се " "повежете на мрежу, проверите поново унета подешавања. За измену подешавања, " -"изаберите „Везе са мрежом“ из изборника Систем >> Поставке" +"изаберите „Везе са мрежом“ из изборника Систем >> Поставке." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Потврдите мобилну широкопојасну везу" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Неизлистано" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "_Изабери мој план:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" -msgstr "И_забрани АПН (Access Point Name) план:" +msgstr "Изабрани _НТП план (Назив тачке приступа):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2311,67 +2504,67 @@ "Уколико нисте сигурни за начин плаћања затражите АПН план од издавача " "Интернет услуге." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Изаберите план наплате" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Мој план није на списку..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "Изабери издавача Интернет услуга из _списка:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" -msgstr "Издавач" +msgstr "Достављач" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Не могу да нађем издавача и желим да га унесем _ручно:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Издавач:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Мој издавач користи ГСМ (ГПРС, ЕДГЕ, УМТС, ХСПА)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Мој издавач користи ЦДМА (1xРТТ, ЕВДО)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Изаберите издавача услуга" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Списак држава или региона:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "Држава или регион" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "Моја земља није на списку" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Изаберите државу или регион вашег достављача услуга" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Инсталиран ГСМ уређај" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Инсталиран ЦДМС уређај" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2379,103 +2572,116 @@ "Овај чаробњак ће вам помоћи да лако подесите мобилну широкопојасну вези са " "3Г мрежом." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Потребни су вам следећи подаци:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "Име издавача широкопојасне услуге" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "Име широкопојасног плана наплате" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" "(у неким случајевима) ваш план широкопојасне наплате за АПН (Назив тачке " "приступа)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Направи везу за _овај мобилни, широкопојасни уређај:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Било који уређај" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Подеси мобилну, широкопојасну везу" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Нова мобилна, широкопојасна веза" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "Нова..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "_Направи" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format +#| msgid "" +#| "Passwords or encryption keys are required to access the wireless network " +#| "'%s'." msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "" -"Потребни су кључеви за лозинке или шифровање како би приступили бежичној " -"мрежи „%s“." +"Потребне су лозинке или кључеви шифровања за приступ бежичној мрежи „%s“." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 -msgid "Wireless Network Authentication Required" -msgstr "Потребна је пријава на бежичну мрежу" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +#| msgid "Wireless Network Authentication Required" +msgid "Wi-Fi Network Authentication Required" +msgstr "Потребно је потврђивање идентитета за бежичну мрежу" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 -msgid "Authentication required by wireless network" -msgstr "Бежичну мрежу захтева пријаву" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +#| msgid "Authentication required by wireless network" +msgid "Authentication required by Wi-Fi network" +msgstr "Бежична мрежа захтева потврђивање идентитета" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 -msgid "Create New Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +#| msgid "Create New Wireless Network" +msgid "Create New Wi-Fi Network" msgstr "Направи нову бежичну мрежу" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "New wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +#| msgid "New wireless network" +msgid "New Wi-Fi network" msgstr "Нова бежична мрежа" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 -msgid "Enter a name for the wireless network you wish to create." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +#| msgid "Enter a name for the wireless network you wish to create." +msgid "Enter a name for the Wi-Fi network you wish to create." msgstr "Унесите назив за нову бежичну мрежу." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 -msgid "Connect to Hidden Wireless Network" -msgstr "Повежи се са скривеним бежичним мрежама" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Hidden wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +#| msgid "Connect to Hidden Wireless Network" +msgid "Connect to Hidden Wi-Fi Network" +msgstr "Повежи се на скривену бежичну мрежу" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +#| msgid "Hidden wireless network" +msgid "Hidden Wi-Fi network" msgstr "Скривена бежична мрежа" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 +#| msgid "" +#| "Enter the name and security details of the hidden wireless network you " +#| "wish to connect to." msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." msgstr "" "Унесите назив и безбедносне податке за скривену бежичну мрежу на коју желите " "да се повежете." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" -msgstr "_Бежична безбедност:" +#| msgid "Wireless _security:" +msgid "Wi-Fi _security:" +msgstr "Бежична _безбедност:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "_Веза:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" +#| msgid "Wireless _adapter:" +msgid "Wi-Fi _adapter:" msgstr "Бежични _уређај:" #: ../src/main.c:73 @@ -2495,8 +2701,8 @@ "It is not intended for command-line interaction but instead runs in the " "GNOME desktop environment." msgstr "" -"Овај програм није намењен за рад у командној линији, већ је део Гном радног " -"окружења." +"Овај програм није намењен за рад у линији наредби, већ је део Гномовог " +"радног окружења." #: ../src/mb-menu-item.c:57 msgid "EVDO" @@ -2526,10 +2732,6 @@ msgid "HSPA" msgstr "ХСПА" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "ВиМАХ" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "није омогућено" @@ -2580,39 +2782,59 @@ msgid "Default" msgstr "Подразумевана" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"Програмче Управник мреже не може да пронађе неке потребне ресурсе („.ui“ " -"датотека није пронађена)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +#| msgid "Base Connection:" +msgid "%s connection" +msgstr "%s веза" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Није изабрано уверење издавача овлашћења" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 +#| msgid "" +#| "Not using a Certificate Authority (CA) certificate can result in " +#| "connections to insecure, rogue wireless networks. Would you like to " +#| "choose a Certificate Authority certificate?" msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" "Уколико не изаберете уверење издавача овлашћења (ЦА) ваша бежична веза може " "бити несигурна или лажна. Да ли желите да изаберете уверење?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Изаберите ЦА уверење" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "ДЕР, ПЕМ, или ПКЦС#12 лични кључеви (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "ДЕР или ПЕМ уверења (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "ГТЦ" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Изабери ПАЦ датотеку..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "ПАЦ датотеке (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Све датотеке" + #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Анонимно" @@ -2646,25 +2868,8 @@ msgid "Allow automatic PAC pro_visioning" msgstr "Дозволи самостално ПАЦ _резервисање" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "ГТЦ" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Изабери ПАЦ датотеку..." - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "ПАЦ датотеке (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Све датотеке" - #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "МД5" @@ -2750,19 +2955,19 @@ msgid "Yes" msgstr "Да" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "ТЛС" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "ФАСТ" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "ТЛС кроз тунел" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Заштићени ЕАП (ПЕАП)" @@ -2808,196 +3013,59 @@ msgid "WEP inde_x:" msgstr "ВЕП и_ндекс:" -#~ msgid "Click on this icon to connect to a wireless network" -#~ msgstr "Кликните на ову иконицу ради повезивања на бежичну мрежу" - -#~ msgid "_Security:" -#~ msgstr "_Безбедност:" - -#~ msgid "United Kingdom" -#~ msgstr "Уједињено Краљевство" - -#~ msgid "Network Manager" -#~ msgstr "Управник мреже" - -#~ msgid "C_onnect" -#~ msgstr "П_овежи се" - -#~ msgid "Other Wireless Network..." -#~ msgstr "Остале бежичне мреже..." - -#~ msgid "label" -#~ msgstr "натпис" - -#~ msgid "An instance of nm-applet is already running.\n" -#~ msgstr "Већ је покренуто програмче Управника мреже.\n" - -#~ msgid "Could not acquire the %s service. (%d)\n" -#~ msgstr "Не могу да добијем %s сервис. (%d)\n" - -#~ msgid "PUK code required" -#~ msgstr "Потребан је ПУК код" - -#~ msgid "PUK code is needed for the mobile broadband device" -#~ msgstr "Потребан је ПУК код за повезивање мобилног, широкопојасног уређаја" - -#~ msgctxt "No wired security used" -#~ msgid "None" -#~ msgstr "Ништа" - -#~ msgctxt "Unknown/unrecognized wired or wifi security" -#~ msgid "Unknown" -#~ msgstr "Непознато" - -#~ msgid "translator-credits" -#~ msgstr "" -#~ "Филип Милетић\n" -#~ "Данило Шеган\n" -#~ "Милош Поповић \n" -#~ "Превод.орг — превод на српски језик." - -#~ msgid "" -#~ "Active Network Connections" -#~ msgstr "Покренуте мрежне везе" - -#~ msgid "" -#~ "Automatic\n" -#~ "Version 0\n" -#~ "Version 1" -#~ msgstr "" -#~ "Аутоматски\n" -#~ "Издање 0\n" -#~ "Издање 1" - -#~ msgid "Addresses" -#~ msgstr "Адресе" - -#~ msgid "" -#~ "Automatic\n" -#~ "Automatic with manual DNS settings\n" -#~ "Manual\n" -#~ "Link-Local\n" -#~ "Shared to other computers" -#~ msgstr "" -#~ "Аутоматски\n" -#~ "Аутоматски са ручним DNS подешавањем\n" -#~ "Ручно\n" -#~ "Вежи-локално\n" -#~ "Подели са другим рачунарима" - -#~ msgid "_Routes…" -#~ msgstr "_Руте…" - -#~ msgid "Basic" -#~ msgstr "Основно" - -#~ msgid "" -#~ "Any\n" -#~ "3G (UMTS/HSPA)\n" -#~ "2G (GPRS/EDGE)\n" -#~ "Prefer 3G (UMTS/HSPA)\n" -#~ "Prefer 2G (GPRS/EDGE)" -#~ msgstr "" -#~ "Било која\n" -#~ "3G (UMTS/HSPA)\n" -#~ "2G (GPRS/EDGE)\n" -#~ "Најпре 3G (UMTS/HSPA)\n" -#~ "Најпре 2G (GPRS/EDGE)" +# bug: no plural forms +#~ msgid "Wireless Networks (%s)" +#~ msgstr "Бежичне мреже (%s)" -#~ msgid "Authentication" -#~ msgstr "Пријава" +# bug: no plural forms +#~ msgid "Wireless Network (%s)" +#~ msgstr "Бежична мрежа (%s)" -#~ msgid "Echo" -#~ msgstr "Ехо" +# bug: no plural forms +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "Бежична мрежа" +#~ msgstr[1] "Бежичне мреже" +#~ msgstr[2] "Бежичне мреже" +#~ msgstr[3] "Бежична мрежа" -#~ msgid "" -#~ "Automatic\n" -#~ "10 Mb/s\n" -#~ "100 Mb/s\n" -#~ "1 Gb/s\n" -#~ "10 Gb/s" -#~ msgstr "" -#~ "Аутоматски\n" -#~ "10 Mb/s\n" -#~ "100 Mb/s\n" -#~ "1 Gb/s\n" -#~ "10 Gb/s" +#~ msgid "wireless is disabled" +#~ msgstr "бежична мрежа је онемогућена" -#~ msgid "" -#~ "Automatic\n" -#~ "Twisted Pair (TP)\n" -#~ "Attachment Unit Interface (AUI)\n" -#~ "BNC\n" -#~ "Media Independent Interface (MII)" -#~ msgstr "" -#~ "Аутоматски\n" -#~ "Обрнути Пар (TP)\n" -#~ "Сучеље прикачиве јединица (AUI)\n" -#~ "BNC\n" -#~ "Сичеље независно од медија (MII)" +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "бежична мрежа је искључена физичким прекидачем" -#~ msgid "" -#~ "Automatic\n" -#~ "A (5 GHz)\n" -#~ "B/G (2.4 GHz)" -#~ msgstr "" -#~ "Аутоматски\n" -#~ "A (5 GHz)\n" -#~ "B/G (2.4 GHz)" +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "Припремам везу преко бежичне мреже „%s“..." -#~ msgid "" -#~ "The connection editor could not find some required resources (the " -#~ "NetworkManager applet glade file was not found)." -#~ msgstr "" -#~ "Програм за уређивање веза не може да пронађе неке од потребних ресурса " -#~ "(није нађена глејд датотека програмчета „Управник везе“)." +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "Подешавам везу преко бежичне мреже „%s“..." -#~ msgid "Apply" -#~ msgstr "Примени" +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "Захтевам адресу за бежичну мрежу „%s“..." -#~ msgid "Apply..." -#~ msgstr "Примени..." +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "Повезани сте преко бежичне везе „%s“" -#~ msgid "could not connect to the system bus." -#~ msgstr "не могу да се повежем на системску магистралу." +#~ msgid "Wired" +#~ msgstr "Жичана" -#~ msgid "Country" -#~ msgstr "Земља" +#~ msgid "Wireless" +#~ msgstr "Бежична" -#~ msgid "Cannot start VPN connection '%s'" -#~ msgstr "Не могу да успоставим ВПН везу „%s“" +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "Не могу да учитам безбедно корисничко сучеље Жичане сигурности." -#~ msgid "" -#~ "Could not find the authentication dialog for VPN connection type '%s'. " -#~ "Contact your system administrator." -#~ msgstr "" -#~ "Не могу да нађем прозорче за аутентификацију за ВПН везе типа „%s“. " -#~ "Јавите се администратору вашег система." +#~ msgid "Wireless connection %d" +#~ msgstr "Бежична веза %d" #~ msgid "" -#~ "There was a problem launching the authentication dialog for VPN " -#~ "connection type '%s'. Contact your system administrator." +#~ "failed to find Bluetooth device (unknown gnome-bluetooth proxy object " +#~ "type)." #~ msgstr "" -#~ "Дошло је до неприлике при покретању прозорчета за аутентификацију за ВПН " -#~ "везе типа „%s“. Јавите се администратору вашег система." +#~ "нисам успео да пронађем блутут уређај (непозната врста објекта посредника " +#~ "гномовог блутута)." -#~ msgid "" -#~ "The NetworkManager applet could not find some required resources. It " -#~ "cannot continue.\n" +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." #~ msgstr "" -#~ "Управљач мрежом није успео да пронађе неопходне ресурсе и не може да " -#~ "настави рад.\n" - -#~ msgid "Select A File" -#~ msgstr "Изаберите датотеку" - -# Не знам на шта се односи -# ~Милош -#~ msgid "_Band:" -#~ msgstr "_Опсег:" - -#~ msgid "Save this connection for all users of this machine." -#~ msgstr "Поставља подешавања тренутне везе за све кориснике овог рачунара." - -#~ msgid "PU_K:" -#~ msgstr "П_УК:" +#~ "Није могуће Блутут подешавање (не могу да образујем Д-Бас посредника)." diff -Nru network-manager-applet-0.9.4.1/po/sr@latin.po network-manager-applet-0.9.6.2+git201210311320.2620/po/sr@latin.po --- network-manager-applet-0.9.4.1/po/sr@latin.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/sr@latin.po 2012-10-31 13:20:57.000000000 +0000 @@ -9,8 +9,8 @@ "Project-Id-Version: NetworkManager\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=Networ" "kManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-09 22:26+0000\n" -"PO-Revision-Date: 2012-03-10 23:49+0200\n" +"POT-Creation-Date: 2012-08-09 18:11+0000\n" +"PO-Revision-Date: 2012-08-17 18:28+0200\n" "Last-Translator: Miroslav Nikolić \n" "Language-Team: Serbian \n" "Language: sr\n" @@ -29,437 +29,833 @@ msgid "Manage your network connections" msgstr "Upravljajte vašim vezama mreže" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Veze sa mrežom" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Upravljajte i izmenite podešavanja vaših mrežnih veza" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Isključivanje obaveštenja o povezivanju" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." msgstr "" -"Uključite ovu opciju kako bi onemogućili obaveštenje pri povezivanju na mrežu." +"Uključite ovu opciju da isključite obaveštenja kada se povezujete na mrežu." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Isključivanje obaveštenja o prekidu veze" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "" +"Uključite ovu opciju da isključite obaveštenja kada prekidate vezu sa mrežom." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "Isključivanje VPN obaveštenja" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." msgstr "" -"Uključite ovu opciju kako bi onemogućili obaveštenje pri prekidu veze sa " -"mrežom." +"Uključite ovu opciju da isključite obaveštenja kada se povezujete na VPN ili " +"kada prekidate vezu sa njim." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Isključi obaveštavanja o dostupnim mrežama" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#| msgid "" +#| "Set this to true to disable notifications when wireless networks are " +#| "available." msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." +"Set this to true to disable notifications when Wi-Fi networks are available." msgstr "" -"Uključite ovu opciju kako bi onemogućili obaveštenje o dostupnosti bežičnih " -"mreža." +"Uključite ovu opciju da isključite obaveštenja o dostupnosti bežičnih mreža." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Pečat" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "Ovo određuje da li treba prevesti podešavanja na novo izdanje." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Onemogući obrazovanje bežične mreže" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" -"Uključite ovu opciju kako bi onemogućili obrazovanje adhok mreža iz Upravnika " -"mrežama." +"Uključite ovu opciju da isključite obrazovanje adhok mreža iz Upravnika mrežama." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Veze sa mrežom" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "Zanemaruje CA uverenje" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Upravljajte i izmenite podešavanja vaših mrežnih veza" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" +"Uključite ovu opciju da isključite upozorenja o CA uverenjima u EAP potvrđivanju " +"identiteta." -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "Dostupno" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"Uključite ovu opciju da isključite upozorenja o CA uverenjima u drugoj fazi EAP " +"potvrđivanja identiteta." -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "Povezani ste na „%s“." +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +#| msgid "Wired 802.1X authentication" +msgid "802.1X authentication" +msgstr "Potvrđivanje identiteta za 802.1X vezu" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "Veza uspostavljena" +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "_Ime mreže:" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "Povezani ste mobilnom širokopojasnom mrežom." +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "Nisam uspeo da dodam/aktiviram vezu" + +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "Nepoznata greška" + +#: ../src/applet.c:493 ../src/applet.c:563 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "Neuspelo povezivanje" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "Neuspelo prekidanje veze uređaja" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "Neuspelo prekidanje veze" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "Neuspelo aktiviranje veze" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:924 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "Ne prikazuj više ovu poruku" + +#: ../src/applet.c:1013 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "Pripremam mobilnu, širokopojasnu vezu „%s“..." +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"Ne mogu da uspostavim VPN vezu „%s“ zbog prekida veze u mreži." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1016 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "Podešavam mobilnu, širokopojasnu vezu „%s“..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"Ne mogu da uspostavim VPN vezu „%s“ zbog neočekivanog isključenja VPN servisa." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1019 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "Potrebna je prijava korisnika za povezivanje u mobilnoj mreži „%s“..." +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"Ne mogu da uspostavim VPN vezu „%s“ jer je VPN servis poslao neodgovarajuća " +"podešavanja." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:1022 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "Zahtevam mrežnu adresu za „%s“..." +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"Ne mogu da uspostavim VPN vezu „%s“ jer je isteklo vreme za povezivanje." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1025 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "Povezani ste preko mobilne širokopojasne veze „%s“" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"Ne mogu da uspostavim VPN vezu „%s“ jer VPN servis nije pokrenut na vreme." -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1028 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"Ne mogu da uspostavim VPN vezu „%s“ zato što ne mogu da pokrenem VPN servis." -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet.c:1031 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "Mobilna veza (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"Ne mogu da uspostavim VPN vezu „%s“ jer ne postoje ispravne VPN lozinke." -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 -msgid "Mobile Broadband" -msgstr "Mobilna" +#: ../src/applet.c:1034 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"Ne mogu da uspostavim VPN vezu „%s“ zbog neispravnih VPN lozinki." -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "Nova mobilna, širokopojasna veza (CDMA)..." +#: ../src/applet.c:1041 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"Ne mogu da uspostavim VPN vezu „%s“." -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "Sada ste povezani na CDMA mrežu." +#: ../src/applet.c:1059 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"Prekinuta je VPN veza „%s“ zbog prekida veze u mreži." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1062 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "Povezani ste na mobilnu širokopojasnu vezu „%s“: (%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"Prekinuta je VPN veza „%s“ zbog isključivanja VPN servisa." -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "roming" +#: ../src/applet.c:1068 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"VPN veza „%s“ je prekinuta." -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "CDMA mreža." +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN veza je uspešno uspostavljena.\n" +"\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "Sada ste registrovani na kućnu mrežu." +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN veza je uspešno uspostavljena.\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "Sada ste registrovani na mrežu prebacivanja." +#: ../src/applet.c:1102 +msgid "VPN Login Message" +msgstr "Poruka za VPN prijavu" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 +msgid "VPN Connection Failed" +msgstr "Nije uspelo povezivanje na VPN" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "Nova mobilna, širokopojasna mreža..." +#: ../src/applet.c:1173 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Ne mogu da uspostavim VPN vezu „%s“ zbog nemogućnosti pokretanja VPN " +"servisa.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "Povezani ste na GSM mrežu." +#: ../src/applet.c:1176 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"Ne mogu da pokrenem VPN vezu „%s“.\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "Potreban je PIN kôd" +#: ../src/applet.c:1496 +msgid "device not ready (firmware missing)" +msgstr "uređaj nije spreman (nedostaje firmver)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "Potreban je PIN kod za povezivanje mobilnog, širokopojasnog uređaja" +#: ../src/applet.c:1498 +msgid "device not ready" +msgstr "uređaj nije spreman" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "PIN kod za SIM karticu „%s“ na „%s“" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1508 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "veza je prekinuta" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "Pogrešan PIN kod, kontaktirajte vašeg provajdera." +#: ../src/applet.c:1524 +msgid "Disconnect" +msgstr "Prekini vezu" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "Pogrešan PUK kod, kontaktirajte vašeg provajdera." +#: ../src/applet.c:1538 +msgid "device not managed" +msgstr "ne mogu da upravljam uređajem" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "Šaljem kod za otključavanje." +#: ../src/applet.c:1582 +msgid "No network devices available" +msgstr "Nije pronađen nijedan mrežni uređaj" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "Potrebno je otključati SIM PIN" +#: ../src/applet.c:1670 +msgid "_VPN Connections" +msgstr "_VPN veze" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "Potrebno je otključati SIM PIN" +#: ../src/applet.c:1727 +msgid "_Configure VPN..." +msgstr "Po_desi VPN..." -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "Mobilni širokopojasni uređaj „%s“ zahteva SIM PIN kod." +#: ../src/applet.c:1731 +msgid "_Disconnect VPN" +msgstr "_Prekini VPN vezu" -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "PIN kôd:" +#: ../src/applet.c:1825 +msgid "NetworkManager is not running..." +msgstr "Upravljač mrežom nije pokrenut..." -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "Prikaži PIN kôd" +#: ../src/applet.c:1830 ../src/applet.c:2631 +msgid "Networking disabled" +msgstr "Umrežavanje isključeno" -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "Potrebno je otključati SIM PUK" +#. 'Enable Networking' item +#: ../src/applet.c:2051 +msgid "Enable _Networking" +msgstr "Uključi _mrežne usluge" -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "Potrebno je otključati SIM PUK" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2060 +#| msgid "Enable _Wireless" +msgid "Enable _Wi-Fi" +msgstr "Uključi _bežično mreženje" -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2069 +msgid "Enable _Mobile Broadband" +msgstr "Omogući _mobilne veze" + +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2078 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "Omogu_ći ViMAH Mobilnu širokopojasnu" + +#. Toggle notifications item +#: ../src/applet.c:2089 +msgid "Enable N_otifications" +msgstr "_Prikaži obaveštenja" + +#. 'Connection Information' item +#: ../src/applet.c:2100 +msgid "Connection _Information" +msgstr "Poda_ci o vezi" + +#. 'Edit Connections...' item +#: ../src/applet.c:2110 +msgid "Edit Connections..." +msgstr "Uredi veze..." + +#. Help item +#: ../src/applet.c:2124 +msgid "_Help" +msgstr "Po_moć" + +#. About item +#: ../src/applet.c:2133 +msgid "_About" +msgstr "_O programu" + +#: ../src/applet.c:2310 +msgid "Disconnected" +msgstr "Veza je prekinuta" + +#: ../src/applet.c:2311 +msgid "The network connection has been disconnected." +msgstr "Mrežna veza je prekinuta." + +#: ../src/applet.c:2494 #, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "Mobilni širokopojasni uređaj „%s“ zahteva SIM PUK kôd." +msgid "Preparing network connection '%s'..." +msgstr "Pripremam mrežnu vezu „%s“..." -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "PUK kôd:" +#: ../src/applet.c:2497 +#, c-format +msgid "User authentication required for network connection '%s'..." +msgstr "Potrebna je prijava korisnika za uspostavljanje veze „%s“..." -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "Novi PIN kôd:" +#: ../src/applet.c:2500 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 +#, c-format +msgid "Requesting a network address for '%s'..." +msgstr "Zahtevam mrežnu adresu za „%s“..." -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "Ponovo unesite PIN kôd:" +#: ../src/applet.c:2503 +#, c-format +msgid "Network connection '%s' active" +msgstr "Povezani ste preko veze „%s“" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "Prikaži PIN/PUK kôdove" +#: ../src/applet.c:2586 +#, c-format +msgid "Starting VPN connection '%s'..." +msgstr "Uspostavljam VPN vezu „%s“..." -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "GSM mreža." +#: ../src/applet.c:2589 +#, c-format +msgid "User authentication required for VPN connection '%s'..." +msgstr "Potrebna je prijava korisnika za uspostavljanje VPN veze „%s“..." + +#: ../src/applet.c:2592 +#, c-format +msgid "Requesting a VPN address for '%s'..." +msgstr "Zahtevam VPN mrežnu adresu za „%s“..." + +#: ../src/applet.c:2595 +#, c-format +msgid "VPN connection '%s' active" +msgstr "Povezani ste preko VPN veze „%s“" + +#: ../src/applet.c:2636 +msgid "No network connection" +msgstr "Nema mrežne veze" + +#: ../src/applet.c:3336 +msgid "NetworkManager Applet" +msgstr "Programče upravnika mreže" + +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "Dostupno" + +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 +#, c-format +msgid "You are now connected to '%s'." +msgstr "Povezani ste na „%s“." + +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "Veza uspostavljena" + +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "Povezani ste mobilnom širokopojasnom mrežom." + +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 +#, c-format +msgid "Preparing mobile broadband connection '%s'..." +msgstr "Pripremam mobilnu, širokopojasnu vezu „%s“..." + +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 +#, c-format +msgid "Configuring mobile broadband connection '%s'..." +msgstr "Podešavam mobilnu, širokopojasnu vezu „%s“..." + +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 +#, c-format +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "Potrebna je prijava korisnika za povezivanje u mobilnoj mreži „%s“..." + +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 +#, c-format +msgid "Mobile broadband connection '%s' active" +msgstr "Povezani ste preko mobilne širokopojasne veze „%s“" + +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:699 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" + +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 +#, c-format +msgid "Mobile Broadband (%s)" +msgstr "Mobilna veza (%s)" + +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:85 +#: ../src/connection-editor/page-mobile.c:379 +msgid "Mobile Broadband" +msgstr "Mobilna" + +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "Nova mobilna širokopojasna (CDMA) veza..." + +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "Sada ste povezani na CDMA mrežu." + +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "Povezani ste na mobilnu širokopojasnu vezu „%s“: (%d%%%s%s)" + +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "roming" -#: ../src/applet-device-wired.c:62 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "CDMA mreža." + +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "Sada ste registrovani na kućnu mrežu." + +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "Sada ste registrovani na mrežu prebacivanja." + +#: ../src/applet-device-ethernet.c:62 msgid "Auto Ethernet" msgstr "Automatska žičana veza" -#: ../src/applet-device-wired.c:205 +#: ../src/applet-device-ethernet.c:205 #, c-format -msgid "Wired Networks (%s)" +#| msgid "Wired Networks (%s)" +msgid "Ethernet Networks (%s)" msgstr "Žičane mreže (%s)" -#: ../src/applet-device-wired.c:207 +#: ../src/applet-device-ethernet.c:207 #, c-format -msgid "Wired Network (%s)" +#| msgid "Wired Network (%s)" +msgid "Ethernet Network (%s)" msgstr "Žičana mreža (%s)" -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" +#: ../src/applet-device-ethernet.c:210 +#| msgid "Wired Networks" +msgid "Ethernet Networks" msgstr "Žičane mreže" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" +#: ../src/applet-device-ethernet.c:212 +#| msgid "Wired Network" +msgid "Ethernet Network" msgstr "Žičana mreža" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 -msgid "disconnected" -msgstr "veza je prekinuta" - -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." +#: ../src/applet-device-ethernet.c:274 +#| msgid "You are now connected to the wired network." +msgid "You are now connected to the ethernet network." msgstr "Povezani ste na žičanu mrežu." -#: ../src/applet-device-wired.c:300 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "Preparing wired network connection '%s'..." +#| msgid "Preparing wired network connection '%s'..." +msgid "Preparing ethernet network connection '%s'..." msgstr "Pripremam vezu preko žičane mrežu „%s“..." -#: ../src/applet-device-wired.c:303 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "Configuring wired network connection '%s'..." +#| msgid "Configuring wired network connection '%s'..." +msgid "Configuring ethernet network connection '%s'..." msgstr "Podešavam vezu preko žičane mrežu „%s“..." -#: ../src/applet-device-wired.c:306 +#: ../src/applet-device-ethernet.c:306 #, c-format -msgid "User authentication required for wired network connection '%s'..." +#| msgid "User authentication required for wired network connection '%s'..." +msgid "User authentication required for ethernet network connection '%s'..." msgstr "Potrebna je prijava korisnika za uspostavljanje žičane veze „%s“..." -#: ../src/applet-device-wired.c:309 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "Requesting a wired network address for '%s'..." +#| msgid "Requesting a wired network address for '%s'..." +msgid "Requesting an ethernet network address for '%s'..." msgstr "Zahtevam adresu za žičanu mrežu „%s“..." -#: ../src/applet-device-wired.c:313 +#: ../src/applet-device-ethernet.c:313 #, c-format -msgid "Wired network connection '%s' active" +#| msgid "Wired network connection '%s' active" +msgid "Ethernet network connection '%s' active" msgstr "Povezani ste preko žičane veze „%s“" -#: ../src/applet-device-wired.c:494 +#: ../src/applet-device-ethernet.c:494 msgid "DSL authentication" -msgstr "DSL prijava" +msgstr "Potvrđivanje identiteta DSL-a" -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "Po_veži se na skrivene bežične mreže..." +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:702 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" + +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "Nova mobilna, širokopojasna mreža..." + +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "Povezani ste na GSM mrežu." + +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "Potreban je PIN kôd" + +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "Potreban je PIN kod za povezivanje mobilnog širokopojasnog uređaja" + +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "PIN kod za SIM karticu „%s“ na „%s“" + +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "Pogrešan PIN kod, kontaktirajte vašeg provajdera." + +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "Pogrešan PUK kod, kontaktirajte vašeg provajdera." + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "Šaljem kod za otključavanje..." + +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "Potrebno je otključati SIM PIN" + +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "Potrebno je otključati SIM PIN" -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "Mobilni širokopojasni uređaj „%s“ zahteva SIM PIN kod." + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "PIN kôd:" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "Prikaži PIN kôd" + +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "Potrebno je otključati SIM PUK" + +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "Potrebno je otključati SIM PUK" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "Mobilni širokopojasni uređaj „%s“ zahteva SIM PUK kôd." + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "PUK kôd:" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "Novi PIN kôd:" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "Ponovo unesite PIN kôd:" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "Prikaži PIN/PUK kôdove" + +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "GSM mreža." + +#: ../src/applet-device-wifi.c:97 +#| msgid "_Connect to Hidden Wireless Network..." +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "Poveži se na _skrivenu bežičnu mrežu..." + +#: ../src/applet-device-wifi.c:148 +#| msgid "Create _New Wireless Network..." +msgid "Create _New Wi-Fi Network..." msgstr "Napravi _novu bežičnu mrežu..." -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(ništa)" -# bug: no plural forms -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format -msgid "Wireless Networks (%s)" +#| msgid "Wired Networks (%s)" +msgid "Wi-Fi Networks (%s)" msgstr "Bežične mreže (%s)" -# bug: no plural forms -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format -msgid "Wireless Network (%s)" +#| msgid "Wired Network (%s)" +msgid "Wi-Fi Network (%s)" msgstr "Bežična mreža (%s)" -# bug: no plural forms -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" +#: ../src/applet-device-wifi.c:794 +#| msgid "Wired Network" +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" msgstr[0] "Bežična mreža" msgstr[1] "Bežične mreže" msgstr[2] "Bežične mreže" -msgstr[3] "Bežična mreža" +msgstr[3] "Žičana mreža" -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "Bežična mreža je onemogućena" +#: ../src/applet-device-wifi.c:827 +#| msgid "WiMAX is disabled" +msgid "Wi-Fi is disabled" +msgstr "Bežična mreža je isključena" + +#: ../src/applet-device-wifi.c:828 +#| msgid "WiMAX is disabled by hardware switch" +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Bežična mreža je isključena fizičkim prekidačem" -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "bežična mreža je isključena fizičkim prekidačem" - -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "Još mreža" # bug: no plural forms -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" +#: ../src/applet-device-wifi.c:1068 +#| msgid "Wireless Networks Available" +msgid "Wi-Fi Networks Available" msgstr "Dostupne su bežične mreže" -#: ../src/applet-device-wifi.c:1082 -msgid "Use the network menu to connect to a wireless network" -msgstr "Koristite meni mreže da se povežete na bežičnu mrežu" - -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 -msgid "Don't show this message again" -msgstr "Ne prikazuj više ovo prozorče" +#: ../src/applet-device-wifi.c:1069 +#| msgid "Use the network menu to connect to a wireless network" +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "Koristite izbornik mreže da se povežete na bežičnu mrežu" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1263 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "Povezani ste sa bežičnom mrežom „%s“." +#| msgid "You are now connected to the wireless network '%s'." +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "Povezani ste na bežičnu mrežu „%s“." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1294 #, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "Pripremam vezu preko bežične mreže „%s“..." +#| msgid "Preparing network connection '%s'..." +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "Pripremam bežičnu mrežnu vezu „%s“..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1297 #, c-format -msgid "Configuring wireless network connection '%s'..." +#| msgid "Configuring wired network connection '%s'..." +msgid "Configuring Wi-Fi network connection '%s'..." msgstr "Podešavam vezu preko bežične mreže „%s“..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1300 #, c-format -msgid "User authentication required for wireless network '%s'..." +#| msgid "User authentication required for wireless network '%s'..." +msgid "User authentication required for Wi-Fi network '%s'..." msgstr "Potrebna je prijava korisnika za uspostavljanje bežične veze „%s“..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1303 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "Zahtevam adresu za bežičnu mrežu „%s“..." +#| msgid "Requesting a network address for '%s'..." +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "Zahtevam adresu bežične mreže za „%s“..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1324 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" +#| msgid "Wireless network connection '%s' active: %s (%d%%)" +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" msgstr "Povezani ste preko bežične veze „%s“ : %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1329 #, c-format -msgid "Wireless network connection '%s' active" +#| msgid "Wired network connection '%s' active" +msgid "Wi-Fi network connection '%s' active" msgstr "Povezani ste preko bežične veze „%s“" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "Nisam uspeo da aktiviram vezu" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "Nisam uspeo da dodam novu vezu" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" -msgstr "ViMAH Mobilna širokopojasna (%s)" +msgstr "ViMAKS Mobilna širokopojasna (%s)" #: ../src/applet-device-wimax.c:233 msgid "WiMAX Mobile Broadband" -msgstr "ViMAH Mobilna širokopojasna" +msgstr "ViMAKS Mobilna širokopojasna" #: ../src/applet-device-wimax.c:259 msgid "WiMAX is disabled" @@ -467,20 +863,20 @@ #: ../src/applet-device-wimax.c:260 msgid "WiMAX is disabled by hardware switch" -msgstr "ViMAH je isključena fizičkim prekidačem" +msgstr "ViMAKS je isključena fizičkim prekidačem" #: ../src/applet-device-wimax.c:428 msgid "You are now connected to the WiMAX network." -msgstr "Sada ste povezani na ViMAH mrežu." +msgstr "Sada ste povezani na ViMAKS mrežu." #: ../src/applet-dialogs.c:57 msgid "Error displaying connection information:" msgstr "Greška pri prikazivanju podataka o vezi:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -488,545 +884,228 @@ msgid "Dynamic WEP" msgstr "Dinamički VEP" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "VPA/VPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "VEP" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 msgctxt "Wifi/wired security" msgid "None" msgstr "Ništa" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-dialogs.c:277 #, c-format -#| msgid "1 (Default)" msgid "%s (default)" msgstr "%s (osnovno)" -#: ../src/applet-dialogs.c:347 ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:349 ../src/applet-dialogs.c:487 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Nepoznato" -#: ../src/applet-dialogs.c:362 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:364 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "nepoznato" -#: ../src/applet-dialogs.c:376 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "nepoznato" -#: ../src/applet-dialogs.c:411 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Žičana mreža (%s)" -#: ../src/applet-dialogs.c:414 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 bežična (%s)" -#: ../src/applet-dialogs.c:421 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:423 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:427 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" -msgstr "ViMAH (%s)" +msgstr "ViMAKS (%s)" #. --- General --- -#: ../src/applet-dialogs.c:433 ../src/applet-dialogs.c:792 -msgid "General" -msgstr "Opšte" - -#: ../src/applet-dialogs.c:437 -msgid "Interface:" -msgstr "Uređaj:" - -#: ../src/applet-dialogs.c:453 -msgid "Hardware Address:" -msgstr "Hardverska adresa:" - -#. Driver -#: ../src/applet-dialogs.c:461 -msgid "Driver:" -msgstr "Drajver:" - -#: ../src/applet-dialogs.c:490 -msgid "Speed:" -msgstr "Brzina:" - -#: ../src/applet-dialogs.c:500 -msgid "Security:" -msgstr "Bezbednost:" - -#: ../src/applet-dialogs.c:513 -msgid "CINR:" -msgstr "CINR:" - -#: ../src/applet-dialogs.c:526 -msgid "BSID:" -msgstr "BSID:" - -#. --- IPv4 --- -#: ../src/applet-dialogs.c:543 -msgid "IPv4" -msgstr "IPv4" - -#. Address -#: ../src/applet-dialogs.c:554 ../src/applet-dialogs.c:661 -msgid "IP Address:" -msgstr "IP adresa:" - -#: ../src/applet-dialogs.c:556 ../src/applet-dialogs.c:572 -msgctxt "Address" -msgid "Unknown" -msgstr "Nepoznata" - -#: ../src/applet-dialogs.c:570 -msgid "Broadcast Address:" -msgstr "Adresa za emitovanje:" - -#. Prefix -#: ../src/applet-dialogs.c:579 -msgid "Subnet Mask:" -msgstr "Mrežna maska:" - -#: ../src/applet-dialogs.c:581 -msgctxt "Subnet Mask" -msgid "Unknown" -msgstr "Nepoznata" - -#: ../src/applet-dialogs.c:589 ../src/applet-dialogs.c:676 -msgid "Default Route:" -msgstr "Podrazumevana ruta:" - -#: ../src/applet-dialogs.c:601 -msgid "Primary DNS:" -msgstr "Primarni DNS:" - -#: ../src/applet-dialogs.c:610 -msgid "Secondary DNS:" -msgstr "Sekundarni DNS:" - -#: ../src/applet-dialogs.c:620 -msgid "Ternary DNS:" -msgstr "Tercijarni DNS:" - -#. --- IPv6 --- -#: ../src/applet-dialogs.c:635 -msgid "IPv6" -msgstr "IPv6" - -#: ../src/applet-dialogs.c:644 -msgid "Ignored" -msgstr "Zanemareno" - -#: ../src/applet-dialogs.c:797 -msgid "VPN Type:" -msgstr "VPN vrsta:" - -#: ../src/applet-dialogs.c:804 -msgid "VPN Gateway:" -msgstr "VPN mrežni prolaz:" - -#: ../src/applet-dialogs.c:810 -msgid "VPN Username:" -msgstr "VPN korisničko ime:" - -#: ../src/applet-dialogs.c:816 -msgid "VPN Banner:" -msgstr "VPN baner:" - -#: ../src/applet-dialogs.c:822 -msgid "Base Connection:" -msgstr "Veza osnove:" - -#: ../src/applet-dialogs.c:824 -msgid "Unknown" -msgstr "Nepoznato" - -#. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 -msgid "No valid active connections found!" -msgstr "Nema ispravnih, pokrenutih veza!" - -#: ../src/applet-dialogs.c:940 -msgid "" -"Copyright © 2004-2011 Red Hat, Inc.\n" -"Copyright © 2005-2008 Novell, Inc.\n" -"and many other community contributors and translators" -msgstr "" -"Autorska prava © 2004-2010 Red Hat, Inc.\n" -"Autorska prava © 2005-2008 Novell, Inc.\n" -"i mnogi drugi saradnici zajednice i prevodioci" - -#: ../src/applet-dialogs.c:943 -msgid "" -"Notification area applet for managing your network devices and connections." -msgstr "Programče obaveštajne zone za upravljanje mrežnim uređajima i vezama." - -#: ../src/applet-dialogs.c:945 -msgid "NetworkManager Website" -msgstr "Veb stranica Upravnika mrežom" - -#: ../src/applet-dialogs.c:960 -msgid "Missing resources" -msgstr "Nedostaju resursi" - -#: ../src/applet-dialogs.c:985 -msgid "Mobile broadband network password" -msgstr "Lozinka mobilne, širokopojasne mreže" - -#: ../src/applet-dialogs.c:994 -#, c-format -msgid "A password is required to connect to '%s'." -msgstr "Potrebna je lozinka za povezivanje na „%s“." - -#: ../src/applet-dialogs.c:1013 -msgid "Password:" -msgstr "Lozinka:" - -#: ../src/applet.c:995 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"Ne mogu da uspostavim VPN vezu „%s“ zbog prekida veze u mreži." - -#: ../src/applet.c:998 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"Ne mogu da uspostavim VPN vezu „%s“ zbog neočekivanog isključenja VPN servisa." - -#: ../src/applet.c:1001 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"Ne mogu da uspostavim VPN vezu „%s“ jer je VPN servis poslao neodgovarajuća " -"podešavanja." - -#: ../src/applet.c:1004 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"Ne mogu da uspostavim VPN vezu „%s“ jer je isteklo vreme za povezivanje." - -#: ../src/applet.c:1007 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"Ne mogu da uspostavim VPN vezu „%s“ jer VPN servis nije pokrenut na vreme." - -#: ../src/applet.c:1010 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"Ne mogu da uspostavim VPN vezu „%s“ zato što ne mogu da pokrenem VPN servis." - -#: ../src/applet.c:1013 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"Ne mogu da uspostavim VPN vezu „%s“ jer ne postoje ispravne VPN lozinke." - -#: ../src/applet.c:1016 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"Ne mogu da uspostavim VPN vezu „%s“ zbog neispravnih VPN lozinki." - -#: ../src/applet.c:1023 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"Ne mogu da uspostavim VPN vezu „%s“" - -#: ../src/applet.c:1041 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"Prekinuta je VPN veza „%s“ zbog prekida veze u mreži." - -#: ../src/applet.c:1044 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"Prekinuta je VPN veza „%s“ zbog isključivanja VPN servisa." - -#: ../src/applet.c:1050 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"VPN veza „%s“ je prekinuta." - -#: ../src/applet.c:1084 -msgid "VPN Login Message" -msgstr "Poruka za VPN prijavu" - -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 -msgid "VPN Connection Failed" -msgstr "Nije uspelo povezivanje na VPN" - -#: ../src/applet.c:1155 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Ne mogu da uspostavim VPN vezu „%s“ zbog nemogućnosti pokretanja VPN " -"servisa.\n" -"\n" -"%s" - -#: ../src/applet.c:1158 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"Ne mogu da pokrenem VPN vezu „%s“.\n" -"\n" -"%s" - -#: ../src/applet.c:1478 -msgid "device not ready (firmware missing)" -msgstr "uređaj nije spreman (nedostaje firmver)" - -#: ../src/applet.c:1480 -msgid "device not ready" -msgstr "uređaj nije spreman" - -#: ../src/applet.c:1506 -msgid "Disconnect" -msgstr "Prekini vezu" - -#: ../src/applet.c:1520 -msgid "device not managed" -msgstr "ne mogu da upravljam uređajem" - -#: ../src/applet.c:1564 -msgid "No network devices available" -msgstr "Nije pronađen nijedan mrežni uređaj" +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "Opšte" -#: ../src/applet.c:1652 -msgid "_VPN Connections" -msgstr "_VPN veze" +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "Uređaj:" -#: ../src/applet.c:1709 -msgid "_Configure VPN..." -msgstr "Po_desi VPN..." +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "Hardverska adresa:" -#: ../src/applet.c:1713 -msgid "_Disconnect VPN" -msgstr "_Prekini VPN vezu" +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "Drajver:" -#: ../src/applet.c:1811 -msgid "NetworkManager is not running..." -msgstr "Upravljač mrežom nije pokrenut..." +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "Brzina:" -#: ../src/applet.c:1816 ../src/applet.c:2609 -msgid "Networking disabled" -msgstr "Umrežavanje isključeno" +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "Bezbednost:" -#. 'Enable Networking' item -#: ../src/applet.c:2037 -msgid "Enable _Networking" -msgstr "Uključi _mrežne usluge" +#: ../src/applet-dialogs.c:512 +msgid "CINR:" +msgstr "CINR:" -#. 'Enable Wireless' item -#: ../src/applet.c:2046 -msgid "Enable _Wireless" -msgstr "Uključi _bežično mreženje" +#: ../src/applet-dialogs.c:525 +msgid "BSID:" +msgstr "BSID:" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 -msgid "Enable _Mobile Broadband" -msgstr "Omogući _mobilne veze" +#. --- IPv4 --- +#: ../src/applet-dialogs.c:542 +msgid "IPv4" +msgstr "IPv4" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "Omogu_ći ViMAH Mobilnu širokopojasnu" +#. Address +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 +msgid "IP Address:" +msgstr "IP adresa:" -#. Toggle notifications item -#: ../src/applet.c:2075 -msgid "Enable N_otifications" -msgstr "_Prikaži obaveštenja" +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 +msgctxt "Address" +msgid "Unknown" +msgstr "Nepoznata" -#. 'Connection Information' item -#: ../src/applet.c:2086 -msgid "Connection _Information" -msgstr "Poda_ci o vezi" +#: ../src/applet-dialogs.c:569 +msgid "Broadcast Address:" +msgstr "Adresa za emitovanje:" -#. 'Edit Connections...' item -#: ../src/applet.c:2096 -msgid "Edit Connections..." -msgstr "Uredi veze..." +#. Prefix +#: ../src/applet-dialogs.c:578 +msgid "Subnet Mask:" +msgstr "Mrežna maska:" -#. Help item -#: ../src/applet.c:2110 -msgid "_Help" -msgstr "_Pomoć" +#: ../src/applet-dialogs.c:580 +msgctxt "Subnet Mask" +msgid "Unknown" +msgstr "Nepoznata" -#. About item -#: ../src/applet.c:2119 -msgid "_About" -msgstr "_O programu" +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 +msgid "Default Route:" +msgstr "Podrazumevana ruta:" -#: ../src/applet.c:2296 -msgid "Disconnected" -msgstr "Veza je prekinuta" +#: ../src/applet-dialogs.c:600 +msgid "Primary DNS:" +msgstr "Primarni DNS:" -#: ../src/applet.c:2297 -msgid "The network connection has been disconnected." -msgstr "Mrežna veza je prekinuta." +#: ../src/applet-dialogs.c:609 +msgid "Secondary DNS:" +msgstr "Sekundarni DNS:" -#: ../src/applet.c:2478 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "Pripremam mrežnu vezu „%s“..." +#: ../src/applet-dialogs.c:619 +msgid "Ternary DNS:" +msgstr "Tercijarni DNS:" -#: ../src/applet.c:2481 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "Potrebna je prijava korisnika za uspostavljanje veze „%s“..." +#. --- IPv6 --- +#: ../src/applet-dialogs.c:634 +msgid "IPv6" +msgstr "IPv6" -#: ../src/applet.c:2487 -#, c-format -msgid "Network connection '%s' active" -msgstr "Povezani ste preko veze „%s“" +#: ../src/applet-dialogs.c:643 +msgid "Ignored" +msgstr "Zanemareno" -#: ../src/applet.c:2565 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "Uspostavljam VPN vezu „%s“..." +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "VPN vrsta:" -#: ../src/applet.c:2568 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "Potrebna je prijava korisnika za uspostavljanje VPN veze „%s“..." +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "VPN mrežni prolaz:" -#: ../src/applet.c:2571 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "Zahtevam VPN mrežnu adresu za „%s“..." +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "VPN korisničko ime:" -#: ../src/applet.c:2574 -#, c-format -msgid "VPN connection '%s' active" -msgstr "Povezani ste preko VPN veze „%s“" +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "VPN baner:" -#: ../src/applet.c:2613 -msgid "No network connection" -msgstr "Nema mrežnih veza" +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "Veza osnove:" -#: ../src/applet.c:3263 -msgid "NetworkManager Applet" -msgstr "Programče upravnika mreže" +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "Nepoznato" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "Samostalno otključajte ovaj uređaj" +#. Shouldn't really happen but ... +#: ../src/applet-dialogs.c:886 +msgid "No valid active connections found!" +msgstr "Nema ispravnih, pokrenutih veza!" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "_Otključaj" +#: ../src/applet-dialogs.c:939 +msgid "" +"Copyright © 2004-2011 Red Hat, Inc.\n" +"Copyright © 2005-2008 Novell, Inc.\n" +"and many other community contributors and translators" +msgstr "" +"Autorska prava © 2004-2011 Red Hat, Inc.\n" +"Autorska prava © 2005-2008 Novell, Inc.\n" +"i mnogi drugi saradnici zajednice i prevodioci" -#: ../src/info.ui.h:1 -msgid "Connection Information" -msgstr "Podaci o vezi" +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "Programče obaveštajne zone za upravljanje mrežnim uređajima i vezama." -#: ../src/info.ui.h:2 -msgid "Active Network Connections" -msgstr "Aktivne veze mreže" +#: ../src/applet-dialogs.c:944 +msgid "NetworkManager Website" +msgstr "Veb stranica Upravnika mrežom" -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "Žičana 802.1X prijava" +#: ../src/applet-dialogs.c:959 +msgid "Missing resources" +msgstr "Nedostaju resursi" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 -msgid "_Network name:" -msgstr "_Ime mreže:" +#: ../src/applet-dialogs.c:984 +msgid "Mobile broadband network password" +msgstr "Lozinka mobilne širokopojasne mreže" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "automatski" +#: ../src/applet-dialogs.c:993 +#, c-format +msgid "A password is required to connect to '%s'." +msgstr "Potrebna je lozinka za povezivanje na „%s“." -#: ../src/connection-editor/ce-page.c:310 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "Ne mogu da ažururam lozinke veze zbog nepoznate greške." +#: ../src/applet-dialogs.c:1012 +msgid "Password:" +msgstr "Lozinka:" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 @@ -1057,13 +1136,52 @@ msgstr "" "Ukoliko je uključeno, ova veza nikada neće biti u korišćena kao podrazumevana." +# bug: translatable, really? +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " + +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "Izaberite vrstu veze" + +#: ../src/connection-editor/ce-new-connection.ui.h:3 +msgid "" +"Select the type of connection you wish to create.\n" +"\n" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." +msgstr "" +"Izaberite vrstu VPN veze koju želite da napravite.\n" +"\n" +"Ako pravite VPN vezu, a ista se ne pojavljuje na spisku, možda nemate " +"instaliran ispravan VPN priključak." + +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "Napravi…" + +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "automatski" + +#: ../src/connection-editor/ce-page.c:288 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "Ne mogu da ažururam lozinke veze zbog nepoznate greške." + #: ../src/connection-editor/ce-page-dsl.ui.h:1 #: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 #: ../src/wireless-security/eap-method-simple.ui.h:1 #: ../src/wireless-security/ws-leap.ui.h:1 msgid "_Username:" -msgstr "Kori_sničko ime:" +msgstr "_Korisničko ime:" #: ../src/connection-editor/ce-page-dsl.ui.h:2 msgid "_Service:" @@ -1078,23 +1196,119 @@ msgid "Sho_w password" msgstr "Prikaži _lozinku" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:9 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "_Password:" -msgstr "_Lozinka:" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_Lozinka:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "Samostalno" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "Upleteni par (TP)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "Sučelje jedinice prikačinjanja (AUI)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "Sučelje nezavisnog medija (MII)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 MB/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 MB/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 GB/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 GB/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "_Port:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "_Brzina:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "Puni _dupleks" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "_Samougovaranje" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "_MAK adresa uređaja:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "_Klonirana MAK adresa:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"Uneta MAK adresa se koristi kao adresa mrežnog uređaja. Ova mogućnost se " +"naziva MAK kloniranje ili spufing. Primer: 00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "bajta" -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -#: ../src/connection-editor/ce-page-wired.ui.h:1 -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -msgid "Automatic" -msgstr "Automatski" +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "Režim _prenosa:" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagram" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "Povezan" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 @@ -1155,11 +1369,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Domeni _pretrage:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_DNS serveri:" @@ -1260,7 +1478,7 @@ #: ../src/connection-editor/ce-page-mobile.ui.h:17 msgid "Sho_w passwords" -msgstr "Prika_ži lozinke" +msgstr "Prikaži _lozinke" #: ../src/connection-editor/ce-page-ppp.ui.h:1 msgid "Authentication" @@ -1276,7 +1494,7 @@ #: ../src/connection-editor/ce-page-ppp.ui.h:4 msgid "Compression" -msgstr "Kompresija" +msgstr "Sažimanje" #: ../src/connection-editor/ce-page-ppp.ui.h:5 msgid "_Use point-to-point encryption (MPPE)" @@ -1296,7 +1514,7 @@ #: ../src/connection-editor/ce-page-ppp.ui.h:9 msgid "Allow _Deflate data compression" -msgstr "Dozvoli „_Deflate“ pakovanje podataka" +msgstr "Dozvoli _Deflejt pakovanje podataka" #: ../src/connection-editor/ce-page-ppp.ui.h:10 msgid "Use TCP _header compression" @@ -1310,153 +1528,78 @@ msgid "Send PPP _echo packets" msgstr "Šalji PPP _eho pakete" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "Twisted Pair (TP)" -msgstr "Upleteni par (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "Attachment Unit Interface (AUI)" -msgstr "Sučelje jedinice prikačinjanja (AUI)" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Media Independent Interface (MII)" -msgstr "Sučelje nezavisnog medija (MII)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "10 Mb/s" -msgstr "10 MB/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:7 -msgid "100 Mb/s" -msgstr "100 MB/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "10 Gb/s" -msgstr "10 GB/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "_Port:" -msgstr "_Port:" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "_Speed:" -msgstr "_Brzina:" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -msgid "Full duple_x" -msgstr "Puni _dupleks" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Aut_onegotiate" -msgstr "_Samougovaranje" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "_Device MAC address:" -msgstr "_MAK adresa uređaja:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "C_loned MAC address:" -msgstr "_Klonirana MAK adresa:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"Uneta MAK adresa se koristi kao adresa mrežnog uređaja. Ova mogućnost se " -"naziva MAK kloniranje ili spufing. Primer: 00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:17 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "_MTU:" -msgstr "_MTU:" - -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "bytes" -msgstr "bajtova" +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "B_ezbednost:" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "Infrastrukturno" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 +#: ../src/connection-editor/ce-page-wifi.ui.h:5 msgid "Ad-hoc" msgstr "Ad-hok" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 +#: ../src/connection-editor/ce-page-wifi.ui.h:11 msgid "mW" msgstr "mW" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wifi.ui.h:12 msgid "Transmission po_wer:" msgstr "_Jačina prenosa:" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wifi.ui.h:14 msgid "_Rate:" msgstr "_Protok:" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +#| msgid "" +#| "This option locks this connection to the wireless access point (AP) " +#| "specified by the BSSID entered here. Example: 00:11:22:33:44:55" msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"Ova opcija dodeljuje vezu bežičnoj pristupnoj tački (AP) koja je određen " -"BSSID-om. Npr: 00:11:22:33:44:55" +"Ova opcija dodeljuje ovu vezu tački bežičnog pristupa (AP) koja je navedena " +"ovde unetim BSSID-om. Npr: 00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:17 +#: ../src/connection-editor/ce-page-wifi.ui.h:17 msgid "C_hannel:" msgstr "_Kanal:" # Valjda se odnosi na opseg, a? # ~Miloš -#: ../src/connection-editor/ce-page-wireless.ui.h:18 +#: ../src/connection-editor/ce-page-wifi.ui.h:18 msgid "Ban_d:" msgstr "_Opseg:" -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wifi.ui.h:19 msgid "M_ode:" msgstr "_Režim:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 +#: ../src/connection-editor/ce-page-wifi.ui.h:20 msgid "SS_ID:" msgstr "SS_ID:" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "B_ezbednost:" - #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" -msgstr "Dozvoljeni načini potvrđivanja identiteta:" +msgstr "Dozvoljeni načini potvrđivanja identiteta" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 msgid "_EAP" @@ -1506,117 +1649,381 @@ "methods. If connections fail, try disabling support for some methods." msgstr "" "U većini slučajeva, PPP serveri dobavljača će podržati sve načine potvrđivanja " -"identiteta. Ako veza ne uspe, pokušajte da isključite podršku za neke načine." +"identiteta. Ako veza ne uspe, pokušajte da isključite podršku za neke načine." -# bug: translatable, really? -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "Adresa" + +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "Mrežna maska" + +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "Mrežni prolaz" + +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "Metrički" + +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "Prefiks" + +#: ../src/connection-editor/new-connection.c:75 +#: ../src/connection-editor/page-ethernet.c:273 +#| msgid "Auto Ethernet" +msgid "Ethernet" +msgstr "Žičana veza" + +#: ../src/connection-editor/new-connection.c:80 +#: ../src/connection-editor/page-wifi.c:462 +msgid "Wi-Fi" +msgstr "Bežična" + +#: ../src/connection-editor/new-connection.c:90 +#: ../src/connection-editor/page-wimax.c:157 ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "ViMAKS" + +#: ../src/connection-editor/new-connection.c:95 +#: ../src/connection-editor/page-dsl.c:139 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:100 +#: ../src/connection-editor/page-infiniband.c:189 +msgid "InfiniBand" +msgstr "Infini band" + +#: ../src/connection-editor/new-connection.c:112 +#: ../src/connection-editor/page-vpn.c:111 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:245 +msgid "Import a saved VPN configuration..." +msgstr "Uvezi sačuvna VPN podešavanja..." + +#: ../src/connection-editor/nm-connection-editor.c:106 +#, c-format +msgid "Editing %s" +msgstr "Uređujem %s" + +#: ../src/connection-editor/nm-connection-editor.c:110 +msgid "Editing un-named connection" +msgstr "Uređujem neimenovanu vezu" + +#: ../src/connection-editor/nm-connection-editor.c:297 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"Program za uređivanje veza ne može da pronađe neke od potrebnih resursa (nije " +"nađena „.ui“ datoteka)." + +#: ../src/connection-editor/nm-connection-editor.c:401 +msgid "Error creating connection editor dialog." +msgstr "Greška u obrazovanju prozorčeta za uređivanje veza." + +#: ../src/connection-editor/nm-connection-editor.c:413 +msgid "_Save" +msgstr "_Sačuvaj" + +#: ../src/connection-editor/nm-connection-editor.c:414 +msgid "Save any changes made to this connection." +msgstr "Sačuvaj sve promene u ovoj vezi." + +#: ../src/connection-editor/nm-connection-editor.c:415 +msgid "_Save..." +msgstr "_Sačuvaj..." + +#: ../src/connection-editor/nm-connection-editor.c:416 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "Prijavite se kako bi sačuvali ovu vezu za sve korisnike računara." + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "Ime _veze:" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "_Sam se poveži" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "_Dostupno svim korisnicima" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "_Izvezi..." + +#: ../src/connection-editor/nm-connection-list.c:169 +msgid "never" +msgstr "nikad" + +#: ../src/connection-editor/nm-connection-list.c:180 +#: ../src/connection-editor/nm-connection-list.c:191 +msgid "now" +msgstr "sada" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "pre %d minut" +msgstr[1] "pre %d minuta" +msgstr[2] "pre %d minuta" +msgstr[3] "pre %d minut" + +#: ../src/connection-editor/nm-connection-list.c:202 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "pre %d sat" +msgstr[1] "pre %d sata" +msgstr[2] "pre %d sati" +msgstr[3] "pre %d sat" + +#: ../src/connection-editor/nm-connection-list.c:214 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "pre %d dan" +msgstr[1] "pre %d dana" +msgstr[2] "pre %d dana" +msgstr[3] "pre %d dan" + +#: ../src/connection-editor/nm-connection-list.c:220 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "pre %d mesec" +msgstr[1] "pre %d meseca" +msgstr[2] "pre %d meseci" +msgstr[3] "pre %d mesec" + +#: ../src/connection-editor/nm-connection-list.c:224 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "pre %d godine" +msgstr[1] "pre %d godine" +msgstr[2] "pre %d godina" +msgstr[3] "pre %d godine" + +#: ../src/connection-editor/nm-connection-list.c:443 +msgid "Connection add failed" +msgstr "Nije uspelo dodavanje veze" + +#: ../src/connection-editor/nm-connection-list.c:472 +msgid "Error saving connection" +msgstr "Greška prilikom čuvanja veze" + +#: ../src/connection-editor/nm-connection-list.c:473 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "Svojstvo „%s“/ „%s“ je nevažeće: „%d“" + +#: ../src/connection-editor/nm-connection-list.c:480 +#: ../src/connection-editor/nm-connection-list.c:598 +msgid "An unknown error occurred." +msgstr "Došlo je do nepoznate greške." + +#: ../src/connection-editor/nm-connection-list.c:485 +#: ../src/connection-editor/nm-connection-list.c:638 +msgid "Error initializing editor" +msgstr "Greška u pokretanju uređivača" + +#: ../src/connection-editor/nm-connection-list.c:503 +#: ../src/connection-editor/nm-connection-list.c:655 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "Ne mogu da pokrenem prozorče za izmenu veze zbog nepoznate greške." + +#: ../src/connection-editor/nm-connection-list.c:512 +msgid "Could not create new connection" +msgstr "Ne mogu da napravim novu vezu" + +#: ../src/connection-editor/nm-connection-list.c:524 +msgid "Could not edit new connection" +msgstr "Ne mogu da uredim novu vezu" + +#: ../src/connection-editor/nm-connection-list.c:669 +msgid "Could not edit connection" +msgstr "Ne mogu da uredim vezu" + +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "Connection delete failed" +msgstr "Ne mogu da obrišem vezu" + +#: ../src/connection-editor/nm-connection-list.c:731 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "Da li da zaista obrišem vezu %s?" + +#: ../src/connection-editor/nm-connection-list.c:972 +msgid "Name" +msgstr "Naziv" + +#: ../src/connection-editor/nm-connection-list.c:985 +msgid "Last Used" +msgstr "Upotrbljena" + +#. Edit +#: ../src/connection-editor/nm-connection-list.c:1026 +msgid "_Edit" +msgstr "_Uređivanje" + +#: ../src/connection-editor/nm-connection-list.c:1027 +msgid "Edit the selected connection" +msgstr "Uređuje podatke za izabranu vezu" + +#: ../src/connection-editor/nm-connection-list.c:1028 +msgid "_Edit..." +msgstr "_Uredi..." + +#: ../src/connection-editor/nm-connection-list.c:1029 +msgid "Authenticate to edit the selected connection" +msgstr "Prijavite se kako bi izmenili izabranu vezu" + +#. Delete +#: ../src/connection-editor/nm-connection-list.c:1043 +msgid "_Delete" +msgstr "_Obriši" + +#: ../src/connection-editor/nm-connection-list.c:1044 +msgid "Delete the selected connection" +msgstr "Briše izabranu vezu" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "Izbor vrste VPN veze" +#: ../src/connection-editor/nm-connection-list.c:1045 +msgid "_Delete..." +msgstr "_Obriši..." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" -"Izaberite vrstu VPN veze koju želite da koristite za nove veze. Ukoliko se " -"vrsta VPN veze koju želite da napravite ne pojavi na spisku, možda nemate " -"instaliran ispravan VPN dodatak." +#: ../src/connection-editor/nm-connection-list.c:1046 +msgid "Authenticate to delete the selected connection" +msgstr "Prijavite se kako bi obrisali izabranu vezu" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "Create…" -msgstr "Napravi…" +#: ../src/connection-editor/nm-connection-list.c:1285 +msgid "Error creating connection" +msgstr "Greška prilikom stvaranja veze" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "Adresa" +#: ../src/connection-editor/nm-connection-list.c:1286 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "Ne znam kako da napravim „%s“ vezu" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "Mrežna maska" +#: ../src/connection-editor/nm-connection-list.c:1341 +msgid "Error editing connection" +msgstr "Greška prilikom uređivanja veze" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "Mrežni izlaz" +#: ../src/connection-editor/nm-connection-list.c:1342 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "Nisam našao vezu koja ima UUID „%s“" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "Metrički" +#: ../src/connection-editor/page-8021x-security.c:119 +msgid "802.1x Security" +msgstr "Bezbednost 802.1x" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "Prefiks" +#: ../src/connection-editor/page-8021x-security.c:121 +#| msgid "Could not load WiFi security user interface." +msgid "Could not load 802.1x Security user interface." +msgstr "Ne mogu da učitam bezbednosno korisničko sučelje za 802.1x." -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-8021x-security.c:139 +msgid "Use 802.1_X security for this connection" +msgstr "Koristi 802.1_X bezbednost za ovu vezu" #: ../src/connection-editor/page-dsl.c:141 msgid "Could not load DSL user interface." msgstr "Ne mogu da učitam korisničko sučelje za DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:233 #, c-format msgid "DSL connection %d" msgstr "DSL veza „%d“" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Ova opcija zaključava vezu sa mrežnim uređajem koji je određen trajnom MAK " +"adresom. Npr: 00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:275 +#| msgid "Could not load wired user interface." +msgid "Could not load ethernet user interface." +msgstr "Ne mogu da učitam korisničko sučelje za žičanu mrežu." + +#: ../src/connection-editor/page-ethernet.c:451 +#, c-format +#| msgid "Wired connection %d" +msgid "Ethernet connection %d" +msgstr "Žičana veza %d" + +#: ../src/connection-editor/page-infiniband.c:192 +msgid "Could not load InfiniBand user interface." +msgstr "Ne mogu da učitam korisničko sučelje Infini banda." + +#: ../src/connection-editor/page-infiniband.c:317 +#, c-format +msgid "InfiniBand connection %d" +msgstr "Infini band veza %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" -msgstr "Automatski (VPN)" +msgstr "Samostalno (VPN)" #: ../src/connection-editor/page-ip4.c:134 #: ../src/connection-editor/page-ip6.c:133 msgid "Automatic (VPN) addresses only" -msgstr "Automatska adresa (VPN)" +msgstr "Samo samostalne (VPN) adrese" #: ../src/connection-editor/page-ip4.c:137 #: ../src/connection-editor/page-ip6.c:136 msgid "Automatic (PPP)" -msgstr "Automatski (PPP)" +msgstr "Samostalno (PPP)" #: ../src/connection-editor/page-ip4.c:138 #: ../src/connection-editor/page-ip6.c:137 msgid "Automatic (PPP) addresses only" -msgstr "Automatska adresa (PPP)" +msgstr "Samo samostalne (PPP) adrese" #: ../src/connection-editor/page-ip4.c:140 #: ../src/connection-editor/page-ip6.c:139 msgid "Automatic (PPPoE)" -msgstr "Automatski (PPPoE)" +msgstr "Samostalno (PPPoE)" #: ../src/connection-editor/page-ip4.c:141 #: ../src/connection-editor/page-ip6.c:140 msgid "Automatic (PPPoE) addresses only" -msgstr "Automatska adresa (PPPoE)" +msgstr "Samo samostalne (PPPoE) adrese" #: ../src/connection-editor/page-ip4.c:143 msgid "Automatic (DHCP)" -msgstr "Automatski (DHCP)" +msgstr "Samostalno (DHCP)" #: ../src/connection-editor/page-ip4.c:144 msgid "Automatic (DHCP) addresses only" -msgstr "Automatska adresa (DHCP)" +msgstr "Samo samostalne (DHCP) adrese" #: ../src/connection-editor/page-ip4.c:181 #: ../src/connection-editor/page-ip6.c:204 @@ -1625,18 +2032,28 @@ #: ../src/connection-editor/page-ip4.c:197 msgid "Disabled" -msgstr "Onemogućeno" +msgstr "Isključeno" + +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "Dodatni _DNS serveri:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "Dodatni domeni _pretrage:" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Uređujem IPv4 rute za %s" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" -msgstr "Podešavanja za IPv4" +msgstr "IPv4 podešavanja" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Ne mogu da učitam IPv4 korisničko sučelje." @@ -1645,7 +2062,7 @@ msgstr "Automatski, samo adrese" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Zanemari" @@ -1653,16 +2070,16 @@ msgid "Automatic, DHCP only" msgstr "Automatski, samo DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Uređujem IPv6 rute za %s" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "IPv6 podešavanja" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Ne mogu da učitam IPv6 korisničko sučelje." @@ -1675,11 +2092,11 @@ msgstr "Nije podržana ova vrsta mobilne, širokopojasne mreže." #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:642 msgid "Select Mobile Broadband Provider Type" msgstr "Izaberite vrstu mobilnog širokopojasnog izdavača" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:677 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." @@ -1687,11 +2104,11 @@ "Izaberite tehnologiju koju koristi vaš izdavač mobilnih širokopojasnih " "usluga. Ukoliko niste sigurni, pitajte izdavača." -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:682 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "Moj izdavač koristi _GSM tehnologije (npr. GPRS, EDGE, UMTS, HSDPA)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:689 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "Moj izdavač koristi C_DMA tehnologije (npr. 1xRTT, EVDO)" @@ -1713,409 +2130,157 @@ #: ../src/wireless-security/eap-method-fast.c:277 #: ../src/wireless-security/eap-method-peap.c:246 #: ../src/wireless-security/eap-method-ttls.c:263 -msgid "MSCHAPv2" -msgstr "MSCHAPv2" - -#: ../src/connection-editor/page-ppp.c:138 -#: ../src/wireless-security/eap-method-ttls.c:247 -msgid "MSCHAP" -msgstr "MSCHAP" - -#. Translators: "none" refers to authentication methods -#: ../src/connection-editor/page-ppp.c:141 -msgid "none" -msgstr "ni jedan" - -#: ../src/connection-editor/page-ppp.c:201 -#, c-format -msgid "Editing PPP authentication methods for %s" -msgstr "Uređujem PPP načine prijave za %s" - -#: ../src/connection-editor/page-ppp.c:282 -msgid "PPP Settings" -msgstr "PPP podešavanja" - -#: ../src/connection-editor/page-ppp.c:284 -msgid "Could not load PPP user interface." -msgstr "Ne mogu da učitam PPP korisničko sučelje." - -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 -msgid "Could not load VPN user interface." -msgstr "Ne mogu da učitam VPN korisničko sučelje." - -#: ../src/connection-editor/page-vpn.c:126 -#, c-format -msgid "Could not find VPN plugin service for '%s'." -msgstr "Ne mogu da nađem uslugu VPN dodatka za „%s“." - -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 -#, c-format -msgid "VPN connection %d" -msgstr "VPN veza %d" - -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"Ova opcija zaključava vezu sa mrežnim uređajem koji je određen trajnom MAK " -"adresom. Npr: 00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 -msgid "Wired" -msgstr "Žičana" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "Ne mogu da učitam korisničko sučelje za žičanu mrežu." - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "Žičana veza %d" - -#: ../src/connection-editor/page-wired-security.c:116 -msgid "802.1x Security" -msgstr "Bezbednost 802.1x" - -#: ../src/connection-editor/page-wired-security.c:118 -msgid "Could not load Wired Security security user interface." -msgstr "Ne mogu da učitam bezbedno korisničko sučelje Žičane sigurnosti." - -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1_X security for this connection" -msgstr "Koristi 802.1_X bezbednost za ovu vezu" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "podrazumevano" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 -msgid "Wireless" -msgstr "Bežična" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "Ne mogu da učitam korisničko sučelje za bežičnu mrežu." - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "Bežična veza %d" - -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "VEP 40/128-bitni ključ" - -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 -msgid "WEP 128-bit Passphrase" -msgstr "VEP 128-bitna lozinka" - -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 -msgid "Dynamic WEP (802.1x)" -msgstr "Dinamički VEP (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 -msgid "WPA & WPA2 Personal" -msgstr "Lični VPA & VPA2" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 -msgid "WPA & WPA2 Enterprise" -msgstr "Poslovni VPA & VPA2" - -#: ../src/connection-editor/page-wireless-security.c:360 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "" -"Ne mogu da učitam bezbednosno korisničko sučelje za bežičnu mrežu; nedostaju " -"ViFi podešavanja." - -#: ../src/connection-editor/page-wireless-security.c:370 -msgid "Wireless Security" -msgstr "Bežična bezbednost" - -#: ../src/connection-editor/page-wireless-security.c:372 -msgid "Could not load WiFi security user interface." -msgstr "Ne mogu da učitam bezbednosno korisničko sučelje za bežičnu mrežu." - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "Uređujem %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "Uređujem neimenovanu vezu" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "" -"Program za uređivanje veza ne može da pronađe neke od potrebnih resursa (nije " -"nađena „.ui“ datoteka)." - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "Greška u obrazovanju prozorčeta za uređivanje veza." - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "Sa_čuvaj" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "Sačuvaj sve promene u ovoj vezi." - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "Saču_vaj..." - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "Prijavite se kako bi sačuvali ovu vezu za sve korisnike računara." - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "_Import" -msgstr "_Uvezi" - -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -msgid "E_xport" -msgstr "_Izvezi" - -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -msgid "Connection _name:" -msgstr "Ime _veze:" - -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -msgid "Connect _automatically" -msgstr "_Sam se poveži" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Dostupno svim korisnicima" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "nikad" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "sad" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "pre %d minut" -msgstr[1] "pre %d minuta" -msgstr[2] "pre %d minuta" -msgstr[3] "pre %d minut" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "pre %d sat" -msgstr[1] "pre %d sata" -msgstr[2] "pre %d sati" -msgstr[3] "pre %d sat" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "pre %d dan" -msgstr[1] "pre %d dana" -msgstr[2] "pre %d dana" -msgstr[3] "pre %d dan" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "pre %d mesec" -msgstr[1] "pre %d meseca" -msgstr[2] "pre %d meseci" -msgstr[3] "pre %d mesec" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "pre %d godine" -msgstr[1] "pre %d godine" -msgstr[2] "pre %d godina" -msgstr[3] "pre %d godine" - -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "Nije uspelo dodavanje veze" - -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "Greška prilikom čuvanja veze" - -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "Svojstvo „%s“/ „%s“ je nevažeće: „%d“" - -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "Došlo je do nepoznate greške." +msgid "MSCHAPv2" +msgstr "MSCHAPv2" -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "Greška u pokretanju uređivača" +#: ../src/connection-editor/page-ppp.c:138 +#: ../src/wireless-security/eap-method-ttls.c:247 +msgid "MSCHAP" +msgstr "MSCHAP" -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "Ne mogu da pokrenem prozorče za izmenu veze zbog nepoznate greške." +#. Translators: "none" refers to authentication methods +#: ../src/connection-editor/page-ppp.c:141 +msgid "none" +msgstr "ništa" -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "Ne mogu da napravim novu vezu" +#: ../src/connection-editor/page-ppp.c:201 +#, c-format +msgid "Editing PPP authentication methods for %s" +msgstr "Uređujem PPP načine prijave za %s" -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "Ne mogu da uredim novu vezu" +#: ../src/connection-editor/page-ppp.c:282 +msgid "PPP Settings" +msgstr "PPP podešavanja" -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "Ne mogu da uredim vezu" +#: ../src/connection-editor/page-ppp.c:284 +msgid "Could not load PPP user interface." +msgstr "Ne mogu da učitam PPP korisničko sučelje." -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "Ne mogu da obrišem vezu" +#: ../src/connection-editor/page-vpn.c:113 +msgid "Could not load VPN user interface." +msgstr "Ne mogu da učitam VPN korisničko sučelje." -#: ../src/connection-editor/nm-connection-list.c:795 +#: ../src/connection-editor/page-vpn.c:128 #, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "Da li da zaista obrišem vezu %s?" +msgid "Could not find VPN plugin service for '%s'." +msgstr "Ne mogu da nađem uslugu VPN priključka za „%s“." -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 -msgid "Cannot import VPN connection" -msgstr "Ne mogu da uvezem VPN vezu" +#: ../src/connection-editor/page-vpn.c:222 +#: ../src/connection-editor/page-vpn.c:305 +#, c-format +msgid "VPN connection %d" +msgstr "VPN veza %d" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/page-vpn.c:248 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" "Error: no VPN service type." msgstr "" -"Dodatak za VPN ne može da uveze VPN veze\n" +"Priključak za VPN ne može da uveze VPN veze\n" "\n" "Greška: nije izabrana vrsta VPN servisa." -#: ../src/connection-editor/nm-connection-list.c:945 -msgid "Could not edit imported connection" -msgstr "Ne mogu da izmenim uvezene veze" +#: ../src/connection-editor/page-vpn.c:273 +msgid "Choose a VPN Connection Type" +msgstr "Izbor vrste VPN veze" -#: ../src/connection-editor/nm-connection-list.c:1126 -msgid "Name" -msgstr "Naziv" +#: ../src/connection-editor/page-vpn.c:274 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Izaberite vrstu VPN veze koju želite da koristite za nove veze. Ukoliko se " +"vrsta VPN veze koju želite da napravite ne pojavi na spisku, možda nemate " +"instaliran ispravan VPN priključak." -#: ../src/connection-editor/nm-connection-list.c:1138 -msgid "Last Used" -msgstr "Upotrbljena" +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "osnovno" -#: ../src/connection-editor/nm-connection-list.c:1264 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "" -"Nema dostupnih VPN dodataka. Molim instalirajte jedan da biste omogućili ovo " -"dugme." +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "_Edit" -msgstr "Ure_đivanje" +#: ../src/connection-editor/page-wifi.c:464 +#| msgid "Could not load WiFi user interface." +msgid "Could not load Wi-Fi user interface." +msgstr "Ne mogu da učitam korisničko sučelje za bežičnu mrežu." -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "Edit the selected connection" -msgstr "Uređuje podatke za izabranu vezu" +#: ../src/connection-editor/page-wifi.c:669 +#, c-format +#| msgid "WiMAX connection %d" +msgid "Wi-Fi connection %d" +msgstr "Bežična veza %d" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "_Edit..." -msgstr "Ure_di..." +#: ../src/connection-editor/page-wifi-security.c:265 +#| msgctxt "Wifi/wired security" +#| msgid "None" +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "Ništa" -#: ../src/connection-editor/nm-connection-list.c:1278 -msgid "Authenticate to edit the selected connection" -msgstr "Prijavite se kako bi izmenili izabranu vezu" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "VEP 40/128-bitni ključ" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "_Delete" -msgstr "Iz_briši" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "VEP 128-bitna lozinka" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "Delete the selected connection" -msgstr "Briše izabranu vezu" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "Dinamički VEP (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "_Delete..." -msgstr "Izbri_ši..." +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "Lični VPA & VPA2" -#: ../src/connection-editor/nm-connection-list.c:1296 -msgid "Authenticate to delete the selected connection" -msgstr "Prijavite se kako bi obrisali izabranu vezu" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "Poslovni VPA & VPA2" -#: ../src/connection-editor/nm-connection-list.c:1575 -msgid "Error creating connection" -msgstr "Greška prilikom stvaranja veze" +#: ../src/connection-editor/page-wifi-security.c:395 +#| msgid "Could not load WiFi security user interface; missing WiFi setting." +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "" +"Ne mogu da učitam bezbednosno korisničko sučelje za bežičnu mrežu; nedostaju " +"podešavanja bežične mreže." -#: ../src/connection-editor/nm-connection-list.c:1576 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "Ne znam kako da napravim „%s“ vezu" +#: ../src/connection-editor/page-wifi-security.c:405 +#| msgid "Wireless Security" +msgid "Wi-Fi Security" +msgstr "Bežična bezbednost" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 -msgid "Error editing connection" -msgstr "Greška prilikom uređivanja veze" +#: ../src/connection-editor/page-wifi-security.c:407 +#| msgid "Could not load WiFi security user interface." +msgid "Could not load Wi-Fi security user interface." +msgstr "Ne mogu da učitam bezbednosno korisničko sučelje za bežičnu mrežu." -#: ../src/connection-editor/nm-connection-list.c:1632 -#, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "Ne znam kako da uredim „%s“ vezu" +#: ../src/connection-editor/page-wimax.c:160 +msgid "Could not load WiMAX user interface." +msgstr "Ne mogu da učitam korisničko sučelje za ViMAKS." -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/page-wimax.c:289 #, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "Nisam našao vezu koja ima UUID „%s“" +msgid "WiMAX connection %d" +msgstr "ViMAKS veza %d" + +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "Ne mogu da uvezem VPN vezu" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2128,29 +2293,29 @@ "\n" "Greška: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "Izaberite datoteku za uvoz" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "Već postoji datoteka „%s“." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "_Zameni" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Da li želite da zamenite %s VPN vezom pre čuvanja?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "Ne mogu da izvezem VPN vezu" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2161,115 +2326,143 @@ "\n" "Greška: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "Izvezi VPN vezu..." -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Nisam uspeo da napravim PAN vezu: %s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"Programče Upravnik mreže ne može da pronađe neke potrebne resurse („.ui“ " +"datoteka nije pronađena)." -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Vaš telefon je spreman za upotrebu!" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +#| msgid "" +#| "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" +"Nije moguće podešavanje Blututa (nisam uspeo da se povežem na D-sabirnicu: (%" +"s) %s)." -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s mreža" +#| msgid "" +#| "Bluetooth configuration not possible (error finding NetworkManager: %s)." +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" +"Nije moguće podešavanje Blututa (ne mogu da nađem Upravnika mreže: (%s) %s)." + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Upotrebite mobilni telefon kao mrežni uređaj (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Pristupite Internetu preko mobilnog telefona (DUN)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Greška: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Nisam uspeo da napravim DUN vezu: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Vaš telefon je spreman za upotrebu!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "Čarobnjak za mobilne uređaje je otkazan" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Nepoznat tip telefona (nije GSM ni CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "nepoznat modem." + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "ne mogu da se povežem na telefon." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "neočekivan prekid veze sa telefonom." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "isteklo je vreme za nalaženje podataka o telefonu." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Tražim podatke o telefonu..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "ne mogu da nađem Blutut uređaj." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." msgstr "" "Morate da omogućite podrazumevani Blutut uređaj pre podešavanja Dajl-ap veze." -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "Nije moguće Blutut podešavanje (ne mogu da se povežem na D-Bas: %s)." - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Nije moguće Blutut podešavanje (ne mogu da obrazujem D-Bas posrednika)." +msgid "Failed to create PAN connection: %s" +msgstr "Nisam uspeo da napravim PAN vezu: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "Nije moguće Blutut podešavanje (ne mogu da nađem Upravnika mreže: %s)." +msgid "%s Network" +msgstr "%s mreža" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Upotrebite mobilni telefon kao mrežni uređaj (PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "Samostalno otključajte ovaj uređaj" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Pristupite Internetu preko mobilnog telefona (DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "_Otključaj" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "Podaci o vezi" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "Aktivne veze mreže" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" -msgstr "Vaša mobilna širokopojasna veza je podešena sa sledećim parametrima" +msgstr "Vaša mobilna širokopojasna veza je podešena sa sledećim parametrima:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "Vaš uređaj:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "Vaš povajder:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "Vaš plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2280,25 +2473,25 @@ "Sada će biti napravljena veza sa vašim izdavačem mobilnih širokopojasnih " "usluga na osnovu podešavanja koje ste uneli. Ukoliko ne uspete da se " "povežete na mrežu, proverite ponovo uneta podešavanja. Za izmenu podešavanja, " -"izaberite „Veze sa mrežom“ iz izbornika Sistem >> Postavke" +"izaberite „Veze sa mrežom“ iz izbornika Sistem >> Postavke." -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "Potvrdite mobilnu širokopojasnu vezu" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "Neizlistano" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "_Izaberi moj plan:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" -msgstr "I_zabrani APN (Access Point Name) plan:" +msgstr "Izabrani _NTP plan (Naziv tačke pristupa):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2311,67 +2504,67 @@ "Ukoliko niste sigurni za način plaćanja zatražite APN plan od izdavača " "Internet usluge." -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "Izaberite plan naplate" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "Moj plan nije na spisku..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "Izaberi izdavača Internet usluga iz _spiska:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" -msgstr "Izdavač" +msgstr "Dostavljač" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Ne mogu da nađem izdavača i želim da ga unesem _ručno:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "Izdavač:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Moj izdavač koristi GSM (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Moj izdavač koristi CDMA (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "Izaberite izdavača usluga" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "Spisak država ili regiona:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "Država ili region" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "Moja zemlja nije na spisku" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "Izaberite državu ili region vašeg dostavljača usluga" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "Instaliran GSM uređaj" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "Instaliran CDMS uređaj" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." @@ -2379,103 +2572,116 @@ "Ovaj čarobnjak će vam pomoći da lako podesite mobilnu širokopojasnu vezi sa " "3G mrežom." -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "Potrebni su vam sledeći podaci:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "Ime izdavača širokopojasne usluge" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "Ime širokopojasnog plana naplate" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "" "(u nekim slučajevima) vaš plan širokopojasne naplate za APN (Naziv tačke " "pristupa)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "Napravi vezu za _ovaj mobilni, širokopojasni uređaj:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "Bilo koji uređaj" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "Podesi mobilnu, širokopojasnu vezu" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "Nova mobilna, širokopojasna veza" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "Nova..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "_Napravi" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format +#| msgid "" +#| "Passwords or encryption keys are required to access the wireless network " +#| "'%s'." msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." msgstr "" -"Potrebni su ključevi za lozinke ili šifrovanje kako bi pristupili bežičnoj " -"mreži „%s“." +"Potrebne su lozinke ili ključevi šifrovanja za pristup bežičnoj mreži „%s“." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 -msgid "Wireless Network Authentication Required" -msgstr "Potrebna je prijava na bežičnu mrežu" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +#| msgid "Wireless Network Authentication Required" +msgid "Wi-Fi Network Authentication Required" +msgstr "Potrebno je potvrđivanje identiteta za bežičnu mrežu" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 -msgid "Authentication required by wireless network" -msgstr "Bežičnu mrežu zahteva prijavu" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +#| msgid "Authentication required by wireless network" +msgid "Authentication required by Wi-Fi network" +msgstr "Bežična mreža zahteva potvrđivanje identiteta" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 -msgid "Create New Wireless Network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +#| msgid "Create New Wireless Network" +msgid "Create New Wi-Fi Network" msgstr "Napravi novu bežičnu mrežu" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "New wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +#| msgid "New wireless network" +msgid "New Wi-Fi network" msgstr "Nova bežična mreža" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 -msgid "Enter a name for the wireless network you wish to create." +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +#| msgid "Enter a name for the wireless network you wish to create." +msgid "Enter a name for the Wi-Fi network you wish to create." msgstr "Unesite naziv za novu bežičnu mrežu." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 -msgid "Connect to Hidden Wireless Network" -msgstr "Poveži se sa skrivenim bežičnim mrežama" - -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Hidden wireless network" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +#| msgid "Connect to Hidden Wireless Network" +msgid "Connect to Hidden Wi-Fi Network" +msgstr "Poveži se na skrivenu bežičnu mrežu" + +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +#| msgid "Hidden wireless network" +msgid "Hidden Wi-Fi network" msgstr "Skrivena bežična mreža" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 +#| msgid "" +#| "Enter the name and security details of the hidden wireless network you " +#| "wish to connect to." msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." msgstr "" "Unesite naziv i bezbednosne podatke za skrivenu bežičnu mrežu na koju želite " "da se povežete." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" -msgstr "_Bežična bezbednost:" +#| msgid "Wireless _security:" +msgid "Wi-Fi _security:" +msgstr "Bežična _bezbednost:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "_Veza:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "Wireless _adapter:" +#| msgid "Wireless _adapter:" +msgid "Wi-Fi _adapter:" msgstr "Bežični _uređaj:" #: ../src/main.c:73 @@ -2495,8 +2701,8 @@ "It is not intended for command-line interaction but instead runs in the " "GNOME desktop environment." msgstr "" -"Ovaj program nije namenjen za rad u komandnoj liniji, već je deo Gnom radnog " -"okruženja." +"Ovaj program nije namenjen za rad u liniji naredbi, već je deo Gnomovog " +"radnog okruženja." #: ../src/mb-menu-item.c:57 msgid "EVDO" @@ -2526,10 +2732,6 @@ msgid "HSPA" msgstr "HSPA" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "ViMAH" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "nije omogućeno" @@ -2580,39 +2782,59 @@ msgid "Default" msgstr "Podrazumevana" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "" -"Programče Upravnik mreže ne može da pronađe neke potrebne resurse („.ui“ " -"datoteka nije pronađena)." +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +#| msgid "Base Connection:" +msgid "%s connection" +msgstr "%s veza" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Nije izabrano uverenje izdavača ovlašćenja" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 +#| msgid "" +#| "Not using a Certificate Authority (CA) certificate can result in " +#| "connections to insecure, rogue wireless networks. Would you like to " +#| "choose a Certificate Authority certificate?" msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" "Ukoliko ne izaberete uverenje izdavača ovlašćenja (CA) vaša bežična veza može " "biti nesigurna ili lažna. Da li želite da izaberete uverenje?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Izaberite CA uverenje" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM, ili PKCS#12 lični ključevi (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER ili PEM uverenja (*.der, *.pem, *.crt, *.cer)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" + +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "Izaberi PAC datoteku..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC datoteke (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "Sve datoteke" + #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "Anonimno" @@ -2646,25 +2868,8 @@ msgid "Allow automatic PAC pro_visioning" msgstr "Dozvoli samostalno PAC _rezervisanje" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "Izaberi PAC datoteku..." - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "PAC datoteke (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "Sve datoteke" - #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2750,19 +2955,19 @@ msgid "Yes" msgstr "Da" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "TLS kroz tunel" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Zaštićeni EAP (PEAP)" @@ -2808,196 +3013,59 @@ msgid "WEP inde_x:" msgstr "VEP i_ndeks:" -#~ msgid "Click on this icon to connect to a wireless network" -#~ msgstr "Kliknite na ovu ikonicu radi povezivanja na bežičnu mrežu" - -#~ msgid "_Security:" -#~ msgstr "_Bezbednost:" - -#~ msgid "United Kingdom" -#~ msgstr "Ujedinjeno Kraljevstvo" - -#~ msgid "Network Manager" -#~ msgstr "Upravnik mreže" - -#~ msgid "C_onnect" -#~ msgstr "P_oveži se" - -#~ msgid "Other Wireless Network..." -#~ msgstr "Ostale bežične mreže..." - -#~ msgid "label" -#~ msgstr "natpis" - -#~ msgid "An instance of nm-applet is already running.\n" -#~ msgstr "Već je pokrenuto programče Upravnika mreže.\n" - -#~ msgid "Could not acquire the %s service. (%d)\n" -#~ msgstr "Ne mogu da dobijem %s servis. (%d)\n" - -#~ msgid "PUK code required" -#~ msgstr "Potreban je PUK kod" - -#~ msgid "PUK code is needed for the mobile broadband device" -#~ msgstr "Potreban je PUK kod za povezivanje mobilnog, širokopojasnog uređaja" - -#~ msgctxt "No wired security used" -#~ msgid "None" -#~ msgstr "Ništa" - -#~ msgctxt "Unknown/unrecognized wired or wifi security" -#~ msgid "Unknown" -#~ msgstr "Nepoznato" - -#~ msgid "translator-credits" -#~ msgstr "" -#~ "Filip Miletić\n" -#~ "Danilo Šegan\n" -#~ "Miloš Popović \n" -#~ "Prevod.org — prevod na srpski jezik." - -#~ msgid "" -#~ "Active Network Connections" -#~ msgstr "Pokrenute mrežne veze" - -#~ msgid "" -#~ "Automatic\n" -#~ "Version 0\n" -#~ "Version 1" -#~ msgstr "" -#~ "Automatski\n" -#~ "Izdanje 0\n" -#~ "Izdanje 1" - -#~ msgid "Addresses" -#~ msgstr "Adrese" - -#~ msgid "" -#~ "Automatic\n" -#~ "Automatic with manual DNS settings\n" -#~ "Manual\n" -#~ "Link-Local\n" -#~ "Shared to other computers" -#~ msgstr "" -#~ "Automatski\n" -#~ "Automatski sa ručnim DNS podešavanjem\n" -#~ "Ručno\n" -#~ "Veži-lokalno\n" -#~ "Podeli sa drugim računarima" - -#~ msgid "_Routes…" -#~ msgstr "_Rute…" - -#~ msgid "Basic" -#~ msgstr "Osnovno" - -#~ msgid "" -#~ "Any\n" -#~ "3G (UMTS/HSPA)\n" -#~ "2G (GPRS/EDGE)\n" -#~ "Prefer 3G (UMTS/HSPA)\n" -#~ "Prefer 2G (GPRS/EDGE)" -#~ msgstr "" -#~ "Bilo koja\n" -#~ "3G (UMTS/HSPA)\n" -#~ "2G (GPRS/EDGE)\n" -#~ "Najpre 3G (UMTS/HSPA)\n" -#~ "Najpre 2G (GPRS/EDGE)" +# bug: no plural forms +#~ msgid "Wireless Networks (%s)" +#~ msgstr "Bežične mreže (%s)" -#~ msgid "Authentication" -#~ msgstr "Prijava" +# bug: no plural forms +#~ msgid "Wireless Network (%s)" +#~ msgstr "Bežična mreža (%s)" -#~ msgid "Echo" -#~ msgstr "Eho" +# bug: no plural forms +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "Bežična mreža" +#~ msgstr[1] "Bežične mreže" +#~ msgstr[2] "Bežične mreže" +#~ msgstr[3] "Bežična mreža" -#~ msgid "" -#~ "Automatic\n" -#~ "10 Mb/s\n" -#~ "100 Mb/s\n" -#~ "1 Gb/s\n" -#~ "10 Gb/s" -#~ msgstr "" -#~ "Automatski\n" -#~ "10 Mb/s\n" -#~ "100 Mb/s\n" -#~ "1 Gb/s\n" -#~ "10 Gb/s" +#~ msgid "wireless is disabled" +#~ msgstr "bežična mreža je onemogućena" -#~ msgid "" -#~ "Automatic\n" -#~ "Twisted Pair (TP)\n" -#~ "Attachment Unit Interface (AUI)\n" -#~ "BNC\n" -#~ "Media Independent Interface (MII)" -#~ msgstr "" -#~ "Automatski\n" -#~ "Obrnuti Par (TP)\n" -#~ "Sučelje prikačive jedinica (AUI)\n" -#~ "BNC\n" -#~ "Sičelje nezavisno od medija (MII)" +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "bežična mreža je isključena fizičkim prekidačem" -#~ msgid "" -#~ "Automatic\n" -#~ "A (5 GHz)\n" -#~ "B/G (2.4 GHz)" -#~ msgstr "" -#~ "Automatski\n" -#~ "A (5 GHz)\n" -#~ "B/G (2.4 GHz)" +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "Pripremam vezu preko bežične mreže „%s“..." -#~ msgid "" -#~ "The connection editor could not find some required resources (the " -#~ "NetworkManager applet glade file was not found)." -#~ msgstr "" -#~ "Program za uređivanje veza ne može da pronađe neke od potrebnih resursa " -#~ "(nije nađena glejd datoteka programčeta „Upravnik veze“)." +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "Podešavam vezu preko bežične mreže „%s“..." -#~ msgid "Apply" -#~ msgstr "Primeni" +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "Zahtevam adresu za bežičnu mrežu „%s“..." -#~ msgid "Apply..." -#~ msgstr "Primeni..." +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "Povezani ste preko bežične veze „%s“" -#~ msgid "could not connect to the system bus." -#~ msgstr "ne mogu da se povežem na sistemsku magistralu." +#~ msgid "Wired" +#~ msgstr "Žičana" -#~ msgid "Country" -#~ msgstr "Zemlja" +#~ msgid "Wireless" +#~ msgstr "Bežična" -#~ msgid "Cannot start VPN connection '%s'" -#~ msgstr "Ne mogu da uspostavim VPN vezu „%s“" +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "Ne mogu da učitam bezbedno korisničko sučelje Žičane sigurnosti." -#~ msgid "" -#~ "Could not find the authentication dialog for VPN connection type '%s'. " -#~ "Contact your system administrator." -#~ msgstr "" -#~ "Ne mogu da nađem prozorče za autentifikaciju za VPN veze tipa „%s“. " -#~ "Javite se administratoru vašeg sistema." +#~ msgid "Wireless connection %d" +#~ msgstr "Bežična veza %d" #~ msgid "" -#~ "There was a problem launching the authentication dialog for VPN " -#~ "connection type '%s'. Contact your system administrator." +#~ "failed to find Bluetooth device (unknown gnome-bluetooth proxy object " +#~ "type)." #~ msgstr "" -#~ "Došlo je do neprilike pri pokretanju prozorčeta za autentifikaciju za VPN " -#~ "veze tipa „%s“. Javite se administratoru vašeg sistema." +#~ "nisam uspeo da pronađem blutut uređaj (nepoznata vrsta objekta posrednika " +#~ "gnomovog blututa)." -#~ msgid "" -#~ "The NetworkManager applet could not find some required resources. It " -#~ "cannot continue.\n" +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." #~ msgstr "" -#~ "Upravljač mrežom nije uspeo da pronađe neophodne resurse i ne može da " -#~ "nastavi rad.\n" - -#~ msgid "Select A File" -#~ msgstr "Izaberite datoteku" - -# Ne znam na šta se odnosi -# ~Miloš -#~ msgid "_Band:" -#~ msgstr "_Opseg:" - -#~ msgid "Save this connection for all users of this machine." -#~ msgstr "Postavlja podešavanja trenutne veze za sve korisnike ovog računara." - -#~ msgid "PU_K:" -#~ msgstr "P_UK:" +#~ "Nije moguće Blutut podešavanje (ne mogu da obrazujem D-Bas posrednika)." diff -Nru network-manager-applet-0.9.4.1/po/sv.po network-manager-applet-0.9.6.2+git201210311320.2620/po/sv.po --- network-manager-applet-0.9.4.1/po/sv.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/sv.po 2012-10-31 13:20:57.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: NetworkManagerApplet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-12 18:11+0100\n" -"PO-Revision-Date: 2012-03-12 18:11+0100\n" +"POT-Creation-Date: 2012-04-03 21:28+0200\n" +"PO-Revision-Date: 2012-03-30 18:43+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -31,23 +31,32 @@ #: ../nm-applet.schemas.in.h:2 msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "Ställ in detta till TRUE för att inaktivera notifieringar vid anslutning till ett nätverk." +msgstr "" +"Ställ in detta till TRUE för att inaktivera notifieringar vid anslutning " +"till ett nätverk." #: ../nm-applet.schemas.in.h:3 msgid "Disable disconnected notifications" msgstr "Inaktivera notifieringar om frånkopplingar" #: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "Ställ in detta till TRUE för att inaktivera notifieringar vid frånkoppling från ett nätverk." +msgid "" +"Set this to TRUE to disable notifications when disconnecting from a network." +msgstr "" +"Ställ in detta till TRUE för att inaktivera notifieringar vid frånkoppling " +"från ett nätverk." #: ../nm-applet.schemas.in.h:5 msgid "Suppress networks available notifications" msgstr "Visa inte notifieringar om tillgängliga nätverk" #: ../nm-applet.schemas.in.h:6 -msgid "Set this to TRUE to disable notifications when wireless networks are available." -msgstr "Ställ in detta till TRUE för att inaktivera notifieringar när trådlösa nätverk är tillgängliga." +msgid "" +"Set this to TRUE to disable notifications when wireless networks are " +"available." +msgstr "" +"Ställ in detta till TRUE för att inaktivera notifieringar när trådlösa " +"nätverk är tillgängliga." #: ../nm-applet.schemas.in.h:7 msgid "Stamp" @@ -55,15 +64,20 @@ #: ../nm-applet.schemas.in.h:8 msgid "Used to determine whether settings should be migrated to a new version." -msgstr "Används för att fastställa huruvida inställningar ska migreras till en ny version." +msgstr "" +"Används för att fastställa huruvida inställningar ska migreras till en ny " +"version." #: ../nm-applet.schemas.in.h:9 msgid "Disable WiFi Create" msgstr "Inaktivera skapande av WiFi" #: ../nm-applet.schemas.in.h:10 -msgid "Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "Ställ in till TRUE för att inaktivera skapandet av adhoc-nätverk när panelprogrammet används." +msgid "" +"Set to TRUE to disable creation of adhoc networks when using the applet." +msgstr "" +"Ställ in till TRUE för att inaktivera skapandet av adhoc-nätverk när " +"panelprogrammet används." #: ../nm-connection-editor.desktop.in.h:1 #: ../src/connection-editor/nm-connection-editor.ui.h:1 @@ -74,30 +88,22 @@ msgid "Manage and change your network connection settings" msgstr "Hantera och ändra inställningar för dina nätverksanslutningar" -#: ../src/applet-device-bt.c:174 -#: ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 -#: ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 -#: ../src/applet-device-wimax.c:279 +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 +#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Tillgängliga" -#: ../src/applet-device-bt.c:200 -#: ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 -#: ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 +#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "Du är nu ansluten till \"%s\"." -#: ../src/applet-device-bt.c:204 -#: ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 -#: ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 -#: ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 +#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Anslutning etablerad" @@ -105,64 +111,52 @@ msgid "You are now connected to the mobile broadband network." msgstr "Du är nu ansluten till det mobila bredbandsnätverket." -#: ../src/applet-device-bt.c:231 -#: ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 -#: ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "Förbereder mobila bredbandsanslutningen \"%s\"..." -#: ../src/applet-device-bt.c:234 -#: ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 -#: ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "Konfigurerar mobila bredbandsanslutningen \"%s\"..." -#: ../src/applet-device-bt.c:237 -#: ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 -#: ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "Användarautentisering krävs för mobila bredbandsanslutningen \"%s\"..." -#: ../src/applet-device-bt.c:240 -#: ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 -#: ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 +#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2504 #, c-format msgid "Requesting a network address for '%s'..." msgstr "Begär en nätverksadress för \"%s\"..." -#: ../src/applet-device-bt.c:244 -#: ../src/applet-device-cdma.c:508 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 #: ../src/applet-device-gsm.c:555 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "Mobila bredbandsanslutningen \"%s\" är aktiv" -#: ../src/applet-device-cdma.c:184 -#: ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 -#: ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Mobilt bredband (%s)" -#: ../src/applet-device-cdma.c:347 -#: ../src/applet-device-gsm.c:394 +#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 #: ../src/connection-editor/page-mobile.c:379 #: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "Mobilt bredband" @@ -175,36 +169,30 @@ msgid "You are now connected to the CDMA network." msgstr "Du är nu ansluten till CDMA-nätverket." -#: ../src/applet-device-cdma.c:503 -#: ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "Mobila bredbandsanslutningen \"%s\" är aktiv: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 -#: ../src/applet-device-gsm.c:553 +#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "roaming" -#: ../src/applet-device-cdma.c:647 -#: ../src/applet-device-cdma.c:653 +#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 msgid "CDMA network." msgstr "CDMA-nätverk." -#: ../src/applet-device-cdma.c:648 -#: ../src/applet-device-gsm.c:1198 +#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 msgid "You are now registered on the home network." msgstr "Du är nu registrerad på hemmanätverket." -#: ../src/applet-device-cdma.c:654 -#: ../src/applet-device-gsm.c:1204 +#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 msgid "You are now registered on a roaming network." msgstr "Du är nu registrerad på ett roaming-nätverk." -#: ../src/applet-device-gsm.c:213 -#: ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" @@ -255,8 +243,11 @@ #. FIXME: some warning about # of times you can enter incorrect PIN #: ../src/applet-device-gsm.c:991 #, c-format -msgid "The mobile broadband device '%s' requires a SIM PIN code before it can be used." -msgstr "Mobila bredbandsenheten \"%s\" kräver en SIM PIN-kod innan den kan användas." +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "" +"Mobila bredbandsenheten \"%s\" kräver en SIM PIN-kod innan den kan användas." #. Translators: PIN code entry label #: ../src/applet-device-gsm.c:993 @@ -279,8 +270,11 @@ #. FIXME: some warning about # of times you can enter incorrect PUK #: ../src/applet-device-gsm.c:1003 #, c-format -msgid "The mobile broadband device '%s' requires a SIM PUK code before it can be used." -msgstr "Mobila bredbandsenheten \"%s\" kräver en SIM PUK-kod innan den kan användas." +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "" +"Mobila bredbandsenheten \"%s\" kräver en SIM PUK-kod innan den kan användas." #. Translators: PUK code entry label #: ../src/applet-device-gsm.c:1005 @@ -302,8 +296,7 @@ msgid "Show PIN/PUK codes" msgstr "Visa PIN/PUK-koder" -#: ../src/applet-device-gsm.c:1197 -#: ../src/applet-device-gsm.c:1203 +#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 msgid "GSM network." msgstr "GSM-nätverk." @@ -330,8 +323,7 @@ msgstr "Trådbundet nätverk" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 -#: ../src/applet.c:1490 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1510 msgid "disconnected" msgstr "frånkopplad" @@ -352,7 +344,8 @@ #: ../src/applet-device-wired.c:306 #, c-format msgid "User authentication required for wired network connection '%s'..." -msgstr "Användarautentisering krävs för trådbundna nätverksanslutningen \"%s\"..." +msgstr "" +"Användarautentisering krävs för trådbundna nätverksanslutningen \"%s\"..." #: ../src/applet-device-wired.c:309 #, c-format @@ -380,82 +373,99 @@ msgid "(none)" msgstr "(ingen)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Networks (%s)" msgstr "Trådlösa nätverk (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:794 #, c-format msgid "Wireless Network (%s)" msgstr "Trådlösa nätverk (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:796 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Trådlöst nätverk" msgstr[1] "Trådlösa nätverk" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:829 msgid "wireless is disabled" msgstr "trådlöst läge är inaktiverat" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:830 msgid "wireless is disabled by hardware switch" msgstr "trådlöst läge är inaktiverat av maskinvaran" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:891 msgid "More networks" msgstr "Fler nätverk" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1071 msgid "Wireless Networks Available" msgstr "Trådlösa nätverk tillgängliga" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1072 msgid "Use the network menu to connect to a wireless network" msgstr "Använd nätverksmenyn för att ansluta till ett trådlöst nätverk" -#: ../src/applet-device-wifi.c:1085 -#: ../src/applet.c:906 +#: ../src/applet-device-wifi.c:1075 ../src/applet.c:926 msgid "Don't show this message again" msgstr "Visa inte detta meddelandet igen" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1267 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Du är nu ansluten till det trådlösa nätverket \"%s\"." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1298 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "Förbereder trådlösa nätverksanslutningen \"%s\"..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1301 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "Konfigurerar trådlösa nätverksanslutningen \"%s\"..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1304 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "Användarautentisering krävs för trådlösa nätverket \"%s\"..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1307 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "Begär en trådlös nätverksadress för \"%s\"..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1328 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "Trådlösa nätverksanslutningen \"%s\" är aktiv: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1333 #, c-format msgid "Wireless network connection '%s' active" msgstr "Trådlösa nätverksanslutningen \"%s\" är aktiv" +#: ../src/applet-device-wifi.c:1381 +msgid "Failed to activate connection" +msgstr "Misslyckades med att aktivera anslutningen" + +#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 +#: ../src/applet.c:492 ../src/applet.c:536 ../src/applet.c:562 +msgid "Unknown error" +msgstr "Okänt fel" + +#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 +#: ../src/applet.c:495 ../src/applet.c:565 +msgid "Connection failure" +msgstr "Anslutningsfel" + +#: ../src/applet-device-wifi.c:1400 +msgid "Failed to add new connection" +msgstr "Misslyckades med att lägga till nya anslutningen" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -482,9 +492,9 @@ msgstr "Fel vid visning av anslutningsinformation:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -492,203 +502,195 @@ msgid "Dynamic WEP" msgstr "Dynamisk WEP" -#: ../src/applet-dialogs.c:113 -#: ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 -#: ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "Ingen" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-dialogs.c:277 #, c-format msgid "%s (default)" msgstr "%s (standard)" -#: ../src/applet-dialogs.c:347 -#: ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:349 -#: ../src/applet-dialogs.c:487 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Okänd" -#: ../src/applet-dialogs.c:362 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:364 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "okänd" -#: ../src/applet-dialogs.c:376 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "okänd" -#: ../src/applet-dialogs.c:411 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Ethernet (%s)" -#: ../src/applet-dialogs.c:414 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:421 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:423 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:427 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:433 -#: ../src/applet-dialogs.c:792 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "Allmänt" -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "Gränssnitt:" -#: ../src/applet-dialogs.c:453 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "Hårdvaruadress:" #. Driver -#: ../src/applet-dialogs.c:461 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "Drivrutin:" -#: ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "Hastighet:" -#: ../src/applet-dialogs.c:500 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "Säkerhet:" -#: ../src/applet-dialogs.c:513 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:526 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:543 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:554 -#: ../src/applet-dialogs.c:661 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP-adress:" -#: ../src/applet-dialogs.c:556 -#: ../src/applet-dialogs.c:572 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "Okänd" -#: ../src/applet-dialogs.c:570 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "Broadcast-adress:" #. Prefix -#: ../src/applet-dialogs.c:579 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "Subnätsmask:" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "Okänd" -#: ../src/applet-dialogs.c:589 -#: ../src/applet-dialogs.c:676 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "Standardväg:" -#: ../src/applet-dialogs.c:601 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "Primär DNS:" -#: ../src/applet-dialogs.c:610 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "Sekundär DNS:" -#: ../src/applet-dialogs.c:620 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "Tertiär DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:635 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:644 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "Ignorera" -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "VPN-typ:" -#: ../src/applet-dialogs.c:804 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "VPN-gateway:" -#: ../src/applet-dialogs.c:810 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "VPN-användarnamn:" -#: ../src/applet-dialogs.c:816 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "VPN-banner:" -#: ../src/applet-dialogs.c:822 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "Basanslutning:" -#: ../src/applet-dialogs.c:824 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "Okänd" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "Inga giltiga aktiva anslutningar hittades!" -#: ../src/applet-dialogs.c:940 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -698,95 +700,123 @@ "Copyright © 2005-2008 Novell, Inc.\n" "och många andra bidragsgivare och översättare" -#: ../src/applet-dialogs.c:943 -msgid "Notification area applet for managing your network devices and connections." -msgstr "Panelprogram i notifieringsytan för hantering av dina nätverksenheter och nätverksanslutningar." +#: ../src/applet-dialogs.c:942 +msgid "" +"Notification area applet for managing your network devices and connections." +msgstr "" +"Panelprogram i notifieringsytan för hantering av dina nätverksenheter och " +"nätverksanslutningar." -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "Webbplats för Nätverkshanterare" -#: ../src/applet-dialogs.c:960 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "Saknar resurser" -#: ../src/applet-dialogs.c:985 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "Nätverkslösenord för mobilt bredband" -#: ../src/applet-dialogs.c:994 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "Ett lösenord krävs för att ansluta till \"%s\"." -#: ../src/applet-dialogs.c:1013 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "Lösenord:" -#: ../src/applet.c:995 +#: ../src/applet.c:490 +msgid "Failed to add/activate connection" +msgstr "Misslyckades med att lägga till/aktivera anslutningen" + +#: ../src/applet.c:534 +msgid "Device disconnect failed" +msgstr "Frånkoppling av enhet misslyckades" + +#: ../src/applet.c:539 +msgid "Disconnect failure" +msgstr "Fel vid frånkoppling" + +#: ../src/applet.c:560 +msgid "Connection activation failed" +msgstr "Aktivering av anslutning misslyckades" + +#: ../src/applet.c:1015 #, c-format msgid "" "\n" -"The VPN connection '%s' failed because the network connection was interrupted." +"The VPN connection '%s' failed because the network connection was " +"interrupted." msgstr "" "\n" -"VPN-anslutningen \"%s\" misslyckades på grund av att nätverksanslutningen avbröts." +"VPN-anslutningen \"%s\" misslyckades på grund av att nätverksanslutningen " +"avbröts." -#: ../src/applet.c:998 +#: ../src/applet.c:1018 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service stopped unexpectedly." msgstr "" "\n" -"VPN-anslutningen \"%s\" misslyckades på grund av att VPN-tjänsten oväntat stoppades." +"VPN-anslutningen \"%s\" misslyckades på grund av att VPN-tjänsten oväntat " +"stoppades." -#: ../src/applet.c:1001 +#: ../src/applet.c:1021 #, c-format msgid "" "\n" -"The VPN connection '%s' failed because the VPN service returned invalid configuration." +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." msgstr "" "\n" -"VPN-anslutningen \"%s\" misslyckades på grund av att VPN-tjänsten svarade med ogiltig konfiguration." +"VPN-anslutningen \"%s\" misslyckades på grund av att VPN-tjänsten svarade " +"med ogiltig konfiguration." -#: ../src/applet.c:1004 +#: ../src/applet.c:1024 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the connection attempt timed out." msgstr "" "\n" -"VPN-anslutningen \"%s\" misslyckades på grund av att tidsgränsen för anslutningsförsöket överstegs." +"VPN-anslutningen \"%s\" misslyckades på grund av att tidsgränsen för " +"anslutningsförsöket överstegs." -#: ../src/applet.c:1007 +#: ../src/applet.c:1027 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service did not start in time." msgstr "" "\n" -"VPN-anslutningen \"%s\" misslyckades på grund av att VPN-tjänsten inte startade i tid." +"VPN-anslutningen \"%s\" misslyckades på grund av att VPN-tjänsten inte " +"startade i tid." -#: ../src/applet.c:1010 +#: ../src/applet.c:1030 #, c-format msgid "" "\n" "The VPN connection '%s' failed because the VPN service failed to start." msgstr "" "\n" -"VPN-anslutningen \"%s\" misslyckades på grund av att VPN-tjänsten misslyckades med att starta." +"VPN-anslutningen \"%s\" misslyckades på grund av att VPN-tjänsten " +"misslyckades med att starta." -#: ../src/applet.c:1013 +#: ../src/applet.c:1033 #, c-format msgid "" "\n" "The VPN connection '%s' failed because there were no valid VPN secrets." msgstr "" "\n" -"VPN-anslutningen \"%s\" misslyckades på grund av att det inte fanns några giltiga VPN-hemligheter." +"VPN-anslutningen \"%s\" misslyckades på grund av att det inte fanns några " +"giltiga VPN-hemligheter." -#: ../src/applet.c:1016 +#: ../src/applet.c:1036 #, c-format msgid "" "\n" @@ -795,7 +825,7 @@ "\n" "VPN-anslutningen \"%s\" misslyckades på grund av ogiltiga VPN-hemligheter." -#: ../src/applet.c:1023 +#: ../src/applet.c:1043 #, c-format msgid "" "\n" @@ -804,25 +834,28 @@ "\n" "VPN-anslutningen \"%s\" misslyckades." -#: ../src/applet.c:1041 +#: ../src/applet.c:1061 #, c-format msgid "" "\n" -"The VPN connection '%s' disconnected because the network connection was interrupted." +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." msgstr "" "\n" -"VPN-anslutningen \"%s\" kopplades från på grund av att nätverksanslutningen avbröts." +"VPN-anslutningen \"%s\" kopplades från på grund av att nätverksanslutningen " +"avbröts." -#: ../src/applet.c:1044 +#: ../src/applet.c:1064 #, c-format msgid "" "\n" "The VPN connection '%s' disconnected because the VPN service stopped." msgstr "" "\n" -"VPN-anslutningen \"%s\" kopplades från på grund av att VPN-tjänsten stoppades." +"VPN-anslutningen \"%s\" kopplades från på grund av att VPN-tjänsten " +"stoppades." -#: ../src/applet.c:1050 +#: ../src/applet.c:1070 #, c-format msgid "" "\n" @@ -831,17 +864,30 @@ "\n" "VPN-anslutningen \"%s\" kopplades från." -#: ../src/applet.c:1084 +#: ../src/applet.c:1100 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN-anslutningen etablerades.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1102 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN-anslutningen etablerades.\n" + +#: ../src/applet.c:1104 msgid "VPN Login Message" msgstr "VPN-inloggningsmeddelande" -#: ../src/applet.c:1090 -#: ../src/applet.c:1098 -#: ../src/applet.c:1148 +#: ../src/applet.c:1110 ../src/applet.c:1118 ../src/applet.c:1168 msgid "VPN Connection Failed" msgstr "VPN-anslutningen misslyckades" -#: ../src/applet.c:1155 +#: ../src/applet.c:1175 #, c-format msgid "" "\n" @@ -850,11 +896,12 @@ "%s" msgstr "" "\n" -"VPN-anslutningen \"%s\" misslyckades på grund av att VPN-tjänsten misslyckades med att starta.\n" +"VPN-anslutningen \"%s\" misslyckades på grund av att VPN-tjänsten " +"misslyckades med att starta.\n" "\n" "%s" -#: ../src/applet.c:1158 +#: ../src/applet.c:1178 #, c-format msgid "" "\n" @@ -867,140 +914,139 @@ "\n" "%s" -#: ../src/applet.c:1478 +#: ../src/applet.c:1498 msgid "device not ready (firmware missing)" msgstr "enheten är inte redo (fast programvara saknas)" -#: ../src/applet.c:1480 +#: ../src/applet.c:1500 msgid "device not ready" msgstr "enheten är inte redo" -#: ../src/applet.c:1506 +#: ../src/applet.c:1526 msgid "Disconnect" msgstr "Koppla från" -#: ../src/applet.c:1520 +#: ../src/applet.c:1540 msgid "device not managed" msgstr "enheten hanteras inte" -#: ../src/applet.c:1564 +#: ../src/applet.c:1584 msgid "No network devices available" msgstr "Inga nätverksenheter finns tillgängliga" -#: ../src/applet.c:1652 +#: ../src/applet.c:1672 msgid "_VPN Connections" msgstr "_VPN-anslutningar" -#: ../src/applet.c:1709 +#: ../src/applet.c:1729 msgid "_Configure VPN..." msgstr "_Konfigurera VPN..." -#: ../src/applet.c:1713 +#: ../src/applet.c:1733 msgid "_Disconnect VPN" msgstr "Koppla _från VPN" -#: ../src/applet.c:1811 +#: ../src/applet.c:1831 msgid "NetworkManager is not running..." msgstr "Nätverkshanteraren är inte igång..." -#: ../src/applet.c:1816 -#: ../src/applet.c:2609 +#: ../src/applet.c:1836 ../src/applet.c:2635 msgid "Networking disabled" msgstr "Nätverk inaktiverat" #. 'Enable Networking' item -#: ../src/applet.c:2037 +#: ../src/applet.c:2057 msgid "Enable _Networking" msgstr "Aktivera _nätverk" #. 'Enable Wireless' item -#: ../src/applet.c:2046 +#: ../src/applet.c:2066 msgid "Enable _Wireless" msgstr "Aktivera _trådlöst nätverk" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 +#: ../src/applet.c:2075 msgid "Enable _Mobile Broadband" msgstr "Aktivera _mobilt bredband" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 +#: ../src/applet.c:2084 msgid "Enable WiMA_X Mobile Broadband" msgstr "Aktivera mobilt bredband med WiMA_X " #. Toggle notifications item -#: ../src/applet.c:2075 +#: ../src/applet.c:2095 msgid "Enable N_otifications" msgstr "Aktivera n_otifieringar" #. 'Connection Information' item -#: ../src/applet.c:2086 +#: ../src/applet.c:2106 msgid "Connection _Information" msgstr "Anslutnings_information" #. 'Edit Connections...' item -#: ../src/applet.c:2096 +#: ../src/applet.c:2116 msgid "Edit Connections..." msgstr "Redigera anslutningar..." #. Help item -#: ../src/applet.c:2110 +#: ../src/applet.c:2130 msgid "_Help" msgstr "_Hjälp" #. About item -#: ../src/applet.c:2119 +#: ../src/applet.c:2139 msgid "_About" msgstr "_Om" -#: ../src/applet.c:2296 +#: ../src/applet.c:2316 msgid "Disconnected" msgstr "Frånkopplad" -#: ../src/applet.c:2297 +#: ../src/applet.c:2317 msgid "The network connection has been disconnected." msgstr "Nätverksanslutningen har kopplats från." -#: ../src/applet.c:2478 +#: ../src/applet.c:2498 #, c-format msgid "Preparing network connection '%s'..." msgstr "Förbereder nätverksanslutningen \"%s\"..." -#: ../src/applet.c:2481 +#: ../src/applet.c:2501 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Användarautentisering krävs för nätverksanslutningen \"%s\"..." -#: ../src/applet.c:2487 +#: ../src/applet.c:2507 #, c-format msgid "Network connection '%s' active" msgstr "Nätverksanslutningen \"%s\" är aktiv" -#: ../src/applet.c:2565 +#: ../src/applet.c:2590 #, c-format msgid "Starting VPN connection '%s'..." msgstr "Startar VPN-anslutningen \"%s\"..." -#: ../src/applet.c:2568 +#: ../src/applet.c:2593 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "Användarautentisering krävs för VPN-anslutningen \"%s\"..." -#: ../src/applet.c:2571 +#: ../src/applet.c:2596 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "Begär en VPN-adress för \"%s\"..." -#: ../src/applet.c:2574 +#: ../src/applet.c:2599 #, c-format msgid "VPN connection '%s' active" msgstr "VPN-anslutningen \"%s\" är aktiv" -#: ../src/applet.c:2613 +#: ../src/applet.c:2640 msgid "No network connection" msgstr "Ingen nätverksanslutning" -#: ../src/applet.c:3263 +#: ../src/applet.c:3354 msgid "NetworkManager Applet" msgstr "Panelprogram för nätverkshantering" @@ -1020,13 +1066,11 @@ msgid "Active Network Connections" msgstr "Aktiva nätverksanslutningar" -#: ../src/wired-8021x.ui.h:1 -#: ../src/wired-dialog.c:104 +#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 msgid "Wired 802.1X authentication" msgstr "Trådbunden 802.1X-autentisering" -#: ../src/wired-8021x.ui.h:2 -#: ../src/libnm-gtk/wifi.ui.h:3 +#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 msgid "_Network name:" msgstr "_Nätverksnamn:" @@ -1034,16 +1078,22 @@ msgid "automatic" msgstr "automatisk" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." -msgstr "Misslyckades med att uppdatera anslutningens hemligheter på grund av ett okänt fel." +msgstr "" +"Misslyckades med att uppdatera anslutningens hemligheter på grund av ett " +"okänt fel." #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 #: ../src/connection-editor/ce-page-ip4.ui.h:8 #: ../src/connection-editor/ce-page-ip6.ui.h:8 -msgid "IP addresses identify your computer on the network. Click the \"Add\" button to add an IP address." -msgstr "IP-adresser för att identifiera din dator på nätverket. Klicka på knappen \"Lägg till\" för att lägga till en IP-adress." +msgid "" +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." +msgstr "" +"IP-adresser för att identifiera din dator på nätverket. Klicka på knappen " +"\"Lägg till\" för att lägga till en IP-adress." #: ../src/connection-editor/ce-ip4-routes.ui.h:2 #: ../src/connection-editor/ce-ip6-routes.ui.h:2 @@ -1057,8 +1107,12 @@ #: ../src/connection-editor/ce-ip4-routes.ui.h:4 #: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "If enabled, this connection will never be used as the default network connection." -msgstr "Om aktiverad så kommer denna anslutning aldrig att användas som standardnätverksanslutning." +msgid "" +"If enabled, this connection will never be used as the default network " +"connection." +msgstr "" +"Om aktiverad så kommer denna anslutning aldrig att användas som " +"standardnätverksanslutning." #: ../src/connection-editor/ce-page-dsl.ui.h:1 #: ../src/connection-editor/ce-page-mobile.ui.h:8 @@ -1134,13 +1188,23 @@ msgstr "Adresser" #: ../src/connection-editor/ce-page-ip4.ui.h:9 -msgid "The DHCP client identifier allows the network administrator to customize your computer's configuration. If you wish to use a DHCP client identifier, enter it here." -msgstr "DHCP-klientidentifieraren tillåter att nätverksadministratören anpassar din dators konfiguration. Om du vill använda en DHCP-klientidentifierare så kan du ange den här." +msgid "" +"The DHCP client identifier allows the network administrator to customize " +"your computer's configuration. If you wish to use a DHCP client identifier, " +"enter it here." +msgstr "" +"DHCP-klientidentifieraren tillåter att nätverksadministratören anpassar din " +"dators konfiguration. Om du vill använda en DHCP-klientidentifierare så kan " +"du ange den här." #: ../src/connection-editor/ce-page-ip4.ui.h:10 #: ../src/connection-editor/ce-page-ip6.ui.h:9 -msgid "Domains used when resolving host names. Use commas to separate multiple domains." -msgstr "Domäner som används för att slå upp värdnamn. Använd kommatecken för att separera flera domäner." +msgid "" +"Domains used when resolving host names. Use commas to separate multiple " +"domains." +msgstr "" +"Domäner som används för att slå upp värdnamn. Använd kommatecken för att " +"separera flera domäner." #: ../src/connection-editor/ce-page-ip4.ui.h:11 msgid "D_HCP client ID:" @@ -1158,16 +1222,25 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:14 #: ../src/connection-editor/ce-page-ip6.ui.h:12 -msgid "IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses." -msgstr "IP-adresser för domännamnsservrar som används för att slå upp värdnamn. Använd kommatecken för att separera flera adresser till domännamnsservrar." +msgid "" +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." +msgstr "" +"IP-adresser för domännamnsservrar som används för att slå upp värdnamn. " +"Använd kommatecken för att separera flera adresser till domännamnsservrar." #: ../src/connection-editor/ce-page-ip4.ui.h:15 msgid "Require IPv_4 addressing for this connection to complete" msgstr "Kräv IPv_4-adressering för att färdigställa denna anslutning" #: ../src/connection-editor/ce-page-ip4.ui.h:16 -msgid "When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "Vid anslutning till IPv6-kapabla nätverk, tillåt anslutningen att färdigställas om IPv4-konfigurationen misslyckas men IPv6-konfigurationen lyckas." +msgid "" +"When connecting to IPv6-capable networks, allows the connection to complete " +"if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "" +"Vid anslutning till IPv6-kapabla nätverk, tillåt anslutningen att " +"färdigställas om IPv4-konfigurationen misslyckas men IPv6-konfigurationen " +"lyckas." #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 @@ -1179,8 +1252,13 @@ msgstr "Kräv IPv_6-adressering för att färdigställa denna anslutning" #: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds." -msgstr "Vid anslutning till IPv4-kapabla nätverk, tillåt anslutningen att färdigställas om IPv6-konfigurationen misslyckas men IPv4-konfigurationen lyckas." +msgid "" +"When connecting to IPv4-capable networks, allows the connection to complete " +"if IPv6 configuration fails but IPv4 configuration succeeds." +msgstr "" +"Vid anslutning till IPv4-kapabla nätverk, tillåt anslutningen att " +"färdigställas om IPv6-konfigurationen misslyckas men IPv4-konfigurationen " +"lyckas." #: ../src/connection-editor/ce-page-mobile.ui.h:1 msgid "Any" @@ -1351,8 +1429,14 @@ #: ../src/connection-editor/ce-page-wired.ui.h:16 #: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "MAC-adressen som anges här kommer att användas som maskinvaruadress för nätverksenheten som denna anslutning är aktiverad på. Denna funktion är känd som MAC-kloning eller \"spoofing\". Exempel: 00:11:22:33:44:55" +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"MAC-adressen som anges här kommer att användas som maskinvaruadress för " +"nätverksenheten som denna anslutning är aktiverad på. Denna funktion är " +"känd som MAC-kloning eller \"spoofing\". Exempel: 00:11:22:33:44:55" #: ../src/connection-editor/ce-page-wired.ui.h:17 #: ../src/connection-editor/ce-page-wireless.ui.h:7 @@ -1397,8 +1481,12 @@ msgstr "_Frekvens:" #: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "This option locks this connection to the wireless access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "Detta alternativ låser denna anslutning till den trådlösa åtkomstpunkten (AP) som anges av det BSSID som anges här. Exempel: 00:11:22:33:44:55" +msgid "" +"This option locks this connection to the wireless access point (AP) " +"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Detta alternativ låser denna anslutning till den trådlösa åtkomstpunkten " +"(AP) som anges av det BSSID som anges här. Exempel: 00:11:22:33:44:55" #: ../src/connection-editor/ce-page-wireless.ui.h:16 msgid "_BSSID:" @@ -1469,11 +1557,15 @@ msgstr "Microsoft Challenge Handshake Authentication Protocol version 2" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "In most cases, the provider's PPP servers will support all authentication methods. If connections fail, try disabling support for some methods." -msgstr "I de flesta fall har leverantörens PPP-servrar stöd för alla autentiseringsmetoder. Om anslutningar misslyckas så kan du prova att inaktivera stöd för vissa metoder." +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "" +"I de flesta fall har leverantörens PPP-servrar stöd för alla " +"autentiseringsmetoder. Om anslutningar misslyckas så kan du prova att " +"inaktivera stöd för vissa metoder." -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 -#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 #: ../src/wireless-security/eap-method-fast.ui.h:1 #: ../src/wireless-security/eap-method-peap.ui.h:1 #: ../src/wireless-security/eap-method-ttls.ui.h:1 @@ -1487,8 +1579,14 @@ msgstr "Välj en VPN-anslutningstyp" #: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed." -msgstr "Välj den VPN-typ som du önskar att använda för den nya anslutningen. Om den typ av VPN-anslutning du önskar skapa inte finns i listan så kanske du inte har den korrekta VPN-insticksmodulen installerad." +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"Välj den VPN-typ som du önskar att använda för den nya anslutningen. Om den " +"typ av VPN-anslutning du önskar skapa inte finns i listan så kanske du inte " +"har den korrekta VPN-insticksmodulen installerad." #: ../src/connection-editor/ce-vpn-wizard.ui.h:4 msgid "Create…" @@ -1525,7 +1623,7 @@ #: ../src/connection-editor/page-dsl.c:139 #: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1638,12 +1736,17 @@ msgstr "Välj typ av mobil bredbandsleverantör" #: ../src/connection-editor/page-mobile.c:674 -msgid "Select the technology your mobile broadband provider uses. If you are unsure, ask your provider." -msgstr "Välj den teknik som din leverantör av mobilt bredband använder. Fråga din leverantör om du är osäker." +msgid "" +"Select the technology your mobile broadband provider uses. If you are " +"unsure, ask your provider." +msgstr "" +"Välj den teknik som din leverantör av mobilt bredband använder. Fråga din " +"leverantör om du är osäker." #: ../src/connection-editor/page-mobile.c:679 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "Min leverantör använder _GSM-baserad teknik (t.ex. GPRS, EDGE, UMTS, HSDPA)" +msgstr "" +"Min leverantör använder _GSM-baserad teknik (t.ex. GPRS, EDGE, UMTS, HSDPA)" #: ../src/connection-editor/page-mobile.c:686 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" @@ -1695,7 +1798,7 @@ #: ../src/connection-editor/page-vpn.c:109 #: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1709,19 +1812,23 @@ msgstr "Kunde inte hitta VPN-instickstjänst för \"%s\"." #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "VPN-anslutning %d" #: ../src/connection-editor/page-wired.c:89 #: ../src/connection-editor/page-wireless.c:94 -msgid "This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "Detta alternativ låser denna anslutning till nätverksenheten som anges av den permanenta MAC-adressen som anges här. Exempel: 00:11:22:33:44:55" +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"Detta alternativ låser denna anslutning till nätverksenheten som anges av " +"den permanenta MAC-adressen som anges här. Exempel: 00:11:22:33:44:55" #: ../src/connection-editor/page-wired.c:272 #: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Trådbundet" @@ -1734,15 +1841,15 @@ msgid "Wired connection %d" msgstr "Trådbunden anslutning %d" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "802.1x-säkerhet" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "Kunde inte läsa in användargränssnitt för trådad säkerhet." -#: ../src/connection-editor/page-wired-security.c:136 +#: ../src/connection-editor/page-wired-security.c:139 msgid "Use 802.1_X security for this connection" msgstr "Använd 802.1_X-säkerhet för denna anslutning" @@ -1760,7 +1867,7 @@ #: ../src/connection-editor/page-wireless.c:457 #: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Trådlöst" @@ -1773,40 +1880,42 @@ msgid "Wireless connection %d" msgstr "Trådlös anslutning %d" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP 40/128-bitars nyckel (Hexadecimal eller ASCII)" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128-bitars lösenfras" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "Dynamisk WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA och WPA2 Personal" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA och WPA2 Enterprise" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "Kunde inte läas in användargränssnitt för WiFi-säkerhet; saknar WiFi-inställning." +msgstr "" +"Kunde inte läas in användargränssnitt för WiFi-säkerhet; saknar WiFi-" +"inställning." -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "Trådlös säkerhet" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "Kunde inte läsa in användargränssnitt för WiFi-säkerhet." @@ -1819,29 +1928,34 @@ msgid "Editing un-named connection" msgstr "Redigerar namnlös anslutning" -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "The connection editor could not find some required resources (the .ui file was not found)." -msgstr "Anslutningsredigeraren kunde inte hitta en del nödvändiga resurser (.ui-filen hittades inte)." +#: ../src/connection-editor/nm-connection-editor.c:291 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "" +"Anslutningsredigeraren kunde inte hitta en del nödvändiga resurser (.ui-" +"filen hittades inte)." -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:394 msgid "Error creating connection editor dialog." msgstr "Fel vid skapande av dialogruta för anslutningsredigerare." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:406 msgid "_Save" msgstr "_Spara" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "Save any changes made to this connection." msgstr "Spara alla ändringar gjorda för denna anslutning." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "_Save..." msgstr "_Spara..." -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "Authenticate to save this connection for all users of this machine." -msgstr "Autentisera för att spara denna anslutning för alla användare på datorn." +msgstr "" +"Autentisera för att spara denna anslutning för alla användare på datorn." #: ../src/connection-editor/nm-connection-editor.ui.h:5 msgid "_Import" @@ -1860,8 +1974,8 @@ msgstr "Anslut a_utomatiskt" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Tillgänglig för alla användare" +msgid "A_vailable to all users" +msgstr "Ti_llgänglig för alla användare" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -1933,9 +2047,13 @@ #: ../src/connection-editor/nm-connection-list.c:546 #: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "The connection editor dialog could not be initialized due to an unknown error." -msgstr "Anslutningsredigerarens dialogruta kunde inte initieras på grund av ett okänt fel." +#: ../src/connection-editor/nm-connection-list.c:885 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "" +"Anslutningsredigerarens dialogruta kunde inte initieras på grund av ett " +"okänt fel." #: ../src/connection-editor/nm-connection-list.c:557 msgid "Could not create new connection" @@ -1958,12 +2076,12 @@ msgid "Are you sure you wish to delete the connection %s?" msgstr "Är du säker på att du vill ta bort anslutningen %s?" -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "Kan inte importera VPN-anslutning" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -1973,112 +2091,116 @@ "\n" "Fel: ingen VPN-tjänstetyp." -#: ../src/connection-editor/nm-connection-list.c:945 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "Kunde inte redigera importerad anslutning" -#: ../src/connection-editor/nm-connection-list.c:1126 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "Namn" -#: ../src/connection-editor/nm-connection-list.c:1138 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "Senast använd" -#: ../src/connection-editor/nm-connection-list.c:1264 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." -msgstr "Ingen VPN-insticksmodul finns tillgänglig. Installera en för att aktivera denna knapp." +msgstr "" +"Ingen VPN-insticksmodul finns tillgänglig. Installera en för att aktivera " +"denna knapp." -#: ../src/connection-editor/nm-connection-list.c:1275 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "R_edigera" -#: ../src/connection-editor/nm-connection-list.c:1276 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "Redigera den markerade anslutningen" -#: ../src/connection-editor/nm-connection-list.c:1277 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "R_edigera..." -#: ../src/connection-editor/nm-connection-list.c:1278 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "Autentisera för att redigera den markerade anslutningen" -#: ../src/connection-editor/nm-connection-list.c:1293 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "_Ta bort" -#: ../src/connection-editor/nm-connection-list.c:1294 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "Ta bort den markerade anslutningen" -#: ../src/connection-editor/nm-connection-list.c:1295 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "_Ta bort..." -#: ../src/connection-editor/nm-connection-list.c:1296 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "Autentisera för att ta bort den markerade anslutningen" -#: ../src/connection-editor/nm-connection-list.c:1575 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "Fel vid skapande av anslutningen" -#: ../src/connection-editor/nm-connection-list.c:1576 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "Vet inte hur man skapar \"%s\"-anslutningar" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "Fel vid redigering av anslutningen" -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "Vet inte hur man redigerar \"%s\"-anslutningar" -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "Kunde inte hitta en anslutning med UUID \"%s\"" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" -"The file '%s' could not be read or does not contain recognized VPN connection information\n" +"The file '%s' could not be read or does not contain recognized VPN " +"connection information\n" "\n" "Error: %s." msgstr "" -"Filen \"%s\" kunde inte läsas eller innehåller inte känd information om VPN-anslutningar\n" +"Filen \"%s\" kunde inte läsas eller innehåller inte känd information om VPN-" +"anslutningar\n" "\n" "Fel: %s." -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "Välj fil att importera" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "En fil med namnet \"%s\" finns redan." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "_Ersätt" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Vill du ersätta %s med VPN-anslutningen som du sparar?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "Kan inte exportera VPN-anslutning" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2089,7 +2211,7 @@ "\n" "Fel: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "Exportera VPN-anslutning..." @@ -2148,22 +2270,33 @@ msgstr "kunde inte hitta blåtandsenheten." #: ../src/gnome-bluetooth/bt-widget.c:980 -msgid "The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection." -msgstr "Standardadaptern för Bluetooth måste vara aktiverad innan en uppringd nätverksanslutning används." +msgid "" +"The default Bluetooth adapter must be enabled before setting up a Dial-Up-" +"Networking connection." +msgstr "" +"Standardadaptern för Bluetooth måste vara aktiverad innan en uppringd " +"nätverksanslutning används." #: ../src/gnome-bluetooth/bt-widget.c:1012 #, c-format msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "Blåtandskonfiguration är inte möjlig (misslyckades med att ansluta till D-Bus: %s)." +msgstr "" +"Blåtandskonfiguration är inte möjlig (misslyckades med att ansluta till D-" +"Bus: %s)." #: ../src/gnome-bluetooth/bt-widget.c:1022 msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "Blåtandskonfiguration är inte möjlig (misslyckades med att skapa D-Bus-proxy)." +msgstr "" +"Blåtandskonfiguration är inte möjlig (misslyckades med att skapa D-Bus-" +"proxy)." #: ../src/gnome-bluetooth/bt-widget.c:1031 #, c-format -msgid "Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "Blåtandskonfiguration är inte möjlig (fel vid sökning efter NetworkManager: %s)." +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: %s)." +msgstr "" +"Blåtandskonfiguration är inte möjlig (fel vid sökning efter NetworkManager: " +"%s)." #: ../src/gnome-bluetooth/bt-widget.c:1098 msgid "Use your mobile phone as a network device (PAN/NAP)" @@ -2174,8 +2307,10 @@ msgstr "Få åtkomst till Internet med din mobiltelefon (DUN)" #: ../src/libnm-gtk/nm-mobile-wizard.c:198 -msgid "Your mobile broadband connection is configured with the following settings:" -msgstr "Din mobila bredbandsanslutning är konfigurerad med följande inställningar:" +msgid "" +"Your mobile broadband connection is configured with the following settings:" +msgstr "" +"Din mobila bredbandsanslutning är konfigurerad med följande inställningar:" #. Device #: ../src/libnm-gtk/nm-mobile-wizard.c:205 @@ -2193,8 +2328,18 @@ msgstr "Din betalningstyp:" #: ../src/libnm-gtk/nm-mobile-wizard.c:252 -msgid "A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose \"Network Connections\" from the System >> Preferences menu." -msgstr "En anslutning kommer nu att göras till din leverantör av mobilt bredband med de inställningar som du valde. Om anslutningen misslyckas eller om du inte kan komma åt några nätverksresurser så bör du kontrollera dina inställningar igen. För att ändra dina inställningar för din mobila bredbandsanslutning, välj \"Nätverksanslutningar\" från menyn System >> Inställningar." +msgid "" +"A connection will now be made to your mobile broadband provider using the " +"settings you selected. If the connection fails or you cannot access network " +"resources, double-check your settings. To modify your mobile broadband " +"connection settings, choose \"Network Connections\" from the System >> " +"Preferences menu." +msgstr "" +"En anslutning kommer nu att göras till din leverantör av mobilt bredband med " +"de inställningar som du valde. Om anslutningen misslyckas eller om du inte " +"kan komma åt några nätverksresurser så bör du kontrollera dina inställningar " +"igen. För att ändra dina inställningar för din mobila bredbandsanslutning, " +"välj \"Nätverksanslutningar\" från menyn System >> Inställningar." #: ../src/libnm-gtk/nm-mobile-wizard.c:264 msgid "Confirm Mobile Broadband Settings" @@ -2214,13 +2359,16 @@ #: ../src/libnm-gtk/nm-mobile-wizard.c:528 msgid "" -"Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity.\n" +"Warning: Selecting an incorrect plan may result in billing issues for your " +"broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"Varning: Välja en felaktig betalningstyp kan resultera i finansiella problem för ditt bredbandskonto eller kan förhindra anslutning att fungera.\n" +"Varning: Välja en felaktig betalningstyp kan resultera i finansiella problem " +"för ditt bredbandskonto eller kan förhindra anslutning att fungera.\n" "\n" -"Om du är osäker på din betalningstyp så bör du fråga din leverantör efter korrekt APN för din betalningstyp." +"Om du är osäker på din betalningstyp så bör du fråga din leverantör efter " +"korrekt APN för din betalningstyp." #: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "Choose your Billing Plan" @@ -2283,8 +2431,12 @@ msgstr "Installerad CDMA-enhet" #: ../src/libnm-gtk/nm-mobile-wizard.c:1375 -msgid "This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network." -msgstr "Denna guide hjälper dig att enkelt konfigurera en mobil bredbandsanslutning till ett mobilt (3G) nätverk." +msgid "" +"This assistant helps you easily set up a mobile broadband connection to a " +"cellular (3G) network." +msgstr "" +"Denna guide hjälper dig att enkelt konfigurera en mobil bredbandsanslutning " +"till ett mobilt (3G) nätverk." #: ../src/libnm-gtk/nm-mobile-wizard.c:1380 msgid "You will need the following information:" @@ -2322,53 +2474,61 @@ msgid "New..." msgstr "Ny..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "S_kapa" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format -msgid "Passwords or encryption keys are required to access the wireless network '%s'." -msgstr "Lösenord eller krypteringsnycklar krävs för att komma åt det trådlösa nätverket \"%s\"." +msgid "" +"Passwords or encryption keys are required to access the wireless network " +"'%s'." +msgstr "" +"Lösenord eller krypteringsnycklar krävs för att komma åt det trådlösa " +"nätverket \"%s\"." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "Autentisering krävs för det trådlösa nätverket" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "Autentisering krävs för det trådlösa nätverket" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "Skapa nytt trådlöst nätverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "Nytt trådlöst nätverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "Ange ett namn för det trådlösa nätverket som du vill skapa." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "Anslut till dolt trådlöst nätverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "Dolt trådlöst nätverk" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 -msgid "Enter the name and security details of the hidden wireless network you wish to connect to." -msgstr "Ange namn och säkerhetsuppgifter för det dolda trådlösa nätverket som du vill ansluta till." +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +msgid "" +"Enter the name and security details of the hidden wireless network you wish " +"to connect to." +msgstr "" +"Ange namn och säkerhetsuppgifter för det dolda trådlösa nätverket som du " +"vill ansluta till." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "Trå_dlös säkerhet:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "Ans_lutning:" #: ../src/libnm-gtk/wifi.ui.h:5 @@ -2380,12 +2540,20 @@ msgstr "Användning:" #: ../src/main.c:75 -msgid "This program is a component of NetworkManager (http://projects.gnome.org/NetworkManager)." -msgstr "Detta program är en komponent i NetworkManager (http://projects.gnome.org/NetworkManager)." +msgid "" +"This program is a component of NetworkManager (http://projects.gnome.org/" +"NetworkManager)." +msgstr "" +"Detta program är en komponent i NetworkManager (http://projects.gnome.org/" +"NetworkManager)." #: ../src/main.c:76 -msgid "It is not intended for command-line interaction but instead runs in the GNOME desktop environment." -msgstr "Det är inte tänkt för interaktion via kommandoraden utan körs istället i skrivbordsmiljön GNOME." +msgid "" +"It is not intended for command-line interaction but instead runs in the " +"GNOME desktop environment." +msgstr "" +"Det är inte tänkt för interaktion via kommandoraden utan körs istället i " +"skrivbordsmiljön GNOME." #: ../src/mb-menu-item.c:57 msgid "EVDO" @@ -2445,14 +2613,12 @@ msgid "registration denied" msgstr "registrering nekad" -#: ../src/mb-menu-item.c:151 -#: ../src/mb-menu-item.c:157 +#: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 #, c-format msgid "%s (%s roaming)" msgstr "%s (%s roaming)" -#: ../src/mb-menu-item.c:153 -#: ../src/mb-menu-item.c:159 +#: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 #, c-format msgid "%s (roaming)" msgstr "%s (roaming)" @@ -2471,18 +2637,27 @@ msgid "Default" msgstr "Standard" -#: ../src/wired-dialog.c:91 -#: ../src/wired-dialog.c:99 -msgid "The NetworkManager Applet could not find some required resources (the .ui file was not found)." -msgstr "Panelprogrammet för nätverkshantering kunde inte hitta en del nödvändiga resurser (.ui-filen hittades inte)." +#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "" +"Panelprogrammet för nätverkshantering kunde inte hitta en del nödvändiga " +"resurser (.ui-filen hittades inte)." #: ../src/wireless-security/eap-method.c:279 msgid "No Certificate Authority certificate chosen" msgstr "Inget Certificate Authority-certifikat har valts" #: ../src/wireless-security/eap-method.c:280 -msgid "Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue wireless networks. Would you like to choose a Certificate Authority certificate?" -msgstr "Att inte använda ett Certificate Authority-certifikat (CA) kan resultera i anslutningar till osäkra och missledande trådlösa nätverk. Vill du välja ett Certificate Authority-certifikat?" +msgid "" +"Not using a Certificate Authority (CA) certificate can result in connections " +"to insecure, rogue wireless networks. Would you like to choose a " +"Certificate Authority certificate?" +msgstr "" +"Att inte använda ett Certificate Authority-certifikat (CA) kan resultera i " +"anslutningar till osäkra och missledande trådlösa nätverk. Vill du välja " +"ett Certificate Authority-certifikat?" #: ../src/wireless-security/eap-method.c:289 msgid "Choose CA Certificate" @@ -2546,7 +2721,7 @@ msgstr "Alla filer" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2584,11 +2759,15 @@ #: ../src/wireless-security/eap-method-tls.c:249 msgid "" -"The selected private key does not appear to be protected by a password. This could allow your security credentials to be compromised. Please select a password-protected private key.\n" +"The selected private key does not appear to be protected by a password. " +"This could allow your security credentials to be compromised. Please select " +"a password-protected private key.\n" "\n" "(You can password-protect your private key with openssl)" msgstr "" -"Den markerade privata nyckeln verkar inte vara skyddad av ett lösenord. Detta kan innebära att dina säkerhetsuppgifter kan komprometteras. Välj en lösenordsskyddad privat nyckel.\n" +"Den markerade privata nyckeln verkar inte vara skyddad av ett lösenord. " +"Detta kan innebära att dina säkerhetsuppgifter kan komprometteras. Välj en " +"lösenordsskyddad privat nyckel.\n" "\n" "(Du kan lösenordsskydda din privata nyckel med openssl)" @@ -2628,19 +2807,19 @@ msgid "Yes" msgstr "Ja" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "Tunnlad TLS" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "Protected EAP (PEAP)" @@ -2858,12 +3037,12 @@ #~ msgid "PUK code is needed for the mobile broadband device" #~ msgstr "PUK-kod behövs för den mobila bredbandsenheten" -#~ msgctxt "No wired security used" +#~ msgctxt "No wired security used" #~ msgid "None" #~ msgstr "Ingen" -#~ msgctxt "Unknown/unrecognized wired or wifi security" +#~ msgctxt "Unknown/unrecognized wired or wifi security" #~ msgid "Unknown" #~ msgstr "Okänd" diff -Nru network-manager-applet-0.9.4.1/po/ta.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ta.po --- network-manager-applet-0.9.4.1/po/ta.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ta.po 2012-10-31 13:20:57.000000000 +0000 @@ -1889,7 +1889,7 @@ msgstr "இந்த கணினியில் அனைத்து பயனர்கள் இணைப்பையும் சேமிக்க அங்கீகரிக்கவும்." #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "அனைத்து பயனர்களுக்கும் கிடைக்கப் பெறும" #: ../src/connection-editor/nm-connection-editor.ui.h:2 @@ -2442,7 +2442,7 @@ "விவரங்களை உள்ளிடவும்." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "இணைப்பு (_n):" #: ../src/libnm-gtk/wifi.ui.h:3 @@ -2450,7 +2450,7 @@ msgstr "ஒயர்லெஸ் அடாப்படர் (_a):" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "ஒயர்லெஸ் பாதுகாப்பு (_W):" #: ../src/main.c:73 diff -Nru network-manager-applet-0.9.4.1/po/te.po network-manager-applet-0.9.6.2+git201210311320.2620/po/te.po --- network-manager-applet-0.9.4.1/po/te.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/te.po 2012-10-31 13:20:57.000000000 +0000 @@ -1,20 +1,21 @@ # translation of te.po to Telugu # Telugu translation of network-manager-applet. -# Copyright (C) 2012 network-manager-applet's swecha telugu localisation team (localization@swecha.net) +# Copyright (C) 2011, 2012 Swecha Telugu Localisation Team (localization@swecha.net) # This file is distributed under the same license as the network-manager-applet package. # # Krishna Babu K , 2009, 2010. -# Hari Krishna , 2011. # gvs giri , 2011. -# Sasi Bhushan Boddepalli , 2011, 2012. +# Sasi Bhushan Boddepalli , 2011, 2012 +# Hari Krishna , 2011,2012 +# GVS.Giri ,2012, # msgid "" msgstr "" "Project-Id-Version: te\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-09 22:26+0000\n" -"PO-Revision-Date: 2012-03-13 12:36+0530\n" +"POT-Creation-Date: 2012-06-25 18:50+0000\n" +"PO-Revision-Date: 2012-06-27 15:21+0530\n" "Last-Translator: Sasi Bhushan Boddepalli \n" "Language-Team: Telugu \n" "MIME-Version: 1.0\n" @@ -32,65 +33,108 @@ msgid "Manage your network connections" msgstr "మీ నెట్వర్కు అనుసంధానములను నిర్వహించు" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "నెట్వర్కు అనుసంధానములు" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "మీ నెట్వర్కు అనుసంధానము అమర్పులను నిర్వహించండి మరియు మార్చండి" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "అనుసంధానము నోటీసులను అచేతనముచేయుము" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "నెట్వర్కునకు అనుసంధానమవుచున్నప్పుడు నోటీసులను అచేతనము చేయుటకు దీనిని TRUE గా అమర్చండి." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +#| msgid "" +#| "Set this to TRUE to disable notifications when connecting to a network." +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "" +"నెట్వర్కునకు అనుసంధానమవుచున్నప్పుడు నోటీసులను అచేతనము చేయుటకు దీనిని TRUE గా అమర్చండి. " -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "అననుసంధానపు నోటీసులను అచేతనముచేయుము" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "" +"నెట్వర్కునుండి అననుసంధానము అవుచున్నప్పుడు నోటీసులను అచేతనము చేయుటకు దీనిని TRUE గా అమర్చుము. " + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +#| msgid "Disable connected notifications" +msgid "Disable VPN notifications" +msgstr "VPN ప్రకటనలను డిసేబుల్ చెయ్యి " + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." msgstr "" -"నెట్వర్కునుండి అననుసంధానము అవుచున్నప్పుడు నోటీసులను అచేతనము చేయుటకు దీనిని TRUE గా అమర్చుము." +"VPN నుండి అననుసంధానము అవుచున్నప్పుడు నోటీసులను అచేతనము చేయుటకు దీనిని TRUE గా అమర్చుము. " -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "నెట్వర్కులు అందుబాటులోవున్నాయి నోటీసు అణిచివేయుము" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#| msgid "" +#| "Set this to TRUE to disable notifications when wireless networks are " +#| "available." msgid "" -"Set this to TRUE to disable notifications when wireless networks are " +"Set this to true to disable notifications when wireless networks are " "available." msgstr "" -"వైర్‌లెస్ నెట్వర్కులు అందుబాటులో వున్నప్పుడు నోటీసులను అచేతనము చేయుటకు దీనిని TRUE గా అమర్చండి." +"వైర్‌లెస్ నెట్వర్కులు అందుబాటులో వున్నప్పుడు నోటీసులను అచేతనము చేయుటకు దీనిని TRUE గా అమర్చండి. " -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "స్టాంప్" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "అమరికలు కొత్త వర్షన్‌కు మైగ్రేట్ కావాలా అనేది నిర్ణయించుటకు వుపయోగించబడుతుంది." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "WiFi సృష్టించుట అచేతనము చేయుము" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +#| msgid "" +#| "Set to TRUE to disable creation of adhoc networks when using the applet." msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." +"Set to true to disable creation of adhoc networks when using the applet." msgstr "" -"అప్లెట్‌ను వుపయోగించునప్పుడు adhoc నెట్వర్కుల సృష్టీకరణను అచేతనము చేయుటకు TRUE వుంచండి." +"అప్లెట్‌ను వుపయోగించునప్పుడు తాత్కాలిక నెట్వర్కుల సృష్టీకరణను అచేతనము చేయుటకు TRUE వుంచండి." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "నెట్వర్కు అనుసంధానములు" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +#| msgid "Choose CA Certificate" +msgid "Ignore CA certificate" +msgstr "CA ధృవీకరణపత్రమును విస్మరించు " -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "మీ నెట్వర్కు అనుసంధానము అమర్పులను నిర్వహించండి మరియు మార్చండి" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "EAP ప్రమాణీకరణ లో CA సర్టిఫికేట్ల గురించి హెచ్చరికలు డిసేబుల్ నిజమైతే ఇది సెట్ చెయ్యండి." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "EAP ప్రామాణిక దశ 2 లో CA సర్టిఫికేట్ల గురించి హెచ్చరికలు డిసేబుల్ నిజమైతే సెట్ చెయ్యండి." #: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 #: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "అందుబాటులోవుంది" @@ -103,7 +147,7 @@ #: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 #: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "అనుసంధానము యేర్పరచబడింది" @@ -131,7 +175,7 @@ #: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 #: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "'%s' కొరకు నెట్వర్కు చిరునామాను అభ్యర్ధిస్తోంది..." @@ -148,7 +192,7 @@ msgstr "CDMA" #: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:425 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "మొబైల్ బ్రాడ్‌బాండ్ (%s)" @@ -156,7 +200,7 @@ #: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 #: ../src/connection-editor/page-mobile.c:379 #: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "మొబైల్ బ్రాడ్‌బాండ్" @@ -321,7 +365,7 @@ msgstr "వైర్‌తో నెట్వర్కు" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "అననుసంధానించబడింది" @@ -362,89 +406,107 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "మరుగునవున్న వైర్‌లేని నెట్వర్కుకు అనుసంధానమవ్వు... (_C)" -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "కొత్త వైర్‌లేని నెట్వర్కును సృష్టించుము... (_N)" -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(ఏదీకాదు)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "వైర్‌లేని నెట్వర్కులు (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "వైర్‌లేని నెట్వర్కు (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "వైర్‌లేని నెట్వర్కు" msgstr[1] "వైర్‌లేని నెట్వర్కులు" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "వైర్‌లేని విధం అచేతనమైంది" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "వైర్‌లేని విధం హార్డ్ వేరు స్విచ్ తో అచేతనమైంది" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "మరిన్ని నెట్వర్కులు" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "వైర్‌లెస్ నెట్వర్కులు అందుబాటులోవున్నాయి" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "వైర్‌లెస్ నెట్వర్కునకు అనుసంధానమగుటకు నెట్వర్క్ మెనూని ఉపయోగించుము" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "ఈ సందేశమును మరలా చూపవద్దు" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "మీరు యిప్పుడు వైర్‌లేని నెట్వర్కు '%s'కు అనుసంధానించబడినారు." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "వైర్‌లేని నెట్వర్కు అనుసంధానము '%s'ను సిద్దపరుస్తోంది..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "వైర్‌లేని నెట్వర్కు అనుసంధానము '%s'ను ఆకృతీకరిస్తోంది..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "వైర్‌లేని నెట్వర్కు '%s' కొరకు వినియోగదారి దృవీకరణము అవసరమైంది..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "'%s' కొరకు వైర్‌లేని నెట్వర్కు చిరునామా అభ్యర్ధించుచున్నది..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "వైర్‌లేని నెట్వర్కు అనుసంధానము '%s' క్రియాశీలము: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "వైర్‌లేని నెట్వర్కు అనుసంధానము '%s' క్రియాశీలం" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "అనుసంధానమును క్రియాత్మకం చేయుటలో విఫలం" + +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +msgid "Unknown error" +msgstr "తెలియని దోషము" + +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 +msgid "Connection failure" +msgstr "అనుసంధానమగుట విఫలం" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "కొత్త అనుసంధానమును జతచేయుటలో విఫలము" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -471,9 +533,9 @@ msgstr "అనుసంధానము సమాచారమును ప్రదర్శించుటలో దోషము:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -481,196 +543,195 @@ msgid "Dynamic WEP" msgstr "గతిక WEP" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "ఏదీకాదు" -#: ../src/applet-dialogs.c:278 +#: ../src/applet-dialogs.c:277 #, c-format -#| msgid "1 (Default)" msgid "%s (default)" msgstr "%s (అప్రమేయ)" -#: ../src/applet-dialogs.c:347 ../src/applet-dialogs.c:485 +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:349 ../src/applet-dialogs.c:487 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "తెలియదు" -#: ../src/applet-dialogs.c:362 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:364 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "తెలియదు" -#: ../src/applet-dialogs.c:376 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "తెలియదు" -#: ../src/applet-dialogs.c:411 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "ఈథర్‌నెట్ (%s)" -#: ../src/applet-dialogs.c:414 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:421 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:423 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:427 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:433 ../src/applet-dialogs.c:792 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "సాధారణం" -#: ../src/applet-dialogs.c:437 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "అంతరవర్తి:" -#: ../src/applet-dialogs.c:453 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "హార్డువేర్ చిరునామా:" #. Driver -#: ../src/applet-dialogs.c:461 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "డ్రైవర్:" -#: ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "వేగము:" -#: ../src/applet-dialogs.c:500 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "రక్షణ:" -#: ../src/applet-dialogs.c:513 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "సీఐయన్ ఆర్:" -#: ../src/applet-dialogs.c:526 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:543 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:554 ../src/applet-dialogs.c:661 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP చిరునామా:" -#: ../src/applet-dialogs.c:556 ../src/applet-dialogs.c:572 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "తెలియదు" -#: ../src/applet-dialogs.c:570 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "బ్రాడ్‌కాస్ట్ చిరునామా:" #. Prefix -#: ../src/applet-dialogs.c:579 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "సబ్‌నెట్ మాస్క్:" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "తెలియదు" -#: ../src/applet-dialogs.c:589 ../src/applet-dialogs.c:676 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "అప్రమేయ రూట్:" -#: ../src/applet-dialogs.c:601 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "ప్రాధమిక DNS:" -#: ../src/applet-dialogs.c:610 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "ద్వితీయ DNS:" -#: ../src/applet-dialogs.c:620 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "టర్నరీ DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:635 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:644 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "వదిలివేయినది" -#: ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "VPN రకము :" -#: ../src/applet-dialogs.c:804 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "VPN గేట్‌వే" -#: ../src/applet-dialogs.c:810 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "VPN వినియోగదారినామము :" -#: ../src/applet-dialogs.c:816 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "VPN ధ్వజము :" -#: ../src/applet-dialogs.c:822 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "పీఠము అనుసంధానము :" -#: ../src/applet-dialogs.c:824 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "తెలియదు" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:887 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "ఎటువంటి చెల్లునటువంటి క్రియాశీల అనుసంధానములు కనబడలేదు!" -#: ../src/applet-dialogs.c:940 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -679,33 +740,49 @@ "కాపీరైట్ © 2004-2008 Red Hat, Inc.\n" "కాపీరైట్ © 2005-2008 Novell, Inc.మరియు వేరే చాలా సంస్థ అనువాదులు" -#: ../src/applet-dialogs.c:943 +#: ../src/applet-dialogs.c:942 msgid "" "Notification area applet for managing your network devices and connections." msgstr "మీ నెట్వర్కు పరికరములను మరియు అనుసంధానములను నిర్వహించుటకు ప్రకటన ప్రాంత ఆప్లెట్." -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "నెట్‌వర్క్ మ్యానేజర్ వెబ్‌సైట్" -#: ../src/applet-dialogs.c:960 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "వనరులు తప్పిపోయినవి" -#: ../src/applet-dialogs.c:985 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "మొబైల్ బ్రాడ్‌బాండ్ నెట్వర్కు సంకేతపదము" -#: ../src/applet-dialogs.c:994 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "'%s'కు అనుసంధానమగుటకు వొక సంకేతపదము అవసరమైంది." -#: ../src/applet-dialogs.c:1013 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "సంకేతపదము:" -#: ../src/applet.c:995 +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "అనుసంధానమును సృష్టించడం/క్రియాత్మకం చేయుటలో విఫలమైనది" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "పరికరము అననుసంధానమురద్దు అగుటలో విఫలము" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "అననుసంధానమురద్దు విఫలము" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "అనుసంధానం క్రియాత్మకంలో విఫలమైంది" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -715,7 +792,7 @@ "\n" "VPN అనుసంధానము '%s' విఫలమైంది యెంచేతంటే నెట్వర్కు అనుసంధానము ఆటంకపరచబడింది." -#: ../src/applet.c:998 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" @@ -724,7 +801,7 @@ "\n" "VPN అనుసంధానము '%s' విఫలమైంది యెంచేతంటే VPN సేవ అనుకోకుండా ఆపివేయబడింది." -#: ../src/applet.c:1001 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -734,7 +811,7 @@ "\n" "VPN అనుసంధానము '%s' విఫలమైంది యెంచేతంటే VPN సేవ చెల్లని ఆకృతీకరణను తిప్పియిచ్చింది." -#: ../src/applet.c:1004 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -743,7 +820,7 @@ "\n" "VPN అనుసంధానము '%s' విఫలమైంది యెంచేతంటే అనుసంధానపు ప్రయత్నం సమయం ముగిసింది." -#: ../src/applet.c:1007 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -752,7 +829,7 @@ "\n" "VPN అనుసంధానము '%s' విఫలమైంది యెంచేతంటే VPN సేవ సమయం లోపల ప్రారంభంకాలేదు." -#: ../src/applet.c:1010 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -761,7 +838,7 @@ "\n" "VPN అనుసంధానము '%s' విఫలమైంది యెంచేతంటే VPN సేవ ప్రారంభమవుటలో విఫలమైంది." -#: ../src/applet.c:1013 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -770,7 +847,7 @@ "\n" "VPN అనుసంధానము '%s' విఫలమైంది యెంచేతంటే అక్కడ చెల్లునటువంటి VPN రహస్యాలు లేవు." -#: ../src/applet.c:1016 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -779,7 +856,7 @@ "\n" "VPN అనుసంధానము '%s' విఫలమైంది యెంచేతంటే చెల్లని VPN రహస్యాలు." -#: ../src/applet.c:1023 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -788,7 +865,7 @@ "\n" "VPN అనుసంధానము '%s' విఫలమైంది." -#: ../src/applet.c:1041 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -798,7 +875,7 @@ "\n" "VPN అనుసంధానము '%s' అననుసంధానించబడింది యెంచేతంటే నెట్వర్కు అనుసంధానము ఆటంకపరచబడింది." -#: ../src/applet.c:1044 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -807,7 +884,7 @@ "\n" "VPN అనుసంధానము '%s' అననుసంధానించబడింది యెంచేతంటే VPN సేవ ఆపివేయబడింది." -#: ../src/applet.c:1050 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -816,15 +893,30 @@ "\n" "VPN అనుసంధానము '%s' అననుసంధానించబడింది." -#: ../src/applet.c:1084 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN కనెక్షన్ విజయవంతంగా స్థాపించబడింది.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN కనెక్షన్ విజయవంతంగా స్థాపించబడింది.\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "VPN లాగిన్ సందేశము" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "VPN అనుసంధానము విఫలమైంది" -#: ../src/applet.c:1155 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -837,7 +929,7 @@ "\n" "%s" -#: ../src/applet.c:1158 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -850,139 +942,139 @@ "\n" "%s" -#: ../src/applet.c:1478 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "పరికరము సిద్దముకాలేదు (ఫర్మువేర్ తప్పిపోయినది)" -#: ../src/applet.c:1480 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "పరికరము సిద్దముకాలేదు" -#: ../src/applet.c:1506 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "అననుసంధానించుము" -#: ../src/applet.c:1520 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "పరికరము నిర్వహించబడలేదు" -#: ../src/applet.c:1564 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "ఎటువంటి నెట్వర్కు పరికరములు అందుబాటులోలేవు" -#: ../src/applet.c:1652 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "_VPN అనుసంధానములు" -#: ../src/applet.c:1709 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "VPN ఆకృతీకరించుము... (_C)" -#: ../src/applet.c:1713 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "VPN అననుసంధానించుము (_D)" -#: ../src/applet.c:1811 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "నెట్‌వర్క్ మ్యానేజర్ నడుచుటలేదు..." -#: ../src/applet.c:1816 ../src/applet.c:2609 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "నెట్వర్కింగ్ అచేతనమైంది" #. 'Enable Networking' item -#: ../src/applet.c:2037 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "నెట్వర్కింగ్ చేతనముచేయుము (_N)" #. 'Enable Wireless' item -#: ../src/applet.c:2046 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "వైర్‌లేని విధం చేతనముచేయుము (_W)" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "మొబైల్ బ్రాడ్‌బాండ్‌ను చేతనముచేయుము (_M)" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "WiMAX మొబైల్ బ్రాడ్‌బాండ్‌ను చేతనముచేయుము (_M)" #. Toggle notifications item -#: ../src/applet.c:2075 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "సూచన ప్రకటనలను చేతనముచేయుము (_o)" #. 'Connection Information' item -#: ../src/applet.c:2086 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "అనుసంధానము సమాచారము (_I)" #. 'Edit Connections...' item -#: ../src/applet.c:2096 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "అనుసంధానములను సవరించు..." #. Help item -#: ../src/applet.c:2110 +#: ../src/applet.c:2124 msgid "_Help" msgstr "సహాయము (_H)" #. About item -#: ../src/applet.c:2119 +#: ../src/applet.c:2133 msgid "_About" msgstr "గురించి (_A)" -#: ../src/applet.c:2296 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "అననుసంధానించబడింది" -#: ../src/applet.c:2297 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "నెట్వర్కు అనుసంధానము అననుసంధానించబడింది." -#: ../src/applet.c:2478 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "నెట్వర్కు అనుసంధానము '%s' సిద్దముచేయుచున్నది..." -#: ../src/applet.c:2481 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "నెట్వర్కు అనుసంధానము '%s' కొరకు వినియోగదారి దృవీకరణము అవసరము..." -#: ../src/applet.c:2487 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "నెట్వర్కు అనుసంధానము '%s' క్రియాశీలము" -#: ../src/applet.c:2565 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "VPN అనుసంధానము '%s'ను ప్రారంభించుచున్నది..." -#: ../src/applet.c:2568 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "VPN అనుసంధానము '%s' కొరకు వినియోగదారి దృవీకరణము అవసరమైంది..." -#: ../src/applet.c:2571 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "'%s' కొరకు VPN చిరునామాను అభ్యర్దించుచున్నది..." -#: ../src/applet.c:2574 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "VPN అనుసంధానము '%s' క్రియాశీలం" -#: ../src/applet.c:2613 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "నెట్వర్కు అనుసంధానము లేదు" -#: ../src/applet.c:3263 +#: ../src/applet.c:3327 msgid "NetworkManager Applet" msgstr "నెట్‌వర్క్ మ్యానేజర్ ఆప్లెట్" @@ -1014,7 +1106,7 @@ msgid "automatic" msgstr "స్వయంచాలకం" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "తెలియని దోషము కారణంగా అనుసంధానము రహస్యాలు నవీకరించుటకు విఫలమైంది." @@ -1144,11 +1236,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "శోధించుము (_S) ఈ డొమైన్లను: " #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_DNS సేవికలు:" @@ -1523,20 +1619,20 @@ #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "చిరునామా" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "నెట్‌మాస్క్" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "గేట్‌వే" @@ -1546,13 +1642,13 @@ msgstr "మెట్రిక్" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "ప్రిఫిక్స్" #: ../src/connection-editor/page-dsl.c:139 #: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1560,7 +1656,7 @@ msgid "Could not load DSL user interface." msgstr "DSL వినియోగదారి యింటర్ఫేస్‌ను లోడుచేయలేక పోయింది." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "DSL అనుసంధానము %d" @@ -1612,16 +1708,26 @@ msgid "Disabled" msgstr "అచేతనమైన" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "అదనపు _DNS సేవికలు:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "అదనపు శోధించుము (_S) ఈ డొమైన్లను: " + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "%s కొరకు IPv4 రూట్లు సరికూర్చుచున్నది" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "IPv4 అమరికలు" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "IPv4 వినియోగదారి యింటర్ఫేస్ లోడుచేయలేక పోయింది." @@ -1630,7 +1736,7 @@ msgstr "స్వయంచాలక, చిరునామాలు మాత్రమే" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:280 msgid "Ignore" msgstr "వదిలివేయి" @@ -1638,16 +1744,16 @@ msgid "Automatic, DHCP only" msgstr "స్వయంచాలక ,DHCP మాత్రమే" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "%s కొరకు IPv6 రూట్లు సరికూర్చుట" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "IPv6 అమరికలు" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "IPv6 వినియోగదారి యింటర్ఫేస్‌ను లోడుచేయలేక పోయింది." @@ -1726,7 +1832,7 @@ #: ../src/connection-editor/page-vpn.c:109 #: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1740,7 +1846,7 @@ msgstr "'%s' కొరకు VPN ప్లగ్‌యిన్ సేవను కనుగొనలేక పోయింది." #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "VPN అనుసంధానము %d" @@ -1756,7 +1862,7 @@ #: ../src/connection-editor/page-wired.c:272 #: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "వైరుగలవిధం" @@ -1769,15 +1875,15 @@ msgid "Wired connection %d" msgstr "వైరుగల అనుసంధానము %d" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "802.1x రక్షణ" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "వయరు రక్షణ వినియోగదారి యింటర్ఫేస్‌ను లోడుచేయలేకపోయింది." -#: ../src/connection-editor/page-wired-security.c:136 +#: ../src/connection-editor/page-wired-security.c:139 msgid "Use 802.1_X security for this connection" msgstr "ఈ అనుసంధానము కొరకు 802.1_X రక్షణ వుపయోగించుము" @@ -1795,7 +1901,7 @@ #: ../src/connection-editor/page-wireless.c:457 #: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "వైరులేనివిధం" @@ -1808,76 +1914,76 @@ msgid "Wireless connection %d" msgstr "వైరులేని అనుసంధానము %d" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP 40/128-bit Key (Hex లేదా ASCII)" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128-bit సంకేతపదము" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "గతిక(డైనమిక్) WEP (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 వ్యక్తిగత" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA & WPA2 ఎంటర్‌ప్రైజ్" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "WiFi రక్షణ వినియోగదారి యింటర్ఫేస్‌ను లోడుచేయలేకపోయింది; WiFi అమరిక తప్పిపోయింది." -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "వైర్‌లేనివిధానికి రక్షణ" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "WiFi రక్షణ వినియోగదారి యింటర్ఫేస్‌ను లోడుచేయలేకపోయింది." -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "సరికూర్చుచున్నది %s" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "పేరు-లేని అనుసంధానమును సరికూర్చుచున్నది" -#: ../src/connection-editor/nm-connection-editor.c:288 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." msgstr "" "అనుసంధానము సరికూర్పరి అవసరమైన కొన్ని వనరులను కనుగొనలేక పోయింది (గ్లేడ్ ఫైలు కనుగొనబడలేదు)." -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "అనుసంధానము సరికూర్పరి డైలాగును సృష్టించుటలో దోషము." -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "భద్రపరుచు (_S)" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "ఈ అనుసంధానమునకు చేసిన యే మార్పులనైనా దాయుము." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "భద్రపరుచు (_S)" -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." msgstr "ఈ మిషన్‌యొక్క వినియోగదారులందరికి ఈ అనుసంధానమును దాయుటకు దృవీకరించుము." @@ -1898,7 +2004,7 @@ msgstr "స్వయంచాలకంగా అనుసంధానించుము (_a)" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "వినియోగదారులందరికి అందుబాటులోవుంది" #: ../src/connection-editor/nm-connection-list.c:216 @@ -1971,7 +2077,7 @@ #: ../src/connection-editor/nm-connection-list.c:546 #: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 +#: ../src/connection-editor/nm-connection-list.c:885 msgid "" "The connection editor dialog could not be initialized due to an unknown " "error." @@ -1998,12 +2104,12 @@ msgid "Are you sure you wish to delete the connection %s?" msgstr "మీరు ఖచ్చితంగా అనుసంధానము %sను తొలగించుదామని అనుకొనుచున్నారా?" -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "VPN అనుసంధానమును దిగుమతి చేయలేకపోయింది" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -2013,79 +2119,79 @@ "\n" "దోషము: VPN సేవా రకములేదు." -#: ../src/connection-editor/nm-connection-list.c:945 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "దిగుమతిచేసిన అనుసంధానమును సరికూర్చలేకపోయింది" -#: ../src/connection-editor/nm-connection-list.c:1126 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "పేరు" -#: ../src/connection-editor/nm-connection-list.c:1138 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "చివరిగా వుపయోగించిన" -#: ../src/connection-editor/nm-connection-list.c:1264 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." msgstr "VPN ప్లగిన్ లభ్యత లేదు. ఈ మీటను ఉపయోగించుటకు, దయచేసి ఒక ప్లగిన్ ను స్థాపించండి" -#: ../src/connection-editor/nm-connection-list.c:1275 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "సవరించు (_E)" -#: ../src/connection-editor/nm-connection-list.c:1276 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "ఎంపికచేసిన అనుసంధానమును సరికూర్చుము" -#: ../src/connection-editor/nm-connection-list.c:1277 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "సవరించు...(_E)" -#: ../src/connection-editor/nm-connection-list.c:1278 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "ఎంపికచేసిన అనుసంధానమును సరికూర్చుటకు దృవీకరించుము" -#: ../src/connection-editor/nm-connection-list.c:1293 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "తొలగించు (_D)" -#: ../src/connection-editor/nm-connection-list.c:1294 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "ఎంపికచేసిన అనుసంధానమును తొలగించుము" -#: ../src/connection-editor/nm-connection-list.c:1295 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "తొలగించుము...(_D)" -#: ../src/connection-editor/nm-connection-list.c:1296 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "ఎంపికచేసిన అనుసంధానమును తొలగించుటకు ధృవీకరించుము" -#: ../src/connection-editor/nm-connection-list.c:1575 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "అనుసంధానము సృష్టించుటలో దోషము." -#: ../src/connection-editor/nm-connection-list.c:1576 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "'%s' అనుసంధానమును ఎలా సృష్టించలేక పోయింది" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "అనుసంధానమును సరికూర్చుటలో దోషం " -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "'%s'అనుసంధానమును ఎలా సరికూర్చాలో తెలియుటలేదు" -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "UUID '%s' తో ఒక సంభందం కనుగొన బడలేదు" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2097,29 +2203,29 @@ "\n" "దోషము: %s" -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "దిగుమతి చేయుటకు ఫైలును యెంపికచేయుము" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "\"%s\" నామముతో వొక ఫైలు యిప్పటికేవుంది." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "పునఃస్థాపించు (_R)" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "మీరు దాయుచున్న VPN అనుసంధానముతో మీరు %sను పునఃస్థాపించుదామని అనుకొనుచున్నారా?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "VPN అనుసంధానమును ఎగుమతిచేయలేదు" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2130,7 +2236,7 @@ "\n" "దోషము: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "VPN అనుసంధానమును ఎగుమతిచేయుము..." @@ -2385,46 +2491,46 @@ msgid "New..." msgstr "కొత్త..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "సృష్టించుము (_r)" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." +"Passwords or encryption keys are required to access the wireless network " +"'%s'." msgstr "వైరులేని నెట్వర్కు '%s'ను యాక్సిస్ చేసుకొనుటకు సంకేతపదములు లేదా ఎన్క్రిప్షన్ కీలు అవసరము." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "వైరులేని నెట్వర్కు ధృవీకరణము అవసరమైంది" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "వైరులేని నెట్వర్కుద్వారా ధృవీకరణము అవసరమైంది" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "కొత్త వైరులేని నెట్వర్కు సృష్టించుము" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "కొత్త వైరులేని నెట్వర్కు" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "మీరు సృష్టించాలని అనుకొనుచున్న వైరులేని నెట్వర్కునకు వొక నామమును ప్రవేశపెట్టుము." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "మరుగునవున్న వైరులేని నెట్వర్కునకు అనుసంధానించు" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "మరుగునవున్న వైరులేని నెట్వర్కు" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." @@ -2433,11 +2539,11 @@ "ప్రవేశపెట్టుము." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "వైర్‌లెస్ రక్షణ (_W):" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "అనుసంధానము (_n):" #: ../src/libnm-gtk/wifi.ui.h:5 @@ -2551,11 +2657,11 @@ "file was not found)." msgstr "నెట్‌వర్క్ మ్యానేజర్ ఆప్లెట్ కొన్ని అవసరమైన వనరులను కనుగొనలేకపోయింది(.ui ఫైలు కనుగొనబడలేదు)." -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:274 msgid "No Certificate Authority certificate chosen" msgstr "ఎటువంటి దృవీకరణపత్ర అధికారిక ధృవీకరణపత్రము యెంచుకొనబడలేదు" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:275 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " @@ -2565,15 +2671,15 @@ "అవుతాయి, మోసపూరిత వైరులేని నెట్వర్కులు. మీరు ధృవీకరణపత్ర అధికారికం ధృవీకరణపత్రమును యెంచుకొనుటకు " "యిష్టపడతారా?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:284 msgid "Choose CA Certificate" msgstr "CA ధృవీకరణపత్రమును యెంచుకొనుము" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:643 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM, లేదా PKCS#12 వ్యక్తిగత కీలు (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:646 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER లేదా PEM ధృవీకరణపత్రములు (*.der, *.pem, *.crt, *.cer)" @@ -2627,7 +2733,7 @@ msgstr "అన్ని ఫైళ్ళు" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2712,19 +2818,19 @@ msgid "Yes" msgstr "అవును" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "టన్నెల్డ్ TLS" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "సురక్షిత EAP (PEAP)" diff -Nru network-manager-applet-0.9.4.1/po/th.po network-manager-applet-0.9.6.2+git201210311320.2620/po/th.po --- network-manager-applet-0.9.4.1/po/th.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/th.po 2012-10-31 13:20:57.000000000 +0000 @@ -1,8 +1,8 @@ # Thai translation of NetworkManager. -# Copyright (C) 2007-2011 Free Software Foundation, Inc. +# Copyright (C) 2007-2012 Free Software Foundation, Inc. # This file is distributed under the same license as the NetworkManager package. # Isriya Paireepairit , 2006. -# Theppitak Karoonboonyanan , 2006-2011. +# Theppitak Karoonboonyanan , 2006-2012. # Neutron Soutmun , 2011. # msgid "" @@ -10,92 +10,121 @@ "Project-Id-Version: NetworkManager\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2011-09-13 14:26+0000\n" -"PO-Revision-Date: 2011-09-25 21:02+0700\n" +"POT-Creation-Date: 2012-08-20 16:42+0000\n" +"PO-Revision-Date: 2012-09-12 15:27+0700\n" "Last-Translator: Theppitak Karoonboonyanan \n" "Language-Team: Thai \n" +"Language: th\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../nm-applet.desktop.in.h:1 +msgid "Network" +msgstr "เครือข่าย" + +#: ../nm-applet.desktop.in.h:2 msgid "Manage your network connections" msgstr "จัดการการเชื่อมต่อเครือข่ายของคุณ" -#: ../nm-applet.desktop.in.h:2 -msgid "Network" -msgstr "เครือข่าย" +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "การเชื่อมต่อเครือข่าย" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "ปิดการสร้าง WiFi" +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "จัดการและตั้งค่าการเชื่อมต่อเครือข่ายของคุณ" -#: ../nm-applet.schemas.in.h:2 +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "ปิดการแจ้งเหตุการเชื่อมต่อ" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "กำหนดเป็นค่าจริงถ้าต้องการปิดการแจ้งเหตุเมื่อมีการเชื่อมต่อเครือข่าย" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "ปิดการแจ้งเหตุการตัดการเชื่อมต่อ" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "กำหนดเป็นค่าจริงถ้าต้องการปิดการแจ้งเหตุเมื่อมีการเชื่อมต่อเครือข่าย" - -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when disconnecting from a network." msgstr "กำหนดเป็นค่าจริงถ้าต้องการปิดการแจ้งเหตุเมื่อมีการตัดการเชื่อมต่อเครือข่าย" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "ปิดการแจ้งเหตุการเชื่อมต่อ VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." -msgstr "กำหนดเป็นค่าจริงถ้าต้องการปิดการแจ้งเหตุเมื่อพบเครือข่ายไร้สายที่เชื่อมต่อได้" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "" +"กำหนดเป็นค่าจริงถ้าต้องการปิดการแจ้งเหตุเมื่อมีการเชื่อมต่อหรือตัดการเชื่อมต่อกับเครือข่าย VPN" -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 +msgid "Suppress networks available notifications" +msgstr "ปิดการแจ้งเหตุเมื่อมีเครือข่ายให้เชื่อมต่อ" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "กำหนดเป็นค่าจริงถ้าต้องการปิดการสร้างเครือข่ายเฉพาะกิจขณะใช้แอพเพล็ต" +"Set this to true to disable notifications when wireless networks are " +"available." +msgstr "กำหนดเป็นค่าจริงถ้าต้องการปิดการแจ้งเหตุเมื่อพบเครือข่ายไร้สายที่เชื่อมต่อได้" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "ประทับตรา" -#: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" -msgstr "ปิดการแจ้งเหตุเมื่อมีเครือข่ายให้เชื่อมต่อ" - -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "ใช้ในการกำหนดว่าควรแปลงค่าตั้งไปเป็นรุ่นใหม่หรือไม่" -#: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "จัดการและตั้งค่าการเชื่อมต่อเครือข่ายของคุณ" +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "ปิดการสร้าง WiFi" -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -msgid "Network Connections" -msgstr "การเชื่อมต่อเครือข่าย" +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +msgid "" +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "กำหนดเป็นค่าจริงถ้าต้องการปิดการสร้างเครือข่ายเฉพาะกิจขณะใช้แอพเพล็ต" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "ปิดคำเตือนใบรับรอง CA" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "กำหนดเป็นค่าจริงถ้าต้องการปิดคำเตือนเกี่ยวกับใบรับรอง CA ในการยืนยันตัวตนแบบ EAP" -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:443 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" +"กำหนดเป็นค่าจริงถ้าต้องการปิดคำเตือนเกี่ยวกับใบรับรอง CA ในขั้นที่ 2 ของการยืนยันตัวตนแบบ EAP" + +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-gsm.c:444 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "เครือข่ายที่มี" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:485 ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-gsm.c:486 ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "คุณเชื่อมต่อกับ '%s' แล้ว" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:489 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1280 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-gsm.c:490 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "เชื่อมต่อเครือข่ายแล้ว" @@ -103,132 +132,137 @@ msgid "You are now connected to the mobile broadband network." msgstr "คุณเชื่อมต่อกับเครือข่ายบรอดแบนด์มือถือแล้ว" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:525 ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "กำลังเตรียมการเชื่อมต่อเครือข่ายบรอดแบนด์มือถือ '%s'..." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "กำลังตั้งค่าการเชื่อมต่อเครือข่ายบรอดแบนด์มือถือ '%s'..." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "ต้องยืนยันตัวบุคคลสำหรับการเชื่อมต่อเครือข่ายบรอดแบนด์มือถือ '%s'..." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2479 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "กำลังขอที่อยู่สำหรับเครือข่าย '%s'..." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:552 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "เครือข่ายบรอดแบนด์มือถือ '%s' ทำงานอยู่" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:696 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:389 -#: ../src/applet-dialogs.c:405 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "เครือข่ายบรอดแบนด์มือถือ (%s)" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:391 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 #: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -#: ../src/connection-editor/nm-connection-list.c:1474 +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "เครือข่ายบรอดแบนด์มือถือ" #. Default connection item -#: ../src/applet-device-cdma.c:412 +#: ../src/applet-device-cdma.c:409 msgid "New Mobile Broadband (CDMA) connection..." msgstr "เครือข่ายบรอดแบนด์มือถือ (CDMA) ใหม่..." -#: ../src/applet-device-cdma.c:446 +#: ../src/applet-device-cdma.c:443 msgid "You are now connected to the CDMA network." msgstr "คุณเชื่อมต่อกับเครือข่าย CDMA แล้ว" -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:547 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "เครือข่ายบรอดแบนด์มือถือ '%s' ทำงานอยู่: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "ข้ามเขต" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 msgid "CDMA network." msgstr "เครือข่าย CDMA" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1098 +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 msgid "You are now registered on the home network." msgstr "ขณะนี้คุณลงทะเบียนกับเครือข่ายเหย้าแล้ว" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1104 +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 msgid "You are now registered on a roaming network." msgstr "ขณะนี้คุณลงทะเบียนกับเครือข่ายบริการข้ามเขตแล้ว" -#: ../src/applet-device-gsm.c:210 ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" #. Default connection item -#: ../src/applet-device-gsm.c:456 +#: ../src/applet-device-gsm.c:457 msgid "New Mobile Broadband (GSM) connection..." msgstr "เครือข่ายบรอดแบนด์มือถือ (GSM) ใหม่" -#: ../src/applet-device-gsm.c:490 +#: ../src/applet-device-gsm.c:491 msgid "You are now connected to the GSM network." msgstr "คุณเชื่อมต่อกับเครือข่าย GSM แล้ว" -#: ../src/applet-device-gsm.c:651 +#: ../src/applet-device-gsm.c:652 msgid "PIN code required" msgstr "ต้องใช้รหัส PIN" -#: ../src/applet-device-gsm.c:659 +#: ../src/applet-device-gsm.c:660 msgid "PIN code is needed for the mobile broadband device" msgstr "ต้องใช้รหัส PIN สำหรับอุปกรณ์บรอดแบนด์มือถือ" -#: ../src/applet-device-gsm.c:784 +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "รหัส PIN สำหรับการ์ด SIM '%s' ใน '%s'" + +#: ../src/applet-device-gsm.c:873 msgid "Wrong PIN code; please contact your provider." msgstr "รหัส PIN ไม่ถูกต้อง กรุณาติดต่อผู้ให้บริการของคุณ" -#: ../src/applet-device-gsm.c:807 +#: ../src/applet-device-gsm.c:896 msgid "Wrong PUK code; please contact your provider." msgstr "รหัส PUK ไม่ถูกต้อง กรุณาติดต่อผู้ให้บริการของคุณ" #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:834 +#: ../src/applet-device-gsm.c:923 msgid "Sending unlock code..." msgstr "กำลังส่งรหัสปลดล็อค..." -#: ../src/applet-device-gsm.c:897 +#: ../src/applet-device-gsm.c:986 msgid "SIM PIN unlock required" msgstr "ต้องการ PIN ปลดล็อค SIM" -#: ../src/applet-device-gsm.c:898 +#: ../src/applet-device-gsm.c:987 msgid "SIM PIN Unlock Required" msgstr "ต้องการ PIN ปลดล็อค SIM" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:900 +#: ../src/applet-device-gsm.c:989 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " @@ -236,25 +270,25 @@ msgstr "อุปกรณ์บรอดแบนด์มือถือ '%s' ต้องการรหัส PIN ของ SIM ก่อนที่จะใช้งานได้" #. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:902 +#: ../src/applet-device-gsm.c:991 msgid "PIN code:" msgstr "รหัส PIN:" #. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:906 +#: ../src/applet-device-gsm.c:995 msgid "Show PIN code" msgstr "แสดงรหัส PIN" -#: ../src/applet-device-gsm.c:909 +#: ../src/applet-device-gsm.c:998 msgid "SIM PUK unlock required" msgstr "ต้องการ PUK ปลดล็อค SIM" -#: ../src/applet-device-gsm.c:910 +#: ../src/applet-device-gsm.c:999 msgid "SIM PUK Unlock Required" msgstr "ต้องการ PUK ปลดล็อค SIM" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:912 +#: ../src/applet-device-gsm.c:1001 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " @@ -262,26 +296,26 @@ msgstr "อุปกรณ์บรอดแบนด์มือถือ '%s' ต้องการรหัส PUK ของ SIM ก่อนที่จะใช้งานได้" #. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:914 +#: ../src/applet-device-gsm.c:1003 msgid "PUK code:" msgstr "รหัส PUK:" #. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:917 +#: ../src/applet-device-gsm.c:1006 msgid "New PIN code:" msgstr "ตั้งรหัส PIN ใหม่:" #. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:919 +#: ../src/applet-device-gsm.c:1008 msgid "Re-enter new PIN code:" msgstr "ป้อนรหัส PIN ที่ตั้งซ้ำอีกครั้ง:" #. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:924 +#: ../src/applet-device-gsm.c:1013 msgid "Show PIN/PUK codes" msgstr "แสดงรหัส PIN/PUK" -#: ../src/applet-device-gsm.c:1097 ../src/applet-device-gsm.c:1103 +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 msgid "GSM network." msgstr "เครือข่าย GSM" @@ -308,7 +342,7 @@ msgstr "เครือข่ายโยงสาย" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1485 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "ตัดการเชื่อมต่อแล้ว" @@ -349,92 +383,106 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "เ_ชื่อมต่อกับเครือข่ายไร้สายที่ซ่อนอยู่..." -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "_สร้างเครือข่ายไร้สายใหม่..." -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(ไม่มี)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "เครือข่ายไร้สาย (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "เครือข่ายไร้สาย (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "เครือข่ายไร้สาย" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "ปิดการใช้งานเครือข่ายไร้สายอยู่" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "เครือข่ายไร้สายถูกปิดไว้ด้วยสวิตช์ฮาร์ดแวร์" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "เครือข่ายเพิ่มเติม" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "มีเครือข่ายไร้สายบริเวณนี้" -#: ../src/applet-device-wifi.c:1083 -msgid "Click on this icon to connect to a wireless network" -msgstr "คลิกที่ไอคอนเพื่อเชื่อมต่อกับเครือข่ายไร้สาย" - -#: ../src/applet-device-wifi.c:1084 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "ใช้เมนูเครือข่ายเพื่อเชื่อมต่อกับเครือข่ายไร้สาย" -#: ../src/applet-device-wifi.c:1087 ../src/applet.c:901 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "ไม่ต้องแสดงข้อความนี้อีก" -#: ../src/applet-device-wifi.c:1279 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "คุณเชื่อมต่อกับเครือข่ายไร้สาย '%s' แล้ว" -#: ../src/applet-device-wifi.c:1310 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "กำลังเตรียมการเชื่อมต่อเครือข่ายไร้สาย '%s'..." -#: ../src/applet-device-wifi.c:1313 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "กำลังตั้งค่าการเชื่อมต่อเครือข่ายไร้สาย '%s'..." -#: ../src/applet-device-wifi.c:1316 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "ต้องยืนยันตัวบุคคลสำหรับการเชื่อมต่อเครือข่ายไร้สาย '%s'..." -#: ../src/applet-device-wifi.c:1319 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "กำลังขอที่อยู่จากเครือข่ายไร้สาย '%s'..." -#: ../src/applet-device-wifi.c:1340 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "เครือข่ายไร้สาย '%s' ทำงานอยู่: %s (%d%%)" -#: ../src/applet-device-wifi.c:1345 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "เครือข่ายไร้สาย '%s' ทำงานอยู่" +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "เปิดใช้ช่องเชื่อมต่อไม่สำเร็จ" + +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +msgid "Unknown error" +msgstr "ข้อผิดพลาดไม่ทราบสาเหตุ" + +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 +msgid "Connection failure" +msgstr "เชื่อมต่อไม่สำเร็จ" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "เพิ่มการเชื่อมต่อรายการใหม่ไม่สำเร็จ" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -456,181 +504,210 @@ msgid "You are now connected to the WiMAX network." msgstr "คุณเชื่อมต่อกับเครือข่าย WiMAX แล้ว" -#: ../src/applet-dialogs.c:56 +#: ../src/applet-dialogs.c:57 msgid "Error displaying connection information:" msgstr "เกิดข้อผิดพลาดในการแสดงข้อมูลการเชื่อมต่อ:" -#: ../src/applet-dialogs.c:108 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:396 +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" -#: ../src/applet-dialogs.c:110 +#: ../src/applet-dialogs.c:111 msgid "Dynamic WEP" msgstr "WEP แบบผันแปร" -#: ../src/applet-dialogs.c:112 ../src/applet-dialogs.c:221 -#: ../src/applet-dialogs.c:223 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:219 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:227 ../src/applet-dialogs.c:236 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "ไม่มี" -#: ../src/applet-dialogs.c:327 ../src/applet-dialogs.c:465 +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (ปริยาย)" + +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" -#: ../src/applet-dialogs.c:329 ../src/applet-dialogs.c:467 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "ไม่มีข้อมูล" -#: ../src/applet-dialogs.c:342 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:344 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "ไม่ทราบ" -#: ../src/applet-dialogs.c:356 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "ไม่ทราบ" -#: ../src/applet-dialogs.c:391 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "อีเทอร์เน็ต (%s)" -#: ../src/applet-dialogs.c:394 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:401 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:403 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:407 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:413 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "ทั่วไป" -#: ../src/applet-dialogs.c:417 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "อินเทอร์เฟซ:" -#: ../src/applet-dialogs.c:433 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "หมายเลขฮาร์ดแวร์:" #. Driver -#: ../src/applet-dialogs.c:441 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "ไดรเวอร์:" -#: ../src/applet-dialogs.c:470 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "ความเร็ว:" -#: ../src/applet-dialogs.c:480 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "ความปลอดภัย:" -#: ../src/applet-dialogs.c:493 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:506 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:523 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:534 ../src/applet-dialogs.c:641 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "ที่อยู่ไอพี:" -#: ../src/applet-dialogs.c:536 ../src/applet-dialogs.c:552 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "ไม่มีข้อมูล" -#: ../src/applet-dialogs.c:550 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "ที่อยู่บรอดแคสต์:" #. Prefix -#: ../src/applet-dialogs.c:559 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "ซับเน็ตแมสก์:" -#: ../src/applet-dialogs.c:561 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "ไม่มีข้อมูล" -#: ../src/applet-dialogs.c:569 ../src/applet-dialogs.c:656 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "เส้นทางปริยาย:" -#: ../src/applet-dialogs.c:581 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "DNS แรก:" -#: ../src/applet-dialogs.c:590 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "DNS ที่สอง:" -#: ../src/applet-dialogs.c:600 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "DNS ที่สาม:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:615 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:624 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "ไม่ใช้" +#: ../src/applet-dialogs.c:796 +msgid "VPN Type:" +msgstr "ชนิด VPN:" + +#: ../src/applet-dialogs.c:803 +msgid "VPN Gateway:" +msgstr "เกตเวย์ VPN:" + +#: ../src/applet-dialogs.c:809 +msgid "VPN Username:" +msgstr "ชื่อผู้ใช้ VPN:" + +#: ../src/applet-dialogs.c:815 +msgid "VPN Banner:" +msgstr "ข้อความต้อนรับของ VPN:" + +#: ../src/applet-dialogs.c:821 +msgid "Base Connection:" +msgstr "การเชื่อมต่อฐาน:" + +#: ../src/applet-dialogs.c:823 +msgid "Unknown" +msgstr "ไม่ทราบ" + #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:732 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "ไม่มีการเชื่อมต่อที่ใช้งานอยู่!" -#: ../src/applet-dialogs.c:785 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -640,33 +717,49 @@ "Copyright © 2005-2008 Novell, Inc.\n" "และผู้ร่วมสมทบงานและนักแปลในชุมชนอีกเป็นจำนวนมาก" -#: ../src/applet-dialogs.c:788 +#: ../src/applet-dialogs.c:942 msgid "" "Notification area applet for managing your network devices and connections." msgstr "แอพเพล็ตพื้นที่แจ้งเหตุสำหรับจัดการอุปกรณ์เครือข่ายและการเชื่อมต่อ" -#: ../src/applet-dialogs.c:790 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "เว็บไซต์ NetworkManager" -#: ../src/applet-dialogs.c:805 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "ขาดทรัพยากร" -#: ../src/applet-dialogs.c:830 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "รหัสผ่านเครือข่ายบรอดแบนด์มือถือ" -#: ../src/applet-dialogs.c:839 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "ต้องการรหัสผ่านในการเชื่อมต่อกับ '%s'" -#: ../src/applet-dialogs.c:858 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "รหัสผ่าน:" -#: ../src/applet.c:990 +#: ../src/applet.c:488 +msgid "Failed to add/activate connection" +msgstr "สร้าง/เปิดใช้การเชื่อมต่อไม่สำเร็จ" + +#: ../src/applet.c:532 +msgid "Device disconnect failed" +msgstr "ตัดการเชื่อมต่อกับอุปกรณ์ไม่สำเร็จ" + +#: ../src/applet.c:537 +msgid "Disconnect failure" +msgstr "ตัดการเชื่อมต่อไม่สำเร็จ" + +#: ../src/applet.c:558 +msgid "Connection activation failed" +msgstr "เปิดใช้การเชื่อมต่อไม่สำเร็จ" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -676,7 +769,7 @@ "\n" "เชื่อมต่อเครือข่าย VPN '%s' ไม่สำเร็จเพราะการเชื่อมต่อถูกขัดจังหวะ" -#: ../src/applet.c:993 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" @@ -685,7 +778,7 @@ "\n" "เชื่อมต่อเครือข่าย VPN '%s' ไม่สำเร็จเพราะบริการ VPN หยุดทำงานกะทันหัน" -#: ../src/applet.c:996 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -695,7 +788,7 @@ "\n" "เชื่อมต่อเครือข่าย VPN '%s' ไม่สำเร็จเพราะบริการ VPN คืนค่าตั้งที่ไม่ถูกต้องกลับมา" -#: ../src/applet.c:999 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -704,7 +797,7 @@ "\n" "เชื่อมต่อเครือข่าย VPN '%s' ไม่สำเร็จเพราะหมดเวลารอเชื่อมต่อ" -#: ../src/applet.c:1002 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -713,7 +806,7 @@ "\n" "เชื่อมต่อเครือข่าย VPN '%s' ไม่สำเร็จเพราะบริการ VPN ไม่เริ่มทำงานในเวลาที่กำหนด" -#: ../src/applet.c:1005 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -722,7 +815,7 @@ "\n" "เชื่อมต่อเครือข่าย VPN '%s' ไม่สำเร็จเพราะบริการ VPN เริ่มทำงานไม่สำเร็จ" -#: ../src/applet.c:1008 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -731,7 +824,7 @@ "\n" "เชื่อมต่อเครือข่าย VPN '%s' ไม่สำเร็จเพราะไม่มีข้อมูลลับ VPN ที่จะใช้เข้าระบบ" -#: ../src/applet.c:1011 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -740,7 +833,7 @@ "\n" "เชื่อมต่อเครือข่าย VPN '%s' ไม่สำเร็จเพราะข้อมูลลับ VPN ไม่ถูกต้อง" -#: ../src/applet.c:1018 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -749,7 +842,7 @@ "\n" "เชื่อมต่อเครือข่าย VPN '%s' ไม่สำเร็จ" -#: ../src/applet.c:1036 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -759,7 +852,7 @@ "\n" "การเชื่อมต่อ VPN '%s' ถูกตัดเพราะการเชื่อมต่อเครือข่ายถูกขัดจังหวะ" -#: ../src/applet.c:1039 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -768,7 +861,7 @@ "\n" "การเชื่อมต่อ VPN '%s' ถูกตัดเพราะบริการ VPN หยุดทำงาน" -#: ../src/applet.c:1045 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -777,15 +870,30 @@ "\n" "การเชื่อมต่อ VPN '%s' ถูกตัด" -#: ../src/applet.c:1079 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"การเชื่อมต่อ VPN เชื่อมต่อสำเร็จแล้ว\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "การเชื่อมต่อ VPN เชื่อมต่อสำเร็จแล้ว\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "ข้อความเข้าระบบ VPN" -#: ../src/applet.c:1085 ../src/applet.c:1093 ../src/applet.c:1143 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "เชื่อมต่อ VPN ไม่สำเร็จ" -#: ../src/applet.c:1150 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -798,7 +906,7 @@ "\n" "%s" -#: ../src/applet.c:1153 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -811,174 +919,178 @@ "\n" "%s" -#: ../src/applet.c:1473 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "อุปกรณ์ไม่พร้อม (ขาดเฟิร์มแวร์)" -#: ../src/applet.c:1475 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "อุปกรณ์ไม่พร้อม" -#: ../src/applet.c:1501 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "ตัดการเชื่อมต่อ" -#: ../src/applet.c:1515 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "อุปกรณ์ไม่มีการจัดการ" -#: ../src/applet.c:1559 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "ไม่มีอุปกรณ์เครือข่ายในระบบ" -#: ../src/applet.c:1647 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "_การเชื่อมต่อ VPN" -#: ../src/applet.c:1704 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "_ตั้งค่า VPN..." -#: ../src/applet.c:1708 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "ตั_ดการเชื่อมต่อ VPN" -#: ../src/applet.c:1806 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "NetworkManager ไม่ได้ทำงานอยู่..." -#: ../src/applet.c:1811 ../src/applet.c:2604 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "ปิดการใช้งานเครือข่ายอยู่" #. 'Enable Networking' item -#: ../src/applet.c:2032 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "เปิดใช้เ_ครือข่าย" #. 'Enable Wireless' item -#: ../src/applet.c:2041 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "เปิดใช้ไ_ร้สาย" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2050 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "เปิดใช้บรอดแบนด์_มือถือ" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2059 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "เปิดใช้บรอดแบนด์มือถือ WiMA_X" #. Toggle notifications item -#: ../src/applet.c:2070 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "เปิดใช้การแ_จ้งเหตุ" #. 'Connection Information' item -#: ../src/applet.c:2081 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "_ข้อมูลการเชื่อมต่อ" #. 'Edit Connections...' item -#: ../src/applet.c:2091 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "แก้ไขการเชื่อมต่อ..." #. Help item -#: ../src/applet.c:2105 +#: ../src/applet.c:2124 msgid "_Help" msgstr "_วิธีใช้" #. About item -#: ../src/applet.c:2114 +#: ../src/applet.c:2133 msgid "_About" msgstr "เ_กี่ยวกับ" -#: ../src/applet.c:2291 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "ตัดการเชื่อมต่อแล้ว" -#: ../src/applet.c:2292 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "การเชื่อมต่อเครือข่ายถูกตัดแล้ว" -#: ../src/applet.c:2473 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "กำลังเตรียมเชื่อมต่อเครือข่าย '%s'..." -#: ../src/applet.c:2476 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "ต้องยืนยันตัวบุคคลสำหรับการเชื่อมต่อเครือข่าย '%s'..." -#: ../src/applet.c:2482 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "การเชื่อมต่อเครือข่าย '%s' เปิดทำงานแล้ว" -#: ../src/applet.c:2560 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "กำลังเปิดการเชื่อมต่อ VPN '%s'..." -#: ../src/applet.c:2563 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "ต้องยืนยันตัวบุคคลสำหรับการเชื่อมต่อเครือข่าย VPN '%s'..." -#: ../src/applet.c:2566 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "กำลังขอที่อยู่ VPN สำหรับ '%s'..." -#: ../src/applet.c:2569 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "การเชื่อมต่อ VPN '%s' เปิดทำงานแล้ว" -#: ../src/applet.c:2608 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "ไม่ได้เชื่อมกับเครือข่าย" -#: ../src/applet.c:3258 +#: ../src/applet.c:3336 msgid "NetworkManager Applet" msgstr "แอพเพล็ต NetworkManager" #: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "ปลดล็อคอุปกรณ์นี้โดยอัตโนมัติ" + +#: ../src/gsm-unlock.ui.h:2 msgid "_Unlock" msgstr "_ปลดล็อค" #: ../src/info.ui.h:1 -msgid "Active Network Connections" -msgstr "การเชื่อมต่อเครือข่ายที่เปิดทำงานอยู่" - -#: ../src/info.ui.h:2 msgid "Connection Information" msgstr "ข้อมูลการเชื่อมต่อ" +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "การเชื่อมต่อเครือข่ายที่เปิดทำงานอยู่" + #: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 msgid "Wired 802.1X authentication" msgstr "การยืนยันตัวบุคคลกับเครือข่ายโยงสาย 802.1X" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:4 +#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:3 msgid "_Network name:" msgstr "_ชื่อเครือข่าย:" -#: ../src/connection-editor/ce-page.c:67 +#: ../src/connection-editor/ce-page.c:72 msgid "automatic" msgstr "อัตโนมัติ" -#: ../src/connection-editor/ce-page.c:305 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "ไม่สามารถปรับข้อมูลข้อมูลลับของการเชื่อมต่อเนื่องจากเกิดข้อผิดพลาดไม่ทราบสาเหตุ" #: ../src/connection-editor/ce-ip4-routes.ui.h:1 #: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 msgid "" "IP addresses identify your computer on the network. Click the \"Add\" " "button to add an IP address." @@ -988,114 +1100,95 @@ #: ../src/connection-editor/ce-ip4-routes.ui.h:2 #: ../src/connection-editor/ce-ip6-routes.ui.h:2 -msgid "" -"If enabled, this connection will never be used as the default network " -"connection." -msgstr "ถ้าเปิดใช้ การเชื่อมต่อนี้จะไม่มีการใช้งานเป็นการเชื่อมต่อปริยาย" +msgid "Ig_nore automatically obtained routes" +msgstr "ไ_ม่สนใจเส้นทางเครือข่ายที่ได้รับมาแบบอัตโนมัติ" #: ../src/connection-editor/ce-ip4-routes.ui.h:3 #: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" -msgstr "ไ_ม่สนใจเส้นทางเครือข่ายที่ได้รับมาแบบอัตโนมัติ" +msgid "_Use this connection only for resources on its network" +msgstr "ใ_ช้การเชื่อมต่อนี้เพื่อเก็บข้อมูลของตัวเครือข่ายเท่านั้น" #: ../src/connection-editor/ce-ip4-routes.ui.h:4 #: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "Use this c_onnection only for resources on its network" -msgstr "ใช้การเ_ชื่อมต่อนี้เพื่อเก็บข้อมูลของตัวเครือข่ายเท่านั้น" +msgid "" +"If enabled, this connection will never be used as the default network " +"connection." +msgstr "ถ้าเปิดใช้ การเชื่อมต่อนี้จะไม่มีการใช้งานเป็นการเชื่อมต่อปริยาย" #: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 +#: ../src/wireless-security/eap-method-simple.ui.h:1 #: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "แ_สดงรหัสผ่าน" +msgid "_Username:" +msgstr "_ชื่อผู้ใช้:" #: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "_รหัสผ่าน:" - -#: ../src/connection-editor/ce-page-dsl.ui.h:3 msgid "_Service:" msgstr "_บริการ:" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 +#: ../src/connection-editor/ce-page-dsl.ui.h:3 #: ../src/wireless-security/eap-method-leap.ui.h:3 #: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 #: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "_ชื่อผู้ใช้:" +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "แ_สดงรหัสผ่าน" + +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "_รหัสผ่าน:" #: ../src/connection-editor/ce-page-ip4.ui.h:1 #: ../src/connection-editor/ce-page-ip6.ui.h:1 -msgid "Addresses" -msgstr "ที่อยู่" - -#: ../src/connection-editor/ce-page-ip4.ui.h:2 -#: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wired.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:1 #: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 +#: ../src/wireless-security/eap-method-peap.ui.h:2 msgid "Automatic" msgstr "อัตโนมัติ" -#: ../src/connection-editor/ce-page-ip4.ui.h:3 -#: ../src/connection-editor/ce-page-ip6.ui.h:3 +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 msgid "Automatic with manual DNS settings" msgstr "อัตโนมัติโดยกำหนด DNS เอง" -#: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" -msgstr "ชื่อลูกข่าย D_HCP:" - -#: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "" -"Domains used when resolving host names. Use commas to separate multiple " -"domains." -msgstr "โดเมนที่จะใช้ในการเปิดหาที่อยู่จากชื่อโฮสต์ ใช้จุลภาคคั่นถ้าใช้โดเมนหลายโดเมน" - -#: ../src/connection-editor/ce-page-ip4.ui.h:7 -#: ../src/connection-editor/ce-page-ip6.ui.h:6 -msgid "" -"IP addresses of domain name servers used to resolve host names. Use commas " -"to separate multiple domain name server addresses." -msgstr "" -"รายชื่อที่อยู่ไอพีของเซิร์ฟเวอร์โดเมนเนมที่จะใช้เปิดหาที่อยู่ของชื่อโฮสต์ " -"ใช้จุลภาคคั่นระหว่างที่อยู่ของเซิร์ฟเวอร์ต่างๆ" - -#: ../src/connection-editor/ce-page-ip4.ui.h:8 -#: ../src/connection-editor/ce-page-ip6.ui.h:7 -msgid "Link-Local" -msgstr "เชื่อมภายใน" - -#: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 #: ../src/connection-editor/page-ip4.c:169 #: ../src/connection-editor/page-ip6.c:191 msgid "Manual" msgstr "กำหนดเอง" -#: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv4 addressing for this connection to complete" -msgstr "บังคับใช้ที่อยู่ IPv4 สำหรับการเชื่อมต่อนี้" +#: ../src/connection-editor/ce-page-ip4.ui.h:4 +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "เชื่อมภายใน" -#: ../src/connection-editor/ce-page-ip4.ui.h:11 -#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/ce-page-ip4.ui.h:5 +#: ../src/connection-editor/ce-page-ip6.ui.h:5 #: ../src/connection-editor/page-ip4.c:187 #: ../src/connection-editor/page-ip6.c:211 msgid "Shared to other computers" msgstr "แบ่งปันให้เครื่องอื่น" -#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 +#: ../src/connection-editor/ce-page-ip6.ui.h:6 +msgid "_Method:" +msgstr "_วิธีการ:" + +#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip6.ui.h:7 +msgid "Addresses" +msgstr "ที่อยู่" + +#: ../src/connection-editor/ce-page-ip4.ui.h:9 msgid "" "The DHCP client identifier allows the network administrator to customize " "your computer's configuration. If you wish to use a DHCP client identifier, " @@ -1104,38 +1197,61 @@ "ชื่อของลูกข่าย DHCP จะเปิดให้ผู้ดูแลเครือข่ายสามารถปรับแต่งค่าสำหรับเครื่องของคุณโดยเฉพาะได้ " "ถ้าคุณต้องการใช้ชื่อลูกข่าย DHCP ก็ป้อนได้ที่นี่" -#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip4.ui.h:10 +#: ../src/connection-editor/ce-page-ip6.ui.h:9 msgid "" -"When connecting to IPv6-capable networks, allows the connection to complete " -"if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "" -"เมื่อเชื่อมต่อกับเครือข่ายที่รองรับ IPv6 จะยอมเชื่อมต่อถ้าตั้งค่า IPv4 ไม่ผ่านแต่ตั้งค่า IPv6 ได้สำเร็จ" +"Domains used when resolving host names. Use commas to separate multiple " +"domains." +msgstr "โดเมนที่จะใช้ในการเปิดหาที่อยู่จากชื่อโฮสต์ ใช้จุลภาคคั่นถ้าใช้โดเมนหลายโดเมน" -#: ../src/connection-editor/ce-page-ip4.ui.h:14 -#: ../src/connection-editor/ce-page-ip6.ui.h:12 +#: ../src/connection-editor/ce-page-ip4.ui.h:11 +msgid "D_HCP client ID:" +msgstr "ชื่อลูกข่าย D_HCP:" + +#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 +msgid "S_earch domains:" +msgstr "โดเมนที่_ค้นหา:" + +#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "เซิร์ฟเวอร์ _DNS:" +#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip6.ui.h:12 +msgid "" +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." +msgstr "" +"รายชื่อที่อยู่ไอพีของเซิร์ฟเวอร์โดเมนเนมที่จะใช้เปิดหาที่อยู่ของชื่อโฮสต์ " +"ใช้จุลภาคคั่นระหว่างที่อยู่ของเซิร์ฟเวอร์ต่างๆ" + #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 -msgid "_Method:" -msgstr "_วิธีการ:" +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "บังคับใช้ที่อยู่ IPv_4 สำหรับการเชื่อมต่อนี้" #: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Routes…" -msgstr "เ_ส้นทาง…" +msgid "" +"When connecting to IPv6-capable networks, allows the connection to complete " +"if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "" +"เมื่อเชื่อมต่อกับเครือข่ายที่รองรับ IPv6 จะยอมเชื่อมต่อถ้าตั้งค่า IPv4 ไม่ผ่านแต่ตั้งค่า IPv6 ได้สำเร็จ" #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 -msgid "_Search domains:" -msgstr "โดเมนที่_ค้นหา:" +msgid "_Routes…" +msgstr "เ_ส้นทาง…" -#: ../src/connection-editor/ce-page-ip6.ui.h:9 -msgid "Require IPv6 addressing for this connection to complete" -msgstr "บังคับใช้ที่อยู่ IPv6 สำหรับการเชื่อมต่อนี้" +#: ../src/connection-editor/ce-page-ip6.ui.h:13 +msgid "Require IPv_6 addressing for this connection to complete" +msgstr "บังคับใช้ที่อยู่ IPv_6 สำหรับการเชื่อมต่อนี้" -#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "" "When connecting to IPv4-capable networks, allows the connection to complete " "if IPv6 configuration fails but IPv4 configuration succeeds." @@ -1143,226 +1259,226 @@ "เมื่อเชื่อมต่อกับเครือข่ายที่รองรับ IPv4 จะยอมเชื่อมต่อถ้าตั้งค่า IPv6 ไม่ผ่านแต่ตั้งค่า IPv4 ได้สำเร็จ" #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "เครือข่ายใดๆ" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -msgid "Advanced" -msgstr "ขั้นสูง" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -msgid "Allow roaming if home network is not available" -msgstr "เปิดใช้บริการข้ามเครือข่ายถ้าออกนอกเครือข่ายเหย้า" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "เน้น 3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "เครือข่ายใดๆ" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "เน้น 2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 msgid "Basic" msgstr "พื้นฐาน" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "เปลี่ยน..." - -#: ../src/connection-editor/ce-page-mobile.ui.h:8 -msgid "N_etwork ID:" -msgstr "ชื่อเ_ครือข่าย:" - -#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "เ_ลขหมาย:" #: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "PI_N:" -msgstr "PI_N:" +msgid "Advanced" +msgstr "ขั้นสูง" #: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "เน้น 2G (GPRS/EDGE)" +msgid "_APN:" +msgstr "_APN:" #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "เน้น 3G (UMTS/HSPA)" +msgid "N_etwork ID:" +msgstr "ชื่อเ_ครือข่าย:" #: ../src/connection-editor/ce-page-mobile.ui.h:13 -msgid "Sho_w passwords" -msgstr "แ_สดงรหัสผ่าน" +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "ช_นิด:" #: ../src/connection-editor/ce-page-mobile.ui.h:14 -msgid "_APN:" -msgstr "_APN:" +msgid "Change..." +msgstr "เปลี่ยน..." + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +msgid "P_IN:" +msgstr "P_IN:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "ช_นิด:" +msgid "Allow _roaming if home network is not available" +msgstr "เปิดใช้บริการ_ข้ามเครือข่ายถ้าออกนอกเครือข่ายเหย้า" + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "แ_สดงรหัสผ่าน" #: ../src/connection-editor/ce-page-ppp.ui.h:1 -msgid "Allow _BSD data compression" -msgstr "เปิดรับการบีบอัดข้อมูลแบบ _BSD" +msgid "Authentication" +msgstr "การยืนยันตัวบุคคล" #: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "เปิดรับการบีบอัดข้อมูลแบบ _Deflate" - -#: ../src/connection-editor/ce-page-ppp.ui.h:3 msgid "Allowed methods:" msgstr "วิธีการที่อนุญาต:" -#: ../src/connection-editor/ce-page-ppp.ui.h:4 -msgid "Authentication" -msgstr "การยืนยันตัวบุคคล" +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "ตั้งค่า_วิธีการ…" -#: ../src/connection-editor/ce-page-ppp.ui.h:5 +#: ../src/connection-editor/ce-page-ppp.ui.h:4 msgid "Compression" msgstr "การบีบอัด" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "ใ_ช้การเข้ารหัสลับแบบ point-to-point (MPPE)" + #: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" -msgstr "ตั้งค่า_วิธีการ…" +msgid "_Require 128-bit encryption" +msgstr "_บังคับใช้การเข้ารหัสลับ 128 บิต" #: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" -msgstr "การสะท้อนข้อมูล" +msgid "Use _stateful MPPE" +msgstr "ใช้ MPPE แบบเปลี่ยน_สถานะ" #: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" -msgstr "ส่งแพ็กเก็ตสะ_ท้อนของ PPP" +msgid "Allow _BSD data compression" +msgstr "เปิดรับการบีบอัดข้อมูลแบบ _BSD" #: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" -msgstr "ใช้การบีบอัดข้อมูลส่วน_หัว TCP" +msgid "Allow _Deflate data compression" +msgstr "เปิดรับการบีบอัดข้อมูลแบบ _Deflate" #: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" -msgstr "ใช้ MPPE แบบเปลี่ยน_สถานะ" +msgid "Use TCP _header compression" +msgstr "ใช้การบีบอัดข้อมูลส่วน_หัว TCP" #: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" -msgstr "_บังคับใช้การเข้ารหัสลับ 128 บิต" +msgid "Echo" +msgstr "การสะท้อนข้อมูล" #: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "ใ_ช้การเข้ารหัสลับแบบ point-to-point (MPPE)" - -#: ../src/connection-editor/ce-page-wired.ui.h:1 -msgid "1 Gb/s" -msgstr "1 Gb/s" +msgid "Send PPP _echo packets" +msgstr "ส่งแพ็กเก็ตสะ_ท้อนของ PPP" #: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 Gb/s" +msgid "Twisted Pair (TP)" +msgstr "Twisted Pair (TP)" #: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "10 Mb/s" -msgstr "10 Mb/s" +msgid "Attachment Unit Interface (AUI)" +msgstr "Attachment Unit Interface (AUI)" #: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "100 Mb/s" -msgstr "100 Mb/s" +msgid "BNC" +msgstr "BNC" #: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" -msgstr "Attachment Unit Interface (AUI)" +msgid "Media Independent Interface (MII)" +msgstr "Media Independent Interface (MII)" #: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "ตกลงแ_ลกเปลี่ยนอัตโนมัติ" +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-wired.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" #: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" +msgid "1 Gb/s" +msgstr "1 Gb/s" #: ../src/connection-editor/ce-page-wired.ui.h:9 -msgid "Full duple_x" -msgstr "สื่อสาร_สองทางเต็มอัตรา" +msgid "10 Gb/s" +msgstr "10 Gb/s" #: ../src/connection-editor/ce-page-wired.ui.h:10 -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "MT_U:" -msgstr "MT_U:" +msgid "_Port:" +msgstr "_พอร์ต:" #: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "Media Independent Interface (MII)" +msgid "_Speed:" +msgstr "ความเ_ร็ว:" #: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"หมายเลข MAC ที่ป้อนที่นี่จะถูกใช้เป็นหมายเลขฮาร์ดแวร์สำหรับอุปกรณ์เครือข่ายที่การเชื่อมต่อนี้ทำงานอยู่ " -"ความสามารถนี้เรียกกันว่าการปลอม MAC (MAC cloning หรือ spoofing) ตัวอย่าง: " -"00:11:22:33:44:55" +msgid "Full duple_x" +msgstr "สื่อสาร_สองทางเต็มอัตรา" #: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Twisted Pair (TP)" -msgstr "Twisted Pair (TP)" +msgid "Aut_onegotiate" +msgstr "ตกลงแ_ลกเปลี่ยนอัตโนมัติ" #: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "_Cloned MAC address:" -msgstr "หมายเลข MAC ฉบับ_จำลอง:" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 +#: ../src/connection-editor/ce-page-wireless.ui.h:8 msgid "_Device MAC address:" msgstr "_หมายเลข MAC ของอุปกรณ์:" +#: ../src/connection-editor/ce-page-wired.ui.h:15 +#: ../src/connection-editor/ce-page-wireless.ui.h:10 +msgid "C_loned MAC address:" +msgstr "หมายเลข MAC ฉบับ_จำลอง:" + #: ../src/connection-editor/ce-page-wired.ui.h:16 -msgid "_Port:" -msgstr "_พอร์ต:" +#: ../src/connection-editor/ce-page-wireless.ui.h:9 +msgid "" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"หมายเลข MAC ที่ป้อนที่นี่จะถูกใช้เป็นหมายเลขฮาร์ดแวร์สำหรับอุปกรณ์เครือข่ายที่การเชื่อมต่อนี้ทำงานอยู่ " +"ความสามารถนี้เรียกกันว่าการปลอม MAC (MAC cloning หรือ spoofing) ตัวอย่าง: " +"00:11:22:33:44:55" #: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Speed:" -msgstr "ความเ_ร็ว:" +#: ../src/connection-editor/ce-page-wireless.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" #: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:19 +#: ../src/connection-editor/ce-page-wireless.ui.h:6 msgid "bytes" msgstr "ไบต์" -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wireless.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "เฉพาะกิจ" - -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wireless.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" -msgstr "ย่านความ_ถี่:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "_ช่องสัญญาณ:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:7 +#: ../src/connection-editor/ce-page-wireless.ui.h:4 msgid "Infrastructure" msgstr "โครงสร้างพื้นฐาน" -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" -msgstr "โห_มด:" +#: ../src/connection-editor/ce-page-wireless.ui.h:5 +msgid "Ad-hoc" +msgstr "เฉพาะกิจ" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 +#: ../src/connection-editor/ce-page-wireless.ui.h:11 +msgid "mW" +msgstr "mW" + +#: ../src/connection-editor/ce-page-wireless.ui.h:12 +msgid "Transmission po_wer:" +msgstr "_กำลังส่ง:" + +#: ../src/connection-editor/ce-page-wireless.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:12 +#: ../src/connection-editor/ce-page-wireless.ui.h:14 +msgid "_Rate:" +msgstr "_อัตรา:" + +#: ../src/connection-editor/ce-page-wireless.ui.h:15 msgid "" "This option locks this connection to the wireless access point (AP) " "specified by the BSSID entered here. Example: 00:11:22:33:44:55" @@ -1370,83 +1486,84 @@ "ตัวเลือกนี้จะล็อคการเชื่อมต่อนี้เข้ากับ access point (AP) ที่ระบุโดย BSSID ที่ป้อนนี้ ตัวอย่าง: " "00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 -msgid "Transmission po_wer:" -msgstr "_กำลังส่ง:" - -#: ../src/connection-editor/ce-page-wireless.ui.h:14 +#: ../src/connection-editor/ce-page-wireless.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" #: ../src/connection-editor/ce-page-wireless.ui.h:17 -msgid "_Rate:" -msgstr "_อัตรา:" +msgid "C_hannel:" +msgstr "_ช่องสัญญาณ:" #: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_SSID:" -msgstr "_SSID:" +msgid "Ban_d:" +msgstr "ย่านความ_ถี่:" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "mW" -msgstr "mW" +#: ../src/connection-editor/ce-page-wireless.ui.h:19 +msgid "M_ode:" +msgstr "โห_มด:" + +#: ../src/connection-editor/ce-page-wireless.ui.h:20 +msgid "SS_ID:" +msgstr "SS_ID:" #: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "_Security:" -msgstr "การรักษา_ความปลอดภัย:" +msgid "S_ecurity:" +msgstr "การรักษาความ_ปลอดภัย:" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "วิธียืนยันตัวบุคคลที่เปิดใช้:" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 -msgid "C_HAP" -msgstr "C_HAP" +msgid "_EAP" +msgstr "_EAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 -msgid "Challenge Handshake Authentication Protocol" -msgstr "Challenge Handshake Authentication Protocol" - -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 msgid "Extensible Authentication Protocol" msgstr "Extensible Authentication Protocol" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "_PAP" + #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 -msgid "" -"In most cases, the provider's PPP servers will support all authentication " -"methods. If connections fail, try disabling support for some methods." -msgstr "" -"โดยทั่วไปแล้ว เซิร์ฟเวอร์ PPP ของผู้ให้บริการจะรองรับวิธียืนยันตัวบุคคลทั้งหมด " -"แต่ถ้าการเชื่อมต่อไม่สำเร็จ ก็ลองปิดการรองรับบางวิธีดู" +msgid "Password Authentication Protocol" +msgstr "Password Authentication Protocol" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +msgid "C_HAP" +msgstr "C_HAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft Challenge Handshake Authentication Protocol" +msgid "Challenge Handshake Authentication Protocol" +msgstr "Challenge Handshake Authentication Protocol" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft Challenge Handshake Authentication Protocol รุ่นที่ 2" +msgid "_MSCHAP" +msgstr "_MSCHAP" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" -msgstr "Password Authentication Protocol" +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft Challenge Handshake Authentication Protocol" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "_EAP" +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "_MSCHAP" +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft Challenge Handshake Authentication Protocol รุ่นที่ 2" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "_PAP" +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "" +"โดยทั่วไปแล้ว เซิร์ฟเวอร์ PPP ของผู้ให้บริการจะรองรับวิธียืนยันตัวบุคคลทั้งหมด " +"แต่ถ้าการเชื่อมต่อไม่สำเร็จ ก็ลองปิดการรองรับบางวิธีดู" #: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 #: ../src/wireless-security/eap-method-peap.ui.h:1 #: ../src/wireless-security/eap-method-ttls.ui.h:1 #: ../src/wireless-security/ws-dynamic-wep.ui.h:1 @@ -1459,10 +1576,6 @@ msgstr "เลือกชนิดการเชื่อมต่อ VPN" #: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "สร้าง…" - -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 msgid "" "Select the type of VPN you wish to use for the new connection. If the type " "of VPN connection you wish to create does not appear in the list, you may " @@ -1471,22 +1584,26 @@ "เลือกชนิดของ VPN ที่คุณต้องการใช้สำหรับการเชื่อมต่อใหม่นี้ ถ้าชนิดของการเชื่อมต่อ VPN " "ที่คุณต้องการสร้างไม่มีอยู่ในรายชื่อนี้ ก็แปลว่าคุณอาจไม่ได้ติดตั้งปลั๊กอิน VPN ที่ถูกต้องไว้" +#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 +msgid "Create…" +msgstr "สร้าง…" + #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:901 -#: ../src/connection-editor/page-ip6.c:867 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "ที่อยู่" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:918 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "เน็ตแมสก์" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:935 -#: ../src/connection-editor/page-ip6.c:901 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "เกตเวย์" @@ -1496,13 +1613,13 @@ msgstr "Metric" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:884 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "Prefix" #: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1482 +#: ../src/connection-editor/nm-connection-editor.ui.h:8 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1510,7 +1627,7 @@ msgid "Could not load DSL user interface." msgstr "ไม่สามารถโหลดส่วนติดต่อผู้ใช้สำหรับ DSL" -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "การเชื่อมต่อ DSL %d" @@ -1562,16 +1679,26 @@ msgid "Disabled" msgstr "ปิดใช้งาน" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "เซิร์ฟเวอร์ _DNS เพิ่มเติม:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "โดเมน_ค้นหาเพิ่มเติม:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "แก้ไขเส้นทาง IPv4 สำหรับ %s" -#: ../src/connection-editor/page-ip4.c:982 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "ตั้งค่า IPv4" -#: ../src/connection-editor/page-ip4.c:984 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "ไม่สามารถโหลดส่วนติดต่อผู้ใช้สำหรับ IPv4" @@ -1580,7 +1707,7 @@ msgstr "อัตโนมัติ เฉพาะที่อยู่" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "ไม่ใช้" @@ -1588,16 +1715,16 @@ msgid "Automatic, DHCP only" msgstr "อัตโนมัติ ใช้ DHCP เท่านั้น" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "แก้ไขเส้นทาง IPv6 สำหรับ %s" -#: ../src/connection-editor/page-ip6.c:946 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "ตั้งค่า IPv6" -#: ../src/connection-editor/page-ip6.c:948 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "ไม่สามารถโหลดส่วนติดต่อผู้ใช้สำหรับ IPv6" @@ -1644,6 +1771,7 @@ msgstr "CHAP" #: ../src/connection-editor/page-ppp.c:137 +#: ../src/wireless-security/eap-method-fast.c:277 #: ../src/wireless-security/eap-method-peap.c:246 #: ../src/wireless-security/eap-method-ttls.c:263 msgid "MSCHAPv2" @@ -1664,17 +1792,17 @@ msgid "Editing PPP authentication methods for %s" msgstr "แก้ไขวิธียืนยันตัวบุคคลของ PPP สำหรับ %s" -#: ../src/connection-editor/page-ppp.c:283 +#: ../src/connection-editor/page-ppp.c:282 msgid "PPP Settings" msgstr "ตั้งค่า PPP" -#: ../src/connection-editor/page-ppp.c:285 +#: ../src/connection-editor/page-ppp.c:284 msgid "Could not load PPP user interface." msgstr "ไม่สามารถโหลดส่วนติดต่อผู้ใช้สำหรับ PPP" #: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1478 +#: ../src/connection-editor/nm-connection-editor.ui.h:7 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1688,13 +1816,13 @@ msgstr "หาปลั๊กอินบริการ VPN สำหรับ '%s' ไม่พบ" #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:884 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "การเชื่อมต่อ %d" -#: ../src/connection-editor/page-wired.c:88 -#: ../src/connection-editor/page-wireless.c:93 +#: ../src/connection-editor/page-wired.c:89 +#: ../src/connection-editor/page-wireless.c:94 msgid "" "This option locks this connection to the network device specified by its " "permanent MAC address entered here. Example: 00:11:22:33:44:55" @@ -1702,151 +1830,151 @@ "ตัวเลือกนี้จะล็อคการเชื่อมต่อไว้กับอุปกรณ์เครือข่ายที่ระบุโดยหมายเลข MAC นี้ ตัวอย่าง: " "00:11:22:33:44:55" -#: ../src/connection-editor/page-wired.c:267 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -#: ../src/connection-editor/nm-connection-list.c:1466 +#: ../src/connection-editor/page-wired.c:272 +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "โยงสาย" -#: ../src/connection-editor/page-wired.c:269 +#: ../src/connection-editor/page-wired.c:274 msgid "Could not load wired user interface." msgstr "ไม่สามารถโหลดส่วนติดต่อผู้ใช้สำหรับเครือข่ายโยงสาย" -#: ../src/connection-editor/page-wired.c:444 +#: ../src/connection-editor/page-wired.c:449 #, c-format msgid "Wired connection %d" msgstr "การเชื่อมต่อโยงสาย %d" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "การรักษาความปลอดภัย 802.1x" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "ไม่สามารถโหลดส่วนติดต่อผู้ใช้สำหรับการรักษาความปลอดภัยเครือข่ายโยงสาย" -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1X security for this connection" -msgstr "ใช้การรักษาความปลอดภัย 802.1X สำหรับการเชื่อมต่อนี้" - -#: ../src/connection-editor/page-wireless.c:166 -#: ../src/connection-editor/page-wireless.c:170 -#: ../src/connection-editor/page-wireless.c:191 +#: ../src/connection-editor/page-wired-security.c:139 +msgid "Use 802.1_X security for this connection" +msgstr "ใช้การรักษาความปลอดภัย 802.1_X สำหรับการเชื่อมต่อนี้" + +#: ../src/connection-editor/page-wireless.c:171 +#: ../src/connection-editor/page-wireless.c:175 +#: ../src/connection-editor/page-wireless.c:196 #, c-format msgid "default" msgstr "ปริยาย" -#: ../src/connection-editor/page-wireless.c:195 +#: ../src/connection-editor/page-wireless.c:200 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:452 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -#: ../src/connection-editor/nm-connection-list.c:1470 +#: ../src/connection-editor/page-wireless.c:457 +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "ไร้สาย" -#: ../src/connection-editor/page-wireless.c:454 +#: ../src/connection-editor/page-wireless.c:459 msgid "Could not load WiFi user interface." msgstr "ไม่สามารถโหลดส่วนติดต่อผู้ใช้สำหรับ WiFi" -#: ../src/connection-editor/page-wireless.c:658 +#: ../src/connection-editor/page-wireless.c:663 #, c-format msgid "Wireless connection %d" msgstr "การเชื่อมต่อไร้สาย %d" -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "WEP กุญแจ 40/128 บิต (ฐานสิบหก หรือ ASCII)" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128 บิต แบบวลีรหัสผ่าน" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "WEP แบบผันแปร (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 ส่วนบุคคล" -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA & WPA2 เอนเทอร์ไพรส์" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "ไม่สามารถโหลดส่วนติดต่อผู้ใช้สำหรับการรักษาความปลอดภัย WiFi; ไม่ได้ตั้งค่า WiFi ไว้" -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "การรักษาความปลอดภัยเครือข่ายไร้สาย" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "ไม่สามารถโหลดส่วนติดต่อผู้ใช้สำหรับการรักษาความปลอดภัย WiFi" -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "แก้ไข %s" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "แก้ไขการเชื่อมต่อไม่มีชื่อ" -#: ../src/connection-editor/nm-connection-editor.c:288 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." msgstr "เครื่องมือแก้ไขการเชื่อมต่อไม่พบข้อมูลบางอย่างที่ต้องใช้ (ไม่พบแฟ้ม .ui)" -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "เกิดข้อผิดพลาดขณะสร้างกล่องโต้ตอบแก้ไขการเชื่อมต่อ" -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "_บันทึก" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "บันทึกการเปลี่ยนแปลงใดๆ ที่ได้ทำไว้กับการเชื่อมต่อนี้" -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "_บันทึก..." -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." msgstr "ยืนยันตัวบุคคลเพื่อบันทึกการเปลี่ยนแปลงใดๆ ที่ได้ทำไว้กับการเชื่อมต่อนี้" -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "เปิดให้ผู้ใช้ทุกคนสามารถใช้ได้" +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Import" +msgstr "_นำเข้า" -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "เชื่อมต่อโดย_อัตโนมัติ" +#: ../src/connection-editor/nm-connection-editor.ui.h:6 +msgid "E_xport" +msgstr "_ส่งออก" -#: ../src/connection-editor/nm-connection-editor.ui.h:3 +#: ../src/connection-editor/nm-connection-editor.ui.h:9 msgid "Connection _name:" msgstr "_ชื่อการเชื่อมต่อ:" -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "_ส่งออก" +#: ../src/connection-editor/nm-connection-editor.ui.h:10 +msgid "Connect _automatically" +msgstr "เชื่อมต่อโดย_อัตโนมัติ" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "_นำเข้า" +msgid "A_vailable to all users" +msgstr "เปิดให้ผู้ใช้ทุกคนสามารถใช้ได้" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -1902,18 +2030,18 @@ msgstr "คุณสมบัติ '%s' / '%s' ไม่ถูกต้อง: %d" #: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:642 +#: ../src/connection-editor/nm-connection-list.c:662 msgid "An unknown error occurred." msgstr "เกิดข้อผิดพลาดไม่ทราบสาเหตุ" #: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:686 +#: ../src/connection-editor/nm-connection-list.c:702 msgid "Error initializing editor" msgstr "เกิดข้อผิดพลาดขณะตั้งต้นเครื่องมือแก้ไข" #: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:703 -#: ../src/connection-editor/nm-connection-list.c:870 +#: ../src/connection-editor/nm-connection-list.c:719 +#: ../src/connection-editor/nm-connection-list.c:885 msgid "" "The connection editor dialog could not be initialized due to an unknown " "error." @@ -1927,25 +2055,25 @@ msgid "Could not edit new connection" msgstr "ไม่สามารถแก้ไขการเชื่อมต่อรายการใหม่" -#: ../src/connection-editor/nm-connection-list.c:717 +#: ../src/connection-editor/nm-connection-list.c:733 msgid "Could not edit connection" msgstr "ไม่สามารถแก้ไขการเชื่อมต่อ" -#: ../src/connection-editor/nm-connection-list.c:747 +#: ../src/connection-editor/nm-connection-list.c:763 msgid "Connection delete failed" msgstr "ลบการเชื่อมต่อไม่สำเร็จ" -#: ../src/connection-editor/nm-connection-list.c:779 +#: ../src/connection-editor/nm-connection-list.c:795 #, c-format msgid "Are you sure you wish to delete the connection %s?" msgstr "แน่ใจหรือไม่ว่าคุณต้องการลบการเชื่อมต่อ %s?" -#: ../src/connection-editor/nm-connection-list.c:914 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "ไม่สามารถนำเข้าการเชื่อมต่อ VPN" -#: ../src/connection-editor/nm-connection-list.c:916 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -1955,79 +2083,79 @@ "\n" "ข้อผิดพลาด: ไม่มีชนิดของบริการ VPN" -#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "ไม่สามารถแก้ไขการเชื่อมต่อที่นำเข้า" -#: ../src/connection-editor/nm-connection-list.c:1099 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "ชื่อ" -#: ../src/connection-editor/nm-connection-list.c:1111 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "ใช้ล่าสุด" -#: ../src/connection-editor/nm-connection-list.c:1227 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." msgstr "ไม่มีปลั๊กอิน VPN ติดตั้งอยู่ กรุณาติดตั้งปลั๊กอินเพื่อเปิดใช้งานปุ่มนี้" -#: ../src/connection-editor/nm-connection-list.c:1238 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "แ_ก้ไข" -#: ../src/connection-editor/nm-connection-list.c:1239 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "แก้ไขการเชื่อมต่อที่เลือก" -#: ../src/connection-editor/nm-connection-list.c:1240 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "แ_ก้ไข..." -#: ../src/connection-editor/nm-connection-list.c:1241 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "ยืนยันตัวบุคคลเพื่อแก้ไขการเชื่อมต่อที่เลือก" -#: ../src/connection-editor/nm-connection-list.c:1256 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "_ลบ" -#: ../src/connection-editor/nm-connection-list.c:1257 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "ลบการเชื่อมต่อที่เลือก" -#: ../src/connection-editor/nm-connection-list.c:1258 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "_ลบ..." -#: ../src/connection-editor/nm-connection-list.c:1259 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "ยืนยันตัวบุคคลเพื่อลบการเชื่อมต่อที่เลือก" -#: ../src/connection-editor/nm-connection-list.c:1538 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "เกิดข้อผิดพลาดขณะสร้างการเชื่อมต่อ" -#: ../src/connection-editor/nm-connection-list.c:1539 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "ไม่ทราบว่าจะสร้างการเชื่อมต่อ '%s' อย่างไร" -#: ../src/connection-editor/nm-connection-list.c:1594 -#: ../src/connection-editor/nm-connection-list.c:1606 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "เกิดข้อผิดพลาดขณะแก้ไขการเชื่อมต่อ" -#: ../src/connection-editor/nm-connection-list.c:1595 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "ไม่ทราบว่าจะแก้ไขการเชื่อมต่อ '%s' อย่างไร" -#: ../src/connection-editor/nm-connection-list.c:1607 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "ไม่พบการเชื่อมต่อที่มี UUID '%s'" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2039,29 +2167,29 @@ "\n" "ข้อผิดพลาด: %s" -#: ../src/connection-editor/vpn-helpers.c:261 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "เลือกแฟ้มที่จะนำเข้า" -#: ../src/connection-editor/vpn-helpers.c:309 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "แฟ้มชื่อ \"%s\" มีอยู่ก่อนแล้ว" -#: ../src/connection-editor/vpn-helpers.c:311 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "แ_ทนที่" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "คุณต้องการจะแทนที่ %s ด้วยการเชื่อมต่อ VPN ที่คุณกำลังจะบันทึกนี้หรือไม่?" -#: ../src/connection-editor/vpn-helpers.c:349 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "ไม่สามารถส่งออกการเชื่อมต่อ VPN" -#: ../src/connection-editor/vpn-helpers.c:351 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2072,114 +2200,111 @@ "\n" "ข้อผิดพลาด: %s" -#: ../src/connection-editor/vpn-helpers.c:385 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "ส่งออกการเชื่อมต่อ VPN..." -#: ../src/gnome-bluetooth/bt-widget.c:220 +#: ../src/gnome-bluetooth/bt-widget.c:321 #, c-format -msgid "Failed to create PAN connection: %s" -msgstr "สร้างการเชื่อมต่อ PAN ไม่สำเร็จ: %s" - -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "โทรศัพท์ของคุณพร้อมใช้งานแล้ว!" +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "ไม่สามารถตั้งต่าบลูทูทได้ (เชื่อมต่อกับ D-Bus ไม่สำเร็จ: (%s) %s)" -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "เครือข่าย %s" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "ไม่สามารถตั้งต่าบลูทูทได้ (เกิดข้อผิดพลาดขณะหา NetworkManager: (%s) %s)" + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "ใช้โทรศัพท์มือถือของคุณเป็นอุปกรณ์เครือข่าย (PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "เข้าถึงอินเทอร์เน็ตโดยใช้โทรศัพท์มือถือของคุณ (DUN)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "ความผิดพลาด: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "สร้างการเชื่อมต่อ DUN ไม่สำเร็จ: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "โทรศัพท์ของคุณพร้อมใช้งานแล้ว!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "เครื่องมือวิเศษสำหรับมือถือถูกยกเลิก" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "ไม่รู้จักชนิดของอุปกรณ์โทรศัพท์ (ไม่ใช่ GSM หรือ CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "ไม่ทราบชนิดของโมเด็ม" + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "เชื่อมต่อกับโทรศัพท์ไม่สำเร็จ" -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "การเชื่อมต่อกับโทรศัพท์ถูกตัดกะทันหัน" -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "หมดเวลาคอยขณะตรวจหารายละเอียดของโทรศัพท์" -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "กำลังตรวจหาการตั้งค่าของโทรศัพท์..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "หาอุปกรณ์บลูทูทไม่พบ" - -#: ../src/gnome-bluetooth/bt-widget.c:975 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." msgstr "ต้องเปิดใช้การติดต่อบลูทูทก่อนที่จะตั้งค่าการเชื่อมต่อเครือข่ายแบบหมุนโทรศัพท์" -#: ../src/gnome-bluetooth/bt-widget.c:1007 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "ไม่สามารถตั้งต่าบลูทูทได้ (เชื่อมต่อกับ D-Bus ไม่สำเร็จ: %s)" - -#: ../src/gnome-bluetooth/bt-widget.c:1017 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "ไม่สามารถตั้งต่าบลูทูทได้ (สร้างพร็อกซี D-Bus ไม่สำเร็จ: %s)" +msgid "Failed to create PAN connection: %s" +msgstr "สร้างการเชื่อมต่อ PAN ไม่สำเร็จ: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1026 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "ไม่สามารถตั้งต่าบลูทูทได้ (เกิดข้อผิดพลาดขณะหา NetworkManager: %s)" - -#: ../src/gnome-bluetooth/bt-widget.c:1093 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "ใช้โทรศัพท์มือถือของคุณเป็นอุปกรณ์เครือข่าย (PAN/NAP)" - -#: ../src/gnome-bluetooth/bt-widget.c:1102 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "เข้าถึงอินเทอร์เน็ตโดยใช้โทรศัพท์มือถือของคุณ (DUN)" +msgid "%s Network" +msgstr "เครือข่าย %s" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "บรอดแบนด์มือถือของคุณถูกตั้งค่าไว้ดังนี้:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:212 msgid "Your Device:" msgstr "อุปกรณ์ของคุณ:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:223 msgid "Your Provider:" msgstr "ผู้ให้บริการของคุณ:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:234 msgid "Your Plan:" msgstr "แผนของคุณ:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:259 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2192,23 +2317,23 @@ "ก็กรุณาตรวจสอบการตั้งค่าของคุณใหม่ การแก้ไขค่าตั้งบรอดแบนด์มือถือ ทำได้โดยเลือก " "\"การเชื่อมต่อเครือข่าย\" จากเมนู \"ระบบ\" >> \"ปรับแต่งพื้นโต๊ะ\"" -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:271 msgid "Confirm Mobile Broadband Settings" msgstr "ยืนยันการตั้งค่าบรอดแบนด์มือถือ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:332 msgid "Unlisted" msgstr "ไม่ระบุ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:487 msgid "_Select your plan:" msgstr "เ_ลือกแผนของคุณ:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:511 msgid "Selected plan _APN (Access Point Name):" msgstr "เลือก _APN (Access Point Name) ของแผน:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2220,101 +2345,101 @@ "\n" "ถ้าคุณไม่แน่ใจเกี่ยวกับแผนของคุณ กรุณาสอบถามผู้ให้บริการของคุณเกี่ยวกับ APN สำหรับแผนที่คุณใช้" -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:542 msgid "Choose your Billing Plan" msgstr "เลือกแผนการจ่ายเงินของคุณ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:590 msgid "My plan is not listed..." msgstr "แผนที่ฉันใช้ไม่มีในรายชื่อ..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:747 msgid "Select your provider from a _list:" msgstr "เลือกผู้ให้บริการของคุณจาก_รายชื่อ:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:760 msgid "Provider" msgstr "ผู้ให้บริการ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:785 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "ฉันไม่เห็นชื่อผู้ให้บริการของฉันในรายชื่อ และต้องการป้อนเ_อง:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:796 msgid "Provider:" msgstr "ผู้ให้บริการ:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:820 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "ผู้ให้บริการของฉันใช้เทคโนโลยี GSM (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "ผู้ให้บริการของฉันใช้เทคโนโลยี CDMA (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:837 msgid "Choose your Provider" msgstr "เลือกผู้ให้บริการของคุณ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1080 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1088 msgid "Country or Region List:" msgstr "รายชื่อประเทศหรือภูมิภาค:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1092 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "Country or region" msgstr "ประเทศหรือภูมิภาค" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1099 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1107 msgid "My country is not listed" msgstr "ไม่มีประเทศของฉันในรายชื่อ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1145 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1153 msgid "Choose your Provider's Country or Region" msgstr "เลือกประเทศหรือภูมิภาคของผู้ให้บริการของคุณ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1199 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1207 msgid "Installed GSM device" msgstr "ติดตั้งอุปกรณ์ GSM แล้ว" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1202 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1210 msgid "Installed CDMA device" msgstr "ติดตั้งอุปกรณ์ CDMA แล้ว" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1374 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1382 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." msgstr "เครื่องมือช่วยนี้จะช่วยคุณตั้งค่าการเชื่อมต่อบรอดแบนด์มือถือกับเครือข่ายมือถืออย่างง่ายดาย" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1379 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1387 msgid "You will need the following information:" msgstr "คุณจะต้องใช้ข้อมูลต่อไปนี้:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1394 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1402 msgid "Your broadband provider's name" msgstr "ผู้ให้บริการบรอดแบนด์ของคุณ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1400 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband billing plan name" msgstr "ชื่อแผนการจ่ายเงินที่คุณใช้" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1406 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(ในบางกรณี) APN (Access Point Name) สำหรับแผนการจ่ายเงินบรอดแบนด์ที่คุณใช้" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1433 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1441 msgid "Create a connection for _this mobile broadband device:" msgstr "สร้างการเชื่อมต่อสำหรับอุปกรณ์บรอดแบนด์มือถือ_นี้:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1448 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1456 msgid "Any device" msgstr "อุปกรณ์ใดๆ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1469 msgid "Set up a Mobile Broadband Connection" msgstr "ตั้งค่าการเชื่อมต่อบรอดแบนด์มือถือ" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1625 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1633 msgid "New Mobile Broadband Connection" msgstr "การเชื่อมต่อบรอดแบนด์มือถือรายการใหม่" @@ -2322,63 +2447,63 @@ msgid "New..." msgstr "ใหม่..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "_สร้าง" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." +"Passwords or encryption keys are required to access the wireless network " +"'%s'." msgstr "ต้องใช้รหัสผ่านหรือกุญแจเข้ารหัสลับในการเข้าใช้เครือข่ายไร้สาย '%s'" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "ต้องยืนยันตัวบุคคลกับเครือข่ายไร้สาย" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "เครือข่ายไร้สายต้องการการยืนยันตัวบุคคล" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "สร้างเครือข่ายไร้สายใหม่" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "เครือข่ายไร้สายรายการใหม่" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "ป้อนชื่อเครือข่ายไร้สายที่ต้องการสร้าง" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "เชื่อมต่อไปยังเครือข่ายไร้สายที่ซ่อนอยู่" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "เครือข่ายไร้สายที่ซ่อนอยู่" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." msgstr "ป้อนชื่อและรายละเอียดการรักษาความปลอดภัยของเครือข่ายไร้สายที่ซ่อนอยู่ที่คุณต้องการเชื่อมต่อ" #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "Wireless _security:" +msgstr "การรักษา_ความปลอดภัยเครือข่ายไร้สาย:" + +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" msgstr "การเชื่อม_ต่อ:" -#: ../src/libnm-gtk/wifi.ui.h:3 +#: ../src/libnm-gtk/wifi.ui.h:5 msgid "Wireless _adapter:" msgstr "อุปกรณ์ไ_ร้สาย:" -#: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "การรักษา_ความปลอดภัยเครือข่ายไร้สาย:" - #: ../src/main.c:73 msgid "Usage:" msgstr "วิธีใช้:" @@ -2479,17 +2604,23 @@ msgid "Default" msgstr "ปริยาย" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "การเชื่อมต่อ %s" + #: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 msgid "" "The NetworkManager Applet could not find some required resources (the .ui " "file was not found)." msgstr "แอพเพล็ต NetworkManager ไม่พบข้อมูลบางอย่างที่ต้องใช้ (ไม่พบแฟ้ม .ui)" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "ไม่ได้เลือกใบรับรองจากองค์กรออกใบรับรอง" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " @@ -2498,62 +2629,97 @@ "การไม่ใช้ใบรับรองจากองค์กรออกใบรับรอง (CA) อาจทำให้การเชื่อมต่อไม่มีความปลอดภัย " "หรือเป็นเครือข่ายไร้สายเถื่อน คุณต้องการจะเลือกใบรับรองจากองค์กรออกใบรับรองหรือไม่?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "เลือกใบรับรอง CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "กุญแจส่วนตัวแบบ DER, PEM, หรือ PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "ใบรับรองแบบ DER หรือ PEM (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:372 -msgid "MD5" -msgstr "MD5" +#: ../src/wireless-security/eap-method-fast.ui.h:2 +msgid "Anonymous" +msgstr "นิรนาม" + +#: ../src/wireless-security/eap-method-fast.ui.h:3 +msgid "Authenticated" +msgstr "ยืนยันตัวบุคคล" + +#: ../src/wireless-security/eap-method-fast.ui.h:4 +msgid "Both" +msgstr "ทั้งสองอย่าง" + +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "ชื่อในระบบแบบนิ_รนาม:" + +#: ../src/wireless-security/eap-method-fast.ui.h:6 +msgid "PAC _file:" +msgstr "แ_ฟ้ม PAC:" + +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-ttls.ui.h:4 +msgid "_Inner authentication:" +msgstr "การยืนยันตัวบุคคลชั้นใ_น:" + +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "เปิดรับการใช้ PAC อัตโนมัติ" +#: ../src/wireless-security/eap-method-fast.c:261 #: ../src/wireless-security/eap-method-peap.c:280 msgid "GTC" msgstr "GTC" +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "เลือกแฟ้ม PAC..." + +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "แฟ้ม PAC (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "ทุกแฟ้ม" + +#: ../src/wireless-security/eap-method-peap.c:263 +#: ../src/wireless-security/wireless-security.c:382 +msgid "MD5" +msgstr "MD5" + #: ../src/wireless-security/eap-method-peap.c:350 #: ../src/wireless-security/eap-method-tls.c:416 #: ../src/wireless-security/eap-method-ttls.c:350 msgid "Choose a Certificate Authority certificate..." msgstr "เลือกใบรับรองจากองค์กรออกใบรับรอง..." -#: ../src/wireless-security/eap-method-peap.ui.h:2 -#: ../src/wireless-security/eap-method-ttls.ui.h:2 -msgid "Anony_mous identity:" -msgstr "ชื่อในระบบแบบนิ_รนาม:" - -#: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:3 -msgid "C_A certificate:" -msgstr "ใ_บรับรอง CA:" - -#: ../src/wireless-security/eap-method-peap.ui.h:5 -#: ../src/wireless-security/eap-method-ttls.ui.h:4 -msgid "I_nner authentication:" -msgstr "การยืนยันตัวบุคคลชั้นใ_น:" - -#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-peap.ui.h:3 msgid "Version 0" msgstr "รุ่น 0" -#: ../src/wireless-security/eap-method-peap.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:4 msgid "Version 1" msgstr "รุ่น 1" +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-ttls.ui.h:3 +msgid "C_A certificate:" +msgstr "ใ_บรับรอง CA:" + #: ../src/wireless-security/eap-method-peap.ui.h:8 -msgid "_PEAP version:" -msgstr "รุ่นของ _PEAP:" +msgid "PEAP _version:" +msgstr "รุ่_นของ PEAP:" -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "_ถามรหัสผ่านทุกครั้ง" @@ -2583,11 +2749,15 @@ msgid "Choose your private key..." msgstr "เลือกกุญแจส่วนตัวของคุณ..." -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "_ชื่อในระบบ:" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "_ใบรับรองของผู้ใช้:" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "กุญแจ_ส่วนตัว:" @@ -2595,10 +2765,6 @@ msgid "_Private key password:" msgstr "_รหัสผ่านกุญแจส่วนตัว:" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "_ใบรับรองของผู้ใช้:" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "ไ_ม่ต้องเตือนฉันอีก" @@ -2611,59 +2777,78 @@ msgid "Yes" msgstr "ใช่" -#: ../src/wireless-security/wireless-security.c:384 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:408 +#: ../src/wireless-security/wireless-security.c:418 +msgid "FAST" +msgstr "FAST" + +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "TLS ผ่านทันเนล" -#: ../src/wireless-security/wireless-security.c:419 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "EAP ที่มีการปกป้อง (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 #: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 -msgid "_Authentication:" +msgid "Au_thentication:" msgstr "การ_ยืนยันตัวบุคคล:" #: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "ระบบเปิด" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "ใช้กุญแจร่วมกัน" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (ปริยาย)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:5 -msgid "Open System" -msgstr "ระบบเปิด" - -#: ../src/wireless-security/ws-wep-key.ui.h:6 -msgid "Shared Key" -msgstr "ใช้กุญแจร่วมกัน" - #: ../src/wireless-security/ws-wep-key.ui.h:7 +msgid "_Key:" +msgstr "กุญแ_จ:" + +#: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "แ_สดงกุญแจ" -#: ../src/wireless-security/ws-wep-key.ui.h:8 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "_ดัชนี WEP:" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "กุญแ_จ:" +#~ msgid "Click on this icon to connect to a wireless network" +#~ msgstr "คลิกที่ไอคอนเพื่อเชื่อมต่อกับเครือข่ายไร้สาย" + +#~ msgid "_Security:" +#~ msgstr "การรักษา_ความปลอดภัย:" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "หาอุปกรณ์บลูทูทไม่พบ" + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "ไม่สามารถตั้งต่าบลูทูทได้ (สร้างพร็อกซี D-Bus ไม่สำเร็จ: %s)" + +#~ msgid "_Authentication:" +#~ msgstr "การ_ยืนยันตัวบุคคล:" #~ msgid "translator-credits" #~ msgstr "" @@ -2697,15 +2882,9 @@ #~ msgid "Could not start the VPN connection '%s' due to a connection error." #~ msgstr "ไม่สามารถเริ่มการเชื่อมต่อ VPN '%s' เนื่องจากเกิดปัญหาในการเชื่อมต่อ" -#~ msgid "Authentication:" -#~ msgstr "การยืนยันตัวบุคคล:" - #~ msgid "Create VPN Connection" #~ msgstr "สร้างการเชื่อมต่อ VPN" -#~ msgid "WEP 64/128-bit Hex" -#~ msgstr "WEP 64/128 บิต แบบฐานสิบหก" - #~ msgid "Edit the selected VPN connection" #~ msgstr "แก้ไขการเชื่อมต่อ VPN ที่เลือก" @@ -2745,13 +2924,6 @@ #~ msgid "Wireless Ethernet (%s)" #~ msgstr "อีเทอร์เน็ตไร้สาย (%s)" -#~ msgid "" -#~ "Copyright © 2004-2005 Red Hat, Inc.\n" -#~ "Copyright © 2005-2006 Novell, Inc." -#~ msgstr "" -#~ "สงวนลิขสิทธิ์ © 2004-2005 Red Hat, Inc.\n" -#~ "สงวนลิขสิทธิ์ © 2005-2006 Novell, Inc." - #~ msgid "VPN Login Failure" #~ msgstr "ล็อกอิน VPN ไม่สำเร็จ" @@ -2811,15 +2983,6 @@ #~ msgid "Disconnect from %s..." #~ msgstr "ตัดการเชื่อมต่อจาก %s..." -#~ msgid "AES-CCMP" -#~ msgstr "AES-CCMP" - -#~ msgid "TKIP" -#~ msgstr "TKIP" - -#~ msgid "TTLS" -#~ msgstr "TTLS" - #~ msgid "WPA Enterprise" #~ msgstr "WPA เอนเทอร์ไพรส์" @@ -2833,8 +2996,8 @@ #~ msgstr " (รหัสยูนิโค้ดไม่ถูกต้อง)" #~ msgid "" -#~ "By default, the wireless network's name is set to your computer's name, %" -#~ "s, with no encryption enabled" +#~ "By default, the wireless network's name is set to your computer's name, " +#~ "%s, with no encryption enabled" #~ msgstr "" #~ "ตามปกติแล้ว ชื่อเครือข่ายไร้สายจะใช้ชื่อเครื่องคอมพิวเตอร์ของคุณ (%s) โดยไม่เปิดใช้การเข้ารหัส" @@ -2886,9 +3049,6 @@ #~ msgid "Destination Address:" #~ msgstr "ที่อยู่ปลายทาง:" -#~ msgid "Key Type:" -#~ msgstr "ชนิดกุญแจ:" - #~ msgid "Key management:" #~ msgstr "การจัดการกุญแจ:" @@ -2965,28 +3125,13 @@ #~ msgid "104-bit WEP" #~ msgstr "WEP 104 บิต" -#~ msgid "WPA TKIP" -#~ msgstr "WPA TKIP" - -#~ msgid "WPA CCMP" -#~ msgstr "WPA CCMP" - -#~ msgid "WPA2 TKIP" -#~ msgstr "WPA2 TKIP" - -#~ msgid "WPA2 CCMP" -#~ msgstr "WPA2 CCMP" - -#~ msgid "WPA2 Automatic" -#~ msgstr "WPA2 อัตโนมัติ" - #~ msgid "" #~ "unable to create netlink socket for monitoring wired ethernet devices - %s" #~ msgstr "ไม่สามารถสร้างซ็อกเก็ต netlink สำหรับติดตามอุปกรณ์อีเทอร์เน็ตโยงสายได้ - %s" #~ msgid "" -#~ "unable to bind to netlink socket for monitoring wired ethernet devices - %" -#~ "s" +#~ "unable to bind to netlink socket for monitoring wired ethernet devices - " +#~ "%s" #~ msgstr "ไม่สามารถ bind กับซ็อกเก็ต netlink เพื่อติดตามอุปกรณ์อีเทอร์เน็ตโยงสายได้ - %s" #~ msgid "operation took too long" diff -Nru network-manager-applet-0.9.4.1/po/tr.po network-manager-applet-0.9.6.2+git201210311320.2620/po/tr.po --- network-manager-applet-0.9.4.1/po/tr.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/tr.po 2012-10-31 13:20:57.000000000 +0000 @@ -1899,7 +1899,7 @@ "al." #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Tüm kullanıcılar için kullanılabilir" #: ../src/connection-editor/nm-connection-editor.ui.h:2 @@ -2449,7 +2449,7 @@ "girin." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "B_ağlantı:" #: ../src/libnm-gtk/wifi.ui.h:3 @@ -2457,7 +2457,7 @@ msgstr "Kablosuz _bağdaştırıcı:" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Kablosuz güvenliği:" #: ../src/main.c:73 diff -Nru network-manager-applet-0.9.4.1/po/ug.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ug.po --- network-manager-applet-0.9.4.1/po/ug.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ug.po 2012-10-31 13:20:57.000000000 +0000 @@ -1857,7 +1857,7 @@ "بۇ ماشىنىدىكى بارلىق ئىشلەتكۈچىلەرنىڭ بۇ باغلىنىشنى ساقلىشى ئۈچۈن تەكشۈر." #: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "بارلىق ئىشلەتكۈچىلەر ئىشلىتەلەيدۇ" #: ../src/connection-editor/nm-connection-editor.ui.h:2 @@ -2414,7 +2414,7 @@ "كىرگۈزۈڭ." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "باغلىنىش(_N):" #: ../src/libnm-gtk/wifi.ui.h:3 @@ -2422,7 +2422,7 @@ msgstr "سىمسىز ماسلاشتۇرغۇچ(_A):" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "سىمسىز تور بىخەتەرلىكى(_W)" #: ../src/main.c:73 diff -Nru network-manager-applet-0.9.4.1/po/uk.po network-manager-applet-0.9.6.2+git201210311320.2620/po/uk.po --- network-manager-applet-0.9.4.1/po/uk.po 2012-03-19 14:53:53.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/uk.po 2012-10-31 13:20:57.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: NetworkManager\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-18 16:31+0200\n" -"PO-Revision-Date: 2012-03-18 16:32+0300\n" +"POT-Creation-Date: 2012-03-24 09:41+0200\n" +"PO-Revision-Date: 2012-03-24 09:49+0300\n" "Last-Translator: Korostil Daniel \n" "Language-Team: translation@linux.org.ua\n" "Language: uk\n" @@ -87,7 +87,7 @@ #: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 #: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Доступні" @@ -100,7 +100,7 @@ #: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 #: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "З'єднання встановлено" @@ -129,7 +129,7 @@ #: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 #: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2484 +#: ../src/applet.c:2503 #, c-format msgid "Requesting a network address for '%s'..." msgstr "Отримання мережної адреси для «%s»..." @@ -321,7 +321,7 @@ msgstr "Дротова мережа" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1490 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1509 msgid "disconnected" msgstr "з'єднання розірвано" @@ -370,83 +370,101 @@ msgid "(none)" msgstr "(немає)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Networks (%s)" msgstr "Бездротові мережі (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:794 #, c-format msgid "Wireless Network (%s)" msgstr "Бездротова мережа (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:796 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Бездротова мережа" msgstr[1] "Бездротові мережі" msgstr[2] "Бездротові мережі" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:829 msgid "wireless is disabled" msgstr "бездротову мержу вимкнено" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:830 msgid "wireless is disabled by hardware switch" msgstr "бездротову мержу вимкнено на апаратному рівні" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:891 msgid "More networks" msgstr "Ще мережі" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1071 msgid "Wireless Networks Available" msgstr "Доступні бездротові мережі" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1072 msgid "Use the network menu to connect to a wireless network" msgstr "Використовувати меню мережі для підключення до бездротової мережі" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:906 +#: ../src/applet-device-wifi.c:1075 ../src/applet.c:925 msgid "Don't show this message again" msgstr "Більше не виводити це повідомлення" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1267 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Ви приєднані до бездротової мережі «%s»." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1298 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "Підготовка бездротового мережного з'єднання з «%s»..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1301 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "Налаштовування бездротового мережного з'єднання «%s»..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1304 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "" "Для бездротового мережного з'єднання «%s» вимагається автентифікація..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1307 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "Отримання адреси у бездротовій мережі для «%s»..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1328 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "Бездротове мережне з'єднання «%s» встановлено: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1333 #, c-format msgid "Wireless network connection '%s' active" msgstr "Бездротове мережне з'єднання «%s» встановлено" +#: ../src/applet-device-wifi.c:1381 +msgid "Failed to activate connection" +msgstr "Не вдалося встановити з'єднання" + +#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 +#: ../src/applet.c:491 ../src/applet.c:535 ../src/applet.c:561 +msgid "Unknown error" +msgstr "Невідома помилка" + +#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 +#: ../src/applet.c:494 ../src/applet.c:564 +msgid "Connection failure" +msgstr "Невдале з'єднання" + +#: ../src/applet-device-wifi.c:1400 +msgid "Failed to add new connection" +msgstr "Не вдалося додати нове з'єднання" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -707,7 +725,23 @@ msgid "Password:" msgstr "Пароль:" -#: ../src/applet.c:995 +#: ../src/applet.c:489 +msgid "Failed to add/activate connection" +msgstr "Не вдалося додати/встановити з'єднання" + +#: ../src/applet.c:533 +msgid "Device disconnect failed" +msgstr "Не вдалось від'єднати пристрій" + +#: ../src/applet.c:538 +msgid "Disconnect failure" +msgstr "Не вдалося від'єднати" + +#: ../src/applet.c:559 +msgid "Connection activation failed" +msgstr "Не вдалося встановити з'єднання" + +#: ../src/applet.c:1014 #, c-format msgid "" "\n" @@ -717,7 +751,7 @@ "\n" "Неможливо встановити з'єднання VPN «%s»: з'єднання з мережею було перервано." -#: ../src/applet.c:998 +#: ../src/applet.c:1017 #, c-format msgid "" "\n" @@ -726,7 +760,7 @@ "\n" "Неможливо встановити з'єднання VPN «%s»: служба VPN несподівано завершилась." -#: ../src/applet.c:1001 +#: ../src/applet.c:1020 #, c-format msgid "" "\n" @@ -737,7 +771,7 @@ "Неможливо встановити з'єднання VPN «%s»: служба VPN повернула неправильну " "конфігурацію." -#: ../src/applet.c:1004 +#: ../src/applet.c:1023 #, c-format msgid "" "\n" @@ -746,7 +780,7 @@ "\n" "Неможливо встановити з'єднання VPN «%s»: вичерпано час очікування." -#: ../src/applet.c:1007 +#: ../src/applet.c:1026 #, c-format msgid "" "\n" @@ -755,7 +789,7 @@ "\n" "Неможливо встановити з'єднання VPN «%s»: служба VPN не запустилась вчасно." -#: ../src/applet.c:1010 +#: ../src/applet.c:1029 #, c-format msgid "" "\n" @@ -764,7 +798,7 @@ "\n" "Неможливо встановити з'єднання VPN «%s»: неможливо запустити службу VPN." -#: ../src/applet.c:1013 +#: ../src/applet.c:1032 #, c-format msgid "" "\n" @@ -774,7 +808,7 @@ "Неможливо встановити з'єднання VPN «%s»: неможливо знайти відповідний ключ " "для VPN." -#: ../src/applet.c:1016 +#: ../src/applet.c:1035 #, c-format msgid "" "\n" @@ -783,7 +817,7 @@ "\n" "Неможливо встановити з'єднання VPN «%s»: неправильний ключ доступу до VPN." -#: ../src/applet.c:1023 +#: ../src/applet.c:1042 #, c-format msgid "" "\n" @@ -792,7 +826,7 @@ "\n" "Неможливо встановити з'єднання VPN «%s»" -#: ../src/applet.c:1041 +#: ../src/applet.c:1060 #, c-format msgid "" "\n" @@ -802,7 +836,7 @@ "\n" "З'єднання VPN «%s» розірвано, оскільки мережне з'єднання перервано." -#: ../src/applet.c:1044 +#: ../src/applet.c:1063 #, c-format msgid "" "\n" @@ -811,7 +845,7 @@ "\n" "З'єднання VPN «%s» розірвано, оскільки було зупинено службу VPN." -#: ../src/applet.c:1050 +#: ../src/applet.c:1069 #, c-format msgid "" "\n" @@ -820,15 +854,15 @@ "\n" "З'єднання VPN «%s» розірвано." -#: ../src/applet.c:1084 +#: ../src/applet.c:1103 msgid "VPN Login Message" msgstr "Повідомлення входу VPN" -#: ../src/applet.c:1090 ../src/applet.c:1098 ../src/applet.c:1148 +#: ../src/applet.c:1109 ../src/applet.c:1117 ../src/applet.c:1167 msgid "VPN Connection Failed" msgstr "Збій з'єднання VPN" -#: ../src/applet.c:1155 +#: ../src/applet.c:1174 #, c-format msgid "" "\n" @@ -841,7 +875,7 @@ "\n" "%s" -#: ../src/applet.c:1158 +#: ../src/applet.c:1177 #, c-format msgid "" "\n" @@ -854,139 +888,139 @@ "\n" "%s" -#: ../src/applet.c:1478 +#: ../src/applet.c:1497 msgid "device not ready (firmware missing)" msgstr "пристрій не готовий (відсутній мікрокод)" -#: ../src/applet.c:1480 +#: ../src/applet.c:1499 msgid "device not ready" msgstr "пристрій не готовий" -#: ../src/applet.c:1506 +#: ../src/applet.c:1525 msgid "Disconnect" msgstr "Від'єднатися" -#: ../src/applet.c:1520 +#: ../src/applet.c:1539 msgid "device not managed" msgstr "пристрій не керується" -#: ../src/applet.c:1564 +#: ../src/applet.c:1583 msgid "No network devices available" msgstr "Немає доступних мережних пристроїв" -#: ../src/applet.c:1652 +#: ../src/applet.c:1671 msgid "_VPN Connections" msgstr "З'єднання _VPN" -#: ../src/applet.c:1709 +#: ../src/applet.c:1728 msgid "_Configure VPN..." msgstr "_Налаштувати VPN..." -#: ../src/applet.c:1713 +#: ../src/applet.c:1732 msgid "_Disconnect VPN" msgstr "_Від'єднати VPN..." -#: ../src/applet.c:1811 +#: ../src/applet.c:1830 msgid "NetworkManager is not running..." msgstr "NetworkManager не запущено..." -#: ../src/applet.c:1816 ../src/applet.c:2609 +#: ../src/applet.c:1835 ../src/applet.c:2634 msgid "Networking disabled" msgstr "Підтримку мережі вимкнено" #. 'Enable Networking' item -#: ../src/applet.c:2037 +#: ../src/applet.c:2056 msgid "Enable _Networking" msgstr "_Мережа" #. 'Enable Wireless' item -#: ../src/applet.c:2046 +#: ../src/applet.c:2065 msgid "Enable _Wireless" msgstr "_Бездротова мережа" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2055 +#: ../src/applet.c:2074 msgid "Enable _Mobile Broadband" msgstr "Мобільне _широкосмугове з'єднання" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2064 +#: ../src/applet.c:2083 msgid "Enable WiMA_X Mobile Broadband" msgstr "Увімкнути мобільну _радіомережу WiMAX" #. Toggle notifications item -#: ../src/applet.c:2075 +#: ../src/applet.c:2094 msgid "Enable N_otifications" msgstr "Увімкнути _сповіщення" #. 'Connection Information' item -#: ../src/applet.c:2086 +#: ../src/applet.c:2105 msgid "Connection _Information" msgstr "_Інформація про з'єднання" #. 'Edit Connections...' item -#: ../src/applet.c:2096 +#: ../src/applet.c:2115 msgid "Edit Connections..." msgstr "Змінити з'єднання..." #. Help item -#: ../src/applet.c:2110 +#: ../src/applet.c:2129 msgid "_Help" msgstr "_Довідка" #. About item -#: ../src/applet.c:2119 +#: ../src/applet.c:2138 msgid "_About" msgstr "_Про програму" -#: ../src/applet.c:2296 +#: ../src/applet.c:2315 msgid "Disconnected" msgstr "З'єднання розірвано" -#: ../src/applet.c:2297 +#: ../src/applet.c:2316 msgid "The network connection has been disconnected." msgstr "Мережне з'єднання було розірвано." -#: ../src/applet.c:2478 +#: ../src/applet.c:2497 #, c-format msgid "Preparing network connection '%s'..." msgstr "Підготовка мережного з'єднання «%s»..." -#: ../src/applet.c:2481 +#: ../src/applet.c:2500 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Для мережного з'єднання «%s» вимагається автентифікація..." -#: ../src/applet.c:2487 +#: ../src/applet.c:2506 #, c-format msgid "Network connection '%s' active" msgstr "Мережне з'єднання «%s» встановлено" -#: ../src/applet.c:2565 +#: ../src/applet.c:2589 #, c-format msgid "Starting VPN connection '%s'..." msgstr "Запуск з'єднання VPN «%s»..." -#: ../src/applet.c:2568 +#: ../src/applet.c:2592 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "Для з'єднання VPN «%s» вимагається автентифікація…" -#: ../src/applet.c:2571 +#: ../src/applet.c:2595 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "Отримання адреси VPN для «%s»…" -#: ../src/applet.c:2574 +#: ../src/applet.c:2598 #, c-format msgid "VPN connection '%s' active" msgstr "З'єднання VPN «%s» установлено" -#: ../src/applet.c:2613 +#: ../src/applet.c:2639 msgid "No network connection" msgstr "Немає з'єднання з мережею" -#: ../src/applet.c:3263 +#: ../src/applet.c:3394 msgid "NetworkManager Applet" msgstr "Аплет NetworkManager" @@ -1916,8 +1950,8 @@ msgstr "Підключати _автоматично" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "Доступно всім користувачам" +msgid "A_vailable to all users" +msgstr "Доступно _всім користувачам" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -2463,11 +2497,11 @@ "треба приєднатись." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_Захист бездротової мережі:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "З'_єднання:" #: ../src/libnm-gtk/wifi.ui.h:5 diff -Nru network-manager-applet-0.9.4.1/po/ur.po network-manager-applet-0.9.6.2+git201210311320.2620/po/ur.po --- network-manager-applet-0.9.4.1/po/ur.po 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/ur.po 2012-10-31 13:20:57.000000000 +0000 @@ -833,7 +833,7 @@ msgstr "_متصل ہوں" #: ../src/applet.glade.h:13 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "ا_تصال:" #: ../src/applet.glade.h:14 @@ -939,7 +939,7 @@ msgstr "صا_رف کا نام:" #: ../src/applet.glade.h:38 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_وائیرلیس سیکورٹی:" #: ../src/connection-editor/ce-page.c:69 @@ -1664,7 +1664,7 @@ msgstr "اس اتصال کو اس مشین کے تمام صارفین کے لیے محفوظ کرنے کی تصدیق." #: ../src/connection-editor/nm-connection-editor.glade.h:1 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "دستیاب برائے تمام صارفین" #: ../src/connection-editor/nm-connection-editor.glade.h:2 diff -Nru network-manager-applet-0.9.4.1/po/vi.po network-manager-applet-0.9.6.2+git201210311320.2620/po/vi.po --- network-manager-applet-0.9.4.1/po/vi.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/vi.po 2012-10-31 13:20:57.000000000 +0000 @@ -8,10 +8,11 @@ "Project-Id-Version: NetworkManager HEAD\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-02-09 12:14+0000\n" -"PO-Revision-Date: 2012-03-04 11:48+0700\n" +"POT-Creation-Date: 2012-08-20 16:42+0000\n" +"PO-Revision-Date: 2012-08-23 13:12+0700\n" "Last-Translator: Nguyễn Thái Ngọc Duy \n" "Language-Team: Vietnamese \n" +"Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -26,75 +27,116 @@ msgid "Manage your network connections" msgstr "Quản lý kết nối mạng" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "Kết nối mạng" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "Quản lí và thay đổi thiết lập kết nối mạng" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "Tắt thông báo kết nối" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "Đặt là TRUE để tắt thông báo khi nối mạng." +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +#| msgid "" +#| "Set this to TRUE to disable notifications when connecting to a network." +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "Đặt là true để tắt thông báo khi nối mạng." -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "Tắt thông báo ngắt kết nối" -#: ../nm-applet.schemas.in.h:4 -msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "Đặt là TRUE để tắt thông báo khi ngắt mạng." +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "Đặt là true để tắt thông báo khi ngắt mạng." + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +#| msgid "Disable connected notifications" +msgid "Disable VPN notifications" +msgstr "Tắt thông báo VPN" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +#| msgid "" +#| "Set this to TRUE to disable notifications when disconnecting from a " +#| "network." +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "Đặt là true để tắt thông báo khi ngắt mạng VPN." -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" msgstr "Ngăn thông báo mạng sẵn sàng" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 +#| msgid "" +#| "Set this to TRUE to disable notifications when wireless networks are " +#| "available." msgid "" -"Set this to TRUE to disable notifications when wireless networks are " +"Set this to true to disable notifications when wireless networks are " "available." -msgstr "Đặt là TRUE để tắt thông báo khi có mạng không dây." +msgstr "Đặt là true để tắt thông báo khi có mạng không dây." -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "Temp" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "Dùng để xác định thiết lập có được chuyển sang phiên bản mới không." -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "Tắt tạo WiFi" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +#| msgid "" +#| "Set to TRUE to disable creation of adhoc networks when using the applet." msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "Đặt là TRUE để tắt tạo mạng adhock bằng applet." +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "Đặt là true để tắt tạo mạng adhock bằng applet." -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "Kết nối mạng" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +#| msgid "Choose CA Certificate" +msgid "Ignore CA certificate" +msgstr "Bỏ qua chứng nhận CA" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "Quản lí và thay đổi thiết lập kết nối mạng" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "" -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-gsm.c:444 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "Dùng được" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-gsm.c:486 ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "Bạn đã kết nối đến mạng '%s'." -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-gsm.c:490 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "Kết nối được thiết lập" @@ -102,137 +144,137 @@ msgid "You are now connected to the mobile broadband network." msgstr "Bạn đã kết nối đến mạng di động băng thông rộng." -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "Đang chuẩn bị kết nối di động băng thông rộng '%s'..." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "Đang cấu hình kết nối di động băng thông rộng '%s'..." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "Cần xác thực cho kết nối di động băng thông rộng '%s'..." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2479 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "Đang lấy địa chỉ mạng cho '%s'..." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "Kết nối di động băng thông rộng '%s' đã hoạt động" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:696 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:430 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "Di động băng thông rộng (%s)" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 #: ../src/connection-editor/page-mobile.c:379 #: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1511 +#: ../src/connection-editor/nm-connection-list.c:1510 msgid "Mobile Broadband" msgstr "Di động băng thông rộng" #. Default connection item -#: ../src/applet-device-cdma.c:412 +#: ../src/applet-device-cdma.c:409 msgid "New Mobile Broadband (CDMA) connection..." msgstr "Kết nối di động băng thông rộng (CDMA) mới..." -#: ../src/applet-device-cdma.c:446 +#: ../src/applet-device-cdma.c:443 msgid "You are now connected to the CDMA network." msgstr "Bạn đã kết nối đến mạng CDMA." -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "Kết nối di động băng thông rộng '%s' đã hoạt động: (%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "chuyển vùng" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 msgid "CDMA network." msgstr "Mạng CDMA." -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 msgid "You are now registered on the home network." msgstr "Bạn đã đăng ký mạng nhà." -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 msgid "You are now registered on a roaming network." msgstr "Bạn đã đăng ký mạng chuyển vùng." -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" #. Default connection item -#: ../src/applet-device-gsm.c:459 +#: ../src/applet-device-gsm.c:457 msgid "New Mobile Broadband (GSM) connection..." msgstr "Kết nối di động băng thông rộng (GSM) mới..." -#: ../src/applet-device-gsm.c:493 +#: ../src/applet-device-gsm.c:491 msgid "You are now connected to the GSM network." msgstr "Bạn đã kết nối đến mạng GSM." -#: ../src/applet-device-gsm.c:654 +#: ../src/applet-device-gsm.c:652 msgid "PIN code required" msgstr "Cần mã PIN" -#: ../src/applet-device-gsm.c:662 +#: ../src/applet-device-gsm.c:660 msgid "PIN code is needed for the mobile broadband device" msgstr "Cần mã PIN cho thiết bị di động băng thông rộng" -#: ../src/applet-device-gsm.c:783 +#: ../src/applet-device-gsm.c:781 #, c-format msgid "PIN code for SIM card '%s' on '%s'" msgstr "Mã PIN cho SIM card '%s' trên '%s'" -#: ../src/applet-device-gsm.c:875 +#: ../src/applet-device-gsm.c:873 msgid "Wrong PIN code; please contact your provider." msgstr "Sai mã PIN; vui lòng liên lạc nhà cung cấp." -#: ../src/applet-device-gsm.c:898 +#: ../src/applet-device-gsm.c:896 msgid "Wrong PUK code; please contact your provider." msgstr "Sai mã PUK; vui lòng liên lạc nhà cung cấp." #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 +#: ../src/applet-device-gsm.c:923 msgid "Sending unlock code..." msgstr "Đang gửi mã mở khoá..." -#: ../src/applet-device-gsm.c:988 +#: ../src/applet-device-gsm.c:986 msgid "SIM PIN unlock required" msgstr "Cần PIN mở khoá SIM" -#: ../src/applet-device-gsm.c:989 +#: ../src/applet-device-gsm.c:987 msgid "SIM PIN Unlock Required" msgstr "Cần PIN mở khoá SIM" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 +#: ../src/applet-device-gsm.c:989 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " @@ -241,25 +283,25 @@ "Thiết bị di động băng thông rộng '%s' cần mã PIN SIM trước khi có thể dùng." #. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 +#: ../src/applet-device-gsm.c:991 msgid "PIN code:" msgstr "Mã PIN:" #. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 +#: ../src/applet-device-gsm.c:995 msgid "Show PIN code" msgstr "Hiện mã PIN" -#: ../src/applet-device-gsm.c:1000 +#: ../src/applet-device-gsm.c:998 msgid "SIM PUK unlock required" msgstr "Cần PUK mở khoá SIM" -#: ../src/applet-device-gsm.c:1001 +#: ../src/applet-device-gsm.c:999 msgid "SIM PUK Unlock Required" msgstr "Cần PUK mở khoá SIM" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#: ../src/applet-device-gsm.c:1001 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " @@ -268,26 +310,26 @@ "Thiết bị di động băng thông rộng '%s' cần mã PUK SIM trước khi có thể dùng." #. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 +#: ../src/applet-device-gsm.c:1003 msgid "PUK code:" msgstr "Mã PUK:" #. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 +#: ../src/applet-device-gsm.c:1006 msgid "New PIN code:" msgstr "Mã PIN mới:" #. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 +#: ../src/applet-device-gsm.c:1008 msgid "Re-enter new PIN code:" msgstr "Nhập lại mã PIN:" #. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 +#: ../src/applet-device-gsm.c:1013 msgid "Show PIN/PUK codes" msgstr "Hiện mã PIN/PUK" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 msgid "GSM network." msgstr "Mạng GSM." @@ -314,7 +356,7 @@ msgstr "Mạng dây" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1485 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "đã ngắt kết nối" @@ -355,88 +397,110 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "_Kết nối tới mạng không dây ẩn..." -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "Tạo mạ_ng không dây mới..." -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(không)" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "Mạng không dây (%s)" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "Mạng không dây (%s)" -#: ../src/applet-device-wifi.c:807 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "Mạng không dây" -#: ../src/applet-device-wifi.c:840 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "không dây bị tắt" -#: ../src/applet-device-wifi.c:841 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "không dây bị tắt phần cứng" -#: ../src/applet-device-wifi.c:902 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "Thêm mạng" -#: ../src/applet-device-wifi.c:1081 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "Mạng không dây dùng được" -#: ../src/applet-device-wifi.c:1082 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "Dùng trình đơn mạng để kết nối mạng không dây" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:901 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "Đừng nhắc nữa" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "Bạn đã kết nối đến mạng không dây « %s »." -#: ../src/applet-device-wifi.c:1308 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "Đang chuẩn bị kết nối mạng không dây '%s'..." -#: ../src/applet-device-wifi.c:1311 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "Đang cấu hình kết nối mạng không dây '%s'..." -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "Cần xác thực cho kết nối mạng không dây '%s'..." -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "Đang lấy địa chỉ mạng không dây '%s'..." -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "Kết nối mạng không dây '%s' đã hoạt động: %s (%d%%)" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "Kết nối mạng không dây '%s' đã hoạt động" +#: ../src/applet-device-wifi.c:1377 +#| msgid "Failed to create PAN connection: %s" +msgid "Failed to activate connection" +msgstr "Lỗi kích hoạt kết nối" + +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 +#| msgid "Unknown" +msgid "Unknown error" +msgstr "Lỗi lạ" + +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 +#| msgid "Connection add failed" +msgid "Connection failure" +msgstr "Lỗi kết nối" + +#: ../src/applet-device-wifi.c:1396 +#| msgid "Could not edit new connection" +msgid "Failed to add new connection" +msgstr "Lỗi thêm kết nối mới" + #: ../src/applet-device-wimax.c:231 #, c-format msgid "WiMAX Mobile Broadband (%s)" @@ -463,9 +527,9 @@ msgstr "Gặp lỗi khi hiển thị thông tin kết nối:" #: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 +#: ../src/connection-editor/page-wireless-security.c:313 +#: ../src/libnm-gtk/nm-wireless-dialog.c:948 +#: ../src/wireless-security/wireless-security.c:406 msgid "LEAP" msgstr "LEAP" @@ -473,190 +537,196 @@ msgid "Dynamic WEP" msgstr "WEP động" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 msgid "WPA/WPA2" msgstr "WPA/WPA2" -#: ../src/applet-dialogs.c:244 +#: ../src/applet-dialogs.c:243 msgid "WEP" msgstr "WEP" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/connection-editor/page-wireless-security.c:265 +#: ../src/libnm-gtk/nm-wireless-dialog.c:905 msgctxt "Wifi/wired security" msgid "None" msgstr "Không" -#: ../src/applet-dialogs.c:352 ../src/applet-dialogs.c:490 +#: ../src/applet-dialogs.c:277 +#, c-format +#| msgid "1 (Default)" +msgid "%s (default)" +msgstr "%s (mặc định)" + +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 #, c-format msgid "%u Mb/s" msgstr "%u Mb/giây" -#: ../src/applet-dialogs.c:354 ../src/applet-dialogs.c:492 +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 msgctxt "Speed" msgid "Unknown" msgstr "Không rõ" -#: ../src/applet-dialogs.c:367 +#: ../src/applet-dialogs.c:361 #, c-format msgid "%d dB" msgstr "%d dB" -#: ../src/applet-dialogs.c:369 +#: ../src/applet-dialogs.c:363 msgctxt "WiMAX CINR" msgid "unknown" msgstr "không rõ" -#: ../src/applet-dialogs.c:381 +#: ../src/applet-dialogs.c:375 msgctxt "WiMAX Base Station ID" msgid "unknown" msgstr "không rõ" -#: ../src/applet-dialogs.c:416 +#: ../src/applet-dialogs.c:410 #, c-format msgid "Ethernet (%s)" msgstr "Ethernet (%s)" -#: ../src/applet-dialogs.c:419 +#: ../src/applet-dialogs.c:413 #, c-format msgid "802.11 WiFi (%s)" msgstr "802.11 WiFi (%s)" -#: ../src/applet-dialogs.c:426 +#: ../src/applet-dialogs.c:420 #, c-format msgid "GSM (%s)" msgstr "GSM (%s)" -#: ../src/applet-dialogs.c:428 +#: ../src/applet-dialogs.c:422 #, c-format msgid "CDMA (%s)" msgstr "CDMA (%s)" -#: ../src/applet-dialogs.c:432 +#: ../src/applet-dialogs.c:426 #, c-format msgid "WiMAX (%s)" msgstr "WiMAX (%s)" #. --- General --- -#: ../src/applet-dialogs.c:438 ../src/applet-dialogs.c:797 +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 msgid "General" msgstr "Chung" -#: ../src/applet-dialogs.c:442 +#: ../src/applet-dialogs.c:436 msgid "Interface:" msgstr "Giao diện:" -#: ../src/applet-dialogs.c:458 +#: ../src/applet-dialogs.c:452 msgid "Hardware Address:" msgstr "Địa chỉ phần cứng:" #. Driver -#: ../src/applet-dialogs.c:466 +#: ../src/applet-dialogs.c:460 msgid "Driver:" msgstr "Trình điều khiển:" -#: ../src/applet-dialogs.c:495 +#: ../src/applet-dialogs.c:489 msgid "Speed:" msgstr "Tốc độ:" -#: ../src/applet-dialogs.c:505 +#: ../src/applet-dialogs.c:499 msgid "Security:" msgstr "An ninh:" -#: ../src/applet-dialogs.c:518 +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:531 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:548 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:559 ../src/applet-dialogs.c:666 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "Địa chỉ IP:" -#: ../src/applet-dialogs.c:561 ../src/applet-dialogs.c:577 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "Không rõ" -#: ../src/applet-dialogs.c:575 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "Địa chỉ quảng bá:" #. Prefix -#: ../src/applet-dialogs.c:584 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "Mặt nạ mạng:" -#: ../src/applet-dialogs.c:586 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "Không rõ" -#: ../src/applet-dialogs.c:594 ../src/applet-dialogs.c:681 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "Tuyến mặc định:" -#: ../src/applet-dialogs.c:606 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "DNS chính:" -#: ../src/applet-dialogs.c:615 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "DNS phụ:" -#: ../src/applet-dialogs.c:625 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "DNS thứ ba:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:640 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:649 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "Bỏ qua" -#: ../src/applet-dialogs.c:802 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "Kiểu VPN:" -#: ../src/applet-dialogs.c:809 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "Cổng VPN:" -#: ../src/applet-dialogs.c:815 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "Tên người dùng VPN:" -#: ../src/applet-dialogs.c:821 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "Khẩu hiện VPN:" -#: ../src/applet-dialogs.c:827 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "Kết nối cơ sở:" -#: ../src/applet-dialogs.c:829 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "Không rõ" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:892 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "Không có kết nối hoạt động!" -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -666,33 +736,53 @@ "Copyright © 2005-2008 Novell, Inc.\n" "và nhiều dịch giả, công tác viên khác" -#: ../src/applet-dialogs.c:948 +#: ../src/applet-dialogs.c:942 msgid "" "Notification area applet for managing your network devices and connections." msgstr "Chương trình quản lí các thiết bị và kết nối mạng của bạn." -#: ../src/applet-dialogs.c:950 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "Trang web NetworkManager" -#: ../src/applet-dialogs.c:965 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "Thiếu tài nguyên" -#: ../src/applet-dialogs.c:990 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "Mật khẩu mạng di động băng thông rộng" -#: ../src/applet-dialogs.c:999 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "Cần mật khẩu để kết nối '%s'." -#: ../src/applet-dialogs.c:1018 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "Mật khẩu:" -#: ../src/applet.c:990 +#: ../src/applet.c:488 +#| msgid "Failed to create PAN connection: %s" +msgid "Failed to add/activate connection" +msgstr "Lỗi thêm/kích hoạt kết nối" + +#: ../src/applet.c:532 +#| msgid "disconnected" +msgid "Device disconnect failed" +msgstr "Lỗi ngắt kết nối thiết bị" + +#: ../src/applet.c:537 +#| msgid "Disconnected" +msgid "Disconnect failure" +msgstr "Lỗi ngắt kết nối" + +#: ../src/applet.c:558 +#| msgid "Connection add failed" +msgid "Connection activation failed" +msgstr "Lỗi kích hoạt kết nối" + +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -702,7 +792,7 @@ "\n" "Kết nối VPN '%s' lỗi vì kết nối mạng bị ngắt." -#: ../src/applet.c:993 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" @@ -711,7 +801,7 @@ "\n" "Kết nối VPN '%s' lỗi vì dịch vụ VPN dừng đột ngột." -#: ../src/applet.c:996 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -721,7 +811,7 @@ "\n" "Kết nối VPN '%s' lỗi vì dịch vụ VPN trả về cấu hình không hợp lệ." -#: ../src/applet.c:999 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -730,7 +820,7 @@ "\n" "Kết nối VPN '%s' lỗi vì hết hạn kết nối." -#: ../src/applet.c:1002 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -739,7 +829,7 @@ "\n" "Kết nối VPN '%s' lỗi vì dịch vụ VPN không khởi động kịp." -#: ../src/applet.c:1005 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -748,7 +838,7 @@ "\n" "Kết nối VPN '%s' lỗi vì dịch vụ VPN không khởi động được." -#: ../src/applet.c:1008 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -757,7 +847,7 @@ "\n" "Kết nối VPN '%s' lỗi vì không có bí mật VPN hợp lệ." -#: ../src/applet.c:1011 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -766,7 +856,7 @@ "\n" "Kết nối VPN '%s' lỗi vì bí mật VPN không hợp lệ." -#: ../src/applet.c:1018 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -775,7 +865,7 @@ "\n" "Kết nối VPN '%s' lỗi." -#: ../src/applet.c:1036 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -785,7 +875,7 @@ "\n" "Kết nối VPN '%s' bị ngắt vì kết nối mạng bị ngắt." -#: ../src/applet.c:1039 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -794,7 +884,7 @@ "\n" "Kết nối VPN '%s' bị ngắt vì dịch vụ VPN dừng đột ngột." -#: ../src/applet.c:1045 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -803,15 +893,30 @@ "\n" "Kết nối VPN '%s' bị ngắt." -#: ../src/applet.c:1079 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"Đã thiết lập thành công kết nối VPN.\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "Đã thiết lập thành công kết nối VPN.\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "Thông điệp đăng nhập VPN" -#: ../src/applet.c:1085 ../src/applet.c:1093 ../src/applet.c:1143 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "Lỗi kết nối VPN" -#: ../src/applet.c:1150 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -824,7 +929,7 @@ "\n" "%s" -#: ../src/applet.c:1153 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -837,139 +942,139 @@ "\n" "%s" -#: ../src/applet.c:1473 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "thiết bị chưa sẵn sàng (thiếu firmware)" -#: ../src/applet.c:1475 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "thiết bị chưa sẵn sàng" -#: ../src/applet.c:1501 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "Ngắt kết nối" -#: ../src/applet.c:1515 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "thiết bị không được quản lý" -#: ../src/applet.c:1559 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "Không tìm thấy thiết bị mạng dùng được" -#: ../src/applet.c:1647 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "Kết nối _VPN" -#: ../src/applet.c:1704 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "_Cấu hình VPN..." -#: ../src/applet.c:1708 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "N_gắt kết nối VPN" -#: ../src/applet.c:1806 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "Trình Quản lí Mạng đang không chạy..." -#: ../src/applet.c:1811 ../src/applet.c:2604 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "Kết nối mạng tắt" #. 'Enable Networking' item -#: ../src/applet.c:2032 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "Bật _mạng" #. 'Enable Wireless' item -#: ../src/applet.c:2041 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "Bật mạng _không dây" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2050 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "Bật _di động băng thông rộng" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2059 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "Bật di động băng thông rộng WiMA_X" #. Toggle notifications item -#: ../src/applet.c:2070 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "Bật _thông báo" #. 'Connection Information' item -#: ../src/applet.c:2081 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "Thông t_in kết nối" #. 'Edit Connections...' item -#: ../src/applet.c:2091 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "Sửa kết nối..." #. Help item -#: ../src/applet.c:2105 +#: ../src/applet.c:2124 msgid "_Help" msgstr "Trợ _giúp" #. About item -#: ../src/applet.c:2114 +#: ../src/applet.c:2133 msgid "_About" msgstr "_Giới thiệu" -#: ../src/applet.c:2291 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "Ngắt kết nối" -#: ../src/applet.c:2292 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "Kết nối mạng đã bị ngắt." -#: ../src/applet.c:2473 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "Đang chuẩn bị kết nối '%s'..." -#: ../src/applet.c:2476 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "Cần xác thực cho kết nối '%s'..." -#: ../src/applet.c:2482 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "Kết nối '%s' đã hoạt động" -#: ../src/applet.c:2560 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "Đang bắt đầu kết nối VPN '%s'..." -#: ../src/applet.c:2563 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "Cần xác thực cho kết nối VPN '%s'..." -#: ../src/applet.c:2566 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "Đang lấy địa chỉ VPN cho '%s'..." -#: ../src/applet.c:2569 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "Kết nối VPN '%s' đã hoạt động" -#: ../src/applet.c:2608 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "Không có kết nối mạng" -#: ../src/applet.c:3258 +#: ../src/applet.c:3336 msgid "NetworkManager Applet" msgstr "Trình Quản lí Mạng" @@ -1001,7 +1106,7 @@ msgid "automatic" msgstr "tự động" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:318 msgid "Failed to update connection secrets due to an unknown error." msgstr "Không thể cập nhật bí mật kết nối vì lỗi không rõ." @@ -1023,7 +1128,6 @@ #: ../src/connection-editor/ce-ip4-routes.ui.h:3 #: ../src/connection-editor/ce-ip6-routes.ui.h:3 -#| msgid "Use this c_onnection only for resources on its network" msgid "_Use this connection only for resources on its network" msgstr "Chỉ _dùng kết nối này cho tài nguyên trên mạng đó" @@ -1129,12 +1233,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 -#| msgid "_Search domains:" +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "Miền _tìm kiếm:" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "Máy chủ _DNS:" @@ -1148,7 +1255,6 @@ "phân cách địa chỉ nhiều máy chủ tên miền." #: ../src/connection-editor/ce-page-ip4.ui.h:15 -#| msgid "Require IPv4 addressing for this connection to complete" msgid "Require IPv_4 addressing for this connection to complete" msgstr "Cần gán địa chỉ IPv_4 để hoàn tất kết nối" @@ -1166,7 +1272,6 @@ msgstr "Đị_nh tuyến…" #: ../src/connection-editor/ce-page-ip6.ui.h:13 -#| msgid "Require IPv6 addressing for this connection to complete" msgid "Require IPv_6 addressing for this connection to complete" msgstr "Cần gán địa chỉ IPv_6 để hoàn tất kết nối" @@ -1228,12 +1333,10 @@ msgstr "Thay đổi..." #: ../src/connection-editor/ce-page-mobile.ui.h:15 -#| msgid "PI_N:" msgid "P_IN:" msgstr "P_IN:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#| msgid "Allow roaming if home network is not available" msgid "Allow _roaming if home network is not available" msgstr "Cho phép _chuyển vùng nếu mạng nhà không dùng được" @@ -1344,7 +1447,6 @@ #: ../src/connection-editor/ce-page-wired.ui.h:15 #: ../src/connection-editor/ce-page-wireless.ui.h:10 -#| msgid "_Cloned MAC address:" msgid "C_loned MAC address:" msgstr "Địa chỉ MAC _sao:" @@ -1361,7 +1463,6 @@ #: ../src/connection-editor/ce-page-wired.ui.h:17 #: ../src/connection-editor/ce-page-wireless.ui.h:7 -#| msgid "MT_U:" msgid "_MTU:" msgstr "_MTU:" @@ -1427,12 +1528,10 @@ msgstr "_Chế độ:" #: ../src/connection-editor/ce-page-wireless.ui.h:20 -#| msgid "_SSID:" msgid "SS_ID:" msgstr "SS_ID:" #: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -#| msgid "Security:" msgid "S_ecurity:" msgstr "_An ninh:" @@ -1516,20 +1615,20 @@ #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:901 -#: ../src/connection-editor/page-ip6.c:867 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "Địa chỉ" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:918 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "Mặt nạ mạng" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:935 -#: ../src/connection-editor/page-ip6.c:901 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "Cổng" @@ -1539,13 +1638,13 @@ msgstr "Thước đo" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:884 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "Tiền tố" #: ../src/connection-editor/page-dsl.c:139 #: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1519 +#: ../src/connection-editor/nm-connection-list.c:1518 msgid "DSL" msgstr "DSL" @@ -1553,7 +1652,7 @@ msgid "Could not load DSL user interface." msgstr "Không thể nạp giao diện DSL." -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "Kết nối DSL %d" @@ -1605,16 +1704,28 @@ msgid "Disabled" msgstr "Tắt" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +#| msgid "_DNS servers:" +msgid "Additional _DNS servers:" +msgstr "Máy chủ _DNS bổ sung:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +#| msgid "S_earch domains:" +msgid "Additional s_earch domains:" +msgstr "Miền _tìm kiếm bổ sung:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "Sửa định tuyến IPv4 cho %s" -#: ../src/connection-editor/page-ip4.c:982 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "Thiết lập IPv4" -#: ../src/connection-editor/page-ip4.c:984 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "Không thể nạp giao diện người dùng IPv4." @@ -1623,7 +1734,7 @@ msgstr "Tự động, chỉ địa chỉ" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "Bỏ qua" @@ -1631,16 +1742,16 @@ msgid "Automatic, DHCP only" msgstr "Tự động, chỉ DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "Sửa định tuyến IPv6 cho %s" -#: ../src/connection-editor/page-ip6.c:946 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "Thiết lập IPv6" -#: ../src/connection-editor/page-ip6.c:948 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "Không thể nạp giao diện người dùng IPv6." @@ -1709,17 +1820,17 @@ msgid "Editing PPP authentication methods for %s" msgstr "Sửa cách xác thực PPP cho %s" -#: ../src/connection-editor/page-ppp.c:283 +#: ../src/connection-editor/page-ppp.c:282 msgid "PPP Settings" msgstr "Thiết lập PPP" -#: ../src/connection-editor/page-ppp.c:285 +#: ../src/connection-editor/page-ppp.c:284 msgid "Could not load PPP user interface." msgstr "Không thể nạp giao diện PPP." #: ../src/connection-editor/page-vpn.c:109 #: ../src/connection-editor/nm-connection-editor.ui.h:7 -#: ../src/connection-editor/nm-connection-list.c:1515 +#: ../src/connection-editor/nm-connection-list.c:1514 msgid "VPN" msgstr "VPN" @@ -1733,7 +1844,7 @@ msgstr "Không thể tìm dịch vụ phần mở rộng VPN cho '%s'." #: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 +#: ../src/connection-editor/nm-connection-list.c:899 #, c-format msgid "VPN connection %d" msgstr "Kết nối VPN %d" @@ -1749,7 +1860,7 @@ #: ../src/connection-editor/page-wired.c:272 #: ../src/connection-editor/nm-connection-editor.ui.h:2 -#: ../src/connection-editor/nm-connection-list.c:1503 +#: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "Dây" @@ -1762,16 +1873,15 @@ msgid "Wired connection %d" msgstr "Kết nối mạng dây %d" -#: ../src/connection-editor/page-wired-security.c:116 +#: ../src/connection-editor/page-wired-security.c:119 msgid "802.1x Security" msgstr "An ninh 802.1x" -#: ../src/connection-editor/page-wired-security.c:118 +#: ../src/connection-editor/page-wired-security.c:121 msgid "Could not load Wired Security security user interface." msgstr "Không thể nạp giao diện an ninh mạng dây." -#: ../src/connection-editor/page-wired-security.c:136 -#| msgid "Use 802.1X security for this connection" +#: ../src/connection-editor/page-wired-security.c:139 msgid "Use 802.1_X security for this connection" msgstr "Dùng an ninh 802.1_X cho kết nối này" @@ -1789,7 +1899,7 @@ #: ../src/connection-editor/page-wireless.c:457 #: ../src/connection-editor/nm-connection-editor.ui.h:3 -#: ../src/connection-editor/nm-connection-list.c:1507 +#: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "Không dây" @@ -1803,76 +1913,76 @@ msgstr "Kết nối không dây %d" # Name: don't translate / Tên: đừng dịch -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 +#: ../src/connection-editor/page-wireless-security.c:290 +#: ../src/libnm-gtk/nm-wireless-dialog.c:922 msgid "WEP 40/128-bit Key (Hex or ASCII)" msgstr "Khoá WEP 40/128-bit (Thập lục phân hoặc ASCII)" -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 +#: ../src/connection-editor/page-wireless-security.c:300 +#: ../src/libnm-gtk/nm-wireless-dialog.c:931 msgid "WEP 128-bit Passphrase" msgstr "WEP 128-bit Passphrase" -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 +#: ../src/connection-editor/page-wireless-security.c:326 +#: ../src/libnm-gtk/nm-wireless-dialog.c:961 msgid "Dynamic WEP (802.1x)" msgstr "WEP động (802.1x)" -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 +#: ../src/connection-editor/page-wireless-security.c:340 +#: ../src/libnm-gtk/nm-wireless-dialog.c:975 msgid "WPA & WPA2 Personal" msgstr "WPA & WPA2 Cá nhân" # Name: don't translate / Tên: đừng dịch -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 +#: ../src/connection-editor/page-wireless-security.c:354 +#: ../src/libnm-gtk/nm-wireless-dialog.c:989 msgid "WPA & WPA2 Enterprise" msgstr "WPA & WPA2 Kinh doanh" -#: ../src/connection-editor/page-wireless-security.c:360 +#: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." msgstr "Không thể nạp giao diện an ninh WiFi; bỏ qua thiết lập WiFi." -#: ../src/connection-editor/page-wireless-security.c:370 +#: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" msgstr "An ninh không dây" -#: ../src/connection-editor/page-wireless-security.c:372 +#: ../src/connection-editor/page-wireless-security.c:407 msgid "Could not load WiFi security user interface." msgstr "Không thể nạp giao diện an ninh WiFi." -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "Sửa %s" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "Sửa kết nối không tên" -#: ../src/connection-editor/nm-connection-editor.c:288 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." msgstr "" -#: ../src/connection-editor/nm-connection-editor.c:391 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "" -#: ../src/connection-editor/nm-connection-editor.c:403 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "_Lưu" -#: ../src/connection-editor/nm-connection-editor.c:404 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "Lưu những thay đổi của kết nối này." -#: ../src/connection-editor/nm-connection-editor.c:405 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "_Lưu..." -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." msgstr "Xác thực để lưu kết nối cho mọi người dùng trên máy này." @@ -1893,7 +2003,7 @@ msgstr "Kết nối _tự động" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" +msgid "A_vailable to all users" msgstr "Mọi người đều dùng được" #: ../src/connection-editor/nm-connection-list.c:216 @@ -1961,7 +2071,7 @@ #: ../src/connection-editor/nm-connection-list.c:546 #: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 +#: ../src/connection-editor/nm-connection-list.c:885 msgid "" "The connection editor dialog could not be initialized due to an unknown " "error." @@ -1988,92 +2098,92 @@ msgid "Are you sure you wish to delete the connection %s?" msgstr "Bạn có chắc muốn xoá kết nối %s không?" -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 +#: ../src/connection-editor/nm-connection-list.c:929 +#: ../src/connection-editor/vpn-helpers.c:228 msgid "Cannot import VPN connection" msgstr "Không thể nhập kết nối VPN" -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/nm-connection-list.c:931 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" "Error: no VPN service type." msgstr "" -#: ../src/connection-editor/nm-connection-list.c:945 +#: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" msgstr "Không thể sửa kết nối nhập" -#: ../src/connection-editor/nm-connection-list.c:1126 +#: ../src/connection-editor/nm-connection-list.c:1125 msgid "Name" msgstr "Tên" -#: ../src/connection-editor/nm-connection-list.c:1138 +#: ../src/connection-editor/nm-connection-list.c:1137 msgid "Last Used" msgstr "Dùng lần cuối" -#: ../src/connection-editor/nm-connection-list.c:1264 +#: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." msgstr "" "Không có phần bổ sung VPN dùng được. Vui lòng cài đặt hoặc bật nút này." -#: ../src/connection-editor/nm-connection-list.c:1275 +#: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" msgstr "_Sửa" -#: ../src/connection-editor/nm-connection-list.c:1276 +#: ../src/connection-editor/nm-connection-list.c:1275 msgid "Edit the selected connection" msgstr "Sửa kết nối đã chọn" -#: ../src/connection-editor/nm-connection-list.c:1277 +#: ../src/connection-editor/nm-connection-list.c:1276 msgid "_Edit..." msgstr "_Sửa..." -#: ../src/connection-editor/nm-connection-list.c:1278 +#: ../src/connection-editor/nm-connection-list.c:1277 msgid "Authenticate to edit the selected connection" msgstr "Xác thực để sửa kết nối đã chọn" -#: ../src/connection-editor/nm-connection-list.c:1293 +#: ../src/connection-editor/nm-connection-list.c:1292 msgid "_Delete" msgstr "_Xoá" -#: ../src/connection-editor/nm-connection-list.c:1294 +#: ../src/connection-editor/nm-connection-list.c:1293 msgid "Delete the selected connection" msgstr "Xoá kết nối đã chọn" -#: ../src/connection-editor/nm-connection-list.c:1295 +#: ../src/connection-editor/nm-connection-list.c:1294 msgid "_Delete..." msgstr "_Xoá..." -#: ../src/connection-editor/nm-connection-list.c:1296 +#: ../src/connection-editor/nm-connection-list.c:1295 msgid "Authenticate to delete the selected connection" msgstr "Xác thực để xóa kết nối VPN đã chọn" -#: ../src/connection-editor/nm-connection-list.c:1575 +#: ../src/connection-editor/nm-connection-list.c:1574 msgid "Error creating connection" msgstr "Gặp lỗi tạo kết nối" -#: ../src/connection-editor/nm-connection-list.c:1576 +#: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" msgstr "Không biết cách tạo kết nối '%s'" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 +#: ../src/connection-editor/nm-connection-list.c:1630 +#: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" msgstr "Lỗi sửa kết nối" -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" msgstr "Không biết cách sửa kết nối '%s'" -#: ../src/connection-editor/nm-connection-list.c:1644 +#: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" msgstr "Không tìm thấy kết nối với UUID '%s'" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:230 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2082,29 +2192,29 @@ "Error: %s." msgstr "" -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:263 msgid "Select file to import" msgstr "Chọn tập tin cần nhập" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:314 #, c-format msgid "A file named \"%s\" already exists." msgstr "Tập tin \"%s\" đã có." -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:316 msgid "_Replace" msgstr "_Thay thế" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "Bạn có muốn thay %s với kết nối VPN bạn đang lưu không?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" msgstr "Không thể xuất kết nối VPN" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:356 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2115,114 +2225,111 @@ "\n" "Lỗi: %s." -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." msgstr "Xuất kết nối VPN..." -#: ../src/gnome-bluetooth/bt-widget.c:220 +#: ../src/gnome-bluetooth/bt-widget.c:321 #, c-format -msgid "Failed to create PAN connection: %s" -msgstr "Lỗi tạo kết nối PAN: %s" - -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "Điện thoại bạn đã có thể dùng!" +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "" -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "Mạng %s" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "" + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "Dùng điện thoại di động làm thiết bị mạng (PAN/NAP)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "Truy cập Internet thông qua điện thoại di động (DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "Lỗi: %s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "Lỗi tạo kết nối DUN: %s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "Điện thoại bạn đã có thể dùng!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "Loại điện thoại lạ (không phải GSM cũng như CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "" + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "lỗi kết nối đến điện thoại." -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "kết nối bị ngắt bất ngờ từ điện thoại." -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "quá hạn dò tìm chi tiết điện thoại." -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "Đang tìm cấu hình điện thoại..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "không thể tìm thiết bị Bluetooth." - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." msgstr "" -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "" - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "" +msgid "Failed to create PAN connection: %s" +msgstr "Lỗi tạo kết nối PAN: %s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "" - -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "Dùng điện thoại di động làm thiết bị mạng (PAN/NAP)" - -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "Truy cập Internet thông qua điện thoại di động (DUN)" +msgid "%s Network" +msgstr "Mạng %s" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "Kết nối di động băng thông rộng của bạn được cấu hình như sau:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:212 msgid "Your Device:" msgstr "Thiết bị của bạn:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:223 msgid "Your Provider:" msgstr "Nhà cung cấp của bạn:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:234 msgid "Your Plan:" msgstr "Gói cước của bạn:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:259 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2231,23 +2338,23 @@ "Preferences menu." msgstr "" -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:271 msgid "Confirm Mobile Broadband Settings" msgstr "Xác nhận thiết lập di động băng thông rộng" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:332 msgid "Unlisted" msgstr "Không liệt kê" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:487 msgid "_Select your plan:" msgstr "_Chọn gói cước" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:511 msgid "Selected plan _APN (Access Point Name):" msgstr "_APN (Access Point Name - Tên điểm truy cập) của _gói cước được chọn" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2255,101 +2362,101 @@ "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:542 msgid "Choose your Billing Plan" msgstr "Chọn gói cước của bạn" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:590 msgid "My plan is not listed..." msgstr "Không thấy gói cước của tôi..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:747 msgid "Select your provider from a _list:" msgstr "Chọn nhà cung cấp từ _danh sách:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:760 msgid "Provider" msgstr "Nhà cung cấp" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:785 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "Không tìm thấy nhà cung cấp, để tôi nhập _tay:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:796 msgid "Provider:" msgstr "Nhà cung cấp:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:820 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "Nhà cung cấp của tôi dùng công nghệ GSM (GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "Nhà cung cấp của tôi dùng công nghệ CDMA (1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:837 msgid "Choose your Provider" msgstr "Chọn nhà cung cấp của bạn" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1080 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1088 msgid "Country or Region List:" msgstr "Danh sách quốc gia hoặc lãnh thổ:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1092 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "Country or region" msgstr "Quốc gia hoặc lãnh thổ:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1099 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1107 msgid "My country is not listed" msgstr "Không thấy có quốc gia của tôi" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1145 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1153 msgid "Choose your Provider's Country or Region" msgstr "Chọn quốc gia hoặc lãnh thổ của nhà cung cấp" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1199 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1207 msgid "Installed GSM device" msgstr "Thiết bị GSM đã cài đặt" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1202 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1210 msgid "Installed CDMA device" msgstr "Thiết bị CDMA đã cài đặt" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1374 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1382 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." msgstr "" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1379 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1387 msgid "You will need the following information:" msgstr "Bạn sẽ cần những thông tin sau:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1394 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1402 msgid "Your broadband provider's name" msgstr "Tên nhà cung cấp" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1400 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband billing plan name" msgstr "Tên gói cước" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1406 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(trong vài trường hợp) APN (Access Point Name) của gói cước" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1433 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1441 msgid "Create a connection for _this mobile broadband device:" msgstr "Tạo kết nối đến thiết bị di động băng thông rộng _này:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1448 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1456 msgid "Any device" msgstr "Bất kỳ thiết bị nào" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1461 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1469 msgid "Set up a Mobile Broadband Connection" msgstr "Thiết lập kết nối băng thông rộng di động" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1625 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1633 msgid "New Mobile Broadband Connection" msgstr "Kết nối băng thông rộng di động mới" @@ -2357,57 +2464,57 @@ msgid "New..." msgstr "Mới..." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1076 msgid "C_reate" msgstr "_Tạo" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "" "Passwords or encryption keys are required to access the wireless network " "'%s'." msgstr "Cần mật khẩu hoặc khoá mã hoá để truy cập mạng không dây '%s'." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1162 msgid "Wireless Network Authentication Required" msgstr "Cần xác thực mạng không dây" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1164 msgid "Authentication required by wireless network" msgstr "Cần xác thực mạng không dây" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1169 msgid "Create New Wireless Network" msgstr "Tạo mạng không dây mới" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1171 msgid "New wireless network" msgstr "Tạo mạng không dây" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." msgstr "Nhập tên mạng không dây bạn muốn tạo." -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" msgstr "Kết nối đến mạng không dây ẩn" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1176 msgid "Hidden wireless network" msgstr "Ẩn mạng không dây" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." msgstr "Nnhập tên và chi tiết an ninh của mạng không dây ẩn bạn muốn kết nối." #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" +msgid "Wireless _security:" msgstr "_An ninh không dây:" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" +msgid "C_onnection:" msgstr "_Kết nối:" #: ../src/libnm-gtk/wifi.ui.h:5 @@ -2516,42 +2623,47 @@ msgid "Default" msgstr "Mặc định" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +#| msgid "Base Connection:" +msgid "%s connection" +msgstr "Kết nối %s" + #: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 msgid "" "The NetworkManager Applet could not find some required resources (the .ui " "file was not found)." msgstr "" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "Chưa chọn chứng nhận CA" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " "Certificate Authority certificate?" msgstr "" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "Chọn chứng nhận CA" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "Khoá riêng DER, PEM, hoặc PKCS#12 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "Chứng nhậng DER hoặc PEM (*.der, *.pem, *.crt, *.cer)" #: ../src/wireless-security/eap-method-fast.ui.h:2 -#| msgid "Anony_mous identity:" msgid "Anonymous" msgstr "Vô danh" #: ../src/wireless-security/eap-method-fast.ui.h:3 -#| msgid "Authentication" msgid "Authenticated" msgstr "Xác thực" @@ -2572,7 +2684,6 @@ #: ../src/wireless-security/eap-method-fast.ui.h:7 #: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 -#| msgid "I_nner authentication:" msgid "_Inner authentication:" msgstr "Xác thực _trong:" @@ -2598,7 +2709,7 @@ msgstr "Mọi tập tin" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2623,7 +2734,6 @@ msgstr "_Chứng nhận CA:" #: ../src/wireless-security/eap-method-peap.ui.h:8 -#| msgid "_PEAP version:" msgid "PEAP _version:" msgstr "Phiên bản _PEAP:" @@ -2680,26 +2790,25 @@ msgid "Yes" msgstr "Có" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "FAST" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "EAP Bảo vệ (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 #: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 -#| msgid "_Authentication:" msgid "Au_thentication:" msgstr "_Xác thực:" @@ -2739,6 +2848,9 @@ msgid "WEP inde_x:" msgstr "_Chỉ mục WEP:" +#~ msgid "could not find the Bluetooth device." +#~ msgstr "không thể tìm thiết bị Bluetooth." + #~ msgid "Click on this icon to connect to a wireless network" #~ msgstr "Nhấn biểu tượng để kết nối mạng không dây" diff -Nru network-manager-applet-0.9.4.1/po/zh_CN.po network-manager-applet-0.9.6.2+git201210311320.2620/po/zh_CN.po --- network-manager-applet-0.9.4.1/po/zh_CN.po 2012-03-23 20:29:08.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/zh_CN.po 2012-10-31 13:20:57.000000000 +0000 @@ -6,26 +6,27 @@ # Funda Wang , 2004. # Wei Mingzhi , 2009, 2010. # Leah Liu , 2010. -# Yinghua Wang , 2010 +# Wylmer Wang , 2010-2012. # Aron Xu , 2010. # Lele Long , 2011. # Edison Zhao , 2011. # EL8LatSPQ , 2012. # YunQiang Su , 2012. +# tuhaihe , 2012. # msgid "" msgstr "" "Project-Id-Version: network-manager-applet master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=nm-applet\n" -"POT-Creation-Date: 2012-03-23 08:52+0000\n" -"PO-Revision-Date: 2012-03-23 16:55+0800\n" -"Last-Translator: tuhaihe \n" +"POT-Creation-Date: 2012-09-05 13:35+0000\n" +"PO-Revision-Date: 2012-08-26 10:32+0800\n" +"Last-Translator: tuhaihe <1132321739qq@gmail.com>\n" "Language-Team: Chinese (simplified) \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: \n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../nm-applet.desktop.in.h:1 @@ -36,75 +37,101 @@ msgid "Manage your network connections" msgstr "管理网络连接" -#: ../nm-applet.schemas.in.h:1 +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "网络连接" + +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "管理或更改您的网络连接设置" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" -msgstr "禁用连接通告" +msgstr "禁用连接通知" -#: ../nm-applet.schemas.in.h:2 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "将此项设为 TRUE 以禁用连接到一个网络时显示的通告。" +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "将此项设为 true 以禁用连接到一个网络时显示的通知。" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" -msgstr "禁用断开通告" +msgstr "禁用断开通知" -#: ../nm-applet.schemas.in.h:4 +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." -msgstr "将此项设为 TRUE 以禁用从一个网络断开时显示的通告。" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "将此项设为 true 以禁用从一个网络断开时显示的通知。" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "禁用 VPN 通知" -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 +msgid "" +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." +msgstr "将此项设为 true 以禁用连接或断开 VPN 时的通知。" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 msgid "Suppress networks available notifications" -msgstr "禁用网络可用通告" +msgstr "禁用网络可用通知" -#: ../nm-applet.schemas.in.h:6 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set this to TRUE to disable notifications when wireless networks are " +"Set this to true to disable notifications when wireless networks are " "available." -msgstr "将此项设备 TRUE 以禁用无线网络可用时显示的通告。" +msgstr "将此项设为 true 以禁用无线网络可用时显示的通知。" -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "时间戳" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "用于决定设置是否应被迁移至一个新版本。" -#: ../nm-applet.schemas.in.h:9 +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 msgid "Disable WiFi Create" msgstr "禁用 WiFi 建立" -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "将此项设为 TRUE 以禁止使用小应用程序时建立 adhoc 网络。" +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "设为 true 以禁止使用小程序时创建 adhoc 网络。" -#: ../nm-connection-editor.desktop.in.h:1 -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Network Connections" -msgstr "网络连接" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "忽略 CA 证书" -#: ../nm-connection-editor.desktop.in.h:2 -msgid "Manage and change your network connection settings" -msgstr "管理或更改您的网络连接设置" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "将此项设为 true 以禁用在 EAP 认证中关于 CA 证书的警告。" -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:864 ../src/applet-device-wimax.c:279 +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "将此项设为 true 以禁用在 EAP 认证第 2 阶段中关于 CA 证书的警告。" + +#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-gsm.c:444 ../src/applet-device-wired.c:240 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 msgid "Available" msgstr "可用的" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 +#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-gsm.c:486 ../src/applet-device-wired.c:269 #: ../src/applet-device-wimax.c:423 #, c-format msgid "You are now connected to '%s'." msgstr "您现在已连接到“%s”。" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1268 ../src/applet-device-wimax.c:427 +#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-gsm.c:490 ../src/applet-device-wired.c:273 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 msgid "Connection Established" msgstr "连接已建立" @@ -112,49 +139,49 @@ msgid "You are now connected to the mobile broadband network." msgstr "您现在已连接到移动宽带网络。" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format msgid "Preparing mobile broadband connection '%s'..." msgstr "正在准备移动宽带连接“%s”..." -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format msgid "Configuring mobile broadband connection '%s'..." msgstr "正在配置移动宽带连接“%s”..." -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format msgid "User authentication required for mobile broadband connection '%s'..." msgstr "移动宽带连接“%s”需要用户认证..." -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2503 +#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:487 +#: ../src/applet-device-gsm.c:535 ../src/applet-device-wimax.c:473 +#: ../src/applet.c:2500 #, c-format msgid "Requesting a network address for '%s'..." msgstr "正在为“%s”请求一个网络地址..." -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format msgid "Mobile broadband connection '%s' active" msgstr "移动宽带连接“%s”已处于活动状态" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:696 #: ../src/mb-menu-item.c:54 msgid "CDMA" msgstr "CDMA" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 #: ../src/applet-dialogs.c:424 #, c-format msgid "Mobile Broadband (%s)" msgstr "移动宽带(%s)" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 #: ../src/connection-editor/page-mobile.c:379 #: ../src/connection-editor/nm-connection-editor.ui.h:4 #: ../src/connection-editor/nm-connection-list.c:1510 @@ -162,87 +189,88 @@ msgstr "移动宽带" #. Default connection item -#: ../src/applet-device-cdma.c:412 +#: ../src/applet-device-cdma.c:409 msgid "New Mobile Broadband (CDMA) connection..." msgstr "新建移动宽带(CDMA)连接..." -#: ../src/applet-device-cdma.c:446 +#: ../src/applet-device-cdma.c:443 msgid "You are now connected to the CDMA network." msgstr "您现在已连接到 CDMA 网络。" -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 #: ../src/applet-device-wimax.c:482 #, c-format msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" msgstr "移动宽带连接“%s”已处于活动状态:(%d%%%s%s)" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 #: ../src/applet-device-wimax.c:485 msgid "roaming" msgstr "漫游中" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 msgid "CDMA network." msgstr "CDMA 网络。" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 +# 这里的"home network"与下面的“漫游网络”是对比的关闭,应和下文的其他地方译法一致为“主网络”才说的通。 +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 msgid "You are now registered on the home network." -msgstr "您现在已注册到家庭网络。" +msgstr "您现在已注册到主网络。" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 msgid "You are now registered on a roaming network." msgstr "您现在已注册到一个漫游网络。" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:699 #: ../src/mb-menu-item.c:59 msgid "GSM" msgstr "GSM" #. Default connection item -#: ../src/applet-device-gsm.c:459 +#: ../src/applet-device-gsm.c:457 msgid "New Mobile Broadband (GSM) connection..." msgstr "新建移动宽带(GSM)连接..." -#: ../src/applet-device-gsm.c:493 +#: ../src/applet-device-gsm.c:491 msgid "You are now connected to the GSM network." msgstr "您现在已连接到 GSM 网络。" -#: ../src/applet-device-gsm.c:654 +#: ../src/applet-device-gsm.c:652 msgid "PIN code required" msgstr "需要 PIN 码" -#: ../src/applet-device-gsm.c:662 +#: ../src/applet-device-gsm.c:660 msgid "PIN code is needed for the mobile broadband device" msgstr "移动宽带设备需要 PIN 码。" -#: ../src/applet-device-gsm.c:783 +#: ../src/applet-device-gsm.c:781 #, c-format msgid "PIN code for SIM card '%s' on '%s'" msgstr "%2$s 上 SIM 卡 %1$s 的 PIN 码" -#: ../src/applet-device-gsm.c:875 +#: ../src/applet-device-gsm.c:873 msgid "Wrong PIN code; please contact your provider." msgstr "错误的 PIN 代码;请联络您的供应商。" -#: ../src/applet-device-gsm.c:898 +#: ../src/applet-device-gsm.c:896 msgid "Wrong PUK code; please contact your provider." msgstr "错误的 PUK 代码;请联络您的供应商。" #. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 +#: ../src/applet-device-gsm.c:923 msgid "Sending unlock code..." msgstr "正在发送解锁码..." -#: ../src/applet-device-gsm.c:988 +#: ../src/applet-device-gsm.c:986 msgid "SIM PIN unlock required" msgstr "需要解锁 SIM PIN" -#: ../src/applet-device-gsm.c:989 +#: ../src/applet-device-gsm.c:987 msgid "SIM PIN Unlock Required" msgstr "需要解锁 SIM PIN" #. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 +#: ../src/applet-device-gsm.c:989 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PIN code before it can be " @@ -250,25 +278,25 @@ msgstr "移动宽带设备“%s”在可以使用之前需要一个 SIM PIN 码。" #. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 +#: ../src/applet-device-gsm.c:991 msgid "PIN code:" msgstr "PIN 代码:" #. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 +#: ../src/applet-device-gsm.c:995 msgid "Show PIN code" msgstr "显示 PIN 码" -#: ../src/applet-device-gsm.c:1000 +#: ../src/applet-device-gsm.c:998 msgid "SIM PUK unlock required" msgstr "需要解锁 SIM PUK" -#: ../src/applet-device-gsm.c:1001 +#: ../src/applet-device-gsm.c:999 msgid "SIM PUK Unlock Required" msgstr "需要解锁 SIM PUK" #. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 +#: ../src/applet-device-gsm.c:1001 #, c-format msgid "" "The mobile broadband device '%s' requires a SIM PUK code before it can be " @@ -276,26 +304,26 @@ msgstr "移动宽带设备“%s”在可以使用之前需要一个 SIM PUK 码。" #. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 +#: ../src/applet-device-gsm.c:1003 msgid "PUK code:" msgstr "PUK 码:" #. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 +#: ../src/applet-device-gsm.c:1006 msgid "New PIN code:" msgstr "新的 PIN 码:" #. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 +#: ../src/applet-device-gsm.c:1008 msgid "Re-enter new PIN code:" msgstr "再次输入新的 PIN 码:" #. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 +#: ../src/applet-device-gsm.c:1013 msgid "Show PIN/PUK codes" msgstr "显示 PIN/PUK 码:" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 msgid "GSM network." msgstr "GSM 网络。" @@ -322,7 +350,7 @@ msgstr "有线网络" #. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1509 +#: ../src/applet-device-wired.c:232 ../src/applet.c:1508 msgid "disconnected" msgstr "已断开" @@ -363,103 +391,103 @@ msgid "_Connect to Hidden Wireless Network..." msgstr "连接到隐藏的无线连接(_C)..." -#: ../src/applet-device-wifi.c:150 +#: ../src/applet-device-wifi.c:148 msgid "Create _New Wireless Network..." msgstr "创建新的无线网络(_N)..." -#: ../src/applet-device-wifi.c:294 +#: ../src/applet-device-wifi.c:292 msgid "(none)" msgstr "(无)" -#: ../src/applet-device-wifi.c:792 +#: ../src/applet-device-wifi.c:790 #, c-format msgid "Wireless Networks (%s)" msgstr "无线网络(%s)" -#: ../src/applet-device-wifi.c:794 +#: ../src/applet-device-wifi.c:792 #, c-format msgid "Wireless Network (%s)" msgstr "无线网络(%s)" -#: ../src/applet-device-wifi.c:796 +#: ../src/applet-device-wifi.c:794 msgid "Wireless Network" msgid_plural "Wireless Networks" msgstr[0] "无线网络" -#: ../src/applet-device-wifi.c:829 +#: ../src/applet-device-wifi.c:827 msgid "wireless is disabled" msgstr "无线网络已禁用" -#: ../src/applet-device-wifi.c:830 +#: ../src/applet-device-wifi.c:828 msgid "wireless is disabled by hardware switch" msgstr "无线网络已通过硬件开关禁用" -#: ../src/applet-device-wifi.c:891 +#: ../src/applet-device-wifi.c:889 msgid "More networks" msgstr "更多网络" -#: ../src/applet-device-wifi.c:1071 +#: ../src/applet-device-wifi.c:1068 msgid "Wireless Networks Available" msgstr "无线网络可用" -#: ../src/applet-device-wifi.c:1072 +#: ../src/applet-device-wifi.c:1069 msgid "Use the network menu to connect to a wireless network" msgstr "使用网络菜单连接到无线网络" -#: ../src/applet-device-wifi.c:1075 ../src/applet.c:925 +#: ../src/applet-device-wifi.c:1072 ../src/applet.c:924 msgid "Don't show this message again" msgstr "不再显示此信息" -#: ../src/applet-device-wifi.c:1267 +#: ../src/applet-device-wifi.c:1263 #, c-format msgid "You are now connected to the wireless network '%s'." msgstr "您现在已连接到无线网络 '%s'。" -#: ../src/applet-device-wifi.c:1298 +#: ../src/applet-device-wifi.c:1294 #, c-format msgid "Preparing wireless network connection '%s'..." msgstr "正在准备无线网络连接“%s”..." -#: ../src/applet-device-wifi.c:1301 +#: ../src/applet-device-wifi.c:1297 #, c-format msgid "Configuring wireless network connection '%s'..." msgstr "正在配置无线网络连接“%s”..." -#: ../src/applet-device-wifi.c:1304 +#: ../src/applet-device-wifi.c:1300 #, c-format msgid "User authentication required for wireless network '%s'..." msgstr "无线网络“%s”需要用户认证..." -#: ../src/applet-device-wifi.c:1307 +#: ../src/applet-device-wifi.c:1303 #, c-format msgid "Requesting a wireless network address for '%s'..." msgstr "正在为“%s”请求一个无线网络地址..." -#: ../src/applet-device-wifi.c:1328 +#: ../src/applet-device-wifi.c:1324 #, c-format msgid "Wireless network connection '%s' active: %s (%d%%)" msgstr "无线网络连接“%s”处于活动状态:%s (%d%%)" -#: ../src/applet-device-wifi.c:1333 +#: ../src/applet-device-wifi.c:1329 #, c-format msgid "Wireless network connection '%s' active" msgstr "无线网络连接“%s”处于活动状态" -#: ../src/applet-device-wifi.c:1381 +#: ../src/applet-device-wifi.c:1377 msgid "Failed to activate connection" msgstr "无法启用连接" -#: ../src/applet-device-wifi.c:1383 ../src/applet-device-wifi.c:1402 -#: ../src/applet.c:491 ../src/applet.c:535 ../src/applet.c:561 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +#: ../src/applet.c:490 ../src/applet.c:534 ../src/applet.c:560 msgid "Unknown error" msgstr "未知错误" -#: ../src/applet-device-wifi.c:1386 ../src/applet-device-wifi.c:1405 -#: ../src/applet.c:494 ../src/applet.c:564 +#: ../src/applet-device-wifi.c:1382 ../src/applet-device-wifi.c:1401 +#: ../src/applet.c:493 ../src/applet.c:563 msgid "Connection failure" msgstr "连接失败" -#: ../src/applet-device-wifi.c:1400 +#: ../src/applet-device-wifi.c:1396 msgid "Failed to add new connection" msgstr "无法添加新连接" @@ -693,8 +721,8 @@ "Copyright © 2005-2008 Novell, Inc.\n" "and many other community contributors and translators" msgstr "" -"版权所有 (C) 2004-2011 Red Hat公司\n" -"版权所有 (C) 2005-2008 Novell公司\n" +"版权所有 (C) 2004-2011 Red Hat 公司\n" +"版权所有 (C) 2005-2008 Novell 公司\n" "和其他众多社区贡献者和翻译者" #: ../src/applet-dialogs.c:942 @@ -723,23 +751,23 @@ msgid "Password:" msgstr "密码:" -#: ../src/applet.c:489 +#: ../src/applet.c:488 msgid "Failed to add/activate connection" msgstr "无法添加/启用连接" -#: ../src/applet.c:533 +#: ../src/applet.c:532 msgid "Device disconnect failed" msgstr "设备断开失败" -#: ../src/applet.c:538 +#: ../src/applet.c:537 msgid "Disconnect failure" msgstr "断开失败" -#: ../src/applet.c:559 +#: ../src/applet.c:558 msgid "Connection activation failed" msgstr "连接启用失败" -#: ../src/applet.c:1014 +#: ../src/applet.c:1013 #, c-format msgid "" "\n" @@ -749,7 +777,7 @@ "\n" "VPN 连接“%s”失败。网络连接被中断。" -#: ../src/applet.c:1017 +#: ../src/applet.c:1016 #, c-format msgid "" "\n" @@ -758,7 +786,7 @@ "\n" "VPN 连接“%s”失败。VPN 服务异常中断。" -#: ../src/applet.c:1020 +#: ../src/applet.c:1019 #, c-format msgid "" "\n" @@ -768,7 +796,7 @@ "\n" "VPN 连接“%s”失败。VPN 服务返回了一个非法配置。" -#: ../src/applet.c:1023 +#: ../src/applet.c:1022 #, c-format msgid "" "\n" @@ -777,7 +805,7 @@ "\n" "VPN 连接“%s”失败。连接超时。" -#: ../src/applet.c:1026 +#: ../src/applet.c:1025 #, c-format msgid "" "\n" @@ -786,7 +814,7 @@ "\n" "VPN 连接“%s”失败。VPN 服务未在所需时间内启动。" -#: ../src/applet.c:1029 +#: ../src/applet.c:1028 #, c-format msgid "" "\n" @@ -795,7 +823,7 @@ "\n" "VPN 连接“%s”失败。VPN 服务启动失败。" -#: ../src/applet.c:1032 +#: ../src/applet.c:1031 #, c-format msgid "" "\n" @@ -804,7 +832,7 @@ "\n" "VPN 连接“%s”失败。没有合法的 VPN secret。" -#: ../src/applet.c:1035 +#: ../src/applet.c:1034 #, c-format msgid "" "\n" @@ -813,7 +841,7 @@ "\n" "VPN 连接“%s”失败。VPN secret 非法。" -#: ../src/applet.c:1042 +#: ../src/applet.c:1041 #, c-format msgid "" "\n" @@ -822,7 +850,7 @@ "\n" "VPN 连接“%s”失败。" -#: ../src/applet.c:1060 +#: ../src/applet.c:1059 #, c-format msgid "" "\n" @@ -832,7 +860,7 @@ "\n" "VPN 连接“%s”已断开。网络连接被中断。" -#: ../src/applet.c:1063 +#: ../src/applet.c:1062 #, c-format msgid "" "\n" @@ -841,7 +869,7 @@ "\n" "VPN 连接“%s”已断开。VPN 服务已停止。" -#: ../src/applet.c:1069 +#: ../src/applet.c:1068 #, c-format msgid "" "\n" @@ -850,15 +878,30 @@ "\n" "VPN 连接“%s”已断开。" -#: ../src/applet.c:1103 +#: ../src/applet.c:1098 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"已成功建立 VPN 连接。\n" +"\n" +"%s\n" + +#: ../src/applet.c:1100 +msgid "VPN connection has been successfully established.\n" +msgstr "已成功建立 VPN 连接。\n" + +#: ../src/applet.c:1102 msgid "VPN Login Message" msgstr "VPN 登录消息" -#: ../src/applet.c:1109 ../src/applet.c:1117 ../src/applet.c:1167 +#: ../src/applet.c:1108 ../src/applet.c:1116 ../src/applet.c:1166 msgid "VPN Connection Failed" msgstr "VPN 连接失败" -#: ../src/applet.c:1174 +#: ../src/applet.c:1173 #, c-format msgid "" "\n" @@ -871,7 +914,7 @@ "\n" "%s" -#: ../src/applet.c:1177 +#: ../src/applet.c:1176 #, c-format msgid "" "\n" @@ -884,139 +927,139 @@ "\n" "%s" -#: ../src/applet.c:1497 +#: ../src/applet.c:1496 msgid "device not ready (firmware missing)" msgstr "设备未就绪(缺少固件)" -#: ../src/applet.c:1499 +#: ../src/applet.c:1498 msgid "device not ready" msgstr "设备未就绪" -#: ../src/applet.c:1525 +#: ../src/applet.c:1524 msgid "Disconnect" msgstr "断开" -#: ../src/applet.c:1539 +#: ../src/applet.c:1538 msgid "device not managed" msgstr "设备未托管" -#: ../src/applet.c:1583 +#: ../src/applet.c:1582 msgid "No network devices available" msgstr "没有可用的网络设备" -#: ../src/applet.c:1671 +#: ../src/applet.c:1670 msgid "_VPN Connections" msgstr "_VPN 连接" -#: ../src/applet.c:1728 +#: ../src/applet.c:1727 msgid "_Configure VPN..." msgstr "配置 VPN(_C)..." -#: ../src/applet.c:1732 +#: ../src/applet.c:1731 msgid "_Disconnect VPN" msgstr "断开 VPN(_D)" -#: ../src/applet.c:1830 +#: ../src/applet.c:1825 msgid "NetworkManager is not running..." msgstr "网络管理器未运行..." -#: ../src/applet.c:1835 ../src/applet.c:2634 +#: ../src/applet.c:1830 ../src/applet.c:2631 msgid "Networking disabled" msgstr "网络已禁用" #. 'Enable Networking' item -#: ../src/applet.c:2056 +#: ../src/applet.c:2051 msgid "Enable _Networking" msgstr "启用联网(_N)" #. 'Enable Wireless' item -#: ../src/applet.c:2065 +#: ../src/applet.c:2060 msgid "Enable _Wireless" msgstr "启用无线(_W)" #. 'Enable Mobile Broadband' item -#: ../src/applet.c:2074 +#: ../src/applet.c:2069 msgid "Enable _Mobile Broadband" msgstr "启用移动宽带(_M)" #. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2083 +#: ../src/applet.c:2078 msgid "Enable WiMA_X Mobile Broadband" msgstr "启用 WiMA_X 移动宽带" #. Toggle notifications item -#: ../src/applet.c:2094 +#: ../src/applet.c:2089 msgid "Enable N_otifications" msgstr "启用通知(_O)" #. 'Connection Information' item -#: ../src/applet.c:2105 +#: ../src/applet.c:2100 msgid "Connection _Information" msgstr "连接信息(_I)" #. 'Edit Connections...' item -#: ../src/applet.c:2115 +#: ../src/applet.c:2110 msgid "Edit Connections..." msgstr "编辑连接..." #. Help item -#: ../src/applet.c:2129 +#: ../src/applet.c:2124 msgid "_Help" msgstr "帮助(_H)" #. About item -#: ../src/applet.c:2138 +#: ../src/applet.c:2133 msgid "_About" msgstr "关于(_A)" -#: ../src/applet.c:2315 +#: ../src/applet.c:2310 msgid "Disconnected" msgstr "已断开连接" -#: ../src/applet.c:2316 +#: ../src/applet.c:2311 msgid "The network connection has been disconnected." msgstr "网络连接现已断开。" -#: ../src/applet.c:2497 +#: ../src/applet.c:2494 #, c-format msgid "Preparing network connection '%s'..." msgstr "正在准备网络连接“%s”..." -#: ../src/applet.c:2500 +#: ../src/applet.c:2497 #, c-format msgid "User authentication required for network connection '%s'..." msgstr "网络连接“%s”需要用户认证..." -#: ../src/applet.c:2506 +#: ../src/applet.c:2503 #, c-format msgid "Network connection '%s' active" msgstr "网络连接“%s”已处于活动状态" -#: ../src/applet.c:2589 +#: ../src/applet.c:2586 #, c-format msgid "Starting VPN connection '%s'..." msgstr "正在启动 VPN 连接“%s”..." -#: ../src/applet.c:2592 +#: ../src/applet.c:2589 #, c-format msgid "User authentication required for VPN connection '%s'..." msgstr "VPN 连接“%s”需要用户认证..." -#: ../src/applet.c:2595 +#: ../src/applet.c:2592 #, c-format msgid "Requesting a VPN address for '%s'..." msgstr "正在为“%s”请求一个 VPN 地址..." -#: ../src/applet.c:2598 +#: ../src/applet.c:2595 #, c-format msgid "VPN connection '%s' active" msgstr "VPN 连接“%s”已处于活动状态" -#: ../src/applet.c:2639 +#: ../src/applet.c:2636 msgid "No network connection" msgstr "没有网络连接" -#: ../src/applet.c:3394 +#: ../src/applet.c:3336 msgid "NetworkManager Applet" msgstr "网络管理器小程序" @@ -1173,11 +1216,15 @@ #: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "搜索域(_E):" #: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_DNS 服务器:" @@ -1296,7 +1343,7 @@ #: ../src/connection-editor/ce-page-ppp.ui.h:5 msgid "_Use point-to-point encryption (MPPE)" -msgstr "使用点到点加密 (MPPE)(_U)" +msgstr "使用点到点加密(MPPE)(_U)" #: ../src/connection-editor/ce-page-ppp.ui.h:6 msgid "_Require 128-bit encryption" @@ -1430,7 +1477,7 @@ #: ../src/connection-editor/ce-page-wireless.ui.h:13 msgid "Mb/s" -msgstr "Mb/s" +msgstr "Mb/秒" #: ../src/connection-editor/ce-page-wireless.ui.h:14 msgid "_Rate:" @@ -1548,20 +1595,20 @@ #: ../src/connection-editor/ip4-routes-dialog.c:745 #: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 msgid "Address" msgstr "地址" #: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 +#: ../src/connection-editor/page-ip4.c:928 msgid "Netmask" msgstr "子网掩码" #: ../src/connection-editor/ip4-routes-dialog.c:779 #: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 msgid "Gateway" msgstr "网关" @@ -1571,7 +1618,7 @@ msgstr "公制" #: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 +#: ../src/connection-editor/page-ip6.c:894 msgid "Prefix" msgstr "前缀" @@ -1585,7 +1632,7 @@ msgid "Could not load DSL user interface." msgstr "无法加载 DSL 用户界面。" -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:232 #, c-format msgid "DSL connection %d" msgstr "DSL 连接 %d" @@ -1637,16 +1684,26 @@ msgid "Disabled" msgstr "已禁用" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "附加 _DNS 服务器:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "附加搜索域(_E):" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "正在编辑 %s 的 IPv4 路由" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:992 msgid "IPv4 Settings" msgstr "IPv4 设置" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:994 msgid "Could not load IPv4 user interface." msgstr "无法加载 IPv4 用户界面。" @@ -1655,7 +1712,7 @@ msgstr "自动,仅地址" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "忽略" @@ -1663,16 +1720,16 @@ msgid "Automatic, DHCP only" msgstr "自动,仅 DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "正在编辑 %s 的 IPv6 路由" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:956 msgid "IPv6 Settings" msgstr "IPv6 设置" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:958 msgid "Could not load IPv6 user interface." msgstr "无法加载 IPv6 用户界面。" @@ -1697,11 +1754,11 @@ #: ../src/connection-editor/page-mobile.c:679 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" -msgstr "我的提供商使用基于 _GSM 的技术(即: GPRS, EDGE, UMTS, HSDPA)" +msgstr "我的提供商使用基于 _GSM 的技术(如 GPRS、EDGE、UMTS、HSDPA)" #: ../src/connection-editor/page-mobile.c:686 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" -msgstr "我的提供商使用基于 C_DMA 的技术(即:1xRTT, EVDO)" +msgstr "我的提供商使用基于 C_DMA 的技术(如 1xRTT、EVDO)" #: ../src/connection-editor/page-ppp.c:134 msgid "EAP" @@ -1768,8 +1825,8 @@ msgid "VPN connection %d" msgstr "VPN 连接 %d" -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 +#: ../src/connection-editor/page-wired.c:91 +#: ../src/connection-editor/page-wireless.c:95 msgid "" "This option locks this connection to the network device specified by its " "permanent MAC address entered here. Example: 00:11:22:33:44:55" @@ -1777,17 +1834,17 @@ "此选项可将此连接锁定至以在此输入的 MAC 地址指定的网络设备。例如:" "00:11:22:33:44:55" -#: ../src/connection-editor/page-wired.c:272 +#: ../src/connection-editor/page-wired.c:271 #: ../src/connection-editor/nm-connection-editor.ui.h:2 #: ../src/connection-editor/nm-connection-list.c:1502 msgid "Wired" msgstr "有线" -#: ../src/connection-editor/page-wired.c:274 +#: ../src/connection-editor/page-wired.c:273 msgid "Could not load wired user interface." msgstr "无法加载有线网络用户界面。" -#: ../src/connection-editor/page-wired.c:449 +#: ../src/connection-editor/page-wired.c:448 #, c-format msgid "Wired connection %d" msgstr "有线连接 %d" @@ -1804,29 +1861,29 @@ msgid "Use 802.1_X security for this connection" msgstr "对此连接使用 802.1_X 安全性" -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 +#: ../src/connection-editor/page-wireless.c:172 +#: ../src/connection-editor/page-wireless.c:176 +#: ../src/connection-editor/page-wireless.c:197 #, c-format msgid "default" msgstr "默认" -#: ../src/connection-editor/page-wireless.c:200 +#: ../src/connection-editor/page-wireless.c:201 #, c-format msgid "%u (%u MHz)" msgstr "%u (%u MHz)" -#: ../src/connection-editor/page-wireless.c:457 +#: ../src/connection-editor/page-wireless.c:455 #: ../src/connection-editor/nm-connection-editor.ui.h:3 #: ../src/connection-editor/nm-connection-list.c:1506 msgid "Wireless" msgstr "无线" -#: ../src/connection-editor/page-wireless.c:459 +#: ../src/connection-editor/page-wireless.c:457 msgid "Could not load WiFi user interface." msgstr "无法加载 WiFi 用户界面。" -#: ../src/connection-editor/page-wireless.c:663 +#: ../src/connection-editor/page-wireless.c:661 #, c-format msgid "Wireless connection %d" msgstr "无线连接 %d" @@ -1858,7 +1915,7 @@ #: ../src/connection-editor/page-wireless-security.c:395 msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "无法加载 WiFi 安全性用户界面;缺少 WiFi 设定。" +msgstr "无法加载 WiFi 安全性用户界面;缺少 WiFi 设置。" #: ../src/connection-editor/page-wireless-security.c:405 msgid "Wireless Security" @@ -1868,38 +1925,38 @@ msgid "Could not load WiFi security user interface." msgstr "无法加载 WiFi 安全性用户界面。" -#: ../src/connection-editor/nm-connection-editor.c:101 +#: ../src/connection-editor/nm-connection-editor.c:102 #, c-format msgid "Editing %s" msgstr "正在编辑 %s" -#: ../src/connection-editor/nm-connection-editor.c:105 +#: ../src/connection-editor/nm-connection-editor.c:106 msgid "Editing un-named connection" msgstr "编辑未命名连接" -#: ../src/connection-editor/nm-connection-editor.c:291 +#: ../src/connection-editor/nm-connection-editor.c:292 msgid "" "The connection editor could not find some required resources (the .ui file " "was not found)." msgstr "连接编辑器找不到所需的一些资源(未找到 .ui 文件)。" -#: ../src/connection-editor/nm-connection-editor.c:394 +#: ../src/connection-editor/nm-connection-editor.c:395 msgid "Error creating connection editor dialog." msgstr "创建连接编辑器对话框出错。" -#: ../src/connection-editor/nm-connection-editor.c:406 +#: ../src/connection-editor/nm-connection-editor.c:407 msgid "_Save" msgstr "保存(_S)" -#: ../src/connection-editor/nm-connection-editor.c:407 +#: ../src/connection-editor/nm-connection-editor.c:408 msgid "Save any changes made to this connection." msgstr "保存对此连接的全部更改。" -#: ../src/connection-editor/nm-connection-editor.c:408 +#: ../src/connection-editor/nm-connection-editor.c:409 msgid "_Save..." msgstr "保存(_S)..." -#: ../src/connection-editor/nm-connection-editor.c:409 +#: ../src/connection-editor/nm-connection-editor.c:410 msgid "Authenticate to save this connection for all users of this machine." msgstr "为本机所有用户保存此连接需要认证。" @@ -1913,15 +1970,15 @@ #: ../src/connection-editor/nm-connection-editor.ui.h:9 msgid "Connection _name:" -msgstr "连接名称(_I)" +msgstr "连接名称(_N):" #: ../src/connection-editor/nm-connection-editor.ui.h:10 msgid "Connect _automatically" msgstr "自动连接(_A)" #: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "Available to all users" -msgstr "对所有用户可用" +msgid "A_vailable to all users" +msgstr "对所有用户可用(_V)" #: ../src/connection-editor/nm-connection-list.c:216 msgid "never" @@ -1974,7 +2031,7 @@ #: ../src/connection-editor/nm-connection-list.c:516 #, c-format msgid "The property '%s' / '%s' is invalid: %d" -msgstr "属性 '%s' / '%s' 非法: %d" +msgstr "属性“%s”/“%s”非法:%d" #: ../src/connection-editor/nm-connection-list.c:523 #: ../src/connection-editor/nm-connection-list.c:662 @@ -2028,7 +2085,7 @@ msgstr "" "VPN 插件无法正确导入 VPN 连接。\n" "\n" -"错误: 没有 VPN 服务类型。" +"错误:没有 VPN 服务类型。" #: ../src/connection-editor/nm-connection-list.c:944 msgid "Could not edit imported connection" @@ -2044,7 +2101,7 @@ #: ../src/connection-editor/nm-connection-list.c:1263 msgid "No VPN plugin available. Please install one to enable this button." -msgstr "无可用 VPN 插件,请至少安装一个以启用此按钮。" +msgstr "无可用 VPN 插件。请至少安装一个以启用此按钮。" #: ../src/connection-editor/nm-connection-list.c:1274 msgid "_Edit" @@ -2085,22 +2142,22 @@ #: ../src/connection-editor/nm-connection-list.c:1575 #, c-format msgid "Don't know how to create '%s' connections" -msgstr "无法创建名为“%s”的连接" +msgstr "不知道如何创建“%s”连接" #: ../src/connection-editor/nm-connection-list.c:1630 #: ../src/connection-editor/nm-connection-list.c:1642 msgid "Error editing connection" -msgstr "保存连接出错" +msgstr "编辑连接出错" #: ../src/connection-editor/nm-connection-list.c:1631 #, c-format msgid "Don't know how to edit '%s' connections" -msgstr "无法编辑名为“%s”的连接" +msgstr "不知道如何编辑“%s”连接" #: ../src/connection-editor/nm-connection-list.c:1643 #, c-format msgid "Did not find a connection with UUID '%s'" -msgstr "没有找到名为“%s”的连接" +msgstr "没有找到“%s”连接" #: ../src/connection-editor/vpn-helpers.c:230 #, c-format @@ -2130,7 +2187,7 @@ #: ../src/connection-editor/vpn-helpers.c:318 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" -msgstr "是否要将 %s 替换为您正在保存的 VPN 连接?" +msgstr "是否要将 %s 替换为您正在保存的 VPN 连接?" #: ../src/connection-editor/vpn-helpers.c:354 msgid "Cannot export VPN connection" @@ -2143,118 +2200,115 @@ "\n" "Error: %s." msgstr "" -"VPN 连接“%s”无法被导出至 %s。\n" +"VPN 连接“%s”无法导出至 %s。\n" "\n" -"错误: %s。" +"错误:%s。" #: ../src/connection-editor/vpn-helpers.c:391 msgid "Export VPN connection..." -msgstr "导出 VPN 连接" +msgstr "导出 VPN 连接..." -#: ../src/gnome-bluetooth/bt-widget.c:220 +#: ../src/gnome-bluetooth/bt-widget.c:321 #, c-format -msgid "Failed to create PAN connection: %s" -msgstr "无法建立 PAN 连接:%s" - -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "您的电话已经可以使用!" +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "蓝牙配置不可用(无法连接 D-Bus:(%s) %s)。" -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s 网络" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "蓝牙配置不可用(查找 NetworkManager 出错:(%s) %s)。" + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "使用您的移动电话作为网络设备(PAN/NAP)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "使用您的手机访问互联网(DUN)" + +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "错误:%s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "无法建立 DUN 连接:%s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "您的电话已经可以使用!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "移动连接向导已被取消" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "未知电话设备类型(不是 GSM 或者 CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "未知调制解调器类型。" + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "连接到电话失败。" -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "意外断开与电话的连接。" -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "检测电话详细信息时超时。" -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "正在检测电话配置..." -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "无法找到蓝牙设备。" - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." msgstr "在设置拨号网络连接前必须启用默认蓝牙适配器。" -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "蓝牙配置不可用(连接到 D-Bus 失败:%s)。" - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "蓝牙配置不可用(创建 D-Bus 代理服务器失败)。" +msgid "Failed to create PAN connection: %s" +msgstr "无法建立 PAN 连接:%s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "蓝牙配置不可用(查找 NetworkManager 出错:%s)。" - -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "使用您的移动电话作为网络设备(PAN/NAP)" - -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "使用您的手机访问互联网(DUN)" +msgid "%s Network" +msgstr "%s 网络" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:205 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "您的移动宽带连接已按以下设定配置:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:212 msgid "Your Device:" msgstr "您的设备:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:223 msgid "Your Provider:" msgstr "您的服务商:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:234 msgid "Your Plan:" -msgstr "您的计划:" +msgstr "您的套餐:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:259 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2262,132 +2316,132 @@ "connection settings, choose \"Network Connections\" from the System >> " "Preferences menu." msgstr "" -"现将按照您所选择的设定建立一个到您的移动宽带提供商的连接。如果连接失败或无法" -"访问网络资源,请检查您的设定。要修改您的移动宽带设定,在系统 >> 首选项菜单中" +"现将按照您所选择的设置建立一个到您的移动宽带提供商的连接。如果连接失败或无法" +"访问网络资源,请检查您的设置。要修改您的移动宽带设置,在系统 >> 首选项菜单中" "选择“网络连接”。" -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:271 msgid "Confirm Mobile Broadband Settings" -msgstr "确认移动宽带设定" +msgstr "确认移动宽带设置" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:332 msgid "Unlisted" msgstr "未列出" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:487 msgid "_Select your plan:" -msgstr "选择您的计划(_S):" +msgstr "选择您的套餐(_S):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:511 msgid "Selected plan _APN (Access Point Name):" -msgstr "选中的计划 _APN (访问点名称):" +msgstr "所选套餐的 _APN (访问点名称):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:535 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" "\n" "If you are unsure of your plan please ask your provider for your plan's APN." msgstr "" -"警告: 选择一个不正确的计划可能导致宽带账户费用问题或无法连接。\n" +"警告:选择一个不正确的套餐可能导致宽带账户费用问题或无法连接。\n" "\n" -"如果您不确定您的计划,请询问您的提供商以获取计划的 APN。" +"如果您不确定您的套餐,请询问您的提供商以获取套餐的 APN。" -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:542 msgid "Choose your Billing Plan" -msgstr "选择您的付费计划" +msgstr "选择您的付费套餐" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:590 msgid "My plan is not listed..." -msgstr "我的计划没有被列出..." +msgstr "我的套餐未被列出..." -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:747 msgid "Select your provider from a _list:" -msgstr "从一个列表中选择您的提供商(_L):" +msgstr "从列表中选择您的提供商(_L):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:760 msgid "Provider" msgstr "提供商" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:785 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "找不到我的提供商,希望手动输入(_M):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:796 msgid "Provider:" msgstr "提供商:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:820 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "我的提供商使用 GSM 技术(GPRS, EDGE, UMTS, HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "我的提供商使用 CDMA 技术(1xRTT, EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:837 msgid "Choose your Provider" msgstr "选择您的提供商" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1088 msgid "Country or Region List:" msgstr "国家或地区列表:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 msgid "Country or region" msgstr "国家或地区" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1107 msgid "My country is not listed" msgstr "我所在国家/地区没有被列出" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1153 msgid "Choose your Provider's Country or Region" msgstr "选择您的提供商的国家或地区" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1207 msgid "Installed GSM device" msgstr "已安装的 GSM 设备" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1210 msgid "Installed CDMA device" msgstr "已安装的 CDMA 设备" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1382 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." msgstr "此助手程序可帮助您简单地设置一个到蜂窝(3G)网络的移动宽带连接。" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1387 msgid "You will need the following information:" msgstr "您将需要以下信息:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1402 msgid "Your broadband provider's name" msgstr "您的宽带提供商名称" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband billing plan name" -msgstr "您的宽带付费计划名称" +msgstr "您的宽带付费套餐名称" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" -msgstr "(在某些情况下)您的宽带付费计划 APN (访问点名称)" +msgstr "(在某些情况下)您的宽带付费套餐 APN (访问点名称)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1441 msgid "Create a connection for _this mobile broadband device:" msgstr "为此移动宽带设备创建一个连接(_T):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1456 msgid "Any device" msgstr "任何设备" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1469 msgid "Set up a Mobile Broadband Connection" msgstr "设置一个移动宽带连接" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1633 msgid "New Mobile Broadband Connection" msgstr "新移动宽带连接" @@ -2402,8 +2456,8 @@ #: ../src/libnm-gtk/nm-wireless-dialog.c:1160 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network '%" -"s'." +"Passwords or encryption keys are required to access the wireless network " +"'%s'." msgstr "需要密码或密钥来访问无线网络“%s”。" #: ../src/libnm-gtk/nm-wireless-dialog.c:1162 @@ -2424,7 +2478,7 @@ #: ../src/libnm-gtk/nm-wireless-dialog.c:1172 msgid "Enter a name for the wireless network you wish to create." -msgstr "请为您希望建立的无线网络输入一个名称。" +msgstr "输入您要创建的无线网络的名称。" #: ../src/libnm-gtk/nm-wireless-dialog.c:1174 msgid "Connect to Hidden Wireless Network" @@ -2438,15 +2492,15 @@ msgid "" "Enter the name and security details of the hidden wireless network you wish " "to connect to." -msgstr "输入您想连接到的隐藏无线网络的名称及安全性详细信息。" +msgstr "输入您要连接的隐藏无线网络的名称及安全性详细信息。" #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "_Wireless security:" -msgstr "无线网络安全性(_W):" +msgid "Wireless _security:" +msgstr "无线网络安全性(_S):" #: ../src/libnm-gtk/wifi.ui.h:4 -msgid "Co_nnection:" -msgstr "连接(_N):" +msgid "C_onnection:" +msgstr "连接(_O):" #: ../src/libnm-gtk/wifi.ui.h:5 msgid "Wireless _adapter:" @@ -2513,7 +2567,7 @@ #: ../src/mb-menu-item.c:133 #, c-format msgid "Home network (%s)" -msgstr "主网络 (%s)" +msgstr "主网络(%s)" #: ../src/mb-menu-item.c:135 #, c-format @@ -2531,17 +2585,17 @@ #: ../src/mb-menu-item.c:151 ../src/mb-menu-item.c:157 #, c-format msgid "%s (%s roaming)" -msgstr "%s (%s 漫游中)" +msgstr "%s(%s 漫游中)" #: ../src/mb-menu-item.c:153 ../src/mb-menu-item.c:159 #, c-format msgid "%s (roaming)" -msgstr "%s (漫游中)" +msgstr "%s(漫游中)" #: ../src/mb-menu-item.c:162 #, c-format msgid "Roaming network (%s)" -msgstr "漫游网络 (%s)" +msgstr "漫游网络(%s)" #: ../src/mb-menu-item.c:164 #, c-format @@ -2552,17 +2606,23 @@ msgid "Default" msgstr "默认" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "%s 连接" + #: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 msgid "" "The NetworkManager Applet could not find some required resources (the .ui " "file was not found)." msgstr "网络管理器小程序找不到所需的资源(.ui 文件未找到)。" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "未选定认证中心证书" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " "to insecure, rogue wireless networks. Would you like to choose a " @@ -2571,17 +2631,17 @@ "不使用认证中心(CA)证书可能导致连接到不安全的、模糊的无线网络。要选择一个认证" "中心证书吗?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "选择 CA 证书文件" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER,PEM 或 PKCS#12 私钥 (*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" -msgstr "DER 或 PEM 证书 (*.der, *.pem, *.crt, *.cer)" +msgstr "DER 或 PEM 证书(*.der, *.pem, *.crt, *.cer)" #: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" @@ -2626,7 +2686,7 @@ #: ../src/wireless-security/eap-method-fast.c:406 msgid "PAC files (*.pac)" -msgstr "PAC 文件 (*.pac)" +msgstr "PAC 文件(*.pac)" #: ../src/wireless-security/eap-method-fast.c:410 msgid "All files" @@ -2663,7 +2723,7 @@ #: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" -msgstr "总是询问此密码(_K)" +msgstr "总是询问该密码(_K)" #: ../src/wireless-security/eap-method-tls.c:246 msgid "Unencrypted private keys are insecure" @@ -2776,6 +2836,12 @@ msgid "WEP inde_x:" msgstr "WEP 索引(_X):" +#~ msgid "could not find the Bluetooth device." +#~ msgstr "无法找到蓝牙设备。" + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "蓝牙配置不可用(创建 D-Bus 代理服务器失败)。" + #~ msgid "Click on this icon to connect to a wireless network" #~ msgstr "单击此图标连接到无线网络" diff -Nru network-manager-applet-0.9.4.1/po/zh_HK.po network-manager-applet-0.9.6.2+git201210311320.2620/po/zh_HK.po --- network-manager-applet-0.9.4.1/po/zh_HK.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/zh_HK.po 2012-10-31 13:20:57.000000000 +0000 @@ -11,8 +11,8 @@ msgstr "" "Project-Id-Version: network-manager-applet 0.9.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-08 16:22+0800\n" -"PO-Revision-Date: 2012-03-08 16:22+0800\n" +"POT-Creation-Date: 2012-08-21 19:45+0800\n" +"PO-Revision-Date: 2012-08-21 19:45+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: Chinese (Hong Kong) \n" "Language: \n" @@ -22,642 +22,1008 @@ "Plural-Forms: nplurals=1; plural=0;\n" #: ../nm-applet.desktop.in.h:1 +msgid "Network" +msgstr "網絡" + +#: ../nm-applet.desktop.in.h:2 msgid "Manage your network connections" msgstr "管理你的網絡連線" -#: ../nm-applet.desktop.in.h:2 -msgid "Network" -msgstr "網絡" +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "網絡連線" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "禁止建立 WiFi" +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "管理與更改你的連線設定值" -#: ../nm-applet.schemas.in.h:2 +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "停止已連線的通知" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "將這設為「TURE」,以停用網絡連線時的通知。" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "停止已離線的通知" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "將這設為「TRUE」,以停用網絡連線時的通知。" +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "將這設為「TURE」,以停用網絡離線時的通知。" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "停用 VPN 的通知" -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." msgstr "將這設為「TRUE」,以停用網絡離線時的通知。" -#: ../nm-applet.schemas.in.h:6 -msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." -msgstr "將這設為「TRUE」,以停用有無線網絡可用時的通知。" +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 +msgid "Suppress networks available notifications" +msgstr "停止可用網絡的通知" -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "將這設為「TRUE」,以停用使用面板程式建立 adhoc 網絡。" +"Set this to true to disable notifications when Wi-Fi networks are available." +msgstr "將這設為「TURE」,以停用有無線網絡可用時的通知。" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "戳記" -#: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" -msgstr "停止可用網絡的通知" - -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "用來決定設定是不是要轉移到新版本上。" -#: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "管理與更改你的連線設定值" +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "禁止建立 WiFi" -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -msgid "Network Connections" -msgstr "網絡連線" +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +msgid "" +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "將這設為「TURE」,以停用使用面板程式建立 adhoc 網絡。" -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "可用" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "忽略 CA 證書" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "你現在已連線至「%s」。" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "將這設為「TURE」,停用在 EAP 認證中 CA 證書" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "已建立連線" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "將這設為「TURE」,停用在第二 EAP 認證中 CA 證書" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "你現在已連線至流動寬頻網絡。" +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "802.1X 驗證" + +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "網絡名稱(_N):" + +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "無法加入/使用連線" + +#: ../src/applet.c:514 ../src/applet.c:558 ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "不明的錯誤" + +#: ../src/applet.c:517 ../src/applet.c:587 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "連線失敗" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "裝置斷線失敗" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "斷線失敗" + +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "連線生效失敗" + +#: ../src/applet.c:948 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "不要再顯示這個訊息" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:1037 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "正在準備流動寬頻連線「%s」…" +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為網絡連線被中斷了。" -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1040 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "正在設定流動寬頻連線「%s」…" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為 VPN 服務意外的停止了。" -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1043 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "流動寬頻連線「%s」需要使用者驗證…" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為 VPN 服務傳回無效的組態。" -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2479 +#: ../src/applet.c:1046 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "正在要求「%s」提供網絡位址…" +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為連線的嘗試已逾時。" -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1049 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "流動寬頻連線「%s」在使用中" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為 VPN 服務沒有及時啟動。" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1052 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為 VPN 服務啟動失敗。" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:430 +#: ../src/applet.c:1055 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "流動寬頻 (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為沒有有效的 VPN 服務。" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -#: ../src/connection-editor/nm-connection-list.c:1511 -msgid "Mobile Broadband" -msgstr "流動寬頻" +#: ../src/applet.c:1058 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為無效的 VPN 機密。" -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "新的流動寬頻 (CDMA) 連線…" +#: ../src/applet.c:1065 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"VPN 連線「%s」失敗。" -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "你現在已連線至 CDMA 網絡。" +#: ../src/applet.c:1083 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為網絡連線中斷了。" -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1086 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "流動寬頻連線「%s」在使用中:(%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為 VPN 服務已停止。" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "漫遊" +#: ../src/applet.c:1092 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"VPN 連線「%s」已斷線。" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "CDMA 網絡。" +#: ../src/applet.c:1122 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN 連線已成功的。\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "你現在已註冊至家用網絡。" +#: ../src/applet.c:1124 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN 連線已成功的。\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "你現在已註冊至漫遊網絡。" +#: ../src/applet.c:1126 +msgid "VPN Login Message" +msgstr "VPN 登錄訊息" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1132 ../src/applet.c:1140 ../src/applet.c:1190 +msgid "VPN Connection Failed" +msgstr "VPN 連線失敗" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "新的流動寬頻 (GSM) 連線…" +#: ../src/applet.c:1197 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為 VPN 服務啟動失敗。\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "你現在已連線至 GSM 網絡。" +#: ../src/applet.c:1200 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN 連線「%s」啟動失敗。\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "需要 PIN 碼" +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "裝置尚未就緒 (缺少韌體)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "這個流動寬頻裝置需要 PIN 碼" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "裝置尚未就緒" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "SIM 卡「%s」在「%s」的 PIN 碼" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "已斷線" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "PIN 碼錯誤,請聯絡你的供應商。" +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "斷線" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "PUK 碼錯誤,請聯絡你的供應商。" +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "裝置無法管理" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "發送解鎖用的密碼…" +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "沒有可用的網絡裝置" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "需要解鎖 SIM PIN 碼" +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "_VPN 連線" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "需要解鎖 SIM PIN 碼" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "設置 VPN(_C)…" -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "要使用流動寬頻裝置「%s」之前,需要 SIM PIN 碼。" +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "與 VPN 斷線(_D)" -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "PIN 碼:" +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "NetworkManager 沒有執行…." -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "顯示 PIN 碼" - -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "需要解鎖 SIM PUK 碼" - -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "需要解鎖 SIM PUK 碼" - -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "要使用流動寬頻裝置「%s」之前,需要 SIM PUK 碼。" - -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "PUK 碼:" +#: ../src/applet.c:1854 ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "網絡已停用" -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "新的 PIN 碼:" +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "啟用網絡(_N)" -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "重新輸入 PIN 碼:" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +msgid "Enable _Wi-Fi" +msgstr "啟用 _Wi-Fi" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "顯示 PIN/PUK 碼" +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "啟用流動寬頻(_M)" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "GSM 網絡。" +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "啟用 WiMA_X 流動寬頻" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "自動乙太網絡" +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "啟用通知功能(_O)" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "有線網絡 (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "連線資訊(_I)" -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "有線網絡 (%s)" +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "編輯連線…" -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "有線網絡" +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "求助(_H)" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "有線網絡" +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "關於(_A)" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1485 -msgid "disconnected" +#: ../src/applet.c:2335 +msgid "Disconnected" msgstr "已斷線" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "你現在已連線至有線網絡。" +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "網絡連線已中斷。" -#: ../src/applet-device-wired.c:300 +#: ../src/applet.c:2519 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "正在準備有線網絡連線「%s」…" +msgid "Preparing network connection '%s'..." +msgstr "正在準備網絡連線「%s」…" -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2522 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "正在設定有線網絡連線「%s」…" +msgid "User authentication required for network connection '%s'..." +msgstr "網絡連線「%s」需要使用者驗證…" -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2525 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "有線網絡連線「%s」需要使用者驗證…" +msgid "Requesting a network address for '%s'..." +msgstr "正在要求提供「%s」的網絡位址…" -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2528 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "正要求有線網絡「%s」提供網絡位址…" +msgid "Network connection '%s' active" +msgstr "網絡連線「%s」在使用中" -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2611 #, c-format -msgid "Wired network connection '%s' active" -msgstr "有線網絡連線「%s」在使用中" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "DSL 驗證" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "連接到隱藏的無線網絡(_C)…" - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "建立新的無線網絡(_N)…" - -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(無)" +msgid "Starting VPN connection '%s'..." +msgstr "正在啟動 VPN 連線「%s」…" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet.c:2614 #, c-format -msgid "Wireless Networks (%s)" -msgstr "無線網絡 (%s)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "VPN 連線「%s」需要使用者驗證…" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet.c:2617 #, c-format -msgid "Wireless Network (%s)" -msgstr "無線網絡 (%s)" - -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "無線網絡" - -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "無線網絡已停用" +msgid "Requesting a VPN address for '%s'..." +msgstr "正在要求 VPN 提供「%s」的網絡位址…" -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "無線網絡已被硬件開關停用" +#: ../src/applet.c:2620 +#, c-format +msgid "VPN connection '%s' active" +msgstr "VPN 連線「%s」在使用中" -#: ../src/applet-device-wifi.c:902 -msgid "More networks" -msgstr "更多網絡" +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "沒有網絡連接" -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" -msgstr "可用的無線網絡" - -#: ../src/applet-device-wifi.c:1082 -msgid "Use the network menu to connect to a wireless network" -msgstr "使用網絡選單來連線到無線網絡" +#: ../src/applet.c:3361 +msgid "NetworkManager Applet" +msgstr "NetworkManager 面板程式" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:901 -msgid "Don't show this message again" -msgstr "不要再顯示這個訊息" +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "可用" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "你現在已連線到無線網絡「%s」。" +msgid "You are now connected to '%s'." +msgstr "你現在已連線至「%s」。" -#: ../src/applet-device-wifi.c:1308 -#, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "正在準備無線網絡連線「%s」…" +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "已建立連線" -#: ../src/applet-device-wifi.c:1311 -#, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "正在設定無線網絡連線「%s」…" +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "你現在已連線至流動寬頻網絡。" -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "無線網絡「%s」要求使用者驗證…" +msgid "Preparing mobile broadband connection '%s'..." +msgstr "正在準備流動寬頻連線「%s」…" -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "正在要求無線網絡「%s」提供網絡位址…" +msgid "Configuring mobile broadband connection '%s'..." +msgstr "正在設定流動寬頻連線「%s」…" -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "無線網絡連線「%s」在使用中: %s (%d%%)" +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "流動寬頻連線「%s」需要使用者驗證…" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "無線網絡連線「%s」在使用中" +msgid "Mobile broadband connection '%s' active" +msgstr "流動寬頻連線「%s」在使用中" -#: ../src/applet-device-wimax.c:231 -#, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "WiMAX 流動寬頻 (%s)" +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:700 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr "WiMAX 流動寬頻" +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 +#, c-format +msgid "Mobile Broadband (%s)" +msgstr "流動寬頻 (%s)" -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "WiMAX 已停用" +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:87 +#: ../src/connection-editor/page-mobile.c:380 +msgid "Mobile Broadband" +msgstr "流動寬頻" -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX 已被硬件開關停用" +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "新的流動寬頻 (CDMA) 連線…" -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "你現在已連線至 WiMAX 網絡。" +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "你現在已連線至 CDMA 網絡。" -#: ../src/applet-dialogs.c:57 -msgid "Error displaying connection information:" -msgstr "顯示連線資訊發生錯誤:" +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "流動寬頻連線「%s」在使用中:(%d%%%s%s)" -#: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "漫遊" -#: ../src/applet-dialogs.c:111 -msgid "Dynamic WEP" -msgstr "動態 WEP" +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "CDMA 網絡。" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "你現在已註冊至家用網絡。" -#: ../src/applet-dialogs.c:244 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "你現在已註冊至漫遊網絡。" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "沒有" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "自動乙太網絡" -#: ../src/applet-dialogs.c:352 ../src/applet-dialogs.c:490 +#: ../src/applet-device-ethernet.c:205 #, c-format -msgid "%u Mb/s" -msgstr "%u Mb/s" - -#: ../src/applet-dialogs.c:354 ../src/applet-dialogs.c:492 -msgctxt "Speed" -msgid "Unknown" -msgstr "不明" +msgid "Ethernet Networks (%s)" +msgstr "有線網絡 (%s)" -#: ../src/applet-dialogs.c:367 +#: ../src/applet-device-ethernet.c:207 #, c-format -msgid "%d dB" -msgstr "%d dB" +msgid "Ethernet Network (%s)" +msgstr "有線網絡 (%s)" -#: ../src/applet-dialogs.c:369 -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "不明" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "有線網絡" -#: ../src/applet-dialogs.c:381 -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "不明" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "有線網絡" + +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "你現在已連線至有線網絡。" -#: ../src/applet-dialogs.c:416 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "Ethernet (%s)" -msgstr "乙太網絡 (%s)" +msgid "Preparing ethernet network connection '%s'..." +msgstr "正在準備有線網絡連線「%s」…" -#: ../src/applet-dialogs.c:419 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "802.11 WiFi (%s)" -msgstr "802.11 WiFi (%s)" +msgid "Configuring ethernet network connection '%s'..." +msgstr "正在設定有線網絡連線「%s」…" -#: ../src/applet-dialogs.c:426 +#: ../src/applet-device-ethernet.c:306 #, c-format -msgid "GSM (%s)" -msgstr "GSM (%s)" +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "有線網絡連線「%s」需要使用者驗證…" -#: ../src/applet-dialogs.c:428 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "CDMA (%s)" -msgstr "CDMA (%s)" +msgid "Requesting an ethernet network address for '%s'..." +msgstr "正要求有線網絡「%s」提供網絡位址…" -#: ../src/applet-dialogs.c:432 +#: ../src/applet-device-ethernet.c:313 #, c-format -msgid "WiMAX (%s)" -msgstr "WiMAX (%s)" +msgid "Ethernet network connection '%s' active" +msgstr "有線網絡連線「%s」在使用中" -#. --- General --- -#: ../src/applet-dialogs.c:438 ../src/applet-dialogs.c:797 -msgid "General" -msgstr "一般" +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "DSL 驗證" -#: ../src/applet-dialogs.c:442 -msgid "Interface:" -msgstr "介面:" +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:703 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" -#: ../src/applet-dialogs.c:458 -msgid "Hardware Address:" -msgstr "硬件位址:" +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "新的流動寬頻 (GSM) 連線…" -#. Driver -#: ../src/applet-dialogs.c:466 -msgid "Driver:" -msgstr "驅動程式:" +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "你現在已連線至 GSM 網絡。" -#: ../src/applet-dialogs.c:495 -msgid "Speed:" -msgstr "速度:" +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "需要 PIN 碼" -#: ../src/applet-dialogs.c:505 -msgid "Security:" -msgstr "安全性:" +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "這個流動寬頻裝置需要 PIN 碼" -#: ../src/applet-dialogs.c:518 +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "SIM 卡「%s」在「%s」的 PIN 碼" + +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "PIN 碼錯誤,請聯絡你的供應商。" + +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "PUK 碼錯誤,請聯絡你的供應商。" + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "發送解鎖用的密碼…" + +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "需要解鎖 SIM PIN 碼" + +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "需要解鎖 SIM PIN 碼" + +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "要使用流動寬頻裝置「%s」之前,需要 SIM PIN 碼。" + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "PIN 碼:" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "顯示 PIN 碼" + +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "需要解鎖 SIM PUK 碼" + +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "需要解鎖 SIM PUK 碼" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "要使用流動寬頻裝置「%s」之前,需要 SIM PUK 碼。" + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "PUK 碼:" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "新的 PIN 碼:" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "重新輸入 PIN 碼:" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "顯示 PIN/PUK 碼" + +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "GSM 網絡。" + +#: ../src/applet-device-wifi.c:97 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "連接到隱藏的 Wi-Fi 網絡(_C)…" + +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "建立新的 Wi-Fi 網絡(_N)…" + +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(無)" + +#: ../src/applet-device-wifi.c:790 +#, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "Wi-Fi 網絡 (%s)" + +#: ../src/applet-device-wifi.c:792 +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Wi-Fi 網絡 (%s)" + +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Wi-Fi 網絡" + +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "Wi-Fi 已停用" + +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Wi-Fi 已被硬件開關停用" + +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "更多網絡" + +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "有 Wi-Fi 網絡可用" + +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "使用網絡選單來連線到 Wi-Fi 網絡" + +#: ../src/applet-device-wifi.c:1263 +#, c-format +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "你現在已連線至 Wi-Fi 網絡「%s」。" + +#: ../src/applet-device-wifi.c:1294 +#, c-format +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "正在準備 Wi-Fi 網絡連線「%s」…" + +#: ../src/applet-device-wifi.c:1297 +#, c-format +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "正在設定 Wi-Fi 網絡連線「%s」…" + +#: ../src/applet-device-wifi.c:1300 +#, c-format +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "Wi-Fi 網絡連線「%s」需要使用者驗證…" + +#: ../src/applet-device-wifi.c:1303 +#, c-format +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "正在要求提供「%s」的 Wi-Fi 網絡位址…" + +#: ../src/applet-device-wifi.c:1324 +#, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Wi-Fi 網絡連線「%s」在使用中: %s (%d%%)" + +#: ../src/applet-device-wifi.c:1329 +#, c-format +msgid "Wi-Fi network connection '%s' active" +msgstr "Wi-Fi 網絡連線「%s」在使用中" + +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "無法使用連線" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "無法加入新連線" + +#: ../src/applet-device-wimax.c:231 +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "WiMAX 流動寬頻 (%s)" + +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "WiMAX 流動寬頻" + +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "WiMAX 已停用" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX 已被硬件開關停用" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "你現在已連線至 WiMAX 網絡。" + +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "顯示連線資訊發生錯誤:" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" + +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "動態 WEP" + +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" + +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "沒有" + +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (預設值)" + +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 +#, c-format +msgid "%u Mb/s" +msgstr "%u Mb/s" + +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "不明" + +#: ../src/applet-dialogs.c:361 +#, c-format +msgid "%d dB" +msgstr "%d dB" + +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "不明" + +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "不明" + +#: ../src/applet-dialogs.c:410 +#, c-format +msgid "Ethernet (%s)" +msgstr "乙太網絡 (%s)" + +#: ../src/applet-dialogs.c:413 +#, c-format +msgid "802.11 WiFi (%s)" +msgstr "802.11 WiFi (%s)" + +#: ../src/applet-dialogs.c:420 +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" + +#: ../src/applet-dialogs.c:422 +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" + +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" + +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "一般" + +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "介面:" + +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "硬件位址:" + +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "驅動程式:" + +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "速度:" + +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "安全性:" + +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:531 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:548 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:559 ../src/applet-dialogs.c:666 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP 位址:" -#: ../src/applet-dialogs.c:561 ../src/applet-dialogs.c:577 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "不明" -#: ../src/applet-dialogs.c:575 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "廣播位址:" #. Prefix -#: ../src/applet-dialogs.c:584 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "子網絡遮罩:" -#: ../src/applet-dialogs.c:586 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "不明" -#: ../src/applet-dialogs.c:594 ../src/applet-dialogs.c:681 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "預設路由:" -#: ../src/applet-dialogs.c:606 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "主要 DNS:" -#: ../src/applet-dialogs.c:615 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "次要 DNS:" -#: ../src/applet-dialogs.c:625 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "第三 DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:640 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:649 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "已忽略" -#: ../src/applet-dialogs.c:802 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "VPN 類型:" -#: ../src/applet-dialogs.c:809 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "VPN 閘道器:" -#: ../src/applet-dialogs.c:815 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "VPN 使用者名稱:" -#: ../src/applet-dialogs.c:821 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "VPN 旗幟:" -#: ../src/applet-dialogs.c:827 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "基礎連線:" -#: ../src/applet-dialogs.c:829 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "不明" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:892 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "找不到有效的使用中連線!" -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -667,869 +1033,959 @@ "Copyright © 2005-2008 Novell, Inc.\n" "與許多其他社羣貢獻者與翻譯者" -#: ../src/applet-dialogs.c:948 +#: ../src/applet-dialogs.c:942 msgid "" "Notification area applet for managing your network devices and connections." msgstr "用來管理你的網絡裝置與連線的通知區面板程式。" -#: ../src/applet-dialogs.c:950 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "NetworkManager 網站" -#: ../src/applet-dialogs.c:965 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "遺失資源" -#: ../src/applet-dialogs.c:990 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "流動寬頻網絡密碼" -#: ../src/applet-dialogs.c:999 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "連線至「%s」需要密碼。" -#: ../src/applet-dialogs.c:1018 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "密碼:" -#: ../src/applet.c:990 -#, c-format +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為網絡連線被中斷了。" +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." +msgstr "用來在網絡上區別你的電腦的 IP 位址。請按下「新增」按鈕,加入 IP 位址。" -#: ../src/applet.c:993 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為 VPN 服務意外的停止了。" +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "Ig_nore automatically obtained routes" +msgstr "忽略自動獲得的路由(_N)" -#: ../src/applet.c:996 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為 VPN 服務傳回無效的組態。" +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +msgid "_Use this connection only for resources on its network" +msgstr "只在使用這個連線的網絡資源時,才使用此連線(_U)" -#: ../src/applet.c:999 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為連線的嘗試已逾時。" - -#: ../src/applet.c:1002 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為 VPN 服務沒有及時啟動。" - -#: ../src/applet.c:1005 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為 VPN 服務啟動失敗。" - -#: ../src/applet.c:1008 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為沒有有效的 VPN 服務。" - -#: ../src/applet.c:1011 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為無效的 VPN 機密。" - -#: ../src/applet.c:1018 -#, c-format +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"VPN 連線「%s」失敗。" +"If enabled, this connection will never be used as the default network " +"connection." +msgstr "如果啟用,這個連線將永遠不會做為預設網絡連線。" -#: ../src/applet.c:1036 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為網絡連線中斷了。" +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " -#: ../src/applet.c:1039 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為 VPN 服務已停止。" +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "請選擇連線類型" -#: ../src/applet.c:1045 -#, c-format +#: ../src/connection-editor/ce-new-connection.ui.h:3 msgid "" +"Select the type of connection you wish to create.\n" "\n" -"The VPN connection '%s' disconnected." +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." msgstr "" +"選擇你想要建立的連線類型。\n" "\n" -"VPN 連線「%s」已斷線。" - -#: ../src/applet.c:1079 -msgid "VPN Login Message" -msgstr "VPN 登錄訊息" - -#: ../src/applet.c:1085 ../src/applet.c:1093 ../src/applet.c:1143 -msgid "VPN Connection Failed" -msgstr "VPN 連線失敗" +"如果要建立 VPN,而你想要建立的 VPN 連線類型沒有出現在清單中,可能是沒有安裝正確的 VPN 外掛程式。" -#: ../src/applet.c:1150 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為 VPN 服務啟動失敗。\n" -"\n" -"%s" - -#: ../src/applet.c:1153 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"VPN 連線「%s」啟動失敗。\n" -"\n" -"%s" - -#: ../src/applet.c:1473 -msgid "device not ready (firmware missing)" -msgstr "裝置尚未就緒 (缺少韌體)" - -#: ../src/applet.c:1475 -msgid "device not ready" -msgstr "裝置尚未就緒" - -#: ../src/applet.c:1501 -msgid "Disconnect" -msgstr "斷線" - -#: ../src/applet.c:1515 -msgid "device not managed" -msgstr "裝置無法管理" - -#: ../src/applet.c:1559 -msgid "No network devices available" -msgstr "沒有可用的網絡裝置" - -#: ../src/applet.c:1647 -msgid "_VPN Connections" -msgstr "_VPN 連線" - -#: ../src/applet.c:1704 -msgid "_Configure VPN..." -msgstr "設置 VPN(_C)…" - -#: ../src/applet.c:1708 -msgid "_Disconnect VPN" -msgstr "與 VPN 斷線(_D)" - -#: ../src/applet.c:1806 -msgid "NetworkManager is not running..." -msgstr "NetworkManager 沒有執行…." - -#: ../src/applet.c:1811 ../src/applet.c:2604 -msgid "Networking disabled" -msgstr "網絡已停用" - -#. 'Enable Networking' item -#: ../src/applet.c:2032 -msgid "Enable _Networking" -msgstr "啟用網絡(_N)" - -#. 'Enable Wireless' item -#: ../src/applet.c:2041 -msgid "Enable _Wireless" -msgstr "啟用無線網絡(_W)" - -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2050 -msgid "Enable _Mobile Broadband" -msgstr "啟用流動寬頻(_M)" - -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2059 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "啟用 WiMA_X 流動寬頻" - -#. Toggle notifications item -#: ../src/applet.c:2070 -msgid "Enable N_otifications" -msgstr "啟用通知功能(_O)" - -#. 'Connection Information' item -#: ../src/applet.c:2081 -msgid "Connection _Information" -msgstr "連線資訊(_I)" - -#. 'Edit Connections...' item -#: ../src/applet.c:2091 -msgid "Edit Connections..." -msgstr "編輯連線…" - -#. Help item -#: ../src/applet.c:2105 -msgid "_Help" -msgstr "求助(_H)" - -#. About item -#: ../src/applet.c:2114 -msgid "_About" -msgstr "關於(_A)" - -#: ../src/applet.c:2291 -msgid "Disconnected" -msgstr "已斷線" - -#: ../src/applet.c:2292 -msgid "The network connection has been disconnected." -msgstr "網絡連線已中斷。" - -#: ../src/applet.c:2473 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "正在準備網絡連線「%s」…" - -#: ../src/applet.c:2476 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "網絡連線「%s」需要使用者驗證…" - -#: ../src/applet.c:2482 -#, c-format -msgid "Network connection '%s' active" -msgstr "網絡連線「%s」在使用中" - -#: ../src/applet.c:2560 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "正在啟動 VPN 連線「%s」…" - -#: ../src/applet.c:2563 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "VPN 連線「%s」需要使用者驗證…" - -#: ../src/applet.c:2566 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "正在要求 VPN 提供「%s」的網絡位址…" - -#: ../src/applet.c:2569 -#, c-format -msgid "VPN connection '%s' active" -msgstr "VPN 連線「%s」在使用中" - -#: ../src/applet.c:2608 -msgid "No network connection" -msgstr "沒有網絡連接" - -#: ../src/applet.c:3258 -msgid "NetworkManager Applet" -msgstr "NetworkManager 面板程式" - -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "自動解鎖這個裝置" - -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "解鎖(_U)" - -#: ../src/info.ui.h:1 -msgid "Active Network Connections" -msgstr "啟用網絡連線" - -#: ../src/info.ui.h:2 -msgid "Connection Information" -msgstr "連線資訊" - -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "有線網絡 802.1X 驗證" - -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:4 -msgid "_Network name:" -msgstr "網絡名稱(_N):" +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "建立…" #: ../src/connection-editor/ce-page.c:72 msgid "automatic" msgstr "自動" -#: ../src/connection-editor/ce-page.c:310 +#: ../src/connection-editor/ce-page.c:294 msgid "Failed to update connection secrets due to an unknown error." msgstr "由於不明的錯誤使連線機密的更新失敗。" -#: ../src/connection-editor/ce-ip4-routes.ui.h:1 -#: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 -msgid "" -"IP addresses identify your computer on the network. Click the \"Add\" " -"button to add an IP address." -msgstr "用來在網絡上區別你的電腦的 IP 位址。請按下「新增」按鈕,加入 IP 位址。" +#: ../src/connection-editor/ce-page-bond.ui.h:1 +#, fuzzy +msgid "Round-robin" +msgstr "四捨五入位數" + +#: ../src/connection-editor/ce-page-bond.ui.h:2 +#, fuzzy +msgid "Active backup" +msgstr "全部備份(_A)" + +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" +msgstr "XOR" + +#: ../src/connection-editor/ce-page-bond.ui.h:4 +msgid "Broadcast" +msgstr "廣播" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "802.3ad" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" +msgstr "適應性傳輸負載平衡" + +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" +msgstr "適應性負載平衡" + +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "MII (建議值)" + +#: ../src/connection-editor/ce-page-bond.ui.h:9 +msgid "ARP" +msgstr "ARP" + +#: ../src/connection-editor/ce-page-bond.ui.h:10 +#, fuzzy +#| msgid "Base Connection:" +msgid "Bonded _connections:" +msgstr "VPN 連線" + +#: ../src/connection-editor/ce-page-bond.ui.h:11 +msgid "_Mode:" +msgstr "模式(_M):" + +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "編輯(_E)" -#: ../src/connection-editor/ce-ip4-routes.ui.h:2 -#: ../src/connection-editor/ce-ip6-routes.ui.h:2 -msgid "" -"If enabled, this connection will never be used as the default network " -"connection." -msgstr "如果啟用,這個連線將永遠不會做為預設網絡連線。" +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "刪除(_D)" -#: ../src/connection-editor/ce-ip4-routes.ui.h:3 -#: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" -msgstr "忽略自動獲得的路由(_N)" - -#: ../src/connection-editor/ce-ip4-routes.ui.h:4 -#: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "_Use this connection only for resources on its network" -msgstr "只在使用這個連線的網絡資源時,才使用此連線(_U)" +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "監控頻率(_F):" + +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "毫秒" + +#: ../src/connection-editor/ce-page-bond.ui.h:16 +msgid "_Interface name:" +msgstr "介面名稱(_I):" + +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "連線監控(_L):" + +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "ARP 目標(_T):" + +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "" +"An IP address, or a comma-separated list of IP addresses, to look for when " +"checking the link status." +msgstr "一個 IP 位址,或以逗號分隔的 IP 位址清單,這是在檢查連線狀態時查詢用的。" + +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "連線延遲(_U):" + +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "斷線延遲(_D):" #: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 #: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 +#: ../src/wireless-security/eap-method-simple.ui.h:1 #: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "顯示密碼(_W)" +msgid "_Username:" +msgstr "使用者名稱(_U):" #: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "密碼(_P):" - -#: ../src/connection-editor/ce-page-dsl.ui.h:3 msgid "_Service:" msgstr "服務(_S):" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 +#: ../src/connection-editor/ce-page-dsl.ui.h:3 #: ../src/wireless-security/eap-method-leap.ui.h:3 #: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 #: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "使用者名稱(_U):" +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "顯示密碼(_W)" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "密碼(_P):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 #: ../src/connection-editor/ce-page-ip4.ui.h:1 #: ../src/connection-editor/ce-page-ip6.ui.h:1 -msgid "Addresses" -msgstr "地址" - -#: ../src/connection-editor/ce-page-ip4.ui.h:2 -#: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 #: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 +#: ../src/wireless-security/eap-method-peap.ui.h:2 msgid "Automatic" msgstr "自動" -#: ../src/connection-editor/ce-page-ip4.ui.h:3 -#: ../src/connection-editor/ce-page-ip6.ui.h:3 -msgid "Automatic with manual DNS settings" -msgstr "自動使用手動 DNS 設定值" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "雙絞線 (TP)" -#: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" -msgstr "D_HCP 用戶端 ID:" +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "附加單位介面 (AUI)" -#: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "" -"Domains used when resolving host names. Use commas to separate multiple " -"domains." -msgstr "用來解析主機名稱的網域。請使用逗號隔開不同的網域。" +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" -#: ../src/connection-editor/ce-page-ip4.ui.h:7 -#: ../src/connection-editor/ce-page-ip6.ui.h:6 +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "媒體獨立介面 (MII)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "連接埠(_P):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "速度(_S):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "全雙工(_X)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "自動協議(_O)" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "裝置的 MAC 位址(_D):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "複製的 MAC 位址(_L):" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 msgid "" -"IP addresses of domain name servers used to resolve host names. Use commas " -"to separate multiple domain name server addresses." -msgstr "網域名稱伺服器的 IP 位址,用來解析主機名稱。請使用逗號來分開多個網域伺服器的位址。" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "在這裏輸入的 MAC 位址會成為這個連線使用的網絡裝置的硬件位址。這個功能也稱為 MAC 複製或偽裝。例如:00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" + +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "位元組" -#: ../src/connection-editor/ce-page-ip4.ui.h:8 -#: ../src/connection-editor/ce-page-ip6.ui.h:7 -msgid "Link-Local" -msgstr "本機連線" +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "傳輸模式(_T):" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagram" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "成功連線" -#: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 +#: ../src/connection-editor/ce-page-ip4.ui.h:2 +#: ../src/connection-editor/ce-page-ip6.ui.h:2 +msgid "Automatic with manual DNS settings" +msgstr "自動使用手動 DNS 設定值" + +#: ../src/connection-editor/ce-page-ip4.ui.h:3 +#: ../src/connection-editor/ce-page-ip6.ui.h:3 #: ../src/connection-editor/page-ip4.c:169 #: ../src/connection-editor/page-ip6.c:191 msgid "Manual" msgstr "手動" -#: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv_4 addressing for this connection to complete" -msgstr "需要 IPv_4 addressing 才可完成此連線" - -#: ../src/connection-editor/ce-page-ip4.ui.h:11 -#: ../src/connection-editor/ce-page-ip6.ui.h:10 -msgid "S_earch domains:" -msgstr "搜尋網域(_E):" +#: ../src/connection-editor/ce-page-ip4.ui.h:4 +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "本機連線" -#: ../src/connection-editor/ce-page-ip4.ui.h:12 -#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/ce-page-ip4.ui.h:5 +#: ../src/connection-editor/ce-page-ip6.ui.h:5 #: ../src/connection-editor/page-ip4.c:187 #: ../src/connection-editor/page-ip6.c:211 msgid "Shared to other computers" msgstr "分享給其他電腦" -#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 +#: ../src/connection-editor/ce-page-ip6.ui.h:6 +msgid "_Method:" +msgstr "方法(_M):" + +#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip6.ui.h:7 +msgid "Addresses" +msgstr "地址" + +#: ../src/connection-editor/ce-page-ip4.ui.h:9 msgid "" "The DHCP client identifier allows the network administrator to customize " "your computer's configuration. If you wish to use a DHCP client identifier, " "enter it here." msgstr "DHCP 用戶端識別能讓網管人員客製你電腦上的配置。如果你想要使用 DHCP 用戶端識別,請在此輸入。" -#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip4.ui.h:10 +#: ../src/connection-editor/ce-page-ip6.ui.h:9 msgid "" -"When connecting to IPv6-capable networks, allows the connection to complete " -"if IPv4 configuration fails but IPv6 configuration succeeds." -msgstr "當連至可使用 IPv6 的網絡時,若 IPv4 配置失敗,不過 IPv6 配置卻成功的話,請允許連線完成。" +"Domains used when resolving host names. Use commas to separate multiple " +"domains." +msgstr "用來解析主機名稱的網域。請使用逗號隔開不同的網域。" -#: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 +#: ../src/connection-editor/ce-page-ip4.ui.h:11 +msgid "D_HCP client ID:" +msgstr "D_HCP 用戶端 ID:" + +#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 +msgid "S_earch domains:" +msgstr "搜尋網域(_E):" + +#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip6.ui.h:11 +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 msgid "_DNS servers:" msgstr "_DNS 伺服器:" +#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip6.ui.h:12 +msgid "" +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." +msgstr "網域名稱伺服器的 IP 位址,用來解析主機名稱。請使用逗號來分開多個網域伺服器的位址。" + +#: ../src/connection-editor/ce-page-ip4.ui.h:15 +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "需要 IPv_4 addressing 才可完成此連線" + #: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Method:" -msgstr "方法(_M):" +msgid "" +"When connecting to IPv6-capable networks, allows the connection to complete " +"if IPv4 configuration fails but IPv6 configuration succeeds." +msgstr "當連至可使用 IPv6 的網絡時,若 IPv4 配置失敗,不過 IPv6 配置卻成功的話,請允許連線完成。" #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 msgid "_Routes…" msgstr "路由(_R)…" -#: ../src/connection-editor/ce-page-ip6.ui.h:9 +#: ../src/connection-editor/ce-page-ip6.ui.h:13 msgid "Require IPv_6 addressing for this connection to complete" msgstr "需要 IPv_6 addressing 才可完成此連線" -#: ../src/connection-editor/ce-page-ip6.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "" "When connecting to IPv4-capable networks, allows the connection to complete " "if IPv6 configuration fails but IPv4 configuration succeeds." msgstr "當連至可使用 IPv4 的網絡時,若 IPv6 配置失敗,不過 IPv4 配置卻成功的話,請允許連線完成。" #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "任何" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -msgid "Advanced" -msgstr "進階" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -msgid "Allow _roaming if home network is not available" -msgstr "如果家用網絡無法使用,允許使用漫遊(_R)" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "偏好 3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "任何" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "偏好 2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 msgid "Basic" msgstr "基本" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "更改…" - -#: ../src/connection-editor/ce-page-mobile.ui.h:8 -msgid "N_etwork ID:" -msgstr "網絡 ID(_E):" - -#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "數字(_M):" #: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "P_IN:" -msgstr "P_IN:" +msgid "Advanced" +msgstr "進階" #: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "偏好 2G (GPRS/EDGE)" +msgid "_APN:" +msgstr "_APN:" #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "偏好 3G (UMTS/HSPA)" +msgid "N_etwork ID:" +msgstr "網絡 ID(_E):" #: ../src/connection-editor/ce-page-mobile.ui.h:13 -msgid "Sho_w passwords" -msgstr "顯示密碼(_W)" +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "類型(_T):" #: ../src/connection-editor/ce-page-mobile.ui.h:14 -msgid "_APN:" -msgstr "_APN:" +msgid "Change..." +msgstr "更改…" + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +msgid "P_IN:" +msgstr "P_IN:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "類型(_T):" +msgid "Allow _roaming if home network is not available" +msgstr "如果家用網絡無法使用,允許使用漫遊(_R)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "顯示密碼(_W)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:1 +msgid "Authentication" +msgstr "驗證" + +#: ../src/connection-editor/ce-page-ppp.ui.h:2 +msgid "Allowed methods:" +msgstr "允許的方式:" + +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "設定方法(_M)…" + +#: ../src/connection-editor/ce-page-ppp.ui.h:4 +msgid "Compression" +msgstr "壓縮" + +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "使用點對點式加密 (MPPE)(_U)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:6 +msgid "_Require 128-bit encryption" +msgstr "需要 128-位元加密(_R)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:7 +msgid "Use _stateful MPPE" +msgstr "使用有狀態的 MPPE(_S)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:8 +msgid "Allow _BSD data compression" +msgstr "允許 _BSD 資料壓縮" + +#: ../src/connection-editor/ce-page-ppp.ui.h:9 +msgid "Allow _Deflate data compression" +msgstr "允許 _Deflate 資料壓縮" + +#: ../src/connection-editor/ce-page-ppp.ui.h:10 +msgid "Use TCP _header compression" +msgstr "使用 TCP 標頭壓縮(_H)" + +#: ../src/connection-editor/ce-page-ppp.ui.h:11 +msgid "Echo" +msgstr "回響" + +#: ../src/connection-editor/ce-page-ppp.ui.h:12 +msgid "Send PPP _echo packets" +msgstr "傳送 PPP 回音封包(_E)" + +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "安全性(_E):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:2 +msgid "A (5 GHz)" +msgstr "A (5 GHz)" + +#: ../src/connection-editor/ce-page-wifi.ui.h:3 +msgid "B/G (2.4 GHz)" +msgstr "B/G (2.4 GHz)" + +#: ../src/connection-editor/ce-page-wifi.ui.h:4 +msgid "Infrastructure" +msgstr "基礎架構" + +#: ../src/connection-editor/ce-page-wifi.ui.h:5 +msgid "Ad-hoc" +msgstr "Ad-hoc" + +#: ../src/connection-editor/ce-page-wifi.ui.h:11 +msgid "mW" +msgstr "mW" + +#: ../src/connection-editor/ce-page-wifi.ui.h:12 +msgid "Transmission po_wer:" +msgstr "傳輸耗能(_W):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:13 +msgid "Mb/s" +msgstr "Mb/s" + +#: ../src/connection-editor/ce-page-wifi.ui.h:14 +msgid "_Rate:" +msgstr "速率(_R):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:15 +msgid "" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" +msgstr "此選項會將此連線鎖定至在此所輸入的 BSSID 所指定的 Wi-Fi 存取點(AP)。例如:00:11:22:33:44:55" + +#: ../src/connection-editor/ce-page-wifi.ui.h:16 +msgid "_BSSID:" +msgstr "_BSSID:" + +#: ../src/connection-editor/ce-page-wifi.ui.h:17 +msgid "C_hannel:" +msgstr "頻道(_H):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:18 +msgid "Ban_d:" +msgstr "頻寬(_D):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:19 +msgid "M_ode:" +msgstr "模式(_O):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:20 +msgid "SS_ID:" +msgstr "SS_ID:" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 +msgid "Allowed Authentication Methods" +msgstr "允許的驗證方式" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 +msgid "_EAP" +msgstr "_EAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +msgid "Extensible Authentication Protocol" +msgstr "可延伸的驗證通訊協定" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "_PAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +msgid "Password Authentication Protocol" +msgstr "密碼驗證通訊協定" -#: ../src/connection-editor/ce-page-ppp.ui.h:1 -msgid "Allow _BSD data compression" -msgstr "允許 _BSD 資料壓縮" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 +msgid "C_HAP" +msgstr "C_HAP" -#: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "允許 _Deflate 資料壓縮" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 +msgid "Challenge Handshake Authentication Protocol" +msgstr "Challenge Handshake 驗證通訊協定" -#: ../src/connection-editor/ce-page-ppp.ui.h:3 -msgid "Allowed methods:" -msgstr "允許的方式:" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "_MSCHAP" +msgstr "_MSCHAP" -#: ../src/connection-editor/ce-page-ppp.ui.h:4 -msgid "Authentication" -msgstr "驗證" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft Challenge Handshake 驗證通訊協定" -#: ../src/connection-editor/ce-page-ppp.ui.h:5 -msgid "Compression" -msgstr "壓縮" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" -#: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" -msgstr "設定方法(_M)…" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft Challenge Handshake 驗證通訊協定第 2 版" -#: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" -msgstr "回響" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 +msgid "" +"In most cases, the provider's PPP servers will support all authentication " +"methods. If connections fail, try disabling support for some methods." +msgstr "在大多數情況下,網絡供應者的 PPP 伺服器會支援所有的驗證方法。如果連線失敗,請嘗試停用某些方法的支援。" -#: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" -msgstr "傳送 PPP 回音封包(_E)" +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "地址" -#: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" -msgstr "使用 TCP 標頭壓縮(_H)" +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "網絡遮罩" -#: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" -msgstr "使用有狀態的 MPPE(_S)" +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "通訊閘" -#: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" -msgstr "需要 128-位元加密(_R)" +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "公制" -#: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "使用點對點式加密 (MPPE)(_U)" +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "前綴" -#: ../src/connection-editor/ce-page-wired.ui.h:1 -msgid "1 Gb/s" -msgstr "1 Gb/s" +#: ../src/connection-editor/new-connection.c:77 +#: ../src/connection-editor/page-ethernet.c:274 +msgid "Ethernet" +msgstr "有線網絡" -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 Gb/s" +#: ../src/connection-editor/new-connection.c:82 +#: ../src/connection-editor/page-wifi.c:463 +msgid "Wi-Fi" +msgstr "Wi-Fi" -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "10 Mb/s" -msgstr "10 Mb/s" +#: ../src/connection-editor/new-connection.c:92 +#: ../src/connection-editor/page-wimax.c:158 ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "100 Mb/s" -msgstr "100 Mb/s" +#: ../src/connection-editor/new-connection.c:97 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" -msgstr "附加單位介面 (AUI)" +#: ../src/connection-editor/new-connection.c:102 +#: ../src/connection-editor/page-infiniband.c:190 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:107 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "" -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "自動協議(_O)" +#: ../src/connection-editor/new-connection.c:119 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "VPN" -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" +#: ../src/connection-editor/new-connection.c:252 +msgid "Import a saved VPN configuration..." +msgstr "匯入已儲存的 VPN 組態…" -#: ../src/connection-editor/ce-page-wired.ui.h:9 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "C_loned MAC address:" -msgstr "複製的 MAC 位址(_L):" +#: ../src/connection-editor/new-connection.c:274 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "由於不明的錯誤使連線編輯器對話盒無法初始化。" -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "Full duple_x" -msgstr "全雙工(_X)" +#: ../src/connection-editor/new-connection.c:283 +msgid "Could not create new connection" +msgstr "無法建立新連線" -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "媒體獨立介面 (MII)" +#: ../src/connection-editor/new-connection.c:419 +msgid "Connection delete failed" +msgstr "刪除連線失敗" -#: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:12 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "在這裏輸入的 MAC 位址會成為這個連線使用的網絡裝置的硬件位址。這個功能也稱為 MAC 複製或偽裝。例如:00:11:22:33:44:55" +#: ../src/connection-editor/new-connection.c:466 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "你確定要刪除連線 %s ?" -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Twisted Pair (TP)" -msgstr "雙絞線 (TP)" +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "編輯 %s" -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 -msgid "_Device MAC address:" -msgstr "裝置的 MAC 位址(_D):" +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "編輯未命名的連線" -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:17 -msgid "_MTU:" -msgstr "_MTU:" +#: ../src/connection-editor/nm-connection-editor.c:301 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "連線編輯器找不到一些需要的資源(找不到 .ui 檔)。" -#: ../src/connection-editor/ce-page-wired.ui.h:16 -msgid "_Port:" -msgstr "連接埠(_P):" +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "儲存(_S)" -#: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Speed:" -msgstr "速度(_S):" +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "儲存任何對這個連線進行的更改。" -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:19 -msgid "bytes" -msgstr "位元組" +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "儲存(_S)…" -#: ../src/connection-editor/ce-page-wireless.ui.h:1 -msgid "A (5 GHz)" -msgstr "A (5 GHz)" +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "驗證以儲存這個連線給此電腦上的所有使用者。" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "Ad-hoc" +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not create connection" +msgstr "無法建立連線" -#: ../src/connection-editor/ce-page-wireless.ui.h:4 -msgid "B/G (2.4 GHz)" -msgstr "B/G (2.4 GHz)" +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "無法編輯連線" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" -msgstr "頻寬(_D):" +#: ../src/connection-editor/nm-connection-editor.c:449 +msgid "Unknown error creating connection editor dialog." +msgstr "建立連線編輯器對話盒時發生不明錯誤。" -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "頻道(_H):" +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "儲存連線時錯誤" -#: ../src/connection-editor/ce-page-wireless.ui.h:8 -msgid "Infrastructure" -msgstr "基礎架構" +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "屬性「%s」/「%s」是無效的:%d" -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" -msgstr "模式(_O):" +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "初始化編輯器時發生錯誤" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 -msgid "Mb/s" -msgstr "Mb/s" +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "新增連線失敗" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "SS_ID:" -msgstr "SS_ID:" +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "連線名稱(_N):" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 -msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" -msgstr "此選項會將此連線鎖定至在此所輸入的 BSSID 所指定的無限存取點(AP)。例如:00:11:22:33:44:55" +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "自動連線(_A)" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 -msgid "Transmission po_wer:" -msgstr "傳輸耗能(_W):" +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "所有使用者皆可用" -#: ../src/connection-editor/ce-page-wireless.ui.h:15 -msgid "_BSSID:" -msgstr "_BSSID:" +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "匯出(_E)…" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_Rate:" -msgstr "速率(_R):" +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "永不" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "mW" -msgstr "mW" +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "現在" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "安全性(_E):" +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d 分鐘以前" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 -msgid "Allowed Authentication Methods" -msgstr "允許的驗證方式" +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d 小時以前" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 -msgid "C_HAP" -msgstr "C_HAP" +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d 天以前" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 -msgid "Challenge Handshake Authentication Protocol" -msgstr "Challenge Handshake 驗證通訊協定" +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d 個月以前" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 -msgid "Extensible Authentication Protocol" -msgstr "可延伸的驗證通訊協定" +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "%d 年以前" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 -msgid "" -"In most cases, the provider's PPP servers will support all authentication " -"methods. If connections fail, try disabling support for some methods." -msgstr "在大多數情況下,網絡供應者的 PPP 伺服器會支援所有的驗證方法。如果連線失敗,請嘗試停用某些方法的支援。" +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "名稱" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "最後使用的" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft Challenge Handshake 驗證通訊協定" +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "編輯選取的連線" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft Challenge Handshake 驗證通訊協定第 2 版" +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "編輯(_E)…" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" -msgstr "密碼驗證通訊協定" +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "驗證以編輯選取的連線" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "_EAP" +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "刪除選取的連線" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "_MSCHAP" +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "刪除(_D)…" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "_PAP" +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "驗證以刪除選取的連線" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "建立連線時發生錯誤" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "請選擇 VPN 的連線類型" +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "不知道如何建立「%s」連線" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "建立…" +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "編輯連線時發生錯誤" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "選擇你想要用在新連線中的 VPN 類型。如果你想要建立的 VPN 連線類型沒有出現在清單中,可能是沒有安裝正確的 VPN 外掛程式。" +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "找不到 UUID「%s」的連線" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "地址" +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "802.1x 防護" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "網絡遮罩" +#: ../src/connection-editor/page-8021x-security.c:122 +msgid "Could not load 802.1x Security user interface." +msgstr "無法載入 802.1x 安全性使用者介面。" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "通訊閘" +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "在這個連線使用 802.1_X 防護" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "公制" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "%s 服務 %d" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "前綴" +#: ../src/connection-editor/page-bond.c:749 +#, fuzzy +#| msgid "Could not load DSL user interface." +msgid "Could not load bond user interface." +msgstr "無法載入 DSL 使用者介面。" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1519 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:909 +#, fuzzy, c-format +#| msgid "InfiniBand connection %d" +msgid "Bond connection %d" +msgstr "未受信任的連線" -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-dsl.c:142 msgid "Could not load DSL user interface." msgstr "無法載入 DSL 使用者介面。" -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:234 #, c-format msgid "DSL connection %d" msgstr "DSL 連線 %d" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "此選項會將此連線鎖定至在此所輸入的 MAC 位址所指定的網絡裝置。例如:00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:276 +msgid "Could not load ethernet user interface." +msgstr "無法載入有線網絡使用者介面。" + +#: ../src/connection-editor/page-ethernet.c:452 +#, c-format +msgid "Ethernet connection %d" +msgstr "線網絡連線 %d" + +#: ../src/connection-editor/page-infiniband.c:193 +msgid "Could not load InfiniBand user interface." +msgstr "無法載入 InfiniBand 使用者介面。" + +#: ../src/connection-editor/page-infiniband.c:318 +#, c-format +msgid "InfiniBand connection %d" +msgstr "InfiniBand 連線 %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1577,16 +2033,26 @@ msgid "Disabled" msgstr "已停用" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "額外的 _DNS 伺服器:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "額外的搜尋網域: domains:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "編輯 %s 的 IPv4 路由" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:993 msgid "IPv4 Settings" msgstr "IPv4 設定" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:995 msgid "Could not load IPv4 user interface." msgstr "無法載入 IPv4 使用者介面。" @@ -1595,7 +2061,7 @@ msgstr "自動,僅限位址" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "忽略" @@ -1603,43 +2069,43 @@ msgid "Automatic, DHCP only" msgstr "自動,僅使用 DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "為 %s 編輯 IPv6 路由" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:957 msgid "IPv6 Settings" msgstr "IPv6 設定" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:959 msgid "Could not load IPv6 user interface." msgstr "無法載入 IPv6 使用者介面。" -#: ../src/connection-editor/page-mobile.c:381 +#: ../src/connection-editor/page-mobile.c:382 msgid "Could not load mobile broadband user interface." msgstr "無法載入流動寬頻使用者介面。" -#: ../src/connection-editor/page-mobile.c:398 +#: ../src/connection-editor/page-mobile.c:399 msgid "Unsupported mobile broadband connection type." msgstr "不支援的流動寬頻連線類型。" #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:643 msgid "Select Mobile Broadband Provider Type" msgstr "選擇流動寬頻供應商類型" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:678 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." msgstr "請選擇你的無線寬頻供應商所使用的技術。如果你不確定,請洽詢供應商。" -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:683 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "我的供應商使用 _GSM 為主的技術(例如 GPRS、EDGE、UMTS、HSDPA)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:690 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "我的供應商使用 C_DMA 為主的技術(例如 1xRTT、EVDO)" @@ -1679,286 +2145,30 @@ msgid "Editing PPP authentication methods for %s" msgstr "編輯 %s 的 PPP 驗證方法" -#: ../src/connection-editor/page-ppp.c:282 +#: ../src/connection-editor/page-ppp.c:283 msgid "PPP Settings" msgstr "PPP 設定值" -#: ../src/connection-editor/page-ppp.c:284 +#: ../src/connection-editor/page-ppp.c:285 msgid "Could not load PPP user interface." msgstr "無法載入 PPP 使用者介面。" -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1515 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 +#: ../src/connection-editor/page-vpn.c:114 msgid "Could not load VPN user interface." msgstr "無法載入 VPN 使用者介面。" -#: ../src/connection-editor/page-vpn.c:126 +#: ../src/connection-editor/page-vpn.c:129 #, c-format msgid "Could not find VPN plugin service for '%s'." msgstr "找不到「%s」的 VPN 外掛程式服務。" -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 #, c-format msgid "VPN connection %d" msgstr "VPN 連線 %d" -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "此選項會將此連線鎖定至在此所輸入的 MAC 位址所指定的網絡裝置。例如:00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -#: ../src/connection-editor/nm-connection-list.c:1503 -msgid "Wired" -msgstr "有線" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "無法載入有線網絡使用者介面。" - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "有線網絡連線 %d" - -#: ../src/connection-editor/page-wired-security.c:116 -msgid "802.1x Security" -msgstr "802.1x 防護" - -#: ../src/connection-editor/page-wired-security.c:118 -msgid "Could not load Wired Security security user interface." -msgstr "無法載入 Wired Security 安全使用者介面。" - -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1_X security for this connection" -msgstr "在這個連線使用 802.1_X 防護" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "預設" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -#: ../src/connection-editor/nm-connection-list.c:1507 -msgid "Wireless" -msgstr "無線網絡" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "無法載入 WiFi 使用者介面。" - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "無線網絡連線 %d" - -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "WEP 40/128-位元 密碼匙 (Hex 或 ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 -msgid "WEP 128-bit Passphrase" -msgstr "WEP 128-位元 密語" - -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 -msgid "Dynamic WEP (802.1x)" -msgstr "動態 WEP (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 -msgid "WPA & WPA2 Personal" -msgstr "WPA & WPA2 個人版" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA & WPA2 企業版" - -#: ../src/connection-editor/page-wireless-security.c:360 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "無法載入 WiFi 防護使用者介面;失去 WiFi 設定值。" - -#: ../src/connection-editor/page-wireless-security.c:370 -msgid "Wireless Security" -msgstr "無線網絡防護" - -#: ../src/connection-editor/page-wireless-security.c:372 -msgid "Could not load WiFi security user interface." -msgstr "無法載入 WiFi 防護使用者介面。" - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "編輯 %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "編輯未命名的連線" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "連線編輯器找不到一些需要的資源(找不到 .ui 檔)。" - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "建立連線編輯器對話盒時發生錯誤。" - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "儲存(_S)" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "儲存任何對這個連線進行的更改。" - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "儲存(_S)…" - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "驗證以儲存這個連線給此電腦上的所有使用者。" - -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "所有使用者皆可用" - -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "自動連線(_A)" - -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -msgid "Connection _name:" -msgstr "連線名稱(_N):" - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "匯出(_X)" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "匯入(_I)" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "永不" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "現在" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "%d 分鐘以前" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "%d 小時以前" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "%d 天以前" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "%d 個月以前" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "%d 年以前" - -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "新增連線失敗" - -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "儲存連線時錯誤" - -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "屬性「%s」/「%s」是無效的:%d" - -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "發生不明的錯誤。" - -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "初始化編輯器時發生錯誤" - -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "由於不明的錯誤使連線編輯器對話盒無法初始化。" - -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "無法建立新連線" - -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "無法編輯新連線" - -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "無法編輯連線" - -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "刪除連線失敗" - -#: ../src/connection-editor/nm-connection-list.c:795 -#, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "你確定要刪除連線 %s ?" - -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 -msgid "Cannot import VPN connection" -msgstr "無法匯入 VPN 網絡連線" - -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/page-vpn.c:249 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -1968,79 +2178,94 @@ "\n" "錯誤:沒有 VPN 服務類型。" -#: ../src/connection-editor/nm-connection-list.c:945 -msgid "Could not edit imported connection" -msgstr "無法編輯匯入的連線" +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "請選擇 VPN 的連線類型" -#: ../src/connection-editor/nm-connection-list.c:1126 -msgid "Name" -msgstr "名稱" +#: ../src/connection-editor/page-vpn.c:275 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "選擇你想要用在新連線中的 VPN 類型。如果你想要建立的 VPN 連線類型沒有出現在清單中,可能是沒有安裝正確的 VPN 外掛程式。" + +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "預設" -#: ../src/connection-editor/nm-connection-list.c:1138 -msgid "Last Used" -msgstr "最後使用的" +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1264 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "沒有 VPN 外掛程式可用。請安裝其中一種以啟用這個按鈕。" +#: ../src/connection-editor/page-wifi.c:465 +msgid "Could not load Wi-Fi user interface." +msgstr "無法載入 Wi-Fi 使用者介面。" -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "_Edit" -msgstr "編輯(_E)" +#: ../src/connection-editor/page-wifi.c:670 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Wi-Fi 連線 %d" -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "Edit the selected connection" -msgstr "編輯選取的連線" +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "沒有" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "_Edit..." -msgstr "編輯(_E)…" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "WEP 40/128-位元 密碼匙 (Hex 或 ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1278 -msgid "Authenticate to edit the selected connection" -msgstr "驗證以編輯選取的連線" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "WEP 128-位元 密語" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "_Delete" -msgstr "刪除(_D)" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "動態 WEP (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "Delete the selected connection" -msgstr "刪除選取的連線" +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "WPA & WPA2 個人版" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "_Delete..." -msgstr "刪除(_D)…" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA & WPA2 企業版" -#: ../src/connection-editor/nm-connection-list.c:1296 -msgid "Authenticate to delete the selected connection" -msgstr "驗證以刪除選取的連線" +#: ../src/connection-editor/page-wifi-security.c:396 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "無法載入 Wi-Fi 安全性使用者介面;失去 Wi-Fi 設定值。" -#: ../src/connection-editor/nm-connection-list.c:1575 -msgid "Error creating connection" -msgstr "建立連線時發生錯誤" +#: ../src/connection-editor/page-wifi-security.c:406 +msgid "Wi-Fi Security" +msgstr "Wi-Fi 安全性" -#: ../src/connection-editor/nm-connection-list.c:1576 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "不知道如何建立「%s」連線" +#: ../src/connection-editor/page-wifi-security.c:408 +msgid "Could not load Wi-Fi security user interface." +msgstr "無法載入 Wi-Fi 安全性使用者介面。" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 -msgid "Error editing connection" -msgstr "編輯連線時發生錯誤" +#: ../src/connection-editor/page-wimax.c:161 +msgid "Could not load WiMAX user interface." +msgstr "無法載入 WiMAX 使用者介面。" -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/page-wimax.c:290 #, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "不知道如何編輯「%s」連線" +msgid "WiMAX connection %d" +msgstr "WiMAX 連線 %d" -#: ../src/connection-editor/nm-connection-list.c:1644 -#, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "找不到 UUID「%s」的連線" +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "無法匯入 VPN 網絡連線" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2052,29 +2277,29 @@ "\n" "錯誤:%s。" -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "選擇要匯入的檔案" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "名為「%s」的檔案已經存在。" -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "取代(_R)" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "你是否要以準備儲存的 VPN 連線取代 %s?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "不能匯出 VPN 連線" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2085,114 +2310,133 @@ "\n" "錯誤:%s。" -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "匯出 VPN 連線…" -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "無法建立 PAN 連線:%s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "NetworkManager 面板程式無法找到一些需要的資源(找不到 .ui 檔)。" -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "你的電話現在已經可以使用!" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "無法進行藍牙的配置(無法連至 D-Bus:(%s) %s)。" -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s 網絡" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "無法進行藍牙的配置(找不到 NetworkManager:(%s) %s)。" + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "使用手機作為網絡裝置(PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "使用手機存取互聯網(DUN)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "錯誤:%s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "無法建立 DUN 連線:%s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "你的電話現在已經可以使用!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "行動精靈已經取消" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "不明的電話裝置類型(非 GSM 或 CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "不明的數據機類型。" + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "無法連線至電話。" -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "電話無預期離線。" -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "在時間內偵測不到電話的詳細資料。" -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "偵測電話的配置…" -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "找不到藍牙裝置。" - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." msgstr "預設的藍牙配接卡必須在設定撥號網絡連線前啟用。" -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "無法進行藍牙的配置(無法連至 D-Bus:%s)。" - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "無法進行藍牙的配置(無法連至 D-Bus proxy)。" +msgid "Failed to create PAN connection: %s" +msgstr "無法建立 PAN 連線:%s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "無法進行藍牙的配置(找不到 NetworkManager:%s)。" +msgid "%s Network" +msgstr "%s 網絡" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "使用手機作為網絡裝置(PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "自動解鎖這個裝置" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "使用手機存取互聯網(DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "解鎖(_U)" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "連線資訊" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "啟用網絡連線" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "行動寬連線已經配置了以下設定:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "你的裝置:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "你的供應商:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "你的計劃:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2201,23 +2445,23 @@ "Preferences menu." msgstr "現在,根據你所選取的設定,電腦將連上你的流動寬頻供應商。如果連線失敗,或是你無法存取網絡資源,請檢查設定。要修改流動寬頻連線的設定,請從「系統」 >> 「偏好設定」中,選擇「網絡連線」。" -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "確認流動寬頻設定" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "未列出的" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "選擇你的計劃(_S):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "選擇計劃的 _APN(Access Point Name,存取點名稱):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2228,164 +2472,163 @@ "\n" "如果你不確定所使用的計劃,請洽詢供應商,以得知計劃的 APN 為何。" -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "選擇你的計費計劃" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "我的計劃沒有列出…" -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "請從清單裏選擇供應商(_L):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "供應商" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "我找不到我的供應商,我想要手動輸入(_M):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "供應商:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "我的供應商使用 GSM 技術(GPRS、EDGE、UMTS、HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "我的供應商使用 CDMA 技術(1xRTT、EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "選擇你的供應商" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "國家或地區清單:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "國家或地區" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "我的國家並沒有列出來" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "選擇你的供應商的國家或地區" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "已安裝的 GSM 裝置" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "已安裝的 CDMA 裝置" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." msgstr "這能幫助你輕易地設定流動寬頻連線,連至手機(3G)網絡。" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "你需要以下資訊:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "寬頻供應商的名稱" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "寬頻計費計劃的名稱" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(在有些情況下)你的寬頻計費計劃的 APN(存取點名稱)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "為這個流動寬頻裝置建立連線(_T)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "任何裝置" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "設定流動寬頻連線" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "新的流動寬頻連線" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "新增…" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "建立(_R)" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network " -"'%s'." -msgstr "需要密碼或是加密密碼匙來存取無線網絡「%s」。" +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." +msgstr "需要密碼或是加密密碼匙來存取 Wi-Fi 網絡「%s」。" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 -msgid "Wireless Network Authentication Required" -msgstr "無線網絡驗證要求" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" +msgstr "Wi-Fi 網絡連線「%s」需要驗證" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 -msgid "Authentication required by wireless network" -msgstr "無線網絡所需要的驗證" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" +msgstr "Wi-Fi 網絡連線「%s」需要驗證" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 -msgid "Create New Wireless Network" -msgstr "建立新的無線網絡" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" +msgstr "建立新的 Wi-Fi 網絡" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "New wireless network" -msgstr "新的無線網絡" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" +msgstr "新的 Wi-Fi 網絡" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 -msgid "Enter a name for the wireless network you wish to create." -msgstr "輸入你要建立的無線網絡的名稱。" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "輸入你要建立的 Wi-Fi 網絡的名稱。" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 -msgid "Connect to Hidden Wireless Network" -msgstr "連接到隱藏的無線網絡" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" +msgstr "連接到隱藏的 Wi-Fi 網絡" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Hidden wireless network" -msgstr "隱藏的無線網絡" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" +msgstr "隱藏的 Wi-Fi 網絡" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." -msgstr "輸入你要連接的隱藏無線網絡的名稱與安全性詳細資料。" +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." +msgstr "輸入你要連接的隱藏 Wi-Fi 網絡的名稱與安全性詳細資料。" #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" -msgstr "連線(_N):" +msgid "Wi-Fi _security:" +msgstr "Wi-Fi 安全性(_S):" -#: ../src/libnm-gtk/wifi.ui.h:3 -msgid "Wireless _adapter:" -msgstr "無線網絡卡(_A):" +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "連線(_N):" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "無線網絡安全(_W):" +msgid "Wi-Fi _adapter:" +msgstr "Wi-Fi 介面卡(_A):" #: ../src/main.c:73 msgid "Usage:" @@ -2431,10 +2674,6 @@ msgid "HSPA" msgstr "HSPA" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "未啟用" @@ -2485,86 +2724,86 @@ msgid "Default" msgstr "預設" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "NetworkManager 面板程式無法找到一些需要的資源(找不到 .ui 檔)。" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "%s 連線" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "未選擇任何證書授權單位(CA)證書" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" -msgstr "不使用證書中心 (CA) 的證書會造成連線不安全、流氓無線網絡(可能被竊取、劫聽之意)。是否要選擇一個證書中心的證書?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" +msgstr "不使用證書中心 (CA) 的證書會造成連線不安全、流氓 Wi-Fi 網絡 (可能被竊取、劫聽之意)。是否要選擇一個證書中心的證書?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "選擇 CA 證書" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM, 或 PKCS#12 私密密碼匙(*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER 或 PEM 證書 (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-fast.ui.h:2 -msgid "Allow automatic PAC pro_visioning" -msgstr "允許自動供應 PAC (_V)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" -#: ../src/wireless-security/eap-method-fast.ui.h:3 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -#: ../src/wireless-security/eap-method-ttls.ui.h:2 -msgid "Anony_mous identity:" -msgstr "匿名識別(_M):" +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "選擇一個 PAC 檔案…" -#: ../src/wireless-security/eap-method-fast.ui.h:4 +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC 檔案 (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "所有檔案" + +#: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "匿名" -#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-fast.ui.h:3 msgid "Authenticated" msgstr "已驗證" -#: ../src/wireless-security/eap-method-fast.ui.h:6 +#: ../src/wireless-security/eap-method-fast.ui.h:4 msgid "Both" msgstr "兩者" -#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "匿名識別(_M):" + +#: ../src/wireless-security/eap-method-fast.ui.h:6 msgid "PAC _file:" msgstr "PAC 檔案(_F):" -#: ../src/wireless-security/eap-method-fast.ui.h:8 -#: ../src/wireless-security/eap-method-peap.ui.h:8 +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 msgid "_Inner authentication:" msgstr "內部驗證(_I):" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "選擇一個 PAC 檔案…" - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "PAC 檔案 (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "所有檔案" +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "允許自動供應 PAC (_V)" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2574,25 +2813,25 @@ msgid "Choose a Certificate Authority certificate..." msgstr "選擇證書授權單位(CA)證書…" +#: ../src/wireless-security/eap-method-peap.ui.h:3 +msgid "Version 0" +msgstr "版本 0" + #: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 +msgid "Version 1" +msgstr "版本 1" + +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 #: ../src/wireless-security/eap-method-ttls.ui.h:3 msgid "C_A certificate:" msgstr "CA 證書(_A):" -#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:8 msgid "PEAP _version:" msgstr "PEAP 版本(_V):" -#: ../src/wireless-security/eap-method-peap.ui.h:6 -msgid "Version 0" -msgstr "版本 0" - -#: ../src/wireless-security/eap-method-peap.ui.h:7 -msgid "Version 1" -msgstr "版本 1" - -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "每次都詢問密碼(_K)" @@ -2620,11 +2859,15 @@ msgid "Choose your private key..." msgstr "選擇你的私密密碼匙…" -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "識別(_D):" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "使用者證書(_U):" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "私密密碼匙(_K):" @@ -2632,10 +2875,6 @@ msgid "_Private key password:" msgstr "私密密碼匙密碼(_P):" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "使用者證書(_U):" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "不要再警告我(_W)" @@ -2648,63 +2887,127 @@ msgid "Yes" msgstr "是" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "快" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "穿隧式 TLS" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "保護式 EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 -#: ../src/wireless-security/ws-wep-key.ui.h:5 +#: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 msgid "Au_thentication:" msgstr "驗證(_E):" #: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "開放系統" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "共享密碼匙" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (預設值)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:6 -msgid "Open System" -msgstr "開放系統" - #: ../src/wireless-security/ws-wep-key.ui.h:7 -msgid "Shared Key" -msgstr "共享密碼匙" +msgid "_Key:" +msgstr "密碼匙(_K):" #: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "顯示密碼匙(_W)" -#: ../src/wireless-security/ws-wep-key.ui.h:9 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "WEP 索引(_X):" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "密碼匙(_K):" +#~ msgid "An unknown error occurred." +#~ msgstr "發生不明的錯誤。" + +#~ msgid "Could not edit new connection" +#~ msgstr "無法編輯新連線" + +#~ msgid "Wireless Networks (%s)" +#~ msgstr "無線網路 (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "無線網路 (%s)" + +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "無線網路" + +#~ msgid "wireless is disabled" +#~ msgstr "無線網路已停用" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "無線網路已被硬體開關停用" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "正在準備無線網路連線「%s」…" + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "正在設定無線網路連線「%s」…" + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "正在要求無線網路「%s」提供網路位址…" + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "無線網路連線「%s」在使用中" + +#~ msgid "Wired" +#~ msgstr "有線" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "無法載入 Wired Security 安全使用者介面。" + +#~ msgid "Wireless" +#~ msgstr "無線網路" + +#~ msgid "Wireless connection %d" +#~ msgstr "無線網路連線 %d" + +#~ msgid "_Import" +#~ msgstr "匯入(_I)" + +#~ msgid "Could not edit imported connection" +#~ msgstr "無法編輯匯入的連線" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "沒有 VPN 外掛程式可用。請安裝其中一種以啟用這個按鈕。" + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "不知道如何編輯「%s」連線" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "找不到藍牙裝置。" + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "無法進行藍牙的配置(無法連至 D-Bus proxy)。" #~ msgid "_Security:" #~ msgstr "安全性(_S):" diff -Nru network-manager-applet-0.9.4.1/po/zh_TW.po network-manager-applet-0.9.6.2+git201210311320.2620/po/zh_TW.po --- network-manager-applet-0.9.4.1/po/zh_TW.po 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/po/zh_TW.po 2012-10-31 13:20:57.000000000 +0000 @@ -11,8 +11,8 @@ msgstr "" "Project-Id-Version: network-manager-applet 0.9.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-08 16:22+0800\n" -"PO-Revision-Date: 2012-03-07 20:37+0800\n" +"POT-Creation-Date: 2012-08-21 19:45+0800\n" +"PO-Revision-Date: 2012-08-21 13:16+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: Traditional Chinese \n" "Language: \n" @@ -22,642 +22,1008 @@ "Plural-Forms: nplurals=1; plural=0;\n" #: ../nm-applet.desktop.in.h:1 +msgid "Network" +msgstr "網路" + +#: ../nm-applet.desktop.in.h:2 msgid "Manage your network connections" msgstr "管理您的網路連線" -#: ../nm-applet.desktop.in.h:2 -msgid "Network" -msgstr "網路" +#: ../nm-connection-editor.desktop.in.h:1 +#: ../src/connection-editor/nm-connection-editor.ui.h:1 +msgid "Network Connections" +msgstr "網路連線" -#: ../nm-applet.schemas.in.h:1 -msgid "Disable WiFi Create" -msgstr "禁止建立 WiFi" +#: ../nm-connection-editor.desktop.in.h:2 +msgid "Manage and change your network connection settings" +msgstr "管理與變更您的連線設定值" -#: ../nm-applet.schemas.in.h:2 +#: ../org.gnome.nm-applet.gschema.xml.in.h:1 msgid "Disable connected notifications" msgstr "停止已連線的通知" -#: ../nm-applet.schemas.in.h:3 +#: ../org.gnome.nm-applet.gschema.xml.in.h:2 +msgid "Set this to true to disable notifications when connecting to a network." +msgstr "將這設為「TURE」,以停用網路連線時的通知。" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:3 msgid "Disable disconnected notifications" msgstr "停止已離線的通知" -#: ../nm-applet.schemas.in.h:4 -msgid "Set this to TRUE to disable notifications when connecting to a network." -msgstr "將這設為「TRUE」,以停用網路連線時的通知。" +#: ../org.gnome.nm-applet.gschema.xml.in.h:4 +msgid "" +"Set this to true to disable notifications when disconnecting from a network." +msgstr "將這設為「TURE」,以停用網路離線時的通知。" + +#: ../org.gnome.nm-applet.gschema.xml.in.h:5 +msgid "Disable VPN notifications" +msgstr "停用 VPN 的通知" -#: ../nm-applet.schemas.in.h:5 +#: ../org.gnome.nm-applet.gschema.xml.in.h:6 msgid "" -"Set this to TRUE to disable notifications when disconnecting from a network." +"Set this to true to disable notifications when connecting to or " +"disconnecting from a VPN." msgstr "將這設為「TRUE」,以停用網路離線時的通知。" -#: ../nm-applet.schemas.in.h:6 -msgid "" -"Set this to TRUE to disable notifications when wireless networks are " -"available." -msgstr "將這設為「TRUE」,以停用有無線網路可用時的通知。" +#: ../org.gnome.nm-applet.gschema.xml.in.h:7 +msgid "Suppress networks available notifications" +msgstr "停止可用網路的通知" -#: ../nm-applet.schemas.in.h:7 +#: ../org.gnome.nm-applet.gschema.xml.in.h:8 msgid "" -"Set to TRUE to disable creation of adhoc networks when using the applet." -msgstr "將這設為「TRUE」,以停用使用面板程式建立 adhoc 網路。" +"Set this to true to disable notifications when Wi-Fi networks are available." +msgstr "將這設為「TURE」,以停用有無線網路可用時的通知。" -#: ../nm-applet.schemas.in.h:8 +#: ../org.gnome.nm-applet.gschema.xml.in.h:9 msgid "Stamp" msgstr "戳記" -#: ../nm-applet.schemas.in.h:9 -msgid "Suppress networks available notifications" -msgstr "停止可用網路的通知" - -#: ../nm-applet.schemas.in.h:10 +#: ../org.gnome.nm-applet.gschema.xml.in.h:10 msgid "Used to determine whether settings should be migrated to a new version." msgstr "用來決定設定是不是要轉移到新版本上。" -#: ../nm-connection-editor.desktop.in.h:1 -msgid "Manage and change your network connection settings" -msgstr "管理與變更您的連線設定值" +#: ../org.gnome.nm-applet.gschema.xml.in.h:11 +msgid "Disable WiFi Create" +msgstr "禁止建立 WiFi" -#: ../nm-connection-editor.desktop.in.h:2 -#: ../src/connection-editor/nm-connection-editor.ui.h:7 -msgid "Network Connections" -msgstr "網路連線" +#: ../org.gnome.nm-applet.gschema.xml.in.h:12 +msgid "" +"Set to true to disable creation of adhoc networks when using the applet." +msgstr "將這設為「TURE」,以停用使用面板程式建立 adhoc 網路。" -#: ../src/applet-device-bt.c:174 ../src/applet-device-cdma.c:399 -#: ../src/applet-device-gsm.c:446 ../src/applet-device-wired.c:240 -#: ../src/applet-device-wifi.c:875 ../src/applet-device-wimax.c:279 -msgid "Available" -msgstr "可用" +#: ../org.gnome.nm-applet.gschema.xml.in.h:13 +msgid "Ignore CA certificate" +msgstr "忽略 CA 憑證" -#: ../src/applet-device-bt.c:200 ../src/applet-device-cdma.c:441 -#: ../src/applet-device-gsm.c:488 ../src/applet-device-wired.c:269 -#: ../src/applet-device-wimax.c:423 -#, c-format -msgid "You are now connected to '%s'." -msgstr "您現在已連線至「%s」。" +#: ../org.gnome.nm-applet.gschema.xml.in.h:14 +msgid "" +"Set this to true to disable warnings about CA certificates in EAP " +"authentication." +msgstr "將這設為「TURE」,停用在 EAP 認證中 CA 憑證" -#: ../src/applet-device-bt.c:204 ../src/applet-device-cdma.c:445 -#: ../src/applet-device-gsm.c:492 ../src/applet-device-wired.c:273 -#: ../src/applet-device-wifi.c:1278 ../src/applet-device-wimax.c:427 -msgid "Connection Established" -msgstr "已建立連線" +#: ../org.gnome.nm-applet.gschema.xml.in.h:15 +msgid "" +"Set this to true to disable warnings about CA certificates in phase 2 of EAP " +"authentication." +msgstr "將這設為「TURE」,停用在第二 EAP 認證中 CA 憑證" -#: ../src/applet-device-bt.c:205 -msgid "You are now connected to the mobile broadband network." -msgstr "您現在已連線至行動寬頻網路。" +#: ../src/8021x.ui.h:1 ../src/ethernet-dialog.c:104 +msgid "802.1X authentication" +msgstr "802.1X 驗證" + +#: ../src/8021x.ui.h:2 ../src/connection-editor/ce-page-wimax.ui.h:2 +#: ../src/libnm-gtk/wifi.ui.h:3 +msgid "_Network name:" +msgstr "網路名稱(_N):" + +#: ../src/applet.c:512 +msgid "Failed to add/activate connection" +msgstr "無法加入/使用連線" + +#: ../src/applet.c:514 ../src/applet.c:558 ../src/applet.c:584 +#: ../src/applet-device-wifi.c:1379 ../src/applet-device-wifi.c:1398 +msgid "Unknown error" +msgstr "不明的錯誤" + +#: ../src/applet.c:517 ../src/applet.c:587 ../src/applet-device-wifi.c:1382 +#: ../src/applet-device-wifi.c:1401 +msgid "Connection failure" +msgstr "連線失敗" + +#: ../src/applet.c:556 +msgid "Device disconnect failed" +msgstr "裝置斷線失敗" + +#: ../src/applet.c:561 +msgid "Disconnect failure" +msgstr "斷線失敗" + +#: ../src/applet.c:582 +msgid "Connection activation failed" +msgstr "連線生效失敗" + +#: ../src/applet.c:948 ../src/applet-device-wifi.c:1072 +msgid "Don't show this message again" +msgstr "不要再顯示這個訊息" -#: ../src/applet-device-bt.c:231 ../src/applet-device-cdma.c:481 -#: ../src/applet-device-gsm.c:528 ../src/applet-device-wimax.c:464 +#: ../src/applet.c:1037 #, c-format -msgid "Preparing mobile broadband connection '%s'..." -msgstr "正在準備行動寬頻連線「%s」…" +msgid "" +"\n" +"The VPN connection '%s' failed because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為網路連線被中斷了。" -#: ../src/applet-device-bt.c:234 ../src/applet-device-cdma.c:484 -#: ../src/applet-device-gsm.c:531 ../src/applet-device-wimax.c:467 +#: ../src/applet.c:1040 #, c-format -msgid "Configuring mobile broadband connection '%s'..." -msgstr "正在設定行動寬頻連線「%s」…" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service stopped unexpectedly." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為 VPN 服務意外的停止了。" -#: ../src/applet-device-bt.c:237 ../src/applet-device-cdma.c:487 -#: ../src/applet-device-gsm.c:534 ../src/applet-device-wimax.c:470 +#: ../src/applet.c:1043 #, c-format -msgid "User authentication required for mobile broadband connection '%s'..." -msgstr "行動寬頻連線「%s」需要使用者驗證…" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service returned invalid " +"configuration." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為 VPN 服務傳回無效的組態。" -#: ../src/applet-device-bt.c:240 ../src/applet-device-cdma.c:490 -#: ../src/applet-device-gsm.c:537 ../src/applet-device-wimax.c:473 -#: ../src/applet.c:2479 +#: ../src/applet.c:1046 #, c-format -msgid "Requesting a network address for '%s'..." -msgstr "正在要求「%s」提供網路位址…" +msgid "" +"\n" +"The VPN connection '%s' failed because the connection attempt timed out." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為連線的嘗試已逾時。" -#: ../src/applet-device-bt.c:244 ../src/applet-device-cdma.c:508 -#: ../src/applet-device-gsm.c:555 +#: ../src/applet.c:1049 #, c-format -msgid "Mobile broadband connection '%s' active" -msgstr "行動寬頻連線「%s」在使用中" +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service did not start in time." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為 VPN 服務沒有及時啟動。" -#: ../src/applet-device-cdma.c:184 ../src/connection-editor/page-mobile.c:696 -#: ../src/mb-menu-item.c:54 -msgid "CDMA" -msgstr "CDMA" +#: ../src/applet.c:1052 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為 VPN 服務啟動失敗。" -#: ../src/applet-device-cdma.c:345 ../src/applet-device-gsm.c:392 -#: ../src/applet-dialogs.c:430 +#: ../src/applet.c:1055 #, c-format -msgid "Mobile Broadband (%s)" -msgstr "行動寬頻 (%s)" +msgid "" +"\n" +"The VPN connection '%s' failed because there were no valid VPN secrets." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為沒有有效的 VPN 服務。" -#: ../src/applet-device-cdma.c:347 ../src/applet-device-gsm.c:394 -#: ../src/connection-editor/page-mobile.c:379 -#: ../src/connection-editor/nm-connection-editor.ui.h:6 -#: ../src/connection-editor/nm-connection-list.c:1511 -msgid "Mobile Broadband" -msgstr "行動寬頻" +#: ../src/applet.c:1058 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because of invalid VPN secrets." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為無效的 VPN 機密。" -#. Default connection item -#: ../src/applet-device-cdma.c:412 -msgid "New Mobile Broadband (CDMA) connection..." -msgstr "新的行動寬頻 (CDMA) 連線…" +#: ../src/applet.c:1065 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed." +msgstr "" +"\n" +"VPN 連線「%s」失敗。" -#: ../src/applet-device-cdma.c:446 -msgid "You are now connected to the CDMA network." -msgstr "您現在已連線至 CDMA 網路。" +#: ../src/applet.c:1083 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected because the network connection was " +"interrupted." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為網路連線中斷了。" -#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:550 -#: ../src/applet-device-wimax.c:482 +#: ../src/applet.c:1086 #, c-format -msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" -msgstr "行動寬頻連線「%s」在使用中:(%d%%%s%s)" +msgid "" +"\n" +"The VPN connection '%s' disconnected because the VPN service stopped." +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為 VPN 服務已停止。" -#: ../src/applet-device-cdma.c:506 ../src/applet-device-gsm.c:553 -#: ../src/applet-device-wimax.c:485 -msgid "roaming" -msgstr "漫遊" +#: ../src/applet.c:1092 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' disconnected." +msgstr "" +"\n" +"VPN 連線「%s」已斷線。" -#: ../src/applet-device-cdma.c:647 ../src/applet-device-cdma.c:653 -msgid "CDMA network." -msgstr "CDMA 網路。" +#: ../src/applet.c:1122 +#, c-format +msgid "" +"VPN connection has been successfully established.\n" +"\n" +"%s\n" +msgstr "" +"VPN 連線已成功的。\n" +"%s\n" -#: ../src/applet-device-cdma.c:648 ../src/applet-device-gsm.c:1198 -msgid "You are now registered on the home network." -msgstr "您現在已註冊至家用網路。" +#: ../src/applet.c:1124 +msgid "VPN connection has been successfully established.\n" +msgstr "VPN 連線已成功的。\n" -#: ../src/applet-device-cdma.c:654 ../src/applet-device-gsm.c:1204 -msgid "You are now registered on a roaming network." -msgstr "您現在已註冊至漫遊網路。" +#: ../src/applet.c:1126 +msgid "VPN Login Message" +msgstr "VPN 登錄訊息" -#: ../src/applet-device-gsm.c:213 ../src/connection-editor/page-mobile.c:699 -#: ../src/mb-menu-item.c:59 -msgid "GSM" -msgstr "GSM" +#: ../src/applet.c:1132 ../src/applet.c:1140 ../src/applet.c:1190 +msgid "VPN Connection Failed" +msgstr "VPN 連線失敗" -#. Default connection item -#: ../src/applet-device-gsm.c:459 -msgid "New Mobile Broadband (GSM) connection..." -msgstr "新的行動寬頻 (GSM) 連線…" +#: ../src/applet.c:1197 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed because the VPN service failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN 連線「%s」失敗,因為 VPN 服務啟動失敗。\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:493 -msgid "You are now connected to the GSM network." -msgstr "您現在已連線至 GSM 網路。" +#: ../src/applet.c:1200 +#, c-format +msgid "" +"\n" +"The VPN connection '%s' failed to start.\n" +"\n" +"%s" +msgstr "" +"\n" +"VPN 連線「%s」啟動失敗。\n" +"\n" +"%s" -#: ../src/applet-device-gsm.c:654 -msgid "PIN code required" -msgstr "需要 PIN 碼" +#: ../src/applet.c:1520 +msgid "device not ready (firmware missing)" +msgstr "裝置尚未就緒 (缺少韌體)" -#: ../src/applet-device-gsm.c:662 -msgid "PIN code is needed for the mobile broadband device" -msgstr "這個行動寬頻裝置需要 PIN 碼" +#: ../src/applet.c:1522 +msgid "device not ready" +msgstr "裝置尚未就緒" -#: ../src/applet-device-gsm.c:783 -#, c-format -msgid "PIN code for SIM card '%s' on '%s'" -msgstr "SIM 卡「%s」在「%s」的 PIN 碼" +#. Notify user of unmanaged or unavailable device +#: ../src/applet.c:1532 ../src/applet-device-ethernet.c:232 +msgid "disconnected" +msgstr "已斷線" -#: ../src/applet-device-gsm.c:875 -msgid "Wrong PIN code; please contact your provider." -msgstr "PIN 碼錯誤,請聯絡您的供應商。" +#: ../src/applet.c:1548 +msgid "Disconnect" +msgstr "斷線" -#: ../src/applet-device-gsm.c:898 -msgid "Wrong PUK code; please contact your provider." -msgstr "PUK 碼錯誤,請聯絡您的供應商。" +#: ../src/applet.c:1562 +msgid "device not managed" +msgstr "裝置無法管理" -#. Start the spinner to show the progress of the unlock -#: ../src/applet-device-gsm.c:925 -msgid "Sending unlock code..." -msgstr "發送解鎖用的密碼…" +#: ../src/applet.c:1606 +msgid "No network devices available" +msgstr "沒有可用的網路裝置" -#: ../src/applet-device-gsm.c:988 -msgid "SIM PIN unlock required" -msgstr "需要解鎖 SIM PIN 碼" +#: ../src/applet.c:1694 +msgid "_VPN Connections" +msgstr "_VPN 連線" -#: ../src/applet-device-gsm.c:989 -msgid "SIM PIN Unlock Required" -msgstr "需要解鎖 SIM PIN 碼" +#: ../src/applet.c:1751 +msgid "_Configure VPN..." +msgstr "設置 VPN(_C)…" -#. FIXME: some warning about # of times you can enter incorrect PIN -#: ../src/applet-device-gsm.c:991 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PIN code before it can be " -"used." -msgstr "要使用行動寬頻裝置「%s」之前,需要 SIM PIN 碼。" +#: ../src/applet.c:1755 +msgid "_Disconnect VPN" +msgstr "與 VPN 斷線(_D)" -#. Translators: PIN code entry label -#: ../src/applet-device-gsm.c:993 -msgid "PIN code:" -msgstr "PIN 碼:" +#: ../src/applet.c:1849 +msgid "NetworkManager is not running..." +msgstr "NetworkManager 沒有執行…." -#. Translators: Show/obscure PIN checkbox label -#: ../src/applet-device-gsm.c:997 -msgid "Show PIN code" -msgstr "顯示 PIN 碼" - -#: ../src/applet-device-gsm.c:1000 -msgid "SIM PUK unlock required" -msgstr "需要解鎖 SIM PUK 碼" - -#: ../src/applet-device-gsm.c:1001 -msgid "SIM PUK Unlock Required" -msgstr "需要解鎖 SIM PUK 碼" - -#. FIXME: some warning about # of times you can enter incorrect PUK -#: ../src/applet-device-gsm.c:1003 -#, c-format -msgid "" -"The mobile broadband device '%s' requires a SIM PUK code before it can be " -"used." -msgstr "要使用行動寬頻裝置「%s」之前,需要 SIM PUK 碼。" - -#. Translators: PUK code entry label -#: ../src/applet-device-gsm.c:1005 -msgid "PUK code:" -msgstr "PUK 碼:" +#: ../src/applet.c:1854 ../src/applet.c:2656 +msgid "Networking disabled" +msgstr "網路已停用" -#. Translators: New PIN entry label -#: ../src/applet-device-gsm.c:1008 -msgid "New PIN code:" -msgstr "新的 PIN 碼:" +#. 'Enable Networking' item +#: ../src/applet.c:2075 +msgid "Enable _Networking" +msgstr "啟用網路(_N)" -#. Translators: New PIN verification entry label -#: ../src/applet-device-gsm.c:1010 -msgid "Re-enter new PIN code:" -msgstr "重新輸入 PIN 碼:" +#. 'Enable Wi-Fi' item +#: ../src/applet.c:2084 +msgid "Enable _Wi-Fi" +msgstr "啟用 _Wi-Fi" -#. Translators: Show/obscure PIN/PUK checkbox label -#: ../src/applet-device-gsm.c:1015 -msgid "Show PIN/PUK codes" -msgstr "顯示 PIN/PUK 碼" +#. 'Enable Mobile Broadband' item +#: ../src/applet.c:2093 +msgid "Enable _Mobile Broadband" +msgstr "啟用行動寬頻(_M)" -#: ../src/applet-device-gsm.c:1197 ../src/applet-device-gsm.c:1203 -msgid "GSM network." -msgstr "GSM 網路。" +#. 'Enable WiMAX Mobile Broadband' item +#: ../src/applet.c:2102 +msgid "Enable WiMA_X Mobile Broadband" +msgstr "啟用 WiMA_X 行動寬頻" -#: ../src/applet-device-wired.c:62 -msgid "Auto Ethernet" -msgstr "自動乙太網路" +#. Toggle notifications item +#: ../src/applet.c:2113 +msgid "Enable N_otifications" +msgstr "啟用通知功能(_O)" -#: ../src/applet-device-wired.c:205 -#, c-format -msgid "Wired Networks (%s)" -msgstr "有線網路 (%s)" +#. 'Connection Information' item +#: ../src/applet.c:2124 +msgid "Connection _Information" +msgstr "連線資訊(_I)" -#: ../src/applet-device-wired.c:207 -#, c-format -msgid "Wired Network (%s)" -msgstr "有線網路 (%s)" +#. 'Edit Connections...' item +#: ../src/applet.c:2134 +msgid "Edit Connections..." +msgstr "編輯連線…" -#: ../src/applet-device-wired.c:210 -msgid "Wired Networks" -msgstr "有線網路" +#. Help item +#: ../src/applet.c:2148 +msgid "_Help" +msgstr "求助(_H)" -#: ../src/applet-device-wired.c:212 -msgid "Wired Network" -msgstr "有線網路" +#. About item +#: ../src/applet.c:2157 +msgid "_About" +msgstr "關於(_A)" -#. Notify user of unmanaged or unavailable device -#: ../src/applet-device-wired.c:232 ../src/applet.c:1485 -msgid "disconnected" +#: ../src/applet.c:2335 +msgid "Disconnected" msgstr "已斷線" -#: ../src/applet-device-wired.c:274 -msgid "You are now connected to the wired network." -msgstr "您現在已連線至有線網路。" +#: ../src/applet.c:2336 +msgid "The network connection has been disconnected." +msgstr "網路連線已中斷。" -#: ../src/applet-device-wired.c:300 +#: ../src/applet.c:2519 #, c-format -msgid "Preparing wired network connection '%s'..." -msgstr "正在準備有線網路連線「%s」…" +msgid "Preparing network connection '%s'..." +msgstr "正在準備網路連線「%s」…" -#: ../src/applet-device-wired.c:303 +#: ../src/applet.c:2522 #, c-format -msgid "Configuring wired network connection '%s'..." -msgstr "正在設定有線網路連線「%s」…" +msgid "User authentication required for network connection '%s'..." +msgstr "網路連線「%s」需要使用者驗證…" -#: ../src/applet-device-wired.c:306 +#: ../src/applet.c:2525 ../src/applet-device-bt.c:239 +#: ../src/applet-device-cdma.c:487 ../src/applet-device-gsm.c:535 +#: ../src/applet-device-wimax.c:473 #, c-format -msgid "User authentication required for wired network connection '%s'..." -msgstr "有線網路連線「%s」需要使用者驗證…" +msgid "Requesting a network address for '%s'..." +msgstr "正在要求提供「%s」的網路位址…" -#: ../src/applet-device-wired.c:309 +#: ../src/applet.c:2528 #, c-format -msgid "Requesting a wired network address for '%s'..." -msgstr "正要求有線網路「%s」提供網路位址…" +msgid "Network connection '%s' active" +msgstr "網路連線「%s」在使用中" -#: ../src/applet-device-wired.c:313 +#: ../src/applet.c:2611 #, c-format -msgid "Wired network connection '%s' active" -msgstr "有線網路連線「%s」在使用中" - -#: ../src/applet-device-wired.c:494 -msgid "DSL authentication" -msgstr "DSL 驗證" - -#: ../src/applet-device-wifi.c:97 -msgid "_Connect to Hidden Wireless Network..." -msgstr "連接到隱藏的無線網路(_C)…" - -#: ../src/applet-device-wifi.c:150 -msgid "Create _New Wireless Network..." -msgstr "建立新的無線網路(_N)…" - -#: ../src/applet-device-wifi.c:294 -msgid "(none)" -msgstr "(無)" +msgid "Starting VPN connection '%s'..." +msgstr "正在啟動 VPN 連線「%s」…" -#: ../src/applet-device-wifi.c:803 +#: ../src/applet.c:2614 #, c-format -msgid "Wireless Networks (%s)" -msgstr "無線網路 (%s)" +msgid "User authentication required for VPN connection '%s'..." +msgstr "VPN 連線「%s」需要使用者驗證…" -#: ../src/applet-device-wifi.c:805 +#: ../src/applet.c:2617 #, c-format -msgid "Wireless Network (%s)" -msgstr "無線網路 (%s)" - -#: ../src/applet-device-wifi.c:807 -msgid "Wireless Network" -msgid_plural "Wireless Networks" -msgstr[0] "無線網路" - -#: ../src/applet-device-wifi.c:840 -msgid "wireless is disabled" -msgstr "無線網路已停用" +msgid "Requesting a VPN address for '%s'..." +msgstr "正在要求 VPN 提供「%s」的網路位址…" -#: ../src/applet-device-wifi.c:841 -msgid "wireless is disabled by hardware switch" -msgstr "無線網路已被硬體開關停用" +#: ../src/applet.c:2620 +#, c-format +msgid "VPN connection '%s' active" +msgstr "VPN 連線「%s」在使用中" -#: ../src/applet-device-wifi.c:902 -msgid "More networks" -msgstr "更多網路" +#: ../src/applet.c:2661 +msgid "No network connection" +msgstr "沒有網路連接" -#: ../src/applet-device-wifi.c:1081 -msgid "Wireless Networks Available" -msgstr "可用的無線網路" - -#: ../src/applet-device-wifi.c:1082 -msgid "Use the network menu to connect to a wireless network" -msgstr "使用網路選單來連線到無線網路" +#: ../src/applet.c:3361 +msgid "NetworkManager Applet" +msgstr "NetworkManager 面板程式" -#: ../src/applet-device-wifi.c:1085 ../src/applet.c:901 -msgid "Don't show this message again" -msgstr "不要再顯示這個訊息" +#: ../src/applet-device-bt.c:173 ../src/applet-device-cdma.c:396 +#: ../src/applet-device-ethernet.c:240 ../src/applet-device-gsm.c:444 +#: ../src/applet-device-wifi.c:862 ../src/applet-device-wimax.c:279 +msgid "Available" +msgstr "可用" -#: ../src/applet-device-wifi.c:1277 +#: ../src/applet-device-bt.c:199 ../src/applet-device-cdma.c:438 +#: ../src/applet-device-ethernet.c:269 ../src/applet-device-gsm.c:486 +#: ../src/applet-device-wimax.c:423 #, c-format -msgid "You are now connected to the wireless network '%s'." -msgstr "您現在已連線到無線網路「%s」。" +msgid "You are now connected to '%s'." +msgstr "您現在已連線至「%s」。" -#: ../src/applet-device-wifi.c:1308 -#, c-format -msgid "Preparing wireless network connection '%s'..." -msgstr "正在準備無線網路連線「%s」…" +#: ../src/applet-device-bt.c:203 ../src/applet-device-cdma.c:442 +#: ../src/applet-device-ethernet.c:273 ../src/applet-device-gsm.c:490 +#: ../src/applet-device-wifi.c:1264 ../src/applet-device-wimax.c:427 +msgid "Connection Established" +msgstr "已建立連線" -#: ../src/applet-device-wifi.c:1311 -#, c-format -msgid "Configuring wireless network connection '%s'..." -msgstr "正在設定無線網路連線「%s」…" +#: ../src/applet-device-bt.c:204 +msgid "You are now connected to the mobile broadband network." +msgstr "您現在已連線至行動寬頻網路。" -#: ../src/applet-device-wifi.c:1314 +#: ../src/applet-device-bt.c:230 ../src/applet-device-cdma.c:478 +#: ../src/applet-device-gsm.c:526 ../src/applet-device-wimax.c:464 #, c-format -msgid "User authentication required for wireless network '%s'..." -msgstr "無線網路「%s」要求使用者驗證…" +msgid "Preparing mobile broadband connection '%s'..." +msgstr "正在準備行動寬頻連線「%s」…" -#: ../src/applet-device-wifi.c:1317 +#: ../src/applet-device-bt.c:233 ../src/applet-device-cdma.c:481 +#: ../src/applet-device-gsm.c:529 ../src/applet-device-wimax.c:467 #, c-format -msgid "Requesting a wireless network address for '%s'..." -msgstr "正在要求無線網路「%s」提供網路位址…" +msgid "Configuring mobile broadband connection '%s'..." +msgstr "正在設定行動寬頻連線「%s」…" -#: ../src/applet-device-wifi.c:1338 +#: ../src/applet-device-bt.c:236 ../src/applet-device-cdma.c:484 +#: ../src/applet-device-gsm.c:532 ../src/applet-device-wimax.c:470 #, c-format -msgid "Wireless network connection '%s' active: %s (%d%%)" -msgstr "無線網路連線「%s」在使用中: %s (%d%%)" +msgid "User authentication required for mobile broadband connection '%s'..." +msgstr "行動寬頻連線「%s」需要使用者驗證…" -#: ../src/applet-device-wifi.c:1343 +#: ../src/applet-device-bt.c:243 ../src/applet-device-cdma.c:505 +#: ../src/applet-device-gsm.c:553 #, c-format -msgid "Wireless network connection '%s' active" -msgstr "無線網路連線「%s」在使用中" +msgid "Mobile broadband connection '%s' active" +msgstr "行動寬頻連線「%s」在使用中" -#: ../src/applet-device-wimax.c:231 -#, c-format -msgid "WiMAX Mobile Broadband (%s)" -msgstr "WiMAX 行動寬頻 (%s)" +#: ../src/applet-device-cdma.c:181 ../src/connection-editor/page-mobile.c:700 +#: ../src/mb-menu-item.c:54 +msgid "CDMA" +msgstr "CDMA" -#: ../src/applet-device-wimax.c:233 -msgid "WiMAX Mobile Broadband" -msgstr "WiMAX 行動寬頻" +#: ../src/applet-device-cdma.c:342 ../src/applet-device-gsm.c:390 +#: ../src/applet-dialogs.c:424 +#, c-format +msgid "Mobile Broadband (%s)" +msgstr "行動寬頻 (%s)" -#: ../src/applet-device-wimax.c:259 -msgid "WiMAX is disabled" -msgstr "WiMAX 已停用" +#: ../src/applet-device-cdma.c:344 ../src/applet-device-gsm.c:392 +#: ../src/connection-editor/new-connection.c:87 +#: ../src/connection-editor/page-mobile.c:380 +msgid "Mobile Broadband" +msgstr "行動寬頻" -#: ../src/applet-device-wimax.c:260 -msgid "WiMAX is disabled by hardware switch" -msgstr "WiMAX 已被硬體開關停用" +#. Default connection item +#: ../src/applet-device-cdma.c:409 +msgid "New Mobile Broadband (CDMA) connection..." +msgstr "新的行動寬頻 (CDMA) 連線…" -#: ../src/applet-device-wimax.c:428 -msgid "You are now connected to the WiMAX network." -msgstr "您現在已連線至 WiMAX 網路。" +#: ../src/applet-device-cdma.c:443 +msgid "You are now connected to the CDMA network." +msgstr "您現在已連線至 CDMA 網路。" -#: ../src/applet-dialogs.c:57 -msgid "Error displaying connection information:" -msgstr "顯示連線資訊發生錯誤:" +#: ../src/applet-device-cdma.c:500 ../src/applet-device-gsm.c:548 +#: ../src/applet-device-wimax.c:482 +#, c-format +msgid "Mobile broadband connection '%s' active: (%d%%%s%s)" +msgstr "行動寬頻連線「%s」在使用中:(%d%%%s%s)" -#: ../src/applet-dialogs.c:109 -#: ../src/connection-editor/page-wireless-security.c:285 -#: ../src/libnm-gtk/nm-wireless-dialog.c:949 -#: ../src/wireless-security/wireless-security.c:397 -msgid "LEAP" -msgstr "LEAP" +#: ../src/applet-device-cdma.c:503 ../src/applet-device-gsm.c:551 +#: ../src/applet-device-wimax.c:485 +msgid "roaming" +msgstr "漫遊" -#: ../src/applet-dialogs.c:111 -msgid "Dynamic WEP" -msgstr "動態 WEP" +#: ../src/applet-device-cdma.c:644 ../src/applet-device-cdma.c:650 +msgid "CDMA network." +msgstr "CDMA 網路。" -#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:246 -#: ../src/applet-dialogs.c:248 -msgid "WPA/WPA2" -msgstr "WPA/WPA2" +#: ../src/applet-device-cdma.c:645 ../src/applet-device-gsm.c:1196 +msgid "You are now registered on the home network." +msgstr "您現在已註冊至家用網路。" -#: ../src/applet-dialogs.c:244 -msgid "WEP" -msgstr "WEP" +#: ../src/applet-device-cdma.c:651 ../src/applet-device-gsm.c:1202 +msgid "You are now registered on a roaming network." +msgstr "您現在已註冊至漫遊網路。" -#: ../src/applet-dialogs.c:252 ../src/applet-dialogs.c:261 -#: ../src/connection-editor/page-wireless-security.c:239 -#: ../src/libnm-gtk/nm-wireless-dialog.c:906 -msgctxt "Wifi/wired security" -msgid "None" -msgstr "沒有" +#: ../src/applet-device-ethernet.c:62 +msgid "Auto Ethernet" +msgstr "自動乙太網路" -#: ../src/applet-dialogs.c:352 ../src/applet-dialogs.c:490 +#: ../src/applet-device-ethernet.c:205 #, c-format -msgid "%u Mb/s" -msgstr "%u Mb/s" - -#: ../src/applet-dialogs.c:354 ../src/applet-dialogs.c:492 -msgctxt "Speed" -msgid "Unknown" -msgstr "不明" +msgid "Ethernet Networks (%s)" +msgstr "有線網路 (%s)" -#: ../src/applet-dialogs.c:367 +#: ../src/applet-device-ethernet.c:207 #, c-format -msgid "%d dB" -msgstr "%d dB" +msgid "Ethernet Network (%s)" +msgstr "有線網路 (%s)" -#: ../src/applet-dialogs.c:369 -msgctxt "WiMAX CINR" -msgid "unknown" -msgstr "不明" +#: ../src/applet-device-ethernet.c:210 +msgid "Ethernet Networks" +msgstr "有線網路" -#: ../src/applet-dialogs.c:381 -msgctxt "WiMAX Base Station ID" -msgid "unknown" -msgstr "不明" +#: ../src/applet-device-ethernet.c:212 +msgid "Ethernet Network" +msgstr "有線網路" + +#: ../src/applet-device-ethernet.c:274 +msgid "You are now connected to the ethernet network." +msgstr "您現在已連線至有線網路。" -#: ../src/applet-dialogs.c:416 +#: ../src/applet-device-ethernet.c:300 #, c-format -msgid "Ethernet (%s)" -msgstr "乙太網路 (%s)" +msgid "Preparing ethernet network connection '%s'..." +msgstr "正在準備有線網路連線「%s」…" -#: ../src/applet-dialogs.c:419 +#: ../src/applet-device-ethernet.c:303 #, c-format -msgid "802.11 WiFi (%s)" -msgstr "802.11 WiFi (%s)" +msgid "Configuring ethernet network connection '%s'..." +msgstr "正在設定有線網路連線「%s」…" -#: ../src/applet-dialogs.c:426 +#: ../src/applet-device-ethernet.c:306 #, c-format -msgid "GSM (%s)" -msgstr "GSM (%s)" +msgid "User authentication required for ethernet network connection '%s'..." +msgstr "有線網路連線「%s」需要使用者驗證…" -#: ../src/applet-dialogs.c:428 +#: ../src/applet-device-ethernet.c:309 #, c-format -msgid "CDMA (%s)" -msgstr "CDMA (%s)" +msgid "Requesting an ethernet network address for '%s'..." +msgstr "正要求有線網路「%s」提供網路位址…" -#: ../src/applet-dialogs.c:432 +#: ../src/applet-device-ethernet.c:313 #, c-format -msgid "WiMAX (%s)" -msgstr "WiMAX (%s)" +msgid "Ethernet network connection '%s' active" +msgstr "有線網路連線「%s」在使用中" -#. --- General --- -#: ../src/applet-dialogs.c:438 ../src/applet-dialogs.c:797 -msgid "General" -msgstr "一般" +#: ../src/applet-device-ethernet.c:494 +msgid "DSL authentication" +msgstr "DSL 驗證" -#: ../src/applet-dialogs.c:442 -msgid "Interface:" -msgstr "介面:" +#: ../src/applet-device-gsm.c:211 ../src/connection-editor/page-mobile.c:703 +#: ../src/mb-menu-item.c:59 +msgid "GSM" +msgstr "GSM" -#: ../src/applet-dialogs.c:458 -msgid "Hardware Address:" -msgstr "硬體位址:" +#. Default connection item +#: ../src/applet-device-gsm.c:457 +msgid "New Mobile Broadband (GSM) connection..." +msgstr "新的行動寬頻 (GSM) 連線…" -#. Driver -#: ../src/applet-dialogs.c:466 -msgid "Driver:" -msgstr "驅動程式:" +#: ../src/applet-device-gsm.c:491 +msgid "You are now connected to the GSM network." +msgstr "您現在已連線至 GSM 網路。" -#: ../src/applet-dialogs.c:495 -msgid "Speed:" -msgstr "速度:" +#: ../src/applet-device-gsm.c:652 +msgid "PIN code required" +msgstr "需要 PIN 碼" -#: ../src/applet-dialogs.c:505 -msgid "Security:" -msgstr "安全性:" +#: ../src/applet-device-gsm.c:660 +msgid "PIN code is needed for the mobile broadband device" +msgstr "這個行動寬頻裝置需要 PIN 碼" -#: ../src/applet-dialogs.c:518 +#: ../src/applet-device-gsm.c:781 +#, c-format +msgid "PIN code for SIM card '%s' on '%s'" +msgstr "SIM 卡「%s」在「%s」的 PIN 碼" + +#: ../src/applet-device-gsm.c:873 +msgid "Wrong PIN code; please contact your provider." +msgstr "PIN 碼錯誤,請聯絡您的供應商。" + +#: ../src/applet-device-gsm.c:896 +msgid "Wrong PUK code; please contact your provider." +msgstr "PUK 碼錯誤,請聯絡您的供應商。" + +#. Start the spinner to show the progress of the unlock +#: ../src/applet-device-gsm.c:923 +msgid "Sending unlock code..." +msgstr "發送解鎖用的密碼…" + +#: ../src/applet-device-gsm.c:986 +msgid "SIM PIN unlock required" +msgstr "需要解鎖 SIM PIN 碼" + +#: ../src/applet-device-gsm.c:987 +msgid "SIM PIN Unlock Required" +msgstr "需要解鎖 SIM PIN 碼" + +#. FIXME: some warning about # of times you can enter incorrect PIN +#: ../src/applet-device-gsm.c:989 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PIN code before it can be " +"used." +msgstr "要使用行動寬頻裝置「%s」之前,需要 SIM PIN 碼。" + +#. Translators: PIN code entry label +#: ../src/applet-device-gsm.c:991 +msgid "PIN code:" +msgstr "PIN 碼:" + +#. Translators: Show/obscure PIN checkbox label +#: ../src/applet-device-gsm.c:995 +msgid "Show PIN code" +msgstr "顯示 PIN 碼" + +#: ../src/applet-device-gsm.c:998 +msgid "SIM PUK unlock required" +msgstr "需要解鎖 SIM PUK 碼" + +#: ../src/applet-device-gsm.c:999 +msgid "SIM PUK Unlock Required" +msgstr "需要解鎖 SIM PUK 碼" + +#. FIXME: some warning about # of times you can enter incorrect PUK +#: ../src/applet-device-gsm.c:1001 +#, c-format +msgid "" +"The mobile broadband device '%s' requires a SIM PUK code before it can be " +"used." +msgstr "要使用行動寬頻裝置「%s」之前,需要 SIM PUK 碼。" + +#. Translators: PUK code entry label +#: ../src/applet-device-gsm.c:1003 +msgid "PUK code:" +msgstr "PUK 碼:" + +#. Translators: New PIN entry label +#: ../src/applet-device-gsm.c:1006 +msgid "New PIN code:" +msgstr "新的 PIN 碼:" + +#. Translators: New PIN verification entry label +#: ../src/applet-device-gsm.c:1008 +msgid "Re-enter new PIN code:" +msgstr "重新輸入 PIN 碼:" + +#. Translators: Show/obscure PIN/PUK checkbox label +#: ../src/applet-device-gsm.c:1013 +msgid "Show PIN/PUK codes" +msgstr "顯示 PIN/PUK 碼" + +#: ../src/applet-device-gsm.c:1195 ../src/applet-device-gsm.c:1201 +msgid "GSM network." +msgstr "GSM 網路。" + +#: ../src/applet-device-wifi.c:97 +msgid "_Connect to Hidden Wi-Fi Network..." +msgstr "連接到隱藏的 Wi-Fi 網路(_C)…" + +#: ../src/applet-device-wifi.c:148 +msgid "Create _New Wi-Fi Network..." +msgstr "建立新的 Wi-Fi 網路(_N)…" + +#: ../src/applet-device-wifi.c:292 +msgid "(none)" +msgstr "(無)" + +#: ../src/applet-device-wifi.c:790 +#, c-format +msgid "Wi-Fi Networks (%s)" +msgstr "Wi-Fi 網路 (%s)" + +#: ../src/applet-device-wifi.c:792 +#, c-format +msgid "Wi-Fi Network (%s)" +msgstr "Wi-Fi 網路 (%s)" + +#: ../src/applet-device-wifi.c:794 +msgid "Wi-Fi Network" +msgid_plural "Wi-Fi Networks" +msgstr[0] "Wi-Fi 網路" + +#: ../src/applet-device-wifi.c:827 +msgid "Wi-Fi is disabled" +msgstr "Wi-Fi 已停用" + +#: ../src/applet-device-wifi.c:828 +msgid "Wi-Fi is disabled by hardware switch" +msgstr "Wi-Fi 已被硬體開關停用" + +#: ../src/applet-device-wifi.c:889 +msgid "More networks" +msgstr "更多網路" + +#: ../src/applet-device-wifi.c:1068 +msgid "Wi-Fi Networks Available" +msgstr "有 Wi-Fi 網路可用" + +#: ../src/applet-device-wifi.c:1069 +msgid "Use the network menu to connect to a Wi-Fi network" +msgstr "使用網路選單來連線到 Wi-Fi 網路" + +#: ../src/applet-device-wifi.c:1263 +#, c-format +msgid "You are now connected to the Wi-Fi network '%s'." +msgstr "您現在已連線至 Wi-Fi 網路「%s」。" + +#: ../src/applet-device-wifi.c:1294 +#, c-format +msgid "Preparing Wi-Fi network connection '%s'..." +msgstr "正在準備 Wi-Fi 網路連線「%s」…" + +#: ../src/applet-device-wifi.c:1297 +#, c-format +msgid "Configuring Wi-Fi network connection '%s'..." +msgstr "正在設定 Wi-Fi 網路連線「%s」…" + +#: ../src/applet-device-wifi.c:1300 +#, c-format +msgid "User authentication required for Wi-Fi network '%s'..." +msgstr "Wi-Fi 網路連線「%s」需要使用者驗證…" + +#: ../src/applet-device-wifi.c:1303 +#, c-format +msgid "Requesting a Wi-Fi network address for '%s'..." +msgstr "正在要求提供「%s」的 Wi-Fi 網路位址…" + +#: ../src/applet-device-wifi.c:1324 +#, c-format +msgid "Wi-Fi network connection '%s' active: %s (%d%%)" +msgstr "Wi-Fi 網路連線「%s」在使用中: %s (%d%%)" + +#: ../src/applet-device-wifi.c:1329 +#, c-format +msgid "Wi-Fi network connection '%s' active" +msgstr "Wi-Fi 網路連線「%s」在使用中" + +#: ../src/applet-device-wifi.c:1377 +msgid "Failed to activate connection" +msgstr "無法使用連線" + +#: ../src/applet-device-wifi.c:1396 +msgid "Failed to add new connection" +msgstr "無法加入新連線" + +#: ../src/applet-device-wimax.c:231 +#, c-format +msgid "WiMAX Mobile Broadband (%s)" +msgstr "WiMAX 行動寬頻 (%s)" + +#: ../src/applet-device-wimax.c:233 +msgid "WiMAX Mobile Broadband" +msgstr "WiMAX 行動寬頻" + +#: ../src/applet-device-wimax.c:259 +msgid "WiMAX is disabled" +msgstr "WiMAX 已停用" + +#: ../src/applet-device-wimax.c:260 +msgid "WiMAX is disabled by hardware switch" +msgstr "WiMAX 已被硬體開關停用" + +#: ../src/applet-device-wimax.c:428 +msgid "You are now connected to the WiMAX network." +msgstr "您現在已連線至 WiMAX 網路。" + +#: ../src/applet-dialogs.c:57 +msgid "Error displaying connection information:" +msgstr "顯示連線資訊發生錯誤:" + +#: ../src/applet-dialogs.c:109 +#: ../src/connection-editor/page-wifi-security.c:313 +#: ../src/libnm-gtk/nm-wifi-dialog.c:929 +#: ../src/wireless-security/wireless-security.c:406 +msgid "LEAP" +msgstr "LEAP" + +#: ../src/applet-dialogs.c:111 +msgid "Dynamic WEP" +msgstr "動態 WEP" + +#: ../src/applet-dialogs.c:113 ../src/applet-dialogs.c:245 +#: ../src/applet-dialogs.c:247 +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +#: ../src/applet-dialogs.c:243 +msgid "WEP" +msgstr "WEP" + +#: ../src/applet-dialogs.c:251 ../src/applet-dialogs.c:260 +#: ../src/libnm-gtk/nm-wifi-dialog.c:886 +msgctxt "Wifi/wired security" +msgid "None" +msgstr "沒有" + +#: ../src/applet-dialogs.c:277 +#, c-format +msgid "%s (default)" +msgstr "%s (預設值)" + +#: ../src/applet-dialogs.c:346 ../src/applet-dialogs.c:484 +#, c-format +msgid "%u Mb/s" +msgstr "%u Mb/s" + +#: ../src/applet-dialogs.c:348 ../src/applet-dialogs.c:486 +msgctxt "Speed" +msgid "Unknown" +msgstr "不明" + +#: ../src/applet-dialogs.c:361 +#, c-format +msgid "%d dB" +msgstr "%d dB" + +#: ../src/applet-dialogs.c:363 +msgctxt "WiMAX CINR" +msgid "unknown" +msgstr "不明" + +#: ../src/applet-dialogs.c:375 +msgctxt "WiMAX Base Station ID" +msgid "unknown" +msgstr "不明" + +#: ../src/applet-dialogs.c:410 +#, c-format +msgid "Ethernet (%s)" +msgstr "乙太網路 (%s)" + +#: ../src/applet-dialogs.c:413 +#, c-format +msgid "802.11 WiFi (%s)" +msgstr "802.11 WiFi (%s)" + +#: ../src/applet-dialogs.c:420 +#, c-format +msgid "GSM (%s)" +msgstr "GSM (%s)" + +#: ../src/applet-dialogs.c:422 +#, c-format +msgid "CDMA (%s)" +msgstr "CDMA (%s)" + +#: ../src/applet-dialogs.c:426 +#, c-format +msgid "WiMAX (%s)" +msgstr "WiMAX (%s)" + +#. --- General --- +#: ../src/applet-dialogs.c:432 ../src/applet-dialogs.c:791 +msgid "General" +msgstr "一般" + +#: ../src/applet-dialogs.c:436 +msgid "Interface:" +msgstr "介面:" + +#: ../src/applet-dialogs.c:452 +msgid "Hardware Address:" +msgstr "硬體位址:" + +#. Driver +#: ../src/applet-dialogs.c:460 +msgid "Driver:" +msgstr "驅動程式:" + +#: ../src/applet-dialogs.c:489 +msgid "Speed:" +msgstr "速度:" + +#: ../src/applet-dialogs.c:499 +msgid "Security:" +msgstr "安全性:" + +#: ../src/applet-dialogs.c:512 msgid "CINR:" msgstr "CINR:" -#: ../src/applet-dialogs.c:531 +#: ../src/applet-dialogs.c:525 msgid "BSID:" msgstr "BSID:" #. --- IPv4 --- -#: ../src/applet-dialogs.c:548 +#: ../src/applet-dialogs.c:542 msgid "IPv4" msgstr "IPv4" #. Address -#: ../src/applet-dialogs.c:559 ../src/applet-dialogs.c:666 +#: ../src/applet-dialogs.c:553 ../src/applet-dialogs.c:660 msgid "IP Address:" msgstr "IP 位址:" -#: ../src/applet-dialogs.c:561 ../src/applet-dialogs.c:577 +#: ../src/applet-dialogs.c:555 ../src/applet-dialogs.c:571 msgctxt "Address" msgid "Unknown" msgstr "不明" -#: ../src/applet-dialogs.c:575 +#: ../src/applet-dialogs.c:569 msgid "Broadcast Address:" msgstr "廣播位址:" #. Prefix -#: ../src/applet-dialogs.c:584 +#: ../src/applet-dialogs.c:578 msgid "Subnet Mask:" msgstr "子網路遮罩:" -#: ../src/applet-dialogs.c:586 +#: ../src/applet-dialogs.c:580 msgctxt "Subnet Mask" msgid "Unknown" msgstr "不明" -#: ../src/applet-dialogs.c:594 ../src/applet-dialogs.c:681 +#: ../src/applet-dialogs.c:588 ../src/applet-dialogs.c:675 msgid "Default Route:" msgstr "預設路由:" -#: ../src/applet-dialogs.c:606 +#: ../src/applet-dialogs.c:600 msgid "Primary DNS:" msgstr "主要 DNS:" -#: ../src/applet-dialogs.c:615 +#: ../src/applet-dialogs.c:609 msgid "Secondary DNS:" msgstr "次要 DNS:" -#: ../src/applet-dialogs.c:625 +#: ../src/applet-dialogs.c:619 msgid "Ternary DNS:" msgstr "第三 DNS:" #. --- IPv6 --- -#: ../src/applet-dialogs.c:640 +#: ../src/applet-dialogs.c:634 msgid "IPv6" msgstr "IPv6" -#: ../src/applet-dialogs.c:649 +#: ../src/applet-dialogs.c:643 msgid "Ignored" msgstr "已忽略" -#: ../src/applet-dialogs.c:802 +#: ../src/applet-dialogs.c:796 msgid "VPN Type:" msgstr "VPN 類型:" -#: ../src/applet-dialogs.c:809 +#: ../src/applet-dialogs.c:803 msgid "VPN Gateway:" msgstr "VPN 閘道器:" -#: ../src/applet-dialogs.c:815 +#: ../src/applet-dialogs.c:809 msgid "VPN Username:" msgstr "VPN 使用者名稱:" -#: ../src/applet-dialogs.c:821 +#: ../src/applet-dialogs.c:815 msgid "VPN Banner:" msgstr "VPN 旗幟:" -#: ../src/applet-dialogs.c:827 +#: ../src/applet-dialogs.c:821 msgid "Base Connection:" msgstr "基礎連線:" -#: ../src/applet-dialogs.c:829 +#: ../src/applet-dialogs.c:823 msgid "Unknown" msgstr "不明" #. Shouldn't really happen but ... -#: ../src/applet-dialogs.c:892 +#: ../src/applet-dialogs.c:886 msgid "No valid active connections found!" msgstr "找不到有效的使用中連線!" -#: ../src/applet-dialogs.c:945 +#: ../src/applet-dialogs.c:939 msgid "" "Copyright © 2004-2011 Red Hat, Inc.\n" "Copyright © 2005-2008 Novell, Inc.\n" @@ -667,478 +1033,408 @@ "Copyright © 2005-2008 Novell, Inc.\n" "與許多其他社群貢獻者與翻譯者" -#: ../src/applet-dialogs.c:948 +#: ../src/applet-dialogs.c:942 msgid "" "Notification area applet for managing your network devices and connections." msgstr "用來管理您的網路裝置與連線的通知區面板程式。" -#: ../src/applet-dialogs.c:950 +#: ../src/applet-dialogs.c:944 msgid "NetworkManager Website" msgstr "NetworkManager 網站" -#: ../src/applet-dialogs.c:965 +#: ../src/applet-dialogs.c:959 msgid "Missing resources" msgstr "遺失資源" -#: ../src/applet-dialogs.c:990 +#: ../src/applet-dialogs.c:984 msgid "Mobile broadband network password" msgstr "行動寬頻網路密碼" -#: ../src/applet-dialogs.c:999 +#: ../src/applet-dialogs.c:993 #, c-format msgid "A password is required to connect to '%s'." msgstr "連線至「%s」需要密碼。" -#: ../src/applet-dialogs.c:1018 +#: ../src/applet-dialogs.c:1012 msgid "Password:" msgstr "密碼:" -#: ../src/applet.c:990 -#, c-format +#: ../src/connection-editor/ce-ip4-routes.ui.h:1 +#: ../src/connection-editor/ce-ip6-routes.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip6.ui.h:8 msgid "" -"\n" -"The VPN connection '%s' failed because the network connection was " -"interrupted." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為網路連線被中斷了。" +"IP addresses identify your computer on the network. Click the \"Add\" " +"button to add an IP address." +msgstr "用來在網路上區別您的電腦的 IP 位址。請按下「新增」按鈕,加入 IP 位址。" -#: ../src/applet.c:993 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service stopped unexpectedly." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為 VPN 服務意外的停止了。" +#: ../src/connection-editor/ce-ip4-routes.ui.h:2 +#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +msgid "Ig_nore automatically obtained routes" +msgstr "忽略自動獲得的路由(_N)" -#: ../src/applet.c:996 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service returned invalid " -"configuration." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為 VPN 服務傳回無效的組態。" +#: ../src/connection-editor/ce-ip4-routes.ui.h:3 +#: ../src/connection-editor/ce-ip6-routes.ui.h:3 +msgid "_Use this connection only for resources on its network" +msgstr "只在使用這個連線的網路資源時,才使用此連線(_U)" -#: ../src/applet.c:999 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the connection attempt timed out." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為連線的嘗試已逾時。" - -#: ../src/applet.c:1002 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service did not start in time." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為 VPN 服務沒有及時啟動。" - -#: ../src/applet.c:1005 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為 VPN 服務啟動失敗。" - -#: ../src/applet.c:1008 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because there were no valid VPN secrets." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為沒有有效的 VPN 服務。" - -#: ../src/applet.c:1011 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because of invalid VPN secrets." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為無效的 VPN 機密。" - -#: ../src/applet.c:1018 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed." -msgstr "" -"\n" -"VPN 連線「%s」失敗。" - -#: ../src/applet.c:1036 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the network connection was " -"interrupted." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為網路連線中斷了。" - -#: ../src/applet.c:1039 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' disconnected because the VPN service stopped." -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為 VPN 服務已停止。" - -#: ../src/applet.c:1045 -#, c-format +#: ../src/connection-editor/ce-ip4-routes.ui.h:4 +#: ../src/connection-editor/ce-ip6-routes.ui.h:4 msgid "" -"\n" -"The VPN connection '%s' disconnected." -msgstr "" -"\n" -"VPN 連線「%s」已斷線。" - -#: ../src/applet.c:1079 -msgid "VPN Login Message" -msgstr "VPN 登錄訊息" +"If enabled, this connection will never be used as the default network " +"connection." +msgstr "如果啟用,這個連線將永遠不會做為預設網路連線。" -#: ../src/applet.c:1085 ../src/applet.c:1093 ../src/applet.c:1143 -msgid "VPN Connection Failed" -msgstr "VPN 連線失敗" +#: ../src/connection-editor/ce-new-connection.ui.h:1 +#: ../src/libnm-gtk/wifi.ui.h:1 +#: ../src/wireless-security/eap-method-fast.ui.h:1 +#: ../src/wireless-security/eap-method-peap.ui.h:1 +#: ../src/wireless-security/eap-method-ttls.ui.h:1 +#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 +#: ../src/wireless-security/ws-wpa-eap.ui.h:1 +msgid " " +msgstr " " -#: ../src/applet.c:1150 -#, c-format -msgid "" -"\n" -"The VPN connection '%s' failed because the VPN service failed to start.\n" -"\n" -"%s" -msgstr "" -"\n" -"VPN 連線「%s」失敗,因為 VPN 服務啟動失敗。\n" -"\n" -"%s" +#: ../src/connection-editor/ce-new-connection.ui.h:2 +msgid "Choose a Connection Type" +msgstr "請選擇連線類型" -#: ../src/applet.c:1153 -#, c-format +#: ../src/connection-editor/ce-new-connection.ui.h:3 msgid "" +"Select the type of connection you wish to create.\n" "\n" -"The VPN connection '%s' failed to start.\n" -"\n" -"%s" +"If you are creating a VPN, and the VPN connection you wish to create does " +"not appear in the list, you may not have the correct VPN plugin installed." msgstr "" +"選擇您想要建立的連線類型。\n" "\n" -"VPN 連線「%s」啟動失敗。\n" -"\n" -"%s" - -#: ../src/applet.c:1473 -msgid "device not ready (firmware missing)" -msgstr "裝置尚未就緒 (缺少韌體)" - -#: ../src/applet.c:1475 -msgid "device not ready" -msgstr "裝置尚未就緒" - -#: ../src/applet.c:1501 -msgid "Disconnect" -msgstr "斷線" - -#: ../src/applet.c:1515 -msgid "device not managed" -msgstr "裝置無法管理" - -#: ../src/applet.c:1559 -msgid "No network devices available" -msgstr "沒有可用的網路裝置" +"如果要建立 VPN,而您想要建立的 VPN 連線類型沒有出現在清單中,可能是沒有安裝正" +"確的 VPN 外掛程式。" -#: ../src/applet.c:1647 -msgid "_VPN Connections" -msgstr "_VPN 連線" - -#: ../src/applet.c:1704 -msgid "_Configure VPN..." -msgstr "設置 VPN(_C)…" - -#: ../src/applet.c:1708 -msgid "_Disconnect VPN" -msgstr "與 VPN 斷線(_D)" +#: ../src/connection-editor/ce-new-connection.ui.h:6 +msgid "Create…" +msgstr "建立…" -#: ../src/applet.c:1806 -msgid "NetworkManager is not running..." -msgstr "NetworkManager 沒有執行…." +#: ../src/connection-editor/ce-page.c:72 +msgid "automatic" +msgstr "自動" -#: ../src/applet.c:1811 ../src/applet.c:2604 -msgid "Networking disabled" -msgstr "網路已停用" +#: ../src/connection-editor/ce-page.c:294 +msgid "Failed to update connection secrets due to an unknown error." +msgstr "由於不明的錯誤使連線機密的更新失敗。" -#. 'Enable Networking' item -#: ../src/applet.c:2032 -msgid "Enable _Networking" -msgstr "啟用網路(_N)" +#: ../src/connection-editor/ce-page-bond.ui.h:1 +#, fuzzy +msgid "Round-robin" +msgstr "四捨五入位數" + +#: ../src/connection-editor/ce-page-bond.ui.h:2 +#, fuzzy +msgid "Active backup" +msgstr "全部備份(_A)" + +#: ../src/connection-editor/ce-page-bond.ui.h:3 +msgid "XOR" +msgstr "XOR" + +#: ../src/connection-editor/ce-page-bond.ui.h:4 +msgid "Broadcast" +msgstr "廣播" + +#: ../src/connection-editor/ce-page-bond.ui.h:5 +msgid "802.3ad" +msgstr "802.3ad" + +#: ../src/connection-editor/ce-page-bond.ui.h:6 +msgid "Adaptive transmit load balancing" +msgstr "適應性傳輸負載平衡" + +#: ../src/connection-editor/ce-page-bond.ui.h:7 +msgid "Adaptive load balancing" +msgstr "適應性負載平衡" + +#: ../src/connection-editor/ce-page-bond.ui.h:8 +msgid "MII (recommended)" +msgstr "MII (建議值)" + +#: ../src/connection-editor/ce-page-bond.ui.h:9 +msgid "ARP" +msgstr "ARP" + +#: ../src/connection-editor/ce-page-bond.ui.h:10 +#, fuzzy +#| msgid "Base Connection:" +msgid "Bonded _connections:" +msgstr "VPN 連線" + +#: ../src/connection-editor/ce-page-bond.ui.h:11 +msgid "_Mode:" +msgstr "模式(_M):" + +#. Edit +#: ../src/connection-editor/ce-page-bond.ui.h:12 +#: ../src/connection-editor/nm-connection-list.c:680 +msgid "_Edit" +msgstr "編輯(_E)" -#. 'Enable Wireless' item -#: ../src/applet.c:2041 -msgid "Enable _Wireless" -msgstr "啟用無線網路(_W)" +#. Delete +#: ../src/connection-editor/ce-page-bond.ui.h:13 +#: ../src/connection-editor/nm-connection-list.c:697 +msgid "_Delete" +msgstr "刪除(_D)" -#. 'Enable Mobile Broadband' item -#: ../src/applet.c:2050 -msgid "Enable _Mobile Broadband" -msgstr "啟用行動寬頻(_M)" +#: ../src/connection-editor/ce-page-bond.ui.h:14 +msgid "Monitoring _frequency:" +msgstr "監控頻率(_F):" -#. 'Enable WiMAX Mobile Broadband' item -#: ../src/applet.c:2059 -msgid "Enable WiMA_X Mobile Broadband" -msgstr "啟用 WiMA_X 行動寬頻" +#: ../src/connection-editor/ce-page-bond.ui.h:15 +msgid "ms" +msgstr "毫秒" -#. Toggle notifications item -#: ../src/applet.c:2070 -msgid "Enable N_otifications" -msgstr "啟用通知功能(_O)" +#: ../src/connection-editor/ce-page-bond.ui.h:16 +msgid "_Interface name:" +msgstr "介面名稱(_I):" -#. 'Connection Information' item -#: ../src/applet.c:2081 -msgid "Connection _Information" -msgstr "連線資訊(_I)" +#: ../src/connection-editor/ce-page-bond.ui.h:17 +msgid "_Link Monitoring:" +msgstr "連線監控(_L):" -#. 'Edit Connections...' item -#: ../src/applet.c:2091 -msgid "Edit Connections..." -msgstr "編輯連線…" +#: ../src/connection-editor/ce-page-bond.ui.h:18 +msgid "ARP _targets:" +msgstr "ARP 目標(_T):" -#. Help item -#: ../src/applet.c:2105 -msgid "_Help" -msgstr "求助(_H)" +#: ../src/connection-editor/ce-page-bond.ui.h:19 +msgid "" +"An IP address, or a comma-separated list of IP addresses, to look for when " +"checking the link status." +msgstr "" +"一個 IP 位址,或以逗號分隔的 IP 位址清單,這是在檢查連線狀態時查詢用的。" -#. About item -#: ../src/applet.c:2114 -msgid "_About" -msgstr "關於(_A)" +#: ../src/connection-editor/ce-page-bond.ui.h:20 +msgid "Link _up delay:" +msgstr "連線延遲(_U):" -#: ../src/applet.c:2291 -msgid "Disconnected" -msgstr "已斷線" +#: ../src/connection-editor/ce-page-bond.ui.h:21 +msgid "Link _down delay:" +msgstr "斷線延遲(_D):" -#: ../src/applet.c:2292 -msgid "The network connection has been disconnected." -msgstr "網路連線已中斷。" +#: ../src/connection-editor/ce-page-dsl.ui.h:1 +#: ../src/connection-editor/ce-page-mobile.ui.h:8 +#: ../src/wireless-security/eap-method-leap.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/ws-leap.ui.h:1 +msgid "_Username:" +msgstr "使用者名稱(_U):" -#: ../src/applet.c:2473 -#, c-format -msgid "Preparing network connection '%s'..." -msgstr "正在準備網路連線「%s」…" +#: ../src/connection-editor/ce-page-dsl.ui.h:2 +msgid "_Service:" +msgstr "服務(_S):" -#: ../src/applet.c:2476 -#, c-format -msgid "User authentication required for network connection '%s'..." -msgstr "網路連線「%s」需要使用者驗證…" +#: ../src/connection-editor/ce-page-dsl.ui.h:3 +#: ../src/wireless-security/eap-method-leap.ui.h:3 +#: ../src/wireless-security/eap-method-simple.ui.h:4 +#: ../src/wireless-security/eap-method-tls.ui.h:6 +#: ../src/wireless-security/ws-leap.ui.h:3 +#: ../src/wireless-security/ws-wpa-psk.ui.h:3 +msgid "Sho_w password" +msgstr "顯示密碼(_W)" -#: ../src/applet.c:2482 -#, c-format -msgid "Network connection '%s' active" -msgstr "網路連線「%s」在使用中" +#: ../src/connection-editor/ce-page-dsl.ui.h:4 +#: ../src/connection-editor/ce-page-mobile.ui.h:9 +#: ../src/wireless-security/eap-method-leap.ui.h:2 +#: ../src/wireless-security/eap-method-simple.ui.h:2 +#: ../src/wireless-security/ws-leap.ui.h:2 +#: ../src/wireless-security/ws-wpa-psk.ui.h:1 +msgid "_Password:" +msgstr "密碼(_P):" -#: ../src/applet.c:2560 -#, c-format -msgid "Starting VPN connection '%s'..." -msgstr "正在啟動 VPN 連線「%s」…" +#: ../src/connection-editor/ce-page-ethernet.ui.h:1 +#: ../src/connection-editor/ce-page-ip4.ui.h:1 +#: ../src/connection-editor/ce-page-ip6.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:1 +#: ../src/connection-editor/page-ip6.c:142 +#: ../src/wireless-security/eap-method-peap.ui.h:2 +msgid "Automatic" +msgstr "自動" -#: ../src/applet.c:2563 -#, c-format -msgid "User authentication required for VPN connection '%s'..." -msgstr "VPN 連線「%s」需要使用者驗證…" +#: ../src/connection-editor/ce-page-ethernet.ui.h:2 +msgid "Twisted Pair (TP)" +msgstr "雙絞線 (TP)" -#: ../src/applet.c:2566 -#, c-format -msgid "Requesting a VPN address for '%s'..." -msgstr "正在要求 VPN 提供「%s」的網路位址…" +#: ../src/connection-editor/ce-page-ethernet.ui.h:3 +msgid "Attachment Unit Interface (AUI)" +msgstr "附加單位介面 (AUI)" -#: ../src/applet.c:2569 -#, c-format -msgid "VPN connection '%s' active" -msgstr "VPN 連線「%s」在使用中" +#: ../src/connection-editor/ce-page-ethernet.ui.h:4 +msgid "BNC" +msgstr "BNC" -#: ../src/applet.c:2608 -msgid "No network connection" -msgstr "沒有網路連接" +#: ../src/connection-editor/ce-page-ethernet.ui.h:5 +msgid "Media Independent Interface (MII)" +msgstr "媒體獨立介面 (MII)" -#: ../src/applet.c:3258 -msgid "NetworkManager Applet" -msgstr "NetworkManager 面板程式" +#: ../src/connection-editor/ce-page-ethernet.ui.h:6 +msgid "10 Mb/s" +msgstr "10 Mb/s" -#: ../src/gsm-unlock.ui.h:1 -msgid "Automatically unlock this device" -msgstr "自動解鎖這個裝置" +#: ../src/connection-editor/ce-page-ethernet.ui.h:7 +msgid "100 Mb/s" +msgstr "100 Mb/s" -#: ../src/gsm-unlock.ui.h:2 -msgid "_Unlock" -msgstr "解鎖(_U)" +#: ../src/connection-editor/ce-page-ethernet.ui.h:8 +msgid "1 Gb/s" +msgstr "1 Gb/s" -#: ../src/info.ui.h:1 -msgid "Active Network Connections" -msgstr "啟用網路連線" +#: ../src/connection-editor/ce-page-ethernet.ui.h:9 +msgid "10 Gb/s" +msgstr "10 Gb/s" -#: ../src/info.ui.h:2 -msgid "Connection Information" -msgstr "連線資訊" +#: ../src/connection-editor/ce-page-ethernet.ui.h:10 +msgid "_Port:" +msgstr "連接埠(_P):" -#: ../src/wired-8021x.ui.h:1 ../src/wired-dialog.c:104 -msgid "Wired 802.1X authentication" -msgstr "有線網路 802.1X 驗證" +#: ../src/connection-editor/ce-page-ethernet.ui.h:11 +msgid "_Speed:" +msgstr "速度(_S):" -#: ../src/wired-8021x.ui.h:2 ../src/libnm-gtk/wifi.ui.h:4 -msgid "_Network name:" -msgstr "網路名稱(_N):" +#: ../src/connection-editor/ce-page-ethernet.ui.h:12 +msgid "Full duple_x" +msgstr "全雙工(_X)" -#: ../src/connection-editor/ce-page.c:72 -msgid "automatic" -msgstr "自動" +#: ../src/connection-editor/ce-page-ethernet.ui.h:13 +msgid "Aut_onegotiate" +msgstr "自動協議(_O)" -#: ../src/connection-editor/ce-page.c:310 -msgid "Failed to update connection secrets due to an unknown error." -msgstr "由於不明的錯誤使連線機密的更新失敗。" +#: ../src/connection-editor/ce-page-ethernet.ui.h:14 +#: ../src/connection-editor/ce-page-infiniband.ui.h:2 +#: ../src/connection-editor/ce-page-wifi.ui.h:8 +#: ../src/connection-editor/ce-page-wimax.ui.h:1 +msgid "_Device MAC address:" +msgstr "裝置的 MAC 位址(_D):" -#: ../src/connection-editor/ce-ip4-routes.ui.h:1 -#: ../src/connection-editor/ce-ip6-routes.ui.h:1 -#: ../src/connection-editor/ce-page-ip4.ui.h:6 -#: ../src/connection-editor/ce-page-ip6.ui.h:5 -msgid "" -"IP addresses identify your computer on the network. Click the \"Add\" " -"button to add an IP address." -msgstr "用來在網路上區別您的電腦的 IP 位址。請按下「新增」按鈕,加入 IP 位址。" +#: ../src/connection-editor/ce-page-ethernet.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:10 +msgid "C_loned MAC address:" +msgstr "複製的 MAC 位址(_L):" -#: ../src/connection-editor/ce-ip4-routes.ui.h:2 -#: ../src/connection-editor/ce-ip6-routes.ui.h:2 +#: ../src/connection-editor/ce-page-ethernet.ui.h:16 +#: ../src/connection-editor/ce-page-wifi.ui.h:9 msgid "" -"If enabled, this connection will never be used as the default network " -"connection." -msgstr "如果啟用,這個連線將永遠不會做為預設網路連線。" - -#: ../src/connection-editor/ce-ip4-routes.ui.h:3 -#: ../src/connection-editor/ce-ip6-routes.ui.h:3 -msgid "Ig_nore automatically obtained routes" -msgstr "忽略自動獲得的路由(_N)" - -#: ../src/connection-editor/ce-ip4-routes.ui.h:4 -#: ../src/connection-editor/ce-ip6-routes.ui.h:4 -msgid "_Use this connection only for resources on its network" -msgstr "只在使用這個連線的網路資源時,才使用此連線(_U)" - -#: ../src/connection-editor/ce-page-dsl.ui.h:1 -#: ../src/wireless-security/eap-method-leap.ui.h:1 -#: ../src/wireless-security/eap-method-simple.ui.h:2 -#: ../src/wireless-security/eap-method-tls.ui.h:4 -#: ../src/wireless-security/ws-leap.ui.h:1 -#: ../src/wireless-security/ws-wpa-psk.ui.h:1 -msgid "Sho_w password" -msgstr "顯示密碼(_W)" - -#: ../src/connection-editor/ce-page-dsl.ui.h:2 -#: ../src/connection-editor/ce-page-mobile.ui.h:15 -#: ../src/wireless-security/eap-method-leap.ui.h:2 -#: ../src/wireless-security/eap-method-simple.ui.h:3 -#: ../src/wireless-security/ws-leap.ui.h:2 -#: ../src/wireless-security/ws-wpa-psk.ui.h:2 -msgid "_Password:" -msgstr "密碼(_P):" +"The MAC address entered here will be used as hardware address for the " +"network device this connection is activated on. This feature is known as " +"MAC cloning or spoofing. Example: 00:11:22:33:44:55" +msgstr "" +"在這裡輸入的 MAC 位址會成為這個連線使用的網路裝置的硬體位址。這個功能也稱為 " +"MAC 複製或偽裝。例如:00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-dsl.ui.h:3 -msgid "_Service:" -msgstr "服務(_S):" +#: ../src/connection-editor/ce-page-ethernet.ui.h:17 +#: ../src/connection-editor/ce-page-infiniband.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:7 +msgid "_MTU:" +msgstr "_MTU:" -#: ../src/connection-editor/ce-page-dsl.ui.h:4 -#: ../src/connection-editor/ce-page-mobile.ui.h:17 -#: ../src/wireless-security/eap-method-leap.ui.h:3 -#: ../src/wireless-security/eap-method-simple.ui.h:4 -#: ../src/wireless-security/ws-leap.ui.h:3 -msgid "_Username:" -msgstr "使用者名稱(_U):" +#: ../src/connection-editor/ce-page-ethernet.ui.h:18 +#: ../src/connection-editor/ce-page-infiniband.ui.h:3 +#: ../src/connection-editor/ce-page-wifi.ui.h:6 +msgid "bytes" +msgstr "位元組" -#: ../src/connection-editor/ce-page-ip4.ui.h:1 -#: ../src/connection-editor/ce-page-ip6.ui.h:1 -msgid "Addresses" -msgstr "地址" +#: ../src/connection-editor/ce-page-infiniband.ui.h:1 +msgid "_Transport mode:" +msgstr "傳輸模式(_T):" + +#. IP-over-InfiniBand "datagram mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:6 +msgid "Datagram" +msgstr "Datagram" + +#. IP-over-InfiniBand "connected mode" +#: ../src/connection-editor/ce-page-infiniband.ui.h:8 +msgid "Connected" +msgstr "成功連線" #: ../src/connection-editor/ce-page-ip4.ui.h:2 #: ../src/connection-editor/ce-page-ip6.ui.h:2 -#: ../src/connection-editor/ce-page-wired.ui.h:7 -#: ../src/connection-editor/ce-page-wireless.ui.h:3 -#: ../src/connection-editor/page-ip6.c:142 -#: ../src/wireless-security/eap-method-peap.ui.h:3 -msgid "Automatic" -msgstr "自動" +msgid "Automatic with manual DNS settings" +msgstr "自動使用手動 DNS 設定值" #: ../src/connection-editor/ce-page-ip4.ui.h:3 #: ../src/connection-editor/ce-page-ip6.ui.h:3 -msgid "Automatic with manual DNS settings" -msgstr "自動使用手動 DNS 設定值" +#: ../src/connection-editor/page-ip4.c:169 +#: ../src/connection-editor/page-ip6.c:191 +msgid "Manual" +msgstr "手動" #: ../src/connection-editor/ce-page-ip4.ui.h:4 -msgid "D_HCP client ID:" -msgstr "D_HCP 用戶端 ID:" +#: ../src/connection-editor/ce-page-ip6.ui.h:4 +msgid "Link-Local" +msgstr "本機連線" #: ../src/connection-editor/ce-page-ip4.ui.h:5 -#: ../src/connection-editor/ce-page-ip6.ui.h:4 -msgid "" -"Domains used when resolving host names. Use commas to separate multiple " -"domains." -msgstr "用來解析主機名稱的網域。請使用逗號隔開不同的網域。" +#: ../src/connection-editor/ce-page-ip6.ui.h:5 +#: ../src/connection-editor/page-ip4.c:187 +#: ../src/connection-editor/page-ip6.c:211 +msgid "Shared to other computers" +msgstr "分享給其他電腦" -#: ../src/connection-editor/ce-page-ip4.ui.h:7 +#: ../src/connection-editor/ce-page-ip4.ui.h:6 #: ../src/connection-editor/ce-page-ip6.ui.h:6 -msgid "" -"IP addresses of domain name servers used to resolve host names. Use commas " -"to separate multiple domain name server addresses." -msgstr "" -"網域名稱伺服器的 IP 位址,用來解析主機名稱。請使用逗號來分開多個網域伺服器的" -"位址。" +msgid "_Method:" +msgstr "方法(_M):" -#: ../src/connection-editor/ce-page-ip4.ui.h:8 +#: ../src/connection-editor/ce-page-ip4.ui.h:7 #: ../src/connection-editor/ce-page-ip6.ui.h:7 -msgid "Link-Local" -msgstr "本機連線" +msgid "Addresses" +msgstr "地址" #: ../src/connection-editor/ce-page-ip4.ui.h:9 -#: ../src/connection-editor/ce-page-ip6.ui.h:8 -#: ../src/connection-editor/page-ip4.c:169 -#: ../src/connection-editor/page-ip6.c:191 -msgid "Manual" -msgstr "手動" +msgid "" +"The DHCP client identifier allows the network administrator to customize " +"your computer's configuration. If you wish to use a DHCP client identifier, " +"enter it here." +msgstr "" +"DHCP 用戶端識別能讓網管人員客製您電腦上的配置。如果您想要使用 DHCP 用戶端識" +"別,請在此輸入。" #: ../src/connection-editor/ce-page-ip4.ui.h:10 -msgid "Require IPv_4 addressing for this connection to complete" -msgstr "需要 IPv_4 addressing 才可完成此連線" +#: ../src/connection-editor/ce-page-ip6.ui.h:9 +msgid "" +"Domains used when resolving host names. Use commas to separate multiple " +"domains." +msgstr "用來解析主機名稱的網域。請使用逗號隔開不同的網域。" #: ../src/connection-editor/ce-page-ip4.ui.h:11 +msgid "D_HCP client ID:" +msgstr "D_HCP 用戶端 ID:" + +#: ../src/connection-editor/ce-page-ip4.ui.h:12 #: ../src/connection-editor/ce-page-ip6.ui.h:10 +#: ../src/connection-editor/page-ip4.c:308 +#: ../src/connection-editor/page-ip6.c:307 msgid "S_earch domains:" msgstr "搜尋網域(_E):" -#: ../src/connection-editor/ce-page-ip4.ui.h:12 +#: ../src/connection-editor/ce-page-ip4.ui.h:13 #: ../src/connection-editor/ce-page-ip6.ui.h:11 -#: ../src/connection-editor/page-ip4.c:187 -#: ../src/connection-editor/page-ip6.c:211 -msgid "Shared to other computers" -msgstr "分享給其他電腦" +#: ../src/connection-editor/page-ip4.c:299 +#: ../src/connection-editor/page-ip6.c:298 +msgid "_DNS servers:" +msgstr "_DNS 伺服器:" -#: ../src/connection-editor/ce-page-ip4.ui.h:13 +#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip6.ui.h:12 msgid "" -"The DHCP client identifier allows the network administrator to customize " -"your computer's configuration. If you wish to use a DHCP client identifier, " -"enter it here." +"IP addresses of domain name servers used to resolve host names. Use commas " +"to separate multiple domain name server addresses." msgstr "" -"DHCP 用戶端識別能讓網管人員客製您電腦上的配置。如果您想要使用 DHCP 用戶端識" -"別,請在此輸入。" +"網域名稱伺服器的 IP 位址,用來解析主機名稱。請使用逗號來分開多個網域伺服器的" +"位址。" -#: ../src/connection-editor/ce-page-ip4.ui.h:14 +#: ../src/connection-editor/ce-page-ip4.ui.h:15 +msgid "Require IPv_4 addressing for this connection to complete" +msgstr "需要 IPv_4 addressing 才可完成此連線" + +#: ../src/connection-editor/ce-page-ip4.ui.h:16 msgid "" "When connecting to IPv6-capable networks, allows the connection to complete " "if IPv4 configuration fails but IPv6 configuration succeeds." @@ -1146,26 +1442,16 @@ "當連至可使用 IPv6 的網路時,若 IPv4 配置失敗,不過 IPv6 配置卻成功的話,請允" "許連線完成。" -#: ../src/connection-editor/ce-page-ip4.ui.h:15 -#: ../src/connection-editor/ce-page-ip6.ui.h:13 -msgid "_DNS servers:" -msgstr "_DNS 伺服器:" - -#: ../src/connection-editor/ce-page-ip4.ui.h:16 -#: ../src/connection-editor/ce-page-ip6.ui.h:14 -msgid "_Method:" -msgstr "方法(_M):" - #: ../src/connection-editor/ce-page-ip4.ui.h:17 #: ../src/connection-editor/ce-page-ip6.ui.h:15 msgid "_Routes…" msgstr "路由(_R)…" -#: ../src/connection-editor/ce-page-ip6.ui.h:9 +#: ../src/connection-editor/ce-page-ip6.ui.h:13 msgid "Require IPv_6 addressing for this connection to complete" msgstr "需要 IPv_6 addressing 才可完成此連線" -#: ../src/connection-editor/ce-page-ip6.ui.h:12 +#: ../src/connection-editor/ce-page-ip6.ui.h:14 msgid "" "When connecting to IPv4-capable networks, allows the connection to complete " "if IPv6 configuration fails but IPv4 configuration succeeds." @@ -1174,273 +1460,223 @@ "許連線完成。" #: ../src/connection-editor/ce-page-mobile.ui.h:1 -msgid "2G (GPRS/EDGE)" -msgstr "2G (GPRS/EDGE)" +msgid "Any" +msgstr "任何" #: ../src/connection-editor/ce-page-mobile.ui.h:2 msgid "3G (UMTS/HSPA)" msgstr "3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:3 -msgid "Advanced" -msgstr "進階" +msgid "2G (GPRS/EDGE)" +msgstr "2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:4 -msgid "Allow _roaming if home network is not available" -msgstr "如果家用網路無法使用,允許使用漫遊(_R)" +msgid "Prefer 3G (UMTS/HSPA)" +msgstr "偏好 3G (UMTS/HSPA)" #: ../src/connection-editor/ce-page-mobile.ui.h:5 -msgid "Any" -msgstr "任何" +msgid "Prefer 2G (GPRS/EDGE)" +msgstr "偏好 2G (GPRS/EDGE)" #: ../src/connection-editor/ce-page-mobile.ui.h:6 msgid "Basic" msgstr "基本" #: ../src/connection-editor/ce-page-mobile.ui.h:7 -msgid "Change..." -msgstr "變更…" - -#: ../src/connection-editor/ce-page-mobile.ui.h:8 -msgid "N_etwork ID:" -msgstr "網路 ID(_E):" - -#: ../src/connection-editor/ce-page-mobile.ui.h:9 msgid "Nu_mber:" msgstr "數字(_M):" #: ../src/connection-editor/ce-page-mobile.ui.h:10 -msgid "P_IN:" -msgstr "P_IN:" +msgid "Advanced" +msgstr "進階" #: ../src/connection-editor/ce-page-mobile.ui.h:11 -msgid "Prefer 2G (GPRS/EDGE)" -msgstr "偏好 2G (GPRS/EDGE)" +msgid "_APN:" +msgstr "_APN:" #: ../src/connection-editor/ce-page-mobile.ui.h:12 -msgid "Prefer 3G (UMTS/HSPA)" -msgstr "偏好 3G (UMTS/HSPA)" +msgid "N_etwork ID:" +msgstr "網路 ID(_E):" #: ../src/connection-editor/ce-page-mobile.ui.h:13 -msgid "Sho_w passwords" -msgstr "顯示密碼(_W)" +#: ../src/wireless-security/ws-wpa-psk.ui.h:2 +msgid "_Type:" +msgstr "類型(_T):" #: ../src/connection-editor/ce-page-mobile.ui.h:14 -msgid "_APN:" -msgstr "_APN:" +msgid "Change..." +msgstr "變更…" + +#: ../src/connection-editor/ce-page-mobile.ui.h:15 +msgid "P_IN:" +msgstr "P_IN:" #: ../src/connection-editor/ce-page-mobile.ui.h:16 -#: ../src/wireless-security/ws-wpa-psk.ui.h:3 -msgid "_Type:" -msgstr "類型(_T):" +msgid "Allow _roaming if home network is not available" +msgstr "如果家用網路無法使用,允許使用漫遊(_R)" + +#: ../src/connection-editor/ce-page-mobile.ui.h:17 +msgid "Sho_w passwords" +msgstr "顯示密碼(_W)" #: ../src/connection-editor/ce-page-ppp.ui.h:1 -msgid "Allow _BSD data compression" -msgstr "允許 _BSD 資料壓縮" +msgid "Authentication" +msgstr "驗證" #: ../src/connection-editor/ce-page-ppp.ui.h:2 -msgid "Allow _Deflate data compression" -msgstr "允許 _Deflate 資料壓縮" - -#: ../src/connection-editor/ce-page-ppp.ui.h:3 msgid "Allowed methods:" msgstr "允許的方式:" -#: ../src/connection-editor/ce-page-ppp.ui.h:4 -msgid "Authentication" -msgstr "驗證" +#: ../src/connection-editor/ce-page-ppp.ui.h:3 +msgid "Configure _Methods…" +msgstr "設定方法(_M)…" -#: ../src/connection-editor/ce-page-ppp.ui.h:5 +#: ../src/connection-editor/ce-page-ppp.ui.h:4 msgid "Compression" msgstr "壓縮" +#: ../src/connection-editor/ce-page-ppp.ui.h:5 +msgid "_Use point-to-point encryption (MPPE)" +msgstr "使用點對點式加密 (MPPE)(_U)" + #: ../src/connection-editor/ce-page-ppp.ui.h:6 -msgid "Configure _Methods…" -msgstr "設定方法(_M)…" +msgid "_Require 128-bit encryption" +msgstr "需要 128-位元加密(_R)" #: ../src/connection-editor/ce-page-ppp.ui.h:7 -msgid "Echo" -msgstr "回響" +msgid "Use _stateful MPPE" +msgstr "使用有狀態的 MPPE(_S)" #: ../src/connection-editor/ce-page-ppp.ui.h:8 -msgid "Send PPP _echo packets" -msgstr "傳送 PPP 回音封包(_E)" +msgid "Allow _BSD data compression" +msgstr "允許 _BSD 資料壓縮" #: ../src/connection-editor/ce-page-ppp.ui.h:9 -msgid "Use TCP _header compression" -msgstr "使用 TCP 標頭壓縮(_H)" +msgid "Allow _Deflate data compression" +msgstr "允許 _Deflate 資料壓縮" #: ../src/connection-editor/ce-page-ppp.ui.h:10 -msgid "Use _stateful MPPE" -msgstr "使用有狀態的 MPPE(_S)" - -#: ../src/connection-editor/ce-page-ppp.ui.h:11 -msgid "_Require 128-bit encryption" -msgstr "需要 128-位元加密(_R)" - -#: ../src/connection-editor/ce-page-ppp.ui.h:12 -msgid "_Use point-to-point encryption (MPPE)" -msgstr "使用點對點式加密 (MPPE)(_U)" - -#: ../src/connection-editor/ce-page-wired.ui.h:1 -msgid "1 Gb/s" -msgstr "1 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:2 -msgid "10 Gb/s" -msgstr "10 Gb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:3 -msgid "10 Mb/s" -msgstr "10 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:4 -msgid "100 Mb/s" -msgstr "100 Mb/s" - -#: ../src/connection-editor/ce-page-wired.ui.h:5 -msgid "Attachment Unit Interface (AUI)" -msgstr "附加單位介面 (AUI)" - -#: ../src/connection-editor/ce-page-wired.ui.h:6 -msgid "Aut_onegotiate" -msgstr "自動協議(_O)" - -#: ../src/connection-editor/ce-page-wired.ui.h:8 -msgid "BNC" -msgstr "BNC" - -#: ../src/connection-editor/ce-page-wired.ui.h:9 -#: ../src/connection-editor/ce-page-wireless.ui.h:7 -msgid "C_loned MAC address:" -msgstr "複製的 MAC 位址(_L):" - -#: ../src/connection-editor/ce-page-wired.ui.h:10 -msgid "Full duple_x" -msgstr "全雙工(_X)" - -#: ../src/connection-editor/ce-page-wired.ui.h:11 -msgid "Media Independent Interface (MII)" -msgstr "媒體獨立介面 (MII)" - -#: ../src/connection-editor/ce-page-wired.ui.h:12 -#: ../src/connection-editor/ce-page-wireless.ui.h:12 -msgid "" -"The MAC address entered here will be used as hardware address for the " -"network device this connection is activated on. This feature is known as " -"MAC cloning or spoofing. Example: 00:11:22:33:44:55" -msgstr "" -"在這裡輸入的 MAC 位址會成為這個連線使用的網路裝置的硬體位址。這個功能也稱為 " -"MAC 複製或偽裝。例如:00:11:22:33:44:55" - -#: ../src/connection-editor/ce-page-wired.ui.h:13 -msgid "Twisted Pair (TP)" -msgstr "雙絞線 (TP)" - -#: ../src/connection-editor/ce-page-wired.ui.h:14 -#: ../src/connection-editor/ce-page-wireless.ui.h:16 -msgid "_Device MAC address:" -msgstr "裝置的 MAC 位址(_D):" - -#: ../src/connection-editor/ce-page-wired.ui.h:15 -#: ../src/connection-editor/ce-page-wireless.ui.h:17 -msgid "_MTU:" -msgstr "_MTU:" - -#: ../src/connection-editor/ce-page-wired.ui.h:16 -msgid "_Port:" -msgstr "連接埠(_P):" +msgid "Use TCP _header compression" +msgstr "使用 TCP 標頭壓縮(_H)" -#: ../src/connection-editor/ce-page-wired.ui.h:17 -msgid "_Speed:" -msgstr "速度(_S):" +#: ../src/connection-editor/ce-page-ppp.ui.h:11 +msgid "Echo" +msgstr "回響" -#: ../src/connection-editor/ce-page-wired.ui.h:18 -#: ../src/connection-editor/ce-page-wireless.ui.h:19 -msgid "bytes" -msgstr "位元組" +#: ../src/connection-editor/ce-page-ppp.ui.h:12 +msgid "Send PPP _echo packets" +msgstr "傳送 PPP 回音封包(_E)" + +#: ../src/connection-editor/ce-page-wifi-security.ui.h:1 +msgid "S_ecurity:" +msgstr "安全性(_E):" -#: ../src/connection-editor/ce-page-wireless.ui.h:1 +#: ../src/connection-editor/ce-page-wifi.ui.h:2 msgid "A (5 GHz)" msgstr "A (5 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:2 -msgid "Ad-hoc" -msgstr "Ad-hoc" - -#: ../src/connection-editor/ce-page-wireless.ui.h:4 +#: ../src/connection-editor/ce-page-wifi.ui.h:3 msgid "B/G (2.4 GHz)" msgstr "B/G (2.4 GHz)" -#: ../src/connection-editor/ce-page-wireless.ui.h:5 -msgid "Ban_d:" -msgstr "頻寬(_D):" - -#: ../src/connection-editor/ce-page-wireless.ui.h:6 -msgid "C_hannel:" -msgstr "頻道(_H):" - -#: ../src/connection-editor/ce-page-wireless.ui.h:8 +#: ../src/connection-editor/ce-page-wifi.ui.h:4 msgid "Infrastructure" msgstr "基礎架構" -#: ../src/connection-editor/ce-page-wireless.ui.h:9 -msgid "M_ode:" -msgstr "模式(_O):" +#: ../src/connection-editor/ce-page-wifi.ui.h:5 +msgid "Ad-hoc" +msgstr "Ad-hoc" + +#: ../src/connection-editor/ce-page-wifi.ui.h:11 +msgid "mW" +msgstr "mW" + +#: ../src/connection-editor/ce-page-wifi.ui.h:12 +msgid "Transmission po_wer:" +msgstr "傳輸耗能(_W):" -#: ../src/connection-editor/ce-page-wireless.ui.h:10 +#: ../src/connection-editor/ce-page-wifi.ui.h:13 msgid "Mb/s" msgstr "Mb/s" -#: ../src/connection-editor/ce-page-wireless.ui.h:11 -msgid "SS_ID:" -msgstr "SS_ID:" +#: ../src/connection-editor/ce-page-wifi.ui.h:14 +msgid "_Rate:" +msgstr "速率(_R):" -#: ../src/connection-editor/ce-page-wireless.ui.h:13 +#: ../src/connection-editor/ce-page-wifi.ui.h:15 msgid "" -"This option locks this connection to the wireless access point (AP) " -"specified by the BSSID entered here. Example: 00:11:22:33:44:55" +"This option locks this connection to the Wi-Fi access point (AP) specified " +"by the BSSID entered here. Example: 00:11:22:33:44:55" msgstr "" -"此選項會將此連線鎖定至在此所輸入的 BSSID 所指定的無限存取點(AP)。例如:" +"此選項會將此連線鎖定至在此所輸入的 BSSID 所指定的 Wi-Fi 存取點(AP)。例如:" "00:11:22:33:44:55" -#: ../src/connection-editor/ce-page-wireless.ui.h:14 -msgid "Transmission po_wer:" -msgstr "傳輸耗能(_W):" - -#: ../src/connection-editor/ce-page-wireless.ui.h:15 +#: ../src/connection-editor/ce-page-wifi.ui.h:16 msgid "_BSSID:" msgstr "_BSSID:" -#: ../src/connection-editor/ce-page-wireless.ui.h:18 -msgid "_Rate:" -msgstr "速率(_R):" +#: ../src/connection-editor/ce-page-wifi.ui.h:17 +msgid "C_hannel:" +msgstr "頻道(_H):" -#: ../src/connection-editor/ce-page-wireless.ui.h:20 -msgid "mW" -msgstr "mW" +#: ../src/connection-editor/ce-page-wifi.ui.h:18 +msgid "Ban_d:" +msgstr "頻寬(_D):" -#: ../src/connection-editor/ce-page-wireless-security.ui.h:1 -msgid "S_ecurity:" -msgstr "安全性(_E):" +#: ../src/connection-editor/ce-page-wifi.ui.h:19 +msgid "M_ode:" +msgstr "模式(_O):" + +#: ../src/connection-editor/ce-page-wifi.ui.h:20 +msgid "SS_ID:" +msgstr "SS_ID:" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:1 msgid "Allowed Authentication Methods" msgstr "允許的驗證方式" #: ../src/connection-editor/ce-ppp-auth-methods.ui.h:2 +msgid "_EAP" +msgstr "_EAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +msgid "Extensible Authentication Protocol" +msgstr "可延伸的驗證通訊協定" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 +msgid "_PAP" +msgstr "_PAP" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +msgid "Password Authentication Protocol" +msgstr "密碼驗證通訊協定" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 msgid "C_HAP" msgstr "C_HAP" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:3 +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 msgid "Challenge Handshake Authentication Protocol" msgstr "Challenge Handshake 驗證通訊協定" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:4 -msgid "Extensible Authentication Protocol" -msgstr "可延伸的驗證通訊協定" +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 +msgid "_MSCHAP" +msgstr "_MSCHAP" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:5 +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 +msgid "Microsoft Challenge Handshake Authentication Protocol" +msgstr "Microsoft Challenge Handshake 驗證通訊協定" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 +msgid "MSCHAP v_2" +msgstr "MSCHAP v_2" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 +msgid "Microsoft Challenge Handshake Authentication Protocol version 2" +msgstr "Microsoft Challenge Handshake 驗證通訊協定第 2 版" + +#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 msgid "" "In most cases, the provider's PPP servers will support all authentication " "methods. If connections fail, try disabling support for some methods." @@ -1448,104 +1684,326 @@ "在大多數情況下,網路供應者的 PPP 伺服器會支援所有的驗證方法。如果連線失敗,請" "嘗試停用某些方法的支援。" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:6 -msgid "MSCHAP v_2" -msgstr "MSCHAP v_2" +#: ../src/connection-editor/ip4-routes-dialog.c:745 +#: ../src/connection-editor/ip6-routes-dialog.c:687 +#: ../src/connection-editor/page-ip4.c:911 +#: ../src/connection-editor/page-ip6.c:877 +msgid "Address" +msgstr "地址" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:7 -msgid "Microsoft Challenge Handshake Authentication Protocol" -msgstr "Microsoft Challenge Handshake 驗證通訊協定" +#: ../src/connection-editor/ip4-routes-dialog.c:762 +#: ../src/connection-editor/page-ip4.c:928 +msgid "Netmask" +msgstr "網路遮罩" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:8 -msgid "Microsoft Challenge Handshake Authentication Protocol version 2" -msgstr "Microsoft Challenge Handshake 驗證通訊協定第 2 版" +#: ../src/connection-editor/ip4-routes-dialog.c:779 +#: ../src/connection-editor/ip6-routes-dialog.c:721 +#: ../src/connection-editor/page-ip4.c:945 +#: ../src/connection-editor/page-ip6.c:911 +msgid "Gateway" +msgstr "通訊閘" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:9 -msgid "Password Authentication Protocol" -msgstr "密碼驗證通訊協定" +#: ../src/connection-editor/ip4-routes-dialog.c:796 +#: ../src/connection-editor/ip6-routes-dialog.c:738 +msgid "Metric" +msgstr "公制" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:10 -msgid "_EAP" -msgstr "_EAP" +#: ../src/connection-editor/ip6-routes-dialog.c:704 +#: ../src/connection-editor/page-ip6.c:894 +msgid "Prefix" +msgstr "前綴" + +#: ../src/connection-editor/new-connection.c:77 +#: ../src/connection-editor/page-ethernet.c:274 +msgid "Ethernet" +msgstr "有線網路" + +#: ../src/connection-editor/new-connection.c:82 +#: ../src/connection-editor/page-wifi.c:463 +msgid "Wi-Fi" +msgstr "Wi-Fi" + +#: ../src/connection-editor/new-connection.c:92 +#: ../src/connection-editor/page-wimax.c:158 ../src/mb-menu-item.c:73 +msgid "WiMAX" +msgstr "WiMAX" + +#: ../src/connection-editor/new-connection.c:97 +#: ../src/connection-editor/page-dsl.c:140 +msgid "DSL" +msgstr "DSL" + +#: ../src/connection-editor/new-connection.c:102 +#: ../src/connection-editor/page-infiniband.c:190 +msgid "InfiniBand" +msgstr "InfiniBand" + +#: ../src/connection-editor/new-connection.c:107 +#: ../src/connection-editor/page-bond.c:746 +msgid "Bond" +msgstr "" + +#: ../src/connection-editor/new-connection.c:119 +#: ../src/connection-editor/page-vpn.c:112 +msgid "VPN" +msgstr "VPN" + +#: ../src/connection-editor/new-connection.c:252 +msgid "Import a saved VPN configuration..." +msgstr "匯入已儲存的 VPN 組態…" + +#: ../src/connection-editor/new-connection.c:274 +msgid "" +"The connection editor dialog could not be initialized due to an unknown " +"error." +msgstr "由於不明的錯誤使連線編輯器對話盒無法初始化。" + +#: ../src/connection-editor/new-connection.c:283 +msgid "Could not create new connection" +msgstr "無法建立新連線" + +#: ../src/connection-editor/new-connection.c:419 +msgid "Connection delete failed" +msgstr "刪除連線失敗" + +#: ../src/connection-editor/new-connection.c:466 +#, c-format +msgid "Are you sure you wish to delete the connection %s?" +msgstr "您確定要刪除連線 %s ?" + +#: ../src/connection-editor/nm-connection-editor.c:110 +#, c-format +msgid "Editing %s" +msgstr "編輯 %s" + +#: ../src/connection-editor/nm-connection-editor.c:114 +msgid "Editing un-named connection" +msgstr "編輯未命名的連線" + +#: ../src/connection-editor/nm-connection-editor.c:301 +msgid "" +"The connection editor could not find some required resources (the .ui file " +"was not found)." +msgstr "連線編輯器找不到一些需要的資源(找不到 .ui 檔)。" + +#: ../src/connection-editor/nm-connection-editor.c:428 +msgid "_Save" +msgstr "儲存(_S)" + +#: ../src/connection-editor/nm-connection-editor.c:429 +msgid "Save any changes made to this connection." +msgstr "儲存任何對這個連線進行的變更。" + +#: ../src/connection-editor/nm-connection-editor.c:430 +msgid "_Save..." +msgstr "儲存(_S)…" + +#: ../src/connection-editor/nm-connection-editor.c:431 +msgid "Authenticate to save this connection for all users of this machine." +msgstr "驗證以儲存這個連線給此電腦上的所有使用者。" + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not create connection" +msgstr "無法建立連線" + +#: ../src/connection-editor/nm-connection-editor.c:447 +msgid "Could not edit connection" +msgstr "無法編輯連線" + +#: ../src/connection-editor/nm-connection-editor.c:449 +msgid "Unknown error creating connection editor dialog." +msgstr "建立連線編輯器對話盒時發生不明錯誤。" + +#: ../src/connection-editor/nm-connection-editor.c:555 +msgid "Error saving connection" +msgstr "儲存連線時錯誤" + +#: ../src/connection-editor/nm-connection-editor.c:556 +#, c-format +msgid "The property '%s' / '%s' is invalid: %d" +msgstr "屬性「%s」/「%s」是無效的:%d" + +#: ../src/connection-editor/nm-connection-editor.c:658 +msgid "Error initializing editor" +msgstr "初始化編輯器時發生錯誤" + +#: ../src/connection-editor/nm-connection-editor.c:967 +msgid "Connection add failed" +msgstr "新增連線失敗" + +#: ../src/connection-editor/nm-connection-editor.ui.h:2 +msgid "Connection _name:" +msgstr "連線名稱(_N):" + +#: ../src/connection-editor/nm-connection-editor.ui.h:3 +msgid "Connect _automatically" +msgstr "自動連線(_A)" + +#: ../src/connection-editor/nm-connection-editor.ui.h:4 +msgid "A_vailable to all users" +msgstr "所有使用者皆可用" + +#: ../src/connection-editor/nm-connection-editor.ui.h:5 +msgid "_Export..." +msgstr "匯出(_E)…" + +#: ../src/connection-editor/nm-connection-list.c:143 +msgid "never" +msgstr "永不" + +#: ../src/connection-editor/nm-connection-list.c:154 +#: ../src/connection-editor/nm-connection-list.c:165 +msgid "now" +msgstr "現在" + +#. less than an hour ago +#: ../src/connection-editor/nm-connection-list.c:172 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d 分鐘以前" + +#: ../src/connection-editor/nm-connection-list.c:176 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d 小時以前" + +#: ../src/connection-editor/nm-connection-list.c:188 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d 天以前" + +#: ../src/connection-editor/nm-connection-list.c:194 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d 個月以前" + +#: ../src/connection-editor/nm-connection-list.c:198 +#, c-format +msgid "%d year ago" +msgid_plural "%d years ago" +msgstr[0] "%d 年以前" + +#: ../src/connection-editor/nm-connection-list.c:626 +msgid "Name" +msgstr "名稱" + +#: ../src/connection-editor/nm-connection-list.c:639 +msgid "Last Used" +msgstr "最後使用的" + +#: ../src/connection-editor/nm-connection-list.c:681 +msgid "Edit the selected connection" +msgstr "編輯選取的連線" + +#: ../src/connection-editor/nm-connection-list.c:682 +msgid "_Edit..." +msgstr "編輯(_E)…" + +#: ../src/connection-editor/nm-connection-list.c:683 +msgid "Authenticate to edit the selected connection" +msgstr "驗證以編輯選取的連線" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:11 -msgid "_MSCHAP" -msgstr "_MSCHAP" +#: ../src/connection-editor/nm-connection-list.c:698 +msgid "Delete the selected connection" +msgstr "刪除選取的連線" -#: ../src/connection-editor/ce-ppp-auth-methods.ui.h:12 -msgid "_PAP" -msgstr "_PAP" +#: ../src/connection-editor/nm-connection-list.c:699 +msgid "_Delete..." +msgstr "刪除(_D)…" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:1 ../src/libnm-gtk/wifi.ui.h:1 -#: ../src/wireless-security/eap-method-fast.ui.h:1 -#: ../src/wireless-security/eap-method-peap.ui.h:1 -#: ../src/wireless-security/eap-method-ttls.ui.h:1 -#: ../src/wireless-security/ws-dynamic-wep.ui.h:1 -#: ../src/wireless-security/ws-wpa-eap.ui.h:1 -msgid " " -msgstr " " +#: ../src/connection-editor/nm-connection-list.c:700 +msgid "Authenticate to delete the selected connection" +msgstr "驗證以刪除選取的連線" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:2 -msgid "Choose a VPN Connection Type" -msgstr "請選擇 VPN 的連線類型" +#: ../src/connection-editor/nm-connection-list.c:937 +msgid "Error creating connection" +msgstr "建立連線時發生錯誤" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:3 -msgid "Create…" -msgstr "建立…" +#: ../src/connection-editor/nm-connection-list.c:938 +#, c-format +msgid "Don't know how to create '%s' connections" +msgstr "不知道如何建立「%s」連線" -#: ../src/connection-editor/ce-vpn-wizard.ui.h:4 -msgid "" -"Select the type of VPN you wish to use for the new connection. If the type " -"of VPN connection you wish to create does not appear in the list, you may " -"not have the correct VPN plugin installed." -msgstr "" -"選擇您想要用在新連線中的 VPN 類型。如果您想要建立的 VPN 連線類型沒有出現在清" -"單中,可能是沒有安裝正確的 VPN 外掛程式。" +#: ../src/connection-editor/nm-connection-list.c:993 +msgid "Error editing connection" +msgstr "編輯連線時發生錯誤" -#: ../src/connection-editor/ip4-routes-dialog.c:745 -#: ../src/connection-editor/ip6-routes-dialog.c:687 -#: ../src/connection-editor/page-ip4.c:900 -#: ../src/connection-editor/page-ip6.c:866 -msgid "Address" -msgstr "地址" +#: ../src/connection-editor/nm-connection-list.c:994 +#, c-format +msgid "Did not find a connection with UUID '%s'" +msgstr "找不到 UUID「%s」的連線" -#: ../src/connection-editor/ip4-routes-dialog.c:762 -#: ../src/connection-editor/page-ip4.c:917 -msgid "Netmask" -msgstr "網路遮罩" +#: ../src/connection-editor/page-8021x-security.c:120 +msgid "802.1x Security" +msgstr "802.1x 防護" -#: ../src/connection-editor/ip4-routes-dialog.c:779 -#: ../src/connection-editor/ip6-routes-dialog.c:721 -#: ../src/connection-editor/page-ip4.c:934 -#: ../src/connection-editor/page-ip6.c:900 -msgid "Gateway" -msgstr "通訊閘" +#: ../src/connection-editor/page-8021x-security.c:122 +msgid "Could not load 802.1x Security user interface." +msgstr "無法載入 802.1x 安全性使用者介面。" -#: ../src/connection-editor/ip4-routes-dialog.c:796 -#: ../src/connection-editor/ip6-routes-dialog.c:738 -msgid "Metric" -msgstr "公制" +#: ../src/connection-editor/page-8021x-security.c:140 +msgid "Use 802.1_X security for this connection" +msgstr "在這個連線使用 802.1_X 防護" -#: ../src/connection-editor/ip6-routes-dialog.c:704 -#: ../src/connection-editor/page-ip6.c:883 -msgid "Prefix" -msgstr "前綴" +#: ../src/connection-editor/page-bond.c:559 +#, c-format +msgid "%s slave %d" +msgstr "%s 服務 %d" -#: ../src/connection-editor/page-dsl.c:139 -#: ../src/connection-editor/nm-connection-editor.ui.h:4 -#: ../src/connection-editor/nm-connection-list.c:1519 -msgid "DSL" -msgstr "DSL" +#: ../src/connection-editor/page-bond.c:749 +#, fuzzy +#| msgid "Could not load DSL user interface." +msgid "Could not load bond user interface." +msgstr "無法載入 DSL 使用者介面。" -#: ../src/connection-editor/page-dsl.c:141 +#: ../src/connection-editor/page-bond.c:909 +#, fuzzy, c-format +#| msgid "InfiniBand connection %d" +msgid "Bond connection %d" +msgstr "未受信任的連線" + +#: ../src/connection-editor/page-dsl.c:142 msgid "Could not load DSL user interface." msgstr "無法載入 DSL 使用者介面。" -#: ../src/connection-editor/page-dsl.c:231 +#: ../src/connection-editor/page-dsl.c:234 #, c-format msgid "DSL connection %d" msgstr "DSL 連線 %d" +#: ../src/connection-editor/page-ethernet.c:89 +#: ../src/connection-editor/page-infiniband.c:74 +#: ../src/connection-editor/page-wifi.c:94 +#: ../src/connection-editor/page-wimax.c:70 +msgid "" +"This option locks this connection to the network device specified by its " +"permanent MAC address entered here. Example: 00:11:22:33:44:55" +msgstr "" +"此選項會將此連線鎖定至在此所輸入的 MAC 位址所指定的網路裝置。例如:" +"00:11:22:33:44:55" + +#: ../src/connection-editor/page-ethernet.c:276 +msgid "Could not load ethernet user interface." +msgstr "無法載入有線網路使用者介面。" + +#: ../src/connection-editor/page-ethernet.c:452 +#, c-format +msgid "Ethernet connection %d" +msgstr "線網路連線 %d" + +#: ../src/connection-editor/page-infiniband.c:193 +msgid "Could not load InfiniBand user interface." +msgstr "無法載入 InfiniBand 使用者介面。" + +#: ../src/connection-editor/page-infiniband.c:318 +#, c-format +msgid "InfiniBand connection %d" +msgstr "InfiniBand 連線 %d" + #: ../src/connection-editor/page-ip4.c:133 #: ../src/connection-editor/page-ip6.c:132 msgid "Automatic (VPN)" @@ -1593,16 +2051,26 @@ msgid "Disabled" msgstr "已停用" -#: ../src/connection-editor/page-ip4.c:832 +#: ../src/connection-editor/page-ip4.c:297 +#: ../src/connection-editor/page-ip6.c:296 +msgid "Additional _DNS servers:" +msgstr "額外的 _DNS 伺服器:" + +#: ../src/connection-editor/page-ip4.c:306 +#: ../src/connection-editor/page-ip6.c:305 +msgid "Additional s_earch domains:" +msgstr "額外的搜尋網域: domains:" + +#: ../src/connection-editor/page-ip4.c:843 #, c-format msgid "Editing IPv4 routes for %s" msgstr "編輯 %s 的 IPv4 路由" -#: ../src/connection-editor/page-ip4.c:981 +#: ../src/connection-editor/page-ip4.c:993 msgid "IPv4 Settings" msgstr "IPv4 設定" -#: ../src/connection-editor/page-ip4.c:983 +#: ../src/connection-editor/page-ip4.c:995 msgid "Could not load IPv4 user interface." msgstr "無法載入 IPv4 使用者介面。" @@ -1611,7 +2079,7 @@ msgstr "自動,僅限位址" #: ../src/connection-editor/page-ip6.c:155 -#: ../src/wireless-security/eap-method.c:285 +#: ../src/wireless-security/eap-method.c:281 msgid "Ignore" msgstr "忽略" @@ -1619,43 +2087,43 @@ msgid "Automatic, DHCP only" msgstr "自動,僅使用 DHCP" -#: ../src/connection-editor/page-ip6.c:798 +#: ../src/connection-editor/page-ip6.c:809 #, c-format msgid "Editing IPv6 routes for %s" msgstr "為 %s 編輯 IPv6 路由" -#: ../src/connection-editor/page-ip6.c:945 +#: ../src/connection-editor/page-ip6.c:957 msgid "IPv6 Settings" msgstr "IPv6 設定" -#: ../src/connection-editor/page-ip6.c:947 +#: ../src/connection-editor/page-ip6.c:959 msgid "Could not load IPv6 user interface." msgstr "無法載入 IPv6 使用者介面。" -#: ../src/connection-editor/page-mobile.c:381 +#: ../src/connection-editor/page-mobile.c:382 msgid "Could not load mobile broadband user interface." msgstr "無法載入行動寬頻使用者介面。" -#: ../src/connection-editor/page-mobile.c:398 +#: ../src/connection-editor/page-mobile.c:399 msgid "Unsupported mobile broadband connection type." msgstr "不支援的行動寬頻連線類型。" #. Fall back to just asking for GSM vs. CDMA -#: ../src/connection-editor/page-mobile.c:639 +#: ../src/connection-editor/page-mobile.c:643 msgid "Select Mobile Broadband Provider Type" msgstr "選擇行動寬頻供應商類型" -#: ../src/connection-editor/page-mobile.c:674 +#: ../src/connection-editor/page-mobile.c:678 msgid "" "Select the technology your mobile broadband provider uses. If you are " "unsure, ask your provider." msgstr "請選擇您的無線寬頻供應商所使用的技術。如果您不確定,請洽詢供應商。" -#: ../src/connection-editor/page-mobile.c:679 +#: ../src/connection-editor/page-mobile.c:683 msgid "My provider uses _GSM-based technology (i.e. GPRS, EDGE, UMTS, HSDPA)" msgstr "我的供應商使用 _GSM 為主的技術(例如 GPRS、EDGE、UMTS、HSDPA)" -#: ../src/connection-editor/page-mobile.c:686 +#: ../src/connection-editor/page-mobile.c:690 msgid "My provider uses C_DMA-based technology (i.e. 1xRTT, EVDO)" msgstr "我的供應商使用 C_DMA 為主的技術(例如 1xRTT、EVDO)" @@ -1695,288 +2163,30 @@ msgid "Editing PPP authentication methods for %s" msgstr "編輯 %s 的 PPP 驗證方法" -#: ../src/connection-editor/page-ppp.c:282 +#: ../src/connection-editor/page-ppp.c:283 msgid "PPP Settings" msgstr "PPP 設定值" -#: ../src/connection-editor/page-ppp.c:284 +#: ../src/connection-editor/page-ppp.c:285 msgid "Could not load PPP user interface." msgstr "無法載入 PPP 使用者介面。" -#: ../src/connection-editor/page-vpn.c:109 -#: ../src/connection-editor/nm-connection-editor.ui.h:8 -#: ../src/connection-editor/nm-connection-list.c:1515 -msgid "VPN" -msgstr "VPN" - -#: ../src/connection-editor/page-vpn.c:111 +#: ../src/connection-editor/page-vpn.c:114 msgid "Could not load VPN user interface." msgstr "無法載入 VPN 使用者介面。" -#: ../src/connection-editor/page-vpn.c:126 +#: ../src/connection-editor/page-vpn.c:129 #, c-format msgid "Could not find VPN plugin service for '%s'." msgstr "找不到「%s」的 VPN 外掛程式服務。" -#: ../src/connection-editor/page-vpn.c:201 -#: ../src/connection-editor/nm-connection-list.c:900 +#: ../src/connection-editor/page-vpn.c:223 +#: ../src/connection-editor/page-vpn.c:320 #, c-format msgid "VPN connection %d" msgstr "VPN 連線 %d" -#: ../src/connection-editor/page-wired.c:89 -#: ../src/connection-editor/page-wireless.c:94 -msgid "" -"This option locks this connection to the network device specified by its " -"permanent MAC address entered here. Example: 00:11:22:33:44:55" -msgstr "" -"此選項會將此連線鎖定至在此所輸入的 MAC 位址所指定的網路裝置。例如:" -"00:11:22:33:44:55" - -#: ../src/connection-editor/page-wired.c:272 -#: ../src/connection-editor/nm-connection-editor.ui.h:9 -#: ../src/connection-editor/nm-connection-list.c:1503 -msgid "Wired" -msgstr "有線" - -#: ../src/connection-editor/page-wired.c:274 -msgid "Could not load wired user interface." -msgstr "無法載入有線網路使用者介面。" - -#: ../src/connection-editor/page-wired.c:449 -#, c-format -msgid "Wired connection %d" -msgstr "有線網路連線 %d" - -#: ../src/connection-editor/page-wired-security.c:116 -msgid "802.1x Security" -msgstr "802.1x 防護" - -#: ../src/connection-editor/page-wired-security.c:118 -msgid "Could not load Wired Security security user interface." -msgstr "無法載入 Wired Security 安全使用者介面。" - -#: ../src/connection-editor/page-wired-security.c:136 -msgid "Use 802.1_X security for this connection" -msgstr "在這個連線使用 802.1_X 防護" - -#: ../src/connection-editor/page-wireless.c:171 -#: ../src/connection-editor/page-wireless.c:175 -#: ../src/connection-editor/page-wireless.c:196 -#, c-format -msgid "default" -msgstr "預設" - -#: ../src/connection-editor/page-wireless.c:200 -#, c-format -msgid "%u (%u MHz)" -msgstr "%u (%u MHz)" - -#: ../src/connection-editor/page-wireless.c:457 -#: ../src/connection-editor/nm-connection-editor.ui.h:10 -#: ../src/connection-editor/nm-connection-list.c:1507 -msgid "Wireless" -msgstr "無線網路" - -#: ../src/connection-editor/page-wireless.c:459 -msgid "Could not load WiFi user interface." -msgstr "無法載入 WiFi 使用者介面。" - -#: ../src/connection-editor/page-wireless.c:663 -#, c-format -msgid "Wireless connection %d" -msgstr "無線網路連線 %d" - -#: ../src/connection-editor/page-wireless-security.c:263 -#: ../src/libnm-gtk/nm-wireless-dialog.c:923 -msgid "WEP 40/128-bit Key (Hex or ASCII)" -msgstr "WEP 40/128-位元 金鑰 (Hex 或 ASCII)" - -#: ../src/connection-editor/page-wireless-security.c:272 -#: ../src/libnm-gtk/nm-wireless-dialog.c:932 -msgid "WEP 128-bit Passphrase" -msgstr "WEP 128-位元 密語" - -#: ../src/connection-editor/page-wireless-security.c:298 -#: ../src/libnm-gtk/nm-wireless-dialog.c:962 -msgid "Dynamic WEP (802.1x)" -msgstr "動態 WEP (802.1x)" - -#: ../src/connection-editor/page-wireless-security.c:312 -#: ../src/libnm-gtk/nm-wireless-dialog.c:976 -msgid "WPA & WPA2 Personal" -msgstr "WPA & WPA2 個人版" - -#: ../src/connection-editor/page-wireless-security.c:326 -#: ../src/libnm-gtk/nm-wireless-dialog.c:990 -msgid "WPA & WPA2 Enterprise" -msgstr "WPA & WPA2 企業版" - -#: ../src/connection-editor/page-wireless-security.c:360 -msgid "Could not load WiFi security user interface; missing WiFi setting." -msgstr "無法載入 WiFi 防護使用者介面;失去 WiFi 設定值。" - -#: ../src/connection-editor/page-wireless-security.c:370 -msgid "Wireless Security" -msgstr "無線網路防護" - -#: ../src/connection-editor/page-wireless-security.c:372 -msgid "Could not load WiFi security user interface." -msgstr "無法載入 WiFi 防護使用者介面。" - -#: ../src/connection-editor/nm-connection-editor.c:101 -#, c-format -msgid "Editing %s" -msgstr "編輯 %s" - -#: ../src/connection-editor/nm-connection-editor.c:105 -msgid "Editing un-named connection" -msgstr "編輯未命名的連線" - -#: ../src/connection-editor/nm-connection-editor.c:288 -msgid "" -"The connection editor could not find some required resources (the .ui file " -"was not found)." -msgstr "連線編輯器找不到一些需要的資源(找不到 .ui 檔)。" - -#: ../src/connection-editor/nm-connection-editor.c:391 -msgid "Error creating connection editor dialog." -msgstr "建立連線編輯器對話盒時發生錯誤。" - -#: ../src/connection-editor/nm-connection-editor.c:403 -msgid "_Save" -msgstr "儲存(_S)" - -#: ../src/connection-editor/nm-connection-editor.c:404 -msgid "Save any changes made to this connection." -msgstr "儲存任何對這個連線進行的變更。" - -#: ../src/connection-editor/nm-connection-editor.c:405 -msgid "_Save..." -msgstr "儲存(_S)…" - -#: ../src/connection-editor/nm-connection-editor.c:406 -msgid "Authenticate to save this connection for all users of this machine." -msgstr "驗證以儲存這個連線給此電腦上的所有使用者。" - -#: ../src/connection-editor/nm-connection-editor.ui.h:1 -msgid "Available to all users" -msgstr "所有使用者皆可用" - -#: ../src/connection-editor/nm-connection-editor.ui.h:2 -msgid "Connect _automatically" -msgstr "自動連線(_A)" - -#: ../src/connection-editor/nm-connection-editor.ui.h:3 -msgid "Connection _name:" -msgstr "連線名稱(_N):" - -#: ../src/connection-editor/nm-connection-editor.ui.h:5 -msgid "E_xport" -msgstr "匯出(_X)" - -#: ../src/connection-editor/nm-connection-editor.ui.h:11 -msgid "_Import" -msgstr "匯入(_I)" - -#: ../src/connection-editor/nm-connection-list.c:216 -msgid "never" -msgstr "永不" - -#: ../src/connection-editor/nm-connection-list.c:227 -#: ../src/connection-editor/nm-connection-list.c:238 -msgid "now" -msgstr "現在" - -#. less than an hour ago -#: ../src/connection-editor/nm-connection-list.c:245 -#, c-format -msgid "%d minute ago" -msgid_plural "%d minutes ago" -msgstr[0] "%d 分鐘以前" - -#: ../src/connection-editor/nm-connection-list.c:249 -#, c-format -msgid "%d hour ago" -msgid_plural "%d hours ago" -msgstr[0] "%d 小時以前" - -#: ../src/connection-editor/nm-connection-list.c:261 -#, c-format -msgid "%d day ago" -msgid_plural "%d days ago" -msgstr[0] "%d 天以前" - -#: ../src/connection-editor/nm-connection-list.c:267 -#, c-format -msgid "%d month ago" -msgid_plural "%d months ago" -msgstr[0] "%d 個月以前" - -#: ../src/connection-editor/nm-connection-list.c:271 -#, c-format -msgid "%d year ago" -msgid_plural "%d years ago" -msgstr[0] "%d 年以前" - -#: ../src/connection-editor/nm-connection-list.c:486 -msgid "Connection add failed" -msgstr "新增連線失敗" - -#: ../src/connection-editor/nm-connection-list.c:515 -msgid "Error saving connection" -msgstr "儲存連線時錯誤" - -#: ../src/connection-editor/nm-connection-list.c:516 -#, c-format -msgid "The property '%s' / '%s' is invalid: %d" -msgstr "屬性「%s」/「%s」是無效的:%d" - -#: ../src/connection-editor/nm-connection-list.c:523 -#: ../src/connection-editor/nm-connection-list.c:662 -msgid "An unknown error occurred." -msgstr "發生不明的錯誤。" - -#: ../src/connection-editor/nm-connection-list.c:528 -#: ../src/connection-editor/nm-connection-list.c:702 -msgid "Error initializing editor" -msgstr "初始化編輯器時發生錯誤" - -#: ../src/connection-editor/nm-connection-list.c:546 -#: ../src/connection-editor/nm-connection-list.c:719 -#: ../src/connection-editor/nm-connection-list.c:886 -msgid "" -"The connection editor dialog could not be initialized due to an unknown " -"error." -msgstr "由於不明的錯誤使連線編輯器對話盒無法初始化。" - -#: ../src/connection-editor/nm-connection-list.c:557 -msgid "Could not create new connection" -msgstr "無法建立新連線" - -#: ../src/connection-editor/nm-connection-list.c:569 -msgid "Could not edit new connection" -msgstr "無法編輯新連線" - -#: ../src/connection-editor/nm-connection-list.c:733 -msgid "Could not edit connection" -msgstr "無法編輯連線" - -#: ../src/connection-editor/nm-connection-list.c:763 -msgid "Connection delete failed" -msgstr "刪除連線失敗" - -#: ../src/connection-editor/nm-connection-list.c:795 -#, c-format -msgid "Are you sure you wish to delete the connection %s?" -msgstr "您確定要刪除連線 %s ?" - -#: ../src/connection-editor/nm-connection-list.c:930 -#: ../src/connection-editor/vpn-helpers.c:227 -msgid "Cannot import VPN connection" -msgstr "無法匯入 VPN 網路連線" - -#: ../src/connection-editor/nm-connection-list.c:932 +#: ../src/connection-editor/page-vpn.c:249 msgid "" "The VPN plugin failed to import the VPN connection correctly\n" "\n" @@ -1986,79 +2196,96 @@ "\n" "錯誤:沒有 VPN 服務類型。" -#: ../src/connection-editor/nm-connection-list.c:945 -msgid "Could not edit imported connection" -msgstr "無法編輯匯入的連線" +#: ../src/connection-editor/page-vpn.c:274 +msgid "Choose a VPN Connection Type" +msgstr "請選擇 VPN 的連線類型" -#: ../src/connection-editor/nm-connection-list.c:1126 -msgid "Name" -msgstr "名稱" +#: ../src/connection-editor/page-vpn.c:275 +msgid "" +"Select the type of VPN you wish to use for the new connection. If the type " +"of VPN connection you wish to create does not appear in the list, you may " +"not have the correct VPN plugin installed." +msgstr "" +"選擇您想要用在新連線中的 VPN 類型。如果您想要建立的 VPN 連線類型沒有出現在清" +"單中,可能是沒有安裝正確的 VPN 外掛程式。" + +#: ../src/connection-editor/page-wifi.c:171 +#: ../src/connection-editor/page-wifi.c:175 +#: ../src/connection-editor/page-wifi.c:196 +#, c-format +msgid "default" +msgstr "預設" -#: ../src/connection-editor/nm-connection-list.c:1138 -msgid "Last Used" -msgstr "最後使用的" +#: ../src/connection-editor/page-wifi.c:200 +#, c-format +msgid "%u (%u MHz)" +msgstr "%u (%u MHz)" -#: ../src/connection-editor/nm-connection-list.c:1264 -msgid "No VPN plugin available. Please install one to enable this button." -msgstr "沒有 VPN 外掛程式可用。請安裝其中一種以啟用這個按鈕。" +#: ../src/connection-editor/page-wifi.c:465 +msgid "Could not load Wi-Fi user interface." +msgstr "無法載入 Wi-Fi 使用者介面。" -#: ../src/connection-editor/nm-connection-list.c:1275 -msgid "_Edit" -msgstr "編輯(_E)" +#: ../src/connection-editor/page-wifi.c:670 +#, c-format +msgid "Wi-Fi connection %d" +msgstr "Wi-Fi 連線 %d" -#: ../src/connection-editor/nm-connection-list.c:1276 -msgid "Edit the selected connection" -msgstr "編輯選取的連線" +#: ../src/connection-editor/page-wifi-security.c:265 +msgctxt "Wi-Fi/Ethernet security" +msgid "None" +msgstr "沒有" -#: ../src/connection-editor/nm-connection-list.c:1277 -msgid "_Edit..." -msgstr "編輯(_E)…" +#: ../src/connection-editor/page-wifi-security.c:290 +#: ../src/libnm-gtk/nm-wifi-dialog.c:903 +msgid "WEP 40/128-bit Key (Hex or ASCII)" +msgstr "WEP 40/128-位元 金鑰 (Hex 或 ASCII)" -#: ../src/connection-editor/nm-connection-list.c:1278 -msgid "Authenticate to edit the selected connection" -msgstr "驗證以編輯選取的連線" +#: ../src/connection-editor/page-wifi-security.c:300 +#: ../src/libnm-gtk/nm-wifi-dialog.c:912 +msgid "WEP 128-bit Passphrase" +msgstr "WEP 128-位元 密語" -#: ../src/connection-editor/nm-connection-list.c:1293 -msgid "_Delete" -msgstr "刪除(_D)" +#: ../src/connection-editor/page-wifi-security.c:326 +#: ../src/libnm-gtk/nm-wifi-dialog.c:942 +msgid "Dynamic WEP (802.1x)" +msgstr "動態 WEP (802.1x)" -#: ../src/connection-editor/nm-connection-list.c:1294 -msgid "Delete the selected connection" -msgstr "刪除選取的連線" +#: ../src/connection-editor/page-wifi-security.c:340 +#: ../src/libnm-gtk/nm-wifi-dialog.c:956 +msgid "WPA & WPA2 Personal" +msgstr "WPA & WPA2 個人版" -#: ../src/connection-editor/nm-connection-list.c:1295 -msgid "_Delete..." -msgstr "刪除(_D)…" +#: ../src/connection-editor/page-wifi-security.c:354 +#: ../src/libnm-gtk/nm-wifi-dialog.c:970 +msgid "WPA & WPA2 Enterprise" +msgstr "WPA & WPA2 企業版" -#: ../src/connection-editor/nm-connection-list.c:1296 -msgid "Authenticate to delete the selected connection" -msgstr "驗證以刪除選取的連線" +#: ../src/connection-editor/page-wifi-security.c:396 +msgid "Could not load Wi-Fi security user interface; missing Wi-Fi setting." +msgstr "無法載入 Wi-Fi 安全性使用者介面;失去 Wi-Fi 設定值。" -#: ../src/connection-editor/nm-connection-list.c:1575 -msgid "Error creating connection" -msgstr "建立連線時發生錯誤" +#: ../src/connection-editor/page-wifi-security.c:406 +msgid "Wi-Fi Security" +msgstr "Wi-Fi 安全性" -#: ../src/connection-editor/nm-connection-list.c:1576 -#, c-format -msgid "Don't know how to create '%s' connections" -msgstr "不知道如何建立「%s」連線" +#: ../src/connection-editor/page-wifi-security.c:408 +msgid "Could not load Wi-Fi security user interface." +msgstr "無法載入 Wi-Fi 安全性使用者介面。" -#: ../src/connection-editor/nm-connection-list.c:1631 -#: ../src/connection-editor/nm-connection-list.c:1643 -msgid "Error editing connection" -msgstr "編輯連線時發生錯誤" +#: ../src/connection-editor/page-wimax.c:161 +msgid "Could not load WiMAX user interface." +msgstr "無法載入 WiMAX 使用者介面。" -#: ../src/connection-editor/nm-connection-list.c:1632 +#: ../src/connection-editor/page-wimax.c:290 #, c-format -msgid "Don't know how to edit '%s' connections" -msgstr "不知道如何編輯「%s」連線" +msgid "WiMAX connection %d" +msgstr "WiMAX 連線 %d" -#: ../src/connection-editor/nm-connection-list.c:1644 -#, c-format -msgid "Did not find a connection with UUID '%s'" -msgstr "找不到 UUID「%s」的連線" +#: ../src/connection-editor/vpn-helpers.c:207 +msgid "Cannot import VPN connection" +msgstr "無法匯入 VPN 網路連線" -#: ../src/connection-editor/vpn-helpers.c:229 +#: ../src/connection-editor/vpn-helpers.c:209 #, c-format msgid "" "The file '%s' could not be read or does not contain recognized VPN " @@ -2070,29 +2297,29 @@ "\n" "錯誤:%s。" -#: ../src/connection-editor/vpn-helpers.c:262 +#: ../src/connection-editor/vpn-helpers.c:241 msgid "Select file to import" msgstr "選擇要匯入的檔案" -#: ../src/connection-editor/vpn-helpers.c:313 +#: ../src/connection-editor/vpn-helpers.c:292 #, c-format msgid "A file named \"%s\" already exists." msgstr "名為「%s」的檔案已經存在。" -#: ../src/connection-editor/vpn-helpers.c:315 +#: ../src/connection-editor/vpn-helpers.c:294 msgid "_Replace" msgstr "取代(_R)" -#: ../src/connection-editor/vpn-helpers.c:317 +#: ../src/connection-editor/vpn-helpers.c:296 #, c-format msgid "Do you want to replace %s with the VPN connection you are saving?" msgstr "您是否要以準備儲存的 VPN 連線取代 %s?" -#: ../src/connection-editor/vpn-helpers.c:353 +#: ../src/connection-editor/vpn-helpers.c:332 msgid "Cannot export VPN connection" msgstr "不能匯出 VPN 連線" -#: ../src/connection-editor/vpn-helpers.c:355 +#: ../src/connection-editor/vpn-helpers.c:334 #, c-format msgid "" "The VPN connection '%s' could not be exported to %s.\n" @@ -2103,114 +2330,133 @@ "\n" "錯誤:%s。" -#: ../src/connection-editor/vpn-helpers.c:390 +#: ../src/connection-editor/vpn-helpers.c:369 msgid "Export VPN connection..." msgstr "匯出 VPN 連線…" -#: ../src/gnome-bluetooth/bt-widget.c:220 -#, c-format -msgid "Failed to create PAN connection: %s" -msgstr "無法建立 PAN 連線:%s" +#: ../src/ethernet-dialog.c:91 ../src/ethernet-dialog.c:99 +msgid "" +"The NetworkManager Applet could not find some required resources (the .ui " +"file was not found)." +msgstr "NetworkManager 面板程式無法找到一些需要的資源(找不到 .ui 檔)。" -#: ../src/gnome-bluetooth/bt-widget.c:225 -#: ../src/gnome-bluetooth/bt-widget.c:493 -msgid "Your phone is now ready to use!" -msgstr "您的電話現在已經可以使用!" +#: ../src/gnome-bluetooth/bt-widget.c:321 +#, c-format +msgid "" +"Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)." +msgstr "無法進行藍牙的配置(無法連至 D-Bus:(%s) %s)。" -#: ../src/gnome-bluetooth/bt-widget.c:249 +#: ../src/gnome-bluetooth/bt-widget.c:330 #, c-format -msgid "%s Network" -msgstr "%s 網路" +msgid "" +"Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)." +msgstr "無法進行藍牙的配置(找不到 NetworkManager:(%s) %s)。" + +#: ../src/gnome-bluetooth/bt-widget.c:445 +msgid "Use your mobile phone as a network device (PAN/NAP)" +msgstr "使用手機作為網路裝置(PAN/NAP)" + +#: ../src/gnome-bluetooth/bt-widget.c:454 +msgid "Access the Internet using your mobile phone (DUN)" +msgstr "使用手機存取網際網路(DUN)" -#: ../src/gnome-bluetooth/bt-widget.c:375 +#: ../src/gnome-bluetooth/nma-bt-device.c:318 #, c-format msgid "Error: %s" msgstr "錯誤:%s" -#: ../src/gnome-bluetooth/bt-widget.c:488 +#: ../src/gnome-bluetooth/nma-bt-device.c:425 #, c-format msgid "Failed to create DUN connection: %s" msgstr "無法建立 DUN 連線:%s" -#: ../src/gnome-bluetooth/bt-widget.c:511 +#: ../src/gnome-bluetooth/nma-bt-device.c:427 +#: ../src/gnome-bluetooth/nma-bt-device.c:833 +msgid "Your phone is now ready to use!" +msgstr "您的電話現在已經可以使用!" + +#: ../src/gnome-bluetooth/nma-bt-device.c:450 msgid "Mobile wizard was canceled" msgstr "行動精靈已經取消" -#: ../src/gnome-bluetooth/bt-widget.c:520 +#: ../src/gnome-bluetooth/nma-bt-device.c:459 msgid "Unknown phone device type (not GSM or CDMA)" msgstr "不明的電話裝置類型(非 GSM 或 CDMA)" -#: ../src/gnome-bluetooth/bt-widget.c:714 -#: ../src/gnome-bluetooth/bt-widget.c:720 +#: ../src/gnome-bluetooth/nma-bt-device.c:567 +msgid "unknown modem type." +msgstr "不明的數據機類型。" + +#: ../src/gnome-bluetooth/nma-bt-device.c:639 +#: ../src/gnome-bluetooth/nma-bt-device.c:645 msgid "failed to connect to the phone." msgstr "無法連線至電話。" -#: ../src/gnome-bluetooth/bt-widget.c:753 +#: ../src/gnome-bluetooth/nma-bt-device.c:676 msgid "unexpectedly disconnected from the phone." msgstr "電話無預期離線。" -#: ../src/gnome-bluetooth/bt-widget.c:762 +#: ../src/gnome-bluetooth/nma-bt-device.c:686 msgid "timed out detecting phone details." msgstr "在時間內偵測不到電話的詳細資料。" -#: ../src/gnome-bluetooth/bt-widget.c:774 +#: ../src/gnome-bluetooth/nma-bt-device.c:697 msgid "Detecting phone configuration..." msgstr "偵測電話的配置…" -#: ../src/gnome-bluetooth/bt-widget.c:840 -msgid "could not find the Bluetooth device." -msgstr "找不到藍牙裝置。" - -#: ../src/gnome-bluetooth/bt-widget.c:980 +#: ../src/gnome-bluetooth/nma-bt-device.c:794 msgid "" "The default Bluetooth adapter must be enabled before setting up a Dial-Up-" "Networking connection." msgstr "預設的藍牙配接卡必須在設定撥接網路連線前啟用。" -#: ../src/gnome-bluetooth/bt-widget.c:1012 +#: ../src/gnome-bluetooth/nma-bt-device.c:831 #, c-format -msgid "Bluetooth configuration not possible (failed to connect to D-Bus: %s)." -msgstr "無法進行藍牙的配置(無法連至 D-Bus:%s)。" - -#: ../src/gnome-bluetooth/bt-widget.c:1022 -msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." -msgstr "無法進行藍牙的配置(無法連至 D-Bus proxy)。" +msgid "Failed to create PAN connection: %s" +msgstr "無法建立 PAN 連線:%s" -#: ../src/gnome-bluetooth/bt-widget.c:1031 +#: ../src/gnome-bluetooth/nma-bt-device.c:852 #, c-format -msgid "" -"Bluetooth configuration not possible (error finding NetworkManager: %s)." -msgstr "無法進行藍牙的配置(找不到 NetworkManager:%s)。" +msgid "%s Network" +msgstr "%s 網路" -#: ../src/gnome-bluetooth/bt-widget.c:1098 -msgid "Use your mobile phone as a network device (PAN/NAP)" -msgstr "使用手機作為網路裝置(PAN/NAP)" +#: ../src/gsm-unlock.ui.h:1 +msgid "Automatically unlock this device" +msgstr "自動解鎖這個裝置" -#: ../src/gnome-bluetooth/bt-widget.c:1107 -msgid "Access the Internet using your mobile phone (DUN)" -msgstr "使用手機存取網際網路(DUN)" +#: ../src/gsm-unlock.ui.h:2 +msgid "_Unlock" +msgstr "解鎖(_U)" + +#: ../src/info.ui.h:1 +msgid "Connection Information" +msgstr "連線資訊" + +#: ../src/info.ui.h:2 +msgid "Active Network Connections" +msgstr "啟用網路連線" -#: ../src/libnm-gtk/nm-mobile-wizard.c:198 +#: ../src/libnm-gtk/nm-mobile-wizard.c:207 msgid "" "Your mobile broadband connection is configured with the following settings:" msgstr "行動寬連線已經配置了以下設定:" #. Device -#: ../src/libnm-gtk/nm-mobile-wizard.c:205 +#: ../src/libnm-gtk/nm-mobile-wizard.c:214 msgid "Your Device:" msgstr "您的裝置:" #. Provider -#: ../src/libnm-gtk/nm-mobile-wizard.c:216 +#: ../src/libnm-gtk/nm-mobile-wizard.c:225 msgid "Your Provider:" msgstr "您的供應商:" #. Plan and APN -#: ../src/libnm-gtk/nm-mobile-wizard.c:227 +#: ../src/libnm-gtk/nm-mobile-wizard.c:236 msgid "Your Plan:" msgstr "您的方案:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:252 +#: ../src/libnm-gtk/nm-mobile-wizard.c:261 msgid "" "A connection will now be made to your mobile broadband provider using the " "settings you selected. If the connection fails or you cannot access network " @@ -2222,23 +2468,23 @@ "無法存取網路資源,請檢查設定。要修改行動寬頻連線的設定,請從「系統」 >> 「偏" "好設定」中,選擇「網路連線」。" -#: ../src/libnm-gtk/nm-mobile-wizard.c:264 +#: ../src/libnm-gtk/nm-mobile-wizard.c:273 msgid "Confirm Mobile Broadband Settings" msgstr "確認行動寬頻設定" -#: ../src/libnm-gtk/nm-mobile-wizard.c:325 +#: ../src/libnm-gtk/nm-mobile-wizard.c:337 msgid "Unlisted" msgstr "未列出的" -#: ../src/libnm-gtk/nm-mobile-wizard.c:480 +#: ../src/libnm-gtk/nm-mobile-wizard.c:492 msgid "_Select your plan:" msgstr "選擇您的方案(_S):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:504 +#: ../src/libnm-gtk/nm-mobile-wizard.c:516 msgid "Selected plan _APN (Access Point Name):" msgstr "選擇方案的 _APN(Access Point Name,存取點名稱):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:528 +#: ../src/libnm-gtk/nm-mobile-wizard.c:540 msgid "" "Warning: Selecting an incorrect plan may result in billing issues for your " "broadband account or may prevent connectivity.\n" @@ -2249,164 +2495,163 @@ "\n" "如果您不確定所使用的方案,請洽詢供應商,以得知方案的 APN 為何。" -#: ../src/libnm-gtk/nm-mobile-wizard.c:535 +#: ../src/libnm-gtk/nm-mobile-wizard.c:547 msgid "Choose your Billing Plan" msgstr "選擇您的計費方案" -#: ../src/libnm-gtk/nm-mobile-wizard.c:583 +#: ../src/libnm-gtk/nm-mobile-wizard.c:596 msgid "My plan is not listed..." msgstr "我的方案沒有列出…" -#: ../src/libnm-gtk/nm-mobile-wizard.c:740 +#: ../src/libnm-gtk/nm-mobile-wizard.c:753 msgid "Select your provider from a _list:" msgstr "請從清單裡選擇供應商(_L):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:753 +#: ../src/libnm-gtk/nm-mobile-wizard.c:766 msgid "Provider" msgstr "供應商" -#: ../src/libnm-gtk/nm-mobile-wizard.c:778 +#: ../src/libnm-gtk/nm-mobile-wizard.c:791 msgid "I can't find my provider and I wish to enter it _manually:" msgstr "我找不到我的供應商,我想要手動輸入(_M):" -#: ../src/libnm-gtk/nm-mobile-wizard.c:789 +#: ../src/libnm-gtk/nm-mobile-wizard.c:802 msgid "Provider:" msgstr "供應商:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:813 +#: ../src/libnm-gtk/nm-mobile-wizard.c:826 msgid "My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)" msgstr "我的供應商使用 GSM 技術(GPRS、EDGE、UMTS、HSPA)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:819 +#: ../src/libnm-gtk/nm-mobile-wizard.c:832 msgid "My provider uses CDMA technology (1xRTT, EVDO)" msgstr "我的供應商使用 CDMA 技術(1xRTT、EVDO)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:830 +#: ../src/libnm-gtk/nm-mobile-wizard.c:843 msgid "Choose your Provider" msgstr "選擇您的供應商" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1081 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1094 msgid "Country or Region List:" msgstr "國家或地區清單:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1093 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1106 msgid "Country or region" msgstr "國家或地區" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1100 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1113 msgid "My country is not listed" msgstr "我的國家並沒有列出來" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1146 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1159 msgid "Choose your Provider's Country or Region" msgstr "選擇您的供應商的國家或地區" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1200 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1213 msgid "Installed GSM device" msgstr "已安裝的 GSM 裝置" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1203 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1216 msgid "Installed CDMA device" msgstr "已安裝的 CDMA 裝置" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1375 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1388 msgid "" "This assistant helps you easily set up a mobile broadband connection to a " "cellular (3G) network." msgstr "這能幫助您輕易地設定行動寬頻連線,連至手機(3G)網路。" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1380 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1393 msgid "You will need the following information:" msgstr "您需要以下資訊:" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1395 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1408 msgid "Your broadband provider's name" msgstr "寬頻供應商的名稱" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1401 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1414 msgid "Your broadband billing plan name" msgstr "寬頻計費方案的名稱" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1407 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1420 msgid "(in some cases) Your broadband billing plan APN (Access Point Name)" msgstr "(在有些情況下)您的寬頻計費方案的 APN(存取點名稱)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1434 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1447 msgid "Create a connection for _this mobile broadband device:" msgstr "為這個行動寬頻裝置建立連線(_T)" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1449 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 msgid "Any device" msgstr "任何裝置" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1462 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1475 msgid "Set up a Mobile Broadband Connection" msgstr "設定行動寬頻連線" -#: ../src/libnm-gtk/nm-mobile-wizard.c:1626 +#: ../src/libnm-gtk/nm-mobile-wizard.c:1639 msgid "New Mobile Broadband Connection" msgstr "新的行動寬頻連線" -#: ../src/libnm-gtk/nm-wireless-dialog.c:457 +#: ../src/libnm-gtk/nm-wifi-dialog.c:438 msgid "New..." msgstr "新增…" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1077 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1057 msgid "C_reate" msgstr "建立(_R)" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1161 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1141 #, c-format msgid "" -"Passwords or encryption keys are required to access the wireless network " -"'%s'." -msgstr "需要密碼或是加密金鑰來存取無線網路「%s」。" +"Passwords or encryption keys are required to access the Wi-Fi network '%s'." +msgstr "需要密碼或是加密金鑰來存取 Wi-Fi 網路「%s」。" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1163 -msgid "Wireless Network Authentication Required" -msgstr "無線網路驗證要求" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1143 +msgid "Wi-Fi Network Authentication Required" +msgstr "Wi-Fi 網路連線「%s」需要驗證" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1165 -msgid "Authentication required by wireless network" -msgstr "無線網路所需要的驗證" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1145 +msgid "Authentication required by Wi-Fi network" +msgstr "Wi-Fi 網路連線「%s」需要驗證" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1170 -msgid "Create New Wireless Network" -msgstr "建立新的無線網路" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1150 +msgid "Create New Wi-Fi Network" +msgstr "建立新的 Wi-Fi 網路" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1172 -msgid "New wireless network" -msgstr "新的無線網路" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1152 +msgid "New Wi-Fi network" +msgstr "新的 Wi-Fi 網路" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1173 -msgid "Enter a name for the wireless network you wish to create." -msgstr "輸入您要建立的無線網路的名稱。" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1153 +msgid "Enter a name for the Wi-Fi network you wish to create." +msgstr "輸入您要建立的 Wi-Fi 網路的名稱。" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1175 -msgid "Connect to Hidden Wireless Network" -msgstr "連接到隱藏的無線網路" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1155 +msgid "Connect to Hidden Wi-Fi Network" +msgstr "連接到隱藏的 Wi-Fi 網路" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1177 -msgid "Hidden wireless network" -msgstr "隱藏的無線網路" +#: ../src/libnm-gtk/nm-wifi-dialog.c:1157 +msgid "Hidden Wi-Fi network" +msgstr "隱藏的 Wi-Fi 網路" -#: ../src/libnm-gtk/nm-wireless-dialog.c:1178 +#: ../src/libnm-gtk/nm-wifi-dialog.c:1158 msgid "" -"Enter the name and security details of the hidden wireless network you wish " -"to connect to." -msgstr "輸入您要連接的隱藏無線網路的名稱與安全性詳細資料。" +"Enter the name and security details of the hidden Wi-Fi network you wish to " +"connect to." +msgstr "輸入您要連接的隱藏 Wi-Fi 網路的名稱與安全性詳細資料。" #: ../src/libnm-gtk/wifi.ui.h:2 -msgid "Co_nnection:" -msgstr "連線(_N):" +msgid "Wi-Fi _security:" +msgstr "Wi-Fi 安全性(_S):" -#: ../src/libnm-gtk/wifi.ui.h:3 -msgid "Wireless _adapter:" -msgstr "無線網路卡(_A):" +#: ../src/libnm-gtk/wifi.ui.h:4 +msgid "C_onnection:" +msgstr "連線(_N):" #: ../src/libnm-gtk/wifi.ui.h:5 -msgid "_Wireless security:" -msgstr "無線網路安全(_W):" +msgid "Wi-Fi _adapter:" +msgstr "Wi-Fi 介面卡(_A):" #: ../src/main.c:73 msgid "Usage:" @@ -2453,10 +2698,6 @@ msgid "HSPA" msgstr "HSPA" -#: ../src/mb-menu-item.c:73 -msgid "WiMAX" -msgstr "WiMAX" - #: ../src/mb-menu-item.c:109 msgid "not enabled" msgstr "未啟用" @@ -2507,88 +2748,88 @@ msgid "Default" msgstr "預設" -#: ../src/wired-dialog.c:91 ../src/wired-dialog.c:99 -msgid "" -"The NetworkManager Applet could not find some required resources (the .ui " -"file was not found)." -msgstr "NetworkManager 面板程式無法找到一些需要的資源(找不到 .ui 檔)。" +#. The %s is a mobile provider name, eg "T-Mobile" +#: ../src/utils/utils.c:325 +#, c-format +msgid "%s connection" +msgstr "%s 連線" -#: ../src/wireless-security/eap-method.c:279 +#: ../src/wireless-security/eap-method.c:275 msgid "No Certificate Authority certificate chosen" msgstr "未選擇任何憑證授權單位(CA)憑證" -#: ../src/wireless-security/eap-method.c:280 +#: ../src/wireless-security/eap-method.c:276 msgid "" "Not using a Certificate Authority (CA) certificate can result in connections " -"to insecure, rogue wireless networks. Would you like to choose a " -"Certificate Authority certificate?" +"to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate " +"Authority certificate?" msgstr "" -"不使用憑證中心 (CA) 的憑證會造成連線不安全、流氓無線網路(可能被竊取、劫聽之" -"意)。是否要選擇一個憑證中心的憑證?" +"不使用憑證中心 (CA) 的憑證會造成連線不安全、流氓 Wi-Fi 網路 (可能被竊取、劫聽" +"之意)。是否要選擇一個憑證中心的憑證?" -#: ../src/wireless-security/eap-method.c:289 +#: ../src/wireless-security/eap-method.c:285 msgid "Choose CA Certificate" msgstr "選擇 CA 憑證" -#: ../src/wireless-security/eap-method.c:648 +#: ../src/wireless-security/eap-method.c:645 msgid "DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)" msgstr "DER, PEM, 或 PKCS#12 私密金鑰(*.der, *.pem, *.p12)" -#: ../src/wireless-security/eap-method.c:651 +#: ../src/wireless-security/eap-method.c:648 msgid "DER or PEM certificates (*.der, *.pem, *.crt, *.cer)" msgstr "DER 或 PEM 憑證 (*.der, *.pem, *.crt, *.cer)" -#: ../src/wireless-security/eap-method-fast.ui.h:2 -msgid "Allow automatic PAC pro_visioning" -msgstr "允許自動供應 PAC (_V)" +#: ../src/wireless-security/eap-method-fast.c:261 +#: ../src/wireless-security/eap-method-peap.c:280 +msgid "GTC" +msgstr "GTC" -#: ../src/wireless-security/eap-method-fast.ui.h:3 -#: ../src/wireless-security/eap-method-peap.ui.h:2 -#: ../src/wireless-security/eap-method-ttls.ui.h:2 -msgid "Anony_mous identity:" -msgstr "匿名識別(_M):" +#: ../src/wireless-security/eap-method-fast.c:399 +msgid "Choose a PAC file..." +msgstr "選擇一個 PAC 檔案…" -#: ../src/wireless-security/eap-method-fast.ui.h:4 +#: ../src/wireless-security/eap-method-fast.c:406 +msgid "PAC files (*.pac)" +msgstr "PAC 檔案 (*.pac)" + +#: ../src/wireless-security/eap-method-fast.c:410 +msgid "All files" +msgstr "所有檔案" + +#: ../src/wireless-security/eap-method-fast.ui.h:2 msgid "Anonymous" msgstr "匿名" -#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-fast.ui.h:3 msgid "Authenticated" msgstr "已驗證" -#: ../src/wireless-security/eap-method-fast.ui.h:6 +#: ../src/wireless-security/eap-method-fast.ui.h:4 msgid "Both" msgstr "兩者" -#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-fast.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-ttls.ui.h:2 +msgid "Anony_mous identity:" +msgstr "匿名識別(_M):" + +#: ../src/wireless-security/eap-method-fast.ui.h:6 msgid "PAC _file:" msgstr "PAC 檔案(_F):" -#: ../src/wireless-security/eap-method-fast.ui.h:8 -#: ../src/wireless-security/eap-method-peap.ui.h:8 +#: ../src/wireless-security/eap-method-fast.ui.h:7 +#: ../src/wireless-security/eap-method-peap.ui.h:7 #: ../src/wireless-security/eap-method-ttls.ui.h:4 msgid "_Inner authentication:" msgstr "內部驗證(_I):" -#: ../src/wireless-security/eap-method-fast.c:261 -#: ../src/wireless-security/eap-method-peap.c:280 -msgid "GTC" -msgstr "GTC" - -#: ../src/wireless-security/eap-method-fast.c:399 -msgid "Choose a PAC file..." -msgstr "選擇一個 PAC 檔案…" - -#: ../src/wireless-security/eap-method-fast.c:406 -msgid "PAC files (*.pac)" -msgstr "PAC 檔案 (*.pac)" - -#: ../src/wireless-security/eap-method-fast.c:410 -msgid "All files" -msgstr "所有檔案" +#: ../src/wireless-security/eap-method-fast.ui.h:8 +msgid "Allow automatic PAC pro_visioning" +msgstr "允許自動供應 PAC (_V)" #: ../src/wireless-security/eap-method-peap.c:263 -#: ../src/wireless-security/wireless-security.c:373 +#: ../src/wireless-security/wireless-security.c:382 msgid "MD5" msgstr "MD5" @@ -2598,25 +2839,25 @@ msgid "Choose a Certificate Authority certificate..." msgstr "選擇憑證授權單位(CA)憑證…" +#: ../src/wireless-security/eap-method-peap.ui.h:3 +msgid "Version 0" +msgstr "版本 0" + #: ../src/wireless-security/eap-method-peap.ui.h:4 -#: ../src/wireless-security/eap-method-tls.ui.h:1 +msgid "Version 1" +msgstr "版本 1" + +#: ../src/wireless-security/eap-method-peap.ui.h:6 +#: ../src/wireless-security/eap-method-tls.ui.h:3 #: ../src/wireless-security/eap-method-ttls.ui.h:3 msgid "C_A certificate:" msgstr "CA 憑證(_A):" -#: ../src/wireless-security/eap-method-peap.ui.h:5 +#: ../src/wireless-security/eap-method-peap.ui.h:8 msgid "PEAP _version:" msgstr "PEAP 版本(_V):" -#: ../src/wireless-security/eap-method-peap.ui.h:6 -msgid "Version 0" -msgstr "版本 0" - -#: ../src/wireless-security/eap-method-peap.ui.h:7 -msgid "Version 1" -msgstr "版本 1" - -#: ../src/wireless-security/eap-method-simple.ui.h:1 +#: ../src/wireless-security/eap-method-simple.ui.h:3 msgid "As_k for this password every time" msgstr "每次都詢問密碼(_K)" @@ -2645,11 +2886,15 @@ msgid "Choose your private key..." msgstr "選擇您的私密金鑰…" -#: ../src/wireless-security/eap-method-tls.ui.h:2 +#: ../src/wireless-security/eap-method-tls.ui.h:1 msgid "I_dentity:" msgstr "識別(_D):" -#: ../src/wireless-security/eap-method-tls.ui.h:3 +#: ../src/wireless-security/eap-method-tls.ui.h:2 +msgid "_User certificate:" +msgstr "使用者憑證(_U):" + +#: ../src/wireless-security/eap-method-tls.ui.h:4 msgid "Private _key:" msgstr "私密金鑰(_K):" @@ -2657,10 +2902,6 @@ msgid "_Private key password:" msgstr "私密金鑰密碼(_P):" -#: ../src/wireless-security/eap-method-tls.ui.h:6 -msgid "_User certificate:" -msgstr "使用者憑證(_U):" - #: ../src/wireless-security/nag-user-dialog.ui.h:1 msgid "Don't _warn me again" msgstr "不要再警告我(_W)" @@ -2673,63 +2914,127 @@ msgid "Yes" msgstr "是" -#: ../src/wireless-security/wireless-security.c:385 +#: ../src/wireless-security/wireless-security.c:394 msgid "TLS" msgstr "TLS" -#: ../src/wireless-security/wireless-security.c:409 +#: ../src/wireless-security/wireless-security.c:418 msgid "FAST" msgstr "快" -#: ../src/wireless-security/wireless-security.c:420 +#: ../src/wireless-security/wireless-security.c:429 msgid "Tunneled TLS" msgstr "穿隧式 TLS" -#: ../src/wireless-security/wireless-security.c:431 +#: ../src/wireless-security/wireless-security.c:440 msgid "Protected EAP (PEAP)" msgstr "保護式 EAP (PEAP)" #: ../src/wireless-security/ws-dynamic-wep.ui.h:2 -#: ../src/wireless-security/ws-wep-key.ui.h:5 +#: ../src/wireless-security/ws-wep-key.ui.h:9 #: ../src/wireless-security/ws-wpa-eap.ui.h:2 msgid "Au_thentication:" msgstr "驗證(_E):" #: ../src/wireless-security/ws-wep-key.ui.h:1 +msgid "Open System" +msgstr "開放系統" + +#: ../src/wireless-security/ws-wep-key.ui.h:2 +msgid "Shared Key" +msgstr "共享金鑰" + +#: ../src/wireless-security/ws-wep-key.ui.h:3 msgid "1 (Default)" msgstr "1 (預設值)" -#: ../src/wireless-security/ws-wep-key.ui.h:2 +#: ../src/wireless-security/ws-wep-key.ui.h:4 msgid "2" msgstr "2" -#: ../src/wireless-security/ws-wep-key.ui.h:3 +#: ../src/wireless-security/ws-wep-key.ui.h:5 msgid "3" msgstr "3" -#: ../src/wireless-security/ws-wep-key.ui.h:4 +#: ../src/wireless-security/ws-wep-key.ui.h:6 msgid "4" msgstr "4" -#: ../src/wireless-security/ws-wep-key.ui.h:6 -msgid "Open System" -msgstr "開放系統" - #: ../src/wireless-security/ws-wep-key.ui.h:7 -msgid "Shared Key" -msgstr "共享金鑰" +msgid "_Key:" +msgstr "金鑰(_K):" #: ../src/wireless-security/ws-wep-key.ui.h:8 msgid "Sho_w key" msgstr "顯示金鑰(_W)" -#: ../src/wireless-security/ws-wep-key.ui.h:9 +#: ../src/wireless-security/ws-wep-key.ui.h:10 msgid "WEP inde_x:" msgstr "WEP 索引(_X):" -#: ../src/wireless-security/ws-wep-key.ui.h:10 -msgid "_Key:" -msgstr "金鑰(_K):" +#~ msgid "An unknown error occurred." +#~ msgstr "發生不明的錯誤。" + +#~ msgid "Could not edit new connection" +#~ msgstr "無法編輯新連線" + +#~ msgid "Wireless Networks (%s)" +#~ msgstr "無線網路 (%s)" + +#~ msgid "Wireless Network (%s)" +#~ msgstr "無線網路 (%s)" + +#~ msgid "Wireless Network" +#~ msgid_plural "Wireless Networks" +#~ msgstr[0] "無線網路" + +#~ msgid "wireless is disabled" +#~ msgstr "無線網路已停用" + +#~ msgid "wireless is disabled by hardware switch" +#~ msgstr "無線網路已被硬體開關停用" + +#~ msgid "Preparing wireless network connection '%s'..." +#~ msgstr "正在準備無線網路連線「%s」…" + +#~ msgid "Configuring wireless network connection '%s'..." +#~ msgstr "正在設定無線網路連線「%s」…" + +#~ msgid "Requesting a wireless network address for '%s'..." +#~ msgstr "正在要求無線網路「%s」提供網路位址…" + +#~ msgid "Wireless network connection '%s' active" +#~ msgstr "無線網路連線「%s」在使用中" + +#~ msgid "Wired" +#~ msgstr "有線" + +#~ msgid "Could not load Wired Security security user interface." +#~ msgstr "無法載入 Wired Security 安全使用者介面。" + +#~ msgid "Wireless" +#~ msgstr "無線網路" + +#~ msgid "Wireless connection %d" +#~ msgstr "無線網路連線 %d" + +#~ msgid "_Import" +#~ msgstr "匯入(_I)" + +#~ msgid "Could not edit imported connection" +#~ msgstr "無法編輯匯入的連線" + +#~ msgid "No VPN plugin available. Please install one to enable this button." +#~ msgstr "沒有 VPN 外掛程式可用。請安裝其中一種以啟用這個按鈕。" + +#~ msgid "Don't know how to edit '%s' connections" +#~ msgstr "不知道如何編輯「%s」連線" + +#~ msgid "could not find the Bluetooth device." +#~ msgstr "找不到藍牙裝置。" + +#~ msgid "Bluetooth configuration not possible (failed to create D-Bus proxy)." +#~ msgstr "無法進行藍牙的配置(無法連至 D-Bus proxy)。" #~ msgid "_Security:" #~ msgstr "安全性(_S):" diff -Nru network-manager-applet-0.9.4.1/src/8021x.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/8021x.ui --- network-manager-applet-0.9.4.1/src/8021x.ui 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/8021x.ui 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,165 @@ + + + + + + 5 + 802.1X authentication + False + True + center-always + 488 + dialog-password + dialog + + + True + vertical + 2 + + + True + 5 + 12 + + + True + 0 + dialog-password + 6 + + + False + 0 + + + + + True + vertical + 6 + + + True + 0 + True + True + + + False + 0 + + + + + True + 2 + 2 + 12 + 6 + + + True + 0 + _Network name: + True + network_name_entry + + + GTK_FILL + + + + + + True + True + + True + + + 1 + 2 + + + + + + True + vertical + + + + + + 2 + 1 + 2 + GTK_FILL + + + + + 1 + + + + + 1 + + + + + 1 + + + + + True + end + + + gtk-cancel + True + True + True + False + True + + + False + False + 0 + + + + + gtk-connect + True + True + True + True + False + True + + + False + False + 1 + + + + + False + end + 0 + + + + + + cancel_button + ok_button + + + diff -Nru network-manager-applet-0.9.4.1/src/Makefile.am network-manager-applet-0.9.6.2+git201210311320.2620/src/Makefile.am --- network-manager-applet-0.9.4.1/src/Makefile.am 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/Makefile.am 2012-10-31 13:21:01.000000000 +0000 @@ -1,13 +1,13 @@ -SUBDIRS = marshallers utils gconf-helpers wireless-security libnm-gtk connection-editor gnome-bluetooth +SUBDIRS = marshallers utils wireless-security libnm-gtk connection-editor gnome-bluetooth bin_PROGRAMS = nm-applet nm_applet_CPPFLAGS = \ $(GTK_CFLAGS) \ $(NMA_CFLAGS) \ - $(GCONF_CFLAGS) \ $(GNOME_KEYRING_CFLAGS) \ $(NOTIFY_CFLAGS) \ + $(APPINDICATOR_CFLAGS) \ -DICONDIR=\""$(datadir)/icons"\" \ -DUIDIR=\""$(uidir)"\" \ -DBINDIR=\""$(bindir)"\" \ @@ -20,7 +20,6 @@ $(DISABLE_DEPRECATED) \ -I${top_builddir}/src/marshallers \ -I${top_srcdir}/src/utils \ - -I${top_srcdir}/src/gconf-helpers \ -I${top_srcdir}/src/wireless-security \ -I${top_srcdir}/src/libnm-gtk @@ -37,12 +36,12 @@ applet-agent.h \ applet-vpn-request.c \ applet-vpn-request.h \ - wired-dialog.h \ - wired-dialog.c \ + ethernet-dialog.h \ + ethernet-dialog.c \ applet-dialogs.h \ applet-dialogs.c \ - applet-device-wired.h \ - applet-device-wired.c \ + applet-device-ethernet.h \ + applet-device-ethernet.c \ applet-device-wifi.h \ applet-device-wifi.c \ ap-menu-item.h \ @@ -59,23 +58,45 @@ applet-device-bt.c \ applet-device-wimax.h \ applet-device-wimax.c \ - fallback-icon.h + fallback-icon.h \ + shell-watcher.h \ + shell-watcher.c nm_applet_LDADD = \ -lm \ $(GTK_LIBS) \ $(NMA_LIBS) \ - $(GCONF_LIBS) \ $(GNOME_KEYRING_LIBS) \ $(NOTIFY_LIBS) \ + $(APPINDICATOR_LIBS) \ ${top_builddir}/src/marshallers/libmarshallers.la \ ${top_builddir}/src/utils/libutils.la \ - ${top_builddir}/src/gconf-helpers/libgconf-helpers.la \ ${top_builddir}/src/wireless-security/libwireless-security.la \ ${top_builddir}/src/libnm-gtk/libnm-gtk.la + +if BUILD_MIGRATION_TOOL +SUBDIRS += gconf-helpers + +libexec_PROGRAMS = nm-applet-migration-tool +endif + +nm_applet_migration_tool_CPPFLAGS = \ + $(nm_applet_CPPFLAGS) \ + $(GCONF_CFLAGS) \ + -I${top_srcdir}/src/gconf-helpers + +nm_applet_migration_tool_SOURCES = \ + migration-tool.c + +nm_applet_migration_tool_LDADD = \ + $(nm_applet_LDADD) \ + $(GCONF_LIBS) \ + ${top_builddir}/src/gconf-helpers/libgconf-helpers.la + + uidir = $(datadir)/nm-applet -ui_DATA = gsm-unlock.ui info.ui wired-8021x.ui keyring.png +ui_DATA = gsm-unlock.ui info.ui 8021x.ui keyring.png CLEANFILES = *.bak $(BUILT_SOURCES) diff -Nru network-manager-applet-0.9.4.1/src/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/src/Makefile.in --- network-manager-applet-0.9.4.1/src/Makefile.in 2012-03-23 22:55:41.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,1139 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -bin_PROGRAMS = nm-applet$(EXEEXT) -subdir = src -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(uidir)" -PROGRAMS = $(bin_PROGRAMS) -am_nm_applet_OBJECTS = nm_applet-main.$(OBJEXT) \ - nm_applet-applet.$(OBJEXT) nm_applet-applet-agent.$(OBJEXT) \ - nm_applet-applet-vpn-request.$(OBJEXT) \ - nm_applet-wired-dialog.$(OBJEXT) \ - nm_applet-applet-dialogs.$(OBJEXT) \ - nm_applet-applet-device-wired.$(OBJEXT) \ - nm_applet-applet-device-wifi.$(OBJEXT) \ - nm_applet-ap-menu-item.$(OBJEXT) \ - nm_applet-mb-menu-item.$(OBJEXT) \ - nm_applet-applet-device-gsm.$(OBJEXT) \ - nm_applet-applet-device-cdma.$(OBJEXT) \ - nm_applet-mobile-helpers.$(OBJEXT) \ - nm_applet-applet-device-bt.$(OBJEXT) \ - nm_applet-applet-device-wimax.$(OBJEXT) -nm_applet_OBJECTS = $(am_nm_applet_OBJECTS) -am__DEPENDENCIES_1 = -nm_applet_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) \ - ${top_builddir}/src/marshallers/libmarshallers.la \ - ${top_builddir}/src/utils/libutils.la \ - ${top_builddir}/src/gconf-helpers/libgconf-helpers.la \ - ${top_builddir}/src/wireless-security/libwireless-security.la \ - ${top_builddir}/src/libnm-gtk/libnm-gtk.la -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(nm_applet_SOURCES) -DIST_SOURCES = $(nm_applet_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -DATA = $(ui_DATA) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = marshallers utils gconf-helpers wireless-security libnm-gtk connection-editor gnome-bluetooth -nm_applet_CPPFLAGS = \ - $(GTK_CFLAGS) \ - $(NMA_CFLAGS) \ - $(GCONF_CFLAGS) \ - $(GNOME_KEYRING_CFLAGS) \ - $(NOTIFY_CFLAGS) \ - -DICONDIR=\""$(datadir)/icons"\" \ - -DUIDIR=\""$(uidir)"\" \ - -DBINDIR=\""$(bindir)"\" \ - -DSYSCONFDIR=\""$(sysconfdir)"\" \ - -DLIBEXECDIR=\""$(libexecdir)"\" \ - -DAUTOSTARTDIR=\""$(sysconfdir)/xdg/autostart"\" \ - -DVPN_NAME_FILES_DIR=\""$(sysconfdir)/NetworkManager/VPN"\" \ - -DNMALOCALEDIR=\"$(datadir)/locale\" \ - $(DBUS_CFLAGS) \ - $(DISABLE_DEPRECATED) \ - -I${top_builddir}/src/marshallers \ - -I${top_srcdir}/src/utils \ - -I${top_srcdir}/src/gconf-helpers \ - -I${top_srcdir}/src/wireless-security \ - -I${top_srcdir}/src/libnm-gtk - -BUILT_SOURCES = applet-dbus-bindings.h -nm_applet_SOURCES = \ - main.c \ - applet.c \ - applet.h \ - applet-agent.c \ - applet-agent.h \ - applet-vpn-request.c \ - applet-vpn-request.h \ - wired-dialog.h \ - wired-dialog.c \ - applet-dialogs.h \ - applet-dialogs.c \ - applet-device-wired.h \ - applet-device-wired.c \ - applet-device-wifi.h \ - applet-device-wifi.c \ - ap-menu-item.h \ - ap-menu-item.c \ - mb-menu-item.h \ - mb-menu-item.c \ - applet-device-gsm.h \ - applet-device-gsm.c \ - applet-device-cdma.h \ - applet-device-cdma.c \ - mobile-helpers.c \ - mobile-helpers.h \ - applet-device-bt.h \ - applet-device-bt.c \ - applet-device-wimax.h \ - applet-device-wimax.c \ - fallback-icon.h - -nm_applet_LDADD = \ - -lm \ - $(GTK_LIBS) \ - $(NMA_LIBS) \ - $(GCONF_LIBS) \ - $(GNOME_KEYRING_LIBS) \ - $(NOTIFY_LIBS) \ - ${top_builddir}/src/marshallers/libmarshallers.la \ - ${top_builddir}/src/utils/libutils.la \ - ${top_builddir}/src/gconf-helpers/libgconf-helpers.la \ - ${top_builddir}/src/wireless-security/libwireless-security.la \ - ${top_builddir}/src/libnm-gtk/libnm-gtk.la - -uidir = $(datadir)/nm-applet -ui_DATA = gsm-unlock.ui info.ui wired-8021x.ui keyring.png -CLEANFILES = *.bak $(BUILT_SOURCES) -EXTRA_DIST = \ - $(ui_DATA) \ - nm-applet-introspection.xml - -all: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p || test -f $$p1; \ - then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -nm-applet$(EXEEXT): $(nm_applet_OBJECTS) $(nm_applet_DEPENDENCIES) - @rm -f nm-applet$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(nm_applet_OBJECTS) $(nm_applet_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-ap-menu-item.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-applet-agent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-applet-device-bt.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-applet-device-cdma.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-applet-device-gsm.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-applet-device-wifi.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-applet-device-wimax.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-applet-device-wired.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-applet-dialogs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-applet-vpn-request.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-applet.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-mb-menu-item.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-mobile-helpers.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_applet-wired-dialog.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -nm_applet-main.o: main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-main.o -MD -MP -MF $(DEPDIR)/nm_applet-main.Tpo -c -o nm_applet-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-main.Tpo $(DEPDIR)/nm_applet-main.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='nm_applet-main.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c - -nm_applet-main.obj: main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-main.obj -MD -MP -MF $(DEPDIR)/nm_applet-main.Tpo -c -o nm_applet-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-main.Tpo $(DEPDIR)/nm_applet-main.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='nm_applet-main.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` - -nm_applet-applet.o: applet.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet.o -MD -MP -MF $(DEPDIR)/nm_applet-applet.Tpo -c -o nm_applet-applet.o `test -f 'applet.c' || echo '$(srcdir)/'`applet.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet.Tpo $(DEPDIR)/nm_applet-applet.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet.c' object='nm_applet-applet.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet.o `test -f 'applet.c' || echo '$(srcdir)/'`applet.c - -nm_applet-applet.obj: applet.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet.obj -MD -MP -MF $(DEPDIR)/nm_applet-applet.Tpo -c -o nm_applet-applet.obj `if test -f 'applet.c'; then $(CYGPATH_W) 'applet.c'; else $(CYGPATH_W) '$(srcdir)/applet.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet.Tpo $(DEPDIR)/nm_applet-applet.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet.c' object='nm_applet-applet.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet.obj `if test -f 'applet.c'; then $(CYGPATH_W) 'applet.c'; else $(CYGPATH_W) '$(srcdir)/applet.c'; fi` - -nm_applet-applet-agent.o: applet-agent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-agent.o -MD -MP -MF $(DEPDIR)/nm_applet-applet-agent.Tpo -c -o nm_applet-applet-agent.o `test -f 'applet-agent.c' || echo '$(srcdir)/'`applet-agent.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-agent.Tpo $(DEPDIR)/nm_applet-applet-agent.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-agent.c' object='nm_applet-applet-agent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-agent.o `test -f 'applet-agent.c' || echo '$(srcdir)/'`applet-agent.c - -nm_applet-applet-agent.obj: applet-agent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-agent.obj -MD -MP -MF $(DEPDIR)/nm_applet-applet-agent.Tpo -c -o nm_applet-applet-agent.obj `if test -f 'applet-agent.c'; then $(CYGPATH_W) 'applet-agent.c'; else $(CYGPATH_W) '$(srcdir)/applet-agent.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-agent.Tpo $(DEPDIR)/nm_applet-applet-agent.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-agent.c' object='nm_applet-applet-agent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-agent.obj `if test -f 'applet-agent.c'; then $(CYGPATH_W) 'applet-agent.c'; else $(CYGPATH_W) '$(srcdir)/applet-agent.c'; fi` - -nm_applet-applet-vpn-request.o: applet-vpn-request.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-vpn-request.o -MD -MP -MF $(DEPDIR)/nm_applet-applet-vpn-request.Tpo -c -o nm_applet-applet-vpn-request.o `test -f 'applet-vpn-request.c' || echo '$(srcdir)/'`applet-vpn-request.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-vpn-request.Tpo $(DEPDIR)/nm_applet-applet-vpn-request.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-vpn-request.c' object='nm_applet-applet-vpn-request.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-vpn-request.o `test -f 'applet-vpn-request.c' || echo '$(srcdir)/'`applet-vpn-request.c - -nm_applet-applet-vpn-request.obj: applet-vpn-request.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-vpn-request.obj -MD -MP -MF $(DEPDIR)/nm_applet-applet-vpn-request.Tpo -c -o nm_applet-applet-vpn-request.obj `if test -f 'applet-vpn-request.c'; then $(CYGPATH_W) 'applet-vpn-request.c'; else $(CYGPATH_W) '$(srcdir)/applet-vpn-request.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-vpn-request.Tpo $(DEPDIR)/nm_applet-applet-vpn-request.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-vpn-request.c' object='nm_applet-applet-vpn-request.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-vpn-request.obj `if test -f 'applet-vpn-request.c'; then $(CYGPATH_W) 'applet-vpn-request.c'; else $(CYGPATH_W) '$(srcdir)/applet-vpn-request.c'; fi` - -nm_applet-wired-dialog.o: wired-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-wired-dialog.o -MD -MP -MF $(DEPDIR)/nm_applet-wired-dialog.Tpo -c -o nm_applet-wired-dialog.o `test -f 'wired-dialog.c' || echo '$(srcdir)/'`wired-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-wired-dialog.Tpo $(DEPDIR)/nm_applet-wired-dialog.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='wired-dialog.c' object='nm_applet-wired-dialog.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-wired-dialog.o `test -f 'wired-dialog.c' || echo '$(srcdir)/'`wired-dialog.c - -nm_applet-wired-dialog.obj: wired-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-wired-dialog.obj -MD -MP -MF $(DEPDIR)/nm_applet-wired-dialog.Tpo -c -o nm_applet-wired-dialog.obj `if test -f 'wired-dialog.c'; then $(CYGPATH_W) 'wired-dialog.c'; else $(CYGPATH_W) '$(srcdir)/wired-dialog.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-wired-dialog.Tpo $(DEPDIR)/nm_applet-wired-dialog.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='wired-dialog.c' object='nm_applet-wired-dialog.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-wired-dialog.obj `if test -f 'wired-dialog.c'; then $(CYGPATH_W) 'wired-dialog.c'; else $(CYGPATH_W) '$(srcdir)/wired-dialog.c'; fi` - -nm_applet-applet-dialogs.o: applet-dialogs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-dialogs.o -MD -MP -MF $(DEPDIR)/nm_applet-applet-dialogs.Tpo -c -o nm_applet-applet-dialogs.o `test -f 'applet-dialogs.c' || echo '$(srcdir)/'`applet-dialogs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-dialogs.Tpo $(DEPDIR)/nm_applet-applet-dialogs.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-dialogs.c' object='nm_applet-applet-dialogs.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-dialogs.o `test -f 'applet-dialogs.c' || echo '$(srcdir)/'`applet-dialogs.c - -nm_applet-applet-dialogs.obj: applet-dialogs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-dialogs.obj -MD -MP -MF $(DEPDIR)/nm_applet-applet-dialogs.Tpo -c -o nm_applet-applet-dialogs.obj `if test -f 'applet-dialogs.c'; then $(CYGPATH_W) 'applet-dialogs.c'; else $(CYGPATH_W) '$(srcdir)/applet-dialogs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-dialogs.Tpo $(DEPDIR)/nm_applet-applet-dialogs.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-dialogs.c' object='nm_applet-applet-dialogs.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-dialogs.obj `if test -f 'applet-dialogs.c'; then $(CYGPATH_W) 'applet-dialogs.c'; else $(CYGPATH_W) '$(srcdir)/applet-dialogs.c'; fi` - -nm_applet-applet-device-wired.o: applet-device-wired.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-device-wired.o -MD -MP -MF $(DEPDIR)/nm_applet-applet-device-wired.Tpo -c -o nm_applet-applet-device-wired.o `test -f 'applet-device-wired.c' || echo '$(srcdir)/'`applet-device-wired.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-device-wired.Tpo $(DEPDIR)/nm_applet-applet-device-wired.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-device-wired.c' object='nm_applet-applet-device-wired.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-device-wired.o `test -f 'applet-device-wired.c' || echo '$(srcdir)/'`applet-device-wired.c - -nm_applet-applet-device-wired.obj: applet-device-wired.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-device-wired.obj -MD -MP -MF $(DEPDIR)/nm_applet-applet-device-wired.Tpo -c -o nm_applet-applet-device-wired.obj `if test -f 'applet-device-wired.c'; then $(CYGPATH_W) 'applet-device-wired.c'; else $(CYGPATH_W) '$(srcdir)/applet-device-wired.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-device-wired.Tpo $(DEPDIR)/nm_applet-applet-device-wired.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-device-wired.c' object='nm_applet-applet-device-wired.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-device-wired.obj `if test -f 'applet-device-wired.c'; then $(CYGPATH_W) 'applet-device-wired.c'; else $(CYGPATH_W) '$(srcdir)/applet-device-wired.c'; fi` - -nm_applet-applet-device-wifi.o: applet-device-wifi.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-device-wifi.o -MD -MP -MF $(DEPDIR)/nm_applet-applet-device-wifi.Tpo -c -o nm_applet-applet-device-wifi.o `test -f 'applet-device-wifi.c' || echo '$(srcdir)/'`applet-device-wifi.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-device-wifi.Tpo $(DEPDIR)/nm_applet-applet-device-wifi.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-device-wifi.c' object='nm_applet-applet-device-wifi.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-device-wifi.o `test -f 'applet-device-wifi.c' || echo '$(srcdir)/'`applet-device-wifi.c - -nm_applet-applet-device-wifi.obj: applet-device-wifi.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-device-wifi.obj -MD -MP -MF $(DEPDIR)/nm_applet-applet-device-wifi.Tpo -c -o nm_applet-applet-device-wifi.obj `if test -f 'applet-device-wifi.c'; then $(CYGPATH_W) 'applet-device-wifi.c'; else $(CYGPATH_W) '$(srcdir)/applet-device-wifi.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-device-wifi.Tpo $(DEPDIR)/nm_applet-applet-device-wifi.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-device-wifi.c' object='nm_applet-applet-device-wifi.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-device-wifi.obj `if test -f 'applet-device-wifi.c'; then $(CYGPATH_W) 'applet-device-wifi.c'; else $(CYGPATH_W) '$(srcdir)/applet-device-wifi.c'; fi` - -nm_applet-ap-menu-item.o: ap-menu-item.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-ap-menu-item.o -MD -MP -MF $(DEPDIR)/nm_applet-ap-menu-item.Tpo -c -o nm_applet-ap-menu-item.o `test -f 'ap-menu-item.c' || echo '$(srcdir)/'`ap-menu-item.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-ap-menu-item.Tpo $(DEPDIR)/nm_applet-ap-menu-item.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ap-menu-item.c' object='nm_applet-ap-menu-item.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-ap-menu-item.o `test -f 'ap-menu-item.c' || echo '$(srcdir)/'`ap-menu-item.c - -nm_applet-ap-menu-item.obj: ap-menu-item.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-ap-menu-item.obj -MD -MP -MF $(DEPDIR)/nm_applet-ap-menu-item.Tpo -c -o nm_applet-ap-menu-item.obj `if test -f 'ap-menu-item.c'; then $(CYGPATH_W) 'ap-menu-item.c'; else $(CYGPATH_W) '$(srcdir)/ap-menu-item.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-ap-menu-item.Tpo $(DEPDIR)/nm_applet-ap-menu-item.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ap-menu-item.c' object='nm_applet-ap-menu-item.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-ap-menu-item.obj `if test -f 'ap-menu-item.c'; then $(CYGPATH_W) 'ap-menu-item.c'; else $(CYGPATH_W) '$(srcdir)/ap-menu-item.c'; fi` - -nm_applet-mb-menu-item.o: mb-menu-item.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-mb-menu-item.o -MD -MP -MF $(DEPDIR)/nm_applet-mb-menu-item.Tpo -c -o nm_applet-mb-menu-item.o `test -f 'mb-menu-item.c' || echo '$(srcdir)/'`mb-menu-item.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-mb-menu-item.Tpo $(DEPDIR)/nm_applet-mb-menu-item.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mb-menu-item.c' object='nm_applet-mb-menu-item.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-mb-menu-item.o `test -f 'mb-menu-item.c' || echo '$(srcdir)/'`mb-menu-item.c - -nm_applet-mb-menu-item.obj: mb-menu-item.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-mb-menu-item.obj -MD -MP -MF $(DEPDIR)/nm_applet-mb-menu-item.Tpo -c -o nm_applet-mb-menu-item.obj `if test -f 'mb-menu-item.c'; then $(CYGPATH_W) 'mb-menu-item.c'; else $(CYGPATH_W) '$(srcdir)/mb-menu-item.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-mb-menu-item.Tpo $(DEPDIR)/nm_applet-mb-menu-item.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mb-menu-item.c' object='nm_applet-mb-menu-item.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-mb-menu-item.obj `if test -f 'mb-menu-item.c'; then $(CYGPATH_W) 'mb-menu-item.c'; else $(CYGPATH_W) '$(srcdir)/mb-menu-item.c'; fi` - -nm_applet-applet-device-gsm.o: applet-device-gsm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-device-gsm.o -MD -MP -MF $(DEPDIR)/nm_applet-applet-device-gsm.Tpo -c -o nm_applet-applet-device-gsm.o `test -f 'applet-device-gsm.c' || echo '$(srcdir)/'`applet-device-gsm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-device-gsm.Tpo $(DEPDIR)/nm_applet-applet-device-gsm.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-device-gsm.c' object='nm_applet-applet-device-gsm.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-device-gsm.o `test -f 'applet-device-gsm.c' || echo '$(srcdir)/'`applet-device-gsm.c - -nm_applet-applet-device-gsm.obj: applet-device-gsm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-device-gsm.obj -MD -MP -MF $(DEPDIR)/nm_applet-applet-device-gsm.Tpo -c -o nm_applet-applet-device-gsm.obj `if test -f 'applet-device-gsm.c'; then $(CYGPATH_W) 'applet-device-gsm.c'; else $(CYGPATH_W) '$(srcdir)/applet-device-gsm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-device-gsm.Tpo $(DEPDIR)/nm_applet-applet-device-gsm.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-device-gsm.c' object='nm_applet-applet-device-gsm.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-device-gsm.obj `if test -f 'applet-device-gsm.c'; then $(CYGPATH_W) 'applet-device-gsm.c'; else $(CYGPATH_W) '$(srcdir)/applet-device-gsm.c'; fi` - -nm_applet-applet-device-cdma.o: applet-device-cdma.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-device-cdma.o -MD -MP -MF $(DEPDIR)/nm_applet-applet-device-cdma.Tpo -c -o nm_applet-applet-device-cdma.o `test -f 'applet-device-cdma.c' || echo '$(srcdir)/'`applet-device-cdma.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-device-cdma.Tpo $(DEPDIR)/nm_applet-applet-device-cdma.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-device-cdma.c' object='nm_applet-applet-device-cdma.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-device-cdma.o `test -f 'applet-device-cdma.c' || echo '$(srcdir)/'`applet-device-cdma.c - -nm_applet-applet-device-cdma.obj: applet-device-cdma.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-device-cdma.obj -MD -MP -MF $(DEPDIR)/nm_applet-applet-device-cdma.Tpo -c -o nm_applet-applet-device-cdma.obj `if test -f 'applet-device-cdma.c'; then $(CYGPATH_W) 'applet-device-cdma.c'; else $(CYGPATH_W) '$(srcdir)/applet-device-cdma.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-device-cdma.Tpo $(DEPDIR)/nm_applet-applet-device-cdma.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-device-cdma.c' object='nm_applet-applet-device-cdma.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-device-cdma.obj `if test -f 'applet-device-cdma.c'; then $(CYGPATH_W) 'applet-device-cdma.c'; else $(CYGPATH_W) '$(srcdir)/applet-device-cdma.c'; fi` - -nm_applet-mobile-helpers.o: mobile-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-mobile-helpers.o -MD -MP -MF $(DEPDIR)/nm_applet-mobile-helpers.Tpo -c -o nm_applet-mobile-helpers.o `test -f 'mobile-helpers.c' || echo '$(srcdir)/'`mobile-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-mobile-helpers.Tpo $(DEPDIR)/nm_applet-mobile-helpers.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mobile-helpers.c' object='nm_applet-mobile-helpers.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-mobile-helpers.o `test -f 'mobile-helpers.c' || echo '$(srcdir)/'`mobile-helpers.c - -nm_applet-mobile-helpers.obj: mobile-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-mobile-helpers.obj -MD -MP -MF $(DEPDIR)/nm_applet-mobile-helpers.Tpo -c -o nm_applet-mobile-helpers.obj `if test -f 'mobile-helpers.c'; then $(CYGPATH_W) 'mobile-helpers.c'; else $(CYGPATH_W) '$(srcdir)/mobile-helpers.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-mobile-helpers.Tpo $(DEPDIR)/nm_applet-mobile-helpers.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mobile-helpers.c' object='nm_applet-mobile-helpers.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-mobile-helpers.obj `if test -f 'mobile-helpers.c'; then $(CYGPATH_W) 'mobile-helpers.c'; else $(CYGPATH_W) '$(srcdir)/mobile-helpers.c'; fi` - -nm_applet-applet-device-bt.o: applet-device-bt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-device-bt.o -MD -MP -MF $(DEPDIR)/nm_applet-applet-device-bt.Tpo -c -o nm_applet-applet-device-bt.o `test -f 'applet-device-bt.c' || echo '$(srcdir)/'`applet-device-bt.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-device-bt.Tpo $(DEPDIR)/nm_applet-applet-device-bt.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-device-bt.c' object='nm_applet-applet-device-bt.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-device-bt.o `test -f 'applet-device-bt.c' || echo '$(srcdir)/'`applet-device-bt.c - -nm_applet-applet-device-bt.obj: applet-device-bt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-device-bt.obj -MD -MP -MF $(DEPDIR)/nm_applet-applet-device-bt.Tpo -c -o nm_applet-applet-device-bt.obj `if test -f 'applet-device-bt.c'; then $(CYGPATH_W) 'applet-device-bt.c'; else $(CYGPATH_W) '$(srcdir)/applet-device-bt.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-device-bt.Tpo $(DEPDIR)/nm_applet-applet-device-bt.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-device-bt.c' object='nm_applet-applet-device-bt.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-device-bt.obj `if test -f 'applet-device-bt.c'; then $(CYGPATH_W) 'applet-device-bt.c'; else $(CYGPATH_W) '$(srcdir)/applet-device-bt.c'; fi` - -nm_applet-applet-device-wimax.o: applet-device-wimax.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-device-wimax.o -MD -MP -MF $(DEPDIR)/nm_applet-applet-device-wimax.Tpo -c -o nm_applet-applet-device-wimax.o `test -f 'applet-device-wimax.c' || echo '$(srcdir)/'`applet-device-wimax.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-device-wimax.Tpo $(DEPDIR)/nm_applet-applet-device-wimax.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-device-wimax.c' object='nm_applet-applet-device-wimax.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-device-wimax.o `test -f 'applet-device-wimax.c' || echo '$(srcdir)/'`applet-device-wimax.c - -nm_applet-applet-device-wimax.obj: applet-device-wimax.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_applet-applet-device-wimax.obj -MD -MP -MF $(DEPDIR)/nm_applet-applet-device-wimax.Tpo -c -o nm_applet-applet-device-wimax.obj `if test -f 'applet-device-wimax.c'; then $(CYGPATH_W) 'applet-device-wimax.c'; else $(CYGPATH_W) '$(srcdir)/applet-device-wimax.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_applet-applet-device-wimax.Tpo $(DEPDIR)/nm_applet-applet-device-wimax.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='applet-device-wimax.c' object='nm_applet-applet-device-wimax.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_applet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_applet-applet-device-wimax.obj `if test -f 'applet-device-wimax.c'; then $(CYGPATH_W) 'applet-device-wimax.c'; else $(CYGPATH_W) '$(srcdir)/applet-device-wimax.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-uiDATA: $(ui_DATA) - @$(NORMAL_INSTALL) - test -z "$(uidir)" || $(MKDIR_P) "$(DESTDIR)$(uidir)" - @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(uidir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(uidir)" || exit $$?; \ - done - -uninstall-uiDATA: - @$(NORMAL_UNINSTALL) - @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(uidir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(uidir)" && rm -f $$files - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-recursive -all-am: Makefile $(PROGRAMS) $(DATA) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(uidir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -clean: clean-recursive - -clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-uiDATA - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: install-binPROGRAMS - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-uiDATA - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ - ctags-recursive install install-am install-strip \ - tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-binPROGRAMS \ - clean-generic clean-libtool ctags ctags-recursive distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-binPROGRAMS install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip install-uiDATA \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-binPROGRAMS uninstall-uiDATA - - -applet-dbus-bindings.h: nm-applet-introspection.xml - $(AM_V_GEN) dbus-binding-tool --mode=glib-server --prefix=nma --output=$@ $< - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/src/ap-menu-item.c network-manager-applet-0.9.6.2+git201210311320.2620/src/ap-menu-item.c --- network-manager-applet-0.9.4.1/src/ap-menu-item.c 2012-03-16 20:19:58.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/ap-menu-item.c 2012-10-31 13:20:57.000000000 +0000 @@ -164,15 +164,15 @@ item->int_strength = strength; if (strength > 80) - icon = nma_icon_check_and_load ("nm-signal-100", &applet->wireless_100_icon, applet); + icon = nma_icon_check_and_load ("nm-signal-100", &applet->wifi_100_icon, applet); else if (strength > 55) - icon = nma_icon_check_and_load ("nm-signal-75", &applet->wireless_75_icon, applet); + icon = nma_icon_check_and_load ("nm-signal-75", &applet->wifi_75_icon, applet); else if (strength > 30) - icon = nma_icon_check_and_load ("nm-signal-50", &applet->wireless_50_icon, applet); + icon = nma_icon_check_and_load ("nm-signal-50", &applet->wifi_50_icon, applet); else if (strength > 5) - icon = nma_icon_check_and_load ("nm-signal-25", &applet->wireless_25_icon, applet); + icon = nma_icon_check_and_load ("nm-signal-25", &applet->wifi_25_icon, applet); else - icon = nma_icon_check_and_load ("nm-signal-00", &applet->wireless_00_icon, applet); + icon = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); pixbuf = gdk_pixbuf_copy (icon); diff -Nru network-manager-applet-0.9.4.1/src/applet-agent.c network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-agent.c --- network-manager-applet-0.9.4.1/src/applet-agent.c 2012-03-19 18:15:16.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-agent.c 2012-10-31 13:20:57.000000000 +0000 @@ -39,12 +39,17 @@ #include "utils.h" #include "nma-marshal.h" +#define KEYRING_UUID_TAG "connection-uuid" +#define KEYRING_SN_TAG "setting-name" +#define KEYRING_SK_TAG "setting-key" + G_DEFINE_TYPE (AppletAgent, applet_agent, NM_TYPE_SECRET_AGENT); #define APPLET_AGENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), APPLET_TYPE_AGENT, AppletAgentPrivate)) typedef struct { GHashTable *requests; + gboolean vpn_only; gboolean disposed; } AppletAgentPrivate; @@ -487,6 +492,16 @@ return; } + /* Only handle non-VPN secrets if we're supposed to */ + if (priv->vpn_only == TRUE) { + error = g_error_new_literal (NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_NO_SECRETS, + "Only handling VPN secrets at this time."); + callback (agent, connection, NULL, error, callback_data); + g_error_free (error); + return; + } + /* For everything else we scrape the keyring for secrets first, and ask * later if required. */ @@ -576,6 +591,44 @@ save_request_try_complete (call->r, call); } +static GnomeKeyringAttributeList * +_create_keyring_add_attr_list (NMConnection *connection, + const char *setting_name, + const char *setting_key, + char **out_display_name) +{ + GnomeKeyringAttributeList *attrs = NULL; + const char *connection_id, *connection_uuid; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (setting_name != NULL, NULL); + g_return_val_if_fail (setting_key != NULL, NULL); + + connection_uuid = nm_connection_get_uuid (connection); + g_assert (connection_uuid); + connection_id = nm_connection_get_id (connection); + g_assert (connection_id); + + if (out_display_name) { + *out_display_name = g_strdup_printf ("Network secret for %s/%s/%s", + connection_id, + setting_name, + setting_key); + } + + attrs = gnome_keyring_attribute_list_new (); + gnome_keyring_attribute_list_append_string (attrs, + KEYRING_UUID_TAG, + connection_uuid); + gnome_keyring_attribute_list_append_string (attrs, + KEYRING_SN_TAG, + setting_name); + gnome_keyring_attribute_list_append_string (attrs, + KEYRING_SK_TAG, + setting_key); + return attrs; +} + static void save_one_secret (Request *r, NMSetting *setting, @@ -598,10 +651,10 @@ setting_name = nm_setting_get_name (setting); g_assert (setting_name); - attrs = utils_create_keyring_add_attr_list (r->connection, NULL, NULL, - setting_name, - key, - display_name ? NULL : &alt_display_name); + attrs = _create_keyring_add_attr_list (r->connection, + setting_name, + key, + display_name ? NULL : &alt_display_name); g_assert (attrs); call = keyring_call_new (r); call->keyring_id = gnome_keyring_item_create (NULL, @@ -782,6 +835,15 @@ r->keyring_calls = g_slist_append (r->keyring_calls, call); } +void +applet_agent_handle_vpn_only (AppletAgent *agent, gboolean vpn_only) +{ + g_return_if_fail (agent != NULL); + g_return_if_fail (APPLET_IS_AGENT (agent)); + + APPLET_AGENT_GET_PRIVATE (agent)->vpn_only = vpn_only; +} + /*******************************************************/ AppletAgent * diff -Nru network-manager-applet-0.9.4.1/src/applet-agent.h network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-agent.h --- network-manager-applet-0.9.4.1/src/applet-agent.h 2012-03-19 18:15:11.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-agent.h 2012-10-31 13:20:57.000000000 +0000 @@ -64,5 +64,7 @@ AppletAgent *applet_agent_new (void); +void applet_agent_handle_vpn_only (AppletAgent *agent, gboolean vpn_only); + #endif /* _APPLET_AGENT_H_ */ diff -Nru network-manager-applet-0.9.4.1/src/applet-device-bt.c network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-bt.c --- network-manager-applet-0.9.4.1/src/applet-device-bt.c 2012-03-19 18:39:48.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-bt.c 2012-10-31 13:21:01.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -39,9 +39,8 @@ #include "applet.h" #include "applet-device-bt.h" -#include "wired-dialog.h" -#include "utils.h" #include "applet-dialogs.h" +#include "nm-ui-utils.h" typedef struct { NMApplet *applet; @@ -145,16 +144,14 @@ g_slist_free (all); text = nm_device_bt_get_name (NM_DEVICE_BT (device)); - if (!text) { - text = utils_get_device_description (device); - if (!text) - text = nm_device_get_iface (device); - g_assert (text); - } + if (!text) + text = nma_utils_get_device_description (device); item = applet_menu_item_create_device_item_helper (device, applet, text); +#ifndef ENABLE_INDICATOR gtk_widget_set_sensitive (item, FALSE); +#endif gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); @@ -209,15 +206,16 @@ } } -static GdkPixbuf * +static void bt_get_icon (NMDevice *device, NMDeviceState state, NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, char **tip, NMApplet *applet) { NMSettingConnection *s_con; - GdkPixbuf *pixbuf = NULL; const char *id; id = nm_device_get_iface (NM_DEVICE (device)); @@ -240,14 +238,16 @@ *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); break; case NM_DEVICE_STATE_ACTIVATED: - pixbuf = nma_icon_check_and_load ("nm-device-wwan", &applet->wwan_icon, applet); + *out_indicator_icon = g_strdup_printf ("nm-device-wwan"); + *out_pixbuf = nma_icon_check_and_load ("nm-device-wwan", &applet->wwan_icon, applet); *tip = g_strdup_printf (_("Mobile broadband connection '%s' active"), id); break; default: break; } - return pixbuf ? g_object_ref (pixbuf) : NULL; + if (out_pixbuf && *out_pixbuf) + g_object_ref (*out_pixbuf); } typedef struct { diff -Nru network-manager-applet-0.9.4.1/src/applet-device-bt.h network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-bt.h --- network-manager-applet-0.9.4.1/src/applet-device-bt.h 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-bt.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/applet-device-cdma.c network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-cdma.c --- network-manager-applet-0.9.4.1/src/applet-device-cdma.c 2012-03-19 14:53:53.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-cdma.c 2012-10-31 13:21:01.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -44,6 +44,7 @@ #include "nma-marshal.h" #include "nmn-mobile-providers.h" #include "mb-menu-item.h" +#include "nm-ui-utils.h" typedef struct { NMApplet *applet; @@ -135,10 +136,7 @@ nm_connection_add_setting (connection, nm_setting_ppp_new ()); setting = nm_setting_connection_new (); - if (method->plan_name) - id = g_strdup_printf ("%s %s", method->provider_name, method->plan_name); - else - id = g_strdup_printf ("%s connection", method->provider_name); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); uuid = nm_utils_uuid_generate (); g_object_set (setting, NM_SETTING_CONNECTION_ID, id, @@ -327,6 +325,11 @@ char *text; GtkWidget *item; GSList *connections, *all, *iter; +#ifdef ENABLE_INDICATOR + GtkWidget *signal_icon; +#endif + gboolean allowed; + NMClientPermissionResult perm; info = g_object_get_data (G_OBJECT (device), "devinfo"); @@ -335,20 +338,18 @@ g_slist_free (all); if (n_devices > 1) { - char *desc; - - desc = (char *) utils_get_device_description (device); - if (!desc) - desc = (char *) nm_device_get_iface (device); - g_assert (desc); + const char *desc; + desc = nma_utils_get_device_description (device); text = g_strdup_printf (_("Mobile Broadband (%s)"), desc); } else { text = g_strdup (_("Mobile Broadband")); } item = applet_menu_item_create_device_item_helper (device, applet, text); +#ifndef ENABLE_INDICATOR gtk_widget_set_sensitive (item, FALSE); +#endif gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); g_free (text); @@ -360,6 +361,7 @@ s_con = nm_connection_get_setting_connection (active); g_assert (s_con); +#ifndef ENABLE_INDICATOR item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), info->quality_valid ? info->quality : 0, info->provider_name, @@ -368,6 +370,21 @@ cdma_state_to_mb_state (info), info->modem_enabled, applet); +#else + text = mobile_helper_get_connection_label (nm_setting_connection_get_id (s_con), + info->provider_name, + cdma_act_to_mb_act (info), + cdma_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#endif gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); add_connection_item (device, active, item, menu, applet); } @@ -381,6 +398,7 @@ } } else { /* Otherwise show idle registration state or disabled */ +#ifndef ENABLE_INDICATOR item = nm_mb_menu_item_new (NULL, info->quality_valid ? info->quality : 0, info->provider_name, @@ -389,6 +407,21 @@ cdma_state_to_mb_state (info), info->modem_enabled, applet); +#else + text = mobile_helper_get_connection_label (NULL, + info->provider_name, + cdma_act_to_mb_act (info), + cdma_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#endif gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); } @@ -408,9 +441,38 @@ } } } else { + + allowed = FALSE; + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_NETWORK_CONTROL); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + allowed = TRUE; + } else { + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + allowed = TRUE; + } + } + } + /* Default connection item */ item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (CDMA) connection...")); - add_connection_item (device, NULL, item, menu, applet); + + gtk_widget_set_sensitive (GTK_WIDGET (item), allowed); + if (!allowed && applet->hide_policy_items) { + /* don't add the item if should be hidden */ + g_object_ref_sink (item); + g_object_unref (item); + } else + add_connection_item (device, NULL, item, menu, applet); } } @@ -454,15 +516,16 @@ check_start_polling (info); } -static GdkPixbuf * +static void cdma_get_icon (NMDevice *device, NMDeviceState state, NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, char **tip, NMApplet *applet) { NMSettingConnection *s_con; - GdkPixbuf *pixbuf = NULL; const char *id; CdmaDeviceInfo *info; gboolean mb_state; @@ -491,11 +554,14 @@ break; case NM_DEVICE_STATE_ACTIVATED: mb_state = cdma_state_to_mb_state (info); - pixbuf = mobile_helper_get_status_pixbuf (info->quality, + *out_pixbuf = mobile_helper_get_status_pixbuf (info->quality, info->quality_valid, mb_state, cdma_act_to_mb_act (info), applet); + *out_indicator_icon = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { gboolean roaming = (mb_state == MB_STATE_ROAMING); @@ -510,8 +576,6 @@ default: break; } - - return pixbuf; } typedef struct { @@ -877,6 +941,9 @@ update_registration_state (info, cdma1x_state, evdo_state); info->skip_reg_poll = TRUE; applet_schedule_update_icon (info->applet); +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (info->applet); +#endif /* ENABLE_INDICATOR */ } static void diff -Nru network-manager-applet-0.9.4.1/src/applet-device-cdma.h network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-cdma.h --- network-manager-applet-0.9.4.1/src/applet-device-cdma.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-cdma.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/applet-device-ethernet.c network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-ethernet.c --- network-manager-applet-0.9.4.1/src/applet-device-ethernet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-ethernet.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,656 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + * (C) Copyright 2008 Novell, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "applet.h" +#include "applet-device-ethernet.h" +#include "ethernet-dialog.h" +#include "nm-ui-utils.h" + +typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; +} EthernetMenuItemInfo; + +static void +ethernet_menu_item_info_destroy (gpointer data) +{ + EthernetMenuItemInfo *info = (EthernetMenuItemInfo *) data; + + g_object_unref (G_OBJECT (info->device)); + if (info->connection) + g_object_unref (G_OBJECT (info->connection)); + + g_slice_free (EthernetMenuItemInfo, data); +} + +#define DEFAULT_ETHERNET_NAME _("Auto Ethernet") + +static gboolean +ethernet_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) +{ + NMConnection *connection; + NMSettingWired *s_wired = NULL; + NMSettingConnection *s_con; + char *uuid; + + connection = nm_connection_new (); + + s_wired = NM_SETTING_WIRED (nm_setting_wired_new ()); + nm_connection_add_setting (connection, NM_SETTING (s_wired)); + + s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, + NM_SETTING_CONNECTION_ID, DEFAULT_ETHERNET_NAME, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRED_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, TRUE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + + nm_connection_add_setting (connection, NM_SETTING (s_con)); + + (*callback) (connection, TRUE, FALSE, callback_data); + return TRUE; +} + +static void +ethernet_menu_item_activate (GtkMenuItem *item, gpointer user_data) +{ + EthernetMenuItemInfo *info = (EthernetMenuItemInfo *) user_data; + + applet_menu_item_activate_helper (info->device, + info->connection, + "/", + info->applet, + user_data); +} + + +typedef enum { + ADD_ACTIVE = 1, + ADD_INACTIVE = 2, +} AddActiveInactiveEnum; + +static void +add_connection_items (NMDevice *device, + GSList *connections, + gboolean carrier, + NMConnection *active, + AddActiveInactiveEnum flag, + GtkWidget *menu, + NMApplet *applet) +{ + GSList *iter; + EthernetMenuItemInfo *info; + + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + GtkWidget *item; + + if (active == connection) { + if ((flag & ADD_ACTIVE) == 0) + continue; + } else { + if ((flag & ADD_INACTIVE) == 0) + continue; + } + + item = applet_new_menu_item_helper (connection, active, (flag & ADD_ACTIVE)); + gtk_widget_set_sensitive (item, carrier); + + info = g_slice_new0 (EthernetMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + info->connection = g_object_ref (connection); + + g_signal_connect_data (item, "activate", + G_CALLBACK (ethernet_menu_item_activate), + info, + (GClosureNotify) ethernet_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } +} + +static void +add_default_connection_item (NMDevice *device, + gboolean carrier, + GtkWidget *menu, + NMApplet *applet) +{ + EthernetMenuItemInfo *info; + GtkWidget *item; + + item = gtk_check_menu_item_new_with_label (DEFAULT_ETHERNET_NAME); + gtk_widget_set_sensitive (GTK_WIDGET (item), carrier); + gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); + + info = g_slice_new0 (EthernetMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + + g_signal_connect_data (item, "activate", + G_CALLBACK (ethernet_menu_item_activate), + info, + (GClosureNotify) ethernet_menu_item_info_destroy, 0); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); +} + +static void +ethernet_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) +{ + char *text; + GtkWidget *item; + GSList *connections, *all; + gboolean carrier = TRUE; + + all = applet_get_all_connections (applet); + connections = nm_device_filter_connections (device, all); + g_slist_free (all); + + if (n_devices > 1) { + const char *desc; + + desc = nma_utils_get_device_description (device); + + if (g_slist_length (connections) > 1) + text = g_strdup_printf (_("Ethernet Networks (%s)"), desc); + else + text = g_strdup_printf (_("Ethernet Network (%s)"), desc); + } else { + if (g_slist_length (connections) > 1) + text = g_strdup (_("Ethernet Networks")); + else + text = g_strdup (_("Ethernet Network")); + } + + item = applet_menu_item_create_device_item_helper (device, applet, text); + g_free (text); + + /* Only dim the item if the device supports carrier detection AND + * we know it doesn't have a link. + */ + if (nm_device_get_capabilities (device) & NM_DEVICE_CAP_CARRIER_DETECT) + carrier = nm_device_ethernet_get_carrier (NM_DEVICE_ETHERNET (device)); + +#ifndef ENABLE_INDICATOR + gtk_widget_set_sensitive (item, FALSE); +#endif + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + + if (g_slist_length (connections)) + add_connection_items (device, connections, carrier, active, ADD_ACTIVE, menu, applet); + + /* Notify user of unmanaged or unavailable device */ + item = nma_menu_device_get_menu_item (device, applet, carrier ? NULL : _("disconnected")); + if (item) { + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + + if (!nma_menu_device_check_unusable (device)) { + if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) + applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); + + if (g_slist_length (connections)) + add_connection_items (device, connections, carrier, active, ADD_INACTIVE, menu, applet); + else + add_default_connection_item (device, carrier, menu, applet); + } + + g_slist_free (connections); +} + +static void +ethernet_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) +{ + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; + const char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, + str ? str : _("Wired network"), + _("Connection Established"), + "nm-device-wired", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } +} + +static void +ethernet_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **tip, + NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *id; + + id = nm_device_get_iface (NM_DEVICE (device)); + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + id = nm_setting_connection_get_id (s_con); + } + + switch (state) { + case NM_DEVICE_STATE_PREPARE: + *tip = g_strdup_printf (_("Preparing ethernet network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_CONFIG: + *tip = g_strdup_printf (_("Configuring ethernet network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_NEED_AUTH: + *tip = g_strdup_printf (_("User authentication required for ethernet network connection '%s'..."), id); + break; + case NM_DEVICE_STATE_IP_CONFIG: + *tip = g_strdup_printf (_("Requesting an ethernet network address for '%s'..."), id); + break; + case NM_DEVICE_STATE_ACTIVATED: + *out_indicator_icon = g_strdup_printf ("nm-device-wired"); + *out_pixbuf = nma_icon_check_and_load (*out_indicator_icon, &applet->ethernet_icon, applet); + *tip = g_strdup_printf (_("Ethernet network connection '%s' active"), id); + break; + default: + break; + } + + if (out_pixbuf && *out_pixbuf) + g_object_ref (*out_pixbuf); +} + +/* PPPoE */ + +typedef struct { + SecretsRequest req; + + GtkWidget *dialog; + GtkEntry *username_entry; + GtkEntry *service_entry; + GtkEntry *password_entry; + GtkWidget *ok_button; +} NMPppoeInfo; + +static void +pppoe_verify (GtkEditable *editable, gpointer user_data) +{ + NMPppoeInfo *info = (NMPppoeInfo *) user_data; + const char *s; + gboolean valid = TRUE; + + s = gtk_entry_get_text (info->username_entry); + if (!s || strlen (s) < 1) + valid = FALSE; + + if (valid) { + s = gtk_entry_get_text (info->password_entry); + if (!s || strlen (s) < 1) + valid = FALSE; + } + + gtk_widget_set_sensitive (info->ok_button, valid); +} + +static void +pppoe_update_setting (NMSettingPPPOE *pppoe, NMPppoeInfo *info) +{ + const char *s; + + s = gtk_entry_get_text (info->service_entry); + if (s && strlen (s) < 1) + s = NULL; + + g_object_set (pppoe, + NM_SETTING_PPPOE_USERNAME, gtk_entry_get_text (info->username_entry), + NM_SETTING_PPPOE_PASSWORD, gtk_entry_get_text (info->password_entry), + NM_SETTING_PPPOE_SERVICE, s, + NULL); +} + +static void +pppoe_update_ui (NMConnection *connection, NMPppoeInfo *info) +{ + NMSettingPPPOE *s_pppoe; + const char *s; + + g_return_if_fail (NM_IS_CONNECTION (connection)); + g_return_if_fail (info != NULL); + + s_pppoe = nm_connection_get_setting_pppoe (connection); + g_return_if_fail (s_pppoe != NULL); + + s = nm_setting_pppoe_get_username (s_pppoe); + if (s) + gtk_entry_set_text (info->username_entry, s); + + s = nm_setting_pppoe_get_service (s_pppoe); + if (s) + gtk_entry_set_text (info->service_entry, s); + + s = nm_setting_pppoe_get_password (s_pppoe); + if (s) + gtk_entry_set_text (info->password_entry, s); +} + +static void +free_pppoe_info (SecretsRequest *req) +{ + NMPppoeInfo *info = (NMPppoeInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } +} + +static void +get_pppoe_secrets_cb (GtkDialog *dialog, gint response, gpointer user_data) +{ + SecretsRequest *req = user_data; + NMPppoeInfo *info = (NMPppoeInfo *) req; + NMSettingPPPOE *setting; + GHashTable *settings = NULL; + GHashTable *secrets; + GError *error = NULL; + + if (response != GTK_RESPONSE_OK) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + goto done; + } + + setting = nm_connection_get_setting_pppoe (req->connection); + pppoe_update_setting (setting, info); + + secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ONLY_SECRETS); + if (!secrets) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): failed to hash setting " NM_SETTING_PPPOE_SETTING_NAME, + __FILE__, __LINE__, __func__); + } else { + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that + * will contain all the individual settings hashes. + */ + settings = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) g_hash_table_destroy); + g_hash_table_insert (settings, NM_SETTING_PPPOE_SETTING_NAME, secrets); + } + +done: + applet_secrets_request_complete (req, settings, error); + applet_secrets_request_free (req); + + if (settings) + g_hash_table_destroy (settings); +} + +static void +show_password_toggled (GtkToggleButton *button, gpointer user_data) +{ + NMPppoeInfo *info = (NMPppoeInfo *) user_data; + + if (gtk_toggle_button_get_active (button)) + gtk_entry_set_visibility (GTK_ENTRY (info->password_entry), TRUE); + else + gtk_entry_set_visibility (GTK_ENTRY (info->password_entry), FALSE); +} + +static gboolean +pppoe_get_secrets (SecretsRequest *req, GError **error) +{ + NMPppoeInfo *info = (NMPppoeInfo *) req; + GtkWidget *w; + GtkBuilder* builder; + GError *tmp_error = NULL; + + builder = gtk_builder_new (); + + if (!gtk_builder_add_from_file (builder, UIDIR "/ce-page-dsl.ui", &tmp_error)) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't display secrets UI: %s", + __FILE__, __LINE__, __func__, tmp_error->message); + g_error_free (tmp_error); + return FALSE; + } + + applet_secrets_request_set_free_func (req, free_pppoe_info); + + info->username_entry = GTK_ENTRY (gtk_builder_get_object (builder, "dsl_username")); + g_signal_connect (info->username_entry, "changed", G_CALLBACK (pppoe_verify), info); + + info->service_entry = GTK_ENTRY (gtk_builder_get_object (builder, "dsl_service")); + + info->password_entry = GTK_ENTRY (gtk_builder_get_object (builder, "dsl_password")); + g_signal_connect (info->password_entry, "changed", G_CALLBACK (pppoe_verify), info); + + /* Create the dialog */ + info->dialog = gtk_dialog_new (); + gtk_window_set_title (GTK_WINDOW (info->dialog), _("DSL authentication")); + gtk_window_set_modal (GTK_WINDOW (info->dialog), TRUE); + + w = gtk_dialog_add_button (GTK_DIALOG (info->dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); + w = gtk_dialog_add_button (GTK_DIALOG (info->dialog), GTK_STOCK_OK, GTK_RESPONSE_OK); + info->ok_button = w; + + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (info->dialog))), + GTK_WIDGET (gtk_builder_get_object (builder, "DslPage")), + TRUE, TRUE, 0); + + pppoe_update_ui (req->connection, info); + + w = GTK_WIDGET (gtk_builder_get_object (builder, "dsl_show_password")); + g_signal_connect (w, "toggled", G_CALLBACK (show_password_toggled), info); + + g_signal_connect (info->dialog, "response", G_CALLBACK (get_pppoe_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (info->dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (info->dialog); + gtk_window_present (GTK_WINDOW (info->dialog)); + + return TRUE; +} + +/* 802.1x */ + +typedef struct { + SecretsRequest req; + GtkWidget *dialog; +} NM8021xInfo; + +static void +free_8021x_info (SecretsRequest *req) +{ + NM8021xInfo *info = (NM8021xInfo *) req; + + if (info->dialog) { + gtk_widget_hide (info->dialog); + gtk_widget_destroy (info->dialog); + } +} + +static void +get_8021x_secrets_cb (GtkDialog *dialog, gint response, gpointer user_data) +{ + SecretsRequest *req = user_data; + NM8021xInfo *info = (NM8021xInfo *) req; + NMConnection *connection = NULL; + NMSetting *setting; + GError *error = NULL; + + if (response != GTK_RESPONSE_OK) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_USER_CANCELED, + "%s.%d (%s): canceled", + __FILE__, __LINE__, __func__); + goto done; + } + + connection = nma_ethernet_dialog_get_connection (info->dialog); + if (!connection) { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't get connection from ethernet dialog.", + __FILE__, __LINE__, __func__); + goto done; + } + + setting = nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X); + if (setting) { + nm_connection_add_setting (req->connection, g_object_ref (setting)); + } else { + g_set_error (&error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): requested setting '802-1x' didn't" + " exist in the connection.", + __FILE__, __LINE__, __func__); + } + +done: + applet_secrets_request_complete_setting (req, NM_SETTING_802_1X_SETTING_NAME, error); + applet_secrets_request_free (req); + g_clear_error (&error); +} + +static gboolean +nm_8021x_get_secrets (SecretsRequest *req, GError **error) +{ + NM8021xInfo *info = (NM8021xInfo *) req; + + applet_secrets_request_set_free_func (req, free_8021x_info); + + info->dialog = nma_ethernet_dialog_new (g_object_ref (req->connection)); + if (!info->dialog) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): couldn't display secrets UI", + __FILE__, __LINE__, __func__); + return FALSE; + } + + g_signal_connect (info->dialog, "response", G_CALLBACK (get_8021x_secrets_cb), info); + + gtk_window_set_position (GTK_WINDOW (info->dialog), GTK_WIN_POS_CENTER_ALWAYS); + gtk_widget_realize (info->dialog); + gtk_window_present (GTK_WINDOW (info->dialog)); + + return TRUE; +} + +static gboolean +ethernet_get_secrets (SecretsRequest *req, GError **error) +{ + NMSettingConnection *s_con; + const char *ctype; + + s_con = nm_connection_get_setting_connection (req->connection); + if (!s_con) { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, + "%s.%d (%s): Invalid connection", + __FILE__, __LINE__, __func__); + return FALSE; + } + + ctype = nm_setting_connection_get_connection_type (s_con); + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME)) + return nm_8021x_get_secrets (req, error); + else if (!strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return pppoe_get_secrets (req, error); + else { + g_set_error (error, + NM_SECRET_AGENT_ERROR, + NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, + "%s.%d (%s): unhandled ethernet connection type '%s'", + __FILE__, __LINE__, __func__, ctype); + } + + return FALSE; +} + +NMADeviceClass * +applet_device_ethernet_get_class (NMApplet *applet) +{ + NMADeviceClass *dclass; + + dclass = g_slice_new0 (NMADeviceClass); + if (!dclass) + return NULL; + + dclass->new_auto_connection = ethernet_new_auto_connection; + dclass->add_menu_item = ethernet_add_menu_item; + dclass->device_state_changed = ethernet_device_state_changed; + dclass->get_icon = ethernet_get_icon; + dclass->get_secrets = ethernet_get_secrets; + dclass->secrets_request_size = MAX (sizeof (NM8021xInfo), sizeof (NMPppoeInfo)); + + return dclass; +} diff -Nru network-manager-applet-0.9.4.1/src/applet-device-ethernet.h network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-ethernet.h --- network-manager-applet-0.9.4.1/src/applet-device-ethernet.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-ethernet.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,31 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 Red Hat, Inc. + * (C) Copyright 2008 Novell, Inc. + */ + +#ifndef __APPLET_DEVICE_ETHERNET_H__ +#define __APPLET_DEVICE_ETHERNET_H__ + +#include "applet.h" + +NMADeviceClass *applet_device_ethernet_get_class (NMApplet *applet); + +#endif /* __APPLET_DEVICE_ETHERNET_H__ */ diff -Nru network-manager-applet-0.9.4.1/src/applet-device-gsm.c network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-gsm.c --- network-manager-applet-0.9.4.1/src/applet-device-gsm.c 2012-03-20 20:32:44.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-gsm.c 2012-10-31 13:21:01.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -37,15 +37,18 @@ #include #include #include +#include #include "applet.h" #include "applet-device-gsm.h" #include "utils.h" #include "nm-mobile-wizard.h" +#include "mobile-helpers.h" #include "applet-dialogs.h" #include "mb-menu-item.h" #include "nma-marshal.h" #include "nmn-mobile-providers.h" +#include "nm-ui-utils.h" typedef enum { MM_MODEM_GSM_ACCESS_TECH_UNKNOWN = 0, @@ -57,8 +60,10 @@ MM_MODEM_GSM_ACCESS_TECH_HSDPA = 6, /* UTRAN w/HSDPA */ MM_MODEM_GSM_ACCESS_TECH_HSUPA = 7, /* UTRAN w/HSUPA */ MM_MODEM_GSM_ACCESS_TECH_HSPA = 8, /* UTRAN w/HSDPA and HSUPA */ + MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS = 9, + MM_MODEM_GSM_ACCESS_TECH_LTE = 10, - MM_MODEM_GSM_ACCESS_TECH_LAST = MM_MODEM_GSM_ACCESS_TECH_HSPA + MM_MODEM_GSM_ACCESS_TECH_LAST = MM_MODEM_GSM_ACCESS_TECH_LTE } MMModemGsmAccessTech; typedef struct { @@ -93,8 +98,11 @@ /* Unlock dialog stuff */ GtkWidget *dialog; gpointer keyring_id; + + gboolean greeter_mode; } GsmDeviceInfo; +static void unlock_dialog_new (NMDevice *device, GsmDeviceInfo *info); static void unlock_dialog_destroy (GsmDeviceInfo *info); static void check_start_polling (GsmDeviceInfo *info); @@ -164,10 +172,7 @@ nm_connection_add_setting (connection, nm_setting_ppp_new ()); setting = nm_setting_connection_new (); - if (method->plan_name) - id = g_strdup_printf ("%s %s", method->provider_name, method->plan_name); - else - id = g_strdup_printf ("%s connection", method->provider_name); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); uuid = nm_utils_uuid_generate (); g_object_set (setting, NM_SETTING_CONNECTION_ID, id, @@ -281,10 +286,117 @@ do_mobile_wizard (dbus_connect_3g_cb, info); } +typedef struct { + NMDevice *device; + NMConnection *connection; + NMApplet *applet; + gpointer dclass_data; + guint wait_retry; +} DelayedActivationHelper; + +gboolean delayed_activation_cb(gpointer user_data) +{ + DelayedActivationHelper *helper = user_data; + + if (!NM_IS_DEVICE (helper->device)) { + // the device has been unplugged. + return FALSE; + } + + GsmDeviceInfo *devinfo = g_object_get_data (G_OBJECT (helper->device), "devinfo"); + + if (devinfo->unlock_required == NULL) { + // the modem was successfully unlocked + + applet_menu_item_activate_helper (helper->device, + helper->connection, + "/", + helper->applet, + helper->dclass_data); + return FALSE; + } + + helper->wait_retry -= 1; + if (helper->wait_retry == 0) { + return FALSE; + } + + return TRUE; +} + +void gsm_menu_item_activate_unlock_dialog_destroy (GtkWidget *object, + gpointer user_data) +{ + GSMMenuItemInfo *info = (GSMMenuItemInfo *) user_data; + GsmDeviceInfo *devinfo; + DelayedActivationHelper *helper; + + /* + * The dialog is destroyed. Either the PIN code was successfully + * forwarded to ModemManager or the dialog was cancelled. + * Unfortunately we don't have any means of determine which is the case. + * + * The solution here is to monitor GsmDeviceInfo::unlock_required. If that + * is cleared, then we know that the modem has been activated and we can + * continue with the activation. + * + * Because unlock_required is updated upon receiving a property changed + * signal we have to give MM some time to deliver the change over D-Bus. + * + * Here we set up a timer which checks the state of the modem three times + * with 1 second delay. + * + * If the modem was not successfully activated this delayed activation is + * cancelled after three tries/seconds. + */ + + devinfo = g_object_get_data (G_OBJECT (info->device), "devinfo"); + + helper = g_malloc (sizeof (DelayedActivationHelper)); + helper->device = info->device; + helper->connection = info->connection; + helper->applet = info->applet; + helper->dclass_data = info; + helper->wait_retry = 3; + + g_timeout_add_full (G_PRIORITY_DEFAULT, + 1 * 1000, + (GSourceFunc)delayed_activation_cb, + helper, + (GDestroyNotify)g_free); +} + static void gsm_menu_item_activate (GtkMenuItem *item, gpointer user_data) { GSMMenuItemInfo *info = (GSMMenuItemInfo *) user_data; + GsmDeviceInfo *devinfo; + + devinfo = g_object_get_data (G_OBJECT (info->device), "devinfo"); + if (devinfo->greeter_mode && devinfo->unlock_required != NULL) { + + /* We need to delay the activation until the modem is unlocked. */ + + unlock_dialog_new(devinfo->device, devinfo); + /* + * The dialog gets destroyed if + * + * A) User enters the correct PIN and ModemManager tells nm-applet + * that the modem was successfully activated. + * + * The dialog does not get destroyed, however, if the PIN code + * is incorrect. The dialog shows an error message and the user can + * either enter a new PIN code or Cancel. + * + * All this happens in the dialogs response handler or callback that + * handles the PIN activation return value from ModemManager. + * See the relevant functions later in this file. + * + * B) The user cancels the dialog. + */ + g_signal_connect (devinfo->dialog, "destroy", G_CALLBACK (gsm_menu_item_activate_unlock_dialog_destroy), info); + return; + } applet_menu_item_activate_helper (info->device, info->connection, @@ -356,6 +468,10 @@ return MB_TECH_HSUPA; case MM_MODEM_GSM_ACCESS_TECH_HSPA: return MB_TECH_HSPA; + case MM_MODEM_GSM_ACCESS_TECH_HSPA_PLUS: + return MB_TECH_HSPA_PLUS; + case MM_MODEM_GSM_ACCESS_TECH_LTE: + return MB_TECH_LTE; default: break; } @@ -374,6 +490,11 @@ char *text; GtkWidget *item; GSList *connections, *all, *iter; +#ifdef ENABLE_INDICATOR + GtkWidget *signal_icon; +#endif + gboolean allowed; + NMClientPermissionResult perm; info = g_object_get_data (G_OBJECT (device), "devinfo"); @@ -382,20 +503,18 @@ g_slist_free (all); if (n_devices > 1) { - char *desc; - - desc = (char *) utils_get_device_description (device); - if (!desc) - desc = (char *) nm_device_get_iface (device); - g_assert (desc); + const char *desc; + desc = nma_utils_get_device_description (device); text = g_strdup_printf (_("Mobile Broadband (%s)"), desc); } else { text = g_strdup (_("Mobile Broadband")); } item = applet_menu_item_create_device_item_helper (device, applet, text); +#ifndef ENABLE_INDICATOR gtk_widget_set_sensitive (item, FALSE); +#endif gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); g_free (text); @@ -407,6 +526,7 @@ s_con = nm_connection_get_setting_connection (active); g_assert (s_con); +#ifndef ENABLE_INDICATOR item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), info->quality_valid ? info->quality : 0, info->op_name, @@ -415,6 +535,21 @@ gsm_state_to_mb_state (info), info->modem_enabled, applet); +#else + text = mobile_helper_get_connection_label (nm_setting_connection_get_id (s_con), + info->op_name, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#endif gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); add_connection_item (device, active, item, menu, applet); } @@ -428,6 +563,7 @@ } } else { /* Otherwise show idle registration state or disabled */ +#ifndef ENABLE_INDICATOR item = nm_mb_menu_item_new (NULL, info->quality_valid ? info->quality : 0, info->op_name, @@ -436,6 +572,23 @@ gsm_state_to_mb_state (info), info->modem_enabled, applet); +#else + text = mobile_helper_get_connection_label (NULL, + info->op_name, + gsm_act_to_mb_act (info), + gsm_state_to_mb_state (info)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + gtk_widget_set_sensitive (item, FALSE); +#endif + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); } @@ -455,9 +608,37 @@ } } } else { + + allowed = FALSE; + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_NETWORK_CONTROL); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + allowed = TRUE; + } else { + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + allowed = TRUE; + } + } + } + /* Default connection item */ item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (GSM) connection...")); - add_connection_item (device, NULL, item, menu, applet); + gtk_widget_set_sensitive (GTK_WIDGET (item), allowed); + if (!allowed && applet->hide_policy_items) { + /* don't add the item if it should be hidden */ + g_object_ref_sink (item); + g_object_unref (item); + } else + add_connection_item (device, NULL, item, menu, applet); } } @@ -476,24 +657,19 @@ if (new_state == NM_DEVICE_STATE_ACTIVATED) { NMConnection *connection; NMSettingConnection *s_con = NULL; - char *str = NULL; + const char *str = NULL; connection = applet_find_active_connection_for_device (device, applet, NULL); if (connection) { - const char *id; - s_con = nm_connection_get_setting_connection (connection); - id = s_con ? nm_setting_connection_get_id (s_con) : NULL; - if (id) - str = g_strdup_printf (_("You are now connected to '%s'."), id); + str = s_con ? nm_setting_connection_get_id (s_con) : NULL; } applet_do_notify_with_pref (applet, + str ? str : _("GSM network."), _("Connection Established"), - str ? str : _("You are now connected to the GSM network."), "nm-device-wwan", PREF_DISABLE_CONNECTED_NOTIFICATIONS); - g_free (str); } /* Start/stop polling of quality and registration when device state changes */ @@ -501,15 +677,16 @@ check_start_polling (info); } -static GdkPixbuf * +static void gsm_get_icon (NMDevice *device, NMDeviceState state, NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, char **tip, NMApplet *applet) { NMSettingConnection *s_con; - GdkPixbuf *pixbuf = NULL; const char *id; GsmDeviceInfo *info; guint32 mb_state; @@ -538,11 +715,14 @@ break; case NM_DEVICE_STATE_ACTIVATED: mb_state = gsm_state_to_mb_state (info); - pixbuf = mobile_helper_get_status_pixbuf (info->quality, + *out_pixbuf = mobile_helper_get_status_pixbuf (info->quality, info->quality_valid, mb_state, gsm_act_to_mb_act (info), applet); + *out_indicator_icon = mobile_helper_get_quality_icon (info->quality_valid ? + info->quality : 0, + applet); if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { gboolean roaming = (mb_state == MB_STATE_ROAMING); @@ -557,8 +737,6 @@ default: break; } - - return pixbuf; } typedef struct { @@ -976,6 +1154,8 @@ guint32 label1_min = 0, label2_min = 0, label3_min = 0; guint32 label1_max = 0, label2_max = 0, label3_max = 0; guint32 unlock_code = 0; + gboolean show_save = FALSE; + NMClientPermission perm; g_return_if_fail (info->unlock_required != NULL); @@ -983,7 +1163,7 @@ return; /* Figure out the dialog text based on the required unlock code */ - device_desc = utils_get_device_description (device); + device_desc = nma_utils_get_device_description (device); if (!strcmp (info->unlock_required, "sim-pin")) { title = _("SIM PIN unlock required"); header = _("SIM PIN Unlock Required"); @@ -1019,12 +1199,18 @@ return; } + show_save = (unlock_code == UNLOCK_CODE_PIN) ? TRUE : FALSE; + perm = NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN; + if (! ( info->applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_YES + || info->applet->permissions[perm] == NM_CLIENT_PERMISSION_RESULT_AUTH)) + show_save = FALSE; + /* Construct and run the dialog */ info->dialog = applet_mobile_pin_dialog_new (title, header, desc, show_pass_label, - (unlock_code == UNLOCK_CODE_PIN) ? TRUE : FALSE); + show_save); g_free (desc); g_return_if_fail (info->dialog != NULL); @@ -1322,8 +1508,10 @@ info->keyring_id = NULL; if (result != GNOME_KEYRING_RESULT_OK) { - /* No saved PIN, just ask the user */ - unlock_dialog_new (info->device, info); + if (!info->greeter_mode) { + /* No saved PIN, just ask the user */ + unlock_dialog_new (info->device, info); + } return; } @@ -1405,8 +1593,10 @@ info->devid, NULL); } else { - /* Couldn't get a device ID, but unlock required; present dialog */ - unlock_dialog_new (info->device, info); + if (!info->greeter_mode) { + /* Couldn't get a device ID, but unlock required; present dialog */ + unlock_dialog_new (info->device, info); + } } } @@ -1559,6 +1749,10 @@ g_free (info->op_name); info->op_name = parse_op_name (info, op_name, info->op_code); info->skip_reg_poll = TRUE; + +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (info->applet); +#endif /* ENABLE_INDICATOR */ } static void @@ -1644,6 +1838,10 @@ info->device = device; info->bus = bus; + info->greeter_mode = FALSE; + if (getenv ("INDICATOR_GREETER_MODE")) + info->greeter_mode = TRUE; + info->props_proxy = dbus_g_proxy_new_for_name (info->bus, "org.freedesktop.ModemManager", udi, diff -Nru network-manager-applet-0.9.4.1/src/applet-device-gsm.h network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-gsm.h --- network-manager-applet-0.9.4.1/src/applet-device-gsm.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-gsm.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/applet-device-wifi.c network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-wifi.c --- network-manager-applet-0.9.4.1/src/applet-device-wifi.c 2012-03-23 14:14:18.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-wifi.c 2012-10-31 13:21:01.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -31,6 +31,7 @@ #include #include +#include #include #include @@ -45,11 +46,12 @@ #include "applet-device-wifi.h" #include "ap-menu-item.h" #include "utils.h" -#include "nm-wireless-dialog.h" +#include "nm-wifi-dialog.h" +#include "nm-ui-utils.h" #define ACTIVE_AP_TAG "active-ap" -static void wireless_dialog_response_cb (GtkDialog *dialog, gint response, gpointer user_data); +static void wifi_dialog_response_cb (GtkDialog *dialog, gint response, gpointer user_data); static void nag_dialog_response_cb (GtkDialog *nag_dialog, gint response, gpointer user_data); @@ -77,10 +79,10 @@ { GtkWidget *dialog; - dialog = nma_wireless_dialog_new_for_other (applet->nm_client, applet->settings); + dialog = nma_wifi_dialog_new_for_other (applet->nm_client, applet->settings); if (dialog) { g_signal_connect (dialog, "response", - G_CALLBACK (wireless_dialog_response_cb), + G_CALLBACK (wifi_dialog_response_cb), applet); show_ignore_focus_stealing_prevention (dialog); } @@ -92,16 +94,51 @@ { GtkWidget *menu_item; GtkWidget *label; + gboolean allowed; + NMClientPermissionResult perm; menu_item = gtk_menu_item_new (); - label = gtk_label_new_with_mnemonic (_("_Connect to Hidden Wireless Network...")); + label = gtk_label_new_with_mnemonic (_("_Connect to Hidden Wi-Fi Network...")); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_container_add (GTK_CONTAINER (menu_item), label); gtk_widget_show_all (menu_item); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); g_signal_connect_swapped (menu_item, "activate", G_CALLBACK (applet_wifi_connect_to_hidden_network), applet); + + allowed = FALSE; + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_NETWORK_CONTROL); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + /* First, the user has to be able to control networks + * to connect to a new hidden access point. + */ + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + /* The user can modify (and add!) a new configuration for herself. */ + allowed = TRUE; + } else { + perm = nm_client_get_permission_result (applet->nm_client, + NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM); + if ( perm == NM_CLIENT_PERMISSION_RESULT_YES + || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { + /* The user can modify (and add!) a new system wide configuration. */ + allowed = TRUE; + } + } + } + + gtk_widget_set_sensitive (GTK_WIDGET (menu_item), allowed); + if (!allowed && applet->hide_policy_items) { + /* don't add the item if it should be hidden */ + /* TODO: is this the final solution? */ + g_object_ref_sink (menu_item); + g_object_unref (menu_item); + } else + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); } gboolean @@ -109,18 +146,16 @@ { gboolean disabled, allowed = FALSE; NMClientPermissionResult perm; - GError *error = NULL; - /* FIXME: check WIFI_SHARE_PROTECTED too, and make the wireless dialog + /* FIXME: check WIFI_SHARE_PROTECTED too, and make the wifi dialog * handle the permissions as well so that admins can restrict open network * creation separately from protected network creation. */ perm = nm_client_get_permission_result (applet->nm_client, NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN); if (perm == NM_CLIENT_PERMISSION_RESULT_YES || perm == NM_CLIENT_PERMISSION_RESULT_AUTH) { - disabled = gconf_client_get_bool (applet->gconf_client, PREF_DISABLE_WIFI_CREATE, &error); - if (!disabled && !error) + disabled = g_settings_get_boolean (applet->gsettings, PREF_DISABLE_WIFI_CREATE); + if (!disabled) allowed = TRUE; - g_clear_error (&error); } return allowed; } @@ -130,10 +165,10 @@ { GtkWidget *dialog; - dialog = nma_wireless_dialog_new_for_create (applet->nm_client, applet->settings); + dialog = nma_wifi_dialog_new_for_create (applet->nm_client, applet->settings); if (dialog) { g_signal_connect (dialog, "response", - G_CALLBACK (wireless_dialog_response_cb), + G_CALLBACK (wifi_dialog_response_cb), applet); show_ignore_focus_stealing_prevention (dialog); } @@ -147,17 +182,25 @@ GtkWidget *label; menu_item = gtk_menu_item_new (); - label = gtk_label_new_with_mnemonic (_("Create _New Wireless Network...")); + label = gtk_label_new_with_mnemonic (_("Create _New Wi-Fi Network...")); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_container_add (GTK_CONTAINER (menu_item), label); gtk_widget_show_all (menu_item); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); g_signal_connect_swapped (menu_item, "activate", G_CALLBACK (applet_wifi_create_wifi_network), applet); - if (!applet_wifi_can_create_wifi_network (applet)) + if (!applet_wifi_can_create_wifi_network (applet)) { gtk_widget_set_sensitive (GTK_WIDGET (menu_item), FALSE); + if (applet->hide_policy_items) { + /* don't add the item if it should be hidden */ + /* TODO: is this the final solution? */ + g_object_ref_sink (menu_item); + g_object_unref (menu_item); + return; + } + } + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); } static void @@ -227,12 +270,12 @@ NMDeviceWifi *device; NMAccessPoint *ap; NMConnection *connection; -} WirelessMenuItemInfo; +} WifiMenuItemInfo; static void -wireless_menu_item_info_destroy (gpointer data) +wifi_menu_item_info_destroy (gpointer data) { - WirelessMenuItemInfo *info = (WirelessMenuItemInfo *) data; + WifiMenuItemInfo *info = (WifiMenuItemInfo *) data; g_object_unref (G_OBJECT (info->device)); g_object_unref (G_OBJECT (info->ap)); @@ -240,7 +283,7 @@ if (info->connection) g_object_unref (G_OBJECT (info->connection)); - g_slice_free (WirelessMenuItemInfo, data); + g_slice_free (WifiMenuItemInfo, data); } /* @@ -309,6 +352,135 @@ return is_ssid_in_list (ssid, blacklisted_ssids); } +#ifdef ENABLE_INDICATOR +static void +clear_dupes_list (GSList *list) +{ + g_slist_foreach (list, (GFunc) g_free, NULL); + g_slist_free (list); +} + +static gboolean +get_ap_is_encrypted (NMAccessPoint *ap) +{ + guint32 ap_flags, ap_wpa, ap_rsn; + + ap_flags = nm_access_point_get_flags (ap); + ap_wpa = nm_access_point_get_wpa_flags (ap); + ap_rsn = nm_access_point_get_rsn_flags (ap); + + if ((ap_flags & NM_802_11_AP_FLAGS_PRIVACY) || ap_wpa || ap_rsn) + return TRUE; + + return FALSE; +} + +static void +ap_menu_item_set_sensitive (GtkWidget *item, NMAccessPoint *ap, guint32 dev_caps) +{ + gboolean is_adhoc = FALSE; + guint32 ap_flags, ap_wpa, ap_rsn; + + ap_flags = nm_access_point_get_flags (ap); + ap_wpa = nm_access_point_get_wpa_flags (ap); + ap_rsn = nm_access_point_get_rsn_flags (ap); + + if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) + is_adhoc = TRUE; + + /* Don't enable the menu item the device can't even connect to the AP */ + if ( !nm_utils_security_valid (NMU_SEC_NONE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_WPA_ENTERPRISE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && !nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, TRUE, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + } +} + +static gchar * +get_best_icon_name_for_ap (NMAccessPoint *ap, gboolean need_sec, gboolean encrypted) +{ + GString *icon_name = NULL; + gchar *tmp = NULL; + guint32 strength; + + g_return_val_if_fail (NM_IS_ACCESS_POINT (ap), NULL); + + strength = nm_access_point_get_strength (ap); + strength = CLAMP (strength, 0, 100); + + icon_name = g_string_new (""); + if (strength > 80) + icon_name = g_string_assign (icon_name, "nm-signal-100"); + else if (strength > 55) + icon_name = g_string_assign (icon_name, "nm-signal-75"); + else if (strength > 30) + icon_name = g_string_assign (icon_name, "nm-signal-50"); + else if (strength > 5) + icon_name = g_string_assign (icon_name, "nm-signal-25"); + else + icon_name = g_string_assign (icon_name, "nm-signal-00"); + + if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) { + icon_name = g_string_assign (icon_name, "nm-adhoc"); + goto out; + } + + if (need_sec && encrypted) + icon_name = g_string_append (icon_name, "-secure"); + +out: + tmp = icon_name->str; + g_string_free (icon_name, FALSE); + + return tmp; +} + +static void +set_menu_item_accessible_desc (NMAccessPoint *ap, + GtkMenuItem *item, + gboolean is_encrypted) +{ + guint32 strength; + gchar *ssid = NULL; + GString *icon_desc = NULL; + + g_return_if_fail (NM_IS_ACCESS_POINT (ap)); + + strength = nm_access_point_get_strength (ap); + strength = CLAMP (strength, 0, 100); + + ssid = g_strdup (gtk_menu_item_get_label (item)); + + if (ssid == NULL) + return; + + icon_desc = g_string_new (""); + g_string_append_printf (icon_desc, "%s: ", ssid); + + if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) { + icon_desc = g_string_append (icon_desc, _("ad-hoc")); + goto out; + } + + g_string_append_printf (icon_desc, "%d%%", strength); + + if (is_encrypted) { + icon_desc = g_string_append (icon_desc, ", "); + icon_desc = g_string_append (icon_desc, _("secure.")); + } + +out: + atk_object_set_name (gtk_widget_get_accessible (GTK_WIDGET (item)), icon_desc->str); + g_free (ssid); + g_string_free (icon_desc, TRUE); +} +#endif + static void clamp_ap_to_bssid (NMAccessPoint *ap, NMSettingWireless *s_wifi) { @@ -347,7 +519,7 @@ gint response, gpointer user_data) { - NMAWirelessDialog *dialog = NMA_WIRELESS_DIALOG (foo); + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (foo); MoreInfo *info = user_data; NMConnection *connection = NULL; NMDevice *device = NULL; @@ -358,13 +530,13 @@ goto done; } - if (!nma_wireless_dialog_get_nag_ignored (dialog)) { + if (!nma_wifi_dialog_get_nag_ignored (dialog)) { GtkWidget *nag_dialog; /* Nag the user about certificates or whatever. Only destroy the dialog * if no nagging was done. */ - nag_dialog = nma_wireless_dialog_nag_user (dialog); + nag_dialog = nma_wifi_dialog_nag_user (dialog); if (nag_dialog) { gtk_window_set_transient_for (GTK_WINDOW (nag_dialog), GTK_WINDOW (dialog)); g_signal_connect (nag_dialog, "response", @@ -374,16 +546,16 @@ } } - /* nma_wireless_dialog_get_connection() returns a connection with the + /* nma_wifi_dialog_get_connection() returns a connection with the * refcount incremented, so the caller must remember to unref it. */ - connection = nma_wireless_dialog_get_connection (dialog, &device, &ap); + connection = nma_wifi_dialog_get_connection (dialog, &device, &ap); g_assert (connection); g_assert (device); info->callback (connection, TRUE, FALSE, info->callback_data); - /* Balance nma_wireless_dialog_get_connection() */ + /* Balance nma_wifi_dialog_get_connection() */ g_object_unref (connection); done: @@ -471,7 +643,7 @@ more_info->callback = callback; more_info->callback_data = callback_data; - dialog = nma_wireless_dialog_new (applet->nm_client, applet->settings, connection, device, ap, FALSE); + dialog = nma_wifi_dialog_new (applet->nm_client, applet->settings, connection, device, ap, FALSE); if (dialog) { g_signal_connect (dialog, "response", G_CALLBACK (more_info_wifi_dialog_response_cb), @@ -485,12 +657,12 @@ } static gboolean -wireless_new_auto_connection (NMDevice *device, - gpointer dclass_data, - AppletNewAutoConnectionCallback callback, - gpointer callback_data) +wifi_new_auto_connection (NMDevice *device, + gpointer dclass_data, + AppletNewAutoConnectionCallback callback, + gpointer callback_data) { - WirelessMenuItemInfo *info = (WirelessMenuItemInfo *) dclass_data; + WifiMenuItemInfo *info = (WifiMenuItemInfo *) dclass_data; g_return_val_if_fail (device != NULL, FALSE); g_return_val_if_fail (info->ap != NULL, FALSE); @@ -501,9 +673,9 @@ static void -wireless_menu_item_activate (GtkMenuItem *item, gpointer user_data) +wifi_menu_item_activate (GtkMenuItem *item, gpointer user_data) { - WirelessMenuItemInfo *info = (WirelessMenuItemInfo *) user_data; + WifiMenuItemInfo *info = (WifiMenuItemInfo *) user_data; const char *specific_object = NULL; if (info->ap) @@ -517,7 +689,11 @@ struct dup_data { NMDevice *device; +#ifndef ENABLE_INDICATOR NMNetworkMenuItem *found; +#else + GtkWidget *found; +#endif char *hash; }; @@ -533,28 +709,52 @@ g_return_if_fail (data); g_return_if_fail (data->hash); +#ifndef ENABLE_INDICATOR if (data->found || !NM_IS_NETWORK_MENU_ITEM (widget)) return; +#else + if (data->found || !GTK_IS_IMAGE_MENU_ITEM (widget)) + return; +#endif device = g_object_get_data (G_OBJECT (widget), "device"); if (NM_DEVICE (device) != data->device) return; +#ifndef ENABLE_INDICATOR hash = nm_network_menu_item_get_hash (NM_NETWORK_MENU_ITEM (widget)); if (hash && (strcmp (hash, data->hash) == 0)) data->found = NM_NETWORK_MENU_ITEM (widget); +#else + hash = g_object_get_data (G_OBJECT (widget), "hash"); + if (hash && (strcmp (hash, data->hash) == 0)) + data->found = widget; +#endif /* ENABLE_INDICATOR */ } +#ifndef ENABLE_INDICATOR static NMNetworkMenuItem * +#else +static GtkImageMenuItem * +#endif create_new_ap_item (NMDeviceWifi *device, NMAccessPoint *ap, struct dup_data *dup_data, GSList *connections, NMApplet *applet) { - WirelessMenuItemInfo *info; + WifiMenuItemInfo *info; GSList *iter; +#ifndef ENABLE_INDICATOR NMNetworkMenuItem *item = NULL; +#else + GtkWidget *item = NULL; + char *text, *best_icon_name; + const char *path; + GtkWidget *icon_image; + gboolean encrypted, ad_hoc; + GSList *dupes; +#endif /* ENABLE_INDICATOR */ GSList *dev_connections = NULL; GSList *ap_connections = NULL; const GByteArray *ssid; @@ -565,18 +765,51 @@ g_slist_free (dev_connections); dev_connections = NULL; + ssid = nm_access_point_get_ssid (ap); + dev_caps = nm_device_wifi_get_capabilities (device); + +#ifndef ENABLE_INDICATOR item = NM_NETWORK_MENU_ITEM (nm_network_menu_item_new (dup_data->hash, !!g_slist_length (ap_connections))); gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); - ssid = nm_access_point_get_ssid (ap); nm_network_menu_item_set_ssid (item, (GByteArray *) ssid); - dev_caps = nm_device_wifi_get_capabilities (device); nma_icon_check_and_load ("nm-adhoc", &applet->adhoc_icon, applet); nm_network_menu_item_set_detail (item, ap, applet->adhoc_icon, dev_caps); nm_network_menu_item_best_strength (item, nm_access_point_get_strength (ap), applet); nm_network_menu_item_add_dupe (item, ap); +#else + text = nm_utils_ssid_to_utf8 (ssid); + if (!text) { + // Avoid any cases where the SSID could possibly end up undefined. + text = g_strdup (""); + } + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + + encrypted = get_ap_is_encrypted (ap); + ad_hoc = nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC; + + best_icon_name = get_best_icon_name_for_ap (ap, TRUE, encrypted); + icon_image = gtk_image_new_from_icon_name (best_icon_name, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (best_icon_name); + + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), icon_image); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + + path = nm_object_get_path (NM_OBJECT (ap)); + dupes = g_slist_append (dupes, g_strdup (path)); + g_object_set_data_full (G_OBJECT (item), "dupes", (gpointer) dupes, (GDestroyNotify) clear_dupes_list); + g_object_set_data (G_OBJECT (item), "encrypted", (gpointer) encrypted); + g_object_set_data (G_OBJECT (item), "ad-hoc", (gpointer) ad_hoc); + g_object_set_data (G_OBJECT (item), "hash", (gpointer) dup_data->hash); + g_object_set_data (G_OBJECT (item), "has_connections", (gpointer) !!g_slist_length (ap_connections)); + + set_menu_item_accessible_desc (ap, GTK_MENU_ITEM (item), encrypted); + + ap_menu_item_set_sensitive (item, ap, dev_caps); +#endif /* ENABLE_INDICATOR */ g_object_set_data (G_OBJECT (item), "device", NM_DEVICE (device)); @@ -594,16 +827,16 @@ s_con = nm_connection_get_setting_connection (connection); subitem = gtk_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); - info = g_slice_new0 (WirelessMenuItemInfo); + info = g_slice_new0 (WifiMenuItemInfo); info->applet = applet; info->device = g_object_ref (G_OBJECT (device)); info->ap = g_object_ref (G_OBJECT (ap)); info->connection = g_object_ref (G_OBJECT (connection)); g_signal_connect_data (subitem, "activate", - G_CALLBACK (wireless_menu_item_activate), + G_CALLBACK (wifi_menu_item_activate), info, - (GClosureNotify) wireless_menu_item_info_destroy, 0); + (GClosureNotify) wifi_menu_item_info_destroy, 0); gtk_menu_shell_append (GTK_MENU_SHELL (submenu), GTK_WIDGET (subitem)); } @@ -612,7 +845,7 @@ } else { NMConnection *connection; - info = g_slice_new0 (WirelessMenuItemInfo); + info = g_slice_new0 (WifiMenuItemInfo); info->applet = applet; info->device = g_object_ref (G_OBJECT (device)); info->ap = g_object_ref (G_OBJECT (ap)); @@ -624,9 +857,9 @@ g_signal_connect_data (GTK_WIDGET (item), "activate", - G_CALLBACK (wireless_menu_item_activate), + G_CALLBACK (wifi_menu_item_activate), info, - (GClosureNotify) wireless_menu_item_info_destroy, + (GClosureNotify) wifi_menu_item_info_destroy, 0); } @@ -634,7 +867,11 @@ return item; } +#ifndef ENABLE_INDICATOR static NMNetworkMenuItem * +#else +static GtkImageMenuItem * +#endif /* ENABLE_INDICATOR */ get_menu_item_for_ap (NMDeviceWifi *device, NMAccessPoint *ap, GSList *connections, @@ -658,14 +895,32 @@ */ dup_data.found = NULL; dup_data.hash = g_object_get_data (G_OBJECT (ap), "hash"); +#ifndef ENABLE_INDICATOR g_return_val_if_fail (dup_data.hash != NULL, NULL); +#else + /* heh, not much choice here, otherwise on startup we get tons of errors + * because g_return_val_if_fail prints assertion errors. + */ + if (dup_data.hash == NULL) + return NULL; +#endif dup_data.device = NM_DEVICE (device); g_slist_foreach (menu_list, find_duplicate, &dup_data); if (dup_data.found) { +#ifndef ENABLE_INDICATOR nm_network_menu_item_best_strength (dup_data.found, nm_access_point_get_strength (ap), applet); nm_network_menu_item_add_dupe (dup_data.found, ap); +#else + GSList *dupes = NULL; + const char *path; + + dupes = g_object_steal_data (G_OBJECT (dup_data.found), "dupes"); + path = nm_object_get_path (NM_OBJECT (ap)); + dupes = g_slist_prepend (dupes, g_strdup (path)); + g_object_set_data_full (G_OBJECT (dup_data.found), "dupes", (gpointer) dupes, (GDestroyNotify) clear_dupes_list); +#endif return NULL; } @@ -675,6 +930,7 @@ static gint sort_by_name (gconstpointer tmpa, gconstpointer tmpb) { +#ifndef ENABLE_INDICATOR NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); const char *a_ssid, *b_ssid; @@ -711,6 +967,44 @@ return -1; return 0; +#else + GtkImageMenuItem *a = GTK_IMAGE_MENU_ITEM (tmpa); + GtkImageMenuItem *b = GTK_IMAGE_MENU_ITEM (tmpb); + const char *a_ssid, *b_ssid; + gboolean a_adhoc, b_adhoc; + int i; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_ssid = gtk_menu_item_get_label (GTK_MENU_ITEM (a)); + b_ssid = gtk_menu_item_get_label (GTK_MENU_ITEM (b)); + + if (a_ssid && !b_ssid) + return 1; + if (b_ssid && !a_ssid) + return -1; + + if (a_ssid && b_ssid) { + i = g_ascii_strcasecmp (a_ssid, b_ssid); + if (i != 0) + return i; + } + + /* If the names are the same, sort infrastructure APs first */ + a_adhoc = g_object_get_data (G_OBJECT (a), "ad-hoc"); + b_adhoc = g_object_get_data (G_OBJECT (b), "ad-hoc"); + if (a_adhoc && !b_adhoc) + return 1; + else if (!a_adhoc && b_adhoc) + return -1; + + return 0; +#endif /* ENABLE_INDICATOR */ } /* Sort menu items for the top-level menu: @@ -722,6 +1016,7 @@ static gint sort_toplevel (gconstpointer tmpa, gconstpointer tmpb) { +#ifndef ENABLE_INDICATOR NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); gboolean a_fave, b_fave; @@ -756,14 +1051,50 @@ * both are unencrypted) just sort by name. */ return sort_by_name (a, b); +#else + GtkImageMenuItem *a = GTK_IMAGE_MENU_ITEM (tmpa); + GtkImageMenuItem *b = GTK_IMAGE_MENU_ITEM (tmpb); + gboolean a_fave, b_fave; + + if (a && !b) + return 1; + else if (!a && b) + return -1; + else if (a == b) + return 0; + + a_fave = g_object_get_data (G_OBJECT (a), "has_connections"); + b_fave = g_object_get_data (G_OBJECT (b), "has_connections"); + + /* Items with a saved connection first */ + if (a_fave && !b_fave) + return -1; + else if (!a_fave && b_fave) + return 1; + else if (!a_fave && !b_fave) { + gboolean a_enc = g_object_get_data (G_OBJECT (a), "encrypted"); + gboolean b_enc = g_object_get_data (G_OBJECT (b), "encrypted"); + + /* If neither item has a saved connection, sort by encryption */ + if (a_enc && !b_enc) + return -1; + else if (!a_enc && b_enc) + return 1; + } + + /* For all other cases (both have saved connections, both are encrypted, or + * both are unencrypted) just sort by name. + */ + return sort_by_name (a, b); +#endif /* ENABLE_INDICATOR */ } static void -wireless_add_menu_item (NMDevice *device, - guint32 n_devices, - NMConnection *active, - GtkWidget *menu, - NMApplet *applet) +wifi_add_menu_item (NMDevice *device, + guint32 n_devices, + NMConnection *active, + GtkWidget *menu, + NMApplet *applet) { NMDeviceWifi *wdev; char *text; @@ -771,29 +1102,29 @@ int i; NMAccessPoint *active_ap = NULL; GSList *connections = NULL, *all, *iter; - gboolean wireless_enabled = TRUE; - gboolean wireless_hw_enabled = TRUE; + gboolean wifi_enabled = TRUE; + gboolean wifi_hw_enabled = TRUE; GSList *menu_items = NULL; /* All menu items we'll be adding */ +#ifndef ENABLE_INDICATOR NMNetworkMenuItem *item, *active_item = NULL; +#else + GtkImageMenuItem *item, *active_item = NULL; +#endif /* ENABLE_INDICATOR */ GtkWidget *widget; wdev = NM_DEVICE_WIFI (device); aps = nm_device_wifi_get_access_points (wdev); if (n_devices > 1) { - char *desc; - - desc = (char *) utils_get_device_description (device); - if (!desc) - desc = (char *) nm_device_get_iface (device); - g_assert (desc); + const char *desc; + desc = nma_utils_get_device_description (device); if (aps && aps->len > 1) - text = g_strdup_printf (_("Wireless Networks (%s)"), desc); + text = g_strdup_printf (_("Wi-Fi Networks (%s)"), desc); else - text = g_strdup_printf (_("Wireless Network (%s)"), desc); + text = g_strdup_printf (_("Wi-Fi Network (%s)"), desc); } else - text = g_strdup (ngettext ("Wireless Network", "Wireless Networks", aps ? aps->len : 0)); + text = g_strdup (ngettext ("Wi-Fi Network", "Wi-Fi Networks", aps ? aps->len : 0)); widget = applet_menu_item_create_device_item_helper (device, applet, text); g_free (text); @@ -812,7 +1143,9 @@ if (active_ap) { active_item = item = get_menu_item_for_ap (wdev, active_ap, connections, NULL, applet); if (item) { +#ifndef ENABLE_INDICATOR nm_network_menu_item_set_active (item, TRUE); +#endif menu_items = g_slist_append (menu_items, item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); @@ -822,12 +1155,12 @@ } /* Notify user of unmanaged or unavailable device */ - wireless_enabled = nm_client_wireless_get_enabled (applet->nm_client); - wireless_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + wifi_enabled = nm_client_wireless_get_enabled (applet->nm_client); + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); widget = nma_menu_device_get_menu_item (device, applet, - wireless_hw_enabled ? - (wireless_enabled ? NULL : _("wireless is disabled")) : - _("wireless is disabled by hardware switch")); + wifi_hw_enabled ? + (wifi_enabled ? NULL : _("Wi-Fi is disabled")) : + _("Wi-Fi is disabled by hardware switch")); if (widget) { gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); gtk_widget_show (widget); @@ -983,10 +1316,9 @@ if (!id || strcmp (id, "dont-show")) return; - gconf_client_set_bool (applet->gconf_client, - PREF_SUPPRESS_WIRELESS_NETWORKS_AVAILABLE, - TRUE, - NULL); + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + TRUE); } @@ -1068,8 +1400,8 @@ applet_do_notify (applet, NOTIFY_URGENCY_LOW, - _("Wireless Networks Available"), - _("Use the network menu to connect to a wireless network"), + _("Wi-Fi Networks Available"), + _("Use the network menu to connect to a Wi-Fi network"), "nm-device-wireless", "dont-show", _("Don't show this message again"), @@ -1083,13 +1415,12 @@ { struct ap_notification_data *data; - data = g_object_get_data (G_OBJECT (device), "notify-wireless-avail-data"); + data = g_object_get_data (G_OBJECT (device), "notify-wifi-avail-data"); if (data->id != 0) return; - if (gconf_client_get_bool (data->applet->gconf_client, - PREF_SUPPRESS_WIRELESS_NETWORKS_AVAILABLE, - NULL)) + if (g_settings_get_boolean (data->applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) return; data->id = g_timeout_add_seconds (3, idle_check_avail_access_point_notification, data); @@ -1109,6 +1440,9 @@ applet); queue_avail_access_point_notification (NM_DEVICE (device)); +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (applet); +#endif /* ENABLE_INDICATOR */ } static void @@ -1126,6 +1460,9 @@ if (old == ap) { g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); applet_schedule_update_icon (applet); +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (applet); +#endif /* ENABLE_INDICATOR */ } } @@ -1154,7 +1491,7 @@ } static void -wireless_device_added (NMDevice *device, NMApplet *applet) +wifi_device_added (NMDevice *device, NMApplet *applet) { NMDeviceWifi *wdev = NM_DEVICE_WIFI (device); const GPtrArray *aps; @@ -1177,7 +1514,7 @@ G_CALLBACK (access_point_removed_cb), applet); - /* Now create the per-device hooks for watching for available wireless + /* Now create the per-device hooks for watching for available wifi * connections. */ data = g_new0 (struct ap_notification_data, 1); @@ -1192,7 +1529,7 @@ G_CALLBACK (on_new_connection), data); data->new_con_id = id; - g_object_set_data_full (G_OBJECT (wdev), "notify-wireless-avail-data", + g_object_set_data_full (G_OBJECT (wdev), "notify-wifi-avail-data", data, free_ap_notification_data); queue_avail_access_point_notification (device); @@ -1245,14 +1582,13 @@ } static void -wireless_device_state_changed (NMDevice *device, - NMDeviceState new_state, - NMDeviceState old_state, - NMDeviceStateReason reason, - NMApplet *applet) +wifi_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) { NMAccessPoint *new = NULL; - char *msg; char *esc_ssid = NULL; new = update_active_ap (device, new_state, applet); @@ -1264,24 +1600,26 @@ return; esc_ssid = get_ssid_utf8 (new); - msg = g_strdup_printf (_("You are now connected to the wireless network '%s'."), esc_ssid); - applet_do_notify_with_pref (applet, _("Connection Established"), - msg, "nm-device-wireless", + g_object_set_data_full (G_OBJECT(device), "canonical-last-essid", g_strdup (esc_ssid), (GDestroyNotify) g_free); + applet_do_notify_with_pref (applet, + esc_ssid ? esc_ssid : _("(none)"), + _("Connection Established"), + "nm-device-wireless", PREF_DISABLE_CONNECTED_NOTIFICATIONS); - g_free (msg); g_free (esc_ssid); } -static GdkPixbuf * -wireless_get_icon (NMDevice *device, - NMDeviceState state, - NMConnection *connection, - char **tip, - NMApplet *applet) +static void +wifi_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **tip, + NMApplet *applet) { NMSettingConnection *s_con; NMAccessPoint *ap; - GdkPixbuf *pixbuf = NULL; const char *id; char *ssid = NULL; @@ -1295,16 +1633,16 @@ switch (state) { case NM_DEVICE_STATE_PREPARE: - *tip = g_strdup_printf (_("Preparing wireless network connection '%s'..."), id); + *tip = g_strdup_printf (_("Preparing Wi-Fi network connection '%s'..."), id); break; case NM_DEVICE_STATE_CONFIG: - *tip = g_strdup_printf (_("Configuring wireless network connection '%s'..."), id); + *tip = g_strdup_printf (_("Configuring Wi-Fi network connection '%s'..."), id); break; case NM_DEVICE_STATE_NEED_AUTH: - *tip = g_strdup_printf (_("User authentication required for wireless network '%s'..."), id); + *tip = g_strdup_printf (_("User authentication required for Wi-Fi network '%s'..."), id); break; case NM_DEVICE_STATE_IP_CONFIG: - *tip = g_strdup_printf (_("Requesting a wireless network address for '%s'..."), id); + *tip = g_strdup_printf (_("Requesting a Wi-Fi network address for '%s'..."), id); break; case NM_DEVICE_STATE_ACTIVATED: if (ap) { @@ -1314,34 +1652,38 @@ strength = CLAMP (strength, 0, 100); if (strength > 80) - pixbuf = nma_icon_check_and_load ("nm-signal-100", &applet->wireless_100_icon, applet); + *out_pixbuf = nma_icon_check_and_load ("nm-signal-100", &applet->wifi_100_icon, applet); else if (strength > 55) - pixbuf = nma_icon_check_and_load ("nm-signal-75", &applet->wireless_75_icon, applet); + *out_pixbuf = nma_icon_check_and_load ("nm-signal-75", &applet->wifi_75_icon, applet); else if (strength > 30) - pixbuf = nma_icon_check_and_load ("nm-signal-50", &applet->wireless_50_icon, applet); + *out_pixbuf = nma_icon_check_and_load ("nm-signal-50", &applet->wifi_50_icon, applet); else if (strength > 5) - pixbuf = nma_icon_check_and_load ("nm-signal-25", &applet->wireless_25_icon, applet); + *out_pixbuf = nma_icon_check_and_load ("nm-signal-25", &applet->wifi_25_icon, applet); else - pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wireless_00_icon, applet); + *out_pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); + + *out_indicator_icon = get_best_icon_name_for_ap (ap, FALSE, FALSE); ssid = get_ssid_utf8 (ap); - *tip = g_strdup_printf (_("Wireless network connection '%s' active: %s (%d%%)"), + *tip = g_strdup_printf (_("Wi-Fi network connection '%s' active: %s (%d%%)"), id, ssid, strength); g_free (ssid); } else { - pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wireless_00_icon, applet); - *tip = g_strdup_printf (_("Wireless network connection '%s' active"), id); + *out_indicator_icon = g_strdup_printf ("nm-signal-00"); + *out_pixbuf = nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); + *tip = g_strdup_printf (_("Wi-Fi network connection '%s' active"), id); } break; default: break; } - return pixbuf ? g_object_ref (pixbuf) : NULL; + if (out_pixbuf && *out_pixbuf) + g_object_ref (*out_pixbuf); } static gboolean -wireless_dialog_close (gpointer user_data) +wifi_dialog_close (gpointer user_data) { GtkWidget *dialog = GTK_WIDGET (user_data); @@ -1350,9 +1692,9 @@ } static void -wireless_dialog_destroyed (gpointer data, GObject *dialog_ptr) +wifi_dialog_destroyed (gpointer data, GObject *dialog_ptr) { - /* remove the idle function; for not to call wireless_dialog_close() on invalid pointer */ + /* remove the idle function; for not to call wifi_dialog_close() on invalid pointer */ g_idle_remove_by_data (dialog_ptr); } @@ -1361,12 +1703,12 @@ gint response, gpointer user_data) { - NMAWirelessDialog *wireless_dialog = NMA_WIRELESS_DIALOG (user_data); + NMAWifiDialog *wifi_dialog = NMA_WIFI_DIALOG (user_data); if (response == GTK_RESPONSE_NO) { /* user opted not to correct the warning */ - nma_wireless_dialog_set_nag_ignored (wireless_dialog, TRUE); - g_idle_add (wireless_dialog_close, wireless_dialog); - g_object_weak_ref (G_OBJECT (wireless_dialog), wireless_dialog_destroyed, NULL); + nma_wifi_dialog_set_nag_ignored (wifi_dialog, TRUE); + g_idle_add (wifi_dialog_close, wifi_dialog); + g_object_weak_ref (G_OBJECT (wifi_dialog), wifi_dialog_destroyed, NULL); } } @@ -1409,11 +1751,11 @@ } static void -wireless_dialog_response_cb (GtkDialog *foo, - gint response, - gpointer user_data) +wifi_dialog_response_cb (GtkDialog *foo, + gint response, + gpointer user_data) { - NMAWirelessDialog *dialog = NMA_WIRELESS_DIALOG (foo); + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (foo); NMApplet *applet = NM_APPLET (user_data); NMConnection *connection = NULL, *fuzzy_match = NULL; NMDevice *device = NULL; @@ -1423,13 +1765,13 @@ if (response != GTK_RESPONSE_OK) goto done; - if (!nma_wireless_dialog_get_nag_ignored (dialog)) { + if (!nma_wifi_dialog_get_nag_ignored (dialog)) { GtkWidget *nag_dialog; /* Nag the user about certificates or whatever. Only destroy the dialog * if no nagging was done. */ - nag_dialog = nma_wireless_dialog_nag_user (dialog); + nag_dialog = nma_wifi_dialog_nag_user (dialog); if (nag_dialog) { gtk_window_set_transient_for (GTK_WINDOW (nag_dialog), GTK_WINDOW (dialog)); g_signal_connect (nag_dialog, "response", @@ -1439,10 +1781,10 @@ } } - /* nma_wireless_dialog_get_connection() returns a connection with the + /* nma_wifi_dialog_get_connection() returns a connection with the * refcount incremented, so the caller must remember to unref it. */ - connection = nma_wireless_dialog_get_connection (dialog, &device, &ap); + connection = nma_wifi_dialog_get_connection (dialog, &device, &ap); g_assert (connection); g_assert (device); @@ -1493,7 +1835,7 @@ applet); } - /* Balance nma_wireless_dialog_get_connection() */ + /* Balance nma_wifi_dialog_get_connection() */ g_object_unref (connection); done: @@ -1554,7 +1896,7 @@ { SecretsRequest *req = user_data; NMWifiInfo *info = (NMWifiInfo *) req; - NMAWirelessDialog *dialog = NMA_WIRELESS_DIALOG (info->dialog); + NMAWifiDialog *dialog = NMA_WIFI_DIALOG (info->dialog); NMConnection *connection = NULL; NMSettingWirelessSecurity *s_wireless_sec; GHashTable *settings = NULL; @@ -1564,13 +1906,13 @@ /* Handle the nag dialog specially; don't want to clear the NMActiveConnection * destroy handler yet if the main dialog isn't going away. */ - if ((response == GTK_RESPONSE_OK) && !nma_wireless_dialog_get_nag_ignored (dialog)) { + if ((response == GTK_RESPONSE_OK) && !nma_wifi_dialog_get_nag_ignored (dialog)) { GtkWidget *widget; /* Nag the user about certificates or whatever. Only destroy the dialog * if no nagging was done. */ - widget = nma_wireless_dialog_nag_user (dialog); + widget = nma_wifi_dialog_nag_user (dialog); if (widget) { gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (dialog)); g_signal_connect (widget, "response", @@ -1589,12 +1931,12 @@ goto done; } - connection = nma_wireless_dialog_get_connection (dialog, NULL, NULL); + connection = nma_wifi_dialog_get_connection (dialog, NULL, NULL); if (!connection) { g_set_error (&error, NM_SECRET_AGENT_ERROR, NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, - "%s.%d (%s): couldn't get connection from wireless dialog.", + "%s.%d (%s): couldn't get connection from Wi-Fi dialog.", __FILE__, __LINE__, __func__); goto done; } @@ -1669,13 +2011,13 @@ } static gboolean -wireless_get_secrets (SecretsRequest *req, GError **error) +wifi_get_secrets (SecretsRequest *req, GError **error) { NMWifiInfo *info = (NMWifiInfo *) req; applet_secrets_request_set_free_func (req, free_wifi_info); - info->dialog = nma_wireless_dialog_new (req->applet->nm_client, req->applet->settings, req->connection, NULL, NULL, TRUE); + info->dialog = nma_wifi_dialog_new (req->applet->nm_client, req->applet->settings, req->connection, NULL, NULL, TRUE); if (info->dialog) { g_signal_connect (info->dialog, "response", G_CALLBACK (get_secrets_dialog_response_cb), @@ -1700,12 +2042,12 @@ if (!dclass) return NULL; - dclass->new_auto_connection = wireless_new_auto_connection; - dclass->add_menu_item = wireless_add_menu_item; - dclass->device_added = wireless_device_added; - dclass->device_state_changed = wireless_device_state_changed; - dclass->get_icon = wireless_get_icon; - dclass->get_secrets = wireless_get_secrets; + dclass->new_auto_connection = wifi_new_auto_connection; + dclass->add_menu_item = wifi_add_menu_item; + dclass->device_added = wifi_device_added; + dclass->device_state_changed = wifi_device_state_changed; + dclass->get_icon = wifi_get_icon; + dclass->get_secrets = wifi_get_secrets; dclass->secrets_request_size = sizeof (NMWifiInfo); return dclass; diff -Nru network-manager-applet-0.9.4.1/src/applet-device-wifi.h network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-wifi.h --- network-manager-applet-0.9.4.1/src/applet-device-wifi.h 2009-12-23 18:30:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-wifi.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/applet-device-wimax.c network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-wimax.c --- network-manager-applet-0.9.4.1/src/applet-device-wimax.c 2012-03-19 14:53:53.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-wimax.c 2012-10-31 13:21:01.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -35,10 +35,11 @@ #include "applet.h" #include "applet-device-wimax.h" -#include "utils.h" #include "applet-dialogs.h" +#include "mobile-helpers.h" #include "nma-marshal.h" #include "mb-menu-item.h" +#include "nm-ui-utils.h" #define ACTIVE_NSP_TAG "active-nsp" @@ -141,9 +142,14 @@ { GtkWidget *item; WimaxMenuItemInfo *info; +#ifdef ENABLE_INDICATOR + char *text = NULL; + GtkWidget *signal_icon = NULL; +#endif g_return_val_if_fail (nsp != NULL, NULL); +#ifndef ENABLE_INDICATOR item = nm_mb_menu_item_new (nm_wimax_nsp_get_name (nsp), nm_wimax_nsp_get_signal_quality (nsp), NULL, @@ -152,6 +158,16 @@ nsp_type_to_mb_state (nm_wimax_nsp_get_network_type (nsp)), TRUE, applet); +#else + text = g_strdup (nm_wimax_nsp_get_name (nsp)); + item = gtk_image_menu_item_new_with_label (text); + g_free (text); + text = mobile_helper_get_quality_icon (nm_wimax_nsp_get_signal_quality (nsp), applet); + signal_icon = gtk_image_new_from_icon_name (text, GTK_ICON_SIZE_LARGE_TOOLBAR); + g_free (text); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), signal_icon); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#endif /* ENABLE_INDICATOR */ gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); info = g_slice_new0 (WimaxMenuItemInfo); @@ -221,13 +237,9 @@ nsps = nm_device_wimax_get_nsps (wimax); if (n_devices > 1) { - char *desc; - - desc = (char *) utils_get_device_description (device); - if (!desc) - desc = (char *) nm_device_get_iface (device); - g_assert (desc); + const char *desc; + desc = nma_utils_get_device_description (device); text = g_strdup_printf (_("WiMAX Mobile Broadband (%s)"), desc); } else { text = g_strdup (_("WiMAX Mobile Broadband")); @@ -305,7 +317,12 @@ static void nsp_quality_changed (NMWimaxNsp *nsp, GParamSpec *pspec, gpointer user_data) { - applet_schedule_update_icon (NM_APPLET (user_data)); + NMApplet *applet = NM_APPLET (user_data); + + applet_schedule_update_icon (applet); +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (applet); +#endif /* ENABLE_INDICATOR */ } static NMWimaxNsp * @@ -367,8 +384,12 @@ if (!s_wimax) return; - if (g_strcmp0 (nm_wimax_nsp_get_name (new), nm_setting_wimax_get_network_name (s_wimax)) != 0) + if (g_strcmp0 (nm_wimax_nsp_get_name (new), nm_setting_wimax_get_network_name (s_wimax)) != 0) { applet_schedule_update_icon (applet); +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (applet); +#endif /* ENABLE_INDICATOR */ + } } static void @@ -384,6 +405,9 @@ if (old == nsp) { g_object_set_data (G_OBJECT (device), ACTIVE_NSP_TAG, NULL); applet_schedule_update_icon (applet); +#ifdef ENABLE_INDICATOR + applet_schedule_update_menu (applet); +#endif /* ENABLE_INDICATOR */ } } @@ -432,15 +456,16 @@ } } -static GdkPixbuf * +static void wimax_get_icon (NMDevice *device, NMDeviceState state, NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, char **tip, NMApplet *applet) { NMSettingConnection *s_con; - GdkPixbuf *pixbuf = NULL; const char *id; NMWimaxNsp *nsp; guint32 quality = 0; @@ -474,7 +499,7 @@ break; case NM_DEVICE_STATE_ACTIVATED: roaming = (nsp_type == NM_WIMAX_NSP_NETWORK_TYPE_ROAMING_PARTNER); - pixbuf = mobile_helper_get_status_pixbuf (quality, + *out_pixbuf = mobile_helper_get_status_pixbuf (quality, TRUE, nsp_type_to_mb_state (nsp_type), MB_TECH_WIMAX, @@ -483,12 +508,11 @@ id, quality, roaming ? ", " : "", roaming ? _("roaming") : ""); + *out_indicator_icon = mobile_helper_get_quality_icon (quality, applet); break; default: break; } - - return pixbuf; } static gboolean diff -Nru network-manager-applet-0.9.4.1/src/applet-device-wimax.h network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-wimax.h --- network-manager-applet-0.9.4.1/src/applet-device-wimax.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-wimax.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/applet-device-wired.c network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-wired.c --- network-manager-applet-0.9.4.1/src/applet-device-wired.c 2012-03-19 18:40:26.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-wired.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,658 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control - * - * Dan Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2008 - 2012 Red Hat, Inc. - * (C) Copyright 2008 Novell, Inc. - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "applet.h" -#include "applet-device-wired.h" -#include "wired-dialog.h" -#include "utils.h" - -typedef struct { - NMApplet *applet; - NMDevice *device; - NMConnection *connection; -} WiredMenuItemInfo; - -static void -wired_menu_item_info_destroy (gpointer data) -{ - WiredMenuItemInfo *info = (WiredMenuItemInfo *) data; - - g_object_unref (G_OBJECT (info->device)); - if (info->connection) - g_object_unref (G_OBJECT (info->connection)); - - g_slice_free (WiredMenuItemInfo, data); -} - -#define DEFAULT_WIRED_NAME _("Auto Ethernet") - -static gboolean -wired_new_auto_connection (NMDevice *device, - gpointer dclass_data, - AppletNewAutoConnectionCallback callback, - gpointer callback_data) -{ - NMConnection *connection; - NMSettingWired *s_wired = NULL; - NMSettingConnection *s_con; - char *uuid; - - connection = nm_connection_new (); - - s_wired = NM_SETTING_WIRED (nm_setting_wired_new ()); - nm_connection_add_setting (connection, NM_SETTING (s_wired)); - - s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); - uuid = nm_utils_uuid_generate (); - g_object_set (s_con, - NM_SETTING_CONNECTION_ID, DEFAULT_WIRED_NAME, - NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRED_SETTING_NAME, - NM_SETTING_CONNECTION_AUTOCONNECT, TRUE, - NM_SETTING_CONNECTION_UUID, uuid, - NULL); - g_free (uuid); - - nm_connection_add_setting (connection, NM_SETTING (s_con)); - - (*callback) (connection, TRUE, FALSE, callback_data); - return TRUE; -} - -static void -wired_menu_item_activate (GtkMenuItem *item, gpointer user_data) -{ - WiredMenuItemInfo *info = (WiredMenuItemInfo *) user_data; - - applet_menu_item_activate_helper (info->device, - info->connection, - "/", - info->applet, - user_data); -} - - -typedef enum { - ADD_ACTIVE = 1, - ADD_INACTIVE = 2, -} AddActiveInactiveEnum; - -static void -add_connection_items (NMDevice *device, - GSList *connections, - gboolean carrier, - NMConnection *active, - AddActiveInactiveEnum flag, - GtkWidget *menu, - NMApplet *applet) -{ - GSList *iter; - WiredMenuItemInfo *info; - - for (iter = connections; iter; iter = g_slist_next (iter)) { - NMConnection *connection = NM_CONNECTION (iter->data); - GtkWidget *item; - - if (active == connection) { - if ((flag & ADD_ACTIVE) == 0) - continue; - } else { - if ((flag & ADD_INACTIVE) == 0) - continue; - } - - item = applet_new_menu_item_helper (connection, active, (flag & ADD_ACTIVE)); - gtk_widget_set_sensitive (item, carrier); - - info = g_slice_new0 (WiredMenuItemInfo); - info->applet = applet; - info->device = g_object_ref (G_OBJECT (device)); - info->connection = g_object_ref (connection); - - g_signal_connect_data (item, "activate", - G_CALLBACK (wired_menu_item_activate), - info, - (GClosureNotify) wired_menu_item_info_destroy, 0); - - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - } -} - -static void -add_default_connection_item (NMDevice *device, - gboolean carrier, - GtkWidget *menu, - NMApplet *applet) -{ - WiredMenuItemInfo *info; - GtkWidget *item; - - item = gtk_check_menu_item_new_with_label (DEFAULT_WIRED_NAME); - gtk_widget_set_sensitive (GTK_WIDGET (item), carrier); - gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); - - info = g_slice_new0 (WiredMenuItemInfo); - info->applet = applet; - info->device = g_object_ref (G_OBJECT (device)); - - g_signal_connect_data (item, "activate", - G_CALLBACK (wired_menu_item_activate), - info, - (GClosureNotify) wired_menu_item_info_destroy, 0); - - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); -} - -static void -wired_add_menu_item (NMDevice *device, - guint32 n_devices, - NMConnection *active, - GtkWidget *menu, - NMApplet *applet) -{ - char *text; - GtkWidget *item; - GSList *connections, *all; - gboolean carrier = TRUE; - - all = applet_get_all_connections (applet); - connections = nm_device_filter_connections (device, all); - g_slist_free (all); - - if (n_devices > 1) { - char *desc = NULL; - - desc = (char *) utils_get_device_description (device); - if (!desc) - desc = (char *) nm_device_get_iface (device); - g_assert (desc); - - if (g_slist_length (connections) > 1) - text = g_strdup_printf (_("Wired Networks (%s)"), desc); - else - text = g_strdup_printf (_("Wired Network (%s)"), desc); - } else { - if (g_slist_length (connections) > 1) - text = g_strdup (_("Wired Networks")); - else - text = g_strdup (_("Wired Network")); - } - - item = applet_menu_item_create_device_item_helper (device, applet, text); - g_free (text); - - /* Only dim the item if the device supports carrier detection AND - * we know it doesn't have a link. - */ - if (nm_device_get_capabilities (device) & NM_DEVICE_CAP_CARRIER_DETECT) - carrier = nm_device_ethernet_get_carrier (NM_DEVICE_ETHERNET (device)); - - gtk_widget_set_sensitive (item, FALSE); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); - - if (g_slist_length (connections)) - add_connection_items (device, connections, carrier, active, ADD_ACTIVE, menu, applet); - - /* Notify user of unmanaged or unavailable device */ - item = nma_menu_device_get_menu_item (device, applet, carrier ? NULL : _("disconnected")); - if (item) { - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); - } - - if (!nma_menu_device_check_unusable (device)) { - if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) - applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1); - - if (g_slist_length (connections)) - add_connection_items (device, connections, carrier, active, ADD_INACTIVE, menu, applet); - else - add_default_connection_item (device, carrier, menu, applet); - } - - g_slist_free (connections); -} - -static void -wired_device_state_changed (NMDevice *device, - NMDeviceState new_state, - NMDeviceState old_state, - NMDeviceStateReason reason, - NMApplet *applet) -{ - if (new_state == NM_DEVICE_STATE_ACTIVATED) { - NMConnection *connection; - NMSettingConnection *s_con = NULL; - char *str = NULL; - - connection = applet_find_active_connection_for_device (device, applet, NULL); - if (connection) { - const char *id; - s_con = nm_connection_get_setting_connection (connection); - id = s_con ? nm_setting_connection_get_id (s_con) : NULL; - if (id) - str = g_strdup_printf (_("You are now connected to '%s'."), id); - } - - applet_do_notify_with_pref (applet, - _("Connection Established"), - str ? str : _("You are now connected to the wired network."), - "nm-device-wired", - PREF_DISABLE_CONNECTED_NOTIFICATIONS); - g_free (str); - } -} - -static GdkPixbuf * -wired_get_icon (NMDevice *device, - NMDeviceState state, - NMConnection *connection, - char **tip, - NMApplet *applet) -{ - NMSettingConnection *s_con; - GdkPixbuf *pixbuf = NULL; - const char *id; - - id = nm_device_get_iface (NM_DEVICE (device)); - if (connection) { - s_con = nm_connection_get_setting_connection (connection); - id = nm_setting_connection_get_id (s_con); - } - - switch (state) { - case NM_DEVICE_STATE_PREPARE: - *tip = g_strdup_printf (_("Preparing wired network connection '%s'..."), id); - break; - case NM_DEVICE_STATE_CONFIG: - *tip = g_strdup_printf (_("Configuring wired network connection '%s'..."), id); - break; - case NM_DEVICE_STATE_NEED_AUTH: - *tip = g_strdup_printf (_("User authentication required for wired network connection '%s'..."), id); - break; - case NM_DEVICE_STATE_IP_CONFIG: - *tip = g_strdup_printf (_("Requesting a wired network address for '%s'..."), id); - break; - case NM_DEVICE_STATE_ACTIVATED: - pixbuf = nma_icon_check_and_load ("nm-device-wired", &applet->wired_icon, applet); - *tip = g_strdup_printf (_("Wired network connection '%s' active"), id); - break; - default: - break; - } - - return pixbuf ? g_object_ref (pixbuf) : NULL; -} - -/* PPPoE */ - -typedef struct { - SecretsRequest req; - - GtkWidget *dialog; - GtkEntry *username_entry; - GtkEntry *service_entry; - GtkEntry *password_entry; - GtkWidget *ok_button; -} NMPppoeInfo; - -static void -pppoe_verify (GtkEditable *editable, gpointer user_data) -{ - NMPppoeInfo *info = (NMPppoeInfo *) user_data; - const char *s; - gboolean valid = TRUE; - - s = gtk_entry_get_text (info->username_entry); - if (!s || strlen (s) < 1) - valid = FALSE; - - if (valid) { - s = gtk_entry_get_text (info->password_entry); - if (!s || strlen (s) < 1) - valid = FALSE; - } - - gtk_widget_set_sensitive (info->ok_button, valid); -} - -static void -pppoe_update_setting (NMSettingPPPOE *pppoe, NMPppoeInfo *info) -{ - const char *s; - - s = gtk_entry_get_text (info->service_entry); - if (s && strlen (s) < 1) - s = NULL; - - g_object_set (pppoe, - NM_SETTING_PPPOE_USERNAME, gtk_entry_get_text (info->username_entry), - NM_SETTING_PPPOE_PASSWORD, gtk_entry_get_text (info->password_entry), - NM_SETTING_PPPOE_SERVICE, s, - NULL); -} - -static void -pppoe_update_ui (NMConnection *connection, NMPppoeInfo *info) -{ - NMSettingPPPOE *s_pppoe; - const char *s; - - g_return_if_fail (NM_IS_CONNECTION (connection)); - g_return_if_fail (info != NULL); - - s_pppoe = nm_connection_get_setting_pppoe (connection); - g_return_if_fail (s_pppoe != NULL); - - s = nm_setting_pppoe_get_username (s_pppoe); - if (s) - gtk_entry_set_text (info->username_entry, s); - - s = nm_setting_pppoe_get_service (s_pppoe); - if (s) - gtk_entry_set_text (info->service_entry, s); - - s = nm_setting_pppoe_get_password (s_pppoe); - if (s) - gtk_entry_set_text (info->password_entry, s); -} - -static void -free_pppoe_info (SecretsRequest *req) -{ - NMPppoeInfo *info = (NMPppoeInfo *) req; - - if (info->dialog) { - gtk_widget_hide (info->dialog); - gtk_widget_destroy (info->dialog); - } -} - -static void -get_pppoe_secrets_cb (GtkDialog *dialog, gint response, gpointer user_data) -{ - SecretsRequest *req = user_data; - NMPppoeInfo *info = (NMPppoeInfo *) req; - NMSettingPPPOE *setting; - GHashTable *settings = NULL; - GHashTable *secrets; - GError *error = NULL; - - if (response != GTK_RESPONSE_OK) { - g_set_error (&error, - NM_SECRET_AGENT_ERROR, - NM_SECRET_AGENT_ERROR_USER_CANCELED, - "%s.%d (%s): canceled", - __FILE__, __LINE__, __func__); - goto done; - } - - setting = nm_connection_get_setting_pppoe (req->connection); - pppoe_update_setting (setting, info); - - secrets = nm_setting_to_hash (NM_SETTING (setting), NM_SETTING_HASH_FLAG_ONLY_SECRETS); - if (!secrets) { - g_set_error (&error, - NM_SECRET_AGENT_ERROR, - NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, - "%s.%d (%s): failed to hash setting " NM_SETTING_PPPOE_SETTING_NAME, - __FILE__, __LINE__, __func__); - } else { - /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that - * will contain all the individual settings hashes. - */ - settings = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) g_hash_table_destroy); - g_hash_table_insert (settings, NM_SETTING_PPPOE_SETTING_NAME, secrets); - } - -done: - applet_secrets_request_complete (req, settings, error); - applet_secrets_request_free (req); - - if (settings) - g_hash_table_destroy (settings); -} - -static void -show_password_toggled (GtkToggleButton *button, gpointer user_data) -{ - NMPppoeInfo *info = (NMPppoeInfo *) user_data; - - if (gtk_toggle_button_get_active (button)) - gtk_entry_set_visibility (GTK_ENTRY (info->password_entry), TRUE); - else - gtk_entry_set_visibility (GTK_ENTRY (info->password_entry), FALSE); -} - -static gboolean -pppoe_get_secrets (SecretsRequest *req, GError **error) -{ - NMPppoeInfo *info = (NMPppoeInfo *) req; - GtkWidget *w; - GtkBuilder* builder; - GError *tmp_error = NULL; - - builder = gtk_builder_new (); - - if (!gtk_builder_add_from_file (builder, UIDIR "/ce-page-dsl.ui", &tmp_error)) { - g_set_error (error, - NM_SECRET_AGENT_ERROR, - NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, - "%s.%d (%s): couldn't display secrets UI: %s", - __FILE__, __LINE__, __func__, tmp_error->message); - g_error_free (tmp_error); - return FALSE; - } - - applet_secrets_request_set_free_func (req, free_pppoe_info); - - info->username_entry = GTK_ENTRY (gtk_builder_get_object (builder, "dsl_username")); - g_signal_connect (info->username_entry, "changed", G_CALLBACK (pppoe_verify), info); - - info->service_entry = GTK_ENTRY (gtk_builder_get_object (builder, "dsl_service")); - - info->password_entry = GTK_ENTRY (gtk_builder_get_object (builder, "dsl_password")); - g_signal_connect (info->password_entry, "changed", G_CALLBACK (pppoe_verify), info); - - /* Create the dialog */ - info->dialog = gtk_dialog_new (); - gtk_window_set_title (GTK_WINDOW (info->dialog), _("DSL authentication")); - gtk_window_set_modal (GTK_WINDOW (info->dialog), TRUE); - - w = gtk_dialog_add_button (GTK_DIALOG (info->dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); - w = gtk_dialog_add_button (GTK_DIALOG (info->dialog), GTK_STOCK_OK, GTK_RESPONSE_OK); - info->ok_button = w; - - gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (info->dialog))), - GTK_WIDGET (gtk_builder_get_object (builder, "DslPage")), - TRUE, TRUE, 0); - - pppoe_update_ui (req->connection, info); - - w = GTK_WIDGET (gtk_builder_get_object (builder, "dsl_show_password")); - g_signal_connect (w, "toggled", G_CALLBACK (show_password_toggled), info); - - g_signal_connect (info->dialog, "response", G_CALLBACK (get_pppoe_secrets_cb), info); - - gtk_window_set_position (GTK_WINDOW (info->dialog), GTK_WIN_POS_CENTER_ALWAYS); - gtk_widget_realize (info->dialog); - gtk_window_present (GTK_WINDOW (info->dialog)); - - return TRUE; -} - -/* 802.1x */ - -typedef struct { - SecretsRequest req; - GtkWidget *dialog; -} NM8021xInfo; - -static void -free_8021x_info (SecretsRequest *req) -{ - NM8021xInfo *info = (NM8021xInfo *) req; - - if (info->dialog) { - gtk_widget_hide (info->dialog); - gtk_widget_destroy (info->dialog); - } -} - -static void -get_8021x_secrets_cb (GtkDialog *dialog, gint response, gpointer user_data) -{ - SecretsRequest *req = user_data; - NM8021xInfo *info = (NM8021xInfo *) req; - NMConnection *connection = NULL; - NMSetting *setting; - GError *error = NULL; - - if (response != GTK_RESPONSE_OK) { - g_set_error (&error, - NM_SECRET_AGENT_ERROR, - NM_SECRET_AGENT_ERROR_USER_CANCELED, - "%s.%d (%s): canceled", - __FILE__, __LINE__, __func__); - goto done; - } - - connection = nma_wired_dialog_get_connection (info->dialog); - if (!connection) { - g_set_error (&error, - NM_SECRET_AGENT_ERROR, - NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, - "%s.%d (%s): couldn't get connection from wired dialog.", - __FILE__, __LINE__, __func__); - goto done; - } - - setting = nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X); - if (setting) { - nm_connection_add_setting (req->connection, g_object_ref (setting)); - } else { - g_set_error (&error, - NM_SECRET_AGENT_ERROR, - NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, - "%s.%d (%s): requested setting '802-1x' didn't" - " exist in the connection.", - __FILE__, __LINE__, __func__); - } - -done: - applet_secrets_request_complete_setting (req, NM_SETTING_802_1X_SETTING_NAME, error); - applet_secrets_request_free (req); - g_clear_error (&error); -} - -static gboolean -nm_8021x_get_secrets (SecretsRequest *req, GError **error) -{ - NM8021xInfo *info = (NM8021xInfo *) req; - - applet_secrets_request_set_free_func (req, free_8021x_info); - - info->dialog = nma_wired_dialog_new (g_object_ref (req->connection)); - if (!info->dialog) { - g_set_error (error, - NM_SECRET_AGENT_ERROR, - NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, - "%s.%d (%s): couldn't display secrets UI", - __FILE__, __LINE__, __func__); - return FALSE; - } - - g_signal_connect (info->dialog, "response", G_CALLBACK (get_8021x_secrets_cb), info); - - gtk_window_set_position (GTK_WINDOW (info->dialog), GTK_WIN_POS_CENTER_ALWAYS); - gtk_widget_realize (info->dialog); - gtk_window_present (GTK_WINDOW (info->dialog)); - - return TRUE; -} - -static gboolean -wired_get_secrets (SecretsRequest *req, GError **error) -{ - NMSettingConnection *s_con; - const char *ctype; - - s_con = nm_connection_get_setting_connection (req->connection); - if (!s_con) { - g_set_error (error, - NM_SECRET_AGENT_ERROR, - NM_SECRET_AGENT_ERROR_INVALID_CONNECTION, - "%s.%d (%s): Invalid connection", - __FILE__, __LINE__, __func__); - return FALSE; - } - - ctype = nm_setting_connection_get_connection_type (s_con); - if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME)) - return nm_8021x_get_secrets (req, error); - else if (!strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) - return pppoe_get_secrets (req, error); - else { - g_set_error (error, - NM_SECRET_AGENT_ERROR, - NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, - "%s.%d (%s): unhandled wired connection type '%s'", - __FILE__, __LINE__, __func__, ctype); - } - - return FALSE; -} - -NMADeviceClass * -applet_device_wired_get_class (NMApplet *applet) -{ - NMADeviceClass *dclass; - - dclass = g_slice_new0 (NMADeviceClass); - if (!dclass) - return NULL; - - dclass->new_auto_connection = wired_new_auto_connection; - dclass->add_menu_item = wired_add_menu_item; - dclass->device_state_changed = wired_device_state_changed; - dclass->get_icon = wired_get_icon; - dclass->get_secrets = wired_get_secrets; - dclass->secrets_request_size = MAX (sizeof (NM8021xInfo), sizeof (NMPppoeInfo)); - - return dclass; -} diff -Nru network-manager-applet-0.9.4.1/src/applet-device-wired.h network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-wired.h --- network-manager-applet-0.9.4.1/src/applet-device-wired.h 2009-12-23 18:30:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-device-wired.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control - * - * Dan Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2008 Red Hat, Inc. - * (C) Copyright 2008 Novell, Inc. - */ - -#ifndef __APPLET_DEVICE_WIRED_H__ -#define __APPLET_DEVICE_WIRED_H__ - -#include "applet.h" - -NMADeviceClass *applet_device_wired_get_class (NMApplet *applet); - -#endif /* __APPLET_DEVICE_WIRED_H__ */ diff -Nru network-manager-applet-0.9.4.1/src/applet-dialogs.c network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-dialogs.c --- network-manager-applet-0.9.4.1/src/applet-dialogs.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-dialogs.c 2012-10-31 13:21:01.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -55,6 +55,7 @@ dialog = gtk_message_dialog_new_with_markup (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s\n\n%s", _("Error displaying connection information:"), err); + gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS); gtk_window_present (GTK_WINDOW (dialog)); g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); } @@ -241,8 +242,6 @@ if (!strcmp (key_mgmt, "none")) label = g_strdup (_("WEP")); - else if (!strcmp (key_mgmt, "wpa-none")) - label = g_strdup (_("WPA/WPA2")); else if (!strcmp (key_mgmt, "wpa-psk")) label = g_strdup (_("WPA/WPA2")); else @@ -468,10 +467,10 @@ /* Speed */ str = NULL; if (NM_IS_DEVICE_ETHERNET (device)) { - /* Wired speed in Mb/s */ + /* Ethernet speed in Mb/s */ speed = nm_device_ethernet_get_speed (NM_DEVICE_ETHERNET (device)); } else if (NM_IS_DEVICE_WIFI (device)) { - /* Wireless speed in Kb/s */ + /* Wi-Fi speed in Kb/s */ speed = nm_device_wifi_get_bitrate (NM_DEVICE_WIFI (device)) / 1000; label_info_new (device, @@ -639,7 +638,7 @@ if (s_ip6) method = nm_setting_ip6_config_get_method (s_ip6); - if (!method || !strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE)) { + if (method && !strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE)) { gtk_table_attach (table, create_info_label (_("Ignored"), FALSE), 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); row++; @@ -902,6 +901,7 @@ g_signal_connect (dialog, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), dialog); g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_hide), dialog); gtk_widget_realize (dialog); + gtk_window_set_position (GTK_WINDOW(dialog), GTK_WIN_POS_CENTER_ALWAYS); gtk_window_present_with_time (GTK_WINDOW (dialog), gdk_x11_get_server_time (gtk_widget_get_window (dialog))); } @@ -981,6 +981,7 @@ dialog = GTK_DIALOG (gtk_dialog_new ()); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS); gtk_window_set_title (GTK_WINDOW (dialog), _("Mobile broadband network password")); w = gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); @@ -1149,6 +1150,7 @@ g_object_set_data_full (G_OBJECT (dialog), "builder", builder, (GDestroyNotify) g_object_unref); + gtk_window_set_position (GTK_WINDOW(dialog), GTK_WIN_POS_CENTER_ALWAYS); gtk_window_set_title (GTK_WINDOW (dialog), title); widget = GTK_WIDGET (gtk_builder_get_object (builder, "header_label")); diff -Nru network-manager-applet-0.9.4.1/src/applet-dialogs.h network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-dialogs.h --- network-manager-applet-0.9.4.1/src/applet-dialogs.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-dialogs.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/applet-vpn-request.c network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-vpn-request.c --- network-manager-applet-0.9.4.1/src/applet-vpn-request.c 2012-03-19 15:50:40.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-vpn-request.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -17,7 +17,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2004 - 2011 Red Hat, Inc. + * (C) Copyright 2004 - 2012 Red Hat, Inc. */ #include @@ -43,7 +43,7 @@ #define APPLET_VPN_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), APPLET_TYPE_VPN_REQUEST, AppletVpnRequest)) #define APPLET_VPN_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), APPLET_TYPE_VPN_REQUEST, AppletVpnRequestClass)) #define APPLET_IS_VPN_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), APPLET_TYPE_VPN_REQUEST)) -#define APPLET_IS_VPN_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), APPLET_TYPE_VPN_REQUEST)) +#define APPLET_IS_VPN_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), APPLET_TYPE_VPN_REQUEST)) #define APPLET_VPN_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), APPLET_TYPE_VPN_REQUEST, AppletVpnRequestClass)) typedef struct { diff -Nru network-manager-applet-0.9.4.1/src/applet-vpn-request.h network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-vpn-request.h --- network-manager-applet-0.9.4.1/src/applet-vpn-request.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet-vpn-request.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/applet.c network-manager-applet-0.9.6.2+git201210311320.2620/src/applet.c --- network-manager-applet-0.9.4.1/src/applet.c 2012-03-23 14:14:18.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet.c 2012-10-31 13:21:01.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * Copyright (C) 2004 - 2011 Red Hat, Inc. + * Copyright (C) 2004 - 2012 Red Hat, Inc. * Copyright (C) 2005 - 2008 Novell, Inc. * * This applet used the GNOME Wireless Applet as a skeleton to build from. @@ -45,6 +45,7 @@ #include #include +#include #include #include #include @@ -64,21 +65,21 @@ #include #include -#include #include #include "applet.h" -#include "applet-device-wired.h" +#include "applet-device-ethernet.h" #include "applet-device-wifi.h" #include "applet-device-gsm.h" #include "applet-device-cdma.h" #include "applet-device-bt.h" #include "applet-device-wimax.h" #include "applet-dialogs.h" -#include "nm-wireless-dialog.h" +#include "nm-wifi-dialog.h" #include "applet-vpn-request.h" #include "utils.h" -#include "gconf-helpers.h" +#include "shell-watcher.h" +#include "nm-ui-utils.h" #define NOTIFY_CAPS_ACTIONS_KEY "actions" @@ -86,6 +87,8 @@ G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) +static gboolean is_permission_yes (NMApplet *applet, NMClientPermission perm); + /********************************************************************/ /* Temporary dbus interface stuff */ @@ -96,7 +99,7 @@ g_set_error_literal (error, NM_SECRET_AGENT_ERROR, NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, - "Failed to create wireless dialog"); + "Failed to create Wi-Fi dialog"); return FALSE; } @@ -110,7 +113,7 @@ g_set_error_literal (error, NM_SECRET_AGENT_ERROR, NM_SECRET_AGENT_ERROR_NOT_AUTHORIZED, - "Creation of wifi networks has been disabled by system policy."); + "Creation of Wi-Fi networks has been disabled by system policy."); return FALSE; } @@ -118,7 +121,7 @@ g_set_error_literal (error, NM_SECRET_AGENT_ERROR, NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, - "Failed to create wireless dialog"); + "Failed to create Wi-Fi dialog"); return FALSE; } @@ -166,7 +169,7 @@ g_set_error_literal (error, NM_SECRET_AGENT_ERROR, NM_SECRET_AGENT_ERROR_INTERNAL_ERROR, - "Failed to create wireless dialog"); + "Failed to create Wi-Fi dialog"); return FALSE; } @@ -210,6 +213,78 @@ /********************************************************************/ +static inline NMADeviceClass * +get_device_class (NMDevice *device, NMApplet *applet) +{ + g_return_val_if_fail (device != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + if (NM_IS_DEVICE_ETHERNET (device)) + return applet->ethernet_class; + else if (NM_IS_DEVICE_WIFI (device)) + return applet->wifi_class; + else if (NM_IS_DEVICE_MODEM (device)) { + NMDeviceModemCapabilities caps; + + caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); + if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + return applet->gsm_class; + else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + return applet->cdma_class; + else + g_message ("%s: unhandled modem capabilities 0x%X", __func__, caps); + } else if (NM_IS_DEVICE_BT (device)) + return applet->bt_class; + else if (NM_IS_DEVICE_WIMAX (device)) + return applet->wimax_class; + else + g_debug ("%s: Unknown device type '%s'", __func__, G_OBJECT_TYPE_NAME (device)); + return NULL; +} + +static inline NMADeviceClass * +get_device_class_from_connection (NMConnection *connection, NMApplet *applet) +{ + NMSettingConnection *s_con; + const char *ctype; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (applet != NULL, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + ctype = nm_setting_connection_get_connection_type (s_con); + g_return_val_if_fail (ctype != NULL, NULL); + + if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME) || !strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) + return applet->ethernet_class; + else if (!strcmp (ctype, NM_SETTING_WIRELESS_SETTING_NAME)) + return applet->wifi_class; + else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME)) + return applet->gsm_class; + else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME)) + return applet->cdma_class; + else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) + return applet->bt_class; + else + g_warning ("%s: unhandled connection type '%s'", __func__, ctype); + return NULL; +} + +struct _OfflineNotificationContextInfo { + NMState state; + NMDeviceState device_state; + NMDeviceStateReason device_state_reason; + NMDeviceType device_type; + gchar* title; + const gchar* text; + const gchar* icon; + NotifyUrgency urgency; +}; + +typedef struct _OfflineNotificationContextInfo OfflineNotificationContextInfo; + static NMActiveConnection * applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) { @@ -236,6 +311,9 @@ continue; candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + if (!best_dev) { best_dev = candidate_dev; best = candidate; @@ -292,20 +370,25 @@ connections = nm_client_get_active_connections (applet->nm_client); for (i = 0; connections && (i < connections->len); i++) { NMActiveConnection *candidate = g_ptr_array_index (connections, i); + NMDevice *candidate_dev; const GPtrArray *devices; devices = nm_active_connection_get_devices (candidate); if (!devices || !devices->len) continue; + candidate_dev = g_ptr_array_index (devices, 0); + if (!get_device_class (candidate_dev, applet)) + continue; + if (nm_active_connection_get_default (candidate)) { if (!default_ac) { - *device = g_ptr_array_index (devices, 0); + *device = candidate_dev; default_ac = candidate; } } else { if (!non_default_ac) { - non_default_device = g_ptr_array_index (devices, 0); + non_default_device = candidate_dev; non_default_ac = candidate; } } @@ -330,7 +413,23 @@ GSList * applet_get_all_connections (NMApplet *applet) { - return nm_remote_settings_list_connections (applet->settings); + GSList *connections, *iter, *next; + NMConnection *connection; + NMSettingConnection *s_con; + + connections = nm_remote_settings_list_connections (applet->settings); + + /* Ignore slave connections */ + for (iter = connections; iter; iter = next) { + connection = iter->data; + next = iter->next; + + s_con = nm_connection_get_setting_connection (connection); + if (s_con && nm_setting_connection_get_master (s_con)) + connections = g_slist_delete_link (connections, iter); + } + + return connections; } static NMConnection * @@ -398,65 +497,6 @@ return NULL; } -static inline NMADeviceClass * -get_device_class (NMDevice *device, NMApplet *applet) -{ - g_return_val_if_fail (device != NULL, NULL); - g_return_val_if_fail (applet != NULL, NULL); - - if (NM_IS_DEVICE_ETHERNET (device)) - return applet->wired_class; - else if (NM_IS_DEVICE_WIFI (device)) - return applet->wifi_class; - else if (NM_IS_DEVICE_MODEM (device)) { - NMDeviceModemCapabilities caps; - - caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); - if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) - return applet->gsm_class; - else if (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) - return applet->cdma_class; - else - g_message ("%s: unhandled modem capabilities 0x%X", __func__, caps); - } else if (NM_IS_DEVICE_BT (device)) - return applet->bt_class; - else if (NM_IS_DEVICE_WIMAX (device)) - return applet->wimax_class; - else - g_message ("%s: Unknown device type '%s'", __func__, G_OBJECT_TYPE_NAME (device)); - return NULL; -} - -static inline NMADeviceClass * -get_device_class_from_connection (NMConnection *connection, NMApplet *applet) -{ - NMSettingConnection *s_con; - const char *ctype; - - g_return_val_if_fail (connection != NULL, NULL); - g_return_val_if_fail (applet != NULL, NULL); - - s_con = nm_connection_get_setting_connection (connection); - g_return_val_if_fail (s_con != NULL, NULL); - - ctype = nm_setting_connection_get_connection_type (s_con); - g_return_val_if_fail (ctype != NULL, NULL); - - if (!strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME) || !strcmp (ctype, NM_SETTING_PPPOE_SETTING_NAME)) - return applet->wired_class; - else if (!strcmp (ctype, NM_SETTING_WIRELESS_SETTING_NAME)) - return applet->wifi_class; - else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME)) - return applet->gsm_class; - else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME)) - return applet->cdma_class; - else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) - return applet->bt_class; - else - g_warning ("%s: unhandled connection type '%s'", __func__, ctype); - return NULL; -} - typedef struct { NMApplet *applet; NMDevice *device; @@ -485,6 +525,8 @@ GError *error, gpointer user_data) { + NMApplet *applet = NM_APPLET (user_data); + if (error) { const char *text = _("Failed to add/activate connection"); char *err_text = g_strdup_printf ("(%d) %s", error->code, @@ -495,7 +537,8 @@ g_free (err_text); } - applet_schedule_update_icon (NM_APPLET (user_data)); + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); } static void @@ -529,6 +572,8 @@ static void disconnect_cb (NMDevice *device, GError *error, gpointer user_data) { + NMApplet *applet = NM_APPLET (user_data); + if (error) { const char *text = _("Device disconnect failed"); char *err_text = g_strdup_printf ("(%d) %s", error->code, @@ -538,6 +583,9 @@ utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); g_free (err_text); } + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); } void @@ -546,7 +594,7 @@ { g_return_if_fail (NM_IS_DEVICE (device)); - nm_device_disconnect (device, disconnect_cb, NULL); + nm_device_disconnect (device, disconnect_cb, applet); } static void @@ -619,14 +667,17 @@ const gchar* label, int pos) { - GtkWidget *menu_item = gtk_image_menu_item_new (); + GtkWidget *menu_item = NULL; +#ifndef ENABLE_INDICATOR #if GTK_CHECK_VERSION(3,1,6) - GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); #else GtkWidget *box = gtk_hbox_new (FALSE, 0); #endif GtkWidget *xlabel = NULL; + menu_item = gtk_image_menu_item_new (); + if (label) { xlabel = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (xlabel), label); @@ -649,6 +700,9 @@ "child", box, "sensitive", FALSE, NULL); +#else + menu_item = gtk_separator_menu_item_new (); +#endif /* ENABLE_INDICATOR */ if (pos < 0) gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); else @@ -663,10 +717,13 @@ { GtkWidget *item; NMSettingConnection *s_con; +#ifndef ENABLE_INDICATOR char *markup; GtkWidget *label; +#endif /* ENABLE_INDICATOR */ s_con = nm_connection_get_setting_connection (connection); +#ifndef ENABLE_INDICATOR item = gtk_image_menu_item_new_with_label (""); if (add_active && (active == connection)) { /* Pure evil */ @@ -679,9 +736,13 @@ gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); +#else + item = gtk_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); +#endif /* ENABLE_INDICATOR */ return item; } +#ifndef ENABLE_INDICATOR #define TITLE_TEXT_R ((double) 0x5e / 255.0 ) #define TITLE_TEXT_G ((double) 0x5e / 255.0 ) #define TITLE_TEXT_B ((double) 0x5e / 255.0 ) @@ -786,6 +847,8 @@ } #endif +#endif /* ENABLE_INDICATOR */ + GtkWidget * applet_menu_item_create_device_item_helper (NMDevice *device, NMApplet *applet, @@ -795,25 +858,16 @@ item = gtk_menu_item_new_with_mnemonic (text); gtk_widget_set_sensitive (item, FALSE); +#ifndef ENABLE_INDICATOR #if GTK_CHECK_VERSION(2,90,7) g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL); #else g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); #endif +#endif /* ENABLE_INDICATOR */ return item; } -static void -applet_clear_notify (NMApplet *applet) -{ - if (applet->notification == NULL) - return; - - notify_notification_close (applet->notification, NULL); - g_object_unref (applet->notification); - applet->notification = NULL; -} - static gboolean applet_notify_server_has_actions (void) { @@ -857,22 +911,40 @@ g_return_if_fail (summary != NULL); g_return_if_fail (message != NULL); +#ifndef ENABLE_INDICATOR if (!gtk_status_icon_is_embedded (applet->status_icon)) +#else + if (!gtk_status_icon_is_embedded (applet->status_icon) && + app_indicator_get_status (applet->app_indicator) == APP_INDICATOR_STATUS_PASSIVE) +#endif /* ENABLE_INDICATOR */ return; - applet_clear_notify (applet); + /* if we're not registered, don't notify either */ + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + return; escaped = utils_escape_notify_message (message); - notify = notify_notification_new (summary, - escaped, - icon ? icon : GTK_STOCK_NETWORK + + if (applet->notification == NULL) { + notify = notify_notification_new (summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK #if HAVE_LIBNOTIFY_07 - ); + ); #else - , NULL); + , NULL); #endif + + applet->notification = notify; + } else { + notify = applet->notification; + notify_notification_update (notify, + summary, + escaped, + icon ? icon : GTK_STOCK_NETWORK); + } + g_free (escaped); - applet->notification = notify; #if HAVE_LIBNOTIFY_07 notify_notification_set_hint (notify, "transient", g_variant_new_boolean (TRUE)); @@ -883,6 +955,7 @@ notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT); if (applet_notify_server_has_actions () && action1) { + notify_notification_clear_actions (notify); notify_notification_add_action (notify, action1, action1_label, action1_cb, action1_user_data, NULL); } @@ -909,7 +982,7 @@ && strcmp (id, PREF_DISABLE_VPN_NOTIFICATIONS)) return; - gconf_client_set_bool (applet->gconf_client, id, TRUE, NULL); + g_settings_set_boolean (applet->gsettings, id, TRUE); } void applet_do_notify_with_pref (NMApplet *applet, @@ -918,7 +991,7 @@ const char *icon, const char *pref) { - if (gconf_client_get_bool (applet->gconf_client, pref, NULL)) + if (g_settings_get_boolean (applet->gsettings, pref)) return; applet_do_notify (applet, NOTIFY_URGENCY_LOW, summary, message, icon, pref, @@ -1096,9 +1169,9 @@ case NM_VPN_CONNECTION_STATE_ACTIVATED: banner = nm_vpn_connection_get_banner (vpn); if (banner && strlen (banner)) - msg = g_strdup_printf ("VPN connection has been successfully established.\n\n%s\n", banner); + msg = g_strdup_printf (_("VPN connection has been successfully established.\n\n%s\n"), banner); else - msg = g_strdup ("VPN connection has been successfully established.\n"); + msg = g_strdup (_("VPN connection has been successfully established.\n")); title = _("VPN Login Message"); applet_do_notify_with_pref (applet, title, msg, "gnome-lockscreen", @@ -1131,6 +1204,7 @@ clear_animation_timeout (applet); applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); } static const char * @@ -1186,10 +1260,13 @@ } applet_schedule_update_icon (info->applet); + applet_schedule_update_menu (info->applet); g_free (info->vpn_name); g_free (info); } +static void nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data); + static void nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) { @@ -1212,9 +1289,14 @@ return; } - if (applet_get_active_for_connection (applet, connection)) + if (applet_get_active_for_connection (applet, connection)) { +#ifndef ENABLE_INDICATOR /* Connection already active; do nothing */ +#else + nma_menu_disconnect_vpn_item_activate (item, applet); +#endif /* ENABLE_INDICATOR */ return; + } s_con = nm_connection_get_setting_connection (connection); info = g_malloc0 (sizeof (VPNActivateInfo)); @@ -1347,16 +1429,11 @@ GType bb_type = G_OBJECT_TYPE (G_OBJECT (bb)); if (aa_type == bb_type) { - char *aa_desc = NULL; - char *bb_desc = NULL; + const char *aa_desc = NULL; + const char *bb_desc = NULL; - aa_desc = (char *) utils_get_device_description (aa); - if (!aa_desc) - aa_desc = (char *) nm_device_get_iface (aa); - - bb_desc = (char *) utils_get_device_description (bb); - if (!bb_desc) - bb_desc = (char *) nm_device_get_iface (bb); + aa_desc = nma_utils_get_device_description (aa); + bb_desc = nma_utils_get_device_description (bb); return g_strcmp0 (aa_desc, bb_desc); } @@ -1527,7 +1604,18 @@ G_CALLBACK (applet_device_disconnect_db), info, (GClosureNotify) applet_device_info_destroy, 0); - gtk_widget_set_sensitive (item, TRUE); + if (is_permission_yes (applet, NM_CLIENT_PERMISSION_NETWORK_CONTROL)) + gtk_widget_set_sensitive (item, TRUE); + else { + gtk_widget_set_sensitive (item, FALSE); + if (applet->hide_policy_items) { + /* TODO: is this the final solution? */ + g_object_ref_sink (item); + g_object_unref (item); + item = NULL; /* it's safe for this function to return NULL as all the + callers are handling it properly */ + } + } break; } default: @@ -1550,7 +1638,7 @@ GSList *devices = NULL, *iter = NULL; gint n_wifi_devices = 0; gint n_usable_wifi_devices = 0; - gint n_wired_devices = 0; + gint n_ethernet_devices = 0; gint n_mb_devices = 0; gint n_bt_devices = 0; int i; @@ -1572,14 +1660,14 @@ && (nm_device_get_state (device) >= NM_DEVICE_STATE_DISCONNECTED)) n_usable_wifi_devices++; } else if (NM_IS_DEVICE_ETHERNET (device)) - n_wired_devices++; + n_ethernet_devices++; else if (NM_IS_DEVICE_MODEM (device)) n_mb_devices++; else if (NM_IS_DEVICE_BT (device)) n_bt_devices++; } - if (!n_wired_devices && !n_wifi_devices && !n_mb_devices && !n_bt_devices) { + if (!n_ethernet_devices && !n_wifi_devices && !n_mb_devices && !n_bt_devices) { nma_menu_add_text_item (menu, _("No network devices available")); goto out; } @@ -1598,7 +1686,7 @@ if (NM_IS_DEVICE_WIFI (device)) n_devices = n_wifi_devices; else if (NM_IS_DEVICE_ETHERNET (device)) - n_devices = n_wired_devices; + n_devices = n_ethernet_devices; else if (NM_IS_DEVICE_MODEM (device)) n_devices = n_mb_devices; @@ -1607,13 +1695,15 @@ dclass = get_device_class (device, applet); if (dclass) dclass->add_menu_item (device, n_devices, active, menu, applet); + + nma_menu_add_separator_item (menu); } out: g_slist_free (devices); /* Return # of usable wifi devices here for correct enable/disable state - * of things like Enable Wireless, "Connect to other..." and such. + * of things like Enable Wi-Fi, "Connect to other..." and such. */ return n_usable_wifi_devices; } @@ -1663,8 +1753,8 @@ GtkMenuItem *item; GSList *list, *iter; int num_vpn_active = 0; - - nma_menu_add_separator_item (menu); + gboolean configure_allowed; + gboolean disconnect_allowed; vpn_menu = GTK_MENU (gtk_menu_new ()); @@ -1684,13 +1774,20 @@ NMConnection *connection = NM_CONNECTION (iter->data); NMActiveConnection *active; const char *name; +#ifndef ENABLE_INDICATOR GtkWidget *image; +#endif /* ENABLE_INDICATOR */ NMState state; name = get_connection_id (connection); +#ifndef ENABLE_INDICATOR item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); +#else + item = GTK_MENU_ITEM (gtk_check_menu_item_new_with_label (name)); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(item), FALSE); +#endif /* ENABLE_INDICATOR */ /* If no VPN connections are active, draw all menu items enabled. If * >= 1 VPN connections are active, only the active VPN menu item is @@ -1709,8 +1806,12 @@ gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); if (active) { +#ifndef ENABLE_INDICATOR image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); +#else + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(item), TRUE); +#endif /* ENABLE_INDICATOR */ } g_object_set_data_full (G_OBJECT (item), "connection", @@ -1721,26 +1822,66 @@ gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); } + if ( is_permission_yes (applet, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM) + || is_permission_yes (applet, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN)) + configure_allowed = TRUE; + else + configure_allowed = FALSE; + + if (is_permission_yes (applet, NM_CLIENT_PERMISSION_NETWORK_CONTROL)) + disconnect_allowed = TRUE; + else + disconnect_allowed = FALSE; + + /* Draw a seperator, but only if we have VPN connections above it */ if (list) - nma_menu_add_separator_item (GTK_WIDGET (vpn_menu)); + if ( !applet->hide_policy_items + || configure_allowed + || disconnect_allowed) + nma_menu_add_separator_item (GTK_WIDGET (vpn_menu)); /* separator is added if there + will be items under it */ item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Configure VPN..."))); g_signal_connect (item, "activate", G_CALLBACK (nma_menu_configure_vpn_item_activate), applet); - gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + if (configure_allowed) { + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } else { + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + if (!applet->hide_policy_items) { + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } else { + /* TODO: is this the final solution? */ + g_object_ref_sink (item); + g_object_unref (item); + } + } item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_Disconnect VPN"))); g_signal_connect (item, "activate", G_CALLBACK (nma_menu_disconnect_vpn_item_activate), applet); - gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); - if (num_vpn_active == 0) + if (disconnect_allowed) { + gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); + if (num_vpn_active == 0) + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + } else { gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + if (!applet->hide_policy_items) + gtk_menu_shell_append (GTK_MENU_SHELL (vpn_menu), GTK_WIDGET (item)); + else { + /* TODO: is this the final solution? */ + g_object_ref_sink (item); + g_object_unref (item); + } + } g_slist_free (list); } static void -nma_set_wireless_enabled_cb (GtkWidget *widget, NMApplet *applet) +nma_set_wifi_enabled_cb (GtkWidget *widget, NMApplet *applet) { gboolean state; @@ -1784,6 +1925,7 @@ } +#ifndef ENABLE_INDICATOR static void nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) { @@ -1793,33 +1935,32 @@ state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); - gconf_client_set_bool (applet->gconf_client, - PREF_DISABLE_CONNECTED_NOTIFICATIONS, - !state, - NULL); - gconf_client_set_bool (applet->gconf_client, - PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, - !state, - NULL); - gconf_client_set_bool (applet->gconf_client, - PREF_DISABLE_VPN_NOTIFICATIONS, - !state, - NULL); - gconf_client_set_bool (applet->gconf_client, - PREF_SUPPRESS_WIRELESS_NETWORKS_AVAILABLE, - !state, - NULL); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_CONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_DISABLE_VPN_NOTIFICATIONS, + !state); + g_settings_set_boolean (applet->gsettings, + PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE, + !state); } +#endif /* ENABLE_INDICATOR */ /* * nma_menu_show_cb * - * Pop up the wireless networks menu + * Pop up the wifi networks menu * */ static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet) { - guint32 n_wireless; + guint32 n_wifi; + guint n_children; + GList *children = NULL; g_return_if_fail (menu != NULL); g_return_if_fail (applet != NULL); @@ -1836,17 +1977,27 @@ return; } - n_wireless = nma_menu_add_devices (menu, applet); + n_wifi = nma_menu_add_devices (menu, applet); - nma_menu_add_vpn_submenu (menu, applet); + if (n_wifi > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { + children = gtk_container_get_children (GTK_CONTAINER (menu)); + n_children = g_list_length (children); + g_list_free (children); - if (n_wireless > 0 && nm_client_wireless_get_enabled (applet->nm_client)) { - /* Add the "Hidden wireless network..." entry */ - nma_menu_add_separator_item (menu); + /* Add the "Hidden Wi-Fi network..." entry */ nma_menu_add_hidden_network_item (menu, applet); nma_menu_add_create_network_item (menu, applet); + + children = gtk_container_get_children (GTK_CONTAINER (menu)); + if (g_list_length (children) > n_children) { + /* items were added. Add a separator */ + /* TODO: see TODO comments in the above add_*_network_item functions */ + nma_menu_add_separator_item (menu); + } + g_list_free (children); } + nma_menu_add_vpn_submenu (menu, applet); gtk_widget_show_all (menu); // nmi_dbus_signal_user_interface_activated (applet->connection); @@ -1892,13 +2043,15 @@ { NMState state; gboolean net_enabled = TRUE; - gboolean have_wireless = FALSE; + gboolean have_wifi = FALSE; gboolean have_wwan = FALSE; gboolean have_wimax = FALSE; - gboolean wireless_hw_enabled; + gboolean wifi_hw_enabled; gboolean wwan_hw_enabled; gboolean wimax_hw_enabled; +#ifndef ENABLE_INDICATOR gboolean notifications_enabled = TRUE; +#endif /* ENABLE_INDICATOR */ gboolean sensitive = FALSE; state = nm_client_get_state (applet->nm_client); @@ -1922,7 +2075,7 @@ gtk_widget_set_sensitive (applet->networking_enabled_item, is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK)); - /* Enabled Wireless */ + /* Enabled Wi-Fi */ g_signal_handler_block (G_OBJECT (applet->wifi_enabled_item), applet->wifi_enabled_toggled_id); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->wifi_enabled_item), @@ -1930,9 +2083,9 @@ g_signal_handler_unblock (G_OBJECT (applet->wifi_enabled_item), applet->wifi_enabled_toggled_id); - wireless_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); + wifi_hw_enabled = nm_client_wireless_hardware_get_enabled (applet->nm_client); gtk_widget_set_sensitive (GTK_WIDGET (applet->wifi_enabled_item), - wireless_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI)); + wifi_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI)); /* Enabled Mobile Broadband */ g_signal_handler_block (G_OBJECT (applet->wwan_enabled_item), @@ -1958,19 +2111,21 @@ gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); +#ifndef ENABLE_INDICATOR /* Enabled notifications */ g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), applet->notifications_enabled_toggled_id); - if ( gconf_client_get_bool (applet->gconf_client, PREF_DISABLE_CONNECTED_NOTIFICATIONS, NULL) - && gconf_client_get_bool (applet->gconf_client, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, NULL) - && gconf_client_get_bool (applet->gconf_client, PREF_DISABLE_VPN_NOTIFICATIONS, NULL) - && gconf_client_get_bool (applet->gconf_client, PREF_SUPPRESS_WIRELESS_NETWORKS_AVAILABLE, NULL)) + if ( g_settings_get_boolean (applet->gsettings, PREF_DISABLE_CONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_DISABLE_VPN_NOTIFICATIONS) + && g_settings_get_boolean (applet->gsettings, PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE)) notifications_enabled = FALSE; gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), applet->notifications_enabled_toggled_id); +#endif /* ENABLE_INDICATOR */ - /* Don't show wifi-specific stuff if wireless is off */ + /* Don't show wifi-specific stuff if wifi is off */ if (state != NM_STATE_ASLEEP) { const GPtrArray *devices; int i; @@ -1980,7 +2135,7 @@ NMDevice *candidate = g_ptr_array_index (devices, i); if (NM_IS_DEVICE_WIFI (candidate)) - have_wireless = TRUE; + have_wifi = TRUE; else if (NM_IS_DEVICE_MODEM (candidate)) have_wwan = TRUE; else if (NM_IS_DEVICE_WIMAX (candidate)) @@ -1988,7 +2143,7 @@ } } - if (have_wireless) + if (have_wifi) gtk_widget_show_all (applet->wifi_enabled_item); else gtk_widget_hide (applet->wifi_enabled_item); @@ -2002,6 +2157,21 @@ gtk_widget_show_all (applet->wimax_enabled_item); else gtk_widget_hide (applet->wimax_enabled_item); + + if (is_permission_yes (applet, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM) + || is_permission_yes (applet, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN) + || is_permission_yes (applet, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_HOSTNAME)) { + + /* User has permissions to modify some of the settings. */ + gtk_widget_set_sensitive (applet->connections_menu_item, TRUE); + + } else { + /* the user is not allowed to edit any of the settings, + * so set the "Edit Connections..." menu item insensitive. + */ + gtk_widget_set_sensitive (applet->connections_menu_item, FALSE); + gtk_widget_set_visible (applet->connections_menu_item, !applet->hide_policy_items); + } } static void @@ -2041,16 +2211,20 @@ * Generate the contextual popup menu. * */ -static GtkWidget *nma_context_menu_create (NMApplet *applet) +static GtkWidget *nma_context_menu_create (NMApplet *applet, GtkMenuShell *menu) { +#ifndef ENABLE_INDICATOR GtkMenuShell *menu; GtkWidget *menu_item; +#endif GtkWidget *image; guint id; g_return_val_if_fail (applet != NULL, NULL); +#ifndef ENABLE_INDICATOR menu = GTK_MENU_SHELL (gtk_menu_new ()); +#endif /* 'Enable Networking' item */ applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); @@ -2061,11 +2235,11 @@ applet->networking_enabled_toggled_id = id; gtk_menu_shell_append (menu, applet->networking_enabled_item); - /* 'Enable Wireless' item */ - applet->wifi_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Wireless")); + /* 'Enable Wi-Fi' item */ + applet->wifi_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Wi-Fi")); id = g_signal_connect (applet->wifi_enabled_item, "toggled", - G_CALLBACK (nma_set_wireless_enabled_cb), + G_CALLBACK (nma_set_wifi_enabled_cb), applet); applet->wifi_enabled_toggled_id = id; gtk_menu_shell_append (menu, applet->wifi_enabled_item); @@ -2090,6 +2264,7 @@ nma_menu_add_separator_item (GTK_WIDGET (menu)); +#ifndef ENABLE_INDICATOR /* Toggle notifications item */ applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); id = g_signal_connect (applet->notifications_enabled_item, @@ -2100,6 +2275,7 @@ gtk_menu_shell_append (menu, applet->notifications_enabled_item); nma_menu_add_separator_item (GTK_WIDGET (menu)); +#endif /* ENABLE_INDICATOR */ /* 'Connection Information' item */ applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); @@ -2121,6 +2297,7 @@ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); gtk_menu_shell_append (menu, applet->connections_menu_item); +#ifndef ENABLE_INDICATOR /* Separator */ nma_menu_add_separator_item (GTK_WIDGET (menu)); @@ -2140,25 +2317,112 @@ image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); gtk_menu_shell_append (menu, menu_item); +#endif /* ENABLE_INDICATOR */ gtk_widget_show_all (GTK_WIDGET (menu)); return GTK_WIDGET (menu); } +#ifdef ENABLE_INDICATOR +static void +indicator_update_menu (NMApplet *applet) +{ + if (!applet->in_fallback) { + if (applet->menu) + g_object_unref (applet->menu); + + applet->menu = gtk_menu_new (); + g_object_ref_sink (G_OBJECT (applet->menu)); + nma_menu_show_cb (applet->menu, applet); + nma_menu_add_separator_item (applet->menu); + applet->menu = nma_context_menu_create (applet, GTK_MENU_SHELL(applet->menu)); + + app_indicator_set_menu (applet->app_indicator, GTK_MENU (applet->menu)); + + nma_context_menu_update (applet); + } + + applet->update_menu_id = 0; +} + +static gboolean +applet_update_indicator_menu (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + indicator_update_menu (applet); + + return FALSE; +} + +void +applet_schedule_update_menu (NMApplet *applet) +{ + if (!applet->update_menu_id) + applet->update_menu_id = g_idle_add (applet_update_indicator_menu, applet); +} + +static void +new_connection_cb (NMRemoteSettings *settings, NMRemoteConnection *connection, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + //if (nm_connection_is_type (NM_CONNECTION (connection), NM_SETTING_VPN_SETTING_NAME)) + applet_schedule_update_menu (applet); +} +#endif /* ENABLE_INDICATOR */ + /*****************************************************************************/ static void -foo_set_icon (NMApplet *applet, GdkPixbuf *pixbuf, guint32 layer) +foo_set_icon (NMApplet *applet, guint32 layer, GdkPixbuf *pixbuf, char *icon_name, char *new_tip) { + GString *tip = NULL; int i; - if (layer > ICON_LAYER_MAX) { - g_warning ("Tried to icon to invalid layer %d", layer); - return; + switch (layer) { + case ICON_LAYER_LINK: + if (new_tip == NULL) + new_tip = g_strdup (_("No network connection")); + tip = g_string_new (new_tip); + break; + case ICON_LAYER_VPN: + tip = g_string_new (applet->tip); + + if (new_tip) + g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", new_tip); + break; + default: + tip = g_string_new (""); + if (layer > ICON_LAYER_MAX) { + g_string_free (tip, TRUE); + g_warning ("Tried to icon to invalid layer %d", layer); + return; + } + break; } + if (tip->len) { + g_free (applet->tip); + applet->tip = tip->str; + } + + g_free (new_tip); + g_string_free (tip, FALSE); + +#ifdef ENABLE_INDICATOR + if (icon_name == NULL && layer == ICON_LAYER_LINK) { + icon_name = g_strdup ("nm-no-connection"); + } + + if (icon_name != NULL && + g_strcmp0 (app_indicator_get_icon (applet->app_indicator), icon_name) != 0) { + app_indicator_set_icon_full (applet->app_indicator, icon_name, applet->tip); + } +#endif /* ENABLE_INDICATOR */ + /* Ignore setting of the same icon as is already displayed */ if (applet->icon_layers[layer] == pixbuf) return; @@ -2192,8 +2456,13 @@ gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); g_object_unref (pixbuf); -} +#if GTK_CHECK_VERSION(2, 15, 0) + gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); +#else + gtk_status_icon_set_tooltip (applet->status_icon, applet->tip); +#endif +} NMRemoteConnection * applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) @@ -2227,6 +2496,64 @@ return NULL; } +static gboolean +select_merged_notification_text (OfflineNotificationContextInfo *info) +{ + info->urgency = NOTIFY_URGENCY_LOW; + /* only do something if this is about full offline state */ + if(info->state != NM_STATE_UNKNOWN || info->device_state != NM_DEVICE_STATE_UNKNOWN) { + info->urgency = NOTIFY_URGENCY_NORMAL; + if (!info->title) + info->title = g_strdup (_("Network")); + if (info->state == NM_STATE_DISCONNECTED || info->state == NM_STATE_ASLEEP) { + info->text = _("Disconnected - you are now offline"); + } else + info->text = _("Disconnected"); + + switch (info->device_type) { + case NM_DEVICE_TYPE_ETHERNET: + info->icon = "notification-network-ethernet-disconnected"; + break; + case NM_DEVICE_TYPE_WIFI: + info->icon = "notification-network-wireless-disconnected"; + break; + case NM_DEVICE_TYPE_MODEM: + info->icon = "notification-gsm-disconnected"; + break; + default: + info->icon = "notification-network-disconnected"; + break; + } + g_debug("going for offline with icon: %s", info->icon); + return TRUE; + } + return FALSE; +} + +static gboolean +foo_online_offline_deferred_notify (gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if(select_merged_notification_text (info)) + if (!g_settings_get_boolean (applet->gsettings, PREF_DISABLE_DISCONNECTED_NOTIFICATIONS)) + applet_do_notify (applet, info->urgency, info->title, + info->text, info->icon, + PREF_DISABLE_DISCONNECTED_NOTIFICATIONS, + _("Don't show this message again"), + notify_dont_show_cb, + applet); + else + g_debug("no notification because merged found that we have nothing to say (e.g. not offline)"); + if (info->title) + g_free (info->title); + info->title = NULL; + g_free (applet->notification_queue_data); + applet->notification_queue_data = NULL; + applet->deferred_id = 0; + return FALSE; +} + static void applet_common_device_state_changed (NMDevice *device, NMDeviceState new_state, @@ -2240,6 +2567,54 @@ vpn_activating = applet_is_any_vpn_activating (applet); switch (new_state) { + case NM_DEVICE_STATE_FAILED: + case NM_DEVICE_STATE_DISCONNECTED: + case NM_DEVICE_STATE_UNMANAGED: + case NM_DEVICE_STATE_UNAVAILABLE: + { + if (old_state != NM_DEVICE_STATE_FAILED && + old_state != NM_DEVICE_STATE_UNKNOWN && + old_state != NM_DEVICE_STATE_DISCONNECTED && + old_state != NM_DEVICE_STATE_UNMANAGED && + old_state != NM_DEVICE_STATE_UNAVAILABLE) { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->device_state = new_state; + info->device_state_reason = reason; + if (info->title) { + g_free(info->title); + info->title = NULL; + } + if (NM_IS_DEVICE_WIFI (device)) { + info->device_type = NM_DEVICE_TYPE_WIFI; + info->title = g_strdup(g_object_get_data (G_OBJECT(device), "canonical-last-essid")); + if (!info->title) + info->title = g_strdup (_("Wireless network")); + } else if (NM_IS_DEVICE_ETHERNET (device)) { + info->device_type = NM_DEVICE_TYPE_ETHERNET; + info->title = g_strdup(_("Wired network")); + } else if (NM_IS_DEVICE_MODEM (device)) { + info->device_type = NM_DEVICE_TYPE_MODEM; + info->title = g_strdup (_("Modem network")); + } else { + info->device_type = NM_DEVICE_TYPE_UNKNOWN; + info->title = g_strdup (_("Network")); + } + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + + clear_animation_timeout (applet); + } else { + g_debug ("old state indicates that this was not a disconnect %d", old_state); + } + break; + } case NM_DEVICE_STATE_PREPARE: case NM_DEVICE_STATE_CONFIG: case NM_DEVICE_STATE_NEED_AUTH: @@ -2280,6 +2655,7 @@ applet_common_device_state_changed (device, new_state, old_state, reason, applet); applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); } static void @@ -2289,7 +2665,8 @@ NMADeviceClass *dclass; dclass = get_device_class (device, applet); - g_return_if_fail (dclass != NULL); + if (!dclass) + return; if (dclass->device_added) dclass->device_added (device, applet); @@ -2310,20 +2687,45 @@ { NMApplet *applet = NM_APPLET (user_data); + g_debug("foo_client_state_changed_cb"); switch (nm_client_get_state (client)) { case NM_STATE_DISCONNECTED: - applet_do_notify_with_pref (applet, _("Disconnected"), - _("The network connection has been disconnected."), - "nm-no-connection", - PREF_DISABLE_DISCONNECTED_NOTIFICATIONS); + case NM_STATE_ASLEEP: + { + OfflineNotificationContextInfo *info = applet->notification_queue_data; + if (!info) { + info = g_new0(OfflineNotificationContextInfo, 1); + applet->notification_queue_data = info; + } + + info->state = nm_client_get_state (client); + select_merged_notification_text (info); + + if (applet->deferred_id) + g_source_remove (applet->deferred_id); + applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); + /* Fall through */ + } default: break; } applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); } +#ifdef ENABLE_INDICATOR +static void +foo_device_removed_cb (NMClient *client, NMDevice *device, gpointer user_data) +{ + NMApplet *applet = NM_APPLET (user_data); + + applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); +} +#endif + static void foo_manager_running_cb (NMClient *client, GParamSpec *pspec, @@ -2339,6 +2741,7 @@ } applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); } #define VPN_STATE_ID_TAG "vpn-state-id" @@ -2368,6 +2771,7 @@ } applet_schedule_update_icon (applet); + applet_schedule_update_menu (applet); } static void @@ -2400,9 +2804,14 @@ return FALSE; } +static gboolean setup_widgets (NMApplet *applet); +static void nma_icons_init (NMApplet *applet); + static void foo_client_setup (NMApplet *applet) { + NMClientPermission perm; + applet->nm_client = nm_client_new (); if (!applet->nm_client) return; @@ -2416,6 +2825,11 @@ g_signal_connect (applet->nm_client, "device-added", G_CALLBACK (foo_device_added_cb), applet); +#ifdef ENABLE_INDICATOR + g_signal_connect (applet->nm_client, "device-removed", + G_CALLBACK (foo_device_removed_cb), + applet); +#endif /* ENABLE_INDICATOR */ g_signal_connect (applet->nm_client, "notify::manager-running", G_CALLBACK (foo_manager_running_cb), applet); @@ -2423,20 +2837,24 @@ g_signal_connect (applet->nm_client, "permission-changed", G_CALLBACK (foo_manager_permission_changed), applet); + /* Initialize permissions - the initial 'permission-changed' signal is emitted from NMClient constructor, and thus not caught */ - applet->permissions[NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK] = nm_client_get_permission_result (applet->nm_client, NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK); - applet->permissions[NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI] = nm_client_get_permission_result (applet->nm_client, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI); - applet->permissions[NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN] = nm_client_get_permission_result (applet->nm_client, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN); - applet->permissions[NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX] = nm_client_get_permission_result (applet->nm_client, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX); + for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { + applet->permissions[perm] = nm_client_get_permission_result (applet->nm_client, perm); + } if (nm_client_get_manager_running (applet->nm_client)) g_idle_add (foo_set_initial_state, applet); + + applet_schedule_update_icon (applet); } -static GdkPixbuf * -applet_common_get_device_icon (NMDeviceState state, NMApplet *applet) +static void +applet_common_get_device_icon (NMDeviceState state, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + NMApplet *applet) { - GdkPixbuf *pixbuf = NULL; int stage = -1; switch (state) { @@ -2455,25 +2873,32 @@ } if (stage >= 0) { - int i, j; - - for (i = 0; i < NUM_CONNECTING_STAGES; i++) { - for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { - char *name; - - name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); - nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); - g_free (name); + /* Don't overwrite pixbufs or names given by specific device classes */ + if (out_pixbuf && !*out_pixbuf) { + int i, j; + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { + char *name; + + name = g_strdup_printf ("nm-stage%02d-connecting%02d", i+1, j+1); + nma_icon_check_and_load (name, &applet->network_connecting_icons[i][j], applet); + g_free (name); + } } + *out_pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; + if (out_pixbuf && *out_pixbuf) + g_object_ref (*out_pixbuf); + } + if (out_indicator_icon && !*out_indicator_icon) { + *out_indicator_icon = g_strdup_printf ("nm-stage%02d-connecting%02d", + stage + 1, + applet->animation_step + 1); } - pixbuf = applet->network_connecting_icons[stage][applet->animation_step]; applet->animation_step++; if (applet->animation_step >= NUM_CONNECTING_FRAMES) applet->animation_step = 0; } - - return pixbuf; } static char * @@ -2512,12 +2937,14 @@ return tip; } -static GdkPixbuf * -applet_get_device_icon_for_state (NMApplet *applet, char **tip) +static void +applet_get_device_icon_for_state (NMApplet *applet, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, + char **out_tip) { NMActiveConnection *active; NMDevice *device = NULL; - GdkPixbuf *pixbuf = NULL; NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; NMADeviceClass *dclass; @@ -2542,19 +2969,13 @@ connection = applet_find_active_connection_for_device (device, applet, NULL); /* device class returns a referenced pixbuf */ - pixbuf = dclass->get_icon (device, state, connection, tip, applet); - if (!*tip) - *tip = get_tip_for_device_state (device, state, connection); + dclass->get_icon (device, state, connection, out_pixbuf, out_indicator_icon, out_tip, applet); + if (out_tip && !*out_tip) + *out_tip = get_tip_for_device_state (device, state, connection); } out: - if (!pixbuf) { - pixbuf = applet_common_get_device_icon (state, applet); - /* reference the pixbuf to match the device class' get_icon() function behavior */ - if (pixbuf) - g_object_ref (pixbuf); - } - return pixbuf; + applet_common_get_device_icon (state, out_pixbuf, out_indicator_icon, applet); } static char * @@ -2610,7 +3031,7 @@ NMApplet *applet = NM_APPLET (user_data); GdkPixbuf *pixbuf = NULL; NMState state; - char *dev_tip = NULL, *vpn_tip = NULL; + char *dev_tip = NULL, *vpn_tip = NULL, *icon_name = NULL; NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; gboolean nm_running; NMActiveConnection *active_vpn = NULL; @@ -2618,7 +3039,6 @@ applet->update_icon_id = 0; nm_running = nm_client_get_manager_running (applet->nm_client); - gtk_status_icon_set_visible (applet->status_icon, nm_running); /* Handle device state first */ @@ -2626,36 +3046,61 @@ if (!nm_running) state = NM_STATE_UNKNOWN; + +#ifdef ENABLE_INDICATOR + if (applet->in_fallback) + gtk_status_icon_set_visible (applet->status_icon, applet->visible); + else + gtk_status_icon_set_visible (applet->status_icon, FALSE); + + if (nm_running && applet->visible) + app_indicator_set_status (applet->app_indicator, APP_INDICATOR_STATUS_ACTIVE); + else + app_indicator_set_status (applet->app_indicator, APP_INDICATOR_STATUS_PASSIVE); +#else + gtk_status_icon_set_visible (applet->status_icon, applet->visible); +#endif + switch (state) { case NM_STATE_UNKNOWN: case NM_STATE_ASLEEP: - pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + icon_name = g_strdup ("nm-no-connection"); + pixbuf = nma_icon_check_and_load (icon_name, &applet->no_connection_icon, applet); g_object_ref (pixbuf); dev_tip = g_strdup (_("Networking disabled")); break; case NM_STATE_DISCONNECTED: - pixbuf = nma_icon_check_and_load ("nm-no-connection", &applet->no_connection_icon, applet); + icon_name = g_strdup ("nm-no-connection"); + pixbuf = nma_icon_check_and_load (icon_name, &applet->no_connection_icon, applet); g_object_ref (pixbuf); dev_tip = g_strdup (_("No network connection")); break; default: - pixbuf = applet_get_device_icon_for_state (applet, &dev_tip); + applet_get_device_icon_for_state (applet, &pixbuf, &icon_name, &dev_tip); break; } - foo_set_icon (applet, pixbuf, ICON_LAYER_LINK); + foo_set_icon (applet, ICON_LAYER_LINK, pixbuf, icon_name, dev_tip); if (pixbuf) g_object_unref (pixbuf); + if (icon_name) + g_free (icon_name); /* VPN state next */ pixbuf = NULL; + icon_name = NULL; active_vpn = applet_get_first_active_vpn_connection (applet, &vpn_state); if (active_vpn) { int i; switch (vpn_state) { case NM_VPN_CONNECTION_STATE_ACTIVATED: - pixbuf = nma_icon_check_and_load ("nm-vpn-active-lock", &applet->vpn_lock_icon, applet); +#ifndef ENABLE_INDICATOR + icon_name = g_strdup_printf ("nm-vpn-active-lock"); +#else + icon_name = g_strdup_printf ("%s-secure", app_indicator_get_icon (applet->app_indicator)); +#endif /* ENABLE_INDICATOR */ + pixbuf = nma_icon_check_and_load (icon_name, &applet->vpn_lock_icon, applet); break; case NM_VPN_CONNECTION_STATE_PREPARE: case NM_VPN_CONNECTION_STATE_NEED_AUTH: @@ -2670,6 +3115,9 @@ } pixbuf = applet->vpn_connecting_icons[applet->animation_step]; +#ifdef ENABLE_INDICATOR + icon_name = g_strdup_printf ("nm-vpn-connecting%02d", applet->animation_step+1); +#endif applet->animation_step++; if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) applet->animation_step = 0; @@ -2680,28 +3128,9 @@ vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); } - foo_set_icon (applet, pixbuf, ICON_LAYER_VPN); - - g_free (applet->tip); - applet->tip = NULL; - - if (dev_tip || vpn_tip) { - GString *tip; - - tip = g_string_new (dev_tip); - - if (vpn_tip) - g_string_append_printf (tip, "%s%s", tip->len ? "\n" : "", vpn_tip); - - if (tip->len) - applet->tip = tip->str; - - g_free (vpn_tip); - g_free (dev_tip); - g_string_free (tip, FALSE); - } - - gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip); + foo_set_icon (applet, ICON_LAYER_VPN, pixbuf, icon_name, vpn_tip); + if (icon_name) + g_free (icon_name); return FALSE; } @@ -2955,7 +3384,7 @@ NMApplet *applet = NM_APPLET (user_data); /* If the shell is running and the agent just got registered, unregister it */ - if ( (applet->shell_version >= 3.4) + if ( (nm_shell_watcher_version_at_least (applet->shell_watcher, 3, 4)) && nm_secret_agent_get_registered (NM_SECRET_AGENT (agent))) { g_message ("Stopping registered applet secret agent because GNOME Shell is running"); nm_secret_agent_unregister (NM_SECRET_AGENT (agent)); @@ -2984,16 +3413,16 @@ nma_clear_icon (&applet->icon_layers[i], applet); nma_clear_icon (&applet->no_connection_icon, applet); - nma_clear_icon (&applet->wired_icon, applet); + nma_clear_icon (&applet->ethernet_icon, applet); nma_clear_icon (&applet->adhoc_icon, applet); nma_clear_icon (&applet->wwan_icon, applet); nma_clear_icon (&applet->wwan_tower_icon, applet); nma_clear_icon (&applet->vpn_lock_icon, applet); - nma_clear_icon (&applet->wireless_00_icon, applet); - nma_clear_icon (&applet->wireless_25_icon, applet); - nma_clear_icon (&applet->wireless_50_icon, applet); - nma_clear_icon (&applet->wireless_75_icon, applet); - nma_clear_icon (&applet->wireless_100_icon, applet); + nma_clear_icon (&applet->wifi_00_icon, applet); + nma_clear_icon (&applet->wifi_25_icon, applet); + nma_clear_icon (&applet->wifi_50_icon, applet); + nma_clear_icon (&applet->wifi_75_icon, applet); + nma_clear_icon (&applet->wifi_100_icon, applet); nma_clear_icon (&applet->secure_lock_icon, applet); nma_clear_icon (&applet->mb_tech_1x_icon, applet); @@ -3002,6 +3431,7 @@ nma_clear_icon (&applet->mb_tech_edge_icon, applet); nma_clear_icon (&applet->mb_tech_umts_icon, applet); nma_clear_icon (&applet->mb_tech_hspa_icon, applet); + nma_clear_icon (&applet->mb_tech_lte_icon, applet); nma_clear_icon (&applet->mb_roaming_icon, applet); nma_clear_icon (&applet->mb_tech_3g_icon, applet); @@ -3136,6 +3566,10 @@ gint size, NMApplet *applet) { + if (getenv ("NMA_SIZE_DEBUG")) { + g_message ("%s(): status icon size now %d", __func__, size); + } + /* icon_size may be 0 if for example the panel hasn't given us any space * yet. We'll get resized later, but for now just load the 16x16 icons. */ @@ -3154,7 +3588,6 @@ /* Have clicking on the applet act also as acknowledgement * of the notification. */ - applet_clear_notify (applet); /* Kill any old menu */ if (applet->menu) @@ -3184,20 +3617,96 @@ /* Have clicking on the applet act also as acknowledgement * of the notification. */ - applet_clear_notify (applet); + /* Kill the old menu */ + if (applet->context_menu) + g_object_unref (applet->context_menu); + + /* And make a fresh new one */ + applet->context_menu = gtk_menu_new (); + g_object_ref_sink (G_OBJECT (applet->context_menu)); + applet->context_menu = nma_context_menu_create (applet, GTK_MENU_SHELL (applet->context_menu)); nma_context_menu_update (applet); gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL, gtk_status_icon_position_menu, icon, button, activate_time); } +#ifdef ENABLE_INDICATOR +static GtkStatusIcon * +indicator_fallback (AppIndicator *indicator) +{ + NMApplet *applet; + + applet = NM_APPLET(g_object_get_data (G_OBJECT (indicator), "applet")); + g_return_val_if_fail (NM_IS_APPLET (applet), NULL); + g_return_val_if_fail (applet->status_icon, NULL); + + g_message ("using fallback from indicator to GtkStatusIcon"); + gtk_status_icon_set_visible (applet->status_icon, applet->visible); + + applet->in_fallback = TRUE; + + return applet->status_icon; +} + +static void +indicator_unfallback (AppIndicator *indicator, GtkStatusIcon *status_icon) +{ + NMApplet *applet; + + applet = NM_APPLET(g_object_get_data (G_OBJECT (indicator), "applet")); + g_return_if_fail (NM_IS_APPLET (applet)); + g_return_if_fail (applet->status_icon); + + g_message ("moving back from GtkStatusIcon to indicator"); + gtk_status_icon_set_visible (applet->status_icon, FALSE); + + applet->in_fallback = FALSE; +} + static gboolean -setup_widgets (NMApplet *applet) +setup_indicator_menu (NMApplet *applet) +{ + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + applet->in_fallback = FALSE; + + applet->app_indicator = app_indicator_new + ("nm-applet", "nm-no-connection", + APP_INDICATOR_CATEGORY_SYSTEM_SERVICES); + + app_indicator_set_title(applet->app_indicator, _("Network")); + + g_object_set_data (G_OBJECT (applet->app_indicator), "applet", (gpointer) applet); + + APP_INDICATOR_GET_CLASS(applet->app_indicator)->fallback = indicator_fallback; + APP_INDICATOR_GET_CLASS(applet->app_indicator)->unfallback = indicator_unfallback; + + applet->menu = gtk_menu_new (); + + g_object_ref_sink (G_OBJECT (applet->menu)); + + applet->menu = nma_context_menu_create (applet, GTK_MENU_SHELL(applet->menu)); + nma_context_menu_update(applet); + + app_indicator_set_menu(applet->app_indicator, GTK_MENU(applet->menu)); + + return TRUE; +} +#endif /* ENABLE_INDICATOR */ + +static gboolean +setup_statusicon_menu (NMApplet *applet) { g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); applet->status_icon = gtk_status_icon_new (); + +#ifdef ENABLE_INDICATOR + gtk_status_icon_set_visible (applet->status_icon, FALSE); +#endif + if (!applet->status_icon) return FALSE; if (shell_debug) @@ -3212,11 +3721,34 @@ g_signal_connect (applet->status_icon, "popup-menu", G_CALLBACK (status_icon_popup_menu_cb), applet); - applet->context_menu = nma_context_menu_create (applet); - if (!applet->context_menu) - return FALSE; + applet->context_menu = gtk_menu_new (); + applet->context_menu = nma_context_menu_create (applet, GTK_MENU_SHELL (applet->context_menu)); + g_object_ref_sink (G_OBJECT (applet->context_menu)); + if (!applet->context_menu) + return FALSE; - return TRUE; + return TRUE; +} + +static gboolean +setup_widgets (NMApplet *applet) +{ + gboolean success = FALSE; + gboolean indicator_success = FALSE; + + g_return_val_if_fail (NM_IS_APPLET (applet), FALSE); + + success = setup_statusicon_menu (applet); + +#ifdef ENABLE_INDICATOR + indicator_success = setup_indicator_menu (applet); +#endif + +#ifndef ENABLE_INDICATOR + return success; +#else + return success || indicator_success; +#endif } static void @@ -3249,70 +3781,38 @@ return FALSE; } -static gboolean -get_shell_version (GDBusProxy *proxy, gdouble *out_version) +static void +shell_version_changed_cb (NMShellWatcher *watcher, GParamSpec *pspec, gpointer user_data) { - GVariant *v; - char *version, *p; - gboolean success = FALSE; - gdouble converted; + NMApplet *applet = user_data; - /* Ask for the shell's version */ - v = g_dbus_proxy_get_cached_property (proxy, "ShellVersion"); - if (v) { - g_warn_if_fail (g_variant_is_of_type (v, G_VARIANT_TYPE_STRING)); - version = g_variant_dup_string (v, NULL); - if (version) { - /* Terminate at the second dot if there is one */ - p = strchr (version, '.'); - if (p && (p = strchr (p + 1, '.'))) - *p = '\0'; - - converted = strtod (version, NULL); - g_warn_if_fail (converted > 0); - g_warn_if_fail (converted < 1000); - if (converted > 0 && converted < 1000) { - *out_version = converted; - success = TRUE; - } - g_free (version); - } - g_variant_unref (v); + if (applet->agent_start_id) { + g_source_remove (applet->agent_start_id); + applet->agent_start_id = 0; } - return success; -} -static void -name_owner_changed_cb (GDBusProxy *proxy, GParamSpec *pspec, gpointer user_data) -{ - NMApplet *applet = user_data; - char *owner; + if (!applet->agent) + return; - owner = g_dbus_proxy_get_name_owner (proxy); - if (owner) { - applet->shell_version = 0; - if (applet->agent_start_id) - g_source_remove (applet->agent_start_id); - - if ( get_shell_version (proxy, &applet->shell_version) - && applet->shell_version >= 3.4 - && applet->agent - && nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) { + if (nm_shell_watcher_version_at_least (watcher, 3, 4)) { + /* GNOME Shell handles all secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) { g_message ("Stopping applet secret agent because GNOME Shell appeared"); nm_secret_agent_unregister (NM_SECRET_AGENT (applet->agent)); } + } else if (nm_shell_watcher_version_at_least (watcher, 3, 2)) { + /* GNOME Shell handles everything except VPN secrets requests */ + if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) + g_message ("Applet secret agent handling only VPN secrets because GNOME Shell appeared"); + applet_agent_handle_vpn_only (applet->agent, TRUE); } else { /* If the shell quit and our agent wasn't already registered, do it - * now on a delay (just in case the shell is restarting. + * now on a delay (just in case the shell is restarting). */ - applet->shell_version = 0; - if (applet->agent_start_id) - g_source_remove (applet->agent_start_id); - - if (nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent)) == FALSE) + if (!nm_secret_agent_get_registered (NM_SECRET_AGENT (applet->agent))) applet->agent_start_id = g_timeout_add_seconds (4, delayed_start_agent, applet); + applet_agent_handle_vpn_only (applet->agent, FALSE); } - g_free (owner); } #endif @@ -3355,30 +3855,18 @@ } static void -add_cb (NMRemoteSettings *settings, - NMRemoteConnection *connection, - GError *error, - gpointer user_data) +applet_gsettings_show_changed (GSettings *settings, + gchar *key, + gpointer user_data) { - NMConnection *c = user_data; + NMApplet *applet = NM_APPLET (user_data); - if (error) { - g_warning ("Failed to move connection '%s' to NetworkManager system settings: %s", - nm_connection_get_id (c), - error->message); - } - g_object_unref (c); -} + g_return_if_fail (NM_IS_APPLET(applet)); + g_return_if_fail (key != NULL); -static void -import_cb (NMConnection *connection, gpointer user_data) -{ - NMApplet *applet = user_data; + applet->visible = g_settings_get_boolean (settings, key); - if (!nm_remote_settings_add_connection (applet->settings, connection, add_cb, g_object_ref (connection))) { - g_warning ("Failed to move connection '%s' to NetworkManager system settings.", - nm_connection_get_id (connection)); - } + gtk_status_icon_set_visible (applet->status_icon, applet->visible); } static GObject * @@ -3402,15 +3890,12 @@ goto error; } - applet->gconf_client = gconf_client_get_default (); - if (!applet->gconf_client) - goto error; + applet->gsettings = g_settings_new (APPLET_PREFS_SCHEMA); + applet->visible = g_settings_get_boolean (applet->gsettings, PREF_SHOW_APPLET); + g_signal_connect (applet->gsettings, "changed::show-applet", + G_CALLBACK (applet_gsettings_show_changed), applet); - /* Note that we don't care about change notifications for prefs values... */ - gconf_client_add_dir (applet->gconf_client, - APPLET_PREFS_PATH, - GCONF_CLIENT_PRELOAD_ONELEVEL, - NULL); + foo_client_setup (applet); /* Load pixmaps and create applet widgets */ if (!setup_widgets (applet)) @@ -3427,8 +3912,29 @@ } applet->settings = nm_remote_settings_new (applet->bus); - /* Move user connections to the system */ - nm_gconf_move_connections_to_system (import_cb, applet); +#ifdef BUILD_MIGRATION_TOOL + { + char *argv[2] = { LIBEXECDIR "/nm-applet-migration-tool", NULL }; + int status; + + /* Move user connections to the system */ + if (!g_spawn_sync (NULL, argv, NULL, 0, NULL, NULL, + NULL, NULL, &status, &error)) { + g_warning ("Could not run nm-applet-migration-tool: %s", + error->message); + g_error_free (error); + } else if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { + g_warning ("nm-applet-migration-tool exited with error"); + } + } +#endif + +#ifdef ENABLE_INDICATOR + /* Watch for new connections */ + g_signal_connect (applet->settings, "new-connection", + G_CALLBACK (new_connection_cb), + applet); +#endif /* ENABLE_INDICATOR */ applet->agent = applet_agent_new (); g_assert (applet->agent); @@ -3440,8 +3946,8 @@ G_CALLBACK (applet_agent_registered_cb), applet); /* Initialize device classes */ - applet->wired_class = applet_device_wired_get_class (applet); - g_assert (applet->wired_class); + applet->ethernet_class = applet_device_ethernet_get_class (applet); + g_assert (applet->ethernet_class); applet->wifi_class = applet_device_wifi_get_class (applet); g_assert (applet->wifi_class); @@ -3458,8 +3964,6 @@ applet->wimax_class = applet_device_wimax_get_class (applet); g_assert (applet->wimax_class); - foo_client_setup (applet); - /* Track embedding to help debug issues where user has removed the * notification area applet from the panel, and thus nm-applet too. */ @@ -3469,19 +3973,11 @@ #if GLIB_CHECK_VERSION(2,26,0) /* Watch GNOME Shell so we can unregister our applet agent if it appears */ - applet->shell_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, - NULL, - "org.gnome.Shell", - "/org/gnome/Shell", - "org.gnome.Shell", - NULL, - NULL); - g_signal_connect (applet->shell_proxy, - "notify::g-name-owner", - G_CALLBACK (name_owner_changed_cb), + applet->shell_watcher = nm_shell_watcher_new (); + g_signal_connect (applet->shell_watcher, + "notify::shell-version", + G_CALLBACK (shell_version_changed_cb), applet); - name_owner_changed_cb (applet->shell_proxy, NULL, applet); #endif return G_OBJECT (applet); @@ -3495,7 +3991,7 @@ { NMApplet *applet = NM_APPLET (object); - g_slice_free (NMADeviceClass, applet->wired_class); + g_slice_free (NMADeviceClass, applet->ethernet_class); g_slice_free (NMADeviceClass, applet->wifi_class); g_slice_free (NMADeviceClass, applet->gsm_class); g_slice_free (NMADeviceClass, applet->cdma_class); @@ -3505,6 +4001,11 @@ if (applet->update_icon_id) g_source_remove (applet->update_icon_id); +#ifdef ENABLE_INDICATOR + if (applet->update_menu_id) + g_source_remove (applet->update_menu_id); +#endif /* ENABLE_INDICATOR */ + if (applet->menu) g_object_unref (applet->menu); nma_icons_free (applet); @@ -3522,16 +4023,17 @@ if (applet->info_dialog_ui) g_object_unref (applet->info_dialog_ui); - if (applet->gconf_client) { - gconf_client_remove_dir (applet->gconf_client, - APPLET_PREFS_PATH, - NULL); - g_object_unref (applet->gconf_client); - } + if (applet->gsettings) + g_object_unref (applet->gsettings); if (applet->status_icon) g_object_unref (applet->status_icon); +#ifdef ENABLE_INDICATOR + if (applet->app_indicator) + g_object_unref (applet->app_indicator); +#endif + if (applet->nm_client) g_object_unref (applet->nm_client); @@ -3551,8 +4053,8 @@ dbus_g_connection_unref (applet->session_bus); #if GLIB_CHECK_VERSION(2,26,0) - if (applet->shell_proxy) - g_object_unref (applet->shell_proxy); + if (applet->shell_watcher) + g_object_unref (applet->shell_watcher); #endif if (applet->agent_start_id) g_source_remove (applet->agent_start_id); @@ -3567,6 +4069,10 @@ applet->icon_theme = NULL; applet->notification = NULL; applet->icon_size = 16; + + applet->hide_policy_items = FALSE; + if (getenv ("NM_APPLET_HIDE_POLICY_ITEMS")) + applet->hide_policy_items = TRUE; } enum { diff -Nru network-manager-applet-0.9.4.1/src/applet.h network-manager-applet-0.9.6.2+git201210311320.2620/src/applet.h --- network-manager-applet-0.9.4.1/src/applet.h 2012-03-20 01:55:20.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/applet.h 2012-10-31 13:21:01.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -31,13 +31,16 @@ #include #include -#include #include #include #include #include +#if ENABLE_INDICATOR +#include +#endif + #include #include #include @@ -46,6 +49,7 @@ #include #include #include "applet-agent.h" +#include "shell-watcher.h" #define NM_TYPE_APPLET (nma_get_type()) #define NM_APPLET(object) (G_TYPE_CHECK_INSTANCE_CAST((object), NM_TYPE_APPLET, NMApplet)) @@ -59,12 +63,13 @@ GObjectClass parent_class; } NMAppletClass; -#define APPLET_PREFS_PATH "/apps/nm-applet" -#define PREF_DISABLE_CONNECTED_NOTIFICATIONS APPLET_PREFS_PATH "/disable-connected-notifications" -#define PREF_DISABLE_DISCONNECTED_NOTIFICATIONS APPLET_PREFS_PATH "/disable-disconnected-notifications" -#define PREF_DISABLE_VPN_NOTIFICATIONS APPLET_PREFS_PATH "/disable-vpn-notifications" -#define PREF_DISABLE_WIFI_CREATE APPLET_PREFS_PATH "/disable-wifi-create" -#define PREF_SUPPRESS_WIRELESS_NETWORKS_AVAILABLE APPLET_PREFS_PATH "/suppress-wireless-networks-available" +#define APPLET_PREFS_SCHEMA "org.gnome.nm-applet" +#define PREF_DISABLE_CONNECTED_NOTIFICATIONS "disable-connected-notifications" +#define PREF_DISABLE_DISCONNECTED_NOTIFICATIONS "disable-disconnected-notifications" +#define PREF_DISABLE_VPN_NOTIFICATIONS "disable-vpn-notifications" +#define PREF_DISABLE_WIFI_CREATE "disable-wifi-create" +#define PREF_SUPPRESS_WIFI_NETWORKS_AVAILABLE "suppress-wireless-networks-available" +#define PREF_SHOW_APPLET "show-applet" #define ICON_LAYER_LINK 0 #define ICON_LAYER_VPN 1 @@ -85,22 +90,24 @@ DBusGConnection *session_bus; #if GLIB_CHECK_VERSION(2,26,0) - GDBusProxy *shell_proxy; + NMShellWatcher *shell_watcher; #endif guint agent_start_id; - gdouble shell_version; NMClient *nm_client; NMRemoteSettings *settings; AppletAgent *agent; - GConfClient * gconf_client; + GSettings *gsettings; + + gboolean visible; + gboolean hide_policy_items; /* Permissions */ NMClientPermissionResult permissions[NM_CLIENT_PERMISSION_LAST + 1]; /* Device classes */ - NMADeviceClass *wired_class; + NMADeviceClass *ethernet_class; NMADeviceClass *wifi_class; NMADeviceClass *gsm_class; NMADeviceClass *cdma_class; @@ -112,14 +119,14 @@ GtkIconTheme * icon_theme; GdkPixbuf * no_connection_icon; - GdkPixbuf * wired_icon; + GdkPixbuf * ethernet_icon; GdkPixbuf * adhoc_icon; GdkPixbuf * wwan_icon; - GdkPixbuf * wireless_00_icon; - GdkPixbuf * wireless_25_icon; - GdkPixbuf * wireless_50_icon; - GdkPixbuf * wireless_75_icon; - GdkPixbuf * wireless_100_icon; + GdkPixbuf * wifi_00_icon; + GdkPixbuf * wifi_25_icon; + GdkPixbuf * wifi_50_icon; + GdkPixbuf * wifi_75_icon; + GdkPixbuf * wifi_100_icon; GdkPixbuf * secure_lock_icon; #define NUM_CONNECTING_STAGES 3 #define NUM_CONNECTING_FRAMES 11 @@ -137,6 +144,7 @@ GdkPixbuf * mb_tech_edge_icon; GdkPixbuf * mb_tech_umts_icon; GdkPixbuf * mb_tech_hspa_icon; + GdkPixbuf * mb_tech_lte_icon; GdkPixbuf * mb_roaming_icon; GdkPixbuf * mb_tech_3g_icon; @@ -148,6 +156,11 @@ guint animation_id; /* Direct UI elements */ +#if ENABLE_INDICATOR + AppIndicator * app_indicator; + guint update_menu_id; + gboolean in_fallback; +#endif GtkStatusIcon * status_icon; int icon_size; @@ -175,6 +188,9 @@ /* Tracker objects for secrets requests */ GSList * secrets_reqs; + + gpointer notification_queue_data; + guint deferred_id; } NMApplet; typedef void (*AppletNewAutoConnectionCallback) (NMConnection *connection, @@ -231,13 +247,15 @@ NMDeviceStateReason reason, NMApplet *applet); - /* Device class is expected to return a *referenced* pixbuf, which will + /* Device class is expected to pass a *referenced* pixbuf, which will * be unrefed by the icon code. This allows the device class to create * a composited pixbuf if necessary and pass the reference to the caller. */ - GdkPixbuf * (*get_icon) (NMDevice *device, + void (*get_icon) (NMDevice *device, NMDeviceState state, NMConnection *connection, + GdkPixbuf **out_pixbuf, + char **out_indicator_icon, char **tip, NMApplet *applet); @@ -252,6 +270,10 @@ void applet_schedule_update_icon (NMApplet *applet); +#if ENABLE_INDICATOR +void applet_schedule_update_menu (NMApplet *applet); +#endif /* ENABLE_INDICATOR */ + NMRemoteSettings *applet_get_settings (NMApplet *applet); GSList *applet_get_all_connections (NMApplet *applet); diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/Makefile.am network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/Makefile.am --- network-manager-applet-0.9.4.1/src/connection-editor/Makefile.am 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/Makefile.am 2012-10-31 13:20:57.000000000 +0000 @@ -26,14 +26,18 @@ main.c \ ce-page.h \ ce-page.c \ - page-wired.h \ - page-wired.c \ - page-wired-security.h \ - page-wired-security.c \ - page-wireless.h \ - page-wireless.c \ - page-wireless-security.h \ - page-wireless-security.c \ + page-ethernet.h \ + page-ethernet.c \ + page-8021x-security.h \ + page-8021x-security.c \ + page-wifi.h \ + page-wifi.c \ + page-wifi-security.h \ + page-wifi-security.c \ + page-wimax.h \ + page-wimax.c \ + page-infiniband.h \ + page-infiniband.c \ page-ip4.h \ page-ip4.c \ page-ip6.h \ @@ -46,6 +50,10 @@ page-ppp.c \ page-vpn.h \ page-vpn.c \ + page-bond.h \ + page-bond.c \ + page-vlan.h \ + page-vlan.c \ vpn-helpers.h \ vpn-helpers.c \ ip4-routes-dialog.h \ @@ -55,7 +63,9 @@ ppp-auth-methods-dialog.c \ ppp-auth-methods-dialog.h \ ce-polkit-button.c \ - ce-polkit-button.h + ce-polkit-button.h \ + new-connection.c \ + new-connection.h nm-connection-editor-service-glue.h: $(top_srcdir)/src/connection-editor/nm-connection-editor-service.xml $(AM_V_GEN) dbus-binding-tool --prefix=nm_connection_editor_service --mode=glib-server --output=$@ $< @@ -72,9 +82,13 @@ uidir = $(datadir)/nm-applet ui_DATA = \ nm-connection-editor.ui \ - ce-page-wired.ui \ - ce-page-wireless.ui \ - ce-page-wireless-security.ui \ + ce-new-connection.ui \ + ce-page-ethernet.ui \ + ce-page-wifi.ui \ + ce-page-wifi-security.ui \ + ce-page-wimax.ui \ + ce-page-infiniband.ui \ + ce-page-bond.ui \ ce-page-ip4.ui \ ce-ip4-routes.ui \ ce-page-ip6.ui \ @@ -83,7 +97,7 @@ ce-page-mobile.ui \ ce-page-ppp.ui \ ce-ppp-auth-methods.ui \ - ce-vpn-wizard.ui + ce-page-vlan.ui BUILT_SOURCES = nm-connection-editor-service-glue.h diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/Makefile.in --- network-manager-applet-0.9.4.1/src/connection-editor/Makefile.in 2012-03-23 22:55:41.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,1066 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -bin_PROGRAMS = nm-connection-editor$(EXEEXT) -subdir = src/connection-editor -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(uidir)" -PROGRAMS = $(bin_PROGRAMS) -am_nm_connection_editor_OBJECTS = \ - nm_connection_editor-nm-connection-editor.$(OBJEXT) \ - nm_connection_editor-nm-connection-list.$(OBJEXT) \ - nm_connection_editor-main.$(OBJEXT) \ - nm_connection_editor-ce-page.$(OBJEXT) \ - nm_connection_editor-page-wired.$(OBJEXT) \ - nm_connection_editor-page-wired-security.$(OBJEXT) \ - nm_connection_editor-page-wireless.$(OBJEXT) \ - nm_connection_editor-page-wireless-security.$(OBJEXT) \ - nm_connection_editor-page-ip4.$(OBJEXT) \ - nm_connection_editor-page-ip6.$(OBJEXT) \ - nm_connection_editor-page-dsl.$(OBJEXT) \ - nm_connection_editor-page-mobile.$(OBJEXT) \ - nm_connection_editor-page-ppp.$(OBJEXT) \ - nm_connection_editor-page-vpn.$(OBJEXT) \ - nm_connection_editor-vpn-helpers.$(OBJEXT) \ - nm_connection_editor-ip4-routes-dialog.$(OBJEXT) \ - nm_connection_editor-ip6-routes-dialog.$(OBJEXT) \ - nm_connection_editor-ppp-auth-methods-dialog.$(OBJEXT) \ - nm_connection_editor-ce-polkit-button.$(OBJEXT) -nm_connection_editor_OBJECTS = $(am_nm_connection_editor_OBJECTS) -am__DEPENDENCIES_1 = -nm_connection_editor_DEPENDENCIES = \ - ${top_builddir}/src/wireless-security/libwireless-security.la \ - ${top_builddir}/src/utils/libutils.la \ - ${top_builddir}/src/marshallers/libmarshallers.la \ - ${top_builddir}/src/libnm-gtk/libnm-gtk.la \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(nm_connection_editor_SOURCES) -DIST_SOURCES = $(nm_connection_editor_SOURCES) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -DATA = $(ui_DATA) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -nm_connection_editor_CPPFLAGS = \ - $(GTK_CFLAGS) \ - $(NMA_CFLAGS) \ - $(GNOME_KEYRING_CFLAGS) \ - -DICONDIR=\""$(datadir)/icons"\" \ - -DUIDIR=\""$(uidir)"\" \ - -DBINDIR=\""$(bindir)"\" \ - -DSYSCONFDIR=\""$(sysconfdir)"\" \ - -DLIBDIR=\""$(libdir)"\" \ - -DDATADIR=\""$(datadir)"\" \ - -DNMALOCALEDIR=\"$(datadir)/locale\" \ - $(DBUS_CFLAGS) \ - $(DISABLE_DEPRECATED) \ - -I${top_srcdir}/src/utils \ - -I${top_srcdir}/src/wireless-security \ - -I${top_srcdir}/src/libnm-gtk \ - -I${top_builddir}/src/marshallers - -nm_connection_editor_SOURCES = \ - nm-connection-editor.c \ - nm-connection-editor.h \ - nm-connection-list.c \ - nm-connection-list.h \ - main.c \ - ce-page.h \ - ce-page.c \ - page-wired.h \ - page-wired.c \ - page-wired-security.h \ - page-wired-security.c \ - page-wireless.h \ - page-wireless.c \ - page-wireless-security.h \ - page-wireless-security.c \ - page-ip4.h \ - page-ip4.c \ - page-ip6.h \ - page-ip6.c \ - page-dsl.h \ - page-dsl.c \ - page-mobile.h \ - page-mobile.c \ - page-ppp.h \ - page-ppp.c \ - page-vpn.h \ - page-vpn.c \ - vpn-helpers.h \ - vpn-helpers.c \ - ip4-routes-dialog.h \ - ip4-routes-dialog.c \ - ip6-routes-dialog.h \ - ip6-routes-dialog.c \ - ppp-auth-methods-dialog.c \ - ppp-auth-methods-dialog.h \ - ce-polkit-button.c \ - ce-polkit-button.h - -nm_connection_editor_LDADD = \ - ${top_builddir}/src/wireless-security/libwireless-security.la \ - ${top_builddir}/src/utils/libutils.la \ - ${top_builddir}/src/marshallers/libmarshallers.la \ - ${top_builddir}/src/libnm-gtk/libnm-gtk.la \ - $(GTK_LIBS) \ - $(NMA_LIBS) \ - -lm - -uidir = $(datadir)/nm-applet -ui_DATA = \ - nm-connection-editor.ui \ - ce-page-wired.ui \ - ce-page-wireless.ui \ - ce-page-wireless-security.ui \ - ce-page-ip4.ui \ - ce-ip4-routes.ui \ - ce-page-ip6.ui \ - ce-ip6-routes.ui \ - ce-page-dsl.ui \ - ce-page-mobile.ui \ - ce-page-ppp.ui \ - ce-ppp-auth-methods.ui \ - ce-vpn-wizard.ui - -BUILT_SOURCES = nm-connection-editor-service-glue.h -CLEANFILES = *.bak $(BUILT_SOURCES) -EXTRA_DIST = $(ui_DATA) nm-connection-editor-service.xml -all: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/connection-editor/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/connection-editor/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p || test -f $$p1; \ - then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -nm-connection-editor$(EXEEXT): $(nm_connection_editor_OBJECTS) $(nm_connection_editor_DEPENDENCIES) - @rm -f nm-connection-editor$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(nm_connection_editor_OBJECTS) $(nm_connection_editor_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-ce-page.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-ce-polkit-button.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-ip4-routes-dialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-ip6-routes-dialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-nm-connection-editor.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-nm-connection-list.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-page-dsl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-page-ip4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-page-ip6.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-page-mobile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-page-ppp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-page-vpn.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-page-wired-security.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-page-wired.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-page-wireless-security.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-page-wireless.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-ppp-auth-methods-dialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_connection_editor-vpn-helpers.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -nm_connection_editor-nm-connection-editor.o: nm-connection-editor.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-nm-connection-editor.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-nm-connection-editor.Tpo -c -o nm_connection_editor-nm-connection-editor.o `test -f 'nm-connection-editor.c' || echo '$(srcdir)/'`nm-connection-editor.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-nm-connection-editor.Tpo $(DEPDIR)/nm_connection_editor-nm-connection-editor.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-connection-editor.c' object='nm_connection_editor-nm-connection-editor.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-nm-connection-editor.o `test -f 'nm-connection-editor.c' || echo '$(srcdir)/'`nm-connection-editor.c - -nm_connection_editor-nm-connection-editor.obj: nm-connection-editor.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-nm-connection-editor.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-nm-connection-editor.Tpo -c -o nm_connection_editor-nm-connection-editor.obj `if test -f 'nm-connection-editor.c'; then $(CYGPATH_W) 'nm-connection-editor.c'; else $(CYGPATH_W) '$(srcdir)/nm-connection-editor.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-nm-connection-editor.Tpo $(DEPDIR)/nm_connection_editor-nm-connection-editor.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-connection-editor.c' object='nm_connection_editor-nm-connection-editor.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-nm-connection-editor.obj `if test -f 'nm-connection-editor.c'; then $(CYGPATH_W) 'nm-connection-editor.c'; else $(CYGPATH_W) '$(srcdir)/nm-connection-editor.c'; fi` - -nm_connection_editor-nm-connection-list.o: nm-connection-list.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-nm-connection-list.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-nm-connection-list.Tpo -c -o nm_connection_editor-nm-connection-list.o `test -f 'nm-connection-list.c' || echo '$(srcdir)/'`nm-connection-list.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-nm-connection-list.Tpo $(DEPDIR)/nm_connection_editor-nm-connection-list.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-connection-list.c' object='nm_connection_editor-nm-connection-list.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-nm-connection-list.o `test -f 'nm-connection-list.c' || echo '$(srcdir)/'`nm-connection-list.c - -nm_connection_editor-nm-connection-list.obj: nm-connection-list.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-nm-connection-list.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-nm-connection-list.Tpo -c -o nm_connection_editor-nm-connection-list.obj `if test -f 'nm-connection-list.c'; then $(CYGPATH_W) 'nm-connection-list.c'; else $(CYGPATH_W) '$(srcdir)/nm-connection-list.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-nm-connection-list.Tpo $(DEPDIR)/nm_connection_editor-nm-connection-list.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-connection-list.c' object='nm_connection_editor-nm-connection-list.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-nm-connection-list.obj `if test -f 'nm-connection-list.c'; then $(CYGPATH_W) 'nm-connection-list.c'; else $(CYGPATH_W) '$(srcdir)/nm-connection-list.c'; fi` - -nm_connection_editor-main.o: main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-main.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-main.Tpo -c -o nm_connection_editor-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-main.Tpo $(DEPDIR)/nm_connection_editor-main.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='nm_connection_editor-main.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c - -nm_connection_editor-main.obj: main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-main.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-main.Tpo -c -o nm_connection_editor-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-main.Tpo $(DEPDIR)/nm_connection_editor-main.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='nm_connection_editor-main.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` - -nm_connection_editor-ce-page.o: ce-page.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-ce-page.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-ce-page.Tpo -c -o nm_connection_editor-ce-page.o `test -f 'ce-page.c' || echo '$(srcdir)/'`ce-page.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-ce-page.Tpo $(DEPDIR)/nm_connection_editor-ce-page.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ce-page.c' object='nm_connection_editor-ce-page.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-ce-page.o `test -f 'ce-page.c' || echo '$(srcdir)/'`ce-page.c - -nm_connection_editor-ce-page.obj: ce-page.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-ce-page.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-ce-page.Tpo -c -o nm_connection_editor-ce-page.obj `if test -f 'ce-page.c'; then $(CYGPATH_W) 'ce-page.c'; else $(CYGPATH_W) '$(srcdir)/ce-page.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-ce-page.Tpo $(DEPDIR)/nm_connection_editor-ce-page.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ce-page.c' object='nm_connection_editor-ce-page.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-ce-page.obj `if test -f 'ce-page.c'; then $(CYGPATH_W) 'ce-page.c'; else $(CYGPATH_W) '$(srcdir)/ce-page.c'; fi` - -nm_connection_editor-page-wired.o: page-wired.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-wired.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-wired.Tpo -c -o nm_connection_editor-page-wired.o `test -f 'page-wired.c' || echo '$(srcdir)/'`page-wired.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-wired.Tpo $(DEPDIR)/nm_connection_editor-page-wired.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-wired.c' object='nm_connection_editor-page-wired.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-wired.o `test -f 'page-wired.c' || echo '$(srcdir)/'`page-wired.c - -nm_connection_editor-page-wired.obj: page-wired.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-wired.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-wired.Tpo -c -o nm_connection_editor-page-wired.obj `if test -f 'page-wired.c'; then $(CYGPATH_W) 'page-wired.c'; else $(CYGPATH_W) '$(srcdir)/page-wired.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-wired.Tpo $(DEPDIR)/nm_connection_editor-page-wired.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-wired.c' object='nm_connection_editor-page-wired.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-wired.obj `if test -f 'page-wired.c'; then $(CYGPATH_W) 'page-wired.c'; else $(CYGPATH_W) '$(srcdir)/page-wired.c'; fi` - -nm_connection_editor-page-wired-security.o: page-wired-security.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-wired-security.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-wired-security.Tpo -c -o nm_connection_editor-page-wired-security.o `test -f 'page-wired-security.c' || echo '$(srcdir)/'`page-wired-security.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-wired-security.Tpo $(DEPDIR)/nm_connection_editor-page-wired-security.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-wired-security.c' object='nm_connection_editor-page-wired-security.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-wired-security.o `test -f 'page-wired-security.c' || echo '$(srcdir)/'`page-wired-security.c - -nm_connection_editor-page-wired-security.obj: page-wired-security.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-wired-security.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-wired-security.Tpo -c -o nm_connection_editor-page-wired-security.obj `if test -f 'page-wired-security.c'; then $(CYGPATH_W) 'page-wired-security.c'; else $(CYGPATH_W) '$(srcdir)/page-wired-security.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-wired-security.Tpo $(DEPDIR)/nm_connection_editor-page-wired-security.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-wired-security.c' object='nm_connection_editor-page-wired-security.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-wired-security.obj `if test -f 'page-wired-security.c'; then $(CYGPATH_W) 'page-wired-security.c'; else $(CYGPATH_W) '$(srcdir)/page-wired-security.c'; fi` - -nm_connection_editor-page-wireless.o: page-wireless.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-wireless.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-wireless.Tpo -c -o nm_connection_editor-page-wireless.o `test -f 'page-wireless.c' || echo '$(srcdir)/'`page-wireless.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-wireless.Tpo $(DEPDIR)/nm_connection_editor-page-wireless.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-wireless.c' object='nm_connection_editor-page-wireless.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-wireless.o `test -f 'page-wireless.c' || echo '$(srcdir)/'`page-wireless.c - -nm_connection_editor-page-wireless.obj: page-wireless.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-wireless.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-wireless.Tpo -c -o nm_connection_editor-page-wireless.obj `if test -f 'page-wireless.c'; then $(CYGPATH_W) 'page-wireless.c'; else $(CYGPATH_W) '$(srcdir)/page-wireless.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-wireless.Tpo $(DEPDIR)/nm_connection_editor-page-wireless.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-wireless.c' object='nm_connection_editor-page-wireless.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-wireless.obj `if test -f 'page-wireless.c'; then $(CYGPATH_W) 'page-wireless.c'; else $(CYGPATH_W) '$(srcdir)/page-wireless.c'; fi` - -nm_connection_editor-page-wireless-security.o: page-wireless-security.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-wireless-security.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-wireless-security.Tpo -c -o nm_connection_editor-page-wireless-security.o `test -f 'page-wireless-security.c' || echo '$(srcdir)/'`page-wireless-security.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-wireless-security.Tpo $(DEPDIR)/nm_connection_editor-page-wireless-security.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-wireless-security.c' object='nm_connection_editor-page-wireless-security.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-wireless-security.o `test -f 'page-wireless-security.c' || echo '$(srcdir)/'`page-wireless-security.c - -nm_connection_editor-page-wireless-security.obj: page-wireless-security.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-wireless-security.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-wireless-security.Tpo -c -o nm_connection_editor-page-wireless-security.obj `if test -f 'page-wireless-security.c'; then $(CYGPATH_W) 'page-wireless-security.c'; else $(CYGPATH_W) '$(srcdir)/page-wireless-security.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-wireless-security.Tpo $(DEPDIR)/nm_connection_editor-page-wireless-security.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-wireless-security.c' object='nm_connection_editor-page-wireless-security.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-wireless-security.obj `if test -f 'page-wireless-security.c'; then $(CYGPATH_W) 'page-wireless-security.c'; else $(CYGPATH_W) '$(srcdir)/page-wireless-security.c'; fi` - -nm_connection_editor-page-ip4.o: page-ip4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-ip4.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-ip4.Tpo -c -o nm_connection_editor-page-ip4.o `test -f 'page-ip4.c' || echo '$(srcdir)/'`page-ip4.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-ip4.Tpo $(DEPDIR)/nm_connection_editor-page-ip4.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-ip4.c' object='nm_connection_editor-page-ip4.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-ip4.o `test -f 'page-ip4.c' || echo '$(srcdir)/'`page-ip4.c - -nm_connection_editor-page-ip4.obj: page-ip4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-ip4.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-ip4.Tpo -c -o nm_connection_editor-page-ip4.obj `if test -f 'page-ip4.c'; then $(CYGPATH_W) 'page-ip4.c'; else $(CYGPATH_W) '$(srcdir)/page-ip4.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-ip4.Tpo $(DEPDIR)/nm_connection_editor-page-ip4.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-ip4.c' object='nm_connection_editor-page-ip4.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-ip4.obj `if test -f 'page-ip4.c'; then $(CYGPATH_W) 'page-ip4.c'; else $(CYGPATH_W) '$(srcdir)/page-ip4.c'; fi` - -nm_connection_editor-page-ip6.o: page-ip6.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-ip6.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-ip6.Tpo -c -o nm_connection_editor-page-ip6.o `test -f 'page-ip6.c' || echo '$(srcdir)/'`page-ip6.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-ip6.Tpo $(DEPDIR)/nm_connection_editor-page-ip6.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-ip6.c' object='nm_connection_editor-page-ip6.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-ip6.o `test -f 'page-ip6.c' || echo '$(srcdir)/'`page-ip6.c - -nm_connection_editor-page-ip6.obj: page-ip6.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-ip6.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-ip6.Tpo -c -o nm_connection_editor-page-ip6.obj `if test -f 'page-ip6.c'; then $(CYGPATH_W) 'page-ip6.c'; else $(CYGPATH_W) '$(srcdir)/page-ip6.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-ip6.Tpo $(DEPDIR)/nm_connection_editor-page-ip6.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-ip6.c' object='nm_connection_editor-page-ip6.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-ip6.obj `if test -f 'page-ip6.c'; then $(CYGPATH_W) 'page-ip6.c'; else $(CYGPATH_W) '$(srcdir)/page-ip6.c'; fi` - -nm_connection_editor-page-dsl.o: page-dsl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-dsl.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-dsl.Tpo -c -o nm_connection_editor-page-dsl.o `test -f 'page-dsl.c' || echo '$(srcdir)/'`page-dsl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-dsl.Tpo $(DEPDIR)/nm_connection_editor-page-dsl.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-dsl.c' object='nm_connection_editor-page-dsl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-dsl.o `test -f 'page-dsl.c' || echo '$(srcdir)/'`page-dsl.c - -nm_connection_editor-page-dsl.obj: page-dsl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-dsl.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-dsl.Tpo -c -o nm_connection_editor-page-dsl.obj `if test -f 'page-dsl.c'; then $(CYGPATH_W) 'page-dsl.c'; else $(CYGPATH_W) '$(srcdir)/page-dsl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-dsl.Tpo $(DEPDIR)/nm_connection_editor-page-dsl.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-dsl.c' object='nm_connection_editor-page-dsl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-dsl.obj `if test -f 'page-dsl.c'; then $(CYGPATH_W) 'page-dsl.c'; else $(CYGPATH_W) '$(srcdir)/page-dsl.c'; fi` - -nm_connection_editor-page-mobile.o: page-mobile.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-mobile.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-mobile.Tpo -c -o nm_connection_editor-page-mobile.o `test -f 'page-mobile.c' || echo '$(srcdir)/'`page-mobile.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-mobile.Tpo $(DEPDIR)/nm_connection_editor-page-mobile.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-mobile.c' object='nm_connection_editor-page-mobile.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-mobile.o `test -f 'page-mobile.c' || echo '$(srcdir)/'`page-mobile.c - -nm_connection_editor-page-mobile.obj: page-mobile.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-mobile.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-mobile.Tpo -c -o nm_connection_editor-page-mobile.obj `if test -f 'page-mobile.c'; then $(CYGPATH_W) 'page-mobile.c'; else $(CYGPATH_W) '$(srcdir)/page-mobile.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-mobile.Tpo $(DEPDIR)/nm_connection_editor-page-mobile.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-mobile.c' object='nm_connection_editor-page-mobile.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-mobile.obj `if test -f 'page-mobile.c'; then $(CYGPATH_W) 'page-mobile.c'; else $(CYGPATH_W) '$(srcdir)/page-mobile.c'; fi` - -nm_connection_editor-page-ppp.o: page-ppp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-ppp.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-ppp.Tpo -c -o nm_connection_editor-page-ppp.o `test -f 'page-ppp.c' || echo '$(srcdir)/'`page-ppp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-ppp.Tpo $(DEPDIR)/nm_connection_editor-page-ppp.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-ppp.c' object='nm_connection_editor-page-ppp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-ppp.o `test -f 'page-ppp.c' || echo '$(srcdir)/'`page-ppp.c - -nm_connection_editor-page-ppp.obj: page-ppp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-ppp.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-ppp.Tpo -c -o nm_connection_editor-page-ppp.obj `if test -f 'page-ppp.c'; then $(CYGPATH_W) 'page-ppp.c'; else $(CYGPATH_W) '$(srcdir)/page-ppp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-ppp.Tpo $(DEPDIR)/nm_connection_editor-page-ppp.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-ppp.c' object='nm_connection_editor-page-ppp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-ppp.obj `if test -f 'page-ppp.c'; then $(CYGPATH_W) 'page-ppp.c'; else $(CYGPATH_W) '$(srcdir)/page-ppp.c'; fi` - -nm_connection_editor-page-vpn.o: page-vpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-vpn.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-vpn.Tpo -c -o nm_connection_editor-page-vpn.o `test -f 'page-vpn.c' || echo '$(srcdir)/'`page-vpn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-vpn.Tpo $(DEPDIR)/nm_connection_editor-page-vpn.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-vpn.c' object='nm_connection_editor-page-vpn.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-vpn.o `test -f 'page-vpn.c' || echo '$(srcdir)/'`page-vpn.c - -nm_connection_editor-page-vpn.obj: page-vpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-page-vpn.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-page-vpn.Tpo -c -o nm_connection_editor-page-vpn.obj `if test -f 'page-vpn.c'; then $(CYGPATH_W) 'page-vpn.c'; else $(CYGPATH_W) '$(srcdir)/page-vpn.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-page-vpn.Tpo $(DEPDIR)/nm_connection_editor-page-vpn.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='page-vpn.c' object='nm_connection_editor-page-vpn.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-page-vpn.obj `if test -f 'page-vpn.c'; then $(CYGPATH_W) 'page-vpn.c'; else $(CYGPATH_W) '$(srcdir)/page-vpn.c'; fi` - -nm_connection_editor-vpn-helpers.o: vpn-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-vpn-helpers.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-vpn-helpers.Tpo -c -o nm_connection_editor-vpn-helpers.o `test -f 'vpn-helpers.c' || echo '$(srcdir)/'`vpn-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-vpn-helpers.Tpo $(DEPDIR)/nm_connection_editor-vpn-helpers.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vpn-helpers.c' object='nm_connection_editor-vpn-helpers.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-vpn-helpers.o `test -f 'vpn-helpers.c' || echo '$(srcdir)/'`vpn-helpers.c - -nm_connection_editor-vpn-helpers.obj: vpn-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-vpn-helpers.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-vpn-helpers.Tpo -c -o nm_connection_editor-vpn-helpers.obj `if test -f 'vpn-helpers.c'; then $(CYGPATH_W) 'vpn-helpers.c'; else $(CYGPATH_W) '$(srcdir)/vpn-helpers.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-vpn-helpers.Tpo $(DEPDIR)/nm_connection_editor-vpn-helpers.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vpn-helpers.c' object='nm_connection_editor-vpn-helpers.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-vpn-helpers.obj `if test -f 'vpn-helpers.c'; then $(CYGPATH_W) 'vpn-helpers.c'; else $(CYGPATH_W) '$(srcdir)/vpn-helpers.c'; fi` - -nm_connection_editor-ip4-routes-dialog.o: ip4-routes-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-ip4-routes-dialog.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-ip4-routes-dialog.Tpo -c -o nm_connection_editor-ip4-routes-dialog.o `test -f 'ip4-routes-dialog.c' || echo '$(srcdir)/'`ip4-routes-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-ip4-routes-dialog.Tpo $(DEPDIR)/nm_connection_editor-ip4-routes-dialog.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ip4-routes-dialog.c' object='nm_connection_editor-ip4-routes-dialog.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-ip4-routes-dialog.o `test -f 'ip4-routes-dialog.c' || echo '$(srcdir)/'`ip4-routes-dialog.c - -nm_connection_editor-ip4-routes-dialog.obj: ip4-routes-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-ip4-routes-dialog.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-ip4-routes-dialog.Tpo -c -o nm_connection_editor-ip4-routes-dialog.obj `if test -f 'ip4-routes-dialog.c'; then $(CYGPATH_W) 'ip4-routes-dialog.c'; else $(CYGPATH_W) '$(srcdir)/ip4-routes-dialog.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-ip4-routes-dialog.Tpo $(DEPDIR)/nm_connection_editor-ip4-routes-dialog.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ip4-routes-dialog.c' object='nm_connection_editor-ip4-routes-dialog.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-ip4-routes-dialog.obj `if test -f 'ip4-routes-dialog.c'; then $(CYGPATH_W) 'ip4-routes-dialog.c'; else $(CYGPATH_W) '$(srcdir)/ip4-routes-dialog.c'; fi` - -nm_connection_editor-ip6-routes-dialog.o: ip6-routes-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-ip6-routes-dialog.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-ip6-routes-dialog.Tpo -c -o nm_connection_editor-ip6-routes-dialog.o `test -f 'ip6-routes-dialog.c' || echo '$(srcdir)/'`ip6-routes-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-ip6-routes-dialog.Tpo $(DEPDIR)/nm_connection_editor-ip6-routes-dialog.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ip6-routes-dialog.c' object='nm_connection_editor-ip6-routes-dialog.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-ip6-routes-dialog.o `test -f 'ip6-routes-dialog.c' || echo '$(srcdir)/'`ip6-routes-dialog.c - -nm_connection_editor-ip6-routes-dialog.obj: ip6-routes-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-ip6-routes-dialog.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-ip6-routes-dialog.Tpo -c -o nm_connection_editor-ip6-routes-dialog.obj `if test -f 'ip6-routes-dialog.c'; then $(CYGPATH_W) 'ip6-routes-dialog.c'; else $(CYGPATH_W) '$(srcdir)/ip6-routes-dialog.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-ip6-routes-dialog.Tpo $(DEPDIR)/nm_connection_editor-ip6-routes-dialog.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ip6-routes-dialog.c' object='nm_connection_editor-ip6-routes-dialog.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-ip6-routes-dialog.obj `if test -f 'ip6-routes-dialog.c'; then $(CYGPATH_W) 'ip6-routes-dialog.c'; else $(CYGPATH_W) '$(srcdir)/ip6-routes-dialog.c'; fi` - -nm_connection_editor-ppp-auth-methods-dialog.o: ppp-auth-methods-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-ppp-auth-methods-dialog.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-ppp-auth-methods-dialog.Tpo -c -o nm_connection_editor-ppp-auth-methods-dialog.o `test -f 'ppp-auth-methods-dialog.c' || echo '$(srcdir)/'`ppp-auth-methods-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-ppp-auth-methods-dialog.Tpo $(DEPDIR)/nm_connection_editor-ppp-auth-methods-dialog.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ppp-auth-methods-dialog.c' object='nm_connection_editor-ppp-auth-methods-dialog.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-ppp-auth-methods-dialog.o `test -f 'ppp-auth-methods-dialog.c' || echo '$(srcdir)/'`ppp-auth-methods-dialog.c - -nm_connection_editor-ppp-auth-methods-dialog.obj: ppp-auth-methods-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-ppp-auth-methods-dialog.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-ppp-auth-methods-dialog.Tpo -c -o nm_connection_editor-ppp-auth-methods-dialog.obj `if test -f 'ppp-auth-methods-dialog.c'; then $(CYGPATH_W) 'ppp-auth-methods-dialog.c'; else $(CYGPATH_W) '$(srcdir)/ppp-auth-methods-dialog.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-ppp-auth-methods-dialog.Tpo $(DEPDIR)/nm_connection_editor-ppp-auth-methods-dialog.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ppp-auth-methods-dialog.c' object='nm_connection_editor-ppp-auth-methods-dialog.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-ppp-auth-methods-dialog.obj `if test -f 'ppp-auth-methods-dialog.c'; then $(CYGPATH_W) 'ppp-auth-methods-dialog.c'; else $(CYGPATH_W) '$(srcdir)/ppp-auth-methods-dialog.c'; fi` - -nm_connection_editor-ce-polkit-button.o: ce-polkit-button.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-ce-polkit-button.o -MD -MP -MF $(DEPDIR)/nm_connection_editor-ce-polkit-button.Tpo -c -o nm_connection_editor-ce-polkit-button.o `test -f 'ce-polkit-button.c' || echo '$(srcdir)/'`ce-polkit-button.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-ce-polkit-button.Tpo $(DEPDIR)/nm_connection_editor-ce-polkit-button.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ce-polkit-button.c' object='nm_connection_editor-ce-polkit-button.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-ce-polkit-button.o `test -f 'ce-polkit-button.c' || echo '$(srcdir)/'`ce-polkit-button.c - -nm_connection_editor-ce-polkit-button.obj: ce-polkit-button.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_connection_editor-ce-polkit-button.obj -MD -MP -MF $(DEPDIR)/nm_connection_editor-ce-polkit-button.Tpo -c -o nm_connection_editor-ce-polkit-button.obj `if test -f 'ce-polkit-button.c'; then $(CYGPATH_W) 'ce-polkit-button.c'; else $(CYGPATH_W) '$(srcdir)/ce-polkit-button.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/nm_connection_editor-ce-polkit-button.Tpo $(DEPDIR)/nm_connection_editor-ce-polkit-button.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ce-polkit-button.c' object='nm_connection_editor-ce-polkit-button.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_connection_editor_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_connection_editor-ce-polkit-button.obj `if test -f 'ce-polkit-button.c'; then $(CYGPATH_W) 'ce-polkit-button.c'; else $(CYGPATH_W) '$(srcdir)/ce-polkit-button.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-uiDATA: $(ui_DATA) - @$(NORMAL_INSTALL) - test -z "$(uidir)" || $(MKDIR_P) "$(DESTDIR)$(uidir)" - @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(uidir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(uidir)" || exit $$?; \ - done - -uninstall-uiDATA: - @$(NORMAL_UNINSTALL) - @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(uidir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(uidir)" && rm -f $$files - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-am -all-am: Makefile $(PROGRAMS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(uidir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-uiDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-binPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-uiDATA - -.MAKE: all check install install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic clean-libtool ctags distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip install-uiDATA installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS uninstall-uiDATA - - -nm-connection-editor-service-glue.h: $(top_srcdir)/src/connection-editor/nm-connection-editor-service.xml - $(AM_V_GEN) dbus-binding-tool --prefix=nm_connection_editor_service --mode=glib-server --output=$@ $< - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-new-connection.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-new-connection.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-new-connection.ui 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-new-connection.ui 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,179 @@ + + + + + + 5 + + False + True + center-always + gtk-dialog-question + dialog + + + True + 2 + + + True + 5 + 12 + + + True + 0 + gtk-dialog-question + 6 + + + False + 0 + + + + + True + 12 + + + True + 0 + Choose a Connection Type + + + + + + + False + False + 0 + + + + + True + 0 + Select the type of connection you wish to create. + +If you are creating a VPN, and the VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed. + True + + + False + False + 1 + + + + + True + 6 + + + True + new_connection_combo_model + + + + 0 + 1 + + + + + 0 + + + + + True + 0 + True + True + + + 1 + + + + + False + False + 6 + 2 + + + + + 1 + + + + + False + 1 + + + + + True + end + + + gtk-cancel + True + True + True + True + False + True + + + False + False + 0 + + + + + Create… + True + True + True + False + + + False + False + 1 + + + + + False + end + 0 + + + + + + cancel_button + create_button + + + + + + + + + + + + + + + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page-bond.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-bond.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page-bond.ui 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-bond.ui 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,506 @@ + + + + + 1 + 10000 + 100 + 1 + 10 + + + 0 + 10000 + 0 + 100 + 100 + + + 0 + 10000 + 0 + 100 + 100 + + + + + + + + + + + + + + + + + Round-robin + + + Active backup + + + XOR + + + Broadcast + + + 802.3ad + + + Adaptive transmit load balancing + + + Adaptive load balancing + + + + + + + + + + + MII (recommended) + + + ARP + + + + + True + False + 12 + 9 + 2 + 12 + 6 + + + True + False + 0 + Bonded _connections: + True + + + 2 + 1 + 2 + GTK_FILL + + + + + + True + False + 0 + _Mode: + True + bond_mode + + + 3 + 4 + GTK_FILL + + + + + + True + False + bond_mode_model + + + + 0 + + + + + 1 + 2 + 3 + 4 + + + + + + True + False + 10 + + + True + True + in + + + True + True + bond_connections_model + False + + + + + + + + + 1 + + + + + + + + + True + True + 0 + + + + + True + False + vertical + 10 + start + + + gtk-add + False + True + True + True + False + True + + + False + True + 0 + + + + + _Edit + False + True + True + True + False + True + + + False + True + 1 + + + + + _Delete + False + True + True + True + False + True + + + False + True + 2 + + + + + False + False + 1 + + + + + 2 + 2 + 3 + + + + + True + False + 0 + Monitoring _frequency: + True + bond_frequency + + + 5 + 6 + GTK_FILL + + + + + True + False + 4 + + + True + True + + bond_frequency_adjustment + True + + + True + True + 0 + + + + + True + False + 0 + ms + + + True + True + 1 + + + + + 1 + 2 + 5 + 6 + GTK_FILL + + + + + True + False + 0 + _Interface name: + True + bond_interface + + + GTK_FILL + + + + + True + True + + + + 1 + 2 + GTK_FILL + + + + + True + False + 0 + _Link Monitoring: + True + bond_monitoring + + + 4 + 5 + GTK_FILL + + + + + True + False + bond_monitoring_model + + + + 0 + + + + + 1 + 2 + 4 + 5 + GTK_FILL + + + + + True + False + 0 + ARP _targets: + True + bond_arp_targets + + + 8 + 9 + GTK_FILL + + + + + True + True + An IP address, or a comma-separated list of IP addresses, to look for when checking the link status. + + + + 1 + 2 + 8 + 9 + GTK_FILL + + + + + True + False + 0 + Link _up delay: + True + bond_updelay + + + 6 + 7 + GTK_FILL + + + + + True + False + 0 + Link _down delay: + True + bond_downdelay + + + 7 + 8 + GTK_FILL + + + + + True + False + 4 + + + True + True + + True + bond_updelay_adjustment + True + True + + + True + True + 0 + + + + + True + False + 0 + ms + + + True + True + 1 + + + + + 1 + 2 + 6 + 7 + GTK_FILL + + + + + True + False + 4 + + + True + True + + True + bond_downdelay_adjustment + True + True + + + True + True + 0 + + + + + True + False + 0 + ms + + + True + True + 1 + + + + + 1 + 2 + 7 + 8 + GTK_FILL + + + + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page-ethernet.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-ethernet.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page-ethernet.ui 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-ethernet.ui 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,273 @@ + + + + + + 10000 + 1 + 10 + 0 + + + + + + + + + Automatic + + + Twisted Pair (TP) + + + Attachment Unit Interface (AUI) + + + BNC + + + Media Independent Interface (MII) + + + + + + + + + + + Automatic + + + 10 Mb/s + + + 100 Mb/s + + + 1 Gb/s + + + 10 Gb/s + + + + + True + 12 + 6 + 2 + 12 + 6 + + + True + 0 + _Port: + True + ethernet_port + + + GTK_FILL + + + + + + True + model1 + + + + 0 + + + + + 1 + 2 + GTK_FILL + + + + + True + 0 + _Speed: + True + ethernet_speed + + + 1 + 2 + GTK_FILL + + + + + + True + model2 + + + + 0 + + + + + 1 + 2 + 1 + 2 + + + + + + Full duple_x + True + True + False + True + True + + + 2 + 2 + 3 + GTK_FILL + + + + + + Aut_onegotiate + True + True + False + True + True + + + 2 + 3 + 4 + GTK_FILL + + + + + + True + 0 + _Device MAC address: + True + + + 4 + 5 + GTK_FILL + + + + + + True + 0 + + + + + + 1 + 2 + 4 + 5 + + + + + + True + 0 + C_loned MAC address: + True + ethernet_cloned_mac + + + 5 + 6 + GTK_FILL + + + + + + True + True + The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55 + + + 1 + 2 + 5 + 6 + + + + + + True + 0 + _MTU: + True + ethernet_mtu + + + 6 + 7 + GTK_FILL + + + + + + True + 6 + + + True + True + adjustment1 + 1 + + + 0 + + + + + True + bytes + + + False + False + 1 + + + + + 1 + 2 + 6 + 7 + GTK_FILL + GTK_FILL + + + + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page-infiniband.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-infiniband.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page-infiniband.ui 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-infiniband.ui 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,154 @@ + + + + + True + False + 12 + 3 + 2 + 12 + 6 + + + True + False + 0 + _Transport mode: + True + + + GTK_FILL + + + + + + True + False + 0 + _Device MAC address: + True + + + 1 + 2 + GTK_FILL + + + + + + True + False + 0 + + + + + + 1 + 2 + 1 + 2 + + + + + + True + False + infiniband_mode_model + + + + 0 + + + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + False + 6 + + + True + True + + True + adjustment1 + 1 + + + True + True + 0 + + + + + True + False + bytes + + + False + False + 1 + + + + + 1 + 2 + 2 + 3 + GTK_FILL + GTK_FILL + + + + + True + False + 0 + _MTU: + True + infiniband_mtu + + + 2 + 3 + GTK_FILL + + + + + + 65520 + 1 + 10 + + + + + + + + + Datagram + + + Connected + + + + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page-mobile.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-mobile.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page-mobile.ui 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-mobile.ui 2012-10-31 13:20:57.000000000 +0000 @@ -23,6 +23,12 @@ Prefer 2G (GPRS/EDGE) + + Prefer 4G (LTE) + + + Use only 4G (LTE) + @@ -391,6 +397,7 @@ + False 2 diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page-vlan.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-vlan.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page-vlan.ui 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-vlan.ui 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,223 @@ + + + + + 100 + 1 + 10 + + + 4095 + 1 + 10 + + + True + False + 12 + 5 + 2 + 12 + 6 + + + True + False + 0 + _Parent interface: + True + + + GTK_FILL + + + + + + True + False + 0 + VLAN interface _name: + True + vlan_name_entry + + + 2 + 3 + GTK_FILL + + + + + + True + False + 0 + _Cloned MAC address: + True + vlan_cloned_mac_entry + + + 3 + 4 + GTK_FILL + + + + + + True + True + + True + + + 1 + 2 + 3 + 4 + GTK_FILL + + + + + True + False + 0 + _MTU: + True + vlan_mtu + + + 4 + 5 + GTK_FILL + + + + + + True + False + 6 + + + True + True + + True + vlan_id_adjustment + 1 + + + True + True + 0 + + + + + True + False + bytes + + + False + False + 1 + + + + + 1 + 2 + 4 + 5 + GTK_FILL + GTK_FILL + + + + + True + False + 0 + VLAN _id: + True + vlan_id_entry + + + 1 + 2 + GTK_FILL + + + + + True + False + + + + + + 1 + 2 + GTK_FILL + + + + + True + True + 4 + + 4 + True + adjustment2 + True + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + True + True + + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + + + + + + Device name + number + + + "vlan" + number + + + + + + + + + + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page-wifi-security.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-wifi-security.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page-wifi-security.ui 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-wifi-security.ui 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + + + + + + + + Foo + + + + + True + 12 + 2 + 2 + 12 + 6 + + + True + 0 + S_ecurity: + True + wifi_security_combo + + + GTK_FILL + + + + + + True + model1 + + + + 0 + + + + + 1 + 2 + GTK_FILL + + + + + True + + + + + + 2 + 1 + 2 + + + + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page-wifi.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-wifi.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page-wifi.ui 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-wifi.ui 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,434 @@ + + + + + + 10000 + 1 + 10 + 0 + + + 500 + 1 + 10 + 0 + + + 500 + 1 + 10 + 0 + + + 196 + 1 + 10 + 0 + + + + + + + + + Automatic + + + A (5 GHz) + + + B/G (2.4 GHz) + + + + + + + + + + + Infrastructure + + + Ad-hoc + + + + + True + 12 + 9 + 2 + 12 + 6 + + + True + 6 + + + True + True + adjustment1 + 1 + + + 0 + + + + + True + 0 + bytes + + + False + False + 1 + + + + + 1 + 2 + 9 + 10 + GTK_FILL + GTK_FILL + + + + + True + 0 + _MTU: + True + wifi_mtu + + + 9 + 10 + GTK_FILL + + + + + + True + 0 + + + + + + 1 + 2 + 7 + 8 + + + + + + True + 0 + _Device MAC address: + True + + + 7 + 8 + GTK_FILL + + + + + + True + True + The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55 + + + 1 + 2 + 8 + 9 + + + + + + True + 0 + C_loned MAC address: + True + wifi_cloned_mac + + + 8 + 9 + GTK_FILL + + + + + + True + 6 + + + True + True + adjustment2 + 1 + + + 0 + + + + + True + 0 + mW + + + False + False + 1 + + + + + 1 + 2 + 6 + 7 + GTK_FILL + GTK_FILL + + + + + True + 0 + Transmission po_wer: + True + wifi_tx_power + + + 6 + 7 + GTK_FILL + + + + + + True + 6 + + + True + True + adjustment3 + 1 + + + 0 + + + + + True + 0 + Mb/s + + + False + False + 1 + + + + + 1 + 2 + 5 + 6 + GTK_FILL + GTK_FILL + + + + + True + 0 + _Rate: + True + wifi_rate + + + 5 + 6 + GTK_FILL + + + + + + True + 0 + + + 1 + 2 + 4 + 5 + + + + + + True + True + + + 1 + 2 + + + + + + True + 0 + _BSSID: + True + + + 4 + 5 + GTK_FILL + + + + + + True + True + adjustment4 + 1 + + + 1 + 2 + 3 + 4 + + + + + + True + 0 + C_hannel: + True + wifi_channel + + + 3 + 4 + GTK_FILL + + + + + + True + model1 + + + + 0 + + + + + 1 + 2 + 2 + 3 + GTK_FILL + GTK_FILL + + + + + True + 0 + Ban_d: + True + wifi_band + + + 2 + 3 + GTK_FILL + + + + + + True + model2 + + + + 0 + + + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 0 + M_ode: + True + wifi_mode + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + SS_ID: + True + wifi_ssid + + + GTK_FILL + + + + + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page-wimax.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-wimax.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page-wimax.ui 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-wimax.ui 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,70 @@ + + + + + True + False + 12 + 2 + 2 + 12 + 6 + + + True + False + 0 + + + + + + 1 + 2 + 1 + 2 + + + + + + True + False + 0 + _Device MAC address: + True + + + 1 + 2 + GTK_FILL + + + + + + True + True + + + 1 + 2 + + + + + + True + False + 0 + _Network name: + True + wimax_name + + + GTK_FILL + + + + + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page-wired.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-wired.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page-wired.ui 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-wired.ui 1970-01-01 00:00:00.000000000 +0000 @@ -1,273 +0,0 @@ - - - - - - 10000 - 1 - 10 - 0 - - - - - - - - - Automatic - - - Twisted Pair (TP) - - - Attachment Unit Interface (AUI) - - - BNC - - - Media Independent Interface (MII) - - - - - - - - - - - Automatic - - - 10 Mb/s - - - 100 Mb/s - - - 1 Gb/s - - - 10 Gb/s - - - - - True - 12 - 6 - 2 - 12 - 6 - - - True - 0 - _Port: - True - wired_port - - - GTK_FILL - - - - - - True - model1 - - - - 0 - - - - - 1 - 2 - GTK_FILL - - - - - True - 0 - _Speed: - True - wired_speed - - - 1 - 2 - GTK_FILL - - - - - - True - model2 - - - - 0 - - - - - 1 - 2 - 1 - 2 - - - - - - Full duple_x - True - True - False - True - True - - - 2 - 2 - 3 - GTK_FILL - - - - - - Aut_onegotiate - True - True - False - True - True - - - 2 - 3 - 4 - GTK_FILL - - - - - - True - 0 - _Device MAC address: - True - - - 4 - 5 - GTK_FILL - - - - - - True - 0 - - - - - - 1 - 2 - 4 - 5 - - - - - - True - 0 - C_loned MAC address: - True - wired_cloned_mac - - - 5 - 6 - GTK_FILL - - - - - - True - True - The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55 - - - 1 - 2 - 5 - 6 - - - - - - True - 0 - _MTU: - True - wired_mtu - - - 6 - 7 - GTK_FILL - - - - - - True - 6 - - - True - True - adjustment1 - 1 - - - 0 - - - - - True - bytes - - - False - False - 1 - - - - - 1 - 2 - 6 - 7 - GTK_FILL - GTK_FILL - - - - diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page-wireless-security.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-wireless-security.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page-wireless-security.ui 2012-03-16 22:12:24.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-wireless-security.ui 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ - - - - - - - - - - - - Foo - - - - - True - 12 - 2 - 2 - 12 - 6 - - - True - 0 - S_ecurity: - True - wireless_security_combo - - - GTK_FILL - - - - - - True - model1 - - - - 0 - - - - - 1 - 2 - GTK_FILL - - - - - True - - - - - - 2 - 1 - 2 - - - - diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page-wireless.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-wireless.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page-wireless.ui 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page-wireless.ui 1970-01-01 00:00:00.000000000 +0000 @@ -1,436 +0,0 @@ - - - - - - 10000 - 1 - 10 - 0 - - - 500 - 1 - 10 - 0 - - - 500 - 1 - 10 - 0 - - - 196 - 1 - 10 - 0 - - - - - - - - - Automatic - - - A (5 GHz) - - - B/G (2.4 GHz) - - - - - - - - - - - Infrastructure - - - Ad-hoc - - - - - True - 12 - 9 - 2 - 12 - 6 - - - True - 6 - - - True - True - adjustment1 - 1 - - - 0 - - - - - True - 0 - bytes - - - False - False - 1 - - - - - 1 - 2 - 9 - 10 - GTK_FILL - GTK_FILL - - - - - True - 0 - _MTU: - True - wireless_mtu - - - 9 - 10 - GTK_FILL - - - - - - True - 0 - - - - - - 1 - 2 - 7 - 8 - - - - - - True - 0 - _Device MAC address: - True - - - 7 - 8 - GTK_FILL - - - - - - True - True - The MAC address entered here will be used as hardware address for the network device this connection is activated on. This feature is known as MAC cloning or spoofing. Example: 00:11:22:33:44:55 - - - 1 - 2 - 8 - 9 - - - - - - True - 0 - C_loned MAC address: - True - wireless_cloned_mac - - - 8 - 9 - GTK_FILL - - - - - - True - 6 - - - True - True - adjustment2 - 1 - - - 0 - - - - - True - 0 - mW - - - False - False - 1 - - - - - 1 - 2 - 6 - 7 - GTK_FILL - GTK_FILL - - - - - True - 0 - Transmission po_wer: - True - wireless_tx_power - - - 6 - 7 - GTK_FILL - - - - - - True - 6 - - - True - True - adjustment3 - 1 - - - 0 - - - - - True - 0 - Mb/s - - - False - False - 1 - - - - - 1 - 2 - 5 - 6 - GTK_FILL - GTK_FILL - - - - - True - 0 - _Rate: - True - wireless_rate - - - 5 - 6 - GTK_FILL - - - - - - True - True - This option locks this connection to the wireless access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55 - - - 1 - 2 - 4 - 5 - - - - - - True - True - - - 1 - 2 - - - - - - True - 0 - _BSSID: - True - wireless_bssid - - - 4 - 5 - GTK_FILL - - - - - - True - True - adjustment4 - 1 - - - 1 - 2 - 3 - 4 - - - - - - True - 0 - C_hannel: - True - wireless_channel - - - 3 - 4 - GTK_FILL - - - - - - True - model1 - - - - 0 - - - - - 1 - 2 - 2 - 3 - GTK_FILL - GTK_FILL - - - - - True - 0 - Ban_d: - True - wireless_band - - - 2 - 3 - GTK_FILL - - - - - - True - model2 - - - - 0 - - - - - 1 - 2 - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - 0 - M_ode: - True - wireless_mode - - - 1 - 2 - GTK_FILL - - - - - - True - 0 - SS_ID: - True - wireless_ssid - - - GTK_FILL - - - - - diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page.c --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page.c 2012-10-31 13:20:57.000000000 +0000 @@ -125,20 +125,81 @@ } char ** -ce_page_get_mac_list (CEPage *self) +ce_page_get_mac_list (CEPage *self, GType device_type, const char *mac_property) { + const GPtrArray *devices; + GPtrArray *macs; + int i; + g_return_val_if_fail (CE_IS_PAGE (self), NULL); - if (CE_PAGE_GET_CLASS (self)->get_mac_list) - return CE_PAGE_GET_CLASS (self)->get_mac_list (self); + if (!self->client) + return NULL; - return NULL; + macs = g_ptr_array_new (); + devices = nm_client_get_devices (self->client); + for (i = 0; devices && (i < devices->len); i++) { + NMDevice *dev = g_ptr_array_index (devices, i); + const char *iface; + char *mac, *item; + + if (!G_TYPE_CHECK_INSTANCE_TYPE (dev, device_type)) + continue; + + g_object_get (G_OBJECT (dev), mac_property, &mac, NULL); + iface = nm_device_get_iface (NM_DEVICE (dev)); + item = g_strdup_printf ("%s (%s)", mac, iface); + g_free (mac); + g_ptr_array_add (macs, item); + } + + g_ptr_array_add (macs, NULL); + return (char **)g_ptr_array_free (macs, FALSE); +} + +void +ce_page_setup_mac_combo (CEPage *self, GtkComboBox *combo, + const char *current_mac, char **mac_list) +{ + char **iter, *active_mac = NULL; + int current_mac_len; + GtkWidget *entry; + + if (current_mac) + current_mac_len = strlen (current_mac); + else + current_mac_len = -1; + + for (iter = mac_list; iter && *iter; iter++) { +#if GTK_CHECK_VERSION (2,24,0) + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), *iter); +#else + gtk_combo_box_append_text (combo, *iter); +#endif + if ( current_mac + && g_ascii_strncasecmp (*iter, current_mac, current_mac_len) == 0 + && ((*iter)[current_mac_len] == '\0' || (*iter)[current_mac_len] == ' ')) + active_mac = *iter; + } + + if (current_mac) { + if (!active_mac) { +#if GTK_CHECK_VERSION (2,24,0) + gtk_combo_box_text_prepend_text (GTK_COMBO_BOX_TEXT (combo), current_mac); +#else + gtk_combo_box_prepend_text (combo, current_mac_str); +#endif + } + + entry = gtk_bin_get_child (GTK_BIN (combo)); + if (entry) + gtk_entry_set_text (GTK_ENTRY (entry), active_mac ? active_mac : current_mac); + } } void -ce_page_mac_to_entry (const GByteArray *mac, GtkEntry *entry) +ce_page_mac_to_entry (const GByteArray *mac, int type, GtkEntry *entry) { - struct ether_addr addr; char *str_addr; g_return_if_fail (entry != NULL); @@ -147,52 +208,19 @@ if (!mac || !mac->len) return; - memcpy (addr.ether_addr_octet, mac->data, ETH_ALEN); - /* we like leading zeros and all-caps, instead - * of what glibc's ether_ntop() gives us - */ - str_addr = g_strdup_printf ("%02X:%02X:%02X:%02X:%02X:%02X", - addr.ether_addr_octet[0], addr.ether_addr_octet[1], - addr.ether_addr_octet[2], addr.ether_addr_octet[3], - addr.ether_addr_octet[4], addr.ether_addr_octet[5]); + if (mac->len != nm_utils_hwaddr_len (type)) + return; + + str_addr = nm_utils_hwaddr_ntoa (mac->data, type); gtk_entry_set_text (entry, str_addr); g_free (str_addr); } -static gboolean -is_mac_valid (const struct ether_addr *addr) -{ - guint8 invalid1[ETH_ALEN] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; - guint8 invalid2[ETH_ALEN] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - guint8 invalid3[ETH_ALEN] = {0x44, 0x44, 0x44, 0x44, 0x44, 0x44}; - guint8 invalid4[ETH_ALEN] = {0x00, 0x30, 0xb4, 0x00, 0x00, 0x00}; /* prism54 dummy MAC */ - - g_return_val_if_fail (addr != NULL, FALSE); - - /* Compare the AP address the card has with invalid ethernet MAC addresses. */ - if (!memcmp (addr->ether_addr_octet, &invalid1, ETH_ALEN)) - return FALSE; - - if (!memcmp (addr->ether_addr_octet, &invalid2, ETH_ALEN)) - return FALSE; - - if (!memcmp (addr->ether_addr_octet, &invalid3, ETH_ALEN)) - return FALSE; - - if (!memcmp (addr->ether_addr_octet, &invalid4, ETH_ALEN)) - return FALSE; - - if (addr->ether_addr_octet[0] & 1) /* Multicast addresses */ - return FALSE; - - return TRUE; -} - GByteArray * -ce_page_entry_to_mac (GtkEntry *entry, gboolean *invalid) +ce_page_entry_to_mac (GtkEntry *entry, int type, gboolean *invalid) { - struct ether_addr *ether; - const char *temp; + const char *temp, *sp; + char *buf = NULL; GByteArray *mac; g_return_val_if_fail (entry != NULL, NULL); @@ -205,15 +233,25 @@ if (!temp || !strlen (temp)) return NULL; - ether = ether_aton (temp); - if (!ether || !is_mac_valid (ether)) { + sp = strchr (temp, ' '); + if (sp) + temp = buf = g_strndup (temp, sp - temp); + + mac = nm_utils_hwaddr_atoba (temp, type); + g_free (buf); + if (!mac) { + if (invalid) + *invalid = TRUE; + return NULL; + } + + if (type == ARPHRD_ETHER && !utils_ether_addr_valid ((struct ether_addr *)mac->data)) { + g_byte_array_free (mac, TRUE); if (invalid) *invalid = TRUE; return NULL; } - mac = g_byte_array_sized_new (ETH_ALEN); - g_byte_array_append (mac, (const guint8 *) ether->ether_addr_octet, ETH_ALEN); return mac; } @@ -495,7 +533,7 @@ ce_page_new_connection (const char *format, const char *ctype, gboolean autoconnect, - PageGetConnectionsFunc get_connections_func, + NMRemoteSettings *settings, gpointer user_data) { NMConnection *connection; @@ -510,7 +548,7 @@ uuid = nm_utils_uuid_generate (); - connections = (*get_connections_func) (user_data); + connections = nm_remote_settings_list_connections (settings); id = ce_page_get_next_available_name (connections, format); g_slist_free (connections); @@ -532,6 +570,7 @@ NMConnection *connection, GtkWindow *parent_window, NMClient *client, + NMRemoteSettings *settings, const char *ui_file, const char *widget_name, const char *title) @@ -549,6 +588,7 @@ NULL)); self->title = g_strdup (title); self->client = client; + self->settings = settings; if (ui_file) { if (!gtk_builder_add_from_file (self->builder, ui_file, &error)) { diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-page.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page.h --- network-manager-applet-0.9.4.1/src/connection-editor/ce-page.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-page.h 2012-10-31 13:20:57.000000000 +0000 @@ -17,7 +17,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2008 - 2011 Red Hat, Inc. + * (C) Copyright 2008 - 2012 Red Hat, Inc. */ #ifndef __CE_PAGE_H__ @@ -31,8 +31,12 @@ #include #include #include +#include #include "utils.h" +/* for ARPHRD_ETHER / ARPHRD_INFINIBAND for MAC utilies */ +#include + typedef void (*PageNewConnectionResultFunc) (NMConnection *connection, gboolean canceled, GError *error, @@ -41,15 +45,16 @@ typedef GSList * (*PageGetConnectionsFunc) (gpointer user_data); typedef void (*PageNewConnectionFunc) (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, PageNewConnectionResultFunc result_func, - PageGetConnectionsFunc get_connections_func, gpointer user_data); #define CE_TYPE_PAGE (ce_page_get_type ()) #define CE_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE, CEPage)) #define CE_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE, CEPageClass)) #define CE_IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE)) -#define CE_IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_PAGE)) +#define CE_IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE)) #define CE_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE, CEPageClass)) #define CE_PAGE_CONNECTION "connection" @@ -70,6 +75,7 @@ NMConnection *connection; GtkWindow *parent_window; NMClient *client; + NMRemoteSettings *settings; gboolean disposed; } CEPage; @@ -79,7 +85,6 @@ /* Virtual functions */ gboolean (*validate) (CEPage *self, NMConnection *connection, GError **error); - char ** (*get_mac_list) (CEPage *self); /* Let the page warn the user if some property needs review */ GtkWidget * (*nag_user) (CEPage *self); @@ -92,6 +97,7 @@ typedef CEPage* (*CEPageNewFunc)(NMConnection *connection, GtkWindow *parent, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error); @@ -104,13 +110,15 @@ gboolean ce_page_validate (CEPage *self, NMConnection *connection, GError **error); -char **ce_page_get_mac_list (CEPage *self); +char **ce_page_get_mac_list (CEPage *self, GType device_type, const char *mac_property); +void ce_page_setup_mac_combo (CEPage *self, GtkComboBox *combo, + const char *current_mac, char **mac_list); void ce_page_changed (CEPage *self); -void ce_page_mac_to_entry (const GByteArray *mac, GtkEntry *entry); +void ce_page_mac_to_entry (const GByteArray *mac, int type, GtkEntry *entry); -GByteArray *ce_page_entry_to_mac (GtkEntry *entry, gboolean *invalid); +GByteArray *ce_page_entry_to_mac (GtkEntry *entry, int type, gboolean *invalid); gint ce_spin_output_with_default (GtkSpinButton *spin, gpointer user_data); @@ -131,13 +139,14 @@ NMConnection *ce_page_new_connection (const char *format, const char *ctype, gboolean autoconnect, - PageGetConnectionsFunc get_connections_func, + NMRemoteSettings *settings, gpointer user_data); CEPage *ce_page_new (GType page_type, NMConnection *connection, GtkWindow *parent_window, NMClient *client, + NMRemoteSettings *settings, const char *ui_file, const char *widget_name, const char *title); diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-polkit-button.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-polkit-button.h --- network-manager-applet-0.9.4.1/src/connection-editor/ce-polkit-button.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-polkit-button.h 2012-10-31 13:20:57.000000000 +0000 @@ -17,7 +17,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2009 Red Hat, Inc. + * (C) Copyright 2009 - 2012 Red Hat, Inc. */ #ifndef __CE_POLKIT_BUTTON_H__ @@ -31,7 +31,7 @@ #define CE_POLKIT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_POLKIT_BUTTON, CEPolkitButton)) #define CE_POKLIT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_POLKIT_BUTTON, CEPolkitButtonClass)) #define CE_IS_POLKIT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_POLKIT_BUTTON)) -#define CE_IS_POLKIT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_POLKIT_BUTTON)) +#define CE_IS_POLKIT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_POLKIT_BUTTON)) #define CE_POLKIT_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_POLKIT_BUTTON, CEPolkitButtonClass)) typedef struct { diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/ce-vpn-wizard.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-vpn-wizard.ui --- network-manager-applet-0.9.4.1/src/connection-editor/ce-vpn-wizard.ui 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/ce-vpn-wizard.ui 1970-01-01 00:00:00.000000000 +0000 @@ -1,175 +0,0 @@ - - - - - - - - - - - - - - - - - 5 - - False - True - center-always - gtk-dialog-question - dialog - - - True - 2 - - - True - 5 - 12 - - - True - 0 - gtk-dialog-question - 6 - - - False - 0 - - - - - True - 12 - - - True - 0 - Choose a VPN Connection Type - - - - - - - False - False - 0 - - - - - True - 0 - Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed. - True - - - False - False - 1 - - - - - True - 6 - - - True - model1 - - - - 0 - - - - - 0 - - - - - True - 0 - True - True - - - 1 - - - - - False - False - 6 - 2 - - - - - 1 - - - - - False - 1 - - - - - True - end - - - gtk-cancel - True - True - True - True - False - True - - - False - False - 0 - - - - - Create… - True - True - True - False - - - False - False - 1 - - - - - False - end - 0 - - - - - - cancel_button - create_button - - - diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/main.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/main.c --- network-manager-applet-0.9.4.1/src/connection-editor/main.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/main.c 2012-10-31 13:20:57.000000000 +0000 @@ -17,7 +17,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * Copyright (C) 2004 - 2011 Red Hat, Inc. + * Copyright (C) 2004 - 2012 Red Hat, Inc. */ #ifdef HAVE_CONFIG_H @@ -41,7 +41,6 @@ #include #include "nm-connection-list.h" #include "nm-connection-editor.h" -#include "page-wired.h" static GMainLoop *loop = NULL; @@ -60,7 +59,7 @@ #define NM_CE_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_CE_SERVICE, NMCEService)) #define NM_CE_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_CE_SERVICE, NMCEServiceClass)) #define NM_IS_CE_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_CE_SERVICE)) -#define NM_IS_CE_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_CE_SERVICE)) +#define NM_IS_CE_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_CE_SERVICE)) #define NM_CE_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_CE_SERVICE, NMCEServiceClass)) typedef struct { @@ -137,6 +136,17 @@ /*************************************************/ static gboolean +idle_create_connection (gpointer user_data) +{ + NMConnectionList *list = user_data; + GType ctype = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (list), "nm-connection-editor-ctype")); + char *detail = g_object_get_data (G_OBJECT (list), "nm-connection-editor-detail"); + + nm_connection_list_create (list, ctype, detail); + return FALSE; +} + +static gboolean handle_arguments (NMConnectionList *list, const char *type, gboolean create, @@ -146,11 +156,23 @@ { gboolean show_list = TRUE; GType ctype; + char *type_tmp = NULL; + const char *p, *detail = NULL; + + if (type) { + p = strchr (type, ':'); + if (p) { + type = type_tmp = g_strndup (type, p - type); + detail = p + 1; + } + } else + type = NM_SETTING_WIRED_SETTING_NAME; /* Grab type to create or show */ - ctype = nm_connection_lookup_setting_type (type ? type : NM_SETTING_WIRED_SETTING_NAME); + ctype = nm_connection_lookup_setting_type (type); if (ctype == 0) { g_warning ("Unknown connection type '%s'", type); + g_free (type_tmp); return TRUE; } @@ -160,9 +182,18 @@ } else if (create) { if (!type) { g_warning ("'create' requested but no connection type given."); + g_free (type_tmp); return TRUE; } - nm_connection_list_create (list, ctype); + + /* If type is "vpn" and the user cancels the "vpn type" dialog, we need + * to quit. But we haven't even started yet. So postpone this to an idle. + */ + g_idle_add (idle_create_connection, list); + g_object_set_data (G_OBJECT (list), "nm-connection-editor-ctype", + GUINT_TO_POINTER (ctype)); + g_object_set_data_full (G_OBJECT (list), "nm-connection-editor-detail", + g_strdup (detail), g_free); show_list = FALSE; } else if (edit_uuid) { @@ -175,6 +206,7 @@ if (show_list == FALSE && quit_after == TRUE) g_signal_connect_swapped (list, "editing-done", G_CALLBACK (g_main_loop_quit), loop); + g_free (type_tmp); return show_list; } @@ -266,7 +298,7 @@ g_hash_table_insert (args, ARG_SHOW, &show_value); } if (uuid) { - g_value_init (&uuid_value, G_TYPE_BOOLEAN); + g_value_init (&uuid_value, G_TYPE_STRING); g_value_set_static_string (&uuid_value, uuid); g_hash_table_insert (args, ARG_UUID, &uuid_value); } diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/new-connection.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/new-connection.c --- network-manager-applet-0.9.4.1/src/connection-editor/new-connection.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/new-connection.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,578 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright 2012 Red Hat, Inc. + */ + +#include + +#include + +#include "new-connection.h" +#include "nm-connection-list.h" +#include "nm-connection-editor.h" +#include "page-ethernet.h" +#include "page-wifi.h" +#include "page-mobile.h" +#include "page-wimax.h" +#include "page-dsl.h" +#include "page-infiniband.h" +#include "page-bond.h" +#include "page-vlan.h" +#include "page-vpn.h" +#include "vpn-helpers.h" + +static GSList *vpn_plugins; + +#define COL_MARKUP 0 +#define COL_SENSITIVE 1 +#define COL_NEW_FUNC 2 +#define COL_VPN_PLUGIN 3 + +static gint +sort_vpn_plugins (gconstpointer a, gconstpointer b) +{ + NMVpnPluginUiInterface *aa = NM_VPN_PLUGIN_UI_INTERFACE (a); + NMVpnPluginUiInterface *bb = NM_VPN_PLUGIN_UI_INTERFACE (b); + char *aa_desc = NULL, *bb_desc = NULL; + int ret; + + g_object_get (aa, NM_VPN_PLUGIN_UI_INTERFACE_NAME, &aa_desc, NULL); + g_object_get (bb, NM_VPN_PLUGIN_UI_INTERFACE_NAME, &bb_desc, NULL); + + ret = g_strcmp0 (aa_desc, bb_desc); + + g_free (aa_desc); + g_free (bb_desc); + + return ret; +} + +static gint +sort_types (gconstpointer a, gconstpointer b) +{ + ConnectionTypeData *typea = (ConnectionTypeData *)a; + ConnectionTypeData *typeb = (ConnectionTypeData *)b; + + if (typea->virtual && !typeb->virtual) + return 1; + else if (typeb->virtual && !typea->virtual) + return -1; + + if (typea->setting_type == NM_TYPE_SETTING_VPN && + typeb->setting_type != NM_TYPE_SETTING_VPN) + return 1; + else if (typeb->setting_type == NM_TYPE_SETTING_VPN && + typea->setting_type != NM_TYPE_SETTING_VPN) + return -1; + + return g_utf8_collate (typea->name, typeb->name); +} + +ConnectionTypeData * +get_connection_type_list (void) +{ + GArray *array; + ConnectionTypeData data; + static ConnectionTypeData *list; + GHashTable *vpn_plugins_hash; + gboolean have_vpn_plugins; + + if (list) + return list; + + array = g_array_new (TRUE, FALSE, sizeof (ConnectionTypeData)); + + data.name = _("Ethernet"); + data.new_connection_func = ethernet_connection_new; + data.setting_type = NM_TYPE_SETTING_WIRED; + data.virtual = FALSE; + g_array_append_val (array, data); + + data.name = _("Wi-Fi"); + data.new_connection_func = wifi_connection_new; + data.setting_type = NM_TYPE_SETTING_WIRELESS; + data.virtual = FALSE; + g_array_append_val (array, data); + + data.name = _("Mobile Broadband"); + data.new_connection_func = mobile_connection_new; + data.setting_type = NM_TYPE_SETTING_GSM; + data.virtual = FALSE; + g_array_append_val (array, data); + + data.name = _("WiMAX"); + data.new_connection_func = wimax_connection_new; + data.setting_type = NM_TYPE_SETTING_WIMAX; + data.virtual = FALSE; + g_array_append_val (array, data); + + data.name = _("DSL"); + data.new_connection_func = dsl_connection_new; + data.setting_type = NM_TYPE_SETTING_PPPOE; + data.virtual = FALSE; + g_array_append_val (array, data); + + data.name = _("InfiniBand"); + data.new_connection_func = infiniband_connection_new; + data.setting_type = NM_TYPE_SETTING_INFINIBAND; + data.virtual = FALSE; + g_array_append_val (array, data); + + data.name = _("Bond"); + data.new_connection_func = bond_connection_new; + data.setting_type = NM_TYPE_SETTING_BOND; + data.virtual = TRUE; + g_array_append_val (array, data); + + data.name = _("VLAN"); + data.new_connection_func = vlan_connection_new; + data.setting_type = NM_TYPE_SETTING_VLAN; + data.virtual = TRUE; + g_array_append_val (array, data); + + /* Add "VPN" only if there are plugins */ + vpn_plugins_hash = vpn_get_plugins (NULL); + have_vpn_plugins = vpn_plugins_hash && g_hash_table_size (vpn_plugins_hash); + if (have_vpn_plugins) { + GHashTableIter iter; + gpointer name, plugin; + + data.name = _("VPN"); + data.new_connection_func = vpn_connection_new; + data.setting_type = NM_TYPE_SETTING_VPN; + data.virtual = TRUE; + g_array_append_val (array, data); + + vpn_plugins = NULL; + g_hash_table_iter_init (&iter, vpn_plugins_hash); + while (g_hash_table_iter_next (&iter, &name, &plugin)) + vpn_plugins = g_slist_prepend (vpn_plugins, plugin); + vpn_plugins = g_slist_sort (vpn_plugins, sort_vpn_plugins); + } + + g_array_sort (array, sort_types); + + return (ConnectionTypeData *)g_array_free (array, FALSE); +} + +static gboolean +combo_row_separator_func (GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + char *label; + + gtk_tree_model_get (model, iter, + COL_MARKUP, &label, + -1); + if (label) { + g_free (label); + return FALSE; + } else + return TRUE; +} + +static void +combo_changed_cb (GtkComboBox *combo, gpointer user_data) +{ + GtkLabel *label = GTK_LABEL (user_data); + GtkTreeModel *model; + GtkTreeIter iter; + NMVpnPluginUiInterface *plugin = NULL; + char *description, *markup; + + if (!gtk_combo_box_get_active_iter (combo, &iter)) + goto error; + + model = gtk_combo_box_get_model (combo); + if (!model) + goto error; + + gtk_tree_model_get (model, &iter, COL_VPN_PLUGIN, &plugin, -1); + if (!plugin) + goto error; + + g_object_get (G_OBJECT (plugin), NM_VPN_PLUGIN_UI_INTERFACE_DESC, &description, NULL); + g_object_unref (plugin); + if (!description) + goto error; + + markup = g_markup_printf_escaped ("%s", description); + gtk_label_set_markup (label, markup); + g_free (markup); + g_free (description); + return; + +error: + gtk_label_set_text (label, ""); +} + +static void +set_up_connection_type_combo (GtkComboBox *combo, + GtkLabel *description_label, + NewConnectionTypeFilterFunc type_filter_func, + gpointer user_data) +{ + GtkListStore *model = GTK_LIST_STORE (gtk_combo_box_get_model (combo)); + ConnectionTypeData *list = get_connection_type_list (); + GtkTreeIter iter; + GSList *p; + int i, vpn_index = -1, active = 0, added = 0; + gboolean import_supported = FALSE; + gboolean added_virtual_header = FALSE; + gboolean show_headers = (type_filter_func == NULL); + char *markup; + + gtk_combo_box_set_row_separator_func (combo, combo_row_separator_func, NULL, NULL); + g_signal_connect (G_OBJECT (combo), "changed", G_CALLBACK (combo_changed_cb), description_label); + + if (show_headers) { + markup = g_strdup_printf ("%s", _("Hardware")); + gtk_list_store_append (model, &iter); + gtk_list_store_set (model, &iter, + COL_MARKUP, markup, + COL_SENSITIVE, FALSE, + -1); + g_free (markup); + } + + for (i = 0; list[i].name; i++) { + if (type_filter_func && !type_filter_func (list[i].setting_type, user_data)) + continue; + + if (list[i].setting_type == NM_TYPE_SETTING_VPN) { + vpn_index = i; + continue; + } else if (list[i].setting_type == NM_TYPE_SETTING_WIRED) + active = added; + + if (list[i].virtual && !added_virtual_header) { + markup = g_strdup_printf ("%s", _("Virtual")); + gtk_list_store_append (model, &iter); + gtk_list_store_set (model, &iter, + COL_MARKUP, markup, + COL_SENSITIVE, FALSE, + -1); + g_free (markup); + added_virtual_header = TRUE; + } + + if (show_headers) + markup = g_markup_printf_escaped (" %s", list[i].name); + else + markup = g_markup_escape_text (list[i].name, -1); + gtk_list_store_append (model, &iter); + gtk_list_store_set (model, &iter, + COL_MARKUP, markup, + COL_SENSITIVE, TRUE, + COL_NEW_FUNC, list[i].new_connection_func, + -1); + g_free (markup); + added++; + } + + if (!vpn_plugins || vpn_index == -1) { + gtk_combo_box_set_active (combo, show_headers ? active + 1 : active); + return; + } + + if (show_headers) { + markup = g_strdup_printf ("%s", _("VPN")); + gtk_list_store_append (model, &iter); + gtk_list_store_set (model, &iter, + COL_MARKUP, markup, + COL_SENSITIVE, FALSE, + -1); + g_free (markup); + } + + for (p = vpn_plugins; p; p = p->next) { + NMVpnPluginUiInterface *plugin = NM_VPN_PLUGIN_UI_INTERFACE (p->data); + char *desc; + + g_object_get (plugin, NM_VPN_PLUGIN_UI_INTERFACE_NAME, &desc, NULL); + + if (show_headers) + markup = g_markup_printf_escaped (" %s", desc); + else + markup = g_markup_escape_text (desc, -1); + gtk_list_store_append (model, &iter); + gtk_list_store_set (model, &iter, + COL_MARKUP, markup, + COL_SENSITIVE, TRUE, + COL_NEW_FUNC, list[vpn_index].new_connection_func, + COL_VPN_PLUGIN, plugin, + -1); + g_free (markup); + g_free (desc); + + if (nm_vpn_plugin_ui_interface_get_capabilities (plugin) & NM_VPN_PLUGIN_UI_CAPABILITY_IMPORT) + import_supported = TRUE; + } + + if (import_supported) { + /* Separator */ + gtk_list_store_append (model, &iter); + + if (show_headers) + markup = g_strdup_printf (" %s", _("Import a saved VPN configuration...")); + else + markup = g_strdup (_("Import a saved VPN configuration...")); + gtk_list_store_append (model, &iter); + gtk_list_store_set (model, &iter, + COL_MARKUP, markup, + COL_SENSITIVE, TRUE, + COL_NEW_FUNC, vpn_connection_import, + -1); + g_free (markup); + } + + gtk_combo_box_set_active (combo, show_headers ? active + 1 : active); +} + +typedef struct { + GtkWindow *parent_window; + NMRemoteSettings *settings; + NewConnectionResultFunc result_func; + gpointer user_data; +} NewConnectionData; + +static void +new_connection_result (NMConnection *connection, + gboolean canceled, + GError *error, + gpointer user_data) +{ + NewConnectionData *ncd = user_data; + NewConnectionResultFunc result_func; + GtkWindow *parent_window; + const char *default_message = _("The connection editor dialog could not be initialized due to an unknown error."); + + result_func = ncd->result_func; + user_data = ncd->user_data; + parent_window = ncd->parent_window; + g_slice_free (NewConnectionData, ncd); + + if (!connection) { + nm_connection_editor_error (parent_window, + _("Could not create new connection"), + "%s", + (error && error->message) ? error->message : default_message); + } + + result_func (connection, user_data); +} + +void +new_connection_of_type (GtkWindow *parent_window, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionFunc new_func, + NewConnectionResultFunc result_func, + gpointer user_data) +{ + NewConnectionData *ncd; + + ncd = g_slice_new (NewConnectionData); + ncd->parent_window = parent_window; + ncd->settings = settings; + ncd->result_func = result_func; + ncd->user_data = user_data; + + new_func (parent_window, + detail, + settings, + new_connection_result, + ncd); +} + +void +new_connection_dialog (GtkWindow *parent_window, + NMRemoteSettings *settings, + NewConnectionTypeFilterFunc type_filter_func, + NewConnectionResultFunc result_func, + gpointer user_data) +{ + new_connection_dialog_full (parent_window, settings, + NULL, NULL, + type_filter_func, + result_func, + user_data); +} + +void +new_connection_dialog_full (GtkWindow *parent_window, + NMRemoteSettings *settings, + const char *primary_label, + const char *secondary_label, + NewConnectionTypeFilterFunc type_filter_func, + NewConnectionResultFunc result_func, + gpointer user_data) +{ + + GtkBuilder *gui; + GtkDialog *type_dialog; + GtkComboBox *combo; + GtkLabel *label; + GtkTreeIter iter; + int response; + PageNewConnectionFunc new_func = NULL; + NMVpnPluginUiInterface *plugin = NULL; + char *vpn_type = NULL; + GError *error = NULL; + + /* load GUI */ + gui = gtk_builder_new (); + if (!gtk_builder_add_from_file (gui, + UIDIR "/ce-new-connection.ui", + &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); + g_object_unref (gui); + return; + } + + type_dialog = GTK_DIALOG (gtk_builder_get_object (gui, "new_connection_type_dialog")); + gtk_window_set_transient_for (GTK_WINDOW (type_dialog), parent_window); + + combo = GTK_COMBO_BOX (gtk_builder_get_object (gui, "new_connection_type_combo")); + label = GTK_LABEL (gtk_builder_get_object (gui, "new_connection_desc_label")); + set_up_connection_type_combo (combo, label, type_filter_func, user_data); + + if (primary_label) { + label = GTK_LABEL (gtk_builder_get_object (gui, "new_connection_primary_label")); + gtk_label_set_text (label, primary_label); + } + if (secondary_label) { + label = GTK_LABEL (gtk_builder_get_object (gui, "new_connection_secondary_label")); + gtk_label_set_text (label, secondary_label); + } + + response = gtk_dialog_run (type_dialog); + if (response == GTK_RESPONSE_OK) { + gtk_combo_box_get_active_iter (combo, &iter); + gtk_tree_model_get (gtk_combo_box_get_model (combo), &iter, + COL_NEW_FUNC, &new_func, + COL_VPN_PLUGIN, &plugin, + -1); + + if (plugin) { + g_object_get (G_OBJECT (plugin), NM_VPN_PLUGIN_UI_INTERFACE_SERVICE, &vpn_type, NULL); + g_object_unref (plugin); + } + } + + gtk_widget_destroy (GTK_WIDGET (type_dialog)); + g_object_unref (gui); + + if (new_func) + new_connection_of_type (parent_window, vpn_type, settings, new_func, result_func, user_data); + else + result_func (NULL, user_data); + + g_free (vpn_type); +} + +typedef struct { + GtkWindow *parent_window; + NMConnectionEditor *editor; + DeleteConnectionResultFunc result_func; + gpointer user_data; +} DeleteInfo; + +static void +delete_cb (NMRemoteConnection *connection, + GError *error, + gpointer user_data) +{ + DeleteInfo *info = user_data; + DeleteConnectionResultFunc result_func; + + if (error) { + nm_connection_editor_error (info->parent_window, + _("Connection delete failed"), + "%s", error->message); + } + + if (info->editor) { + nm_connection_editor_set_busy (info->editor, FALSE); + g_object_unref (info->editor); + } + if (info->parent_window) + g_object_unref (info->parent_window); + + result_func = info->result_func; + user_data = info->user_data; + g_free (info); + + if (result_func) + (*result_func) (connection, error == NULL, user_data); +} + +void +delete_connection (GtkWindow *parent_window, + NMRemoteConnection *connection, + DeleteConnectionResultFunc result_func, + gpointer user_data) +{ + NMConnectionEditor *editor; + NMSettingConnection *s_con; + GtkWidget *dialog; + const char *id; + guint result; + DeleteInfo *info; + + editor = nm_connection_editor_get (NM_CONNECTION (connection)); + if (editor && nm_connection_editor_get_busy (editor)) { + /* Editor already has an operation in progress, raise it */ + nm_connection_editor_present (editor); + return; + } + + s_con = nm_connection_get_setting_connection (NM_CONNECTION (connection)); + g_assert (s_con); + id = nm_setting_connection_get_id (s_con); + + dialog = gtk_message_dialog_new (parent_window, + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_NONE, + _("Are you sure you wish to delete the connection %s?"), + id); + gtk_dialog_add_buttons (GTK_DIALOG (dialog), + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_DELETE, GTK_RESPONSE_YES, + NULL); + + result = gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + + if (result != GTK_RESPONSE_YES) + return; + + info = g_malloc0 (sizeof (DeleteInfo)); + info->editor = editor ? g_object_ref (editor) : NULL; + info->parent_window = parent_window ? g_object_ref (parent_window) : NULL; + info->result_func = result_func; + info->user_data = user_data; + + if (editor) + nm_connection_editor_set_busy (editor, TRUE); + + nm_remote_connection_delete (connection, delete_cb, info); +} diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/new-connection.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/new-connection.h --- network-manager-applet-0.9.4.1/src/connection-editor/new-connection.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/new-connection.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,71 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright 2012 Red Hat, Inc. + */ + +#ifndef __CONNECTION_HELPERS_H__ +#define __CONNECTION_HELPERS_H__ + +#include "ce-page.h" +#include + +typedef struct { + const char *name; + GType setting_type; + PageNewConnectionFunc new_connection_func; + gboolean virtual; +} ConnectionTypeData; + +ConnectionTypeData *get_connection_type_list (void); + +typedef gboolean (*NewConnectionTypeFilterFunc) (GType type, + gpointer user_data); +typedef void (*NewConnectionResultFunc) (NMConnection *connection, + gpointer user_data); + +void new_connection_dialog (GtkWindow *parent_window, + NMRemoteSettings *settings, + NewConnectionTypeFilterFunc type_filter_func, + NewConnectionResultFunc result_func, + gpointer user_data); +void new_connection_dialog_full (GtkWindow *parent_window, + NMRemoteSettings *settings, + const char *primary_label, + const char *secondary_label, + NewConnectionTypeFilterFunc type_filter_func, + NewConnectionResultFunc result_func, + gpointer user_data); + +void new_connection_of_type (GtkWindow *parent_window, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionFunc new_func, + NewConnectionResultFunc result_func, + gpointer user_data); + +typedef void (*DeleteConnectionResultFunc) (NMRemoteConnection *connection, + gboolean deleted, + gpointer user_data); + +void delete_connection (GtkWindow *parent_window, + NMRemoteConnection *connection, + DeleteConnectionResultFunc result_func, + gpointer user_data); + +#endif /* __CONNECTION_HELPERS_H__ */ + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/nm-connection-editor.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/nm-connection-editor.c --- network-manager-applet-0.9.4.1/src/connection-editor/nm-connection-editor.c 2012-03-16 22:38:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/nm-connection-editor.c 2012-10-31 13:20:57.000000000 +0000 @@ -45,6 +45,9 @@ #include #include #include +#include +#include +#include #include #include @@ -53,17 +56,22 @@ #include "nma-marshal.h" #include "ce-page.h" -#include "page-wired.h" -#include "page-wired-security.h" -#include "page-wireless.h" -#include "page-wireless-security.h" +#include "page-ethernet.h" +#include "page-8021x-security.h" +#include "page-wifi.h" +#include "page-wifi-security.h" #include "page-ip4.h" #include "page-ip6.h" #include "page-dsl.h" #include "page-mobile.h" #include "page-ppp.h" #include "page-vpn.h" +#include "page-wimax.h" +#include "page-infiniband.h" +#include "page-bond.h" +#include "page-vlan.h" #include "ce-polkit-button.h" +#include "vpn-helpers.h" G_DEFINE_TYPE (NMConnectionEditor, nm_connection_editor, G_TYPE_OBJECT) @@ -74,6 +82,8 @@ static guint editor_signals[EDITOR_LAST_SIGNAL] = { 0 }; +static GHashTable *active_editors; + static gboolean nm_connection_editor_set_connection (NMConnectionEditor *editor, NMConnection *connection, GError **error); @@ -184,7 +194,7 @@ gtk_widget_set_sensitive (widget, sensitive); widget = GTK_WIDGET (gtk_builder_get_object (editor->builder, "connection_autoconnect")); - gtk_widget_set_sensitive (widget, sensitive); + gtk_widget_set_sensitive (widget, sensitive && !nm_setting_connection_get_master (s_con)); widget = GTK_WIDGET (gtk_builder_get_object (editor->builder, "connection_name")); gtk_widget_set_sensitive (widget, sensitive); @@ -234,6 +244,7 @@ done: ce_polkit_button_set_master_sensitive (CE_POLKIT_BUTTON (editor->ok_button), valid); + gtk_widget_set_sensitive (editor->export_button, valid); update_sensitivity (editor); } @@ -297,6 +308,7 @@ editor->window = GTK_WIDGET (gtk_builder_get_object (editor->builder, "nm-connection-editor")); editor->cancel_button = GTK_WIDGET (gtk_builder_get_object (editor->builder, "cancel_button")); + editor->export_button = GTK_WIDGET (gtk_builder_get_object (editor->builder, "export_button")); editor->all_checkbutton = GTK_WIDGET (gtk_builder_get_object (editor->builder, "system_checkbutton")); } @@ -317,6 +329,8 @@ goto out; editor->disposed = TRUE; + g_hash_table_remove (active_editors, editor->orig_connection); + g_slist_foreach (editor->initializing_pages, (GFunc) g_object_unref, NULL); g_slist_free (editor->initializing_pages); editor->initializing_pages = NULL; @@ -348,6 +362,10 @@ gtk_widget_destroy (editor->window); editor->window = NULL; } + if (editor->parent_window) { + g_object_unref (editor->parent_window); + editor->parent_window = NULL; + } if (editor->builder) { g_object_unref (editor->builder); editor->builder = NULL; @@ -356,6 +374,8 @@ g_signal_handler_disconnect (editor->client, editor->permission_id); g_object_unref (editor->client); + g_object_unref (editor->settings); + out: G_OBJECT_CLASS (nm_connection_editor_parent_class)->dispose (object); } @@ -375,27 +395,30 @@ G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (NMConnectionEditorClass, done), NULL, NULL, - _nma_marshal_VOID__INT_POINTER, - G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_POINTER); + _nma_marshal_VOID__ENUM, + G_TYPE_NONE, 1, GTK_TYPE_RESPONSE_TYPE); } NMConnectionEditor * -nm_connection_editor_new (NMConnection *connection, +nm_connection_editor_new (GtkWindow *parent_window, + NMConnection *connection, NMClient *client, - GError **error) + NMRemoteSettings *settings) { NMConnectionEditor *editor; GtkWidget *hbox; + gboolean is_new; + GError *error = NULL; g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); - editor = g_object_new (NM_TYPE_CONNECTION_EDITOR, NULL); - if (!editor) { - g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "%s", _("Error creating connection editor dialog.")); - return NULL; - } + is_new = !nm_remote_settings_get_connection_by_uuid (settings, nm_connection_get_uuid (connection)); + editor = g_object_new (NM_TYPE_CONNECTION_EDITOR, NULL); + editor->parent_window = parent_window ? g_object_ref (parent_window) : NULL; editor->client = g_object_ref (client); + editor->settings = g_object_ref (settings); + editor->is_new_connection = is_new; editor->can_modify = nm_client_get_permission_result (client, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM); editor->permission_id = g_signal_connect (editor->client, @@ -420,14 +443,60 @@ gtk_box_pack_end (GTK_BOX (hbox), editor->ok_button, TRUE, TRUE, 0); gtk_widget_show_all (editor->ok_button); - if (!nm_connection_editor_set_connection (editor, connection, error)) { + if (!nm_connection_editor_set_connection (editor, connection, &error)) { + nm_connection_editor_error (parent_window, + is_new ? _("Could not create connection") : _("Could not edit connection"), + "%s", + error ? error->message : _("Unknown error creating connection editor dialog.")); + g_clear_error (&error); g_object_unref (editor); return NULL; } + if (!active_editors) + active_editors = g_hash_table_new (NULL, NULL); + g_hash_table_insert (active_editors, connection, editor); + return editor; } +NMConnectionEditor * +nm_connection_editor_get (NMConnection *connection) +{ + if (!active_editors) + return NULL; + + return g_hash_table_lookup (active_editors, connection); +} + +/* Returns an editor for @slave's master, if any */ +NMConnectionEditor * +nm_connection_editor_get_master (NMConnection *slave) +{ + GHashTableIter iter; + gpointer connection, editor; + NMSettingConnection *s_con; + const char *master; + + if (!active_editors) + return NULL; + + s_con = nm_connection_get_setting_connection (slave); + master = nm_setting_connection_get_master (s_con); + if (!master) + return NULL; + + g_hash_table_iter_init (&iter, active_editors); + while (g_hash_table_iter_next (&iter, &connection, &editor)) { + if (!g_strcmp0 (master, nm_connection_get_uuid (connection))) + return editor; + if (!g_strcmp0 (master, nm_connection_get_virtual_iface_name (connection))) + return editor; + } + + return NULL; +} + NMConnection * nm_connection_editor_get_connection (NMConnectionEditor *editor) { @@ -471,15 +540,26 @@ } gboolean -nm_connection_editor_update_connection (NMConnectionEditor *editor, GError **error) +nm_connection_editor_update_connection (NMConnectionEditor *editor) { GHashTable *settings; gboolean everyone = FALSE; + GError *error = NULL; g_return_val_if_fail (NM_IS_CONNECTION_EDITOR (editor), FALSE); - if (!nm_connection_verify (editor->connection, error)) + if (!nm_connection_verify (editor->connection, &error)) { + /* In theory, this cannot happen: the "Save..." button should only + * be sensitive if the connection is valid. + */ + nm_connection_editor_error (GTK_WINDOW (editor->window), + _("Error saving connection"), + _("The property '%s' / '%s' is invalid: %d"), + g_type_name (nm_connection_lookup_setting_type_by_quark (error->domain)), + error->message, error->code); + g_error_free (error); return FALSE; + } /* Update secret flags at the end after all other settings have updated, * otherwise the secret flags we set here might be overwritten during @@ -575,7 +655,11 @@ if (error) { gtk_widget_hide (editor->window); - g_signal_emit (editor, editor_signals[EDITOR_DONE], 0, GTK_RESPONSE_NONE, error); + nm_connection_editor_error (editor->parent_window, + _("Error initializing editor"), + "%s", error->message); + g_error_free (error); + g_signal_emit (editor, editor_signals[EDITOR_DONE], 0, GTK_RESPONSE_NONE); return; } @@ -588,6 +672,9 @@ gtk_container_remove (GTK_CONTAINER (parent), widget); gtk_notebook_append_page (notebook, widget, label); + if (CE_IS_PAGE_VPN (page) && ce_page_vpn_can_export (CE_PAGE_VPN (page))) + gtk_widget_show (editor->export_button); + /* Move the page from the initializing list to the main page list */ editor->initializing_pages = g_slist_remove (editor->initializing_pages, page); editor->pages = g_slist_append (editor->pages, page); @@ -691,7 +778,8 @@ g_return_val_if_fail (func != NULL, FALSE); g_return_val_if_fail (connection != NULL, FALSE); - page = (*func) (connection, GTK_WINDOW (editor->window), editor->client, &secrets_setting_name, error); + page = (*func) (connection, GTK_WINDOW (editor->window), editor->client, editor->settings, + &secrets_setting_name, error); if (page) { g_object_set_data_full (G_OBJECT (page), SECRETS_TAG, @@ -712,8 +800,10 @@ { NMSettingConnection *s_con; const char *connection_type; + const char *slave_type; gboolean success = FALSE; GSList *iter, *copy; + gboolean add_ip4 = TRUE, add_ip6 = TRUE; g_return_val_if_fail (NM_IS_CONNECTION_EDITOR (editor), FALSE); g_return_val_if_fail (NM_IS_CONNECTION (orig_connection), FALSE); @@ -732,49 +822,59 @@ connection_type = nm_setting_connection_get_connection_type (s_con); if (!strcmp (connection_type, NM_SETTING_WIRED_SETTING_NAME)) { - if (!add_page (editor, ce_page_wired_new, editor->connection, error)) - goto out; - if (!add_page (editor, ce_page_wired_security_new, editor->connection, error)) + if (!add_page (editor, ce_page_ethernet_new, editor->connection, error)) goto out; - if (!add_page (editor, ce_page_ip4_new, editor->connection, error)) - goto out; - if (!add_page (editor, ce_page_ip6_new, editor->connection, error)) + if (!add_page (editor, ce_page_8021x_security_new, editor->connection, error)) goto out; } else if (!strcmp (connection_type, NM_SETTING_WIRELESS_SETTING_NAME)) { - if (!add_page (editor, ce_page_wireless_new, editor->connection, error)) - goto out; - if (!add_page (editor, ce_page_wireless_security_new, editor->connection, error)) + if (!add_page (editor, ce_page_wifi_new, editor->connection, error)) goto out; - if (!add_page (editor, ce_page_ip4_new, editor->connection, error)) - goto out; - if (!add_page (editor, ce_page_ip6_new, editor->connection, error)) + if (!add_page (editor, ce_page_wifi_security_new, editor->connection, error)) goto out; } else if (!strcmp (connection_type, NM_SETTING_VPN_SETTING_NAME)) { if (!add_page (editor, ce_page_vpn_new, editor->connection, error)) goto out; - if (!add_page (editor, ce_page_ip4_new, editor->connection, error)) - goto out; + add_ip6 = vpn_supports_ipv6 (editor->connection); } else if (!strcmp (connection_type, NM_SETTING_PPPOE_SETTING_NAME)) { if (!add_page (editor, ce_page_dsl_new, editor->connection, error)) goto out; - if (!add_page (editor, ce_page_wired_new, editor->connection, error)) + if (!add_page (editor, ce_page_ethernet_new, editor->connection, error)) goto out; if (!add_page (editor, ce_page_ppp_new, editor->connection, error)) goto out; - if (!add_page (editor, ce_page_ip4_new, editor->connection, error)) - goto out; + add_ip6 = FALSE; } else if (!strcmp (connection_type, NM_SETTING_GSM_SETTING_NAME) || !strcmp (connection_type, NM_SETTING_CDMA_SETTING_NAME)) { if (!add_page (editor, ce_page_mobile_new, editor->connection, error)) goto out; if (!add_page (editor, ce_page_ppp_new, editor->connection, error)) goto out; - if (!add_page (editor, ce_page_ip4_new, editor->connection, error)) + add_ip6 = FALSE; + } else if (!strcmp (connection_type, NM_SETTING_WIMAX_SETTING_NAME)) { + if (!add_page (editor, ce_page_wimax_new, editor->connection, error)) + goto out; + } else if (!strcmp (connection_type, NM_SETTING_INFINIBAND_SETTING_NAME)) { + if (!add_page (editor, ce_page_infiniband_new, editor->connection, error)) + goto out; + } else if (!strcmp (connection_type, NM_SETTING_BOND_SETTING_NAME)) { + if (!add_page (editor, ce_page_bond_new, editor->connection, error)) + goto out; + } else if (!strcmp (connection_type, NM_SETTING_VLAN_SETTING_NAME)) { + if (!add_page (editor, ce_page_vlan_new, editor->connection, error)) goto out; } else { g_warning ("Unhandled setting type '%s'", connection_type); } + slave_type = nm_setting_connection_get_slave_type (s_con); + if (!g_strcmp0 (slave_type, NM_SETTING_BOND_SETTING_NAME)) + add_ip4 = add_ip6 = FALSE; + + if (add_ip4 && !add_page (editor, ce_page_ip4_new, editor->connection, error)) + goto out; + if (add_ip6 && !add_page (editor, ce_page_ip6_new, editor->connection, error)) + goto out; + /* After all pages are created, then kick off secrets requests that any * the pages may need to make; if they don't need any secrets, then let * them finish initialization. The list might get modified during the loop @@ -828,7 +928,13 @@ { NMConnectionEditor *self = NM_CONNECTION_EDITOR (user_data); - g_signal_emit (self, editor_signals[EDITOR_DONE], 0, GTK_RESPONSE_CANCEL, NULL); + /* If the dialog is busy waiting for authorization or something, + * don't destroy it until authorization returns. + */ + if (self->busy) + return; + + g_signal_emit (self, editor_signals[EDITOR_DONE], 0, GTK_RESPONSE_CANCEL); } static void @@ -854,10 +960,58 @@ } static void +added_connection_cb (NMRemoteSettings *settings, + NMRemoteConnection *connection, + GError *error, + gpointer user_data) +{ + NMConnectionEditor *self = user_data; + + nm_connection_editor_set_busy (self, FALSE); + + if (error) { + nm_connection_editor_error (self->parent_window, _("Connection add failed"), + "%s", error->message); + + /* Leave the editor open */ + return; + } + + g_signal_emit (self, editor_signals[EDITOR_DONE], 0, GTK_RESPONSE_OK); +} + +static void +update_complete (NMConnectionEditor *self, GError *error) +{ + nm_connection_editor_set_busy (self, FALSE); + g_signal_emit (self, editor_signals[EDITOR_DONE], 0, GTK_RESPONSE_OK); +} + +static void +updated_connection_cb (NMRemoteConnection *connection, GError *error, gpointer user_data) +{ + NMConnectionEditor *self = NM_CONNECTION_EDITOR (user_data); + + /* Clear secrets so they don't lay around in memory; they'll get requested + * again anyway next time the connection is edited. + */ + nm_connection_clear_secrets (NM_CONNECTION (connection)); + + update_complete (self, error); +} + +static void ok_button_clicked_cb (GtkWidget *widget, gpointer user_data) { NMConnectionEditor *self = NM_CONNECTION_EDITOR (user_data); GSList *iter; + GError *error = NULL; + + /* If the dialog is busy waiting for authorization or something, + * don't destroy it until authorization returns. + */ + if (self->busy) + return; /* Make sure the user is warned about insecure security options like no * CA certificate. @@ -875,7 +1029,70 @@ } } - g_signal_emit (self, editor_signals[EDITOR_DONE], 0, GTK_RESPONSE_OK, NULL); + if (!nm_connection_editor_update_connection (self)) + return; + + nm_connection_editor_set_busy (self, TRUE); + + if (self->is_new_connection) { + nm_remote_settings_add_connection (self->settings, + self->orig_connection, + added_connection_cb, + self); + } else { + GHashTable *new_settings; + + /* Connections need the certificates filled because the applet + * private values that we use to store the path to + * certificates and private keys don't go through D-Bus; they + * are private of course! + */ + new_settings = nm_connection_to_hash (self->orig_connection, NM_SETTING_HASH_FLAG_ALL); + if (!nm_connection_replace_settings (self->orig_connection, new_settings, &error)) { + update_complete (self, error); + g_error_free (error); + return; + } + + nm_remote_connection_commit_changes (NM_REMOTE_CONNECTION (self->orig_connection), + updated_connection_cb, self); + } +} + +static void +vpn_export_get_secrets_cb (NMRemoteConnection *connection, + GHashTable *secrets, + GError *error, + gpointer user_data) +{ + NMConnection *tmp; + + /* We don't really care about errors; if the user couldn't authenticate + * then just let them export everything except secrets. Duplicate the + * connection so that we don't let secrets sit around in the original + * one. + */ + tmp = nm_connection_duplicate (NM_CONNECTION (connection)); + g_assert (tmp); + if (secrets) + nm_connection_update_secrets (tmp, NM_SETTING_VPN_SETTING_NAME, secrets, NULL); + vpn_export (tmp); + g_object_unref (tmp); +} + +static void +export_button_clicked_cb (GtkWidget *widget, gpointer user_data) +{ + NMConnectionEditor *self = NM_CONNECTION_EDITOR (user_data); + + if (NM_IS_REMOTE_CONNECTION (self->orig_connection)) { + /* Grab secrets if we can */ + nm_remote_connection_get_secrets (NM_REMOTE_CONNECTION (self->orig_connection), + NM_SETTING_VPN_SETTING_NAME, + vpn_export_get_secrets_cb, + self); + } else + vpn_export (self->connection); } void @@ -890,6 +1107,8 @@ G_CALLBACK (ok_button_clicked_cb), self); g_signal_connect (G_OBJECT (self->cancel_button), "clicked", G_CALLBACK (cancel_button_clicked_cb), self); + g_signal_connect (G_OBJECT (self->export_button), "clicked", + G_CALLBACK (export_button_clicked_cb), self); nm_connection_editor_present (self); } @@ -921,3 +1140,29 @@ } } +void +nm_connection_editor_error (GtkWindow *parent, const char *heading, const char *format, ...) +{ + GtkWidget *dialog; + va_list args; + char *message; + + dialog = gtk_message_dialog_new (parent, + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_CLOSE, + "%s", heading); + + va_start (args, format); + message = g_strdup_vprintf (format, args); + va_end (args); + + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", message); + g_free (message); + + gtk_widget_show_all (dialog); + gtk_window_present (GTK_WINDOW (dialog)); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); +} + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/nm-connection-editor.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/nm-connection-editor.h --- network-manager-applet-0.9.4.1/src/connection-editor/nm-connection-editor.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/nm-connection-editor.h 2012-10-31 13:20:57.000000000 +0000 @@ -25,6 +25,7 @@ #include #include +#include #include "utils.h" #define NM_TYPE_CONNECTION_EDITOR (nm_connection_editor_get_type ()) @@ -37,12 +38,15 @@ GObject parent; gboolean disposed; + GtkWindow *parent_window; NMClient *client; guint permission_id; + NMRemoteSettings *settings; /* private data */ NMConnection *connection; NMConnection *orig_connection; + gboolean is_new_connection; GetSecretsInfo *secrets_call; GSList *pending_secrets_calls; @@ -56,6 +60,7 @@ GtkWidget *window; GtkWidget *ok_button; GtkWidget *cancel_button; + GtkWidget *export_button; guint nag_id; gboolean busy; @@ -70,16 +75,24 @@ } NMConnectionEditorClass; GType nm_connection_editor_get_type (void); -NMConnectionEditor *nm_connection_editor_new (NMConnection *connection, +NMConnectionEditor *nm_connection_editor_new (GtkWindow *parent_window, + NMConnection *connection, NMClient *client, - GError **error); + NMRemoteSettings *settings); +NMConnectionEditor *nm_connection_editor_get (NMConnection *connection); +NMConnectionEditor *nm_connection_editor_get_master (NMConnection *slave); void nm_connection_editor_present (NMConnectionEditor *editor); void nm_connection_editor_run (NMConnectionEditor *editor); NMConnection * nm_connection_editor_get_connection (NMConnectionEditor *editor); -gboolean nm_connection_editor_update_connection (NMConnectionEditor *editor, GError **error); +gboolean nm_connection_editor_update_connection (NMConnectionEditor *editor); GtkWindow * nm_connection_editor_get_window (NMConnectionEditor *editor); gboolean nm_connection_editor_get_busy (NMConnectionEditor *editor); void nm_connection_editor_set_busy (NMConnectionEditor *editor, gboolean busy); +void nm_connection_editor_error (GtkWindow *parent, + const char *heading, + const char *format, + ...); + #endif diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/nm-connection-editor.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/nm-connection-editor.ui --- network-manager-applet-0.9.4.1/src/connection-editor/nm-connection-editor.ui 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/nm-connection-editor.ui 2012-10-31 13:20:57.000000000 +0000 @@ -1,8 +1,8 @@ - + - - + + False 5 Network Connections center @@ -11,468 +11,113 @@ preferences-system-network dialog - + True + False vertical 2 - - + + True - True - 5 + False + end - - True - 6 - 6 - - - True - True - automatic - automatic - in - - - True - True - False - True - - - - - 0 - - - - - True - vertical - 6 - start - - - gtk-add - True - True - True - False - True - - - False - False - 0 - - - - - - - - - - - False - 1 - - - - - - + + gtk-close + False True - Wired + True + True + False + False + True - False + False + False + 0 + + + False + True + end + 0 + + + + + True + False + 6 + 6 - + True - 6 - 6 + True + never + in - + True True - automatic - automatic - in - - - True - True - False - True - - - - - 0 - - - - - True - vertical - 6 - start - - - gtk-add - True - True - True - False - True - - - False - False - 0 - - - - - - - + True + + - - False - 1 - - 1 - - - - - True - Wireless - - - 1 - False + True + True + 0 - + True - 6 + False 6 + start - + + gtk-add + False True True - automatic - automatic - in - - - True - True - False - True - - - - - 0 - - - - - True - vertical - 6 - start - - - gtk-add - True - True - True - False - True - - - False - False - 0 - - - - - - - - + True + True + False + True False - 1 - - - - - 2 - - - - - True - Mobile Broadband - - - 2 - False - - - - - True - 6 - 6 - - - True - True - automatic - automatic - in - - - True - True - False - True - - - - + False 0 - - True - vertical - 6 - - - True - vertical - 6 - start - - - gtk-add - True - True - True - False - True - - - False - False - 0 - - - - - - - - - - - False - 0 - - - - - True - - - False - 1 - - - - - True - vertical - 6 - end - - - _Import - True - True - True - True - - - False - False - 0 - - - - - E_xport - True - True - True - True - - - False - False - 1 - - - - - False - 2 - - - - - False - 1 - - - - - 3 - - - - - True - VPN - - - 3 - False - - - - - True - 6 - 6 - - - True - True - automatic - automatic - in - - - True - True - False - True - - - - - 0 - + - - True - vertical - 6 - start - - - gtk-add - True - True - True - False - True - - - False - False - 0 - - - - - - - - - - - False - 1 - + - 4 - - - - - True - DSL - - - 4 - False + False + True + 1 True + True 1 - - - True - end - - - gtk-close - True - True - True - False - True - - - False - False - 0 - - - - - False - end - 0 - - @@ -480,6 +125,7 @@ + False center True preferences-system-network @@ -487,21 +133,23 @@ True - vertical + False 6 True + False 5 - vertical 6 True + False 12 True + False Connection _name: True connection_name @@ -518,24 +166,59 @@ True + True + True 1 False + True 0 - - Connect _automatically + True - True - False - True - True - True + False + + + Connect _automatically + False + True + True + False + False + True + 0 + True + True + + + True + True + 0 + + + + + A_vailable to all users + False + True + True + False + False + True + 0 + True + + + False + False + 1 + + False @@ -549,39 +232,47 @@ True + True + True 2 + True + True 0 True + False 6 True + False 6 - - Available to all users - True + + _Export... + False True - False - True + True + False + True False - False + True 0 False + True 6 0 @@ -589,14 +280,17 @@ True + False 6 end gtk-cancel + False True True False + False True @@ -620,6 +314,7 @@ False + True 6 1 diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/nm-connection-list.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/nm-connection-list.c --- network-manager-applet-0.9.4.1/src/connection-editor/nm-connection-list.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/nm-connection-list.c 2012-10-31 13:20:57.000000000 +0000 @@ -42,20 +42,17 @@ #include #include #include -#include +#include +#include #include #include #include "ce-page.h" -#include "page-wired.h" -#include "page-wireless.h" -#include "page-mobile.h" -#include "page-dsl.h" -#include "page-vpn.h" #include "nm-connection-editor.h" #include "nm-connection-list.h" #include "vpn-helpers.h" #include "ce-polkit-button.h" +#include "new-connection.h" G_DEFINE_TYPE (NMConnectionList, nm_connection_list, G_TYPE_OBJECT) @@ -67,44 +64,12 @@ static guint list_signals[LIST_LAST_SIGNAL] = { 0 }; -#define COL_ID 0 -#define COL_LAST_USED 1 -#define COL_TIMESTAMP 2 -#define COL_CONNECTION 3 - -typedef struct { - NMConnectionList *list; - GtkTreeView *treeview; - GtkWindow *list_window; - GtkWidget *button; - PageNewConnectionFunc new_func; -} ActionInfo; - -static void -error_dialog (GtkWindow *parent, const char *heading, const char *format, ...) -{ - GtkWidget *dialog; - va_list args; - char *message; - - dialog = gtk_message_dialog_new (parent, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_CLOSE, - "%s", heading); - - va_start (args, format); - message = g_strdup_vprintf (format, args); - va_end (args); - - gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", message); - g_free (message); - - gtk_widget_show_all (dialog); - gtk_window_present (GTK_WINDOW (dialog)); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); -} +#define COL_ID 0 +#define COL_LAST_USED 1 +#define COL_TIMESTAMP 2 +#define COL_CONNECTION 3 +#define COL_GTYPE 4 +#define COL_ORDER 5 static NMRemoteConnection * get_active_connection (GtkTreeView *treeview) @@ -127,82 +92,44 @@ g_list_foreach (selected_rows, (GFunc) gtk_tree_path_free, NULL); g_list_free (selected_rows); - return connection; -} - -#define TV_TYPE_TAG "ctype" - -static GtkTreeView * -get_treeview_for_type (NMConnectionList *list, GType ctype) -{ - GSList *iter; - - for (iter = list->treeviews; iter; iter = g_slist_next (iter)) { - GtkTreeView *candidate = GTK_TREE_VIEW (iter->data); - GType candidate_type; - - candidate_type = GPOINTER_TO_SIZE (g_object_get_data (G_OBJECT (candidate), TV_TYPE_TAG)); - if (candidate_type == ctype) - return candidate; - } - - return NULL; -} - -static GtkListStore * -get_model_for_connection (NMConnectionList *list, NMRemoteConnection *connection) -{ - NMSettingConnection *s_con; - GtkTreeView *treeview; - GtkTreeModel *model; - const char *str_type; - - s_con = nm_connection_get_setting_connection (NM_CONNECTION (connection)); - g_assert (s_con); - str_type = nm_setting_connection_get_connection_type (s_con); - - if (!str_type) { - g_warning ("Ignoring incomplete connection"); - return NULL; - } - - if (!strcmp (str_type, NM_SETTING_CDMA_SETTING_NAME)) - str_type = NM_SETTING_GSM_SETTING_NAME; - - treeview = get_treeview_for_type (list, nm_connection_lookup_setting_type (str_type)); - if (!treeview) - return NULL; - - model = gtk_tree_view_get_model (treeview); - if (GTK_IS_TREE_MODEL_SORT (model)) - return GTK_LIST_STORE (gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (model))); + /* gtk_tree_model_get() will have reffed connection, but we don't + * need that since we know the model will continue to hold a ref. + */ + if (connection) + g_object_unref (connection); - return GTK_LIST_STORE (model); + return connection; } static gboolean -get_iter_for_connection (GtkTreeModel *model, +get_iter_for_connection (NMConnectionList *list, NMRemoteConnection *connection, GtkTreeIter *iter) { - GtkTreeIter temp_iter; - gboolean found = FALSE; + GtkTreeIter types_iter; - if (!gtk_tree_model_get_iter_first (model, &temp_iter)) + if (!gtk_tree_model_get_iter_first (list->model, &types_iter)) return FALSE; do { - NMRemoteConnection *candidate = NULL; + if (!gtk_tree_model_iter_children (list->model, iter, &types_iter)) + continue; - gtk_tree_model_get (model, &temp_iter, COL_CONNECTION, &candidate, -1); - if (candidate && (candidate == connection)) { - *iter = temp_iter; - found = TRUE; - break; - } - } while (gtk_tree_model_iter_next (model, &temp_iter)); + do { + NMRemoteConnection *candidate = NULL; + + gtk_tree_model_get (list->model, iter, + COL_CONNECTION, &candidate, + -1); + if (candidate == connection) { + g_object_unref (candidate); + return TRUE; + } + g_object_unref (candidate); + } while (gtk_tree_model_iter_next (list->model, iter)); + } while (gtk_tree_model_iter_next (list->model, &types_iter)); - return found; + return FALSE; } static char * @@ -278,543 +205,190 @@ } static void -update_connection_row (GtkListStore *store, +update_connection_row (NMConnectionList *self, GtkTreeIter *iter, NMRemoteConnection *connection) { NMSettingConnection *s_con; - char *last_used; + char *last_used, *id; s_con = nm_connection_get_setting_connection (NM_CONNECTION (connection)); g_assert (s_con); last_used = format_last_used (nm_setting_connection_get_timestamp (s_con)); - gtk_list_store_set (store, iter, - COL_ID, nm_setting_connection_get_id (s_con), + id = g_markup_escape_text (nm_setting_connection_get_id (s_con), -1); + gtk_tree_store_set (GTK_TREE_STORE (self->model), iter, + COL_ID, id, COL_LAST_USED, last_used, COL_TIMESTAMP, nm_setting_connection_get_timestamp (s_con), COL_CONNECTION, connection, -1); g_free (last_used); -} + g_free (id); - -/**********************************************/ -/* Connection deleting */ - -typedef void (*DeleteResultFunc) (NMConnectionList *list, - GError *error, - gpointer user_data); - -typedef struct { - NMConnectionList *list; - NMRemoteConnection *original; - NMConnectionEditor *editor; - DeleteResultFunc callback; - gpointer callback_data; -} DeleteInfo; - -static void -delete_cb (NMRemoteConnection *remote, - GError *error, - gpointer user_data) -{ - DeleteInfo *info = user_data; - - if (info->editor) - nm_connection_editor_set_busy (info->editor, FALSE); - - info->callback (info->list, error, info->callback_data); - g_free (info); + gtk_tree_model_filter_refilter (self->filter); } static void -delete_connection (NMConnectionList *list, - NMRemoteConnection *connection, - DeleteResultFunc callback, - gpointer user_data) -{ - DeleteInfo *info; - NMConnectionEditor *editor; - - editor = g_hash_table_lookup (list->editors, connection); - - info = g_malloc0 (sizeof (DeleteInfo)); - info->list = list; - info->callback = callback; - info->callback_data = user_data; - info->editor = editor; - - if (editor) - nm_connection_editor_set_busy (editor, TRUE); - - nm_remote_connection_delete (connection, delete_cb, info); -} - -/**********************************************/ -/* Connection adding */ - -typedef void (*AddResultFunc) (NMConnectionList *list, - GError *error, - gpointer user_data); - -typedef struct { - NMConnectionList *list; - NMConnectionEditor *editor; - AddResultFunc callback; - gpointer callback_data; -} AddInfo; - -static void -add_cb (NMRemoteSettings *settings, - NMRemoteConnection *connection, - GError *error, - gpointer user_data) -{ - AddInfo *info = user_data; - - nm_connection_editor_set_busy (info->editor, FALSE); - info->callback (info->list, error, info->callback_data); - g_free (info); -} - -static void -add_connection (NMConnectionList *self, - NMConnectionEditor *editor, - AddResultFunc callback, - gpointer callback_data) -{ - AddInfo *info; - - info = g_malloc0 (sizeof (AddInfo)); - info->list = self; - info->editor = editor; - info->callback = callback; - info->callback_data = callback_data; - - nm_connection_editor_set_busy (editor, TRUE); - - nm_remote_settings_add_connection (self->settings, - nm_connection_editor_get_connection (editor), - add_cb, - info); -} - -/**********************************************/ -/* Connection updating */ - -typedef void (*UpdateResultFunc) (NMConnectionList *list, - NMRemoteConnection *connection, - GError *error, - gpointer user_data); - -typedef struct { - NMConnectionList *list; - NMConnectionEditor *editor; - NMRemoteConnection *connection; - UpdateResultFunc callback; - gpointer callback_data; -} UpdateInfo; - -static void -update_complete (UpdateInfo *info, GError *error) +delete_slaves_of_connection (NMConnectionList *list, NMConnection *connection) { - info->callback (info->list, info->connection, error, info->callback_data); - g_object_unref (info->connection); - g_free (info); -} + const char *uuid, *iface; + GtkTreeIter iter, types_iter; -static void -update_cb (NMRemoteConnection *connection, GError *error, gpointer user_data) -{ - UpdateInfo *info = user_data; + if (!gtk_tree_model_get_iter_first (list->model, &types_iter)) + return; - nm_connection_editor_set_busy (info->editor, FALSE); + uuid = nm_connection_get_uuid (connection); + iface = nm_connection_get_virtual_iface_name (connection); - /* Clear secrets so they don't lay around in memory; they'll get requested - * again anyway next time the connection is edited. - */ - nm_connection_clear_secrets (NM_CONNECTION (connection)); + do { + if (!gtk_tree_model_iter_children (list->model, &iter, &types_iter)) + continue; - update_complete (info, error); + do { + NMRemoteConnection *candidate = NULL; + NMSettingConnection *s_con; + const char *master; + + gtk_tree_model_get (list->model, &iter, + COL_CONNECTION, &candidate, + -1); + s_con = nm_connection_get_setting_connection (NM_CONNECTION (candidate)); + master = nm_setting_connection_get_master (s_con); + if (master) { + if (!g_strcmp0 (master, uuid) || !g_strcmp0 (master, iface)) + nm_remote_connection_delete (candidate, NULL, NULL); + } + + g_object_unref (candidate); + } while (gtk_tree_model_iter_next (list->model, &iter)); + } while (gtk_tree_model_iter_next (list->model, &types_iter)); } -static void -update_connection (NMConnectionList *list, - NMConnectionEditor *editor, - NMRemoteConnection *connection, - UpdateResultFunc callback, - gpointer user_data) -{ - UpdateInfo *info; - GHashTable *new_settings; - GError *error = NULL; - - info = g_malloc0 (sizeof (UpdateInfo)); - info->list = list; - info->editor = editor; - info->connection = g_object_ref (connection); - info->callback = callback; - info->callback_data = user_data; - - /* Connections need the certificates filled because the - * applet private values that we use to store the path to certificates - * and private keys don't go through D-Bus; they are private of course! - */ - new_settings = nm_connection_to_hash (NM_CONNECTION (connection), NM_SETTING_HASH_FLAG_ALL); - if (!nm_connection_replace_settings (NM_CONNECTION (connection), new_settings, &error)) { - update_complete (info, error); - g_error_free (error); - return; - } - - nm_connection_editor_set_busy (editor, TRUE); - nm_remote_connection_commit_changes (connection, update_cb, info); -} /**********************************************/ /* dialog/UI handling stuff */ static void -add_finished_cb (NMConnectionList *list, GError *error, gpointer user_data) -{ - NMConnectionEditor *editor = NM_CONNECTION_EDITOR (user_data); - GtkWindow *parent; - - if (error) { - parent = nm_connection_editor_get_window (editor); - error_dialog (parent, _("Connection add failed"), "%s", error->message); - } - - g_hash_table_remove (list->editors, nm_connection_editor_get_connection (editor)); -} - - -static void -add_response_cb (NMConnectionEditor *editor, gint response, GError *error, gpointer user_data) +add_response_cb (NMConnectionEditor *editor, GtkResponseType response, gpointer user_data) { - ActionInfo *info = (ActionInfo *) user_data; - GError *add_error = NULL; - - /* if the dialog is busy waiting for authorization or something, - * don't destroy it until authorization returns. - */ - if (nm_connection_editor_get_busy (editor)) - return; + NMConnectionList *list = user_data; - if (response == GTK_RESPONSE_OK) { - /* Verify and commit user changes */ - if (nm_connection_editor_update_connection (editor, &add_error)) { - /* Yay we can try to add the connection; it'll get removed from - * list->editors when the add finishes. - */ - add_connection (info->list, editor, add_finished_cb, editor); - return; - } else { - error_dialog (GTK_WINDOW (editor->window), - _("Error saving connection"), - _("The property '%s' / '%s' is invalid: %d"), - g_type_name (nm_connection_lookup_setting_type_by_quark (add_error->domain)), - (add_error && add_error->message) ? add_error->message : "(unknown)", - add_error ? add_error->code : -1); - g_clear_error (&add_error); - } - } else if (response == GTK_RESPONSE_NONE) { - const char *message = _("An unknown error occurred."); - - if (error && error->message) - message = error->message; - error_dialog (GTK_WINDOW (editor->window), - _("Error initializing editor"), - "%s", message); - } + if (response == GTK_RESPONSE_CANCEL) + delete_slaves_of_connection (list, nm_connection_editor_get_connection (editor)); - g_hash_table_remove (info->list->editors, nm_connection_editor_get_connection (editor)); - g_signal_emit (info->list, list_signals[EDITING_DONE], 0, 0); + g_object_unref (editor); + g_signal_emit (list, list_signals[EDITING_DONE], 0, 0); } - static void really_add_connection (NMConnection *connection, - gboolean canceled, - GError *error, gpointer user_data) { - ActionInfo *info = user_data; + NMConnectionList *list = user_data; NMConnectionEditor *editor; - GError *editor_error = NULL; - const char *message = _("The connection editor dialog could not be initialized due to an unknown error."); - - g_return_if_fail (info != NULL); - - if (canceled) { - g_signal_emit (info->list, list_signals[EDITING_DONE], 0, 0); - return; - } if (!connection) { - error_dialog (info->list_window, - _("Could not create new connection"), - "%s", - (error && error->message) ? error->message : message); - g_signal_emit (info->list, list_signals[EDITING_DONE], 0, 0); + g_signal_emit (list, list_signals[EDITING_DONE], 0, 0); return; } - editor = nm_connection_editor_new (connection, info->list->nm_client, &error); + editor = nm_connection_editor_new (GTK_WINDOW (list->dialog), connection, + list->nm_client, list->settings); if (!editor) { g_object_unref (connection); - - error_dialog (info->list_window, - _("Could not edit new connection"), - "%s", - (editor_error && editor_error->message) ? editor_error->message : message); - g_clear_error (&editor_error); - g_signal_emit (info->list, list_signals[EDITING_DONE], 0, 0); + g_signal_emit (list, list_signals[EDITING_DONE], 0, 0); return; } - g_signal_connect (editor, "done", G_CALLBACK (add_response_cb), info); - g_hash_table_insert (info->list->editors, connection, editor); - + g_signal_connect (editor, "done", G_CALLBACK (add_response_cb), list); nm_connection_editor_run (editor); } -static GSList * -page_get_connections (gpointer user_data) -{ - ActionInfo *info = (ActionInfo *) user_data; - - return nm_remote_settings_list_connections (info->list->settings); -} - static void add_clicked (GtkButton *button, gpointer user_data) { - ActionInfo *info = (ActionInfo *) user_data; - NMConnectionList *list = info->list; - GType ctype; - - if (!info->new_func) { - ctype = GPOINTER_TO_SIZE (g_object_get_data (G_OBJECT (info->treeview), TV_TYPE_TAG)); - g_warning ("No new-connection function registered for type '%s'", - g_type_name (ctype)); - return; - } + NMConnectionList *list = user_data; - info->new_func (GTK_WINDOW (list->dialog), - really_add_connection, - page_get_connections, - info); + new_connection_dialog (GTK_WINDOW (list->dialog), + list->settings, + NULL, + really_add_connection, + list); } -typedef struct { - NMConnectionList *list; - NMConnectionEditor *editor; -} EditInfo; - static void -connection_updated_cb (NMConnectionList *list, - NMRemoteConnection *connection, - GError *error, - gpointer user_data) +edit_done_cb (NMConnectionEditor *editor, GtkResponseType response, gpointer user_data) { - EditInfo *info = user_data; - GtkListStore *store; - GtkTreeIter iter; - - if (error) { - /* Log the error and do nothing. We don't want to destroy the dialog - * because that's not really useful. If there's a hard error, the user - * will just have to cancel. This better handles the case where - * PolicyKit authentication is required, but the user accidentally gets - * their password wrong. Which used to close the dialog, and that's - * completely unhelpful. Instead just let them hit 'Save' again. - */ - g_warning ("Error updating connection '%s': (%d) %s", - nm_connection_get_id (NM_CONNECTION (connection)), - error->code, - error->message); - return; - } - - /* Success */ - store = get_model_for_connection (list, connection); - g_assert (store); - if (get_iter_for_connection (GTK_TREE_MODEL (store), connection, &iter)) - update_connection_row (store, &iter, connection); - - /* This callback might be triggered long after it's caller was called, - * if for example we've had to get PolicyKit authentication to perform - * the update. So only signal we're done with editing when all that is - * complete. - */ - g_signal_emit (info->list, list_signals[EDITING_DONE], 0, 0); + NMConnectionList *list = user_data; - g_hash_table_remove (list->editors, connection); - g_free (info); -} - -static void -edit_done_cb (NMConnectionEditor *editor, gint response, GError *error, gpointer user_data) -{ - EditInfo *info = user_data; - const char *message = _("An unknown error occurred."); - NMConnection *connection; - GError *edit_error = NULL; - - /* if the dialog is busy waiting for authorization or something, - * don't destroy it until authorization returns. - */ - if (nm_connection_editor_get_busy (editor)) - return; - - connection = nm_connection_editor_get_connection (editor); - g_assert (connection); + if (response == GTK_RESPONSE_OK) { + NMRemoteConnection *connection = NM_REMOTE_CONNECTION (nm_connection_editor_get_connection (editor)); + GtkTreeIter iter; - switch (response) { - case GTK_RESPONSE_OK: - /* Verify and commit user changes */ - if (nm_connection_editor_update_connection (editor, &edit_error)) { - /* Save the connection to backing storage */ - update_connection (info->list, - editor, - NM_REMOTE_CONNECTION (connection), - connection_updated_cb, - info); - } else { - g_warning ("%s: invalid connection after update: bug in the " - "'%s' / '%s' invalid: %d", - __func__, - g_type_name (nm_connection_lookup_setting_type_by_quark (edit_error->domain)), - edit_error->message, edit_error->code); - connection_updated_cb (info->list, - NM_REMOTE_CONNECTION (connection), - edit_error, - NULL); - g_error_free (edit_error); - } - break; - case GTK_RESPONSE_NONE: - /* Show an error dialog if the editor initialization failed */ - if (error && error->message) - message = error->message; - error_dialog (GTK_WINDOW (editor->window), _("Error initializing editor"), "%s", message); - /* fall through */ - case GTK_RESPONSE_CANCEL: - default: - g_hash_table_remove (info->list->editors, connection); - g_signal_emit (info->list, list_signals[EDITING_DONE], 0, 0); - g_free (info); - break; + if (get_iter_for_connection (list, connection, &iter)) + update_connection_row (list, &iter, connection); } + + g_object_unref (editor); + g_signal_emit (list, list_signals[EDITING_DONE], 0, 0); } static void -edit_connection (ActionInfo *info, NMConnection *connection) +edit_connection (NMConnectionList *list, NMConnection *connection) { NMConnectionEditor *editor; - EditInfo *edit_info; - GError *error = NULL; - const char *message = _("The connection editor dialog could not be initialized due to an unknown error."); g_return_if_fail (connection != NULL); /* Don't allow two editors for the same connection */ - editor = (NMConnectionEditor *) g_hash_table_lookup (info->list->editors, connection); + editor = nm_connection_editor_get (connection); if (editor) { nm_connection_editor_present (editor); return; } - editor = nm_connection_editor_new (NM_CONNECTION (connection), info->list->nm_client, &error); - if (!editor) { - error_dialog (info->list_window, - _("Could not edit connection"), - "%s", - (error && error->message) ? error->message : message); - return; - } - - edit_info = g_malloc0 (sizeof (EditInfo)); - edit_info->list = info->list; - edit_info->editor = editor; - - g_signal_connect (editor, "done", G_CALLBACK (edit_done_cb), edit_info); - g_hash_table_insert (info->list->editors, connection, editor); - + editor = nm_connection_editor_new (GTK_WINDOW (list->dialog), + NM_CONNECTION (connection), + list->nm_client, + list->settings); + g_signal_connect (editor, "done", G_CALLBACK (edit_done_cb), list); nm_connection_editor_run (editor); } static void -do_edit (ActionInfo *info) +do_edit (NMConnectionList *list) { - edit_connection (info, NM_CONNECTION (get_active_connection (info->treeview))); + edit_connection (list, NM_CONNECTION (get_active_connection (list->connection_list))); } static void -delete_result_cb (NMConnectionList *list, - GError *error, - gpointer user_data) +delete_connection_cb (NMRemoteConnection *connection, gboolean deleted, gpointer user_data) { - GtkWindow *parent = GTK_WINDOW (user_data); + NMConnectionList *list = user_data; - if (error) - error_dialog (parent, _("Connection delete failed"), "%s", error->message); + if (deleted) + delete_slaves_of_connection (list, NM_CONNECTION (connection)); } static void delete_clicked (GtkButton *button, gpointer user_data) { - ActionInfo *info = (ActionInfo *) user_data; + NMConnectionList *list = user_data; NMRemoteConnection *connection; - NMConnectionEditor *editor; - NMSettingConnection *s_con; - GtkWidget *dialog; - const char *id; - guint result; - connection = get_active_connection (info->treeview); + connection = get_active_connection (list->connection_list); g_return_if_fail (connection != NULL); - editor = g_hash_table_lookup (info->list->editors, connection); - if (editor && nm_connection_editor_get_busy (editor)) { - /* Editor already has an operation in progress, raise it */ - nm_connection_editor_present (editor); - return; - } - - s_con = nm_connection_get_setting_connection (NM_CONNECTION (connection)); - g_assert (s_con); - id = nm_setting_connection_get_id (s_con); - - dialog = gtk_message_dialog_new (GTK_WINDOW (info->list->dialog), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_NONE, - _("Are you sure you wish to delete the connection %s?"), - id); - gtk_dialog_add_buttons (GTK_DIALOG (dialog), - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_DELETE, GTK_RESPONSE_YES, - NULL); - gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (info->list->dialog)); - - result = gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); - - if (result == GTK_RESPONSE_YES) { - delete_connection (info->list, - connection, - delete_result_cb, - GTK_WINDOW (info->list->dialog)); - } + delete_connection (GTK_WINDOW (list->dialog), connection, + delete_connection_cb, list); } static void pk_button_selection_changed_cb (GtkTreeSelection *selection, gpointer user_data) { - ActionInfo *info = (ActionInfo *) user_data; + CEPolkitButton *button = user_data; + NMConnectionList *list = g_object_get_data (G_OBJECT (button), "NMConnectionList"); GtkTreeIter iter; GtkTreeModel *model; NMRemoteConnection *connection; @@ -822,7 +396,7 @@ gboolean sensitive = FALSE; if (gtk_tree_selection_get_selected (selection, &model, &iter)) { - connection = get_active_connection (info->treeview); + connection = get_active_connection (list->connection_list); if (connection) { s_con = nm_connection_get_setting_connection (NM_CONNECTION (connection)); g_assert (s_con); @@ -831,170 +405,7 @@ } } - ce_polkit_button_set_master_sensitive (CE_POLKIT_BUTTON (info->button), sensitive); -} - -static void -vpn_list_selection_changed_cb (GtkTreeSelection *selection, gpointer user_data) -{ - ActionInfo *info = (ActionInfo *) user_data; - NMVpnPluginUiInterface *plugin; - NMRemoteConnection *connection; - NMSettingVPN *s_vpn; - const char *service_type; - GtkTreeIter iter; - GtkTreeModel *model; - guint32 caps; - gboolean supported = FALSE; - - if (!gtk_tree_selection_get_selected (selection, &model, &iter)) - goto done; - - connection = get_active_connection (info->treeview); - if (!connection) - goto done; - - s_vpn = nm_connection_get_setting_vpn (NM_CONNECTION (connection)); - service_type = s_vpn ? nm_setting_vpn_get_service_type (s_vpn) : NULL; - - if (!service_type) - goto done; - - plugin = vpn_get_plugin_by_service (service_type); - if (!plugin) - goto done; - - caps = nm_vpn_plugin_ui_interface_get_capabilities (plugin); - if (caps & NM_VPN_PLUGIN_UI_CAPABILITY_EXPORT) - supported = TRUE; - -done: - gtk_widget_set_sensitive (info->button, supported); -} - -static void -import_success_cb (NMConnection *connection, gpointer user_data) -{ - ActionInfo *info = (ActionInfo *) user_data; - NMConnectionEditor *editor; - NMSettingConnection *s_con; - NMSettingVPN *s_vpn; - const char *service_type; - char *s; - GError *error = NULL; - const char *message = _("The connection editor dialog could not be initialized due to an unknown error."); - - /* Basic sanity checks of the connection */ - s_con = nm_connection_get_setting_connection (connection); - if (!s_con) { - s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); - nm_connection_add_setting (connection, NM_SETTING (s_con)); - } - - s = (char *) nm_setting_connection_get_id (s_con); - if (!s) { - GSList *connections; - - connections = nm_remote_settings_list_connections (info->list->settings); - s = ce_page_get_next_available_name (connections, _("VPN connection %d")); - g_object_set (s_con, NM_SETTING_CONNECTION_ID, s, NULL); - g_free (s); - - g_slist_free (connections); - } - - s = (char *) nm_setting_connection_get_connection_type (s_con); - if (!s || strcmp (s, NM_SETTING_VPN_SETTING_NAME)) - g_object_set (s_con, NM_SETTING_CONNECTION_TYPE, NM_SETTING_VPN_SETTING_NAME, NULL); - - s = (char *) nm_setting_connection_get_uuid (s_con); - if (!s) { - s = nm_utils_uuid_generate (); - g_object_set (s_con, NM_SETTING_CONNECTION_UUID, s, NULL); - g_free (s); - } - - s_vpn = nm_connection_get_setting_vpn (connection); - service_type = s_vpn ? nm_setting_vpn_get_service_type (s_vpn) : NULL; - - if (!service_type || !strlen (service_type)) { - GtkWidget *dialog; - - g_object_unref (connection); - - dialog = gtk_message_dialog_new (NULL, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, - _("Cannot import VPN connection")); - gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), - _("The VPN plugin failed to import the VPN connection correctly\n\nError: no VPN service type.")); - gtk_window_set_transient_for (GTK_WINDOW (dialog), info->list_window); - g_signal_connect (dialog, "delete-event", G_CALLBACK (gtk_widget_destroy), NULL); - g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); - gtk_widget_show_all (dialog); - gtk_window_present (GTK_WINDOW (dialog)); - return; - } - - editor = nm_connection_editor_new (connection, info->list->nm_client, &error); - if (!editor) { - g_object_unref (connection); - error_dialog (info->list_window, - _("Could not edit imported connection"), - "%s", - (error && error->message) ? error->message : message); - return; - } - - g_signal_connect (editor, "done", G_CALLBACK (add_response_cb), info); - g_hash_table_insert (info->list->editors, connection, editor); - - nm_connection_editor_run (editor); -} - -static void -import_vpn_cb (GtkButton *button, gpointer user_data) -{ - vpn_import (import_success_cb, (ActionInfo *) user_data); -} - -static void -vpn_export_get_secrets_cb (NMRemoteConnection *connection, - GHashTable *secrets, - GError *error, - gpointer user_data) -{ - NMConnection *tmp; - - /* We don't really care about errors; if the user couldn't authenticate - * then just let them export everything except secrets. Duplicate the - * connection so that we don't let secrets sit around in the original - * one. - */ - tmp = nm_connection_duplicate (NM_CONNECTION (connection)); - g_assert (tmp); - if (secrets) - nm_connection_update_secrets (tmp, NM_SETTING_VPN_SETTING_NAME, secrets, NULL); - vpn_export (tmp); - g_object_unref (tmp); -} - - -static void -export_vpn_cb (GtkButton *button, gpointer user_data) -{ - ActionInfo *info = (ActionInfo *) user_data; - NMRemoteConnection *connection; - - connection = get_active_connection (info->treeview); - if (connection) { - /* Grab secrets if we can */ - nm_remote_connection_get_secrets (connection, - NM_SETTING_VPN_SETTING_NAME, - vpn_export_get_secrets_cb, - NULL); - } + ce_polkit_button_set_master_sensitive (button, sensitive); } static void @@ -1003,10 +414,10 @@ GtkTreeViewColumn *column, gpointer user_data) { - ActionInfo *info = user_data; + GtkButton *button = user_data; - if (ce_polkit_button_get_actionable (CE_POLKIT_BUTTON (info->button))) - gtk_button_clicked (GTK_BUTTON (info->button)); + if (ce_polkit_button_get_actionable (CE_POLKIT_BUTTON (button))) + gtk_button_clicked (button); } static void @@ -1028,30 +439,11 @@ if (list->dialog) gtk_widget_hide (list->dialog); - if (list->editors) - g_hash_table_destroy (list->editors); - - if (list->actions) - g_hash_table_destroy (list->actions); - - if (list->wired_icon) - g_object_unref (list->wired_icon); - if (list->wireless_icon) - g_object_unref (list->wireless_icon); - if (list->wwan_icon) - g_object_unref (list->wwan_icon); - if (list->vpn_icon) - g_object_unref (list->vpn_icon); - if (list->unknown_icon) - g_object_unref (list->unknown_icon); - if (list->gui) g_object_unref (list->gui); if (list->nm_client) g_object_unref (list->nm_client); - g_slist_free (list->treeviews); - if (list->settings) g_object_unref (list->settings); @@ -1094,183 +486,199 @@ gtk_tree_view_column_set_sort_column_id (treeviewcolumn, sort_col_id); } -static GtkTreeView * -add_connection_treeview (NMConnectionList *self, const char *prefix) +static gint +sort_connection_types (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) { - GtkTreeModel *model; - GtkTreeModel *sort_model; - GtkCellRenderer *renderer; - GtkTreeSelection *selection; - GValue val = { 0, }; - char *name; - GtkTreeView *treeview; - GtkTreeViewColumn *column1, *column2; - - name = g_strdup_printf ("%s_list", prefix); - treeview = GTK_TREE_VIEW (GTK_WIDGET (gtk_builder_get_object (self->gui, name))); - g_free (name); - gtk_tree_view_set_headers_visible (treeview, TRUE); + GtkTreeSortable *sortable = user_data; + int order_a, order_b; + GtkSortType order; + gtk_tree_model_get (model, a, COL_ORDER, &order_a, -1); + gtk_tree_model_get (model, b, COL_ORDER, &order_b, -1); - /* Model */ - model = GTK_TREE_MODEL (gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT64, G_TYPE_OBJECT)); - sort_model = gtk_tree_model_sort_new_with_model (model); - gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (sort_model), NULL, NULL, NULL); - gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (sort_model), - COL_TIMESTAMP, GTK_SORT_DESCENDING); - gtk_tree_view_set_model (treeview, sort_model); + /* The connection types should stay in the same order regardless of whether + * the table is sorted ascending or descending. + */ + gtk_tree_sortable_get_sort_column_id (sortable, NULL, &order); + if (order == GTK_SORT_ASCENDING) + return order_a - order_b; + else + return order_b - order_a; +} - /* Name column */ - gtk_tree_view_insert_column_with_attributes (treeview, - -1, _("Name"), gtk_cell_renderer_text_new (), - "text", COL_ID, - NULL); - gtk_tree_view_column_set_expand (gtk_tree_view_get_column (treeview, 0), TRUE); +static gint +id_sort_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) +{ + NMConnection *conn_a, *conn_b; + gint ret; - /* Last Used column */ - renderer = gtk_cell_renderer_text_new (); - g_value_init (&val, G_TYPE_STRING); - g_value_set_string (&val, "SlateGray"); - g_object_set_property (G_OBJECT (renderer), "foreground", &val); - - gtk_tree_view_insert_column_with_attributes (treeview, - -1, _("Last Used"), renderer, - "text", COL_LAST_USED, - NULL); - - /* Make columns clickable and sortable */ - gtk_tree_view_set_headers_clickable (treeview, TRUE); - column1 = gtk_tree_view_get_column (treeview, 0); - g_signal_connect (column1, "clicked", G_CALLBACK (column_header_clicked_cb), GINT_TO_POINTER (COL_ID)); - gtk_tree_view_column_set_sort_column_id (column1, COL_ID); - - column2 = gtk_tree_view_get_column (treeview, 1); - g_signal_connect (column2, "clicked", G_CALLBACK (column_header_clicked_cb), GINT_TO_POINTER (COL_TIMESTAMP)); - gtk_tree_view_column_set_sort_column_id (column2, COL_TIMESTAMP); + gtk_tree_model_get (model, a, COL_CONNECTION, &conn_a, -1); + gtk_tree_model_get (model, b, COL_CONNECTION, &conn_b, -1); - /* Selection */ - selection = gtk_tree_view_get_selection (treeview); - gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); + if (!conn_a || !conn_b) { + g_assert (!conn_a && !conn_b); + return sort_connection_types (model, a, b, user_data); + } - return treeview; -} + ret = strcmp (nm_connection_get_id (conn_a), nm_connection_get_id (conn_b)); + g_object_unref (conn_a); + g_object_unref (conn_b); -static void -action_info_free (ActionInfo *info) -{ - g_return_if_fail (info != NULL); - g_free (info); + return ret; } -static char * -get_action_name (GType ctype, const char *action) +static gint +timestamp_sort_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) { - return g_strdup_printf ("%s_%s", g_type_name (ctype), action); -} + NMConnection *conn_a, *conn_b; + guint64 time_a, time_b; -static ActionInfo * -find_action_info (NMConnectionList *list, GType ctype, const char *action) -{ - ActionInfo *ret; - char *name; + gtk_tree_model_get (model, a, + COL_CONNECTION, &conn_a, + COL_TIMESTAMP, &time_a, + -1); + gtk_tree_model_get (model, b, + COL_CONNECTION, &conn_b, + COL_TIMESTAMP, &time_b, + -1); - name = get_action_name (ctype, action); - ret = g_hash_table_lookup (list->actions, name); - g_free (name); - return ret; + if (!conn_a || !conn_b) { + g_assert (!conn_a && !conn_b); + return sort_connection_types (model, a, b, user_data); + } + + g_object_unref (conn_a); + g_object_unref (conn_b); + + return time_b - time_a; } -static ActionInfo * -action_info_new (NMConnectionList *list, - gchar *action, - GType ctype, - GtkTreeView *treeview, - GtkWindow *list_window, - GtkWidget *button) +static gboolean +tree_model_visible_func (GtkTreeModel *model, + GtkTreeIter *iter, + gpointer user_data) { - ActionInfo *info; + NMConnectionList *self = user_data; + NMConnection *connection; + NMSettingConnection *s_con; + const char *master; + const char *slave_type; - info = g_malloc0 (sizeof (ActionInfo)); - g_hash_table_insert (list->actions, get_action_name (ctype, action), info); + gtk_tree_model_get (model, iter, COL_CONNECTION, &connection, -1); + if (!connection) { + /* Top-level type nodes are visible iff they have children */ + return gtk_tree_model_iter_has_child (model, iter); + } - info->list = list; - info->treeview = treeview; - info->list_window = list_window; - info->button = button; - return info; -} + /* A connection node is visible unless it is a bond slave to + * another known connection. + */ + s_con = nm_connection_get_setting_connection (connection); + g_object_unref (connection); + g_return_val_if_fail (s_con != NULL, FALSE); -static void -action_info_set_button (ActionInfo *info, - GtkWidget *button) -{ - g_return_if_fail (info != NULL); + master = nm_setting_connection_get_master (s_con); + slave_type = nm_setting_connection_get_slave_type (s_con); + if (!master || g_strcmp0 (slave_type, NM_SETTING_BOND_SETTING_NAME) != 0) + return TRUE; - info->button = button; -} + if (nm_remote_settings_get_connection_by_uuid (self->settings, master)) + return FALSE; + if (nm_connection_editor_get_master (connection)) + return FALSE; -static void -action_info_set_new_func (ActionInfo *info, - PageNewConnectionFunc func) -{ - g_return_if_fail (info != NULL); + /* FIXME: what if master is an interface name */ - info->new_func = func; + return TRUE; } static void -check_vpn_import_supported (gpointer key, gpointer data, gpointer user_data) +initialize_treeview (NMConnectionList *self) { - NMVpnPluginUiInterface *plugin = NM_VPN_PLUGIN_UI_INTERFACE (data); - gboolean *import_supported = user_data; + GtkCellRenderer *renderer; + GtkTreeViewColumn *column; + GtkTreeSelection *selection; + ConnectionTypeData *types; + GtkTreeIter iter; + char *id; + int i; - if (*import_supported) - return; + /* Model */ + self->model = GTK_TREE_MODEL (gtk_tree_store_new (6, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT64, G_TYPE_OBJECT, G_TYPE_GTYPE, G_TYPE_INT)); - if (nm_vpn_plugin_ui_interface_get_capabilities (plugin) & NM_VPN_PLUGIN_UI_CAPABILITY_IMPORT) - *import_supported = TRUE; + /* Filter */ + self->filter = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (self->model, NULL)); + gtk_tree_model_filter_set_visible_func (self->filter, + tree_model_visible_func, + self, NULL); + + /* Sortable */ + self->sortable = GTK_TREE_SORTABLE (gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (self->filter))); + gtk_tree_sortable_set_default_sort_func (self->sortable, NULL, NULL, NULL); + gtk_tree_sortable_set_sort_func (self->sortable, COL_TIMESTAMP, timestamp_sort_func, + self->sortable, NULL); + gtk_tree_sortable_set_sort_func (self->sortable, COL_ID, id_sort_func, + self->sortable, NULL); + gtk_tree_sortable_set_sort_column_id (self->sortable, COL_TIMESTAMP, GTK_SORT_ASCENDING); + + gtk_tree_view_set_model (self->connection_list, GTK_TREE_MODEL (self->sortable)); + + /* Name column */ + renderer = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes (_("Name"), + renderer, + "markup", COL_ID, + NULL); + gtk_tree_view_column_set_expand (column, TRUE); + gtk_tree_view_column_set_sort_column_id (column, COL_ID); + g_signal_connect (column, "clicked", G_CALLBACK (column_header_clicked_cb), GINT_TO_POINTER (COL_ID)); + gtk_tree_view_append_column (self->connection_list, column); + + /* Last Used column */ + renderer = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, + "foreground", "SlateGray", + NULL); + column = gtk_tree_view_column_new_with_attributes (_("Last Used"), + renderer, + "text", COL_LAST_USED, + NULL); + gtk_tree_view_column_set_sort_column_id (column, COL_TIMESTAMP); + g_signal_connect (column, "clicked", G_CALLBACK (column_header_clicked_cb), GINT_TO_POINTER (COL_TIMESTAMP)); + gtk_tree_view_append_column (self->connection_list, column); + + /* Selection */ + selection = gtk_tree_view_get_selection (self->connection_list); + gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); + + /* Fill in connection types */ + types = get_connection_type_list (); + for (i = 0; types[i].name; i++) { + id = g_strdup_printf ("%s", types[i].name); + gtk_tree_store_append (GTK_TREE_STORE (self->model), &iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (self->model), &iter, + COL_ID, id, + COL_GTYPE, types[i].setting_type, + COL_ORDER, i, + -1); + g_free (id); + } } static void -add_connection_buttons (NMConnectionList *self, - const char *prefix, - GtkTreeView *treeview, - GType ctype, - PageNewConnectionFunc new_func) +add_connection_buttons (NMConnectionList *self) { - char *name; - GtkWidget *button, *hbox; - ActionInfo *info; + GtkWidget *button, *box; GtkTreeSelection *selection; - selection = gtk_tree_view_get_selection (treeview); + selection = gtk_tree_view_get_selection (self->connection_list); /* Add */ - name = g_strdup_printf ("%s_add", prefix); - button = GTK_WIDGET (gtk_builder_get_object (self->gui, name)); - g_free (name); - info = action_info_new (self, "add", ctype, treeview, GTK_WINDOW (self->dialog), NULL); - g_signal_connect (button, "clicked", G_CALLBACK (add_clicked), info); - if (ctype == NM_TYPE_SETTING_VPN) { - GHashTable *plugins; - gboolean have_plugins; - - /* disable the "Add..." button if there aren't any VPN plugins */ - plugins = vpn_get_plugins (NULL); - have_plugins = plugins && g_hash_table_size (plugins); - gtk_widget_set_sensitive (button, have_plugins); - if (!have_plugins) - gtk_widget_set_tooltip_text (button, _("No VPN plugin available. Please install one to enable this button.")); - } - if (new_func) - action_info_set_new_func (info, new_func); - - name = g_strdup_printf ("%s_button_box", prefix); - hbox = GTK_WIDGET (gtk_builder_get_object (self->gui, name)); - g_free (name); + button = GTK_WIDGET (gtk_builder_get_object (self->gui, "connection_add")); + g_signal_connect (button, "clicked", G_CALLBACK (add_clicked), self); + + box = GTK_WIDGET (gtk_builder_get_object (self->gui, "connection_button_box")); /* Edit */ - info = action_info_new (self, "edit", ctype, treeview, GTK_WINDOW (self->dialog), NULL); button = ce_polkit_button_new (_("_Edit"), _("Edit the selected connection"), _("_Edit..."), @@ -1278,17 +686,16 @@ GTK_STOCK_EDIT, self->nm_client, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM); + g_object_set_data (G_OBJECT (button), "NMConnectionList", self); gtk_button_set_use_underline (GTK_BUTTON (button), TRUE); - gtk_box_pack_end (GTK_BOX (hbox), button, TRUE, TRUE, 0); + gtk_box_pack_end (GTK_BOX (box), button, TRUE, TRUE, 0); - action_info_set_button (info, button); - g_signal_connect_swapped (button, "clicked", G_CALLBACK (do_edit), info); - g_signal_connect (treeview, "row-activated", G_CALLBACK (connection_double_clicked_cb), info); - g_signal_connect (selection, "changed", G_CALLBACK (pk_button_selection_changed_cb), info); - pk_button_selection_changed_cb (selection, info); + g_signal_connect_swapped (button, "clicked", G_CALLBACK (do_edit), self); + g_signal_connect (self->connection_list, "row-activated", G_CALLBACK (connection_double_clicked_cb), button); + g_signal_connect (selection, "changed", G_CALLBACK (pk_button_selection_changed_cb), button); + pk_button_selection_changed_cb (selection, button); /* Delete */ - info = action_info_new (self, "delete", ctype, treeview, GTK_WINDOW (self->dialog), NULL); button = ce_polkit_button_new (_("_Delete"), _("Delete the selected connection"), _("_Delete..."), @@ -1296,106 +703,73 @@ GTK_STOCK_DELETE, self->nm_client, NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM); + g_object_set_data (G_OBJECT (button), "NMConnectionList", self); gtk_button_set_use_underline (GTK_BUTTON (button), TRUE); - gtk_box_pack_end (GTK_BOX (hbox), button, TRUE, TRUE, 0); + gtk_box_pack_end (GTK_BOX (box), button, TRUE, TRUE, 0); + + g_signal_connect (button, "clicked", G_CALLBACK (delete_clicked), self); + g_signal_connect (selection, "changed", G_CALLBACK (pk_button_selection_changed_cb), button); + pk_button_selection_changed_cb (selection, button); - action_info_set_button (info, button); - g_signal_connect (button, "clicked", G_CALLBACK (delete_clicked), info); - g_signal_connect (selection, "changed", G_CALLBACK (pk_button_selection_changed_cb), info); - pk_button_selection_changed_cb (selection, info); - - /* Import */ - name = g_strdup_printf ("%s_import", prefix); - button = GTK_WIDGET (gtk_builder_get_object (self->gui, name)); - g_free (name); - if (button) { - gboolean import_supported = FALSE; - GHashTable *plugins; - - info = action_info_new (self, "import", ctype, treeview, GTK_WINDOW (self->dialog), button); - g_signal_connect (button, "clicked", G_CALLBACK (import_vpn_cb), info); - - plugins = vpn_get_plugins (NULL); - if (plugins) - g_hash_table_foreach (plugins, check_vpn_import_supported, &import_supported); - gtk_widget_set_sensitive (button, import_supported); - } - - /* Export */ - name = g_strdup_printf ("%s_export", prefix); - button = GTK_WIDGET (gtk_builder_get_object (self->gui, name)); - g_free (name); - if (button) { - info = action_info_new (self, "export", ctype, treeview, GTK_WINDOW (self->dialog), button); - g_signal_connect (button, "clicked", G_CALLBACK (export_vpn_cb), info); - g_signal_connect (selection, "changed", G_CALLBACK (vpn_list_selection_changed_cb), info); - gtk_widget_set_sensitive (button, FALSE); - } -} - -static void -add_connection_tab (NMConnectionList *self, - GType ctype, - GdkPixbuf *pixbuf, - const char *prefix, - const char *label_text, - PageNewConnectionFunc new_func) -{ - char *name; - GtkWidget *child, *hbox, *notebook; - GtkTreeView *treeview; - - name = g_strdup_printf ("%s_child", prefix); - child = GTK_WIDGET (gtk_builder_get_object (self->gui, name)); - g_free (name); - - /* Notebook tab */ -#if GTK_CHECK_VERSION(3,1,6) - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); -#else - hbox = gtk_hbox_new (FALSE, 6); -#endif - if (pixbuf) { - GtkWidget *image; - - image = gtk_image_new_from_pixbuf (pixbuf); - gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); - } - gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (label_text), FALSE, FALSE, 0); - gtk_widget_show_all (hbox); - - notebook = GTK_WIDGET (gtk_builder_get_object (self->gui, "list_notebook")); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), child, hbox); - - treeview = add_connection_treeview (self, prefix); - add_connection_buttons (self, prefix, treeview, ctype, new_func); - gtk_widget_show_all (GTK_WIDGET (notebook)); - - self->treeviews = g_slist_prepend (self->treeviews, treeview); - - /* Tag the notebook child and the treeview with the type of connection they contain */ - g_object_set_data (G_OBJECT (child), TV_TYPE_TAG, GSIZE_TO_POINTER (ctype)); - g_object_set_data (G_OBJECT (treeview), TV_TYPE_TAG, GSIZE_TO_POINTER (ctype)); + gtk_widget_show_all (box); } static void connection_removed (NMRemoteConnection *connection, gpointer user_data) { - GtkListStore *store = GTK_LIST_STORE (user_data); - GtkTreeIter iter; + NMConnectionList *self = NM_CONNECTION_LIST (user_data); + GtkTreeIter iter, parent_iter; - if (get_iter_for_connection (GTK_TREE_MODEL (store), connection, &iter)) - gtk_list_store_remove (store, &iter); + if (get_iter_for_connection (self, connection, &iter)) { + gtk_tree_model_iter_parent (self->model, &parent_iter, &iter); + gtk_tree_store_remove (GTK_TREE_STORE (self->model), &iter); + } + gtk_tree_model_filter_refilter (self->filter); } static void connection_updated (NMRemoteConnection *connection, gpointer user_data) { - GtkListStore *store = GTK_LIST_STORE (user_data); + NMConnectionList *self = NM_CONNECTION_LIST (user_data); GtkTreeIter iter; - if (get_iter_for_connection (GTK_TREE_MODEL (store), connection, &iter)) - update_connection_row (store, &iter, connection); + if (get_iter_for_connection (self, connection, &iter)) + update_connection_row (self, &iter, connection); +} + +static gboolean +get_parent_iter_for_connection (NMConnectionList *list, + NMRemoteConnection *connection, + GtkTreeIter *iter) +{ + NMSettingConnection *s_con; + const char *str_type; + GType type, row_type; + + s_con = nm_connection_get_setting_connection (NM_CONNECTION (connection)); + g_assert (s_con); + str_type = nm_setting_connection_get_connection_type (s_con); + if (!str_type) { + g_warning ("Ignoring incomplete connection"); + return FALSE; + } + + if (!strcmp (str_type, NM_SETTING_CDMA_SETTING_NAME)) + str_type = NM_SETTING_GSM_SETTING_NAME; + type = nm_connection_lookup_setting_type (str_type); + + if (gtk_tree_model_get_iter_first (list->model, iter)) { + do { + gtk_tree_model_get (list->model, iter, + COL_GTYPE, &row_type, + -1); + if (row_type == type) + return TRUE; + } while (gtk_tree_model_iter_next (list->model, iter)); + } + + g_warning ("Unsupported connection type '%s'", str_type); + return FALSE; } static void @@ -1404,21 +778,20 @@ gpointer user_data) { NMConnectionList *self = NM_CONNECTION_LIST (user_data); - GtkListStore *store; - GtkTreeIter iter; + GtkTreeIter parent_iter, iter; NMSettingConnection *s_con; char *last_used; + gboolean expand = TRUE; - store = get_model_for_connection (self, connection); - if (!store) + if (!get_parent_iter_for_connection (self, connection, &parent_iter)) return; s_con = nm_connection_get_setting_connection (NM_CONNECTION (connection)); last_used = format_last_used (nm_setting_connection_get_timestamp (s_con)); - gtk_list_store_append (store, &iter); - gtk_list_store_set (store, &iter, + gtk_tree_store_append (GTK_TREE_STORE (self->model), &iter, &parent_iter); + gtk_tree_store_set (GTK_TREE_STORE (self->model), &iter, COL_ID, nm_setting_connection_get_id (s_con), COL_LAST_USED, last_used, COL_TIMESTAMP, nm_setting_connection_get_timestamp (s_con), @@ -1427,19 +800,48 @@ g_free (last_used); - g_signal_connect (connection, NM_REMOTE_CONNECTION_REMOVED, G_CALLBACK (connection_removed), store); - g_signal_connect (connection, NM_REMOTE_CONNECTION_UPDATED, G_CALLBACK (connection_updated), store); + if (self->displayed_type) { + GType added_type; + + gtk_tree_model_get (self->model, &parent_iter, + COL_GTYPE, &added_type, + -1); + if (added_type != self->displayed_type) + expand = FALSE; + } + + if (expand) { + GtkTreePath *path, *filtered_path; + + path = gtk_tree_model_get_path (self->model, &parent_iter); + filtered_path = gtk_tree_model_filter_convert_child_path_to_path (self->filter, path); + gtk_tree_view_expand_row (self->connection_list, filtered_path, FALSE); + gtk_tree_path_free (filtered_path); + gtk_tree_path_free (path); + } + + g_signal_connect (connection, NM_REMOTE_CONNECTION_REMOVED, G_CALLBACK (connection_removed), self); + g_signal_connect (connection, NM_REMOTE_CONNECTION_UPDATED, G_CALLBACK (connection_updated), self); + gtk_tree_model_filter_refilter (self->filter); } -#define ICON_LOAD(x, y) \ - { \ - x = gtk_icon_theme_load_icon (list->icon_theme, y, 16, 0, &error); \ - if (x == NULL) { \ - g_warning ("Icon %s missing: %s", y, error->message); \ - g_error_free (error); \ - goto error; \ - } \ +static void +initial_connections_read (NMRemoteSettings *settings, gpointer user_data) +{ + NMConnectionList *list = user_data; + GtkTreePath *path; + GtkTreeIter iter; + + g_signal_handlers_disconnect_by_func (settings, G_CALLBACK (initial_connections_read), list); + + if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list->sortable), &iter)) { + path = gtk_tree_model_get_path (GTK_TREE_MODEL (list->sortable), &iter); + gtk_tree_view_scroll_to_cell (list->connection_list, + path, NULL, + FALSE, 0, 0); + gtk_tree_path_free (path); } +} NMConnectionList * nm_connection_list_new (void) @@ -1467,15 +869,6 @@ gtk_window_set_default_icon_name ("preferences-system-network"); - list->icon_theme = gtk_icon_theme_get_for_screen (gdk_screen_get_default ()); - - /* Load icons */ - ICON_LOAD(list->wired_icon, "nm-device-wired"); - ICON_LOAD(list->wireless_icon, "nm-device-wireless"); - ICON_LOAD(list->wwan_icon, "nm-device-wwan"); - ICON_LOAD(list->vpn_icon, "nm-vpn-standalone-lock"); - ICON_LOAD(list->unknown_icon, "nm-no-connection"); - list->nm_client = nm_client_new (); if (!list->nm_client) goto error; @@ -1493,30 +886,14 @@ NM_REMOTE_SETTINGS_NEW_CONNECTION, G_CALLBACK (connection_added), list); + g_signal_connect (list->settings, + NM_REMOTE_SETTINGS_CONNECTIONS_READ, + G_CALLBACK (initial_connections_read), + list); - list->editors = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_object_unref); - list->actions = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) action_info_free); - - /* Add each connection type tab */ - add_connection_tab (list, NM_TYPE_SETTING_WIRED, - list->wired_icon, "wired", _("Wired"), - wired_connection_new); - - add_connection_tab (list, NM_TYPE_SETTING_WIRELESS, - list->wireless_icon, "wireless", _("Wireless"), - wifi_connection_new); - - add_connection_tab (list, NM_TYPE_SETTING_GSM, - list->wwan_icon, "wwan", _("Mobile Broadband"), - mobile_connection_new); - - add_connection_tab (list, NM_TYPE_SETTING_VPN, - list->vpn_icon, "vpn", _("VPN"), - vpn_connection_new); - - add_connection_tab (list, NM_TYPE_SETTING_PPPOE, - list->wired_icon, "dsl", _("DSL"), - dsl_connection_new); + list->connection_list = GTK_TREE_VIEW (gtk_builder_get_object (list->gui, "connection_list")); + initialize_treeview (list); + add_connection_buttons (list); /* Connect to the main dialog's response handler */ list->dialog = GTK_WIDGET (gtk_builder_get_object (list->gui, "NMConnectionList")); @@ -1539,45 +916,35 @@ void nm_connection_list_set_type (NMConnectionList *self, GType ctype) { - GtkNotebook *notebook; - int i; - g_return_if_fail (NM_IS_CONNECTION_LIST (self)); - /* If a notebook page is found that owns the requested type, set it - * as the current page. - */ - notebook = GTK_NOTEBOOK (GTK_WIDGET (gtk_builder_get_object (self->gui, "list_notebook"))); - for (i = 0; i < gtk_notebook_get_n_pages (notebook); i++) { - GtkWidget *child; - GType child_type; - - child = gtk_notebook_get_nth_page (notebook, i); - child_type = GPOINTER_TO_SIZE (g_object_get_data (G_OBJECT (child), TV_TYPE_TAG)); - if (child_type == ctype) { - gtk_notebook_set_current_page (notebook, i); - break; - } - } + self->displayed_type = ctype; } void -nm_connection_list_create (NMConnectionList *self, GType ctype) +nm_connection_list_create (NMConnectionList *self, GType ctype, const char *detail) { - ActionInfo *info; + ConnectionTypeData *types; + int i; g_return_if_fail (NM_IS_CONNECTION_LIST (self)); - info = find_action_info (self, ctype, "add"); - if (info == NULL) { - error_dialog (NULL, - _("Error creating connection"), - _("Don't know how to create '%s' connections"), g_type_name (ctype)); + types = get_connection_type_list (); + for (i = 0; types[i].name; i++) { + if (types[i].setting_type == ctype) + break; + } + if (!types[i].name) { + nm_connection_editor_error (NULL, + _("Error creating connection"), + _("Don't know how to create '%s' connections"), g_type_name (ctype)); } else { - info->new_func (GTK_WINDOW (info->list->dialog), - really_add_connection, - page_get_connections, - info); + new_connection_of_type (GTK_WINDOW (self->dialog), + detail, + self->settings, + types[i].new_connection_func, + really_add_connection, + self); } } @@ -1616,21 +983,7 @@ connection = get_connection (settings, data->uuid); if (connection) { - NMSettingConnection *s_con; - const char *type; - ActionInfo *info; - - s_con = nm_connection_get_setting_connection (connection); - type = nm_setting_connection_get_connection_type (s_con); - info = find_action_info (data->self, nm_connection_lookup_setting_type (type), "edit"); - if (info != NULL) - edit_connection (info, connection); - else { - error_dialog (NULL, - _("Error editing connection"), - _("Don't know how to edit '%s' connections"), type); - } - + edit_connection (data->self, connection); g_object_unref (connection); } else if (data->wait) { data->wait = FALSE; @@ -1638,9 +991,9 @@ G_CALLBACK (connections_read), data); return; } else { - error_dialog (NULL, - _("Error editing connection"), - _("Did not find a connection with UUID '%s'"), data->uuid); + nm_connection_editor_error (NULL, + _("Error editing connection"), + _("Did not find a connection with UUID '%s'"), data->uuid); } if (signal_id != 0) { diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/nm-connection-list.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/nm-connection-list.h --- network-manager-applet-0.9.4.1/src/connection-editor/nm-connection-list.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/nm-connection-list.h 2012-10-31 13:20:57.000000000 +0000 @@ -37,10 +37,11 @@ GObject parent; /* private data */ - GHashTable *editors; - GSList *treeviews; - - GHashTable *actions; + GtkTreeView *connection_list; + GtkTreeModel *model; + GtkTreeModelFilter *filter; + GtkTreeSortable *sortable; + GType displayed_type; NMClient *nm_client; NMRemoteSettings *settings; @@ -48,13 +49,6 @@ GtkBuilder *gui; GtkWidget *dialog; - GdkPixbuf *wired_icon; - GdkPixbuf *wireless_icon; - GdkPixbuf *wwan_icon; - GdkPixbuf *vpn_icon; - GdkPixbuf *unknown_icon; - GtkIconTheme *icon_theme; - gboolean signals_connected; } NMConnectionList; @@ -72,7 +66,7 @@ void nm_connection_list_set_type (NMConnectionList *list, GType ctype); void nm_connection_list_present (NMConnectionList *list); -void nm_connection_list_create (NMConnectionList *list, GType ctype); +void nm_connection_list_create (NMConnectionList *list, GType ctype, const char *detail); void nm_connection_list_edit (NMConnectionList *list, const gchar *uuid); #endif diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-8021x-security.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-8021x-security.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-8021x-security.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-8021x-security.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,234 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#include "config.h" + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "wireless-security.h" +#include "page-ethernet.h" +#include "page-8021x-security.h" +#include "nm-connection-editor.h" + +G_DEFINE_TYPE (CEPage8021xSecurity, ce_page_8021x_security, CE_TYPE_PAGE) + +#define CE_PAGE_8021X_SECURITY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CE_TYPE_PAGE_8021X_SECURITY, CEPage8021xSecurityPrivate)) + +typedef struct { + GtkToggleButton *enabled; + GtkWidget *security_widget; + WirelessSecurity *security; + + gboolean initial_have_8021x; + + gboolean disposed; +} CEPage8021xSecurityPrivate; + +static void +stuff_changed (WirelessSecurity *sec, gpointer user_data) +{ + ce_page_changed (CE_PAGE (user_data)); +} + +static void +enable_toggled (GtkToggleButton *button, gpointer user_data) +{ + CEPage8021xSecurityPrivate *priv = CE_PAGE_8021X_SECURITY_GET_PRIVATE (user_data); + + gtk_widget_set_sensitive (priv->security_widget, gtk_toggle_button_get_active (priv->enabled)); + ce_page_changed (CE_PAGE (user_data)); +} + +static void +finish_setup (CEPage8021xSecurity *self, gpointer unused, GError *error, gpointer user_data) +{ + CEPage *parent = CE_PAGE (self); + CEPage8021xSecurityPrivate *priv = CE_PAGE_8021X_SECURITY_GET_PRIVATE (self); + GtkWidget *parent_container; + + if (error) + return; + + priv->security = (WirelessSecurity *) ws_wpa_eap_new (parent->connection, TRUE, FALSE); + if (!priv->security) { + g_warning ("Could not load 802.1x user interface."); + return; + } + + wireless_security_set_changed_notify (priv->security, stuff_changed, self); + priv->security_widget = wireless_security_get_widget (priv->security); + parent_container = gtk_widget_get_parent (priv->security_widget); + if (parent_container) + gtk_container_remove (GTK_CONTAINER (parent_container), priv->security_widget); + + gtk_toggle_button_set_active (priv->enabled, priv->initial_have_8021x); + g_signal_connect (priv->enabled, "toggled", G_CALLBACK (enable_toggled), self); + gtk_widget_set_sensitive (priv->security_widget, priv->initial_have_8021x); + + gtk_box_pack_start (GTK_BOX (parent->page), GTK_WIDGET (priv->enabled), FALSE, TRUE, 12); + gtk_box_pack_start (GTK_BOX (parent->page), priv->security_widget, TRUE, TRUE, 0); + gtk_widget_show_all (parent->page); +} + +CEPage * +ce_page_8021x_security_new (NMConnection *connection, + GtkWindow *parent_window, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error) +{ + CEPage8021xSecurity *self; + CEPage8021xSecurityPrivate *priv; + CEPage *parent; + + self = CE_PAGE_8021X_SECURITY (ce_page_new (CE_TYPE_PAGE_8021X_SECURITY, + connection, + parent_window, + client, + settings, + NULL, + NULL, + _("802.1x Security"))); + if (!self) { + g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load 802.1x Security user interface.")); + return NULL; + } + + parent = CE_PAGE (self); + priv = CE_PAGE_8021X_SECURITY_GET_PRIVATE (self); + +#if GTK_CHECK_VERSION (3,1,6) + parent->page = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); +#else + parent->page = gtk_vbox_new (FALSE, 6); +#endif + g_object_ref_sink (G_OBJECT (parent->page)); + gtk_container_set_border_width (GTK_CONTAINER (parent->page), 6); + + if (nm_connection_get_setting_802_1x (connection)) + priv->initial_have_8021x = TRUE; + + priv->enabled = GTK_TOGGLE_BUTTON (gtk_check_button_new_with_mnemonic (_("Use 802.1_X security for this connection"))); + + g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); + + if (priv->initial_have_8021x) + *out_secrets_setting_name = NM_SETTING_802_1X_SETTING_NAME; + + return CE_PAGE (self); +} + +static gboolean +validate (CEPage *page, NMConnection *connection, GError **error) +{ + CEPage8021xSecurityPrivate *priv = CE_PAGE_8021X_SECURITY_GET_PRIVATE (page); + gboolean valid = TRUE; + + if (gtk_toggle_button_get_active (priv->enabled)) { + NMConnection *tmp_connection; + NMSetting *s_8021x; + + /* FIXME: get failed property and error out of wireless security objects */ + valid = wireless_security_validate (priv->security, NULL); + if (valid) { + NMSetting *s_con; + + /* Here's a nice hack to work around the fact that ws_802_1x_fill_connection needs wireless setting. */ + tmp_connection = nm_connection_new (); + nm_connection_add_setting (tmp_connection, nm_setting_wireless_new ()); + + /* temp connection needs a 'connection' setting too, since most of + * the EAP methods need the UUID for CA cert ignore stuff. + */ + s_con = nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION); + nm_connection_add_setting (tmp_connection, nm_setting_duplicate (s_con)); + + ws_802_1x_fill_connection (priv->security, "wpa_eap_auth_combo", tmp_connection); + + s_8021x = nm_connection_get_setting (tmp_connection, NM_TYPE_SETTING_802_1X); + nm_connection_add_setting (connection, NM_SETTING (g_object_ref (s_8021x))); + + g_object_unref (tmp_connection); + } else + g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Invalid 802.1x security"); + } else { + nm_connection_remove_setting (connection, NM_TYPE_SETTING_802_1X); + valid = TRUE; + } + + return valid; +} + +static GtkWidget * +nag_user (CEPage *page) +{ + CEPage8021xSecurityPrivate *priv = CE_PAGE_8021X_SECURITY_GET_PRIVATE (page); + + return priv->security ? wireless_security_nag_user (priv->security) : NULL; +} + +static void +ce_page_8021x_security_init (CEPage8021xSecurity *self) +{ +} + +static void +dispose (GObject *object) +{ + CEPage8021xSecurityPrivate *priv = CE_PAGE_8021X_SECURITY_GET_PRIVATE (object); + + if (priv->disposed) + return; + + priv->disposed = TRUE; + + if (priv->security) + wireless_security_unref (priv->security); + + G_OBJECT_CLASS (ce_page_8021x_security_parent_class)->dispose (object); +} + +static void +ce_page_8021x_security_class_init (CEPage8021xSecurityClass *security_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (security_class); + CEPageClass *parent_class = CE_PAGE_CLASS (security_class); + + g_type_class_add_private (object_class, sizeof (CEPage8021xSecurityPrivate)); + + /* virtual methods */ + object_class->dispose = dispose; + + parent_class->validate = validate; + parent_class->nag_user = nag_user; +} diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-8021x-security.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-8021x-security.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-8021x-security.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-8021x-security.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,59 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifndef __PAGE_8021X_SECURITY_H__ +#define __PAGE_8021X_SECURITY_H__ + +#include "nm-connection-editor.h" + +#include + +#include +#include + +#include "ce-page.h" + +#define CE_TYPE_PAGE_8021X_SECURITY (ce_page_8021x_security_get_type ()) +#define CE_PAGE_8021X_SECURITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_8021X_SECURITY, CEPage8021xSecurity)) +#define CE_PAGE_8021X_SECURITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_8021X_SECURITY, CEPage8021xSecurityClass)) +#define CE_IS_PAGE_8021X_SECURITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_8021X_SECURITY)) +#define CE_IS_PAGE_8021X_SECURITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_8021X_SECURITY)) +#define CE_PAGE_8021X_SECURITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_8021X_SECURITY, CEPage8021xSecurityClass)) + +typedef struct { + CEPage parent; +} CEPage8021xSecurity; + +typedef struct { + CEPageClass parent; +} CEPage8021xSecurityClass; + +GType ce_page_8021x_security_get_type (void); + +CEPage *ce_page_8021x_security_new (NMConnection *connection, + GtkWindow *parent, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error); + +#endif /* __PAGE_8021X_SECURITY_H__ */ diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-bond.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-bond.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-bond.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-bond.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,949 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright 2012 Red Hat, Inc. + */ + +#include "config.h" + +#include +#include +#include + +#include +#include + +#include "page-bond.h" +#include "page-ethernet.h" +#include "page-infiniband.h" +#include "nm-connection-editor.h" +#include "new-connection.h" + +G_DEFINE_TYPE (CEPageBond, ce_page_bond, CE_TYPE_PAGE) + +#define CE_PAGE_BOND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CE_TYPE_PAGE_BOND, CEPageBondPrivate)) + +typedef struct { + NMRemoteConnection *connection; + NMClient *client; + NMRemoteSettings *settings; + + NMSettingBond *setting; + const char *uuid; + + GType slave_type; + PageNewConnectionFunc new_slave_func; + + GtkWindow *toplevel; + + GtkEntry *interface_name; + GtkComboBox *mode; + GtkComboBox *monitoring; + GtkSpinButton *frequency; + GtkSpinButton *updelay; + GtkWidget *updelay_label; + GtkWidget *updelay_box; + GtkSpinButton *downdelay; + GtkWidget *downdelay_label; + GtkWidget *downdelay_box; + GtkEntry *arp_targets; + GtkWidget *arp_targets_label; + + GtkTable *table; + int table_row_spacing; + int updelay_row; + int downdelay_row; + int arp_targets_row; + + GtkTreeView *connections; + GtkTreeModel *connections_model; + GtkButton *add, *edit, *delete; + +} CEPageBondPrivate; + +#define MODE_BALANCE_RR 0 +#define MODE_ACTIVE_BACKUP 1 +#define MODE_BALANCE_XOR 2 +#define MODE_BROADCAST 3 +#define MODE_802_3AD 4 +#define MODE_BALANCE_TLB 5 +#define MODE_BALANCE_ALB 6 + +#define MONITORING_MII 0 +#define MONITORING_ARP 1 + +enum { + COL_CONNECTION, + COL_NAME +}; + +static int +name_sort_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) +{ + NMConnection *conn_a, *conn_b; + int ret; + + /* We fetch COL_CONNECTION rather than COL_NAME to avoid a strdup/free. */ + gtk_tree_model_get (model, a, COL_CONNECTION, &conn_a, -1); + gtk_tree_model_get (model, b, COL_CONNECTION, &conn_b, -1); + ret = strcmp (nm_connection_get_id (conn_a), nm_connection_get_id (conn_b)); + g_object_unref (conn_a); + g_object_unref (conn_b); + + return ret; +} + +static void +bond_private_init (CEPageBond *self) +{ + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + GtkBuilder *builder; + + builder = CE_PAGE (self)->builder; + + priv->interface_name = GTK_ENTRY (gtk_builder_get_object (builder, "bond_interface")); + priv->connections = GTK_TREE_VIEW (gtk_builder_get_object (builder, "bond_connections")); + priv->connections_model = GTK_TREE_MODEL (gtk_builder_get_object (builder, "bond_connections_model")); + gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (priv->connections_model), + COL_NAME, name_sort_func, + NULL, NULL); + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (priv->connections_model), + COL_NAME, GTK_SORT_ASCENDING); + + priv->mode = GTK_COMBO_BOX (gtk_builder_get_object (builder, "bond_mode")); + priv->monitoring = GTK_COMBO_BOX (gtk_builder_get_object (builder, "bond_monitoring")); + priv->frequency = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "bond_frequency")); + priv->updelay = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "bond_updelay")); + priv->updelay_label = GTK_WIDGET (gtk_builder_get_object (builder, "bond_updelay_label")); + priv->updelay_box = GTK_WIDGET (gtk_builder_get_object (builder, "bond_updelay_box")); + priv->downdelay = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "bond_downdelay")); + priv->downdelay_label = GTK_WIDGET (gtk_builder_get_object (builder, "bond_downdelay_label")); + priv->downdelay_box = GTK_WIDGET (gtk_builder_get_object (builder, "bond_downdelay_box")); + priv->arp_targets = GTK_ENTRY (gtk_builder_get_object (builder, "bond_arp_targets")); + priv->arp_targets_label = GTK_WIDGET (gtk_builder_get_object (builder, "bond_arp_targets_label")); + priv->add = GTK_BUTTON (gtk_builder_get_object (builder, "bond_connection_add")); + priv->edit = GTK_BUTTON (gtk_builder_get_object (builder, "bond_connection_edit")); + priv->delete = GTK_BUTTON (gtk_builder_get_object (builder, "bond_connection_delete")); + + priv->toplevel = GTK_WINDOW (gtk_widget_get_ancestor (GTK_WIDGET (priv->connections), + GTK_TYPE_WINDOW)); + + priv->table = GTK_TABLE (gtk_builder_get_object (builder, "BondPage")); + priv->table_row_spacing = gtk_table_get_default_row_spacing (priv->table); + gtk_container_child_get (GTK_CONTAINER (priv->table), priv->updelay_label, + "top-attach", &priv->updelay_row, + NULL); + gtk_container_child_get (GTK_CONTAINER (priv->table), priv->downdelay_label, + "top-attach", &priv->downdelay_row, + NULL); + gtk_container_child_get (GTK_CONTAINER (priv->table), priv->arp_targets_label, + "top-attach", &priv->arp_targets_row, + NULL); +} + +static void +dispose (GObject *object) +{ + CEPageBond *self = CE_PAGE_BOND (object); + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + GtkTreeIter iter; + + if (priv->settings) { + g_signal_handlers_disconnect_matched (priv->settings, G_SIGNAL_MATCH_DATA, + 0, 0, NULL, NULL, self); + g_object_unref (priv->settings); + priv->settings = NULL; + } + if (priv->client) { + g_object_unref (priv->client); + priv->client = NULL; + } + if (priv->connection) { + g_object_unref (priv->connection); + priv->connection = NULL; + } + + if (gtk_tree_model_get_iter_first (priv->connections_model, &iter)) { + do { + NMRemoteConnection *connection = NULL; + + gtk_tree_model_get (priv->connections_model, &iter, + COL_CONNECTION, &connection, + -1); + g_signal_handlers_disconnect_matched (connection, G_SIGNAL_MATCH_DATA, + 0, 0, NULL, NULL, self); + g_object_unref (connection); + } while (gtk_tree_model_iter_next (priv->connections_model, &iter)); + } + + G_OBJECT_CLASS (ce_page_bond_parent_class)->dispose (object); +} + +static void +stuff_changed (GtkWidget *w, gpointer user_data) +{ + ce_page_changed (CE_PAGE (user_data)); +} + +static void +connection_removed (NMRemoteConnection *connection, gpointer user_data) +{ + CEPageBond *self = CE_PAGE_BOND (user_data); + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + GtkTreeIter iter; + + if (!gtk_tree_model_get_iter_first (priv->connections_model, &iter)) + return; + + do { + NMRemoteConnection *candidate = NULL; + + gtk_tree_model_get (priv->connections_model, &iter, + COL_CONNECTION, &candidate, + -1); + if (candidate == connection) { + gtk_list_store_remove (GTK_LIST_STORE (priv->connections_model), &iter); + stuff_changed (NULL, self); + + if (!gtk_tree_model_get_iter_first (priv->connections_model, &iter)) { + priv->slave_type = G_TYPE_INVALID; + priv->new_slave_func = NULL; + } + return; + } + } while (gtk_tree_model_iter_next (priv->connections_model, &iter)); +} + +static void +connection_added (NMRemoteSettings *settings, + NMRemoteConnection *connection, + gpointer user_data) +{ + CEPageBond *self = CE_PAGE_BOND (user_data); + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + NMSettingConnection *s_con; + const char *slave_type, *master; + const char *interface_name; + GtkTreeIter iter; + + s_con = nm_connection_get_setting_connection (NM_CONNECTION (connection)); + if (!s_con) + return; + + slave_type = nm_setting_connection_get_slave_type (s_con); + if (!slave_type || strcmp (slave_type, NM_SETTING_BOND_SETTING_NAME) != 0) + return; + + master = nm_setting_connection_get_master (s_con); + if (!master) + return; + + interface_name = nm_setting_bond_get_interface_name (priv->setting); + if (!strcmp (master, interface_name)) { + /* Ugh. Fix that... */ + g_object_set (G_OBJECT (connection), + NM_SETTING_CONNECTION_MASTER, priv->uuid, + NULL); + nm_remote_connection_commit_changes (connection, NULL, NULL); + } else if (strcmp (master, priv->uuid) != 0) + return; + + gtk_list_store_append (GTK_LIST_STORE (priv->connections_model), &iter); + gtk_list_store_set (GTK_LIST_STORE (priv->connections_model), &iter, + COL_CONNECTION, connection, + COL_NAME, nm_setting_connection_get_id (s_con), + -1); + stuff_changed (NULL, self); + + /* FIXME: a bit kludgy */ + if (nm_connection_is_type (NM_CONNECTION (connection), NM_SETTING_INFINIBAND_SETTING_NAME)) { + priv->slave_type = NM_TYPE_SETTING_INFINIBAND; + priv->new_slave_func = infiniband_connection_new; + gtk_combo_box_set_active (priv->mode, MODE_ACTIVE_BACKUP); + gtk_widget_set_sensitive (GTK_WIDGET (priv->mode), FALSE); + } else { + priv->slave_type = NM_TYPE_SETTING_WIRED; + priv->new_slave_func = ethernet_connection_new; + gtk_widget_set_sensitive (GTK_WIDGET (priv->mode), TRUE); + } + + g_signal_connect (connection, NM_REMOTE_CONNECTION_REMOVED, + G_CALLBACK (connection_removed), self); +} + +static void +monitoring_mode_changed (GtkComboBox *combo, gpointer user_data) +{ + CEPageBond *self = user_data; + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + + if (gtk_combo_box_get_active (combo) == MONITORING_MII) { + gtk_widget_show (GTK_WIDGET (priv->updelay)); + gtk_widget_show (priv->updelay_label); + gtk_widget_show (priv->updelay_box); + gtk_widget_show (GTK_WIDGET (priv->downdelay)); + gtk_widget_show (priv->downdelay_label); + gtk_widget_show (priv->downdelay_box); + gtk_widget_hide (GTK_WIDGET (priv->arp_targets)); + gtk_widget_hide (priv->arp_targets_label); + + gtk_table_set_row_spacing (priv->table, priv->updelay_row, priv->table_row_spacing); + gtk_table_set_row_spacing (priv->table, priv->downdelay_row, priv->table_row_spacing); + gtk_table_set_row_spacing (priv->table, priv->arp_targets_row, 0); + } else { + gtk_widget_hide (GTK_WIDGET (priv->updelay)); + gtk_widget_hide (priv->updelay_label); + gtk_widget_hide (priv->updelay_box); + gtk_widget_hide (GTK_WIDGET (priv->downdelay)); + gtk_widget_hide (priv->downdelay_label); + gtk_widget_hide (priv->downdelay_box); + gtk_widget_show (GTK_WIDGET (priv->arp_targets)); + gtk_widget_show (priv->arp_targets_label); + + gtk_table_set_row_spacing (priv->table, priv->updelay_row, 0); + gtk_table_set_row_spacing (priv->table, priv->downdelay_row, 0); + gtk_table_set_row_spacing (priv->table, priv->arp_targets_row, priv->table_row_spacing); + } +} + +static void +frequency_changed (GtkSpinButton *button, gpointer user_data) +{ + CEPageBond *self = user_data; + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + int frequency, delay; + + frequency = gtk_spin_button_get_value_as_int (priv->frequency); + + /* Round updelay and downdelay up to a multiple of frequency */ + + delay = gtk_spin_button_get_value_as_int (priv->updelay); + if (frequency == 0) { + if (delay != 0) + gtk_spin_button_set_value (priv->updelay, 0.0); + } else if (delay % frequency) { + delay += frequency - (delay % frequency); + gtk_spin_button_set_value (priv->updelay, delay); + } + gtk_spin_button_set_increments (priv->updelay, frequency, frequency); + + delay = gtk_spin_button_get_value_as_int (priv->downdelay); + if (frequency == 0) { + if (delay != 0) + gtk_spin_button_set_value (priv->downdelay, 0.0); + } else if (delay % frequency) { + delay += frequency - (delay % frequency); + gtk_spin_button_set_value (priv->downdelay, (gdouble)delay); + } + gtk_spin_button_set_increments (priv->downdelay, frequency, frequency); +} + +static void +delay_changed (GtkSpinButton *button, gpointer user_data) +{ + CEPageBond *self = user_data; + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + int frequency, delay; + + /* Clamp to nearest multiple of frequency */ + + frequency = gtk_spin_button_get_value_as_int (priv->frequency); + delay = gtk_spin_button_get_value_as_int (button); + if (frequency == 0) { + if (delay != 0) + gtk_spin_button_set_value (button, 0.0); + } else if (delay % frequency) { + if (delay % frequency < frequency / 2) + delay -= delay % frequency; + else + delay += frequency - (delay % frequency); + gtk_spin_button_set_value (button, (gdouble)delay); + } +} + +static char * +prettify_targets (const char *text) +{ + char **addrs, *targets; + + if (!text || !*text) + return NULL; + + addrs = g_strsplit (text, ",", -1); + targets = g_strjoinv (", ", addrs); + g_strfreev (addrs); + + return targets; +} + +static char * +uglify_targets (const char *text) +{ + char **addrs, *targets; + int i; + + if (!text || !*text) + return NULL; + + addrs = g_strsplit (text, ",", -1); + for (i = 0; addrs[i]; i++) + g_strstrip (addrs[i]); + targets = g_strjoinv (",", addrs); + g_strfreev (addrs); + + return targets; +} + +static void +populate_ui (CEPageBond *self) +{ + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + NMSettingBond *setting = priv->setting; + NMSettingConnection *s_con; + const char *iface; + GSList *connections, *c; + const char *mode, *frequency, *updelay, *downdelay, *raw_targets; + char *targets; + int mode_idx = MODE_BALANCE_RR; + + s_con = nm_connection_get_setting_connection (NM_CONNECTION (priv->connection)); + g_return_if_fail (s_con != NULL); + + /* Interface name */ + iface = nm_setting_bond_get_interface_name (setting); + gtk_entry_set_text (priv->interface_name, iface ? iface : ""); + + /* Bonded connections */ + connections = nm_remote_settings_list_connections (priv->settings); + for (c = connections; c; c = c->next) + connection_added (priv->settings, c->data, self); + + /* Mode */ + mode = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_MODE); + if (mode) { + if (!strcmp (mode, "balance-rr")) + mode_idx = MODE_BALANCE_RR; + else if (!strcmp (mode, "active-backup")) + mode_idx = MODE_ACTIVE_BACKUP; + else if (!strcmp (mode, "balance-xor")) + mode_idx = MODE_BALANCE_XOR; + else if (!strcmp (mode, "broadcast")) + mode_idx = MODE_BROADCAST; + else if (!strcmp (mode, "802.3ad")) + mode_idx = MODE_802_3AD; + else if (!strcmp (mode, "balance-tlb")) + mode_idx = MODE_BALANCE_TLB; + else if (!strcmp (mode, "balance-alb")) + mode_idx = MODE_BALANCE_ALB; + } + gtk_combo_box_set_active (priv->mode, mode_idx); + + /* Monitoring mode/frequency */ + frequency = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_ARP_INTERVAL); + if (frequency) { + gtk_combo_box_set_active (priv->monitoring, MONITORING_ARP); + } else { + gtk_combo_box_set_active (priv->monitoring, MONITORING_MII); + frequency = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_MIIMON); + } + g_signal_connect (priv->monitoring, "changed", + G_CALLBACK (monitoring_mode_changed), + self); + monitoring_mode_changed (priv->monitoring, self); + + if (frequency) + gtk_spin_button_set_value (priv->frequency, (gdouble) atoi (frequency)); + else + gtk_spin_button_set_value (priv->frequency, 0.0); + g_signal_connect (priv->frequency, "value-changed", + G_CALLBACK (frequency_changed), + self); + + updelay = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_UPDELAY); + if (updelay) + gtk_spin_button_set_value (priv->updelay, (gdouble) atoi (updelay)); + else + gtk_spin_button_set_value (priv->updelay, 0.0); + g_signal_connect (priv->updelay, "value-changed", + G_CALLBACK (delay_changed), + self); + downdelay = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_DOWNDELAY); + if (downdelay) + gtk_spin_button_set_value (priv->downdelay, (gdouble) atoi (downdelay)); + else + gtk_spin_button_set_value (priv->downdelay, 0.0); + g_signal_connect (priv->downdelay, "value-changed", + G_CALLBACK (delay_changed), + self); + + /* ARP targets */ + raw_targets = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_ARP_IP_TARGET); + targets = prettify_targets (raw_targets); + if (targets) { + gtk_entry_set_text (priv->arp_targets, targets); + g_free (targets); + } +} + +static void +connections_selection_changed_cb (GtkTreeSelection *selection, gpointer user_data) +{ + CEPageBond *self = user_data; + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + GtkTreeIter iter; + GtkTreeModel *model; + NMRemoteConnection *connection; + NMSettingConnection *s_con; + gboolean sensitive = FALSE; + + if (gtk_tree_selection_get_selected (selection, &model, &iter)) { + gtk_tree_model_get (model, &iter, + 0, &connection, + -1); + s_con = nm_connection_get_setting_connection (NM_CONNECTION (connection)); + g_assert (s_con); + + sensitive = !nm_setting_connection_get_read_only (s_con); + } + + gtk_widget_set_sensitive (GTK_WIDGET (priv->edit), sensitive); + gtk_widget_set_sensitive (GTK_WIDGET (priv->delete), sensitive); +} + +static void +add_response_cb (NMConnectionEditor *editor, NMRemoteConnection *connection, + gboolean added, gpointer user_data) +{ + g_object_unref (editor); +} + +static void +add_bond_connection (NMConnection *connection, + gpointer user_data) +{ + CEPageBond *self = user_data; + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + NMSettingConnection *s_con; + NMConnectionEditor *editor; + const char *iface_name; + char *name; + + if (!connection) + return; + + /* Mark the connection as a bond slave so that the editor knows not + * to add IPv4 and IPv6 pages, and rename it. + */ + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con != NULL); + + iface_name = gtk_entry_get_text (priv->interface_name); + if (!*iface_name) + iface_name = nm_setting_bond_get_interface_name (priv->setting); + if (!*iface_name) + iface_name = "bond"; + name = g_strdup_printf (_("%s slave %d"), iface_name, + gtk_tree_model_iter_n_children (priv->connections_model, NULL) + 1); + + g_object_set (G_OBJECT (s_con), + NM_SETTING_CONNECTION_ID, name, + NM_SETTING_CONNECTION_MASTER, priv->uuid, + NM_SETTING_CONNECTION_SLAVE_TYPE, NM_SETTING_BOND_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NULL); + g_free (name); + + editor = nm_connection_editor_new (priv->toplevel, + connection, + priv->client, + priv->settings); + if (!editor) { + g_object_unref (connection); + return; + } + + g_signal_connect (editor, "done", G_CALLBACK (add_response_cb), self); + nm_connection_editor_run (editor); +} + +static gboolean +connection_type_filter (GType type, gpointer user_data) +{ + if (type == NM_TYPE_SETTING_WIRED || + type == NM_TYPE_SETTING_INFINIBAND) + return TRUE; + else + return FALSE; +} + +static void +add_clicked (GtkButton *button, gpointer user_data) +{ + CEPageBond *self = user_data; + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + + if (priv->new_slave_func) { + new_connection_of_type (priv->toplevel, + NULL, + priv->settings, + priv->new_slave_func, + add_bond_connection, + self); + } else { + new_connection_dialog (priv->toplevel, + priv->settings, + connection_type_filter, + add_bond_connection, + self); + } +} + +static NMRemoteConnection * +get_selected_connection (CEPageBond *self) +{ + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + GtkTreeSelection *selection; + GList *selected_rows; + GtkTreeModel *model = NULL; + GtkTreeIter iter; + NMRemoteConnection *connection = NULL; + + selection = gtk_tree_view_get_selection (priv->connections); + selected_rows = gtk_tree_selection_get_selected_rows (selection, &model); + if (!selected_rows) + return NULL; + + if (gtk_tree_model_get_iter (model, &iter, (GtkTreePath *) selected_rows->data)) + gtk_tree_model_get (model, &iter, 0, &connection, -1); + + /* free memory */ + g_list_foreach (selected_rows, (GFunc) gtk_tree_path_free, NULL); + g_list_free (selected_rows); + + return connection; +} + +static void +edit_done_cb (NMConnectionEditor *editor, GtkResponseType response, gpointer user_data) +{ + g_object_unref (editor); +} + +static void +edit_clicked (GtkButton *button, gpointer user_data) +{ + CEPageBond *self = user_data; + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + NMConnectionEditor *editor; + NMRemoteConnection *connection; + + connection = get_selected_connection (self); + if (!connection) + return; + + editor = nm_connection_editor_get (NM_CONNECTION (connection)); + if (editor) { + nm_connection_editor_present (editor); + return; + } + + editor = nm_connection_editor_new (priv->toplevel, + NM_CONNECTION (connection), + priv->client, + priv->settings); + if (!editor) + return; + + g_signal_connect (editor, "done", G_CALLBACK (edit_done_cb), self); + nm_connection_editor_run (editor); +} + +static void +connection_double_clicked_cb (GtkTreeView *tree_view, + GtkTreePath *path, + GtkTreeViewColumn *column, + gpointer user_data) +{ + edit_clicked (NULL, user_data); +} + +static void +delete_clicked (GtkButton *button, gpointer user_data) +{ + CEPageBond *self = user_data; + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + NMRemoteConnection *connection; + + connection = get_selected_connection (self); + if (!connection) + return; + + delete_connection (priv->toplevel, connection, NULL, NULL); +} + +static void +finish_setup (CEPageBond *self, gpointer unused, GError *error, gpointer user_data) +{ + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + GtkTreeSelection *selection; + + if (error) + return; + + populate_ui (self); + + g_signal_connect (priv->interface_name, "changed", G_CALLBACK (stuff_changed), self); + g_signal_connect (priv->mode, "changed", G_CALLBACK (stuff_changed), self); + g_signal_connect (priv->monitoring, "changed", G_CALLBACK (stuff_changed), self); + g_signal_connect (priv->frequency, "value-changed", G_CALLBACK (stuff_changed), self); + g_signal_connect (priv->updelay, "value-changed", G_CALLBACK (stuff_changed), self); + g_signal_connect (priv->downdelay, "value-changed", G_CALLBACK (stuff_changed), self); + g_signal_connect (priv->arp_targets, "changed", G_CALLBACK (stuff_changed), self); + + g_signal_connect (priv->add, "clicked", G_CALLBACK (add_clicked), self); + g_signal_connect (priv->edit, "clicked", G_CALLBACK (edit_clicked), self); + g_signal_connect (priv->delete, "clicked", G_CALLBACK (delete_clicked), self); + + g_signal_connect (priv->connections, "row-activated", G_CALLBACK (connection_double_clicked_cb), self); + + selection = gtk_tree_view_get_selection (priv->connections); + g_signal_connect (selection, "changed", G_CALLBACK (connections_selection_changed_cb), self); + connections_selection_changed_cb (selection, self); +} + +CEPage * +ce_page_bond_new (NMConnection *connection, + GtkWindow *parent_window, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error) +{ + CEPageBond *self; + CEPageBondPrivate *priv; + NMSettingConnection *s_con; + + self = CE_PAGE_BOND (ce_page_new (CE_TYPE_PAGE_BOND, + connection, + parent_window, + client, + settings, + UIDIR "/ce-page-bond.ui", + "BondPage", + _("Bond"))); + if (!self) { + g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, + _("Could not load bond user interface.")); + return NULL; + } + + bond_private_init (self); + priv = CE_PAGE_BOND_GET_PRIVATE (self); + + priv->connection = g_object_ref (connection); + priv->client = g_object_ref (client); + priv->settings = g_object_ref (settings); + + s_con = nm_connection_get_setting_connection (connection); + priv->uuid = nm_setting_connection_get_uuid (s_con); + + g_signal_connect (settings, NM_REMOTE_SETTINGS_NEW_CONNECTION, + G_CALLBACK (connection_added), self); + + priv->setting = (NMSettingBond *) nm_connection_get_setting (connection, NM_TYPE_SETTING_BOND); + if (!priv->setting) { + priv->setting = NM_SETTING_BOND (nm_setting_bond_new ()); + nm_connection_add_setting (connection, NM_SETTING (priv->setting)); + } + + g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); + + return CE_PAGE (self); +} + +static void +ui_to_setting (CEPageBond *self) +{ + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + const char *interface_name; + const char *mode; + const char *frequency; + const char *updelay; + const char *downdelay; + char *targets; + + /* Interface name */ + interface_name = gtk_entry_get_text (priv->interface_name); + g_object_set (priv->setting, + NM_SETTING_BOND_INTERFACE_NAME, interface_name, + NULL); + + /* Mode */ + switch (gtk_combo_box_get_active (priv->mode)) { + case MODE_BALANCE_RR: + mode = "balance-rr"; + break; + case MODE_ACTIVE_BACKUP: + mode = "active-backup"; + break; + case MODE_BALANCE_XOR: + mode = "balance-xor"; + break; + case MODE_BROADCAST: + mode = "broadcast"; + break; + case MODE_802_3AD: + mode = "802.3ad"; + break; + case MODE_BALANCE_TLB: + mode = "balance-tlb"; + break; + case MODE_BALANCE_ALB: + mode = "balance-alb"; + break; + default: + g_assert_not_reached (); + break; + } + + /* Monitoring mode/frequency */ + frequency = gtk_entry_get_text (GTK_ENTRY (priv->frequency)); + updelay = gtk_entry_get_text (GTK_ENTRY (priv->updelay)); + downdelay = gtk_entry_get_text (GTK_ENTRY (priv->downdelay)); + targets = uglify_targets (gtk_entry_get_text (priv->arp_targets)); + + switch (gtk_combo_box_get_active (priv->monitoring)) { + case MONITORING_MII: + nm_setting_bond_add_option (priv->setting, NM_SETTING_BOND_OPTION_MIIMON, frequency); + nm_setting_bond_add_option (priv->setting, NM_SETTING_BOND_OPTION_UPDELAY, updelay); + nm_setting_bond_add_option (priv->setting, NM_SETTING_BOND_OPTION_DOWNDELAY, downdelay); + nm_setting_bond_remove_option (priv->setting, NM_SETTING_BOND_OPTION_ARP_INTERVAL); + nm_setting_bond_remove_option (priv->setting, NM_SETTING_BOND_OPTION_ARP_IP_TARGET); + break; + case MONITORING_ARP: + nm_setting_bond_add_option (priv->setting, NM_SETTING_BOND_OPTION_ARP_INTERVAL, frequency); + if (targets) + nm_setting_bond_add_option (priv->setting, NM_SETTING_BOND_OPTION_ARP_IP_TARGET, targets); + else + nm_setting_bond_remove_option (priv->setting, NM_SETTING_BOND_OPTION_ARP_IP_TARGET); + nm_setting_bond_remove_option (priv->setting, NM_SETTING_BOND_OPTION_MIIMON); + nm_setting_bond_remove_option (priv->setting, NM_SETTING_BOND_OPTION_UPDELAY); + nm_setting_bond_remove_option (priv->setting, NM_SETTING_BOND_OPTION_DOWNDELAY); + break; + default: + g_assert_not_reached (); + break; + } + + g_free (targets); + + /* Slaves are updated as they're edited, so nothing to do */ +} + +static gboolean +validate (CEPage *page, NMConnection *connection, GError **error) +{ + CEPageBond *self = CE_PAGE_BOND (page); + CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); + GtkTreeIter iter; + + /* Need at least one slave connection; we don't need to + * recursively check that the connections are valid because they + * can't end up in the table if they're not. + */ + if (!gtk_tree_model_get_iter_first (priv->connections_model, &iter)) + return FALSE; + + ui_to_setting (self); + return nm_setting_verify (NM_SETTING (priv->setting), NULL, error); +} + +static void +ce_page_bond_init (CEPageBond *self) +{ +} + +static void +ce_page_bond_class_init (CEPageBondClass *bond_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (bond_class); + CEPageClass *parent_class = CE_PAGE_CLASS (bond_class); + + g_type_class_add_private (object_class, sizeof (CEPageBondPrivate)); + + /* virtual methods */ + object_class->dispose = dispose; + + parent_class->validate = validate; +} + + +void +bond_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data) +{ + NMConnection *connection; + int bond_num, max_bond_num, num; + GSList *connections, *iter; + NMConnection *conn2; + NMSettingBond *s_bond; + const char *iface; + char *my_iface; + + connection = ce_page_new_connection (_("Bond connection %d"), + NM_SETTING_BOND_SETTING_NAME, + TRUE, + settings, + user_data); + nm_connection_add_setting (connection, nm_setting_bond_new ()); + + /* Find an available interface name */ + bond_num = max_bond_num = 0; + connections = nm_remote_settings_list_connections (settings); + for (iter = connections; iter; iter = iter->next) { + conn2 = iter->data; + + if (!nm_connection_is_type (conn2, NM_SETTING_BOND_SETTING_NAME)) + continue; + s_bond = nm_connection_get_setting_bond (conn2); + if (!s_bond) + continue; + iface = nm_setting_bond_get_interface_name (s_bond); + if (!iface || strncmp (iface, "bond", 4) != 0 || !g_ascii_isdigit (iface[4])) + continue; + + num = atoi (iface + 4); + if (num > max_bond_num) + max_bond_num = num; + if (num == bond_num) + bond_num = max_bond_num + 1; + } + g_slist_free (connections); + + my_iface = g_strdup_printf ("bond%d", bond_num); + s_bond = nm_connection_get_setting_bond (connection); + g_object_set (G_OBJECT (s_bond), + NM_SETTING_BOND_INTERFACE_NAME, my_iface, + NULL); + g_free (my_iface); + + (*result_func) (connection, FALSE, NULL, user_data); +} + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-bond.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-bond.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-bond.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-bond.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,62 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright 2012 Red Hat, Inc. + */ + +#ifndef __PAGE_BOND_H__ +#define __PAGE_BOND_H__ + +#include + +#include +#include + +#include "ce-page.h" + +#define CE_TYPE_PAGE_BOND (ce_page_bond_get_type ()) +#define CE_PAGE_BOND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_BOND, CEPageBond)) +#define CE_PAGE_BOND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_BOND, CEPageBondClass)) +#define CE_IS_PAGE_BOND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_BOND)) +#define CE_IS_PAGE_BOND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_BOND)) +#define CE_PAGE_BOND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_BOND, CEPageBondClass)) + +typedef struct { + CEPage parent; +} CEPageBond; + +typedef struct { + CEPageClass parent; +} CEPageBondClass; + +GType ce_page_bond_get_type (void); + +CEPage *ce_page_bond_new (NMConnection *connection, + GtkWindow *parent, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error); + +void bond_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data); + +#endif /* __PAGE_BOND_H__ */ + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-dsl.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-dsl.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-dsl.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-dsl.c 2012-10-31 13:20:57.000000000 +0000 @@ -17,7 +17,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2008 - 2011 Red Hat, Inc. + * (C) Copyright 2008 - 2012 Red Hat, Inc. */ #include "config.h" @@ -124,6 +124,7 @@ ce_page_dsl_new (NMConnection *connection, GtkWindow *parent_window, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error) { @@ -134,6 +135,7 @@ connection, parent_window, client, + settings, UIDIR "/ce-page-dsl.ui", "DslPage", _("DSL"))); @@ -179,10 +181,10 @@ service = NULL; g_object_set (priv->setting, - NM_SETTING_PPPOE_USERNAME, username, - NM_SETTING_PPPOE_PASSWORD, password, - NM_SETTING_PPPOE_SERVICE, service, - NULL); + NM_SETTING_PPPOE_USERNAME, username, + NM_SETTING_PPPOE_PASSWORD, password, + NM_SETTING_PPPOE_SERVICE, service, + NULL); } static gboolean @@ -222,20 +224,28 @@ void dsl_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, PageNewConnectionResultFunc result_func, - PageGetConnectionsFunc get_connections_func, gpointer user_data) { NMConnection *connection; + NMSetting *setting; connection = ce_page_new_connection (_("DSL connection %d"), NM_SETTING_PPPOE_SETTING_NAME, FALSE, - get_connections_func, + settings, user_data); nm_connection_add_setting (connection, nm_setting_pppoe_new ()); nm_connection_add_setting (connection, nm_setting_wired_new ()); - nm_connection_add_setting (connection, nm_setting_ppp_new ()); + setting = nm_setting_ppp_new (); + /* Set default values for lcp-echo-failure and lcp-echo-interval */ + g_object_set (G_OBJECT (setting), + NM_SETTING_PPP_LCP_ECHO_FAILURE, 5, + NM_SETTING_PPP_LCP_ECHO_INTERVAL, 30, + NULL); + nm_connection_add_setting (connection, setting); (*result_func) (connection, FALSE, NULL, user_data); } diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-dsl.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-dsl.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-dsl.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-dsl.h 2012-10-31 13:20:57.000000000 +0000 @@ -17,7 +17,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2008 - 2011 Red Hat, Inc. + * (C) Copyright 2008 - 2012 Red Hat, Inc. */ #ifndef __PAGE_DSL_H__ @@ -34,7 +34,7 @@ #define CE_PAGE_DSL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_DSL, CEPageDsl)) #define CE_PAGE_DSL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_DSL, CEPageDslClass)) #define CE_IS_PAGE_DSL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_DSL)) -#define CE_IS_PAGE_DSL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_PAGE_DSL)) +#define CE_IS_PAGE_DSL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_DSL)) #define CE_PAGE_DSL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_DSL, CEPageDslClass)) typedef struct { @@ -50,12 +50,14 @@ CEPage *ce_page_dsl_new (NMConnection *connection, GtkWindow *parent, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error); void dsl_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, PageNewConnectionResultFunc callback, - PageGetConnectionsFunc get_connections_func, gpointer user_data); #endif /* __PAGE_DSL_H__ */ diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-ethernet.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ethernet.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-ethernet.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ethernet.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,405 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2011 Red Hat, Inc. + */ + +#include "config.h" + +#include +#include + +#include +#include + +#include +#include +#include +#include + +#include "page-ethernet.h" + +G_DEFINE_TYPE (CEPageEthernet, ce_page_ethernet, CE_TYPE_PAGE) + +#define CE_PAGE_ETHERNET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CE_TYPE_PAGE_ETHERNET, CEPageEthernetPrivate)) + +typedef struct { + NMSettingWired *setting; + +#if GTK_CHECK_VERSION(2,24,0) + GtkComboBoxText *device_mac; /* Permanent MAC of the device */ +#else + GtkComboBoxEntry *device_mac; +#endif + GtkEntry *cloned_mac; /* Cloned MAC - used for MAC spoofing */ + GtkComboBox *port; + GtkComboBox *speed; + GtkToggleButton *duplex; + GtkToggleButton *autonegotiate; + GtkSpinButton *mtu; + + gboolean disposed; +} CEPageEthernetPrivate; + +#define PORT_DEFAULT 0 +#define PORT_TP 1 +#define PORT_AUI 2 +#define PORT_BNC 3 +#define PORT_MII 4 + +#define SPEED_DEFAULT 0 +#define SPEED_10 1 +#define SPEED_100 2 +#define SPEED_1000 3 +#define SPEED_10000 4 + +static void +ethernet_private_init (CEPageEthernet *self) +{ + CEPageEthernetPrivate *priv = CE_PAGE_ETHERNET_GET_PRIVATE (self); + GtkBuilder *builder; + GtkWidget *align; + GtkLabel *label; + + builder = CE_PAGE (self)->builder; + +#if GTK_CHECK_VERSION(2,24,0) + priv->device_mac = GTK_COMBO_BOX_TEXT (gtk_combo_box_text_new_with_entry ()); + gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX (priv->device_mac), 0); +#else + priv->device_mac = GTK_COMBO_BOX_ENTRY (gtk_combo_box_entry_new_text ()); + gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (priv->device_mac), 0); +#endif + gtk_widget_set_tooltip_text (GTK_WIDGET (priv->device_mac), + _("This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55")); + + align = GTK_WIDGET (gtk_builder_get_object (builder, "ethernet_device_mac_alignment")); + gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (priv->device_mac)); + gtk_widget_show_all (GTK_WIDGET (priv->device_mac)); + + /* Set mnemonic widget for device MAC label */ + label = GTK_LABEL (GTK_WIDGET (gtk_builder_get_object (builder, "ethernet_device_mac_label"))); + gtk_label_set_mnemonic_widget (label, GTK_WIDGET (priv->device_mac)); + + priv->cloned_mac = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "ethernet_cloned_mac"))); + priv->port = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "ethernet_port"))); + priv->speed = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "ethernet_speed"))); + priv->duplex = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ethernet_duplex"))); + priv->autonegotiate = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ethernet_autonegotiate"))); + priv->mtu = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ethernet_mtu"))); +} + +static void +stuff_changed (GtkWidget *w, gpointer user_data) +{ + ce_page_changed (CE_PAGE (user_data)); +} + +static void +populate_ui (CEPageEthernet *self) +{ + CEPageEthernetPrivate *priv = CE_PAGE_ETHERNET_GET_PRIVATE (self); + NMSettingWired *setting = priv->setting; + const char *port; + const char *duplex; + int port_idx = PORT_DEFAULT; + int speed_idx; + int mtu_def; + char **mac_list; + const GByteArray *s_mac; + char *s_mac_str; + + /* Port */ + port = nm_setting_wired_get_port (setting); + if (port) { + if (!strcmp (port, "tp")) + port_idx = PORT_TP; + else if (!strcmp (port, "aui")) + port_idx = PORT_AUI; + else if (!strcmp (port, "bnc")) + port_idx = PORT_BNC; + else if (!strcmp (port, "mii")) + port_idx = PORT_MII; + } + gtk_combo_box_set_active (priv->port, port_idx); + + /* Speed */ + switch (nm_setting_wired_get_speed (setting)) { + case 10: + speed_idx = SPEED_10; + break; + case 100: + speed_idx = SPEED_100; + break; + case 1000: + speed_idx = SPEED_1000; + break; + case 10000: + speed_idx = SPEED_10000; + break; + default: + speed_idx = SPEED_DEFAULT; + break; + } + gtk_combo_box_set_active (priv->speed, speed_idx); + + /* Duplex */ + duplex = nm_setting_wired_get_duplex (setting); + if (duplex && !strcmp (duplex, "half")) + gtk_toggle_button_set_active (priv->duplex, FALSE); + else + gtk_toggle_button_set_active (priv->duplex, TRUE); + + /* Autonegotiate */ + gtk_toggle_button_set_active (priv->autonegotiate, + nm_setting_wired_get_auto_negotiate (setting)); + + /* Device MAC address */ + mac_list = ce_page_get_mac_list (CE_PAGE (self), NM_TYPE_DEVICE_ETHERNET, + NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS); + s_mac = nm_setting_wired_get_mac_address (setting); + s_mac_str = s_mac ? nm_utils_hwaddr_ntoa (s_mac->data, ARPHRD_ETHER) : NULL; + ce_page_setup_mac_combo (CE_PAGE (self), GTK_COMBO_BOX (priv->device_mac), + s_mac_str, mac_list); + g_free (s_mac_str); + g_strfreev (mac_list); + g_signal_connect (priv->device_mac, "changed", G_CALLBACK (stuff_changed), self); + + /* Cloned MAC address */ + ce_page_mac_to_entry (nm_setting_wired_get_cloned_mac_address (setting), + ARPHRD_ETHER, priv->cloned_mac); + g_signal_connect (priv->cloned_mac, "changed", G_CALLBACK (stuff_changed), self); + + /* MTU */ + mtu_def = ce_get_property_default (NM_SETTING (setting), NM_SETTING_WIRED_MTU); + g_signal_connect (priv->mtu, "output", + G_CALLBACK (ce_spin_output_with_default), + GINT_TO_POINTER (mtu_def)); + + gtk_spin_button_set_value (priv->mtu, (gdouble) nm_setting_wired_get_mtu (setting)); +} + +static void +finish_setup (CEPageEthernet *self, gpointer unused, GError *error, gpointer user_data) +{ + CEPage *parent = CE_PAGE (self); + CEPageEthernetPrivate *priv = CE_PAGE_ETHERNET_GET_PRIVATE (self); + GtkWidget *widget; + + if (error) + return; + + populate_ui (self); + + g_signal_connect (priv->port, "changed", G_CALLBACK (stuff_changed), self); + g_signal_connect (priv->speed, "changed", G_CALLBACK (stuff_changed), self); + g_signal_connect (priv->duplex, "toggled", G_CALLBACK (stuff_changed), self); + g_signal_connect (priv->autonegotiate, "toggled", G_CALLBACK (stuff_changed), self); + g_signal_connect (priv->mtu, "value-changed", G_CALLBACK (stuff_changed), self); + + /* Hide widgets we don't yet support */ + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ethernet_port_label")); + gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ethernet_port")); + gtk_widget_hide (widget); + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ethernet_speed_label")); + gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ethernet_speed")); + gtk_widget_hide (widget); + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ethernet_duplex")); + gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ethernet_autonegotiate")); + gtk_widget_hide (widget); +} + +CEPage * +ce_page_ethernet_new (NMConnection *connection, + GtkWindow *parent_window, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error) +{ + CEPageEthernet *self; + CEPageEthernetPrivate *priv; + + self = CE_PAGE_ETHERNET (ce_page_new (CE_TYPE_PAGE_ETHERNET, + connection, + parent_window, + client, + settings, + UIDIR "/ce-page-ethernet.ui", + "EthernetPage", + _("Ethernet"))); + if (!self) { + g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load ethernet user interface.")); + return NULL; + } + + ethernet_private_init (self); + priv = CE_PAGE_ETHERNET_GET_PRIVATE (self); + + priv->setting = nm_connection_get_setting_wired (connection); + if (!priv->setting) { + priv->setting = NM_SETTING_WIRED (nm_setting_wired_new ()); + nm_connection_add_setting (connection, NM_SETTING (priv->setting)); + } + + g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); + + return CE_PAGE (self); +} + +static void +ui_to_setting (CEPageEthernet *self) +{ + CEPageEthernetPrivate *priv = CE_PAGE_ETHERNET_GET_PRIVATE (self); + const char *port; + guint32 speed; + GByteArray *device_mac = NULL; + GByteArray *cloned_mac = NULL; + GtkWidget *entry; + + /* Port */ + switch (gtk_combo_box_get_active (priv->port)) { + case PORT_TP: + port = "tp"; + break; + case PORT_AUI: + port = "aui"; + break; + case PORT_BNC: + port = "bnc"; + break; + case PORT_MII: + port = "mii"; + break; + default: + port = NULL; + break; + } + + /* Speed */ + switch (gtk_combo_box_get_active (priv->speed)) { + case SPEED_10: + speed = 10; + break; + case SPEED_100: + speed = 100; + break; + case SPEED_1000: + speed = 1000; + break; + case SPEED_10000: + speed = 10000; + break; + default: + speed = 0; + break; + } + + entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); + if (entry) + device_mac = ce_page_entry_to_mac (GTK_ENTRY (entry), ARPHRD_ETHER, NULL); + cloned_mac = ce_page_entry_to_mac (priv->cloned_mac, ARPHRD_ETHER, NULL); + + g_object_set (priv->setting, + NM_SETTING_WIRED_MAC_ADDRESS, device_mac, + NM_SETTING_WIRED_CLONED_MAC_ADDRESS, cloned_mac, + NM_SETTING_WIRED_PORT, port, + NM_SETTING_WIRED_SPEED, speed, + NM_SETTING_WIRED_DUPLEX, gtk_toggle_button_get_active (priv->duplex) ? "full" : "half", + NM_SETTING_WIRED_AUTO_NEGOTIATE, gtk_toggle_button_get_active (priv->autonegotiate), + NM_SETTING_WIRED_MTU, (guint32) gtk_spin_button_get_value_as_int (priv->mtu), + NULL); + + if (device_mac) + g_byte_array_free (device_mac, TRUE); + if (cloned_mac) + g_byte_array_free (cloned_mac, TRUE); + +} + +static gboolean +validate (CEPage *page, NMConnection *connection, GError **error) +{ + CEPageEthernet *self = CE_PAGE_ETHERNET (page); + CEPageEthernetPrivate *priv = CE_PAGE_ETHERNET_GET_PRIVATE (self); + gboolean invalid = FALSE; + GByteArray *ignore; + GtkWidget *entry; + + entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); + if (entry) { + ignore = ce_page_entry_to_mac (GTK_ENTRY (entry), ARPHRD_ETHER, &invalid); + if (invalid) + return FALSE; + if (ignore) + g_byte_array_free (ignore, TRUE); + } + + ignore = ce_page_entry_to_mac (priv->cloned_mac, ARPHRD_ETHER, &invalid); + if (invalid) + return FALSE; + if (ignore) + g_byte_array_free (ignore, TRUE); + + ui_to_setting (self); + return nm_setting_verify (NM_SETTING (priv->setting), NULL, error); +} + +static void +ce_page_ethernet_init (CEPageEthernet *self) +{ +} + +static void +ce_page_ethernet_class_init (CEPageEthernetClass *ethernet_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (ethernet_class); + CEPageClass *parent_class = CE_PAGE_CLASS (ethernet_class); + + g_type_class_add_private (object_class, sizeof (CEPageEthernetPrivate)); + + /* virtual methods */ + parent_class->validate = validate; +} + + +void +ethernet_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data) +{ + NMConnection *connection; + + connection = ce_page_new_connection (_("Ethernet connection %d"), + NM_SETTING_WIRED_SETTING_NAME, + TRUE, + settings, + user_data); + nm_connection_add_setting (connection, nm_setting_wired_new ()); + + (*result_func) (connection, FALSE, NULL, user_data); +} + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-ethernet.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ethernet.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-ethernet.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ethernet.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,64 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifndef __PAGE_ETHERNET_H__ +#define __PAGE_ETHERNET_H__ + +#include + +#include +#include + +#include "ce-page.h" + +#define CE_TYPE_PAGE_ETHERNET (ce_page_ethernet_get_type ()) +#define CE_PAGE_ETHERNET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_ETHERNET, CEPageEthernet)) +#define CE_PAGE_ETHERNET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_ETHERNET, CEPageEthernetClass)) +#define CE_IS_PAGE_ETHERNET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_ETHERNET)) +#define CE_IS_PAGE_ETHERNET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_ETHERNET)) +#define CE_PAGE_ETHERNET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_ETHERNET, CEPageEthernetClass)) + +typedef struct { + CEPage parent; +} CEPageEthernet; + +typedef struct { + CEPageClass parent; +} CEPageEthernetClass; + +GType ce_page_ethernet_get_type (void); + +CEPage *ce_page_ethernet_new (NMConnection *connection, + GtkWindow *parent, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error); + +void ethernet_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data); + +#endif /* __PAGE_ETHERNET_H__ */ + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-infiniband.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-infiniband.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-infiniband.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-infiniband.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,272 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright 2012 Red Hat, Inc. + */ + +#include "config.h" + +#include +#include + +#include +#include +#include +#include + +#include +#include + +#include "page-infiniband.h" + +G_DEFINE_TYPE (CEPageInfiniband, ce_page_infiniband, CE_TYPE_PAGE) + +#define CE_PAGE_INFINIBAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CE_TYPE_PAGE_INFINIBAND, CEPageInfinibandPrivate)) + +typedef struct { + NMSettingInfiniband *setting; + +#if GTK_CHECK_VERSION(2,24,0) + GtkComboBoxText *device_mac; /* Permanent MAC of the device */ +#else + GtkComboBoxEntry *device_mac; +#endif + + GtkComboBox *transport_mode; + GtkSpinButton *mtu; +} CEPageInfinibandPrivate; + +#define TRANSPORT_MODE_DATAGRAM 0 +#define TRANSPORT_MODE_CONNECTED 1 + +static void +infiniband_private_init (CEPageInfiniband *self) +{ + CEPageInfinibandPrivate *priv = CE_PAGE_INFINIBAND_GET_PRIVATE (self); + GtkBuilder *builder; + GtkWidget *align; + GtkLabel *label; + + builder = CE_PAGE (self)->builder; + +#if GTK_CHECK_VERSION(2,24,0) + priv->device_mac = GTK_COMBO_BOX_TEXT (gtk_combo_box_text_new_with_entry ()); + gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX (priv->device_mac), 0); +#else + priv->device_mac = GTK_COMBO_BOX_ENTRY (gtk_combo_box_entry_new_text ()); + gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (priv->device_mac), 0); +#endif + gtk_widget_set_tooltip_text (GTK_WIDGET (priv->device_mac), + _("This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55")); + + align = GTK_WIDGET (gtk_builder_get_object (builder, "infiniband_device_mac_alignment")); + gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (priv->device_mac)); + gtk_widget_show_all (GTK_WIDGET (priv->device_mac)); + + /* Set mnemonic widget for device MAC label */ + label = GTK_LABEL (GTK_WIDGET (gtk_builder_get_object (builder, "infiniband_device_mac_label"))); + gtk_label_set_mnemonic_widget (label, GTK_WIDGET (priv->device_mac)); + + priv->transport_mode = GTK_COMBO_BOX (gtk_builder_get_object (builder, "infiniband_mode")); + priv->mtu = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "infiniband_mtu"))); +} + +static void +stuff_changed (GtkWidget *w, gpointer user_data) +{ + ce_page_changed (CE_PAGE (user_data)); +} + +static void +populate_ui (CEPageInfiniband *self) +{ + CEPageInfinibandPrivate *priv = CE_PAGE_INFINIBAND_GET_PRIVATE (self); + NMSettingInfiniband *setting = priv->setting; + const char *mode; + int mode_idx = TRANSPORT_MODE_DATAGRAM; + int mtu_def; + char **mac_list; + const GByteArray *s_mac; + char *s_mac_str; + + /* Port */ + mode = nm_setting_infiniband_get_transport_mode (setting); + if (mode) { + if (!strcmp (mode, "datagram")) + mode_idx = TRANSPORT_MODE_DATAGRAM; + else if (!strcmp (mode, "connected")) + mode_idx = TRANSPORT_MODE_CONNECTED; + } + gtk_combo_box_set_active (priv->transport_mode, mode_idx); + + /* Device MAC address */ + mac_list = ce_page_get_mac_list (CE_PAGE (self), NM_TYPE_DEVICE_INFINIBAND, + NM_DEVICE_INFINIBAND_HW_ADDRESS); + s_mac = nm_setting_infiniband_get_mac_address (setting); + s_mac_str = s_mac ? nm_utils_hwaddr_ntoa (s_mac->data, ARPHRD_INFINIBAND) : NULL; + ce_page_setup_mac_combo (CE_PAGE (self), GTK_COMBO_BOX (priv->device_mac), + s_mac_str, mac_list); + g_free (s_mac_str); + g_strfreev (mac_list); + g_signal_connect (priv->device_mac, "changed", G_CALLBACK (stuff_changed), self); + + /* MTU */ + mtu_def = ce_get_property_default (NM_SETTING (setting), NM_SETTING_INFINIBAND_MTU); + g_signal_connect (priv->mtu, "output", + G_CALLBACK (ce_spin_output_with_default), + GINT_TO_POINTER (mtu_def)); + + gtk_spin_button_set_value (priv->mtu, (gdouble) nm_setting_infiniband_get_mtu (setting)); +} + +static void +finish_setup (CEPageInfiniband *self, gpointer unused, GError *error, gpointer user_data) +{ + CEPageInfinibandPrivate *priv = CE_PAGE_INFINIBAND_GET_PRIVATE (self); + + if (error) + return; + + populate_ui (self); + + g_signal_connect (priv->transport_mode, "changed", G_CALLBACK (stuff_changed), self); + g_signal_connect (priv->mtu, "value-changed", G_CALLBACK (stuff_changed), self); +} + +CEPage * +ce_page_infiniband_new (NMConnection *connection, + GtkWindow *parent_window, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error) +{ + CEPageInfiniband *self; + CEPageInfinibandPrivate *priv; + + self = CE_PAGE_INFINIBAND (ce_page_new (CE_TYPE_PAGE_INFINIBAND, + connection, + parent_window, + client, + settings, + UIDIR "/ce-page-infiniband.ui", + "InfinibandPage", + _("InfiniBand"))); + if (!self) { + g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, + _("Could not load InfiniBand user interface.")); + return NULL; + } + + infiniband_private_init (self); + priv = CE_PAGE_INFINIBAND_GET_PRIVATE (self); + + priv->setting = nm_connection_get_setting_infiniband (connection); + if (!priv->setting) { + priv->setting = NM_SETTING_INFINIBAND (nm_setting_infiniband_new ()); + nm_connection_add_setting (connection, NM_SETTING (priv->setting)); + } + + g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); + + return CE_PAGE (self); +} + +static void +ui_to_setting (CEPageInfiniband *self) +{ + CEPageInfinibandPrivate *priv = CE_PAGE_INFINIBAND_GET_PRIVATE (self); + const char *mode; + GByteArray *device_mac = NULL; + GtkWidget *entry; + + /* Transport mode */ + if (gtk_combo_box_get_active (priv->transport_mode) == TRANSPORT_MODE_CONNECTED) + mode = "connected"; + else + mode = "datagram"; + + entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); + if (entry) + device_mac = nm_utils_hwaddr_atoba (gtk_entry_get_text (GTK_ENTRY (entry)), + ARPHRD_INFINIBAND); + + g_object_set (priv->setting, + NM_SETTING_INFINIBAND_MAC_ADDRESS, device_mac, + NM_SETTING_INFINIBAND_MTU, (guint32) gtk_spin_button_get_value_as_int (priv->mtu), + NM_SETTING_INFINIBAND_TRANSPORT_MODE, mode, + NULL); + + if (device_mac) + g_byte_array_free (device_mac, TRUE); +} + +static gboolean +validate (CEPage *page, NMConnection *connection, GError **error) +{ + CEPageInfiniband *self = CE_PAGE_INFINIBAND (page); + CEPageInfinibandPrivate *priv = CE_PAGE_INFINIBAND_GET_PRIVATE (self); + GtkWidget *entry; + char buf[INFINIBAND_ALEN]; + const char *hwaddr; + + entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); + hwaddr = gtk_entry_get_text (GTK_ENTRY (entry)); + if (hwaddr && *hwaddr && !nm_utils_hwaddr_aton (hwaddr, ARPHRD_INFINIBAND, buf)) + return FALSE; + + ui_to_setting (self); + return nm_setting_verify (NM_SETTING (priv->setting), NULL, error); +} + +static void +ce_page_infiniband_init (CEPageInfiniband *self) +{ +} + +static void +ce_page_infiniband_class_init (CEPageInfinibandClass *infiniband_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (infiniband_class); + CEPageClass *parent_class = CE_PAGE_CLASS (infiniband_class); + + g_type_class_add_private (object_class, sizeof (CEPageInfinibandPrivate)); + + /* virtual methods */ + parent_class->validate = validate; +} + + +void +infiniband_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data) +{ + NMConnection *connection; + + connection = ce_page_new_connection (_("InfiniBand connection %d"), + NM_SETTING_INFINIBAND_SETTING_NAME, + TRUE, + settings, + user_data); + nm_connection_add_setting (connection, nm_setting_infiniband_new ()); + + (*result_func) (connection, FALSE, NULL, user_data); +} + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-infiniband.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-infiniband.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-infiniband.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-infiniband.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,62 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright 2012 Red Hat, Inc. + */ + +#ifndef __PAGE_INFINIBAND_H__ +#define __PAGE_INFINIBAND_H__ + +#include + +#include +#include + +#include "ce-page.h" + +#define CE_TYPE_PAGE_INFINIBAND (ce_page_infiniband_get_type ()) +#define CE_PAGE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_INFINIBAND, CEPageInfiniband)) +#define CE_PAGE_INFINIBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_INFINIBAND, CEPageInfinibandClass)) +#define CE_IS_PAGE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_INFINIBAND)) +#define CE_IS_PAGE_INFINIBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_INFINIBAND)) +#define CE_PAGE_INFINIBAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_INFINIBAND, CEPageInfinibandClass)) + +typedef struct { + CEPage parent; +} CEPageInfiniband; + +typedef struct { + CEPageClass parent; +} CEPageInfinibandClass; + +GType ce_page_infiniband_get_type (void); + +CEPage *ce_page_infiniband_new (NMConnection *connection, + GtkWindow *parent, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error); + +void infiniband_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data); + +#endif /* __PAGE_INFINIBAND_H__ */ + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-ip4.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ip4.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-ip4.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ip4.c 2012-10-31 13:20:57.000000000 +0000 @@ -189,7 +189,7 @@ -1); } - /* At the moment, Disabled is only supported for Wired & WiFi */ + /* At the moment, Disabled is only supported for Ethernet & Wi-Fi */ if ( priv->connection_type == NM_TYPE_SETTING_WIRED || priv->connection_type == NM_TYPE_SETTING_WIRELESS) { gtk_list_store_append (priv->method_store, &iter); @@ -244,6 +244,7 @@ gboolean dhcp_enabled = FALSE; gboolean routes_enabled = FALSE; gboolean ip4_required_enabled = TRUE; + gboolean method_auto = FALSE; GtkTreeIter iter; if (gtk_combo_box_get_active_iter (priv->method, &iter)) { @@ -255,6 +256,8 @@ case IP4_METHOD_AUTO: addr_enabled = FALSE; dhcp_enabled = routes_enabled = TRUE; + dns_enabled = TRUE; + method_auto = TRUE; break; case IP4_METHOD_AUTO_ADDRESSES: addr_enabled = FALSE; @@ -290,11 +293,19 @@ } gtk_widget_set_sensitive (priv->dns_servers_label, dns_enabled); + if (method_auto) + gtk_label_set_text_with_mnemonic (GTK_LABEL (priv->dns_servers_label), _("Additional _DNS servers:")); + else + gtk_label_set_text_with_mnemonic (GTK_LABEL (priv->dns_servers_label), _("_DNS servers:")); gtk_widget_set_sensitive (GTK_WIDGET (priv->dns_servers), dns_enabled); if (!dns_enabled) gtk_entry_set_text (priv->dns_servers, ""); gtk_widget_set_sensitive (priv->dns_searches_label, dns_enabled); + if (method_auto) + gtk_label_set_text_with_mnemonic (GTK_LABEL (priv->dns_searches_label), _("Additional s_earch domains:")); + else + gtk_label_set_text_with_mnemonic (GTK_LABEL (priv->dns_searches_label), _("S_earch domains:")); gtk_widget_set_sensitive (GTK_WIDGET (priv->dns_searches), dns_enabled); if (!dns_enabled) gtk_entry_set_text (priv->dns_searches, ""); @@ -965,6 +976,7 @@ ce_page_ip4_new (NMConnection *connection, GtkWindow *parent_window, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error) { @@ -976,6 +988,7 @@ connection, parent_window, client, + settings, UIDIR "/ce-page-ip4.ui", "IP4Page", _("IPv4 Settings"))); @@ -1169,14 +1182,14 @@ /* Update setting */ g_object_set (priv->setting, - NM_SETTING_IP4_CONFIG_METHOD, method, - NM_SETTING_IP4_CONFIG_ADDRESSES, addresses, - NM_SETTING_IP4_CONFIG_DNS, dns_servers, - NM_SETTING_IP4_CONFIG_DNS_SEARCH, search_domains, - NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, ignore_auto_dns, - NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, dhcp_client_id, - NM_SETTING_IP4_CONFIG_MAY_FAIL, may_fail, - NULL); + NM_SETTING_IP4_CONFIG_METHOD, method, + NM_SETTING_IP4_CONFIG_ADDRESSES, addresses, + NM_SETTING_IP4_CONFIG_DNS, dns_servers, + NM_SETTING_IP4_CONFIG_DNS_SEARCH, search_domains, + NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, ignore_auto_dns, + NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, dhcp_client_id, + NM_SETTING_IP4_CONFIG_MAY_FAIL, may_fail, + NULL); valid = TRUE; out: diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-ip4.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ip4.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-ip4.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ip4.h 2012-10-31 13:20:57.000000000 +0000 @@ -17,7 +17,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2008 - 2011 Red Hat, Inc. + * (C) Copyright 2008 - 2012 Red Hat, Inc. */ #ifndef __PAGE_IP4_H__ @@ -34,7 +34,7 @@ #define CE_PAGE_IP4(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_IP4, CEPageIP4)) #define CE_PAGE_IP4_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_IP4, CEPageIP4Class)) #define CE_IS_PAGE_IP4(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_IP4)) -#define CE_IS_PAGE_IP4_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_PAGE_IP4)) +#define CE_IS_PAGE_IP4_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_IP4)) #define CE_PAGE_IP4_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_IP4, CEPageIP4Class)) typedef struct { @@ -50,6 +50,7 @@ CEPage *ce_page_ip4_new (NMConnection *connection, GtkWindow *parent, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error); diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-ip6.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ip6.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-ip6.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ip6.c 2012-10-31 13:20:57.000000000 +0000 @@ -171,7 +171,7 @@ METHOD_COL_ENABLED, TRUE, -1); - /* DHCP only used on wifi and wired for now */ + /* DHCP only used on Wi-Fi and ethernet for now */ if ( priv->connection_type == NM_TYPE_SETTING_WIRED || priv->connection_type == NM_TYPE_SETTING_WIRELESS) { gtk_list_store_append (priv->method_store, &iter); @@ -247,6 +247,7 @@ gboolean dns_enabled = FALSE; gboolean routes_enabled = FALSE; gboolean ip6_required_enabled = TRUE; + gboolean method_auto = FALSE; GtkTreeIter iter; if (gtk_combo_box_get_active_iter (priv->method, &iter)) { @@ -258,6 +259,8 @@ case IP6_METHOD_AUTO: addr_enabled = FALSE; routes_enabled = TRUE; + dns_enabled = TRUE; + method_auto = TRUE; break; case IP6_METHOD_AUTO_ADDRESSES: addr_enabled = FALSE; @@ -289,11 +292,19 @@ } gtk_widget_set_sensitive (priv->dns_servers_label, dns_enabled); + if (method_auto) + gtk_label_set_text_with_mnemonic (GTK_LABEL (priv->dns_servers_label), _("Additional _DNS servers:")); + else + gtk_label_set_text_with_mnemonic (GTK_LABEL (priv->dns_servers_label), _("_DNS servers:")); gtk_widget_set_sensitive (GTK_WIDGET (priv->dns_servers), dns_enabled); if (!dns_enabled) gtk_entry_set_text (priv->dns_servers, ""); gtk_widget_set_sensitive (priv->dns_searches_label, dns_enabled); + if (method_auto) + gtk_label_set_text_with_mnemonic (GTK_LABEL (priv->dns_searches_label), _("Additional s_earch domains:")); + else + gtk_label_set_text_with_mnemonic (GTK_LABEL (priv->dns_searches_label), _("S_earch domains:")); gtk_widget_set_sensitive (GTK_WIDGET (priv->dns_searches), dns_enabled); if (!dns_enabled) gtk_entry_set_text (priv->dns_searches, ""); @@ -929,6 +940,7 @@ ce_page_ip6_new (NMConnection *connection, GtkWindow *parent_window, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error) { @@ -940,6 +952,7 @@ connection, parent_window, client, + settings, UIDIR "/ce-page-ip6.ui", "IP6Page", _("IPv6 Settings"))); @@ -1014,9 +1027,9 @@ g_object_freeze_notify (G_OBJECT (priv->setting)); g_object_set (priv->setting, - NM_SETTING_IP6_CONFIG_METHOD, method, - NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS, ignore_auto_dns, - NULL); + NM_SETTING_IP6_CONFIG_METHOD, method, + NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS, ignore_auto_dns, + NULL); /* IP addresses */ nm_setting_ip6_config_clear_addresses (priv->setting); diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-ip6.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ip6.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-ip6.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ip6.h 2012-10-31 13:20:57.000000000 +0000 @@ -17,7 +17,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2008 - 2011 Red Hat, Inc. + * (C) Copyright 2008 - 2012 Red Hat, Inc. */ #ifndef __PAGE_IP6_H__ @@ -34,7 +34,7 @@ #define CE_PAGE_IP6(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_IP6, CEPageIP6)) #define CE_PAGE_IP6_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_IP6, CEPageIP6Class)) #define CE_IS_PAGE_IP6(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_IP6)) -#define CE_IS_PAGE_IP6_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_PAGE_IP6)) +#define CE_IS_PAGE_IP6_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_IP6)) #define CE_PAGE_IP6_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_IP6, CEPageIP6Class)) typedef struct { @@ -50,6 +50,7 @@ CEPage *ce_page_ip6_new (NMConnection *connection, GtkWindow *parent, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error); diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-mobile.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-mobile.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-mobile.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-mobile.c 2012-10-31 13:20:57.000000000 +0000 @@ -69,6 +69,8 @@ #define NET_TYPE_2G 2 #define NET_TYPE_PREFER_3G 3 #define NET_TYPE_PREFER_2G 4 +#define NET_TYPE_PREFER_4G 5 +#define NET_TYPE_4G 6 static void mobile_private_init (CEPageMobile *self) @@ -130,6 +132,12 @@ case NM_SETTING_GSM_NETWORK_TYPE_PREFER_GPRS_EDGE: type_idx = NET_TYPE_PREFER_2G; break; + case NM_SETTING_GSM_NETWORK_TYPE_PREFER_4G: + type_idx = NET_TYPE_PREFER_4G; + break; + case NM_SETTING_GSM_NETWORK_TYPE_4G: + type_idx = NET_TYPE_4G; + break; case NM_SETTING_GSM_NETWORK_TYPE_ANY: default: type_idx = NET_TYPE_ANY; @@ -364,6 +372,7 @@ ce_page_mobile_new (NMConnection *connection, GtkWindow *parent_window, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error) { @@ -374,6 +383,7 @@ connection, parent_window, client, + settings, UIDIR "/ce-page-mobile.ui", "MobilePage", _("Mobile Broadband"))); @@ -437,6 +447,12 @@ case NET_TYPE_PREFER_2G: net_type = NM_SETTING_GSM_NETWORK_TYPE_PREFER_GPRS_EDGE; break; + case NET_TYPE_PREFER_4G: + net_type = NM_SETTING_GSM_NETWORK_TYPE_PREFER_4G; + break; + case NET_TYPE_4G: + net_type = NM_SETTING_GSM_NETWORK_TYPE_4G; + break; case NET_TYPE_ANY: default: net_type = NM_SETTING_GSM_NETWORK_TYPE_ANY; @@ -446,15 +462,15 @@ roaming_allowed = gtk_toggle_button_get_active (priv->roaming_allowed); g_object_set (priv->setting, - NM_SETTING_GSM_NUMBER, nm_entry_get_text (priv->number), - NM_SETTING_GSM_USERNAME, nm_entry_get_text (priv->username), - NM_SETTING_GSM_PASSWORD, nm_entry_get_text (priv->password), - NM_SETTING_GSM_APN, nm_entry_get_text (priv->apn), - NM_SETTING_GSM_NETWORK_ID, nm_entry_get_text (priv->network_id), - NM_SETTING_GSM_NETWORK_TYPE, net_type, - NM_SETTING_GSM_PIN, nm_entry_get_text (priv->pin), - NM_SETTING_GSM_HOME_ONLY, !roaming_allowed, - NULL); + NM_SETTING_GSM_NUMBER, nm_entry_get_text (priv->number), + NM_SETTING_GSM_USERNAME, nm_entry_get_text (priv->username), + NM_SETTING_GSM_PASSWORD, nm_entry_get_text (priv->password), + NM_SETTING_GSM_APN, nm_entry_get_text (priv->apn), + NM_SETTING_GSM_NETWORK_ID, nm_entry_get_text (priv->network_id), + NM_SETTING_GSM_NETWORK_TYPE, net_type, + NM_SETTING_GSM_PIN, nm_entry_get_text (priv->pin), + NM_SETTING_GSM_HOME_ONLY, !roaming_allowed, + NULL); } static void @@ -539,8 +555,8 @@ } typedef struct { + NMRemoteSettings *settings; PageNewConnectionResultFunc result_func; - PageGetConnectionsFunc get_connections_func; gpointer user_data; } WizardInfo; @@ -589,7 +605,7 @@ detail = g_strdup_printf ("%s %s %%d", method->provider_name, method->plan_name); else detail = g_strdup_printf ("%s connection %%d", method->provider_name); - connection = ce_page_new_connection (detail, ctype, FALSE, info->get_connections_func, info->user_data); + connection = ce_page_new_connection (detail, ctype, FALSE, info->settings, info->user_data); g_free (detail); nm_connection_add_setting (connection, type_setting); @@ -601,6 +617,8 @@ if (wizard) nma_mobile_wizard_destroy (wizard); + + g_object_unref (info->settings); g_free (info); } @@ -612,8 +630,9 @@ void mobile_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, PageNewConnectionResultFunc result_func, - PageGetConnectionsFunc get_connections_func, gpointer user_data) { NMAMobileWizard *wizard; @@ -625,7 +644,7 @@ info = g_malloc0 (sizeof (WizardInfo)); info->result_func = result_func; - info->get_connections_func = get_connections_func; + info->settings = g_object_ref (settings); info->user_data = user_data; wizard = nma_mobile_wizard_new (parent, NULL, NM_DEVICE_MODEM_CAPABILITY_NONE, FALSE, diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-mobile.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-mobile.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-mobile.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-mobile.h 2012-10-31 13:20:57.000000000 +0000 @@ -17,7 +17,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2008 - 2011 Red Hat, Inc. + * (C) Copyright 2008 - 2012 Red Hat, Inc. */ #ifndef __PAGE_MOBILE_H__ @@ -34,7 +34,7 @@ #define CE_PAGE_MOBILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_MOBILE, CEPageMobile)) #define CE_PAGE_MOBILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_MOBILE, CEPageMobileClass)) #define CE_IS_PAGE_MOBILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_MOBILE)) -#define CE_IS_PAGE_MOBILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_PAGE_MOBILE)) +#define CE_IS_PAGE_MOBILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_MOBILE)) #define CE_PAGE_MOBILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_MOBILE, CEPageMobileClass)) typedef struct { @@ -50,12 +50,14 @@ CEPage *ce_page_mobile_new (NMConnection *connection, GtkWindow *parent, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error); void mobile_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, PageNewConnectionResultFunc result_func, - PageGetConnectionsFunc get_connections_func, gpointer user_data); #endif /* __PAGE_MOBILE_H__ */ diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-ppp.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ppp.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-ppp.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ppp.c 2012-10-31 13:20:57.000000000 +0000 @@ -266,6 +266,7 @@ ce_page_ppp_new (NMConnection *connection, GtkWindow *parent_window, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error) { @@ -277,6 +278,7 @@ connection, parent_window, client, + settings, UIDIR "/ce-page-ppp.ui", "PppPage", _("PPP Settings"))); @@ -291,10 +293,6 @@ priv->setting = nm_connection_get_setting_ppp (connection); if (!priv->setting) { priv->setting = NM_SETTING_PPP (nm_setting_ppp_new ()); - g_object_set (G_OBJECT (priv->setting), - NM_SETTING_PPP_LCP_ECHO_FAILURE, 5, - NM_SETTING_PPP_LCP_ECHO_INTERVAL, 30, - NULL); nm_connection_add_setting (connection, NM_SETTING (priv->setting)); } diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-ppp.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ppp.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-ppp.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-ppp.h 2012-10-31 13:20:57.000000000 +0000 @@ -17,7 +17,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2008 - 2011 Red Hat, Inc. + * (C) Copyright 2008 - 2012 Red Hat, Inc. */ #ifndef __PAGE_PPP_H__ @@ -34,7 +34,7 @@ #define CE_PAGE_PPP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_PPP, CEPagePpp)) #define CE_PAGE_PPP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_PPP, CEPagePppClass)) #define CE_IS_PAGE_PPP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_PPP)) -#define CE_IS_PAGE_PPP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_PAGE_PPP)) +#define CE_IS_PAGE_PPP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_PPP)) #define CE_PAGE_PPP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_PPP, CEPagePppClass)) typedef struct { @@ -50,6 +50,7 @@ CEPage *ce_page_ppp_new (NMConnection *connection, GtkWindow *parent, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error); diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-vlan.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-vlan.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-vlan.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-vlan.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,687 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2011 Red Hat, Inc. + */ + +#include "config.h" + +#include +#include +#include + +#include +#include + +#include +#include +#include +#include + +#include "page-vlan.h" + +G_DEFINE_TYPE (CEPageVlan, ce_page_vlan, CE_TYPE_PAGE) + +#define CE_PAGE_VLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CE_TYPE_PAGE_VLAN, CEPageVlanPrivate)) + +typedef struct { + char *label; + NMDevice *device; + NMConnection *connection; +} VlanParent; + +typedef struct { + NMSettingVlan *setting; + NMSetting *s_hw; + + VlanParent **parents; + char **parent_labels; + + GtkComboBox *parent; + GtkEntry *parent_entry; + GtkSpinButton *id_entry; + GtkEntry *name_entry; + GtkEntry *cloned_mac; + GtkSpinButton *mtu; + + char *last_parent; + int last_id; +} CEPageVlanPrivate; + +static void +vlan_private_init (CEPageVlan *self) +{ + CEPageVlanPrivate *priv = CE_PAGE_VLAN_GET_PRIVATE (self); + GtkBuilder *builder; + GtkWidget *align; + GtkLabel *label; + + builder = CE_PAGE (self)->builder; + +#if GTK_CHECK_VERSION(2,24,0) + priv->parent = GTK_COMBO_BOX (gtk_combo_box_text_new_with_entry ()); + gtk_combo_box_set_entry_text_column (priv->parent, 0); +#else + priv->parent = GTK_COMBO_BOX (gtk_combo_box_entry_new_text ()); + gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (priv->parent), 0); +#endif + priv->parent_entry = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (priv->parent))); + + align = GTK_WIDGET (gtk_builder_get_object (builder, "vlan_parent_alignment")); + gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (priv->parent)); + gtk_widget_show_all (GTK_WIDGET (priv->parent)); + + /* Set mnemonic widget for parent label */ + label = GTK_LABEL (GTK_WIDGET (gtk_builder_get_object (builder, "vlan_parent_label"))); + gtk_label_set_mnemonic_widget (label, GTK_WIDGET (priv->parent)); + + priv->id_entry = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "vlan_id_entry"))); + priv->name_entry = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "vlan_name_entry"))); + priv->cloned_mac = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "vlan_cloned_mac_entry"))); + priv->mtu = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "vlan_mtu"))); +} + +static void +stuff_changed (GtkWidget *w, gpointer user_data) +{ + ce_page_changed (CE_PAGE (user_data)); +} + +static void name_changed (GtkWidget *widget, gpointer user_data); + +static void +sync_iface (CEPageVlan *self, GtkEntry *changed_entry) +{ + CEPageVlanPrivate *priv = CE_PAGE_VLAN_GET_PRIVATE (self); + const char *iface, *iface_end, *parent_text; + char *new_iface, *end; + int iface_id, iface_len, parent_iface_len, id; + gboolean vlan_style_name; + + iface = gtk_entry_get_text (priv->name_entry); + if (!*iface) + return; + + if (g_str_has_prefix (iface, "vlan")) { + iface_end = iface + 4; + iface_id = strtoul (iface_end, &end, 10); + vlan_style_name = TRUE; + } else if ((iface_end = strchr (iface, '.'))) { + iface_id = strtoul (iface_end + 1, &end, 10); + vlan_style_name = FALSE; + } else + return; + if (*end) + return; + iface_len = iface_end - iface; + + parent_text = gtk_entry_get_text (priv->parent_entry); + parent_iface_len = strcspn (parent_text, " "); + id = gtk_spin_button_get_value_as_int (priv->id_entry); + + if (changed_entry == priv->name_entry) { + /* The user changed the interface name. If it now matches + * parent and id, then update the last_* members, so we'll + * start keeping it in sync again. + */ + if (iface_id == id) + priv->last_id = iface_id; + else + priv->last_id = -1; + + g_free (priv->last_parent); + if ( iface_len == parent_iface_len + && !strncmp (iface, parent_text, iface_len)) + priv->last_parent = g_strndup (iface, iface_len); + else + priv->last_parent = NULL; + return; + } + + /* The user changed the parent or ID; if the previous parent and + * ID matched the interface name, then update the interface name + * to match the new one as well. + */ + if (iface_id != priv->last_id) + return; + if ( !vlan_style_name + && priv->last_parent + && strncmp (iface, priv->last_parent, iface_len) != 0) + return; + + if (vlan_style_name) { + new_iface = g_strdup_printf ("vlan%d", id); + } else if (changed_entry == priv->parent_entry) { + new_iface = g_strdup_printf ("%.*s.%d", + parent_iface_len, + parent_text, id); + } else { + new_iface = g_strdup_printf ("%.*s.%d", iface_len, iface, id); + } + + g_signal_handlers_block_by_func (priv->name_entry, G_CALLBACK (name_changed), self); + gtk_entry_set_text (priv->name_entry, new_iface); + g_signal_handlers_unblock_by_func (priv->name_entry, G_CALLBACK (name_changed), self); + + g_free (new_iface); + + if (changed_entry == priv->parent_entry) { + g_free (priv->last_parent); + priv->last_parent = g_strndup (parent_text, parent_iface_len); + } else if (changed_entry == GTK_ENTRY (priv->id_entry)) + priv->last_id = id; +} + +static void +parent_changed (GtkWidget *widget, gpointer user_data) +{ + CEPageVlan *self = user_data; + CEPageVlanPrivate *priv = CE_PAGE_VLAN_GET_PRIVATE (self); + int parent_id; + + parent_id = gtk_combo_box_get_active (GTK_COMBO_BOX (priv->parent)); + if (parent_id > -1 && priv->parents[parent_id]->device != NULL) { + gtk_widget_set_sensitive (GTK_WIDGET (priv->cloned_mac), TRUE); + gtk_widget_set_sensitive (GTK_WIDGET (priv->mtu), TRUE); + } else { + gtk_widget_set_sensitive (GTK_WIDGET (priv->cloned_mac), FALSE); + gtk_entry_set_text (priv->cloned_mac, ""); + gtk_widget_set_sensitive (GTK_WIDGET (priv->mtu), FALSE); + gtk_spin_button_set_value (priv->mtu, 1500); + } + + sync_iface (self, priv->parent_entry); + ce_page_changed (CE_PAGE (self)); +} + +static void +name_changed (GtkWidget *w, gpointer user_data) +{ + CEPageVlan *self = user_data; + CEPageVlanPrivate *priv = CE_PAGE_VLAN_GET_PRIVATE (self); + + sync_iface (self, priv->name_entry); + ce_page_changed (CE_PAGE (self)); +} + +static void +id_changed (GtkWidget *w, gpointer user_data) +{ + CEPageVlan *self = user_data; + CEPageVlanPrivate *priv = CE_PAGE_VLAN_GET_PRIVATE (self); + + sync_iface (self, GTK_ENTRY (priv->id_entry)); + ce_page_changed (CE_PAGE (self)); +} + +static int +sort_parents (gconstpointer a, gconstpointer b) +{ + VlanParent *pa = *(VlanParent **)a; + VlanParent *pb = *(VlanParent **)b; + + return strcmp (pa->label, pb->label); +} + +static GSList * +get_vlan_devices (CEPageVlan *self) +{ + const GPtrArray *devices_array; + GSList *devices; + NMDevice *device; + int i; + + devices_array = nm_client_get_devices (CE_PAGE (self)->client); + devices = NULL; + for (i = 0; devices_array && (i < devices_array->len); i++) { + device = devices_array->pdata[i]; + + /* FIXME: this supported-device-types logic belongs in NM somewhere. */ + if (!NM_IS_DEVICE_ETHERNET (device)) + continue; + + devices = g_slist_prepend (devices, device); + } + + return devices; +} + +static void +build_vlan_parent_list (CEPageVlan *self, GSList *devices) +{ + CEPageVlanPrivate *priv = CE_PAGE_VLAN_GET_PRIVATE (self); + GSList *connections, *c_iter, *d_iter; + GPtrArray *parents; + VlanParent *parent; + NMDevice *device; + const char *iface, *mac, *id; + int i; + + parents = g_ptr_array_new (); + + /* Devices with no L2 configuration can spawn VLANs directly. At the + * moment, this means just Ethernet. + */ + for (d_iter = devices; d_iter; d_iter = d_iter->next) { + device = d_iter->data; + + if (!NM_IS_DEVICE_ETHERNET (device)) + continue; + + parent = g_slice_new (VlanParent); + parent->device = device; + parent->connection = NULL; + + iface = nm_device_get_iface (device); + mac = nm_device_ethernet_get_permanent_hw_address (NM_DEVICE_ETHERNET (device)); + parent->label = g_strdup_printf ("%s (%s)", iface, mac); + + g_ptr_array_add (parents, parent); + } + + /* Otherwise, VLANs have to be built on top of configured connections */ + connections = nm_remote_settings_list_connections (CE_PAGE (self)->settings); + for (c_iter = connections; c_iter; c_iter = c_iter->next) { + NMConnection *candidate = c_iter->data; + NMSettingConnection *s_con = nm_connection_get_setting_connection (candidate); + + if (nm_setting_connection_get_master (s_con)) + continue; + + for (d_iter = devices; d_iter; d_iter = d_iter->next) { + device = d_iter->data; + + if (nm_device_connection_valid (device, candidate)) { + parent = g_slice_new (VlanParent); + parent->device = device; + parent->connection = candidate; + + iface = nm_device_get_iface (device); + id = nm_setting_connection_get_id (s_con); + + parent->label = g_strdup_printf ("%s (%s)", iface, id); + g_ptr_array_add (parents, parent); + /* no break here; the connection may apply to multiple devices */ + } + } + } + + g_slist_free (connections); + + g_ptr_array_sort (parents, sort_parents); + g_ptr_array_add (parents, NULL); + + priv->parent_labels = g_new (char *, parents->len); + priv->parents = (VlanParent **)g_ptr_array_free (parents, FALSE); + + for (i = 0; priv->parents[i]; i++) + priv->parent_labels[i] = priv->parents[i]->label; + priv->parent_labels[i] = NULL; +} + +static void +populate_ui (CEPageVlan *self) +{ + CEPageVlanPrivate *priv = CE_PAGE_VLAN_GET_PRIVATE (self); + GSList *devices, *d_iter; + NMConnection *parent_connection = NULL; + NMDevice *device, *parent_device = NULL; + const char *parent, *iface, *current_parent; + int i, mtu_def, mtu_val; + + devices = get_vlan_devices (self); + + /* Parent */ + build_vlan_parent_list (self, devices); + + parent = nm_setting_vlan_get_parent (priv->setting); + if (parent) { + /* UUID? */ + parent_connection = (NMConnection *)nm_remote_settings_get_connection_by_uuid (CE_PAGE (self)->settings, parent); + if (!parent_connection) { + /* Interface name? */ + for (d_iter = devices; d_iter; d_iter = d_iter->next) { + device = d_iter->data; + + if (!g_strcmp0 (parent, nm_device_get_iface (device))) { + parent_device = device; + break; + } + } + } + } + + /* If NMSettingVlan:parent didn't indicate a device, but we have a + * wired setting, figure out the device from that. + */ + if (priv->s_hw && !parent_device) { + const GByteArray *mac; + const char *device_mac_str; + char *mac_str; + + if (NM_IS_SETTING_WIRED (priv->s_hw)) + mac = nm_setting_wired_get_mac_address (NM_SETTING_WIRED (priv->s_hw)); + else + mac = NULL; + + if (mac) { + mac_str = nm_utils_hwaddr_ntoa (mac->data, ARPHRD_ETHER); + + for (d_iter = devices; d_iter; d_iter = d_iter->next) { + device = d_iter->data; + + if (NM_IS_DEVICE_ETHERNET (device)) + device_mac_str = nm_device_ethernet_get_permanent_hw_address (NM_DEVICE_ETHERNET (device)); + else + device_mac_str = NULL; + + if (!g_strcmp0 (mac_str, device_mac_str)) { + parent_device = device; + break; + } + } + } + } + + current_parent = parent; + if (parent_device || parent_connection) { + for (i = 0; priv->parents[i]; i++) { + if (parent_device && parent_device != priv->parents[i]->device) + continue; + if (parent_connection && parent_connection != priv->parents[i]->connection) + continue; + + current_parent = priv->parents[i]->label; + break; + } + } + ce_page_setup_mac_combo (CE_PAGE (self), priv->parent, current_parent, priv->parent_labels); + g_signal_connect (priv->parent, "changed", G_CALLBACK (parent_changed), self); + + if (current_parent) + priv->last_parent = g_strndup (current_parent, strcspn (current_parent, " ")); + + /* Name */ + iface = nm_setting_vlan_get_interface_name (priv->setting); + if (iface) + gtk_entry_set_text (priv->name_entry, iface); + g_signal_connect (priv->name_entry, "changed", G_CALLBACK (name_changed), self); + + /* ID */ + priv->last_id = nm_setting_vlan_get_id (priv->setting); + gtk_spin_button_set_value (priv->id_entry, priv->last_id); + g_signal_connect (priv->id_entry, "value-changed", G_CALLBACK (id_changed), self); + + /* Cloned MAC address */ + if (NM_IS_SETTING_WIRED (priv->s_hw)) { + ce_page_mac_to_entry (nm_setting_wired_get_cloned_mac_address (NM_SETTING_WIRED (priv->s_hw)), + ARPHRD_ETHER, priv->cloned_mac); + } + g_signal_connect (priv->cloned_mac, "changed", G_CALLBACK (stuff_changed), self); + + /* MTU */ + if (NM_IS_SETTING_WIRED (priv->s_hw)) { + mtu_def = ce_get_property_default (priv->s_hw, NM_SETTING_WIRED_MTU); + mtu_val = nm_setting_wired_get_mtu (NM_SETTING_WIRED (priv->s_hw)); + } else { + mtu_def = mtu_val = 1500; + } + g_signal_connect (priv->mtu, "output", + G_CALLBACK (ce_spin_output_with_default), + GINT_TO_POINTER (mtu_def)); + + gtk_spin_button_set_value (priv->mtu, (gdouble) mtu_val); + g_signal_connect (priv->mtu, "value-changed", G_CALLBACK (stuff_changed), self); + + g_slist_free (devices); +} + +static void +finish_setup (CEPageVlan *self, gpointer unused, GError *error, gpointer user_data) +{ + if (error) + return; + + populate_ui (self); +} + +CEPage * +ce_page_vlan_new (NMConnection *connection, + GtkWindow *parent_window, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error) +{ + CEPageVlan *self; + CEPageVlanPrivate *priv; + + self = CE_PAGE_VLAN (ce_page_new (CE_TYPE_PAGE_VLAN, + connection, + parent_window, + client, + settings, + UIDIR "/ce-page-vlan.ui", + "VlanPage", + _("VLAN"))); + if (!self) { + g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load vlan user interface.")); + return NULL; + } + + vlan_private_init (self); + priv = CE_PAGE_VLAN_GET_PRIVATE (self); + + priv->setting = nm_connection_get_setting_vlan (connection); + if (!priv->setting) { + priv->setting = NM_SETTING_VLAN (nm_setting_vlan_new ()); + nm_connection_add_setting (connection, NM_SETTING (priv->setting)); + } + priv->s_hw = nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRED); + + g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); + + return CE_PAGE (self); +} + +static void +ui_to_setting (CEPageVlan *self) +{ + CEPageVlanPrivate *priv = CE_PAGE_VLAN_GET_PRIVATE (self); + NMConnection *connection = CE_PAGE (self)->connection; + NMSettingConnection *s_con = nm_connection_get_setting_connection (connection); + GByteArray *cloned_mac = NULL; + VlanParent *parent = NULL; + int parent_id, vid; + const char *parent_iface = NULL, *parent_uuid = NULL; + const char *slave_type; + const char *iface; + char *tmp_parent_iface = NULL; + GType hwtype; + gboolean mtu_set; + int mtu; + + parent_id = gtk_combo_box_get_active (GTK_COMBO_BOX (priv->parent)); + if (parent_id == -1) { + parent_iface = gtk_entry_get_text (priv->parent_entry); + tmp_parent_iface = g_strndup (parent_iface, strcspn (parent_iface, " ")); + parent_iface = tmp_parent_iface; + } else { + parent = priv->parents[parent_id]; + if (parent->connection) + parent_uuid = nm_connection_get_uuid (parent->connection); + if (parent->device) + parent_iface = nm_device_get_iface (parent->device); + } + + g_assert (parent_uuid != NULL || parent_iface != NULL); + + slave_type = nm_setting_connection_get_slave_type (s_con); + if (parent_uuid) { + /* Update NMSettingConnection:master if it's set, but don't + * set it if it's not. + */ + if (!g_strcmp0 (slave_type, NM_SETTING_VLAN_SETTING_NAME)) { + g_object_set (s_con, + NM_SETTING_CONNECTION_MASTER, parent_uuid, + NULL); + } + } else if (!g_strcmp0 (slave_type, NM_SETTING_VLAN_SETTING_NAME)) { + g_object_set (s_con, + NM_SETTING_CONNECTION_MASTER, NULL, + NM_SETTING_CONNECTION_SLAVE_TYPE, NULL, + NULL); + } + + if (parent && NM_IS_DEVICE_ETHERNET (parent->device)) + hwtype = NM_TYPE_SETTING_WIRED; + else + hwtype = G_TYPE_NONE; + + if (priv->s_hw && G_OBJECT_TYPE (priv->s_hw) != hwtype) { + nm_connection_remove_setting (connection, G_OBJECT_TYPE (priv->s_hw)); + priv->s_hw = NULL; + } + + iface = gtk_entry_get_text (priv->name_entry); + vid = gtk_spin_button_get_value_as_int (priv->id_entry); + + g_object_set (priv->setting, + NM_SETTING_VLAN_PARENT, parent_uuid ? parent_uuid : parent_iface, + NM_SETTING_VLAN_INTERFACE_NAME, iface, + NM_SETTING_VLAN_ID, vid, + NULL); + + if (hwtype != G_TYPE_NONE) { + cloned_mac = ce_page_entry_to_mac (priv->cloned_mac, ARPHRD_ETHER, NULL); + mtu_set = g_ascii_isdigit (*gtk_entry_get_text (GTK_ENTRY (priv->mtu))); + mtu = gtk_spin_button_get_value_as_int (priv->mtu); + + if (cloned_mac || mtu_set) { + if (!priv->s_hw) { + priv->s_hw = g_object_new (hwtype, NULL); + nm_connection_add_setting (connection, priv->s_hw); + } + + g_object_set (priv->s_hw, + NM_SETTING_WIRED_CLONED_MAC_ADDRESS, cloned_mac, + NM_SETTING_WIRED_MTU, (guint32) mtu, + NULL); + + if (cloned_mac) + g_byte_array_free (cloned_mac, TRUE); + } else if (priv->s_hw) { + nm_connection_remove_setting (connection, G_OBJECT_TYPE (priv->s_hw)); + priv->s_hw = NULL; + } + } + + g_free (tmp_parent_iface); +} + +static gboolean +validate (CEPage *page, NMConnection *connection, GError **error) +{ + CEPageVlan *self = CE_PAGE_VLAN (page); + CEPageVlanPrivate *priv = CE_PAGE_VLAN_GET_PRIVATE (self); + gboolean invalid = FALSE; + GByteArray *ignore; + int parent_id; + const char *parent; + char *parent_iface; + + parent_id = gtk_combo_box_get_active (GTK_COMBO_BOX (priv->parent)); + if (parent_id == -1) { + gboolean valid; + + parent = gtk_entry_get_text (priv->parent_entry); + parent_iface = g_strndup (parent, strcspn (parent, " ")); + valid = nm_utils_iface_valid_name (parent_iface); + g_free (parent_iface); + if (!valid) + return FALSE; + } + + ignore = ce_page_entry_to_mac (priv->cloned_mac, ARPHRD_ETHER, &invalid); + if (invalid) + return FALSE; + if (ignore) + g_byte_array_free (ignore, TRUE); + + ui_to_setting (self); + + if ( priv->s_hw + && !nm_setting_verify (priv->s_hw, NULL, error)) + return FALSE; + + return nm_setting_verify (NM_SETTING (priv->setting), NULL, error); +} + +static void +finalize (GObject *object) +{ + CEPageVlan *self = CE_PAGE_VLAN (object); + CEPageVlanPrivate *priv = CE_PAGE_VLAN_GET_PRIVATE (self); + int i; + + g_free (priv->last_parent); + + for (i = 0; priv->parents[i]; i++) + g_slice_free (VlanParent, priv->parents[i]); + g_free (priv->parents); + + G_OBJECT_CLASS (ce_page_vlan_parent_class)->finalize (object); +} + +static void +ce_page_vlan_init (CEPageVlan *self) +{ +} + +static void +ce_page_vlan_class_init (CEPageVlanClass *vlan_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (vlan_class); + CEPageClass *parent_class = CE_PAGE_CLASS (vlan_class); + + g_type_class_add_private (object_class, sizeof (CEPageVlanPrivate)); + + /* virtual methods */ + object_class->finalize = finalize; + parent_class->validate = validate; +} + + +void +vlan_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data) +{ + NMConnection *connection; + + connection = ce_page_new_connection (_("VLAN connection %d"), + NM_SETTING_VLAN_SETTING_NAME, + TRUE, + settings, + user_data); + nm_connection_add_setting (connection, nm_setting_vlan_new ()); + + (*result_func) (connection, FALSE, NULL, user_data); +} + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-vlan.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-vlan.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-vlan.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-vlan.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,62 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2011 Red Hat, Inc. + */ + +#ifndef __PAGE_VLAN_H__ +#define __PAGE_VLAN_H__ + +#include + +#include +#include + +#include "ce-page.h" + +#define CE_TYPE_PAGE_VLAN (ce_page_vlan_get_type ()) +#define CE_PAGE_VLAN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_VLAN, CEPageVlan)) +#define CE_PAGE_VLAN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_VLAN, CEPageVlanClass)) +#define CE_IS_PAGE_VLAN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_VLAN)) +#define CE_IS_PAGE_VLAN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_PAGE_VLAN)) +#define CE_PAGE_VLAN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_VLAN, CEPageVlanClass)) + +typedef struct { + CEPage parent; +} CEPageVlan; + +typedef struct { + CEPageClass parent; +} CEPageVlanClass; + +GType ce_page_vlan_get_type (void); + +CEPage *ce_page_vlan_new (NMConnection *connection, + GtkWindow *parent, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error); + +void vlan_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data); + +#endif /* __PAGE_VLAN_H__ */ + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-vpn.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-vpn.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-vpn.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-vpn.c 2012-10-31 13:20:57.000000000 +0000 @@ -29,11 +29,13 @@ #include #include +#include #define NM_VPN_API_SUBJECT_TO_CHANGE #include #include "page-vpn.h" +#include "new-connection.h" #include "nm-connection-editor.h" #include "vpn-helpers.h" @@ -93,6 +95,7 @@ ce_page_vpn_new (NMConnection *connection, GtkWindow *parent_window, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error) { @@ -104,6 +107,7 @@ connection, parent_window, client, + settings, NULL, NULL, _("VPN"))); @@ -135,6 +139,14 @@ return CE_PAGE (self); } +gboolean +ce_page_vpn_can_export (CEPageVpn *page) +{ + CEPageVpnPrivate *priv = CE_PAGE_VPN_GET_PRIVATE (page); + + return (nm_vpn_plugin_ui_interface_get_capabilities (priv->plugin) & NM_VPN_PLUGIN_UI_CAPABILITY_EXPORT) != 0; +} + static gboolean validate (CEPage *page, NMConnection *connection, GError **error) { @@ -181,31 +193,138 @@ parent_class->validate = validate; } +typedef struct { + NMRemoteSettings *settings; + PageNewConnectionResultFunc result_func; + gpointer user_data; +} NewVpnInfo; + +static void +import_cb (NMConnection *connection, gpointer user_data) +{ + NewVpnInfo *info = (NewVpnInfo *) user_data; + NMSettingConnection *s_con; + NMSettingVPN *s_vpn; + const char *service_type; + char *s; + GError *error = NULL; + + /* Basic sanity checks of the connection */ + s_con = nm_connection_get_setting_connection (connection); + if (!s_con) { + s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); + nm_connection_add_setting (connection, NM_SETTING (s_con)); + } + + s = (char *) nm_setting_connection_get_id (s_con); + if (!s) { + GSList *connections; + + connections = nm_remote_settings_list_connections (info->settings); + s = ce_page_get_next_available_name (connections, _("VPN connection %d")); + g_object_set (s_con, NM_SETTING_CONNECTION_ID, s, NULL); + g_free (s); + + g_slist_free (connections); + } + + s = (char *) nm_setting_connection_get_connection_type (s_con); + if (!s || strcmp (s, NM_SETTING_VPN_SETTING_NAME)) + g_object_set (s_con, NM_SETTING_CONNECTION_TYPE, NM_SETTING_VPN_SETTING_NAME, NULL); + + s = (char *) nm_setting_connection_get_uuid (s_con); + if (!s) { + s = nm_utils_uuid_generate (); + g_object_set (s_con, NM_SETTING_CONNECTION_UUID, s, NULL); + g_free (s); + } + + s_vpn = nm_connection_get_setting_vpn (connection); + service_type = s_vpn ? nm_setting_vpn_get_service_type (s_vpn) : NULL; + + if (!service_type || !strlen (service_type)) { + g_object_unref (connection); + connection = NULL; + + error = g_error_new_literal (NMA_ERROR, NMA_ERROR_GENERIC, + _("The VPN plugin failed to import the VPN connection correctly\n\nError: no VPN service type.")); + } + + info->result_func (connection, FALSE, error, info->user_data); + g_clear_error (&error); + g_object_unref (info->settings); + g_slice_free (NewVpnInfo, info); +} + +void +vpn_connection_import (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data) +{ + NewVpnInfo *info; + + info = g_slice_new (NewVpnInfo); + info->result_func = result_func; + info->settings = g_object_ref (settings); + info->user_data = user_data; + vpn_import (import_cb, info); +} + +#define NEW_VPN_CONNECTION_PRIMARY_LABEL _("Choose a VPN Connection Type") +#define NEW_VPN_CONNECTION_SECONDARY_LABEL _("Select the type of VPN you wish to use for the new connection. If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed.") + +static gboolean +vpn_type_filter_func (GType type, gpointer user_data) +{ + return type == NM_TYPE_SETTING_VPN; +} + +static void +vpn_type_result_func (NMConnection *connection, gpointer user_data) +{ + NewVpnInfo *info = user_data; + + info->result_func (connection, connection == NULL, NULL, info->user_data); + g_slice_free (NewVpnInfo, info); +} void vpn_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, PageNewConnectionResultFunc result_func, - PageGetConnectionsFunc get_connections_func, gpointer user_data) { - char *service = NULL; NMConnection *connection; NMSetting *s_vpn; - service = vpn_ask_connection_type (parent); - if (!service) { - (*result_func) (NULL, TRUE, NULL, user_data); + if (!detail) { + NewVpnInfo *info; + + /* This will happen if nm-c-e is launched from the command line + * with "--create --type vpn". Dump the user back into the + * new connection dialog to let them pick a subtype now. + */ + info = g_slice_new (NewVpnInfo); + info->result_func = result_func; + info->user_data = user_data; + new_connection_dialog_full (parent, settings, + NEW_VPN_CONNECTION_PRIMARY_LABEL, + NEW_VPN_CONNECTION_SECONDARY_LABEL, + vpn_type_filter_func, + vpn_type_result_func, info); return; } connection = ce_page_new_connection (_("VPN connection %d"), NM_SETTING_VPN_SETTING_NAME, FALSE, - get_connections_func, + settings, user_data); s_vpn = nm_setting_vpn_new (); - g_object_set (s_vpn, NM_SETTING_VPN_SERVICE_TYPE, service, NULL); - g_free (service); + g_object_set (s_vpn, NM_SETTING_VPN_SERVICE_TYPE, detail, NULL); nm_connection_add_setting (connection, s_vpn); (*result_func) (connection, FALSE, NULL, user_data); diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-vpn.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-vpn.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-vpn.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-vpn.h 2012-10-31 13:20:57.000000000 +0000 @@ -17,7 +17,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2008 - 2011 Red Hat, Inc. + * (C) Copyright 2008 - 2012 Red Hat, Inc. */ #ifndef __PAGE_VPN_H__ @@ -34,7 +34,7 @@ #define CE_PAGE_VPN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_VPN, CEPageVpn)) #define CE_PAGE_VPN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_VPN, CEPageVpnClass)) #define CE_IS_PAGE_VPN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_VPN)) -#define CE_IS_PAGE_VPN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_PAGE_VPN)) +#define CE_IS_PAGE_VPN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_VPN)) #define CE_PAGE_VPN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_VPN, CEPageVpnClass)) typedef struct { @@ -50,12 +50,22 @@ CEPage *ce_page_vpn_new (NMConnection *connection, GtkWindow *parent, NMClient *client, + NMRemoteSettings *settings, const char **out_secrets_setting_name, GError **error); +gboolean ce_page_vpn_can_export (CEPageVpn *page); + void vpn_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, PageNewConnectionResultFunc result_func, - PageGetConnectionsFunc get_connections_func, gpointer user_data); +void vpn_connection_import (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data); + #endif /* __PAGE_VPN_H__ */ diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wifi-security.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wifi-security.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-wifi-security.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wifi-security.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,542 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2011 Red Hat, Inc. + */ + +#include "config.h" + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "wireless-security.h" +#include "page-wifi.h" +#include "page-wifi-security.h" +#include "nm-connection-editor.h" + + +G_DEFINE_TYPE (CEPageWifiSecurity, ce_page_wifi_security, CE_TYPE_PAGE) + + +#define S_NAME_COLUMN 0 +#define S_SEC_COLUMN 1 +#define S_ADHOC_VALID_COLUMN 2 + +static gboolean +find_proto (NMSettingWirelessSecurity *sec, const char *item) +{ + guint32 i; + + for (i = 0; i < nm_setting_wireless_security_get_num_protos (sec); i++) { + if (!strcmp (item, nm_setting_wireless_security_get_proto (sec, i))) + return TRUE; + } + return FALSE; +} + +static NMUtilsSecurityType +get_default_type_for_security (NMSettingWirelessSecurity *sec) +{ + const char *key_mgmt, *auth_alg; + + g_return_val_if_fail (sec != NULL, NMU_SEC_NONE); + + key_mgmt = nm_setting_wireless_security_get_key_mgmt (sec); + auth_alg = nm_setting_wireless_security_get_auth_alg (sec); + + /* No IEEE 802.1x */ + if (!strcmp (key_mgmt, "none")) + return NMU_SEC_STATIC_WEP; + + if (!strcmp (key_mgmt, "ieee8021x")) { + if (auth_alg && !strcmp (auth_alg, "leap")) + return NMU_SEC_LEAP; + return NMU_SEC_DYNAMIC_WEP; + } + + if (!strcmp (key_mgmt, "wpa-psk")) { + if (find_proto (sec, "rsn")) + return NMU_SEC_WPA2_PSK; + else if (find_proto (sec, "wpa")) + return NMU_SEC_WPA_PSK; + else + return NMU_SEC_WPA_PSK; + } + + if (!strcmp (key_mgmt, "wpa-eap")) { + if (find_proto (sec, "rsn")) + return NMU_SEC_WPA2_ENTERPRISE; + else if (find_proto (sec, "wpa")) + return NMU_SEC_WPA_ENTERPRISE; + else + return NMU_SEC_WPA_ENTERPRISE; + } + + return NMU_SEC_INVALID; +} + +static void +stuff_changed_cb (WirelessSecurity *sec, gpointer user_data) +{ + ce_page_changed (CE_PAGE (user_data)); +} + +static void +wsec_size_group_clear (GtkSizeGroup *group) +{ + GSList *children; + GSList *iter; + + g_return_if_fail (group != NULL); + + children = gtk_size_group_get_widgets (group); + for (iter = children; iter; iter = g_slist_next (iter)) + gtk_size_group_remove_widget (group, GTK_WIDGET (iter->data)); +} + +static WirelessSecurity * +wireless_security_combo_get_active (CEPageWifiSecurity *self) +{ + GtkTreeIter iter; + GtkTreeModel *model; + WirelessSecurity *sec = NULL; + + model = gtk_combo_box_get_model (self->security_combo); + gtk_combo_box_get_active_iter (self->security_combo, &iter); + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + + return sec; +} + +static void +wireless_security_combo_changed (GtkComboBox *combo, + gpointer user_data) +{ + CEPageWifiSecurity *self = CE_PAGE_WIFI_SECURITY (user_data); + GtkWidget *vbox; + GList *elt, *children; + WirelessSecurity *sec; + + vbox = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "wifi_security_vbox")); + g_assert (vbox); + + wsec_size_group_clear (self->group); + + /* Remove any previous wifi security widgets */ + children = gtk_container_get_children (GTK_CONTAINER (vbox)); + for (elt = children; elt; elt = g_list_next (elt)) + gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); + + sec = wireless_security_combo_get_active (self); + if (sec) { + GtkWidget *sec_widget; + GtkWidget *widget, *parent; + + sec_widget = wireless_security_get_widget (sec); + g_assert (sec_widget); + parent = gtk_widget_get_parent (sec_widget); + if (parent) + gtk_container_remove (GTK_CONTAINER (parent), sec_widget); + + widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "wifi_security_combo_label")); + gtk_size_group_add_widget (self->group, widget); + wireless_security_add_to_size_group (sec, self->group); + + gtk_container_add (GTK_CONTAINER (vbox), sec_widget); + wireless_security_unref (sec); + } + + ce_page_changed (CE_PAGE (self)); +} + +static void +add_security_item (CEPageWifiSecurity *self, + WirelessSecurity *sec, + GtkListStore *model, + GtkTreeIter *iter, + const char *text, + gboolean adhoc_valid) +{ + wireless_security_set_changed_notify (sec, stuff_changed_cb, self); + gtk_list_store_append (model, iter); + gtk_list_store_set (model, iter, + S_NAME_COLUMN, text, + S_SEC_COLUMN, sec, + S_ADHOC_VALID_COLUMN, adhoc_valid, + -1); + wireless_security_unref (sec); +} + +static void +set_sensitive (GtkCellLayout *cell_layout, + GtkCellRenderer *cell, + GtkTreeModel *tree_model, + GtkTreeIter *iter, + gpointer data) +{ + gboolean *adhoc = data; + gboolean sensitive = TRUE, adhoc_valid = TRUE; + + gtk_tree_model_get (tree_model, iter, S_ADHOC_VALID_COLUMN, &adhoc_valid, -1); + if (*adhoc && !adhoc_valid) + sensitive = FALSE; + + g_object_set (cell, "sensitive", sensitive, NULL); +} + +static void +finish_setup (CEPageWifiSecurity *self, gpointer unused, GError *error, gpointer user_data) +{ + CEPage *parent = CE_PAGE (self); + NMSettingWireless *s_wireless; + NMSettingWirelessSecurity *s_wireless_sec; + NMConnection *connection = parent->connection; + gboolean is_adhoc = FALSE; + GtkListStore *sec_model; + GtkTreeIter iter; + const char *mode; + const char *security; + guint32 dev_caps = 0; + NMUtilsSecurityType default_type = NMU_SEC_NONE; + int active = -1; + int item = 0; + GtkComboBox *combo; + GtkCellRenderer *renderer; + + if (error) + return; + + s_wireless = nm_connection_get_setting_wireless (connection); + g_assert (s_wireless); + + combo = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_security_combo"))); + + dev_caps = NM_WIFI_DEVICE_CAP_CIPHER_WEP40 + | NM_WIFI_DEVICE_CAP_CIPHER_WEP104 + | NM_WIFI_DEVICE_CAP_CIPHER_TKIP + | NM_WIFI_DEVICE_CAP_CIPHER_CCMP + | NM_WIFI_DEVICE_CAP_WPA + | NM_WIFI_DEVICE_CAP_RSN; + + mode = nm_setting_wireless_get_mode (s_wireless); + if (mode && !strcmp (mode, "adhoc")) + is_adhoc = TRUE; + self->adhoc = is_adhoc; + + s_wireless_sec = nm_connection_get_setting_wireless_security (connection); + + security = nm_setting_wireless_get_security (s_wireless); + if (!security || strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)) + s_wireless_sec = NULL; + if (s_wireless_sec) + default_type = get_default_type_for_security (s_wireless_sec); + + sec_model = gtk_list_store_new (3, G_TYPE_STRING, wireless_security_get_g_type (), G_TYPE_BOOLEAN); + + if (nm_utils_security_valid (NMU_SEC_NONE, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { + gtk_list_store_append (sec_model, &iter); + gtk_list_store_set (sec_model, &iter, + S_NAME_COLUMN, C_("Wi-Fi/Ethernet security", "None"), + S_ADHOC_VALID_COLUMN, TRUE, + -1); + if (default_type == NMU_SEC_NONE) + active = item; + item++; + } + + if (nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { + WirelessSecurityWEPKey *ws_wep; + NMWepKeyType wep_type = NM_WEP_KEY_TYPE_KEY; + + if (default_type == NMU_SEC_STATIC_WEP) { + NMSettingWirelessSecurity *s_wsec; + + s_wsec = nm_connection_get_setting_wireless_security (connection); + if (s_wsec) + wep_type = nm_setting_wireless_security_get_wep_key_type (s_wsec); + if (wep_type == NM_WEP_KEY_TYPE_UNKNOWN) + wep_type = NM_WEP_KEY_TYPE_KEY; + } + + ws_wep = ws_wep_key_new (connection, NM_WEP_KEY_TYPE_KEY, FALSE, FALSE); + if (ws_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, + &iter, _("WEP 40/128-bit Key (Hex or ASCII)"), + TRUE); + if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_KEY)) + active = item; + item++; + } + + ws_wep = ws_wep_key_new (connection, NM_WEP_KEY_TYPE_PASSPHRASE, FALSE, FALSE); + if (ws_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, + &iter, _("WEP 128-bit Passphrase"), TRUE); + if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_PASSPHRASE)) + active = item; + item++; + } + } + + if (nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { + WirelessSecurityLEAP *ws_leap; + + ws_leap = ws_leap_new (connection, FALSE); + if (ws_leap) { + add_security_item (self, WIRELESS_SECURITY (ws_leap), sec_model, + &iter, _("LEAP"), FALSE); + if ((active < 0) && (default_type == NMU_SEC_LEAP)) + active = item; + item++; + } + } + + if (nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { + WirelessSecurityDynamicWEP *ws_dynamic_wep; + + ws_dynamic_wep = ws_dynamic_wep_new (connection, TRUE, FALSE); + if (ws_dynamic_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_dynamic_wep), sec_model, + &iter, _("Dynamic WEP (802.1x)"), FALSE); + if ((active < 0) && (default_type == NMU_SEC_DYNAMIC_WEP)) + active = item; + item++; + } + } + + if ( nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, FALSE, is_adhoc, 0, 0, 0) + || nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { + WirelessSecurityWPAPSK *ws_wpa_psk; + + ws_wpa_psk = ws_wpa_psk_new (connection, FALSE); + if (ws_wpa_psk) { + add_security_item (self, WIRELESS_SECURITY (ws_wpa_psk), sec_model, + &iter, _("WPA & WPA2 Personal"), TRUE); + if ((active < 0) && ((default_type == NMU_SEC_WPA_PSK) || (default_type == NMU_SEC_WPA2_PSK))) + active = item; + item++; + } + } + + if ( nm_utils_security_valid (NMU_SEC_WPA_ENTERPRISE, dev_caps, FALSE, is_adhoc, 0, 0, 0) + || nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { + WirelessSecurityWPAEAP *ws_wpa_eap; + + ws_wpa_eap = ws_wpa_eap_new (connection, TRUE, FALSE); + if (ws_wpa_eap) { + add_security_item (self, WIRELESS_SECURITY (ws_wpa_eap), sec_model, + &iter, _("WPA & WPA2 Enterprise"), FALSE); + if ((active < 0) && ((default_type == NMU_SEC_WPA_ENTERPRISE) || (default_type == NMU_SEC_WPA2_ENTERPRISE))) + active = item; + item++; + } + } + + gtk_combo_box_set_model (combo, GTK_TREE_MODEL (sec_model)); + gtk_cell_layout_clear (GTK_CELL_LAYOUT (combo)); + + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", S_NAME_COLUMN, NULL); + gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, set_sensitive, &self->adhoc, NULL); + + gtk_combo_box_set_active (combo, active < 0 ? 0 : (guint32) active); + g_object_unref (G_OBJECT (sec_model)); + + self->security_combo = combo; + + wireless_security_combo_changed (combo, self); + g_signal_connect (combo, "changed", + G_CALLBACK (wireless_security_combo_changed), + self); +} + +CEPage * +ce_page_wifi_security_new (NMConnection *connection, + GtkWindow *parent_window, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error) +{ + CEPageWifiSecurity *self; + NMSettingWireless *s_wireless; + NMSettingWirelessSecurity *s_wsec = NULL; + NMUtilsSecurityType default_type = NMU_SEC_NONE; + const char *security; + + s_wireless = nm_connection_get_setting_wireless (connection); + if (!s_wireless) { + g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load Wi-Fi security user interface; missing Wi-Fi setting.")); + return NULL; + } + + self = CE_PAGE_WIFI_SECURITY (ce_page_new (CE_TYPE_PAGE_WIFI_SECURITY, + connection, + parent_window, + client, + settings, + UIDIR "/ce-page-wifi-security.ui", + "WifiSecurityPage", + _("Wi-Fi Security"))); + if (!self) { + g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load Wi-Fi security user interface.")); + return NULL; + } + + self->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + + s_wsec = nm_connection_get_setting_wireless_security (connection); + + security = nm_setting_wireless_get_security (s_wireless); + if (!security || strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)) + s_wsec = NULL; + if (s_wsec) + default_type = get_default_type_for_security (s_wsec); + + /* Get secrets if the connection is not 802.1x enabled */ + if ( default_type == NMU_SEC_STATIC_WEP + || default_type == NMU_SEC_LEAP + || default_type == NMU_SEC_WPA_PSK + || default_type == NMU_SEC_WPA2_PSK) { + *out_secrets_setting_name = NM_SETTING_WIRELESS_SECURITY_SETTING_NAME; + } + + /* Or if it is 802.1x enabled */ + if ( default_type == NMU_SEC_DYNAMIC_WEP + || default_type == NMU_SEC_WPA_ENTERPRISE + || default_type == NMU_SEC_WPA2_ENTERPRISE) { + *out_secrets_setting_name = NM_SETTING_802_1X_SETTING_NAME; + } + + g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); + + return CE_PAGE (self); +} + +static void +ce_page_wifi_security_init (CEPageWifiSecurity *self) +{ + self->disposed = FALSE; +} + +static void +dispose (GObject *object) +{ + CEPageWifiSecurity *self = CE_PAGE_WIFI_SECURITY (object); + + if (self->disposed) + return; + + self->disposed = TRUE; + + if (self->group) + g_object_unref (self->group); + + G_OBJECT_CLASS (ce_page_wifi_security_parent_class)->dispose (object); +} + +static gboolean +validate (CEPage *page, NMConnection *connection, GError **error) +{ + CEPageWifiSecurity *self = CE_PAGE_WIFI_SECURITY (page); + NMSettingWireless *s_wireless; + WirelessSecurity *sec; + gboolean valid = FALSE; + const char *mode; + + s_wireless = nm_connection_get_setting_wireless (connection); + g_assert (s_wireless); + + mode = nm_setting_wireless_get_mode (s_wireless); + if (g_strcmp0 (mode, NM_SETTING_WIRELESS_MODE_ADHOC) == 0) + self->adhoc = TRUE; + else + self->adhoc = FALSE; + + sec = wireless_security_combo_get_active (self); + if (sec) { + const GByteArray *ssid = nm_setting_wireless_get_ssid (s_wireless); + + if (ssid) { + /* FIXME: get failed property and error out of wifi security objects */ + valid = wireless_security_validate (sec, ssid); + if (valid) + wireless_security_fill_connection (sec, connection); + else + g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Invalid Wi-Fi security"); + } else { + g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Missing SSID"); + valid = FALSE; + } + + if (self->adhoc) { + if (!wireless_security_adhoc_compatible (sec)) { + g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Security not compatible with Ad-Hoc mode"); + valid = FALSE; + } + } + + wireless_security_unref (sec); + } else { + /* No security, unencrypted */ + g_object_set (s_wireless, NM_SETTING_WIRELESS_SEC, NULL, NULL); + nm_connection_remove_setting (connection, NM_TYPE_SETTING_WIRELESS_SECURITY); + nm_connection_remove_setting (connection, NM_TYPE_SETTING_802_1X); + valid = TRUE; + } + + return valid; +} + +static GtkWidget * +nag_user (CEPage *page) +{ + WirelessSecurity *sec; + GtkWidget *nag = NULL; + + sec = wireless_security_combo_get_active (CE_PAGE_WIFI_SECURITY (page)); + if (sec) { + nag = wireless_security_nag_user (sec); + wireless_security_unref (sec); + } + return nag; +} + +static void +ce_page_wifi_security_class_init (CEPageWifiSecurityClass *wireless_security_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (wireless_security_class); + CEPageClass *parent_class = CE_PAGE_CLASS (wireless_security_class); + + /* virtual methods */ + object_class->dispose = dispose; + + parent_class->validate = validate; + parent_class->nag_user = nag_user; +} diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wifi-security.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wifi-security.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-wifi-security.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wifi-security.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,66 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifndef __PAGE_WIFI_SECURITY_H__ +#define __PAGE_WIFI_SECURITY_H__ + +#include "nm-connection-editor.h" + +#include + +#include +#include +#include + +#include "ce-page.h" + +#define CE_TYPE_PAGE_WIFI_SECURITY (ce_page_wifi_security_get_type ()) +#define CE_PAGE_WIFI_SECURITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_WIFI_SECURITY, CEPageWifiSecurity)) +#define CE_PAGE_WIFI_SECURITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_WIFI_SECURITY, CEPageWifiSecurityClass)) +#define CE_IS_PAGE_WIFI_SECURITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_WIFI_SECURITY)) +#define CE_IS_PAGE_WIFI_SECURITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_WIFI_SECURITY)) +#define CE_PAGE_WIFI_SECURITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_WIFI_SECURITY, CEPageWifiSecurityClass)) + +typedef struct { + CEPage parent; + + gboolean disposed; + GtkSizeGroup *group; + GtkComboBox *security_combo; + gboolean adhoc; +} CEPageWifiSecurity; + +typedef struct { + CEPageClass parent; +} CEPageWifiSecurityClass; + +GType ce_page_wifi_security_get_type (void); + +CEPage *ce_page_wifi_security_new (NMConnection *connection, + GtkWindow *parent, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error); + +#endif /* __PAGE_WIFI_SECURITY_H__ */ + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wifi.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wifi.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-wifi.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wifi.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,661 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#include "config.h" + +#include +#include + +#include +#include + +#include +#include +#include +#include + +#include "page-wifi.h" + +G_DEFINE_TYPE (CEPageWifi, ce_page_wifi, CE_TYPE_PAGE) + +#define CE_PAGE_WIFI_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CE_TYPE_PAGE_WIFI, CEPageWifiPrivate)) + +typedef struct { + NMSettingWireless *setting; + + GtkEntry *ssid; +#if GTK_CHECK_VERSION (2,24,0) + GtkComboBoxText *bssid; +#else + GtkComboBoxEntry *bssid; +#endif +#if GTK_CHECK_VERSION (2,24,0) + GtkComboBoxText *device_mac; /* Permanent MAC of the device */ +#else + GtkComboBoxEntry *device_mac; +#endif + GtkEntry *cloned_mac; /* Cloned MAC - used for MAC spoofing */ + GtkComboBox *mode; + GtkComboBox *band; + GtkSpinButton *channel; + GtkSpinButton *rate; + GtkSpinButton *tx_power; + GtkSpinButton *mtu; + + GtkSizeGroup *group; + + int last_channel; + gboolean disposed; +} CEPageWifiPrivate; + +static void +wifi_private_init (CEPageWifi *self) +{ + CEPageWifiPrivate *priv = CE_PAGE_WIFI_GET_PRIVATE (self); + GtkBuilder *builder; + GtkWidget *widget; + GtkWidget *align; + GtkLabel *label; + + builder = CE_PAGE (self)->builder; + + priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + + priv->ssid = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "wifi_ssid"))); + priv->cloned_mac = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "wifi_cloned_mac"))); + priv->mode = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "wifi_mode"))); + priv->band = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "wifi_band"))); + priv->channel = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wifi_channel"))); + + /* BSSID */ +#if GTK_CHECK_VERSION(2,24,0) + priv->bssid = GTK_COMBO_BOX_TEXT (gtk_combo_box_text_new_with_entry ()); + gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX (priv->bssid), 0); +#else + priv->bssid = GTK_COMBO_BOX_ENTRY (gtk_combo_box_entry_new_text ()); + gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (priv->bssid), 0); +#endif + gtk_widget_set_tooltip_text (GTK_WIDGET (priv->bssid), + _("This option locks this connection to the Wi-Fi access point (AP) specified by the BSSID entered here. Example: 00:11:22:33:44:55")); + + align = GTK_WIDGET (gtk_builder_get_object (builder, "wifi_bssid_alignment")); + gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (priv->bssid)); + gtk_widget_show_all (GTK_WIDGET (priv->bssid)); + + /* Device MAC */ +#if GTK_CHECK_VERSION(2,24,0) + priv->device_mac = GTK_COMBO_BOX_TEXT (gtk_combo_box_text_new_with_entry ()); + gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX (priv->device_mac), 0); +#else + priv->device_mac = GTK_COMBO_BOX_ENTRY (gtk_combo_box_entry_new_text ()); + gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (priv->device_mac), 0); +#endif + gtk_widget_set_tooltip_text (GTK_WIDGET (priv->device_mac), + _("This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55")); + + align = GTK_WIDGET (gtk_builder_get_object (builder, "wifi_device_mac_alignment")); + gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (priv->device_mac)); + gtk_widget_show_all (GTK_WIDGET (priv->device_mac)); + + /* Set mnemonic widget for device MAC label */ + label = GTK_LABEL (GTK_WIDGET (gtk_builder_get_object (builder, "wifi_device_mac_label"))); + gtk_label_set_mnemonic_widget (label, GTK_WIDGET (priv->device_mac)); + + priv->rate = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wifi_rate"))); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "rate_units")); + gtk_size_group_add_widget (priv->group, widget); + + priv->tx_power = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wifi_tx_power"))); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "tx_power_units")); + gtk_size_group_add_widget (priv->group, widget); + + priv->mtu = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wifi_mtu"))); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "mtu_units")); + gtk_size_group_add_widget (priv->group, widget); +} + +static gboolean +band_helper (CEPageWifi *self, gboolean *aband, gboolean *gband) +{ + CEPageWifiPrivate *priv = CE_PAGE_WIFI_GET_PRIVATE (self); + + switch (gtk_combo_box_get_active (priv->band)) { + case 1: /* A */ + *gband = FALSE; + return TRUE; + case 2: /* B/G */ + *aband = FALSE; + return TRUE; + default: + return FALSE; + } +} + +static gint +channel_spin_input_cb (GtkSpinButton *spin, gdouble *new_val, gpointer user_data) +{ + CEPageWifi *self = CE_PAGE_WIFI (user_data); + gdouble channel; + guint32 int_channel = 0; + gboolean aband = TRUE; + gboolean gband = TRUE; + + if (!band_helper (self, &aband, &gband)) + return GTK_INPUT_ERROR; + + channel = g_strtod (gtk_entry_get_text (GTK_ENTRY (spin)), NULL); + if (channel - floor (channel) < ceil (channel) - channel) + int_channel = floor (channel); + else + int_channel = ceil (channel); + + if (nm_utils_wifi_channel_to_freq (int_channel, aband ? "a" : "bg") == -1) + return GTK_INPUT_ERROR; + + *new_val = channel; + return 1; +} + +static gint +channel_spin_output_cb (GtkSpinButton *spin, gpointer user_data) +{ + CEPageWifi *self = CE_PAGE_WIFI (user_data); + CEPageWifiPrivate *priv = CE_PAGE_WIFI_GET_PRIVATE (self); + int channel; + gchar *buf = NULL; + guint32 freq; + gboolean aband = TRUE; + gboolean gband = TRUE; + + if (!band_helper (self, &aband, &gband)) + buf = g_strdup (_("default")); + else { + channel = gtk_spin_button_get_value_as_int (spin); + if (channel == 0) + buf = g_strdup (_("default")); + else { + int direction = 0; + freq = nm_utils_wifi_channel_to_freq (channel, aband ? "a" : "bg"); + if (freq == -1) { + if (priv->last_channel < channel) + direction = 1; + else if (priv->last_channel > channel) + direction = -1; + channel = nm_utils_wifi_find_next_channel (channel, direction, aband ? "a" : "bg"); + gtk_spin_button_set_value (spin, channel); + freq = nm_utils_wifi_channel_to_freq (channel, aband ? "a" : "bg"); + if (freq == -1) { + g_warning ("%s: invalid channel %d!", __func__, channel); + gtk_spin_button_set_value (spin, 0); + goto out; + } + + } + /* Set spin button to zero to go to "default" from the lowest channel */ + if (direction == -1 && priv->last_channel == channel) { + buf = g_strdup_printf (_("default")); + gtk_spin_button_set_value (spin, 0); + channel = 0; + } else + buf = g_strdup_printf (_("%u (%u MHz)"), channel, freq); + } + priv->last_channel = channel; + } + + if (strcmp (buf, gtk_entry_get_text (GTK_ENTRY (spin)))) + gtk_entry_set_text (GTK_ENTRY (spin), buf); + +out: + g_free (buf); + return 1; +} + +static void +band_value_changed_cb (GtkComboBox *box, gpointer user_data) +{ + CEPageWifi *self = CE_PAGE_WIFI (user_data); + CEPageWifiPrivate *priv = CE_PAGE_WIFI_GET_PRIVATE (self); + gboolean sensitive; + + priv->last_channel = 0; + gtk_spin_button_set_value (priv->channel, 0); + + switch (gtk_combo_box_get_active (GTK_COMBO_BOX (box))) { + case 1: /* A */ + case 2: /* B/G */ + sensitive = TRUE; + break; + default: + sensitive = FALSE; + break; + } + + gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), sensitive); + + ce_page_changed (CE_PAGE (self)); +} + +static void +mode_combo_changed_cb (GtkComboBox *combo, + gpointer user_data) +{ + CEPageWifi *self = CE_PAGE_WIFI (user_data); + CEPageWifiPrivate *priv = CE_PAGE_WIFI_GET_PRIVATE (self); + CEPage *parent = CE_PAGE (self); + GtkWidget *widget; + gboolean show; + + switch (gtk_combo_box_get_active (GTK_COMBO_BOX (combo))) { + case 1: /* adhoc */ + show = TRUE; + break; + default: /* infrastructure */ + show = FALSE; + break; + } + + if (show) { + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_band_label")); + gtk_widget_show (widget); + gtk_widget_show (GTK_WIDGET (priv->band)); + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_channel_label")); + gtk_widget_show (widget); + gtk_widget_show (GTK_WIDGET (priv->channel)); + } else { + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_band_label")); + gtk_widget_hide (widget); + gtk_widget_hide (GTK_WIDGET (priv->band)); + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_channel_label")); + gtk_widget_hide (widget); + gtk_widget_hide (GTK_WIDGET (priv->channel)); + } + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_band_label")); + gtk_widget_set_sensitive (GTK_WIDGET (widget), show); + gtk_widget_set_sensitive (GTK_WIDGET (priv->band), show); + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_channel_label")); + gtk_widget_set_sensitive (GTK_WIDGET (widget), show); + gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), show); + + ce_page_changed (CE_PAGE (self)); +} + +static void +populate_ui (CEPageWifi *self) +{ + CEPageWifiPrivate *priv = CE_PAGE_WIFI_GET_PRIVATE (self); + NMSettingWireless *setting = priv->setting; + GByteArray *ssid = NULL; + char *mode = NULL; + char *band = NULL; + int band_idx = 0; + int rate_def; + int tx_power_def; + int mtu_def; + char *utf8_ssid; + char **mac_list; + const GByteArray *s_mac, *s_bssid; + char *s_mac_str, *s_bssid_str; + GPtrArray *bssid_array; + char **bssid_list; + guint32 idx; + + rate_def = ce_get_property_default (NM_SETTING (setting), NM_SETTING_WIRELESS_RATE); + g_signal_connect (priv->rate, "output", + G_CALLBACK (ce_spin_output_with_default), + GINT_TO_POINTER (rate_def)); + g_signal_connect_swapped (priv->rate, "value-changed", G_CALLBACK (ce_page_changed), self); + + tx_power_def = ce_get_property_default (NM_SETTING (setting), NM_SETTING_WIRELESS_TX_POWER); + g_signal_connect (priv->tx_power, "output", + G_CALLBACK (ce_spin_output_with_default), + GINT_TO_POINTER (tx_power_def)); + g_signal_connect_swapped (priv->tx_power, "value-changed", G_CALLBACK (ce_page_changed), self); + + mtu_def = ce_get_property_default (NM_SETTING (setting), NM_SETTING_WIRELESS_MTU); + g_signal_connect (priv->mtu, "output", + G_CALLBACK (ce_spin_output_with_default), + GINT_TO_POINTER (mtu_def)); + g_signal_connect_swapped (priv->mtu, "value-changed", G_CALLBACK (ce_page_changed), self); + + g_object_get (setting, + NM_SETTING_WIRELESS_SSID, &ssid, + NM_SETTING_WIRELESS_MODE, &mode, + NM_SETTING_WIRELESS_BAND, &band, + NULL); + + if (ssid) + utf8_ssid = nm_utils_ssid_to_utf8 (ssid); + else + utf8_ssid = g_strdup (""); + gtk_entry_set_text (priv->ssid, utf8_ssid); + g_signal_connect_swapped (priv->ssid, "changed", G_CALLBACK (ce_page_changed), self); + g_free (utf8_ssid); + g_byte_array_unref (ssid); + + /* Default to Infrastructure */ + gtk_combo_box_set_active (priv->mode, 0); + if (mode && !strcmp (mode, "adhoc")) + gtk_combo_box_set_active (priv->mode, 1); + mode_combo_changed_cb (priv->mode, self); + g_signal_connect (priv->mode, "changed", G_CALLBACK (mode_combo_changed_cb), self); + g_free (mode); + + g_signal_connect (priv->channel, "output", + G_CALLBACK (channel_spin_output_cb), + self); + g_signal_connect (priv->channel, "input", + G_CALLBACK (channel_spin_input_cb), + self); + + gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), FALSE); + if (band) { + if (!strcmp (band ? band : "", "a")) { + band_idx = 1; + gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), TRUE); + } else if (!strcmp (band ? band : "", "bg")) { + band_idx = 2; + gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), TRUE); + } + g_free (band); + } + + gtk_combo_box_set_active (priv->band, band_idx); + g_signal_connect (priv->band, "changed", + G_CALLBACK (band_value_changed_cb), + self); + + /* Update the channel _after_ the band has been set so that it gets + * the right values */ + priv->last_channel = nm_setting_wireless_get_channel (setting); + gtk_spin_button_set_value (priv->channel, (gdouble) priv->last_channel); + g_signal_connect_swapped (priv->channel, "value-changed", G_CALLBACK (ce_page_changed), self); + + /* BSSID */ + bssid_array = g_ptr_array_new (); + for (idx = 0; idx < nm_setting_wireless_get_num_seen_bssids (setting); idx++) + g_ptr_array_add (bssid_array, g_strdup (nm_setting_wireless_get_seen_bssid (setting, idx))); + g_ptr_array_add (bssid_array, NULL); + bssid_list = (char **) g_ptr_array_free (bssid_array, FALSE); + s_bssid = nm_setting_wireless_get_bssid (setting); + s_bssid_str = s_bssid ? nm_utils_hwaddr_ntoa (s_bssid->data, ARPHRD_ETHER) : NULL; + ce_page_setup_mac_combo (CE_PAGE (self), GTK_COMBO_BOX (priv->bssid), + s_bssid_str, bssid_list); + g_free (s_bssid_str); + g_strfreev (bssid_list); + g_signal_connect_swapped (priv->bssid, "changed", G_CALLBACK (ce_page_changed), self); + + /* Device MAC address */ + mac_list = ce_page_get_mac_list (CE_PAGE (self), NM_TYPE_DEVICE_WIFI, + NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS); + s_mac = nm_setting_wireless_get_mac_address (setting); + s_mac_str = s_mac ? nm_utils_hwaddr_ntoa (s_mac->data, ARPHRD_ETHER) : NULL; + ce_page_setup_mac_combo (CE_PAGE (self), GTK_COMBO_BOX (priv->device_mac), + s_mac_str, mac_list); + g_free (s_mac_str); + g_strfreev (mac_list); + g_signal_connect_swapped (priv->device_mac, "changed", G_CALLBACK (ce_page_changed), self); + + /* Cloned MAC address */ + ce_page_mac_to_entry (nm_setting_wireless_get_cloned_mac_address (setting), + ARPHRD_ETHER, priv->cloned_mac); + g_signal_connect_swapped (priv->cloned_mac, "changed", G_CALLBACK (ce_page_changed), self); + + gtk_spin_button_set_value (priv->rate, (gdouble) nm_setting_wireless_get_rate (setting)); + gtk_spin_button_set_value (priv->tx_power, (gdouble) nm_setting_wireless_get_tx_power (setting)); + gtk_spin_button_set_value (priv->mtu, (gdouble) nm_setting_wireless_get_mtu (setting)); +} + +static void +finish_setup (CEPageWifi *self, gpointer unused, GError *error, gpointer user_data) +{ + CEPage *parent = CE_PAGE (self); + GtkWidget *widget; + + if (error) + return; + + populate_ui (self); + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_tx_power_label")); + gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_tx_power_hbox")); + gtk_widget_hide (widget); + + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_rate_label")); + gtk_widget_hide (widget); + widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_rate_hbox")); + gtk_widget_hide (widget); +} + +CEPage * +ce_page_wifi_new (NMConnection *connection, + GtkWindow *parent_window, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error) +{ + CEPageWifi *self; + CEPageWifiPrivate *priv; + + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + self = CE_PAGE_WIFI (ce_page_new (CE_TYPE_PAGE_WIFI, + connection, + parent_window, + client, + settings, + UIDIR "/ce-page-wifi.ui", + "WifiPage", + _("Wi-Fi"))); + if (!self) { + g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load Wi-Fi user interface.")); + return NULL; + } + + wifi_private_init (self); + priv = CE_PAGE_WIFI_GET_PRIVATE (self); + + priv->setting = nm_connection_get_setting_wireless (connection); + if (!priv->setting) { + priv->setting = NM_SETTING_WIRELESS (nm_setting_wireless_new ()); + nm_connection_add_setting (connection, NM_SETTING (priv->setting)); + } + + g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); + + return CE_PAGE (self); +} + +GByteArray * +ce_page_wifi_get_ssid (CEPageWifi *self) +{ + CEPageWifiPrivate *priv; + const char *txt_ssid; + GByteArray *ssid; + + g_return_val_if_fail (CE_IS_PAGE_WIFI (self), NULL); + + priv = CE_PAGE_WIFI_GET_PRIVATE (self); + txt_ssid = gtk_entry_get_text (priv->ssid); + if (!txt_ssid || !strlen (txt_ssid)) + return NULL; + + ssid = g_byte_array_sized_new (strlen (txt_ssid)); + g_byte_array_append (ssid, (const guint8 *) txt_ssid, strlen (txt_ssid)); + + return ssid; +} + +static void +ui_to_setting (CEPageWifi *self) +{ + CEPageWifiPrivate *priv = CE_PAGE_WIFI_GET_PRIVATE (self); + GByteArray *ssid; + GByteArray *bssid = NULL; + GByteArray *device_mac = NULL; + GByteArray *cloned_mac = NULL; + const char *mode; + const char *band; + GtkWidget *entry; + + ssid = ce_page_wifi_get_ssid (self); + + if (gtk_combo_box_get_active (priv->mode) == 1) + mode = "adhoc"; + else + mode = "infrastructure"; + + switch (gtk_combo_box_get_active (priv->band)) { + case 1: + band = "a"; + break; + case 2: + band = "bg"; + break; + case 0: + default: + band = NULL; + break; + } + + entry = gtk_bin_get_child (GTK_BIN (priv->bssid)); + if (entry) + bssid = ce_page_entry_to_mac (GTK_ENTRY (entry), ARPHRD_ETHER, NULL); + entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); + if (entry) + device_mac = ce_page_entry_to_mac (GTK_ENTRY (entry), ARPHRD_ETHER, NULL); + cloned_mac = ce_page_entry_to_mac (priv->cloned_mac, ARPHRD_ETHER, NULL); + + g_object_set (priv->setting, + NM_SETTING_WIRELESS_SSID, ssid, + NM_SETTING_WIRELESS_BSSID, bssid, + NM_SETTING_WIRELESS_MAC_ADDRESS, device_mac, + NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, cloned_mac, + NM_SETTING_WIRELESS_MODE, mode, + NM_SETTING_WIRELESS_BAND, band, + NM_SETTING_WIRELESS_CHANNEL, gtk_spin_button_get_value_as_int (priv->channel), + NM_SETTING_WIRELESS_RATE, gtk_spin_button_get_value_as_int (priv->rate), + NM_SETTING_WIRELESS_TX_POWER, gtk_spin_button_get_value_as_int (priv->tx_power), + NM_SETTING_WIRELESS_MTU, gtk_spin_button_get_value_as_int (priv->mtu), + NULL); + + if (ssid) + g_byte_array_free (ssid, TRUE); + if (device_mac) + g_byte_array_free (device_mac, TRUE); + if (cloned_mac) + g_byte_array_free (cloned_mac, TRUE); + if (bssid) + g_byte_array_free (bssid, TRUE); +} + +static gboolean +validate (CEPage *page, NMConnection *connection, GError **error) +{ + CEPageWifi *self = CE_PAGE_WIFI (page); + CEPageWifiPrivate *priv = CE_PAGE_WIFI_GET_PRIVATE (self); + char *security; + gboolean success; + gboolean invalid = FALSE; + GByteArray *ignore; + GtkWidget *entry; + + entry = gtk_bin_get_child (GTK_BIN (priv->bssid)); + if (entry) { + ignore = ce_page_entry_to_mac (GTK_ENTRY (entry), ARPHRD_ETHER, &invalid); + if (invalid) + return FALSE; + if (ignore) + g_byte_array_free (ignore, TRUE); + } + + entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); + if (entry) { + ignore = ce_page_entry_to_mac (GTK_ENTRY (entry), ARPHRD_ETHER, &invalid); + if (invalid) + return FALSE; + if (ignore) + g_byte_array_free (ignore, TRUE); + } + + ignore = ce_page_entry_to_mac (priv->cloned_mac, ARPHRD_ETHER, &invalid); + if (invalid) + return FALSE; + if (ignore) + g_byte_array_free (ignore, TRUE); + + ui_to_setting (self); + + /* A hack to not check the wifi security here */ + security = g_strdup (nm_setting_wireless_get_security (priv->setting)); + g_object_set (priv->setting, NM_SETTING_WIRELESS_SEC, NULL, NULL); + + success = nm_setting_verify (NM_SETTING (priv->setting), NULL, error); + g_object_set (priv->setting, NM_SETTING_WIRELESS_SEC, security, NULL); + g_free (security); + + return success; +} + +static void +ce_page_wifi_init (CEPageWifi *self) +{ +} + +static void +ce_page_wifi_class_init (CEPageWifiClass *wifi_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (wifi_class); + CEPageClass *parent_class = CE_PAGE_CLASS (wifi_class); + + g_type_class_add_private (object_class, sizeof (CEPageWifiPrivate)); + + /* virtual methods */ + parent_class->validate = validate; +} + + +void +wifi_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data) +{ + NMConnection *connection; + NMSetting *s_wifi; + + connection = ce_page_new_connection (_("Wi-Fi connection %d"), + NM_SETTING_WIRELESS_SETTING_NAME, + TRUE, + settings, + user_data); + s_wifi = nm_setting_wireless_new (); + g_object_set (s_wifi, NM_SETTING_WIRELESS_MODE, "infrastructure", NULL); + nm_connection_add_setting (connection, s_wifi); + + (*result_func) (connection, FALSE, NULL, user_data); +} + + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wifi.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wifi.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-wifi.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wifi.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,68 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 - 2012 Red Hat, Inc. + */ + +#ifndef __PAGE_WIFI_H__ +#define __PAGE_WIFI_H__ + +#include + +#include +#include + +#include "ce-page.h" + +#define CE_TYPE_PAGE_WIFI (ce_page_wifi_get_type ()) +#define CE_PAGE_WIFI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_WIFI, CEPageWifi)) +#define CE_PAGE_WIFI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_WIFI, CEPageWifiClass)) +#define CE_IS_PAGE_WIFI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_WIFI)) +#define CE_IS_PAGE_WIFI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_WIFI)) +#define CE_PAGE_WIFI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_WIFI, CEPageWifiClass)) + +typedef struct { + CEPage parent; +} CEPageWifi; + +typedef struct { + CEPageClass parent; +} CEPageWifiClass; + +GType ce_page_wifi_get_type (void); + +CEPage *ce_page_wifi_new (NMConnection *connection, + GtkWindow *parent, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error); + +/* Caller must free returned array */ +GByteArray *ce_page_wifi_get_ssid (CEPageWifi *self); + + +void wifi_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data); + +#endif /* __PAGE_WIFI_H__ */ + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wimax.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wimax.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-wimax.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wimax.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,244 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright 2012 Red Hat, Inc. + */ + +#include "config.h" + +#include +#include + +#include +#include +#include +#include + +#include "page-wimax.h" + +G_DEFINE_TYPE (CEPageWimax, ce_page_wimax, CE_TYPE_PAGE) + +#define CE_PAGE_WIMAX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CE_TYPE_PAGE_WIMAX, CEPageWimaxPrivate)) + +typedef struct { + NMSettingWimax *setting; + + GtkEntry *name; +#if GTK_CHECK_VERSION (2,24,0) + GtkComboBoxText *device_mac; /* Permanent MAC of the device */ +#else + GtkComboBoxEntry *device_mac; +#endif + + gboolean disposed; +} CEPageWimaxPrivate; + +static void +wimax_private_init (CEPageWimax *self) +{ + CEPageWimaxPrivate *priv = CE_PAGE_WIMAX_GET_PRIVATE (self); + GtkBuilder *builder; + GtkWidget *align; + GtkLabel *label; + + builder = CE_PAGE (self)->builder; + + priv->name = GTK_ENTRY (gtk_builder_get_object (builder, "wimax_name")); + +#if GTK_CHECK_VERSION(2,24,0) + priv->device_mac = GTK_COMBO_BOX_TEXT (gtk_combo_box_text_new_with_entry ()); + gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX (priv->device_mac), 0); +#else + priv->device_mac = GTK_COMBO_BOX_ENTRY (gtk_combo_box_entry_new_text ()); + gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (priv->device_mac), 0); +#endif + gtk_widget_set_tooltip_text (GTK_WIDGET (priv->device_mac), + _("This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55")); + + align = GTK_WIDGET (gtk_builder_get_object (builder, "wimax_device_mac_alignment")); + gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (priv->device_mac)); + gtk_widget_show_all (GTK_WIDGET (priv->device_mac)); + + /* Set mnemonic widget for device MAC label */ + label = GTK_LABEL (GTK_WIDGET (gtk_builder_get_object (builder, "wimax_device_mac_label"))); + gtk_label_set_mnemonic_widget (label, GTK_WIDGET (priv->device_mac)); +} + +static void +populate_ui (CEPageWimax *self) +{ + CEPageWimaxPrivate *priv = CE_PAGE_WIMAX_GET_PRIVATE (self); + NMSettingWimax *setting = priv->setting; + char **mac_list; + const GByteArray *s_mac; + char *s_mac_str; + + gtk_entry_set_text (priv->name, nm_setting_wimax_get_network_name (setting)); + g_signal_connect_swapped (priv->name, "changed", G_CALLBACK (ce_page_changed), self); + + /* Device MAC address */ + mac_list = ce_page_get_mac_list (CE_PAGE (self), NM_TYPE_DEVICE_WIMAX, + NM_DEVICE_WIMAX_HW_ADDRESS); + s_mac = nm_setting_wimax_get_mac_address (setting); + s_mac_str = s_mac ? nm_utils_hwaddr_ntoa (s_mac->data, ARPHRD_ETHER) : NULL; + ce_page_setup_mac_combo (CE_PAGE (self), GTK_COMBO_BOX (priv->device_mac), + s_mac_str, mac_list); + g_free (s_mac_str); + g_strfreev (mac_list); + g_signal_connect_swapped (priv->device_mac, "changed", G_CALLBACK (ce_page_changed), self); +} + +static void +finish_setup (CEPageWimax *self, gpointer unused, GError *error, gpointer user_data) +{ + if (error) + return; + + populate_ui (self); +} + +CEPage * +ce_page_wimax_new (NMConnection *connection, + GtkWindow *parent_window, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error) +{ + CEPageWimax *self; + CEPageWimaxPrivate *priv; + + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + self = CE_PAGE_WIMAX (ce_page_new (CE_TYPE_PAGE_WIMAX, + connection, + parent_window, + client, + settings, + UIDIR "/ce-page-wimax.ui", + "WimaxPage", + _("WiMAX"))); + if (!self) { + g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, + _("Could not load WiMAX user interface.")); + return NULL; + } + + wimax_private_init (self); + priv = CE_PAGE_WIMAX_GET_PRIVATE (self); + + priv->setting = nm_connection_get_setting_wimax (connection); + if (!priv->setting) { + priv->setting = NM_SETTING_WIMAX (nm_setting_wimax_new ()); + nm_connection_add_setting (connection, NM_SETTING (priv->setting)); + } + + g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); + + return CE_PAGE (self); +} + +static void +ui_to_setting (CEPageWimax *self) +{ + CEPageWimaxPrivate *priv = CE_PAGE_WIMAX_GET_PRIVATE (self); + const char *name; + GByteArray *device_mac = NULL; + GtkWidget *entry; + + name = gtk_entry_get_text (priv->name); + + entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); + if (entry) + device_mac = ce_page_entry_to_mac (GTK_ENTRY (entry), ARPHRD_ETHER, NULL); + + g_object_set (priv->setting, + NM_SETTING_WIMAX_NETWORK_NAME, name, + NM_SETTING_WIMAX_MAC_ADDRESS, device_mac, + NULL); + + if (device_mac) + g_byte_array_free (device_mac, TRUE); +} + +static gboolean +validate (CEPage *page, NMConnection *connection, GError **error) +{ + CEPageWimax *self = CE_PAGE_WIMAX (page); + CEPageWimaxPrivate *priv = CE_PAGE_WIMAX_GET_PRIVATE (self); + const char *name; + gboolean invalid = FALSE; + GByteArray *ignore; + GtkWidget *entry; + + name = gtk_entry_get_text (priv->name); + if (!*name) + return FALSE; + + entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); + if (entry) { + ignore = ce_page_entry_to_mac (GTK_ENTRY (entry), ARPHRD_ETHER, &invalid); + if (invalid) + return FALSE; + if (ignore) + g_byte_array_free (ignore, TRUE); + } + + ui_to_setting (self); + return TRUE; +} + +static void +ce_page_wimax_init (CEPageWimax *self) +{ +} + +static void +ce_page_wimax_class_init (CEPageWimaxClass *wimax_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (wimax_class); + CEPageClass *parent_class = CE_PAGE_CLASS (wimax_class); + + g_type_class_add_private (object_class, sizeof (CEPageWimaxPrivate)); + + /* virtual methods */ + parent_class->validate = validate; +} + + +void +wimax_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data) +{ + NMConnection *connection; + NMSetting *s_wimax; + + connection = ce_page_new_connection (_("WiMAX connection %d"), + NM_SETTING_WIMAX_SETTING_NAME, + TRUE, + settings, + user_data); + s_wimax = nm_setting_wimax_new (); + nm_connection_add_setting (connection, s_wimax); + + (*result_func) (connection, FALSE, NULL, user_data); +} + + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wimax.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wimax.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-wimax.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wimax.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,62 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Connection editor -- Connection editor for NetworkManager + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright 2012 Red Hat, Inc. + */ + +#ifndef __PAGE_WIMAX_H__ +#define __PAGE_WIMAX_H__ + +#include + +#include +#include + +#include "ce-page.h" + +#define CE_TYPE_PAGE_WIMAX (ce_page_wimax_get_type ()) +#define CE_PAGE_WIMAX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_WIMAX, CEPageWimax)) +#define CE_PAGE_WIMAX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_WIMAX, CEPageWimaxClass)) +#define CE_IS_PAGE_WIMAX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_WIMAX)) +#define CE_IS_PAGE_WIMAX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE_WIMAX)) +#define CE_PAGE_WIMAX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_WIMAX, CEPageWimaxClass)) + +typedef struct { + CEPage parent; +} CEPageWimax; + +typedef struct { + CEPageClass parent; +} CEPageWimaxClass; + +GType ce_page_wimax_get_type (void); + +CEPage *ce_page_wimax_new (NMConnection *connection, + GtkWindow *parent, + NMClient *client, + NMRemoteSettings *settings, + const char **out_secrets_setting_name, + GError **error); + +void wimax_connection_new (GtkWindow *parent, + const char *detail, + NMRemoteSettings *settings, + PageNewConnectionResultFunc result_func, + gpointer user_data); + +#endif /* __PAGE_WIMAX_H__ */ + diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wired-security.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wired-security.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-wired-security.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wired-security.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,232 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Connection editor -- Connection editor for NetworkManager - * - * Dan Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2008 - 2012 Red Hat, Inc. - */ - -#include "config.h" - -#include - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "wireless-security.h" -#include "page-wired.h" -#include "page-wired-security.h" -#include "nm-connection-editor.h" - -G_DEFINE_TYPE (CEPageWiredSecurity, ce_page_wired_security, CE_TYPE_PAGE) - -#define CE_PAGE_WIRED_SECURITY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CE_TYPE_PAGE_WIRED_SECURITY, CEPageWiredSecurityPrivate)) - -typedef struct { - GtkToggleButton *enabled; - GtkWidget *security_widget; - WirelessSecurity *security; - - gboolean initial_have_8021x; - - gboolean disposed; -} CEPageWiredSecurityPrivate; - -static void -stuff_changed (WirelessSecurity *sec, gpointer user_data) -{ - ce_page_changed (CE_PAGE (user_data)); -} - -static void -enable_toggled (GtkToggleButton *button, gpointer user_data) -{ - CEPageWiredSecurityPrivate *priv = CE_PAGE_WIRED_SECURITY_GET_PRIVATE (user_data); - - gtk_widget_set_sensitive (priv->security_widget, gtk_toggle_button_get_active (priv->enabled)); - ce_page_changed (CE_PAGE (user_data)); -} - -static void -finish_setup (CEPageWiredSecurity *self, gpointer unused, GError *error, gpointer user_data) -{ - CEPage *parent = CE_PAGE (self); - CEPageWiredSecurityPrivate *priv = CE_PAGE_WIRED_SECURITY_GET_PRIVATE (self); - GtkWidget *parent_container; - - if (error) - return; - - priv->security = (WirelessSecurity *) ws_wpa_eap_new (parent->connection, TRUE, FALSE); - if (!priv->security) { - g_warning ("Could not load wired 802.1x user interface."); - return; - } - - wireless_security_set_changed_notify (priv->security, stuff_changed, self); - priv->security_widget = wireless_security_get_widget (priv->security); - parent_container = gtk_widget_get_parent (priv->security_widget); - if (parent_container) - gtk_container_remove (GTK_CONTAINER (parent_container), priv->security_widget); - - gtk_toggle_button_set_active (priv->enabled, priv->initial_have_8021x); - g_signal_connect (priv->enabled, "toggled", G_CALLBACK (enable_toggled), self); - gtk_widget_set_sensitive (priv->security_widget, priv->initial_have_8021x); - - gtk_box_pack_start (GTK_BOX (parent->page), GTK_WIDGET (priv->enabled), FALSE, TRUE, 12); - gtk_box_pack_start (GTK_BOX (parent->page), priv->security_widget, TRUE, TRUE, 0); - gtk_widget_show_all (parent->page); -} - -CEPage * -ce_page_wired_security_new (NMConnection *connection, - GtkWindow *parent_window, - NMClient *client, - const char **out_secrets_setting_name, - GError **error) -{ - CEPageWiredSecurity *self; - CEPageWiredSecurityPrivate *priv; - CEPage *parent; - - self = CE_PAGE_WIRED_SECURITY (ce_page_new (CE_TYPE_PAGE_WIRED_SECURITY, - connection, - parent_window, - client, - NULL, - NULL, - _("802.1x Security"))); - if (!self) { - g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load Wired Security security user interface.")); - return NULL; - } - - parent = CE_PAGE (self); - priv = CE_PAGE_WIRED_SECURITY_GET_PRIVATE (self); - -#if GTK_CHECK_VERSION (3,1,6) - parent->page = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); -#else - parent->page = gtk_vbox_new (FALSE, 6); -#endif - g_object_ref_sink (G_OBJECT (parent->page)); - gtk_container_set_border_width (GTK_CONTAINER (parent->page), 6); - - if (nm_connection_get_setting_802_1x (connection)) - priv->initial_have_8021x = TRUE; - - priv->enabled = GTK_TOGGLE_BUTTON (gtk_check_button_new_with_mnemonic (_("Use 802.1_X security for this connection"))); - - g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); - - if (priv->initial_have_8021x) - *out_secrets_setting_name = NM_SETTING_802_1X_SETTING_NAME; - - return CE_PAGE (self); -} - -static gboolean -validate (CEPage *page, NMConnection *connection, GError **error) -{ - CEPageWiredSecurityPrivate *priv = CE_PAGE_WIRED_SECURITY_GET_PRIVATE (page); - gboolean valid = TRUE; - - if (gtk_toggle_button_get_active (priv->enabled)) { - NMConnection *tmp_connection; - NMSetting *s_8021x; - - /* FIXME: get failed property and error out of wireless security objects */ - valid = wireless_security_validate (priv->security, NULL); - if (valid) { - NMSetting *s_con; - - /* Here's a nice hack to work around the fact that ws_802_1x_fill_connection needs wireless setting. */ - tmp_connection = nm_connection_new (); - nm_connection_add_setting (tmp_connection, nm_setting_wireless_new ()); - - /* temp connection needs a 'connection' setting too, since most of - * the EAP methods need the UUID for CA cert ignore stuff. - */ - s_con = nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION); - nm_connection_add_setting (tmp_connection, nm_setting_duplicate (s_con)); - - ws_802_1x_fill_connection (priv->security, "wpa_eap_auth_combo", tmp_connection); - - s_8021x = nm_connection_get_setting (tmp_connection, NM_TYPE_SETTING_802_1X); - nm_connection_add_setting (connection, NM_SETTING (g_object_ref (s_8021x))); - - g_object_unref (tmp_connection); - } else - g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Invalid 802.1x security"); - } else { - nm_connection_remove_setting (connection, NM_TYPE_SETTING_802_1X); - valid = TRUE; - } - - return valid; -} - -static GtkWidget * -nag_user (CEPage *page) -{ - CEPageWiredSecurityPrivate *priv = CE_PAGE_WIRED_SECURITY_GET_PRIVATE (page); - - return priv->security ? wireless_security_nag_user (priv->security) : NULL; -} - -static void -ce_page_wired_security_init (CEPageWiredSecurity *self) -{ -} - -static void -dispose (GObject *object) -{ - CEPageWiredSecurityPrivate *priv = CE_PAGE_WIRED_SECURITY_GET_PRIVATE (object); - - if (priv->disposed) - return; - - priv->disposed = TRUE; - - if (priv->security) - wireless_security_unref (priv->security); - - G_OBJECT_CLASS (ce_page_wired_security_parent_class)->dispose (object); -} - -static void -ce_page_wired_security_class_init (CEPageWiredSecurityClass *wired_security_class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (wired_security_class); - CEPageClass *parent_class = CE_PAGE_CLASS (wired_security_class); - - g_type_class_add_private (object_class, sizeof (CEPageWiredSecurityPrivate)); - - /* virtual methods */ - object_class->dispose = dispose; - - parent_class->validate = validate; - parent_class->nag_user = nag_user; -} diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wired-security.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wired-security.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-wired-security.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wired-security.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Connection editor -- Connection editor for NetworkManager - * - * Dan Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2008 - 2011 Red Hat, Inc. - */ - -#ifndef __PAGE_WIRED_SECURITY_H__ -#define __PAGE_WIRED_SECURITY_H__ - -#include "nm-connection-editor.h" - -#include - -#include -#include - -#include "ce-page.h" - -#define CE_TYPE_PAGE_WIRED_SECURITY (ce_page_wired_security_get_type ()) -#define CE_PAGE_WIRED_SECURITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_WIRED_SECURITY, CEPageWiredSecurity)) -#define CE_PAGE_WIRED_SECURITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_WIRED_SECURITY, CEPageWiredSecurityClass)) -#define CE_IS_PAGE_WIRED_SECURITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_WIRED_SECURITY)) -#define CE_IS_PAGE_WIRED_SECURITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_PAGE_WIRED_SECURITY)) -#define CE_PAGE_WIRED_SECURITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_WIRED_SECURITY, CEPageWiredSecurityClass)) - -typedef struct { - CEPage parent; -} CEPageWiredSecurity; - -typedef struct { - CEPageClass parent; -} CEPageWiredSecurityClass; - -GType ce_page_wired_security_get_type (void); - -CEPage *ce_page_wired_security_new (NMConnection *connection, - GtkWindow *parent, - NMClient *client, - const char **out_secrets_setting_name, - GError **error); - -#endif /* __PAGE_WIRED_SECURITY_H__ */ diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wired.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wired.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-wired.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wired.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,458 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Connection editor -- Connection editor for NetworkManager - * - * Dan Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2008 - 2011 Red Hat, Inc. - */ - -#include "config.h" - -#include -#include - -#include -#include - -#include -#include -#include - -#include "page-wired.h" - -G_DEFINE_TYPE (CEPageWired, ce_page_wired, CE_TYPE_PAGE) - -#define CE_PAGE_WIRED_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CE_TYPE_PAGE_WIRED, CEPageWiredPrivate)) - -typedef struct { - NMSettingWired *setting; - -#if GTK_CHECK_VERSION(2,24,0) - GtkComboBoxText *device_mac; /* Permanent MAC of the device */ -#else - GtkComboBoxEntry *device_mac; -#endif - GtkEntry *cloned_mac; /* Cloned MAC - used for MAC spoofing */ - GtkComboBox *port; - GtkComboBox *speed; - GtkToggleButton *duplex; - GtkToggleButton *autonegotiate; - GtkSpinButton *mtu; - - gboolean disposed; -} CEPageWiredPrivate; - -#define PORT_DEFAULT 0 -#define PORT_TP 1 -#define PORT_AUI 2 -#define PORT_BNC 3 -#define PORT_MII 4 - -#define SPEED_DEFAULT 0 -#define SPEED_10 1 -#define SPEED_100 2 -#define SPEED_1000 3 -#define SPEED_10000 4 - -static void -wired_private_init (CEPageWired *self) -{ - CEPageWiredPrivate *priv = CE_PAGE_WIRED_GET_PRIVATE (self); - GtkBuilder *builder; - GtkWidget *align; - GtkLabel *label; - - builder = CE_PAGE (self)->builder; - -#if GTK_CHECK_VERSION(2,24,0) - priv->device_mac = GTK_COMBO_BOX_TEXT (gtk_combo_box_text_new_with_entry ()); - gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX (priv->device_mac), 0); -#else - priv->device_mac = GTK_COMBO_BOX_ENTRY (gtk_combo_box_entry_new_text ()); - gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (priv->device_mac), 0); -#endif - gtk_widget_set_tooltip_text (GTK_WIDGET (priv->device_mac), - _("This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55")); - - align = GTK_WIDGET (gtk_builder_get_object (builder, "wired_device_mac_alignment")); - gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (priv->device_mac)); - gtk_widget_show_all (GTK_WIDGET (priv->device_mac)); - - /* Set mnemonic widget for device MAC label */ - label = GTK_LABEL (GTK_WIDGET (gtk_builder_get_object (builder, "wired_device_mac_label"))); - gtk_label_set_mnemonic_widget (label, GTK_WIDGET (priv->device_mac)); - - priv->cloned_mac = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "wired_cloned_mac"))); - priv->port = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "wired_port"))); - priv->speed = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "wired_speed"))); - priv->duplex = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wired_duplex"))); - priv->autonegotiate = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wired_autonegotiate"))); - priv->mtu = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wired_mtu"))); -} - -static void -stuff_changed (GtkWidget *w, gpointer user_data) -{ - ce_page_changed (CE_PAGE (user_data)); -} - -static void -populate_ui (CEPageWired *self) -{ - CEPageWiredPrivate *priv = CE_PAGE_WIRED_GET_PRIVATE (self); - NMSettingWired *setting = priv->setting; - const char *port; - const char *duplex; - int port_idx = PORT_DEFAULT; - int speed_idx; - int mtu_def; - char **mac_list, **iter; - const GByteArray *s_mac; - char *s_mac_str; - char *active_mac = NULL; - GtkWidget *entry; - - /* Port */ - port = nm_setting_wired_get_port (setting); - if (port) { - if (!strcmp (port, "tp")) - port_idx = PORT_TP; - else if (!strcmp (port, "aui")) - port_idx = PORT_AUI; - else if (!strcmp (port, "bnc")) - port_idx = PORT_BNC; - else if (!strcmp (port, "mii")) - port_idx = PORT_MII; - } - gtk_combo_box_set_active (priv->port, port_idx); - - /* Speed */ - switch (nm_setting_wired_get_speed (setting)) { - case 10: - speed_idx = SPEED_10; - break; - case 100: - speed_idx = SPEED_100; - break; - case 1000: - speed_idx = SPEED_1000; - break; - case 10000: - speed_idx = SPEED_10000; - break; - default: - speed_idx = SPEED_DEFAULT; - break; - } - gtk_combo_box_set_active (priv->speed, speed_idx); - - /* Duplex */ - duplex = nm_setting_wired_get_duplex (setting); - if (duplex && !strcmp (duplex, "half")) - gtk_toggle_button_set_active (priv->duplex, FALSE); - else - gtk_toggle_button_set_active (priv->duplex, TRUE); - - /* Autonegotiate */ - gtk_toggle_button_set_active (priv->autonegotiate, - nm_setting_wired_get_auto_negotiate (setting)); - - /* Device MAC address */ - mac_list = ce_page_get_mac_list (CE_PAGE (self)); - s_mac = nm_setting_wired_get_mac_address (setting); - s_mac_str = s_mac ? g_strdup_printf ("%02X:%02X:%02X:%02X:%02X:%02X", - s_mac->data[0], s_mac->data[1], s_mac->data[2], - s_mac->data[3], s_mac->data[4], s_mac->data[5]): - NULL; - - for (iter = mac_list; iter && *iter; iter++) { -#if GTK_CHECK_VERSION (2,24,0) - gtk_combo_box_text_append_text (priv->device_mac, *iter); -#else - gtk_combo_box_append_text (GTK_COMBO_BOX (priv->device_mac), *iter); -#endif - if (s_mac_str && g_ascii_strncasecmp (*iter, s_mac_str, 17) == 0) - active_mac = *iter; - } - - if (s_mac_str) { - if (!active_mac) { -#if GTK_CHECK_VERSION (2,24,0) - gtk_combo_box_text_prepend_text (priv->device_mac, s_mac_str); -#else - gtk_combo_box_prepend_text (GTK_COMBO_BOX (priv->device_mac), s_mac_str); -#endif - } - - entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); - if (entry) - gtk_entry_set_text (GTK_ENTRY (entry), active_mac ? active_mac : s_mac_str); - } - g_strfreev (mac_list); - g_signal_connect (priv->device_mac, "changed", G_CALLBACK (stuff_changed), self); - - /* Cloned MAC address */ - ce_page_mac_to_entry (nm_setting_wired_get_cloned_mac_address (setting), priv->cloned_mac); - g_signal_connect (priv->cloned_mac, "changed", G_CALLBACK (stuff_changed), self); - - /* MTU */ - mtu_def = ce_get_property_default (NM_SETTING (setting), NM_SETTING_WIRED_MTU); - g_signal_connect (priv->mtu, "output", - G_CALLBACK (ce_spin_output_with_default), - GINT_TO_POINTER (mtu_def)); - - gtk_spin_button_set_value (priv->mtu, (gdouble) nm_setting_wired_get_mtu (setting)); -} - -static void -finish_setup (CEPageWired *self, gpointer unused, GError *error, gpointer user_data) -{ - CEPage *parent = CE_PAGE (self); - CEPageWiredPrivate *priv = CE_PAGE_WIRED_GET_PRIVATE (self); - GtkWidget *widget; - - if (error) - return; - - populate_ui (self); - - g_signal_connect (priv->port, "changed", G_CALLBACK (stuff_changed), self); - g_signal_connect (priv->speed, "changed", G_CALLBACK (stuff_changed), self); - g_signal_connect (priv->duplex, "toggled", G_CALLBACK (stuff_changed), self); - g_signal_connect (priv->autonegotiate, "toggled", G_CALLBACK (stuff_changed), self); - g_signal_connect (priv->mtu, "value-changed", G_CALLBACK (stuff_changed), self); - - /* Hide widgets we don't yet support */ - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wired_port_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wired_port")); - gtk_widget_hide (widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wired_speed_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wired_speed")); - gtk_widget_hide (widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wired_duplex")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wired_autonegotiate")); - gtk_widget_hide (widget); -} - -CEPage * -ce_page_wired_new (NMConnection *connection, - GtkWindow *parent_window, - NMClient *client, - const char **out_secrets_setting_name, - GError **error) -{ - CEPageWired *self; - CEPageWiredPrivate *priv; - - self = CE_PAGE_WIRED (ce_page_new (CE_TYPE_PAGE_WIRED, - connection, - parent_window, - client, - UIDIR "/ce-page-wired.ui", - "WiredPage", - _("Wired"))); - if (!self) { - g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load wired user interface.")); - return NULL; - } - - wired_private_init (self); - priv = CE_PAGE_WIRED_GET_PRIVATE (self); - - priv->setting = nm_connection_get_setting_wired (connection); - if (!priv->setting) { - priv->setting = NM_SETTING_WIRED (nm_setting_wired_new ()); - nm_connection_add_setting (connection, NM_SETTING (priv->setting)); - } - - g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); - - return CE_PAGE (self); -} - -static void -ui_to_setting (CEPageWired *self) -{ - CEPageWiredPrivate *priv = CE_PAGE_WIRED_GET_PRIVATE (self); - const char *port; - guint32 speed; - GByteArray *device_mac = NULL; - GByteArray *cloned_mac = NULL; - GtkWidget *entry; - - /* Port */ - switch (gtk_combo_box_get_active (priv->port)) { - case PORT_TP: - port = "tp"; - break; - case PORT_AUI: - port = "aui"; - break; - case PORT_BNC: - port = "bnc"; - break; - case PORT_MII: - port = "mii"; - break; - default: - port = NULL; - break; - } - - /* Speed */ - switch (gtk_combo_box_get_active (priv->speed)) { - case SPEED_10: - speed = 10; - break; - case SPEED_100: - speed = 100; - break; - case SPEED_1000: - speed = 1000; - break; - case SPEED_10000: - speed = 10000; - break; - default: - speed = 0; - break; - } - - entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); - if (entry) - device_mac = ce_page_entry_to_mac (GTK_ENTRY (entry), NULL); - cloned_mac = ce_page_entry_to_mac (priv->cloned_mac, NULL); - - g_object_set (priv->setting, - NM_SETTING_WIRED_MAC_ADDRESS, device_mac, - NM_SETTING_WIRED_CLONED_MAC_ADDRESS, cloned_mac, - NM_SETTING_WIRED_PORT, port, - NM_SETTING_WIRED_SPEED, speed, - NM_SETTING_WIRED_DUPLEX, gtk_toggle_button_get_active (priv->duplex) ? "full" : "half", - NM_SETTING_WIRED_AUTO_NEGOTIATE, gtk_toggle_button_get_active (priv->autonegotiate), - NM_SETTING_WIRED_MTU, (guint32) gtk_spin_button_get_value_as_int (priv->mtu), - NULL); - - if (device_mac) - g_byte_array_free (device_mac, TRUE); - if (cloned_mac) - g_byte_array_free (cloned_mac, TRUE); - -} - -static gboolean -validate (CEPage *page, NMConnection *connection, GError **error) -{ - CEPageWired *self = CE_PAGE_WIRED (page); - CEPageWiredPrivate *priv = CE_PAGE_WIRED_GET_PRIVATE (self); - gboolean invalid = FALSE; - GByteArray *ignore; - GtkWidget *entry; - - entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); - if (entry) { - ignore = ce_page_entry_to_mac (GTK_ENTRY (entry), &invalid); - if (invalid) - return FALSE; - if (ignore) - g_byte_array_free (ignore, TRUE); - } - - ignore = ce_page_entry_to_mac (priv->cloned_mac, &invalid); - if (invalid) - return FALSE; - if (ignore) - g_byte_array_free (ignore, TRUE); - - ui_to_setting (self); - return nm_setting_verify (NM_SETTING (priv->setting), NULL, error); -} - -static char ** -get_mac_list (CEPage *page) -{ - const GPtrArray *devices; - GString *mac_str; - char **mac_list; - int i; - - if (!page->client) - return NULL; - - mac_str = g_string_new (NULL); - devices = nm_client_get_devices (page->client); - for (i = 0; devices && (i < devices->len); i++) { - const char *mac, *iface; - NMDevice *dev = g_ptr_array_index (devices, i); - - if (!NM_IS_DEVICE_ETHERNET (dev)) - continue; - - mac = nm_device_ethernet_get_permanent_hw_address (NM_DEVICE_ETHERNET (dev)); - iface = nm_device_get_iface (NM_DEVICE (dev)); - g_string_append_printf (mac_str, "%s (%s),", mac, iface); - } - g_string_truncate (mac_str, mac_str->len-1); - - mac_list = g_strsplit (mac_str->str, ",", 0); - g_string_free (mac_str, TRUE); - - return mac_list; -} - -static void -ce_page_wired_init (CEPageWired *self) -{ -} - -static void -ce_page_wired_class_init (CEPageWiredClass *wired_class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (wired_class); - CEPageClass *parent_class = CE_PAGE_CLASS (wired_class); - - g_type_class_add_private (object_class, sizeof (CEPageWiredPrivate)); - - /* virtual methods */ - parent_class->validate = validate; - parent_class->get_mac_list = get_mac_list; -} - - -void -wired_connection_new (GtkWindow *parent, - PageNewConnectionResultFunc result_func, - PageGetConnectionsFunc get_connections_func, - gpointer user_data) -{ - NMConnection *connection; - - connection = ce_page_new_connection (_("Wired connection %d"), - NM_SETTING_WIRED_SETTING_NAME, - TRUE, - get_connections_func, - user_data); - nm_connection_add_setting (connection, nm_setting_wired_new ()); - - (*result_func) (connection, FALSE, NULL, user_data); -} - diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wired.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wired.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-wired.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wired.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Connection editor -- Connection editor for NetworkManager - * - * Dan Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2008 - 2011 Red Hat, Inc. - */ - -#ifndef __PAGE_WIRED_H__ -#define __PAGE_WIRED_H__ - -#include - -#include -#include - -#include "ce-page.h" - -#define CE_TYPE_PAGE_WIRED (ce_page_wired_get_type ()) -#define CE_PAGE_WIRED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_WIRED, CEPageWired)) -#define CE_PAGE_WIRED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_WIRED, CEPageWiredClass)) -#define CE_IS_PAGE_WIRED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_WIRED)) -#define CE_IS_PAGE_WIRED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_PAGE_WIRED)) -#define CE_PAGE_WIRED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_WIRED, CEPageWiredClass)) - -typedef struct { - CEPage parent; -} CEPageWired; - -typedef struct { - CEPageClass parent; -} CEPageWiredClass; - -GType ce_page_wired_get_type (void); - -CEPage *ce_page_wired_new (NMConnection *connection, - GtkWindow *parent, - NMClient *client, - const char **out_secrets_setting_name, - GError **error); - -void wired_connection_new (GtkWindow *parent, - PageNewConnectionResultFunc result_func, - PageGetConnectionsFunc get_connections_func, - gpointer user_data); - -#endif /* __PAGE_WIRED_H__ */ - diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wireless-security.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wireless-security.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-wireless-security.c 2012-03-17 00:08:40.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wireless-security.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,538 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Connection editor -- Connection editor for NetworkManager - * - * Dan Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2008 - 2011 Red Hat, Inc. - */ - -#include "config.h" - -#include - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "wireless-security.h" -#include "page-wireless.h" -#include "page-wireless-security.h" -#include "nm-connection-editor.h" - - -G_DEFINE_TYPE (CEPageWirelessSecurity, ce_page_wireless_security, CE_TYPE_PAGE) - - -#define S_NAME_COLUMN 0 -#define S_SEC_COLUMN 1 -#define S_ADHOC_VALID_COLUMN 2 - -static gboolean -find_proto (NMSettingWirelessSecurity *sec, const char *item) -{ - guint32 i; - - for (i = 0; i < nm_setting_wireless_security_get_num_protos (sec); i++) { - if (!strcmp (item, nm_setting_wireless_security_get_proto (sec, i))) - return TRUE; - } - return FALSE; -} - -static NMUtilsSecurityType -get_default_type_for_security (NMSettingWirelessSecurity *sec) -{ - const char *key_mgmt, *auth_alg; - - g_return_val_if_fail (sec != NULL, NMU_SEC_NONE); - - key_mgmt = nm_setting_wireless_security_get_key_mgmt (sec); - auth_alg = nm_setting_wireless_security_get_auth_alg (sec); - - /* No IEEE 802.1x */ - if (!strcmp (key_mgmt, "none")) - return NMU_SEC_STATIC_WEP; - - if (!strcmp (key_mgmt, "ieee8021x")) { - if (auth_alg && !strcmp (auth_alg, "leap")) - return NMU_SEC_LEAP; - return NMU_SEC_DYNAMIC_WEP; - } - - if ( !strcmp (key_mgmt, "wpa-none") - || !strcmp (key_mgmt, "wpa-psk")) { - if (find_proto (sec, "rsn")) - return NMU_SEC_WPA2_PSK; - else if (find_proto (sec, "wpa")) - return NMU_SEC_WPA_PSK; - else - return NMU_SEC_WPA_PSK; - } - - if (!strcmp (key_mgmt, "wpa-eap")) { - if (find_proto (sec, "rsn")) - return NMU_SEC_WPA2_ENTERPRISE; - else if (find_proto (sec, "wpa")) - return NMU_SEC_WPA_ENTERPRISE; - else - return NMU_SEC_WPA_ENTERPRISE; - } - - return NMU_SEC_INVALID; -} - -static void -stuff_changed_cb (WirelessSecurity *sec, gpointer user_data) -{ - ce_page_changed (CE_PAGE (user_data)); -} - -static void -wsec_size_group_clear (GtkSizeGroup *group) -{ - GSList *children; - GSList *iter; - - g_return_if_fail (group != NULL); - - children = gtk_size_group_get_widgets (group); - for (iter = children; iter; iter = g_slist_next (iter)) - gtk_size_group_remove_widget (group, GTK_WIDGET (iter->data)); -} - -static WirelessSecurity * -wireless_security_combo_get_active (CEPageWirelessSecurity *self) -{ - GtkTreeIter iter; - GtkTreeModel *model; - WirelessSecurity *sec = NULL; - - model = gtk_combo_box_get_model (self->security_combo); - gtk_combo_box_get_active_iter (self->security_combo, &iter); - gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); - - return sec; -} - -static void -wireless_security_combo_changed (GtkComboBox *combo, - gpointer user_data) -{ - CEPageWirelessSecurity *self = CE_PAGE_WIRELESS_SECURITY (user_data); - GtkWidget *vbox; - GList *elt, *children; - WirelessSecurity *sec; - - vbox = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "wireless_security_vbox")); - g_assert (vbox); - - wsec_size_group_clear (self->group); - - /* Remove any previous wireless security widgets */ - children = gtk_container_get_children (GTK_CONTAINER (vbox)); - for (elt = children; elt; elt = g_list_next (elt)) - gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); - - sec = wireless_security_combo_get_active (self); - if (sec) { - GtkWidget *sec_widget; - GtkWidget *widget, *parent; - - sec_widget = wireless_security_get_widget (sec); - g_assert (sec_widget); - parent = gtk_widget_get_parent (sec_widget); - if (parent) - gtk_container_remove (GTK_CONTAINER (parent), sec_widget); - - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "wireless_security_combo_label")); - gtk_size_group_add_widget (self->group, widget); - wireless_security_add_to_size_group (sec, self->group); - - gtk_container_add (GTK_CONTAINER (vbox), sec_widget); - wireless_security_unref (sec); - } - - ce_page_changed (CE_PAGE (self)); -} - -static void -add_security_item (CEPageWirelessSecurity *self, - WirelessSecurity *sec, - GtkListStore *model, - GtkTreeIter *iter, - const char *text, - gboolean adhoc_valid) -{ - wireless_security_set_changed_notify (sec, stuff_changed_cb, self); - gtk_list_store_append (model, iter); - gtk_list_store_set (model, iter, - S_NAME_COLUMN, text, - S_SEC_COLUMN, sec, - S_ADHOC_VALID_COLUMN, adhoc_valid, - -1); - wireless_security_unref (sec); -} - -static void -set_sensitive (GtkCellLayout *cell_layout, - GtkCellRenderer *cell, - GtkTreeModel *tree_model, - GtkTreeIter *iter, - gpointer data) -{ - gboolean *adhoc = data; - gboolean sensitive = TRUE, adhoc_valid = TRUE; - - gtk_tree_model_get (tree_model, iter, S_ADHOC_VALID_COLUMN, &adhoc_valid, -1); - if (*adhoc && !adhoc_valid) - sensitive = FALSE; - - g_object_set (cell, "sensitive", sensitive, NULL); -} - -static void -finish_setup (CEPageWirelessSecurity *self, gpointer unused, GError *error, gpointer user_data) -{ - CEPage *parent = CE_PAGE (self); - NMSettingWireless *s_wireless; - NMSettingWirelessSecurity *s_wireless_sec; - NMConnection *connection = parent->connection; - gboolean is_adhoc = FALSE; - GtkListStore *sec_model; - GtkTreeIter iter; - const char *mode; - const char *security; - guint32 dev_caps = 0; - NMUtilsSecurityType default_type = NMU_SEC_NONE; - int active = -1; - int item = 0; - GtkComboBox *combo; - GtkCellRenderer *renderer; - - if (error) - return; - - s_wireless = nm_connection_get_setting_wireless (connection); - g_assert (s_wireless); - - combo = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_security_combo"))); - - dev_caps = NM_WIFI_DEVICE_CAP_CIPHER_WEP40 - | NM_WIFI_DEVICE_CAP_CIPHER_WEP104 - | NM_WIFI_DEVICE_CAP_CIPHER_TKIP - | NM_WIFI_DEVICE_CAP_CIPHER_CCMP - | NM_WIFI_DEVICE_CAP_WPA - | NM_WIFI_DEVICE_CAP_RSN; - - mode = nm_setting_wireless_get_mode (s_wireless); - if (mode && !strcmp (mode, "adhoc")) - is_adhoc = TRUE; - self->adhoc = is_adhoc; - - s_wireless_sec = nm_connection_get_setting_wireless_security (connection); - - security = nm_setting_wireless_get_security (s_wireless); - if (!security || strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)) - s_wireless_sec = NULL; - if (s_wireless_sec) - default_type = get_default_type_for_security (s_wireless_sec); - - sec_model = gtk_list_store_new (3, G_TYPE_STRING, wireless_security_get_g_type (), G_TYPE_BOOLEAN); - - if (nm_utils_security_valid (NMU_SEC_NONE, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { - gtk_list_store_append (sec_model, &iter); - gtk_list_store_set (sec_model, &iter, - S_NAME_COLUMN, C_("Wifi/wired security", "None"), - S_ADHOC_VALID_COLUMN, TRUE, - -1); - if (default_type == NMU_SEC_NONE) - active = item; - item++; - } - - if (nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { - WirelessSecurityWEPKey *ws_wep; - NMWepKeyType wep_type = NM_WEP_KEY_TYPE_KEY; - - if (default_type == NMU_SEC_STATIC_WEP) { - NMSettingWirelessSecurity *s_wsec; - - s_wsec = nm_connection_get_setting_wireless_security (connection); - if (s_wsec) - wep_type = nm_setting_wireless_security_get_wep_key_type (s_wsec); - if (wep_type == NM_WEP_KEY_TYPE_UNKNOWN) - wep_type = NM_WEP_KEY_TYPE_KEY; - } - - ws_wep = ws_wep_key_new (connection, NM_WEP_KEY_TYPE_KEY, FALSE, FALSE); - if (ws_wep) { - add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, - &iter, _("WEP 40/128-bit Key (Hex or ASCII)"), - TRUE); - if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_KEY)) - active = item; - item++; - } - - ws_wep = ws_wep_key_new (connection, NM_WEP_KEY_TYPE_PASSPHRASE, FALSE, FALSE); - if (ws_wep) { - add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, - &iter, _("WEP 128-bit Passphrase"), TRUE); - if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_PASSPHRASE)) - active = item; - item++; - } - } - - if (nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { - WirelessSecurityLEAP *ws_leap; - - ws_leap = ws_leap_new (connection, FALSE); - if (ws_leap) { - add_security_item (self, WIRELESS_SECURITY (ws_leap), sec_model, - &iter, _("LEAP"), FALSE); - if ((active < 0) && (default_type == NMU_SEC_LEAP)) - active = item; - item++; - } - } - - if (nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { - WirelessSecurityDynamicWEP *ws_dynamic_wep; - - ws_dynamic_wep = ws_dynamic_wep_new (connection, TRUE, FALSE); - if (ws_dynamic_wep) { - add_security_item (self, WIRELESS_SECURITY (ws_dynamic_wep), sec_model, - &iter, _("Dynamic WEP (802.1x)"), FALSE); - if ((active < 0) && (default_type == NMU_SEC_DYNAMIC_WEP)) - active = item; - item++; - } - } - - if ( nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, FALSE, is_adhoc, 0, 0, 0) - || nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { - WirelessSecurityWPAPSK *ws_wpa_psk; - - ws_wpa_psk = ws_wpa_psk_new (connection, FALSE); - if (ws_wpa_psk) { - add_security_item (self, WIRELESS_SECURITY (ws_wpa_psk), sec_model, - &iter, _("WPA & WPA2 Personal"), FALSE); - if ((active < 0) && ((default_type == NMU_SEC_WPA_PSK) || (default_type == NMU_SEC_WPA2_PSK))) - active = item; - item++; - } - } - - if ( nm_utils_security_valid (NMU_SEC_WPA_ENTERPRISE, dev_caps, FALSE, is_adhoc, 0, 0, 0) - || nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { - WirelessSecurityWPAEAP *ws_wpa_eap; - - ws_wpa_eap = ws_wpa_eap_new (connection, TRUE, FALSE); - if (ws_wpa_eap) { - add_security_item (self, WIRELESS_SECURITY (ws_wpa_eap), sec_model, - &iter, _("WPA & WPA2 Enterprise"), FALSE); - if ((active < 0) && ((default_type == NMU_SEC_WPA_ENTERPRISE) || (default_type == NMU_SEC_WPA2_ENTERPRISE))) - active = item; - item++; - } - } - - gtk_combo_box_set_model (combo, GTK_TREE_MODEL (sec_model)); - gtk_cell_layout_clear (GTK_CELL_LAYOUT (combo)); - - renderer = gtk_cell_renderer_text_new (); - gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); - gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", S_NAME_COLUMN, NULL); - gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, set_sensitive, &self->adhoc, NULL); - - gtk_combo_box_set_active (combo, active < 0 ? 0 : (guint32) active); - g_object_unref (G_OBJECT (sec_model)); - - self->security_combo = combo; - - wireless_security_combo_changed (combo, self); - g_signal_connect (combo, "changed", - G_CALLBACK (wireless_security_combo_changed), - self); -} - -CEPage * -ce_page_wireless_security_new (NMConnection *connection, - GtkWindow *parent_window, - NMClient *client, - const char **out_secrets_setting_name, - GError **error) -{ - CEPageWirelessSecurity *self; - NMSettingWireless *s_wireless; - NMSettingWirelessSecurity *s_wsec = NULL; - NMUtilsSecurityType default_type = NMU_SEC_NONE; - const char *security; - - s_wireless = nm_connection_get_setting_wireless (connection); - if (!s_wireless) { - g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load WiFi security user interface; missing WiFi setting.")); - return NULL; - } - - self = CE_PAGE_WIRELESS_SECURITY (ce_page_new (CE_TYPE_PAGE_WIRELESS_SECURITY, - connection, - parent_window, - client, - UIDIR "/ce-page-wireless-security.ui", - "WirelessSecurityPage", - _("Wireless Security"))); - if (!self) { - g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load WiFi security user interface.")); - return NULL; - } - - self->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - - s_wsec = nm_connection_get_setting_wireless_security (connection); - - security = nm_setting_wireless_get_security (s_wireless); - if (!security || strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)) - s_wsec = NULL; - if (s_wsec) - default_type = get_default_type_for_security (s_wsec); - - /* Get secrets if the connection is not 802.1x enabled */ - if ( default_type == NMU_SEC_STATIC_WEP - || default_type == NMU_SEC_LEAP - || default_type == NMU_SEC_WPA_PSK - || default_type == NMU_SEC_WPA2_PSK) { - *out_secrets_setting_name = NM_SETTING_WIRELESS_SECURITY_SETTING_NAME; - } - - /* Or if it is 802.1x enabled */ - if ( default_type == NMU_SEC_DYNAMIC_WEP - || default_type == NMU_SEC_WPA_ENTERPRISE - || default_type == NMU_SEC_WPA2_ENTERPRISE) { - *out_secrets_setting_name = NM_SETTING_802_1X_SETTING_NAME; - } - - g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); - - return CE_PAGE (self); -} - -static void -ce_page_wireless_security_init (CEPageWirelessSecurity *self) -{ - self->disposed = FALSE; -} - -static void -dispose (GObject *object) -{ - CEPageWirelessSecurity *self = CE_PAGE_WIRELESS_SECURITY (object); - - if (self->disposed) - return; - - self->disposed = TRUE; - - if (self->group) - g_object_unref (self->group); - - G_OBJECT_CLASS (ce_page_wireless_security_parent_class)->dispose (object); -} - -static gboolean -validate (CEPage *page, NMConnection *connection, GError **error) -{ - CEPageWirelessSecurity *self = CE_PAGE_WIRELESS_SECURITY (page); - NMSettingWireless *s_wireless; - WirelessSecurity *sec; - gboolean valid = FALSE; - const char *mode; - - s_wireless = nm_connection_get_setting_wireless (connection); - g_assert (s_wireless); - - /* Kernel Ad-Hoc WPA support is busted; it creates open networks. Disable - * WPA when Ad-Hoc is selected. set_sensitive() will pick up self->adhoc - * and do the right thing. - */ - mode = nm_setting_wireless_get_mode (s_wireless); - if (g_strcmp0 (mode, NM_SETTING_WIRELESS_MODE_ADHOC) == 0) - self->adhoc = TRUE; - else - self->adhoc = FALSE; - - sec = wireless_security_combo_get_active (self); - if (sec) { - const GByteArray *ssid = nm_setting_wireless_get_ssid (s_wireless); - - if (ssid) { - /* FIXME: get failed property and error out of wireless security objects */ - valid = wireless_security_validate (sec, ssid); - if (valid) - wireless_security_fill_connection (sec, connection); - else - g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Invalid wireless security"); - } else { - g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Missing SSID"); - valid = FALSE; - } - - if (self->adhoc) { - if (!wireless_security_adhoc_compatible (sec)) { - g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Security not compatible with Ad-Hoc mode"); - valid = FALSE; - } - } - } else { - /* No security, unencrypted */ - g_object_set (s_wireless, NM_SETTING_WIRELESS_SEC, NULL, NULL); - nm_connection_remove_setting (connection, NM_TYPE_SETTING_WIRELESS_SECURITY); - nm_connection_remove_setting (connection, NM_TYPE_SETTING_802_1X); - valid = TRUE; - } - - return valid; -} - -static GtkWidget * -nag_user (CEPage *page) -{ - WirelessSecurity *sec; - - sec = wireless_security_combo_get_active (CE_PAGE_WIRELESS_SECURITY (page)); - return sec ? wireless_security_nag_user (sec) : NULL; -} - -static void -ce_page_wireless_security_class_init (CEPageWirelessSecurityClass *wireless_security_class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (wireless_security_class); - CEPageClass *parent_class = CE_PAGE_CLASS (wireless_security_class); - - /* virtual methods */ - object_class->dispose = dispose; - - parent_class->validate = validate; - parent_class->nag_user = nag_user; -} diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wireless-security.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wireless-security.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-wireless-security.h 2012-03-16 22:03:57.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wireless-security.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Connection editor -- Connection editor for NetworkManager - * - * Dan Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2008 - 2011 Red Hat, Inc. - */ - -#ifndef __PAGE_WIRELESS_SECURITY_H__ -#define __PAGE_WIRELESS_SECURITY_H__ - -#include "nm-connection-editor.h" - -#include - -#include -#include -#include - -#include "ce-page.h" - -#define CE_TYPE_PAGE_WIRELESS_SECURITY (ce_page_wireless_security_get_type ()) -#define CE_PAGE_WIRELESS_SECURITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_WIRELESS_SECURITY, CEPageWirelessSecurity)) -#define CE_PAGE_WIRELESS_SECURITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_WIRELESS_SECURITY, CEPageWirelessSecurityClass)) -#define CE_IS_PAGE_WIRELESS_SECURITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_WIRELESS_SECURITY)) -#define CE_IS_PAGE_WIRELESS_SECURITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_PAGE_WIRELESS_SECURITY)) -#define CE_PAGE_WIRELESS_SECURITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_WIRELESS_SECURITY, CEPageWirelessSecurityClass)) - -typedef struct { - CEPage parent; - - gboolean disposed; - GtkSizeGroup *group; - GtkComboBox *security_combo; - gboolean adhoc; -} CEPageWirelessSecurity; - -typedef struct { - CEPageClass parent; -} CEPageWirelessSecurityClass; - -GType ce_page_wireless_security_get_type (void); - -CEPage *ce_page_wireless_security_new (NMConnection *connection, - GtkWindow *parent, - NMClient *client, - const char **out_secrets_setting_name, - GError **error); - -#endif /* __PAGE_WIRELESS_SECURITY_H__ */ - diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wireless.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wireless.c --- network-manager-applet-0.9.4.1/src/connection-editor/page-wireless.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wireless.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,675 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Connection editor -- Connection editor for NetworkManager - * - * Dan Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2008 - 2010 Red Hat, Inc. - */ - -#include "config.h" - -#include -#include - -#include -#include - -#include -#include -#include -#include - -#include "page-wireless.h" - -G_DEFINE_TYPE (CEPageWireless, ce_page_wireless, CE_TYPE_PAGE) - -#define CE_PAGE_WIRELESS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CE_TYPE_PAGE_WIRELESS, CEPageWirelessPrivate)) - -typedef struct { - NMSettingWireless *setting; - - GtkEntry *ssid; - GtkEntry *bssid; -#if GTK_CHECK_VERSION (2,24,0) - GtkComboBoxText *device_mac; /* Permanent MAC of the device */ -#else - GtkComboBoxEntry *device_mac; -#endif - GtkEntry *cloned_mac; /* Cloned MAC - used for MAC spoofing */ - GtkComboBox *mode; - GtkComboBox *band; - GtkSpinButton *channel; - GtkSpinButton *rate; - GtkSpinButton *tx_power; - GtkSpinButton *mtu; - - GtkSizeGroup *group; - - int last_channel; - gboolean disposed; -} CEPageWirelessPrivate; - -static void -wireless_private_init (CEPageWireless *self) -{ - CEPageWirelessPrivate *priv = CE_PAGE_WIRELESS_GET_PRIVATE (self); - GtkBuilder *builder; - GtkWidget *widget; - GtkWidget *align; - GtkLabel *label; - - builder = CE_PAGE (self)->builder; - - priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - - priv->ssid = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_ssid"))); - priv->bssid = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_bssid"))); - priv->cloned_mac = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_cloned_mac"))); - priv->mode = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_mode"))); - priv->band = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_band"))); - priv->channel = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_channel"))); - -#if GTK_CHECK_VERSION(2,24,0) - priv->device_mac = GTK_COMBO_BOX_TEXT (gtk_combo_box_text_new_with_entry ()); - gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX (priv->device_mac), 0); -#else - priv->device_mac = GTK_COMBO_BOX_ENTRY (gtk_combo_box_entry_new_text ()); - gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (priv->device_mac), 0); -#endif - gtk_widget_set_tooltip_text (GTK_WIDGET (priv->device_mac), - _("This option locks this connection to the network device specified by its permanent MAC address entered here. Example: 00:11:22:33:44:55")); - - align = GTK_WIDGET (gtk_builder_get_object (builder, "wireless_device_mac_alignment")); - gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (priv->device_mac)); - gtk_widget_show_all (GTK_WIDGET (priv->device_mac)); - - /* Set mnemonic widget for device MAC label */ - label = GTK_LABEL (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_device_mac_label"))); - gtk_label_set_mnemonic_widget (label, GTK_WIDGET (priv->device_mac)); - - priv->rate = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_rate"))); - widget = GTK_WIDGET (gtk_builder_get_object (builder, "rate_units")); - gtk_size_group_add_widget (priv->group, widget); - - priv->tx_power = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_tx_power"))); - widget = GTK_WIDGET (gtk_builder_get_object (builder, "tx_power_units")); - gtk_size_group_add_widget (priv->group, widget); - - priv->mtu = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_mtu"))); - widget = GTK_WIDGET (gtk_builder_get_object (builder, "mtu_units")); - gtk_size_group_add_widget (priv->group, widget); -} - -static gboolean -band_helper (CEPageWireless *self, gboolean *aband, gboolean *gband) -{ - CEPageWirelessPrivate *priv = CE_PAGE_WIRELESS_GET_PRIVATE (self); - - switch (gtk_combo_box_get_active (priv->band)) { - case 1: /* A */ - *gband = FALSE; - return TRUE; - case 2: /* B/G */ - *aband = FALSE; - return TRUE; - default: - return FALSE; - } -} - -static gint -channel_spin_input_cb (GtkSpinButton *spin, gdouble *new_val, gpointer user_data) -{ - CEPageWireless *self = CE_PAGE_WIRELESS (user_data); - gdouble channel; - guint32 int_channel = 0; - gboolean aband = TRUE; - gboolean gband = TRUE; - - if (!band_helper (self, &aband, &gband)) - return GTK_INPUT_ERROR; - - channel = g_strtod (gtk_entry_get_text (GTK_ENTRY (spin)), NULL); - if (channel - floor (channel) < ceil (channel) - channel) - int_channel = floor (channel); - else - int_channel = ceil (channel); - - if (nm_utils_wifi_channel_to_freq (int_channel, aband ? "a" : "bg") == -1) - return GTK_INPUT_ERROR; - - *new_val = channel; - return 1; -} - -static gint -channel_spin_output_cb (GtkSpinButton *spin, gpointer user_data) -{ - CEPageWireless *self = CE_PAGE_WIRELESS (user_data); - CEPageWirelessPrivate *priv = CE_PAGE_WIRELESS_GET_PRIVATE (self); - int channel; - gchar *buf = NULL; - guint32 freq; - gboolean aband = TRUE; - gboolean gband = TRUE; - - if (!band_helper (self, &aband, &gband)) - buf = g_strdup (_("default")); - else { - channel = gtk_spin_button_get_value_as_int (spin); - if (channel == 0) - buf = g_strdup (_("default")); - else { - int direction = 0; - freq = nm_utils_wifi_channel_to_freq (channel, aband ? "a" : "bg"); - if (freq == -1) { - if (priv->last_channel < channel) - direction = 1; - else if (priv->last_channel > channel) - direction = -1; - channel = nm_utils_wifi_find_next_channel (channel, direction, aband ? "a" : "bg"); - gtk_spin_button_set_value (spin, channel); - freq = nm_utils_wifi_channel_to_freq (channel, aband ? "a" : "bg"); - if (freq == -1) { - g_warning ("%s: invalid channel %d!", __func__, channel); - gtk_spin_button_set_value (spin, 0); - goto out; - } - - } - /* Set spin button to zero to go to "default" from the lowest channel */ - if (direction == -1 && priv->last_channel == channel) { - buf = g_strdup_printf (_("default")); - gtk_spin_button_set_value (spin, 0); - channel = 0; - } else - buf = g_strdup_printf (_("%u (%u MHz)"), channel, freq); - } - priv->last_channel = channel; - } - - if (strcmp (buf, gtk_entry_get_text (GTK_ENTRY (spin)))) - gtk_entry_set_text (GTK_ENTRY (spin), buf); - -out: - g_free (buf); - return 1; -} - -static void -band_value_changed_cb (GtkComboBox *box, gpointer user_data) -{ - CEPageWireless *self = CE_PAGE_WIRELESS (user_data); - CEPageWirelessPrivate *priv = CE_PAGE_WIRELESS_GET_PRIVATE (self); - gboolean sensitive; - - priv->last_channel = 0; - gtk_spin_button_set_value (priv->channel, 0); - - switch (gtk_combo_box_get_active (GTK_COMBO_BOX (box))) { - case 1: /* A */ - case 2: /* B/G */ - sensitive = TRUE; - break; - default: - sensitive = FALSE; - break; - } - - gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), sensitive); - - ce_page_changed (CE_PAGE (self)); -} - -static void -mode_combo_changed_cb (GtkComboBox *combo, - gpointer user_data) -{ - CEPageWireless *self = CE_PAGE_WIRELESS (user_data); - CEPageWirelessPrivate *priv = CE_PAGE_WIRELESS_GET_PRIVATE (self); - CEPage *parent = CE_PAGE (self); - GtkWidget *widget; - gboolean show; - - switch (gtk_combo_box_get_active (GTK_COMBO_BOX (combo))) { - case 1: /* adhoc */ - show = TRUE; - break; - default: /* infrastructure */ - show = FALSE; - break; - } - - if (show) { - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_band_label")); - gtk_widget_show (widget); - gtk_widget_show (GTK_WIDGET (priv->band)); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_channel_label")); - gtk_widget_show (widget); - gtk_widget_show (GTK_WIDGET (priv->channel)); - } else { - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_band_label")); - gtk_widget_hide (widget); - gtk_widget_hide (GTK_WIDGET (priv->band)); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_channel_label")); - gtk_widget_hide (widget); - gtk_widget_hide (GTK_WIDGET (priv->channel)); - } - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_band_label")); - gtk_widget_set_sensitive (GTK_WIDGET (widget), show); - gtk_widget_set_sensitive (GTK_WIDGET (priv->band), show); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_channel_label")); - gtk_widget_set_sensitive (GTK_WIDGET (widget), show); - gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), show); - - ce_page_changed (CE_PAGE (self)); -} - -static void -populate_ui (CEPageWireless *self) -{ - CEPageWirelessPrivate *priv = CE_PAGE_WIRELESS_GET_PRIVATE (self); - NMSettingWireless *setting = priv->setting; - const GByteArray *ssid = NULL; - const char *mode = NULL; - const char *band = NULL; - int band_idx = 0; - int rate_def; - int tx_power_def; - int mtu_def; - char *utf8_ssid; - char **mac_list, **iter; - const GByteArray *s_mac; - char *s_mac_str; - char *active_mac = NULL; - GtkWidget *entry; - - rate_def = ce_get_property_default (NM_SETTING (setting), NM_SETTING_WIRELESS_RATE); - g_signal_connect (priv->rate, "output", - G_CALLBACK (ce_spin_output_with_default), - GINT_TO_POINTER (rate_def)); - g_signal_connect_swapped (priv->rate, "value-changed", G_CALLBACK (ce_page_changed), self); - - tx_power_def = ce_get_property_default (NM_SETTING (setting), NM_SETTING_WIRELESS_TX_POWER); - g_signal_connect (priv->tx_power, "output", - G_CALLBACK (ce_spin_output_with_default), - GINT_TO_POINTER (tx_power_def)); - g_signal_connect_swapped (priv->tx_power, "value-changed", G_CALLBACK (ce_page_changed), self); - - mtu_def = ce_get_property_default (NM_SETTING (setting), NM_SETTING_WIRELESS_MTU); - g_signal_connect (priv->mtu, "output", - G_CALLBACK (ce_spin_output_with_default), - GINT_TO_POINTER (mtu_def)); - g_signal_connect_swapped (priv->mtu, "value-changed", G_CALLBACK (ce_page_changed), self); - - g_object_get (setting, - NM_SETTING_WIRELESS_SSID, &ssid, - NM_SETTING_WIRELESS_MODE, &mode, - NM_SETTING_WIRELESS_BAND, &band, - NULL); - - if (ssid) - utf8_ssid = nm_utils_ssid_to_utf8 (ssid); - else - utf8_ssid = g_strdup (""); - gtk_entry_set_text (priv->ssid, utf8_ssid); - g_signal_connect_swapped (priv->ssid, "changed", G_CALLBACK (ce_page_changed), self); - g_free (utf8_ssid); - - /* Default to Infrastructure */ - gtk_combo_box_set_active (priv->mode, 0); - if (mode && !strcmp (mode, "adhoc")) - gtk_combo_box_set_active (priv->mode, 1); - mode_combo_changed_cb (priv->mode, self); - g_signal_connect (priv->mode, "changed", G_CALLBACK (mode_combo_changed_cb), self); - - g_signal_connect (priv->channel, "output", - G_CALLBACK (channel_spin_output_cb), - self); - g_signal_connect (priv->channel, "input", - G_CALLBACK (channel_spin_input_cb), - self); - - gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), FALSE); - if (band) { - if (!strcmp (band ? band : "", "a")) { - band_idx = 1; - gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), TRUE); - } else if (!strcmp (band ? band : "", "bg")) { - band_idx = 2; - gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), TRUE); - } - } - - gtk_combo_box_set_active (priv->band, band_idx); - g_signal_connect (priv->band, "changed", - G_CALLBACK (band_value_changed_cb), - self); - - /* Update the channel _after_ the band has been set so that it gets - * the right values */ - priv->last_channel = nm_setting_wireless_get_channel (setting); - gtk_spin_button_set_value (priv->channel, (gdouble) priv->last_channel); - g_signal_connect_swapped (priv->channel, "value-changed", G_CALLBACK (ce_page_changed), self); - - /* BSSID */ - ce_page_mac_to_entry (nm_setting_wireless_get_bssid (setting), priv->bssid); - g_signal_connect_swapped (priv->bssid, "changed", G_CALLBACK (ce_page_changed), self); - - /* Device MAC address */ - mac_list = ce_page_get_mac_list (CE_PAGE (self)); - s_mac = nm_setting_wireless_get_mac_address (setting); - s_mac_str = s_mac ? g_strdup_printf ("%02X:%02X:%02X:%02X:%02X:%02X", - s_mac->data[0], s_mac->data[1], s_mac->data[2], - s_mac->data[3], s_mac->data[4], s_mac->data[5]): - NULL; - - for (iter = mac_list; iter && *iter; iter++) { -#if GTK_CHECK_VERSION (2,24,0) - gtk_combo_box_text_append_text (priv->device_mac, *iter); -#else - gtk_combo_box_append_text (GTK_COMBO_BOX (priv->device_mac), *iter); -#endif - if (s_mac_str && g_ascii_strncasecmp (*iter, s_mac_str, 17) == 0) - active_mac = *iter; - } - - if (s_mac_str) { - if (!active_mac) { -#if GTK_CHECK_VERSION (2,24,0) - gtk_combo_box_text_prepend_text (priv->device_mac, s_mac_str); -#else - gtk_combo_box_prepend_text (GTK_COMBO_BOX (priv->device_mac), s_mac_str); -#endif - } - - entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); - if (entry) - gtk_entry_set_text (GTK_ENTRY (entry), active_mac ? active_mac : s_mac_str); - } - g_strfreev (mac_list); - g_signal_connect_swapped (priv->device_mac, "changed", G_CALLBACK (ce_page_changed), self); - - /* Cloned MAC address */ - ce_page_mac_to_entry (nm_setting_wireless_get_cloned_mac_address (setting), priv->cloned_mac); - g_signal_connect_swapped (priv->cloned_mac, "changed", G_CALLBACK (ce_page_changed), self); - - gtk_spin_button_set_value (priv->rate, (gdouble) nm_setting_wireless_get_rate (setting)); - gtk_spin_button_set_value (priv->tx_power, (gdouble) nm_setting_wireless_get_tx_power (setting)); - gtk_spin_button_set_value (priv->mtu, (gdouble) nm_setting_wireless_get_mtu (setting)); -} - -static void -finish_setup (CEPageWireless *self, gpointer unused, GError *error, gpointer user_data) -{ - CEPage *parent = CE_PAGE (self); - GtkWidget *widget; - - if (error) - return; - - populate_ui (self); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_tx_power_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_tx_power_hbox")); - gtk_widget_hide (widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_rate_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_rate_hbox")); - gtk_widget_hide (widget); -} - -CEPage * -ce_page_wireless_new (NMConnection *connection, - GtkWindow *parent_window, - NMClient *client, - const char **out_secrets_setting_name, - GError **error) -{ - CEPageWireless *self; - CEPageWirelessPrivate *priv; - - g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); - - self = CE_PAGE_WIRELESS (ce_page_new (CE_TYPE_PAGE_WIRELESS, - connection, - parent_window, - client, - UIDIR "/ce-page-wireless.ui", - "WirelessPage", - _("Wireless"))); - if (!self) { - g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load WiFi user interface.")); - return NULL; - } - - wireless_private_init (self); - priv = CE_PAGE_WIRELESS_GET_PRIVATE (self); - - priv->setting = nm_connection_get_setting_wireless (connection); - if (!priv->setting) { - priv->setting = NM_SETTING_WIRELESS (nm_setting_wireless_new ()); - nm_connection_add_setting (connection, NM_SETTING (priv->setting)); - } - - g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); - - return CE_PAGE (self); -} - -GByteArray * -ce_page_wireless_get_ssid (CEPageWireless *self) -{ - CEPageWirelessPrivate *priv; - const char *txt_ssid; - GByteArray *ssid; - - g_return_val_if_fail (CE_IS_PAGE_WIRELESS (self), NULL); - - priv = CE_PAGE_WIRELESS_GET_PRIVATE (self); - txt_ssid = gtk_entry_get_text (priv->ssid); - if (!txt_ssid || !strlen (txt_ssid)) - return NULL; - - ssid = g_byte_array_sized_new (strlen (txt_ssid)); - g_byte_array_append (ssid, (const guint8 *) txt_ssid, strlen (txt_ssid)); - - return ssid; -} - -static void -ui_to_setting (CEPageWireless *self) -{ - CEPageWirelessPrivate *priv = CE_PAGE_WIRELESS_GET_PRIVATE (self); - GByteArray *ssid; - GByteArray *bssid = NULL; - GByteArray *device_mac = NULL; - GByteArray *cloned_mac = NULL; - const char *mode; - const char *band; - GtkWidget *entry; - - ssid = ce_page_wireless_get_ssid (self); - - if (gtk_combo_box_get_active (priv->mode) == 1) - mode = "adhoc"; - else - mode = "infrastructure"; - - switch (gtk_combo_box_get_active (priv->band)) { - case 1: - band = "a"; - break; - case 2: - band = "bg"; - break; - case 0: - default: - band = NULL; - break; - } - - bssid = ce_page_entry_to_mac (priv->bssid, NULL); - entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); - if (entry) - device_mac = ce_page_entry_to_mac (GTK_ENTRY (entry), NULL); - cloned_mac = ce_page_entry_to_mac (priv->cloned_mac, NULL); - - g_object_set (priv->setting, - NM_SETTING_WIRELESS_SSID, ssid, - NM_SETTING_WIRELESS_BSSID, bssid, - NM_SETTING_WIRELESS_MAC_ADDRESS, device_mac, - NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, cloned_mac, - NM_SETTING_WIRELESS_MODE, mode, - NM_SETTING_WIRELESS_BAND, band, - NM_SETTING_WIRELESS_CHANNEL, gtk_spin_button_get_value_as_int (priv->channel), - NM_SETTING_WIRELESS_RATE, gtk_spin_button_get_value_as_int (priv->rate), - NM_SETTING_WIRELESS_TX_POWER, gtk_spin_button_get_value_as_int (priv->tx_power), - NM_SETTING_WIRELESS_MTU, gtk_spin_button_get_value_as_int (priv->mtu), - NULL); - - if (ssid) - g_byte_array_free (ssid, TRUE); - if (device_mac) - g_byte_array_free (device_mac, TRUE); - if (cloned_mac) - g_byte_array_free (cloned_mac, TRUE); - if (bssid) - g_byte_array_free (bssid, TRUE); -} - -static gboolean -validate (CEPage *page, NMConnection *connection, GError **error) -{ - CEPageWireless *self = CE_PAGE_WIRELESS (page); - CEPageWirelessPrivate *priv = CE_PAGE_WIRELESS_GET_PRIVATE (self); - char *security; - gboolean success; - gboolean invalid = FALSE; - GByteArray *ignore; - GtkWidget *entry; - - ignore = ce_page_entry_to_mac (priv->bssid, &invalid); - if (invalid) - return FALSE; - if (ignore) - g_byte_array_free (ignore, TRUE); - - entry = gtk_bin_get_child (GTK_BIN (priv->device_mac)); - if (entry) { - ignore = ce_page_entry_to_mac (GTK_ENTRY (entry), &invalid); - if (invalid) - return FALSE; - if (ignore) - g_byte_array_free (ignore, TRUE); - } - - ignore = ce_page_entry_to_mac (priv->cloned_mac, &invalid); - if (invalid) - return FALSE; - if (ignore) - g_byte_array_free (ignore, TRUE); - - ui_to_setting (self); - - /* A hack to not check the wireless security here */ - security = g_strdup (nm_setting_wireless_get_security (priv->setting)); - g_object_set (priv->setting, NM_SETTING_WIRELESS_SEC, NULL, NULL); - - success = nm_setting_verify (NM_SETTING (priv->setting), NULL, error); - g_object_set (priv->setting, NM_SETTING_WIRELESS_SEC, security, NULL); - g_free (security); - - return success; -} - -static char ** -get_mac_list (CEPage *page) -{ - const GPtrArray *devices; - GString *mac_str; - char **mac_list; - int i; - - if (!page->client) - return NULL; - - mac_str = g_string_new (NULL); - devices = nm_client_get_devices (page->client); - for (i = 0; devices && (i < devices->len); i++) { - const char *mac, *iface; - NMDevice *dev = g_ptr_array_index (devices, i); - - if (!NM_IS_DEVICE_WIFI (dev)) - continue; - - mac = nm_device_wifi_get_permanent_hw_address (NM_DEVICE_WIFI (dev)); - iface = nm_device_get_iface (NM_DEVICE (dev)); - g_string_append_printf (mac_str, "%s (%s),", mac, iface); - } - g_string_truncate (mac_str, mac_str->len-1); - - mac_list = g_strsplit (mac_str->str, ",", 0); - g_string_free (mac_str, TRUE); - - return mac_list; -} - -static void -ce_page_wireless_init (CEPageWireless *self) -{ -} - -static void -ce_page_wireless_class_init (CEPageWirelessClass *wireless_class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (wireless_class); - CEPageClass *parent_class = CE_PAGE_CLASS (wireless_class); - - g_type_class_add_private (object_class, sizeof (CEPageWirelessPrivate)); - - /* virtual methods */ - parent_class->validate = validate; - parent_class->get_mac_list = get_mac_list; -} - - -void -wifi_connection_new (GtkWindow *parent, - PageNewConnectionResultFunc result_func, - PageGetConnectionsFunc get_connections_func, - gpointer user_data) -{ - NMConnection *connection; - NMSetting *s_wifi; - - connection = ce_page_new_connection (_("Wireless connection %d"), - NM_SETTING_WIRELESS_SETTING_NAME, - TRUE, - get_connections_func, - user_data); - s_wifi = nm_setting_wireless_new (); - g_object_set (s_wifi, NM_SETTING_WIRELESS_MODE, "infrastructure", NULL); - nm_connection_add_setting (connection, s_wifi); - - (*result_func) (connection, FALSE, NULL, user_data); -} - - diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/page-wireless.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wireless.h --- network-manager-applet-0.9.4.1/src/connection-editor/page-wireless.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/page-wireless.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Connection editor -- Connection editor for NetworkManager - * - * Dan Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2008 - 2011 Red Hat, Inc. - */ - -#ifndef __PAGE_WIRELESS_H__ -#define __PAGE_WIRELESS_H__ - -#include - -#include -#include - -#include "ce-page.h" - -#define CE_TYPE_PAGE_WIRELESS (ce_page_wireless_get_type ()) -#define CE_PAGE_WIRELESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE_WIRELESS, CEPageWireless)) -#define CE_PAGE_WIRELESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE_WIRELESS, CEPageWirelessClass)) -#define CE_IS_PAGE_WIRELESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE_WIRELESS)) -#define CE_IS_PAGE_WIRELESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), CE_TYPE_PAGE_WIRELESS)) -#define CE_PAGE_WIRELESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE_WIRELESS, CEPageWirelessClass)) - -typedef struct { - CEPage parent; -} CEPageWireless; - -typedef struct { - CEPageClass parent; -} CEPageWirelessClass; - -GType ce_page_wireless_get_type (void); - -CEPage *ce_page_wireless_new (NMConnection *connection, - GtkWindow *parent, - NMClient *client, - const char **out_secrets_setting_name, - GError **error); - -/* Caller must free returned array */ -GByteArray *ce_page_wireless_get_ssid (CEPageWireless *self); - - -void wifi_connection_new (GtkWindow *parent, - PageNewConnectionResultFunc result_func, - PageGetConnectionsFunc get_connections_func, - gpointer user_data); - -#endif /* __PAGE_WIRELESS_H__ */ - diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/vpn-helpers.c network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/vpn-helpers.c --- network-manager-applet-0.9.4.1/src/connection-editor/vpn-helpers.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/vpn-helpers.c 2012-10-31 13:20:57.000000000 +0000 @@ -163,30 +163,6 @@ return plugins; } - -typedef struct { - char *filename; - NMConnection *connection; - GError *error; -} VpnImportInfo; - -static void -try_import (gpointer key, gpointer value, gpointer user_data) -{ - VpnImportInfo *info = user_data; - NMVpnPluginUiInterface *plugin = NM_VPN_PLUGIN_UI_INTERFACE (value); - - if (info->connection) - return; - - if (info->error) { - g_error_free (info->error); - info->error = NULL; - } - - info->connection = nm_vpn_plugin_ui_interface_import (plugin, info->filename, &(info->error)); -} - typedef struct { VpnImportSuccessCallback callback; gpointer user_data; @@ -197,8 +173,11 @@ { char *filename = NULL; ActionInfo *info = (ActionInfo *) user_data; - VpnImportInfo import_info; - NMConnection *connection; + GHashTableIter iter; + gpointer key; + NMVpnPluginUiInterface *plugin; + NMConnection *connection = NULL; + GError *error = NULL; if (response != GTK_RESPONSE_ACCEPT) goto out; @@ -209,12 +188,12 @@ goto out; } - import_info.filename = filename; - import_info.connection = NULL; - import_info.error = NULL; - g_hash_table_foreach (plugins, try_import, (gpointer) &import_info); + g_hash_table_iter_init (&iter, plugins); + while (!connection && g_hash_table_iter_next (&iter, &key, (gpointer *)&plugin)) { + g_clear_error (&error); + connection = nm_vpn_plugin_ui_interface_import (plugin, filename, &error); + } - connection = import_info.connection; if (connection) info->callback (connection, info->user_data); else { @@ -228,7 +207,7 @@ _("Cannot import VPN connection")); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (err_dialog), _("The file '%s' could not be read or does not contain recognized VPN connection information\n\nError: %s."), - bname, import_info.error ? import_info.error->message : "unknown error"); + bname, error ? error->message : "unknown error"); g_free (bname); g_signal_connect (err_dialog, "delete-event", G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (err_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); @@ -236,8 +215,7 @@ gtk_window_present (GTK_WINDOW (err_dialog)); } - if (import_info.error) - g_error_free (import_info.error); + g_clear_error (&error); g_free (filename); out: @@ -266,8 +244,8 @@ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); - home_folder = g_get_home_dir (); - gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), home_folder); + home_folder = g_get_home_dir (); + gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), home_folder); info = g_malloc0 (sizeof (ActionInfo)); info->callback = callback; @@ -414,141 +392,23 @@ gtk_window_present (GTK_WINDOW (dialog)); } -static void -add_plugins_to_list (gpointer key, gpointer data, gpointer user_data) -{ - GSList **list = (GSList **) user_data; - - *list = g_slist_append (*list, NM_VPN_PLUGIN_UI_INTERFACE (data)); -} - -static gint -sort_plugins (gconstpointer a, gconstpointer b) -{ - NMVpnPluginUiInterface *aa = NM_VPN_PLUGIN_UI_INTERFACE (a); - NMVpnPluginUiInterface *bb = NM_VPN_PLUGIN_UI_INTERFACE (b); - const char *aa_desc = NULL, *bb_desc = NULL; - - g_object_get (aa, NM_VPN_PLUGIN_UI_INTERFACE_NAME, &aa_desc, NULL); - g_object_get (bb, NM_VPN_PLUGIN_UI_INTERFACE_NAME, &bb_desc, NULL); - - if (!aa_desc) - return -1; - if (!bb_desc) - return 1; - - return strcmp (aa_desc, bb_desc); -} - -#define COL_PLUGIN_DESC 0 -#define COL_PLUGIN_OBJ 1 - -static void -combo_changed_cb (GtkComboBox *combo, gpointer user_data) +gboolean +vpn_supports_ipv6 (NMConnection *connection) { - GtkLabel *label = GTK_LABEL (user_data); - GtkTreeModel *model; - GtkTreeIter iter; - NMVpnPluginUiInterface *plugin = NULL; - const char *desc = NULL; - char *tmp; - - if (!gtk_combo_box_get_active_iter (combo, &iter)) - goto error; - - model = gtk_combo_box_get_model (combo); - if (!model) - goto error; - - gtk_tree_model_get (model, &iter, COL_PLUGIN_OBJ, &plugin, -1); - if (!plugin) - goto error; - - g_object_get (G_OBJECT (plugin), NM_VPN_PLUGIN_UI_INTERFACE_DESC, &desc, NULL); - if (!desc) - goto error; - - tmp = g_strdup_printf ("%s", desc); - gtk_label_set_markup (label, tmp); - g_free (tmp); - return; - -error: - gtk_label_set_text (label, ""); -} - -char * -vpn_ask_connection_type (GtkWindow *parent) -{ - GtkBuilder *builder; - GtkWidget *dialog, *combo, *widget; - GtkTreeModel *model; - GSList *plugin_list = NULL, *iter; - gint response; - GtkTreeIter tree_iter; - char *service_type = NULL; - GError *error = NULL; - - if (!plugins || !g_hash_table_size (plugins)) { - g_warning ("%s: no VPN plugins could be found!", __func__); - return NULL; - } - - builder = gtk_builder_new(); - - if (!gtk_builder_add_from_file (builder, UIDIR "/ce-vpn-wizard.ui", &error)) { - g_warning ("Couldn't load builder file: %s", error->message); - g_error_free (error); - return NULL; - } - - dialog = GTK_WIDGET (gtk_builder_get_object (builder, "vpn_type_dialog")); - if (!dialog) { - g_warning ("%s: couldn't load VPN wizard dialog!", __func__); - g_object_unref (builder); - return NULL; - } - - model = GTK_TREE_MODEL (gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_OBJECT)); - g_hash_table_foreach (plugins, add_plugins_to_list, &plugin_list); - - plugin_list = g_slist_sort (plugin_list, sort_plugins); - for (iter = plugin_list; iter; iter = g_slist_next (iter)) { - NMVpnPluginUiInterface *plugin = NM_VPN_PLUGIN_UI_INTERFACE (iter->data); - const char *desc; - - gtk_list_store_append (GTK_LIST_STORE (model), &tree_iter); - g_object_get (plugin, NM_VPN_PLUGIN_UI_INTERFACE_NAME, &desc, NULL); - gtk_list_store_set (GTK_LIST_STORE (model), &tree_iter, - COL_PLUGIN_DESC, desc, - COL_PLUGIN_OBJ, plugin, -1); - } - - combo = GTK_WIDGET (gtk_builder_get_object (builder, "vpn_type_combo")); - widget = GTK_WIDGET (gtk_builder_get_object (builder, "vpn_desc_label")); - g_signal_connect (G_OBJECT (combo), "changed", G_CALLBACK (combo_changed_cb), widget); - gtk_combo_box_set_model (GTK_COMBO_BOX (combo), model); - gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); + NMSettingVPN *s_vpn; + const char *service_type; + NMVpnPluginUiInterface *plugin; + guint32 capabilities; - gtk_window_set_transient_for (GTK_WINDOW (dialog), parent); - gtk_widget_show_all (dialog); - response = gtk_dialog_run (GTK_DIALOG (dialog)); - if (response != GTK_RESPONSE_OK) - goto out; + s_vpn = nm_connection_get_setting_vpn (connection); + g_return_val_if_fail (s_vpn != NULL, FALSE); - if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &tree_iter)) { - NMVpnPluginUiInterface *plugin = NULL; + service_type = nm_setting_vpn_get_service_type (s_vpn); + g_return_val_if_fail (service_type != NULL, FALSE); - gtk_tree_model_get (model, &tree_iter, COL_PLUGIN_OBJ, &plugin, -1); - if (plugin) - g_object_get (G_OBJECT (plugin), NM_VPN_PLUGIN_UI_INTERFACE_SERVICE, &service_type, NULL); - } + plugin = vpn_get_plugin_by_service (service_type); + g_return_val_if_fail (plugin != NULL, FALSE); -out: - gtk_widget_destroy (dialog); - g_object_unref (builder); - if (service_type) - return g_strdup (service_type); - return NULL; + capabilities = nm_vpn_plugin_ui_interface_get_capabilities (plugin); + return (capabilities & NM_VPN_PLUGIN_UI_CAPABILITY_IPV6) != 0; } - diff -Nru network-manager-applet-0.9.4.1/src/connection-editor/vpn-helpers.h network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/vpn-helpers.h --- network-manager-applet-0.9.4.1/src/connection-editor/vpn-helpers.h 2009-12-23 18:30:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/connection-editor/vpn-helpers.h 2012-10-31 13:20:57.000000000 +0000 @@ -39,6 +39,6 @@ void vpn_export (NMConnection *connection); -char *vpn_ask_connection_type (GtkWindow *parent); +gboolean vpn_supports_ipv6 (NMConnection *connection); #endif /* _VPN_HELPERS_H_ */ diff -Nru network-manager-applet-0.9.4.1/src/ethernet-dialog.c network-manager-applet-0.9.6.2+git201210311320.2620/src/ethernet-dialog.c --- network-manager-applet-0.9.4.1/src/ethernet-dialog.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/ethernet-dialog.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,161 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 Novell, Inc. + * (C) Copyright 2008 - 2011 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include "ethernet-dialog.h" +#include "wireless-security.h" +#include "applet-dialogs.h" + +static void +stuff_changed_cb (WirelessSecurity *sec, gpointer user_data) +{ + GtkWidget *button = GTK_WIDGET (user_data); + + gtk_widget_set_sensitive (button, wireless_security_validate (sec, NULL)); +} + +static void +dialog_set_network_name (NMConnection *connection, GtkEntry *entry) +{ + NMSettingConnection *setting; + + setting = nm_connection_get_setting_connection (connection); + + gtk_widget_set_sensitive (GTK_WIDGET (entry), FALSE); + gtk_entry_set_text (entry, nm_setting_connection_get_id (setting)); +} + +static WirelessSecurity * +dialog_set_security (NMConnection *connection, + GtkBuilder *builder, + GtkBox *box) +{ + GList *children; + GList *iter; + WirelessSecurity *security; + + security = (WirelessSecurity *) ws_wpa_eap_new (connection, FALSE, TRUE); + + /* Remove any previous wireless security widgets */ + children = gtk_container_get_children (GTK_CONTAINER (box)); + for (iter = children; iter; iter = iter->next) + gtk_container_remove (GTK_CONTAINER (box), GTK_WIDGET (iter->data)); + g_list_free (children); + + gtk_box_pack_start (box, wireless_security_get_widget (security), TRUE, TRUE, 0); + + return security; +} + +GtkWidget * +nma_ethernet_dialog_new (NMConnection *connection) +{ + GtkBuilder *builder; + GtkWidget *dialog; + GError *error = NULL; + WirelessSecurity *security; + + builder = gtk_builder_new (); + + if (!gtk_builder_add_from_file (builder, UIDIR "/8021x.ui", &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); + applet_warning_dialog_show (_("The NetworkManager Applet could not find some required resources (the .ui file was not found).")); + g_object_unref (builder); + return NULL; + } + + dialog = (GtkWidget *) gtk_builder_get_object (builder, "8021x_dialog"); + if (!dialog) { + g_warning ("Couldn't find wireless_dialog widget."); + applet_warning_dialog_show (_("The NetworkManager Applet could not find some required resources (the .ui file was not found).")); + g_object_unref (builder); + return NULL; + } + + gtk_window_set_title (GTK_WINDOW (dialog), _("802.1X authentication")); + gtk_window_set_icon_name (GTK_WINDOW (dialog), "dialog-password"); + dialog_set_network_name (connection, GTK_ENTRY (gtk_builder_get_object (builder, "network_name_entry"))); + + security = dialog_set_security (connection, builder, GTK_BOX (gtk_builder_get_object (builder, "security_vbox"))); + wireless_security_set_changed_notify (security, stuff_changed_cb, GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"))); + g_object_set_data_full (G_OBJECT (dialog), + "security", security, + (GDestroyNotify) wireless_security_unref); + + g_object_set_data_full (G_OBJECT (dialog), + "connection", g_object_ref (connection), + (GDestroyNotify) g_object_unref); + + /* Ensure the builder gets destroyed when the dialog goes away */ + g_object_set_data_full (G_OBJECT (dialog), + "builder", builder, + (GDestroyNotify) g_object_unref); + + return dialog; +} + +NMConnection * +nma_ethernet_dialog_get_connection (GtkWidget *dialog) +{ + NMConnection *connection, *tmp_connection; + WirelessSecurity *security; + NMSetting *s_8021x, *s_con; + + g_return_val_if_fail (dialog != NULL, NULL); + + connection = g_object_get_data (G_OBJECT (dialog), "connection"); + security = g_object_get_data (G_OBJECT (dialog), "security"); + + /* Here's a nice hack to work around the fact that ws_802_1x_fill_connection() + * needs a wireless setting and a connection setting for various things. + */ + tmp_connection = nm_connection_new (); + + /* Add the fake connection setting (mainly for the UUID for cert ignore checking) */ + s_con = nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION); + g_assert (s_con); + nm_connection_add_setting (tmp_connection, NM_SETTING (g_object_ref (s_con))); + + /* And the fake wireless setting */ + nm_connection_add_setting (tmp_connection, nm_setting_wireless_new ()); + + /* Fill up the 802.1x setting */ + ws_802_1x_fill_connection (security, "wpa_eap_auth_combo", tmp_connection); + + /* Grab it and add it to our original connection */ + s_8021x = nm_connection_get_setting (tmp_connection, NM_TYPE_SETTING_802_1X); + nm_connection_add_setting (connection, NM_SETTING (g_object_ref (s_8021x))); + + g_object_unref (tmp_connection); + + return connection; +} diff -Nru network-manager-applet-0.9.4.1/src/ethernet-dialog.h network-manager-applet-0.9.6.2+git201210311320.2620/src/ethernet-dialog.h --- network-manager-applet-0.9.4.1/src/ethernet-dialog.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/ethernet-dialog.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,34 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2008 Novell, Inc. + * (C) Copyright 2008 - 2011 Red Hat, Inc. + */ + +#ifndef ETHERNET_DIALOG_H +#define ETHERNET_DIALOG_H + +#include +#include + +GtkWidget *nma_ethernet_dialog_new (NMConnection *connection); + +NMConnection *nma_ethernet_dialog_get_connection (GtkWidget *dialog); + +#endif /* ETHERNET_DIALOG_H */ diff -Nru network-manager-applet-0.9.4.1/src/gconf-helpers/Makefile.am network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/Makefile.am --- network-manager-applet-0.9.4.1/src/gconf-helpers/Makefile.am 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/Makefile.am 2012-10-31 13:21:01.000000000 +0000 @@ -16,6 +16,7 @@ -I$(top_srcdir)/src/utils \ $(GTK_CFLAGS) \ $(NMA_CFLAGS) \ + $(APPINDICATOR_CFLAGS) \ $(GCONF_CFLAGS) \ $(GNOME_KEYRING_CFLAGS) \ $(DISABLE_DEPRECATED) @@ -23,6 +24,7 @@ libgconf_helpers_la_LIBADD = \ $(GTK_LIBS) \ $(NMA_LIBS) \ + $(APPINDICATOR_LIBS) \ $(GCONF_LIBS) \ $(GNOME_KEYRING_LIBS) diff -Nru network-manager-applet-0.9.4.1/src/gconf-helpers/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/Makefile.in --- network-manager-applet-0.9.4.1/src/gconf-helpers/Makefile.in 2012-03-23 22:55:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,790 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/gconf-helpers -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -LTLIBRARIES = $(noinst_LTLIBRARIES) -am__DEPENDENCIES_1 = -libgconf_helpers_test_la_DEPENDENCIES = $(am__DEPENDENCIES_1) -am__objects_1 = libgconf_helpers_test_la-gconf-helpers.lo \ - libgconf_helpers_test_la-gconf-upgrade.lo -am_libgconf_helpers_test_la_OBJECTS = $(am__objects_1) -libgconf_helpers_test_la_OBJECTS = \ - $(am_libgconf_helpers_test_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -libgconf_helpers_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) -am__objects_2 = libgconf_helpers_la-gconf-helpers.lo \ - libgconf_helpers_la-gconf-upgrade.lo -am_libgconf_helpers_la_OBJECTS = $(am__objects_2) -libgconf_helpers_la_OBJECTS = $(am_libgconf_helpers_la_OBJECTS) -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libgconf_helpers_test_la_SOURCES) \ - $(libgconf_helpers_la_SOURCES) -DIST_SOURCES = $(libgconf_helpers_test_la_SOURCES) \ - $(libgconf_helpers_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = . tests -noinst_LTLIBRARIES = \ - libgconf-helpers.la \ - libgconf-helpers-test.la - -HELPERS_SOURCES = \ - gconf-helpers.h \ - gconf-helpers.c \ - gconf-upgrade.h \ - gconf-upgrade.c - -libgconf_helpers_la_SOURCES = $(HELPERS_SOURCES) -libgconf_helpers_la_CPPFLAGS = \ - -I$(top_srcdir)/src/utils \ - $(GTK_CFLAGS) \ - $(NMA_CFLAGS) \ - $(GCONF_CFLAGS) \ - $(GNOME_KEYRING_CFLAGS) \ - $(DISABLE_DEPRECATED) - -libgconf_helpers_la_LIBADD = \ - $(GTK_LIBS) \ - $(NMA_LIBS) \ - $(GCONF_LIBS) \ - $(GNOME_KEYRING_LIBS) - - -######################### -# Test library -######################### -libgconf_helpers_test_la_SOURCES = $(HELPERS_SOURCES) -libgconf_helpers_test_la_CPPFLAGS = \ - -I$(top_srcdir)/src/utils \ - $(GTK_CFLAGS) \ - $(NMA_CFLAGS) \ - $(GCONF_CFLAGS) \ - $(GNOME_KEYRING_CFLAGS) \ - $(DISABLE_DEPRECATED) - - -# no keyring or gconf libs since we'll override them -libgconf_helpers_test_la_LIBADD = \ - $(NMA_LIBS) - -all: all-recursive - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/gconf-helpers/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/gconf-helpers/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libgconf-helpers-test.la: $(libgconf_helpers_test_la_OBJECTS) $(libgconf_helpers_test_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(libgconf_helpers_test_la_OBJECTS) $(libgconf_helpers_test_la_LIBADD) $(LIBS) -libgconf-helpers.la: $(libgconf_helpers_la_OBJECTS) $(libgconf_helpers_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(libgconf_helpers_la_OBJECTS) $(libgconf_helpers_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgconf_helpers_la-gconf-helpers.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgconf_helpers_la-gconf-upgrade.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgconf_helpers_test_la-gconf-helpers.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgconf_helpers_test_la-gconf-upgrade.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -libgconf_helpers_test_la-gconf-helpers.lo: gconf-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgconf_helpers_test_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgconf_helpers_test_la-gconf-helpers.lo -MD -MP -MF $(DEPDIR)/libgconf_helpers_test_la-gconf-helpers.Tpo -c -o libgconf_helpers_test_la-gconf-helpers.lo `test -f 'gconf-helpers.c' || echo '$(srcdir)/'`gconf-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgconf_helpers_test_la-gconf-helpers.Tpo $(DEPDIR)/libgconf_helpers_test_la-gconf-helpers.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gconf-helpers.c' object='libgconf_helpers_test_la-gconf-helpers.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgconf_helpers_test_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgconf_helpers_test_la-gconf-helpers.lo `test -f 'gconf-helpers.c' || echo '$(srcdir)/'`gconf-helpers.c - -libgconf_helpers_test_la-gconf-upgrade.lo: gconf-upgrade.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgconf_helpers_test_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgconf_helpers_test_la-gconf-upgrade.lo -MD -MP -MF $(DEPDIR)/libgconf_helpers_test_la-gconf-upgrade.Tpo -c -o libgconf_helpers_test_la-gconf-upgrade.lo `test -f 'gconf-upgrade.c' || echo '$(srcdir)/'`gconf-upgrade.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgconf_helpers_test_la-gconf-upgrade.Tpo $(DEPDIR)/libgconf_helpers_test_la-gconf-upgrade.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gconf-upgrade.c' object='libgconf_helpers_test_la-gconf-upgrade.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgconf_helpers_test_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgconf_helpers_test_la-gconf-upgrade.lo `test -f 'gconf-upgrade.c' || echo '$(srcdir)/'`gconf-upgrade.c - -libgconf_helpers_la-gconf-helpers.lo: gconf-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgconf_helpers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgconf_helpers_la-gconf-helpers.lo -MD -MP -MF $(DEPDIR)/libgconf_helpers_la-gconf-helpers.Tpo -c -o libgconf_helpers_la-gconf-helpers.lo `test -f 'gconf-helpers.c' || echo '$(srcdir)/'`gconf-helpers.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgconf_helpers_la-gconf-helpers.Tpo $(DEPDIR)/libgconf_helpers_la-gconf-helpers.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gconf-helpers.c' object='libgconf_helpers_la-gconf-helpers.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgconf_helpers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgconf_helpers_la-gconf-helpers.lo `test -f 'gconf-helpers.c' || echo '$(srcdir)/'`gconf-helpers.c - -libgconf_helpers_la-gconf-upgrade.lo: gconf-upgrade.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgconf_helpers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgconf_helpers_la-gconf-upgrade.lo -MD -MP -MF $(DEPDIR)/libgconf_helpers_la-gconf-upgrade.Tpo -c -o libgconf_helpers_la-gconf-upgrade.lo `test -f 'gconf-upgrade.c' || echo '$(srcdir)/'`gconf-upgrade.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgconf_helpers_la-gconf-upgrade.Tpo $(DEPDIR)/libgconf_helpers_la-gconf-upgrade.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gconf-upgrade.c' object='libgconf_helpers_la-gconf-upgrade.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgconf_helpers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgconf_helpers_la-gconf-upgrade.lo `test -f 'gconf-upgrade.c' || echo '$(srcdir)/'`gconf-upgrade.c - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile $(LTLIBRARIES) -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - clean-noinstLTLIBRARIES ctags ctags-recursive distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/src/gconf-helpers/tests/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/tests/Makefile.in --- network-manager-applet-0.9.4.1/src/gconf-helpers/tests/Makefile.in 2012-03-23 22:55:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/tests/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,634 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = test-upgrade$(EXEEXT) -subdir = src/gconf-helpers/tests -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -PROGRAMS = $(noinst_PROGRAMS) -am_test_upgrade_OBJECTS = test_upgrade-test-upgrade.$(OBJEXT) \ - test_upgrade-fake-keyring.$(OBJEXT) \ - test_upgrade-fake-gconf.$(OBJEXT) -test_upgrade_OBJECTS = $(am_test_upgrade_OBJECTS) -am__DEPENDENCIES_1 = -test_upgrade_DEPENDENCIES = ${builddir}/../libgconf-helpers-test.la \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(test_upgrade_SOURCES) -DIST_SOURCES = $(test_upgrade_SOURCES) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -INCLUDES = -I$(top_srcdir)/src/utils -test_upgrade_SOURCES = \ - test-upgrade.c \ - fake-keyring.h \ - fake-keyring.c \ - fake-gconf.h \ - fake-gconf.c - -test_upgrade_CPPFLAGS = \ - -I ${srcdir}/../ \ - -DTESTDIR=\"$(srcdir)\" \ - $(GTK_CFLAGS) \ - $(NMA_CFLAGS) \ - $(GCONF_CFLAGS) \ - $(GNOME_KEYRING_CFLAGS) - -test_upgrade_LDADD = \ - ${builddir}/../libgconf-helpers-test.la \ - $(GTK_CFLAGS) \ - $(NMA_LIBS) \ - $(GNOME_KEYRING_LIBS) - -EXTRA_DIST = \ - test-import.xml \ - 08wifi.xml \ - 08vpnc.xml \ - 08openvpn-not-saved.xml \ - 08openvpn-saved.xml - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/gconf-helpers/tests/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/gconf-helpers/tests/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -test-upgrade$(EXEEXT): $(test_upgrade_OBJECTS) $(test_upgrade_DEPENDENCIES) - @rm -f test-upgrade$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(test_upgrade_OBJECTS) $(test_upgrade_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_upgrade-fake-gconf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_upgrade-fake-keyring.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_upgrade-test-upgrade.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -test_upgrade-test-upgrade.o: test-upgrade.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_upgrade_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_upgrade-test-upgrade.o -MD -MP -MF $(DEPDIR)/test_upgrade-test-upgrade.Tpo -c -o test_upgrade-test-upgrade.o `test -f 'test-upgrade.c' || echo '$(srcdir)/'`test-upgrade.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_upgrade-test-upgrade.Tpo $(DEPDIR)/test_upgrade-test-upgrade.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-upgrade.c' object='test_upgrade-test-upgrade.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_upgrade_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_upgrade-test-upgrade.o `test -f 'test-upgrade.c' || echo '$(srcdir)/'`test-upgrade.c - -test_upgrade-test-upgrade.obj: test-upgrade.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_upgrade_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_upgrade-test-upgrade.obj -MD -MP -MF $(DEPDIR)/test_upgrade-test-upgrade.Tpo -c -o test_upgrade-test-upgrade.obj `if test -f 'test-upgrade.c'; then $(CYGPATH_W) 'test-upgrade.c'; else $(CYGPATH_W) '$(srcdir)/test-upgrade.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_upgrade-test-upgrade.Tpo $(DEPDIR)/test_upgrade-test-upgrade.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-upgrade.c' object='test_upgrade-test-upgrade.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_upgrade_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_upgrade-test-upgrade.obj `if test -f 'test-upgrade.c'; then $(CYGPATH_W) 'test-upgrade.c'; else $(CYGPATH_W) '$(srcdir)/test-upgrade.c'; fi` - -test_upgrade-fake-keyring.o: fake-keyring.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_upgrade_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_upgrade-fake-keyring.o -MD -MP -MF $(DEPDIR)/test_upgrade-fake-keyring.Tpo -c -o test_upgrade-fake-keyring.o `test -f 'fake-keyring.c' || echo '$(srcdir)/'`fake-keyring.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_upgrade-fake-keyring.Tpo $(DEPDIR)/test_upgrade-fake-keyring.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fake-keyring.c' object='test_upgrade-fake-keyring.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_upgrade_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_upgrade-fake-keyring.o `test -f 'fake-keyring.c' || echo '$(srcdir)/'`fake-keyring.c - -test_upgrade-fake-keyring.obj: fake-keyring.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_upgrade_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_upgrade-fake-keyring.obj -MD -MP -MF $(DEPDIR)/test_upgrade-fake-keyring.Tpo -c -o test_upgrade-fake-keyring.obj `if test -f 'fake-keyring.c'; then $(CYGPATH_W) 'fake-keyring.c'; else $(CYGPATH_W) '$(srcdir)/fake-keyring.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_upgrade-fake-keyring.Tpo $(DEPDIR)/test_upgrade-fake-keyring.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fake-keyring.c' object='test_upgrade-fake-keyring.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_upgrade_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_upgrade-fake-keyring.obj `if test -f 'fake-keyring.c'; then $(CYGPATH_W) 'fake-keyring.c'; else $(CYGPATH_W) '$(srcdir)/fake-keyring.c'; fi` - -test_upgrade-fake-gconf.o: fake-gconf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_upgrade_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_upgrade-fake-gconf.o -MD -MP -MF $(DEPDIR)/test_upgrade-fake-gconf.Tpo -c -o test_upgrade-fake-gconf.o `test -f 'fake-gconf.c' || echo '$(srcdir)/'`fake-gconf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_upgrade-fake-gconf.Tpo $(DEPDIR)/test_upgrade-fake-gconf.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fake-gconf.c' object='test_upgrade-fake-gconf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_upgrade_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_upgrade-fake-gconf.o `test -f 'fake-gconf.c' || echo '$(srcdir)/'`fake-gconf.c - -test_upgrade-fake-gconf.obj: fake-gconf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_upgrade_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_upgrade-fake-gconf.obj -MD -MP -MF $(DEPDIR)/test_upgrade-fake-gconf.Tpo -c -o test_upgrade-fake-gconf.obj `if test -f 'fake-gconf.c'; then $(CYGPATH_W) 'fake-gconf.c'; else $(CYGPATH_W) '$(srcdir)/fake-gconf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_upgrade-fake-gconf.Tpo $(DEPDIR)/test_upgrade-fake-gconf.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fake-gconf.c' object='test_upgrade-fake-gconf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_upgrade_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_upgrade-fake-gconf.obj `if test -f 'fake-gconf.c'; then $(CYGPATH_W) 'fake-gconf.c'; else $(CYGPATH_W) '$(srcdir)/fake-gconf.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-local -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am check-local clean \ - clean-generic clean-libtool clean-noinstPROGRAMS ctags \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am - - -check-local: test-upgrade - $(abs_builddir)/test-upgrade - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/src/gconf-helpers/tests/fake-gconf.c network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/tests/fake-gconf.c --- network-manager-applet-0.9.4.1/src/gconf-helpers/tests/fake-gconf.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/tests/fake-gconf.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/gconf-helpers/tests/fake-gconf.h network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/tests/fake-gconf.h --- network-manager-applet-0.9.4.1/src/gconf-helpers/tests/fake-gconf.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/tests/fake-gconf.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/gconf-helpers/tests/fake-keyring.c network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/tests/fake-keyring.c --- network-manager-applet-0.9.4.1/src/gconf-helpers/tests/fake-keyring.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/tests/fake-keyring.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/gconf-helpers/tests/fake-keyring.h network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/tests/fake-keyring.h --- network-manager-applet-0.9.4.1/src/gconf-helpers/tests/fake-keyring.h 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/tests/fake-keyring.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/gconf-helpers/tests/test-upgrade.c network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/tests/test-upgrade.c --- network-manager-applet-0.9.4.1/src/gconf-helpers/tests/test-upgrade.c 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gconf-helpers/tests/test-upgrade.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/gnome-bluetooth/Makefile.am network-manager-applet-0.9.6.2+git201210311320.2620/src/gnome-bluetooth/Makefile.am --- network-manager-applet-0.9.4.1/src/gnome-bluetooth/Makefile.am 2012-03-13 23:03:59.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gnome-bluetooth/Makefile.am 2012-10-31 13:20:57.000000000 +0000 @@ -10,7 +10,10 @@ $(DISABLE_DEPRECATED) \ $(WARN_CFLAGS) -BT_WIDGET_SOURCES = bt-widget.c +BT_WIDGET_SOURCES = \ + bt-widget.c \ + nma-bt-device.c \ + nma-bt-device.h if HAVE_GBT plugindir = $(libdir)/gnome-bluetooth/plugins diff -Nru network-manager-applet-0.9.4.1/src/gnome-bluetooth/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/src/gnome-bluetooth/Makefile.in --- network-manager-applet-0.9.4.1/src/gnome-bluetooth/Makefile.in 2012-03-23 22:55:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gnome-bluetooth/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,625 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/gnome-bluetooth -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(plugindir)" -LTLIBRARIES = $(plugin_LTLIBRARIES) -am__DEPENDENCIES_1 = -@HAVE_GBT_TRUE@libnma_la_DEPENDENCIES = $(top_builddir)/src/marshallers/libmarshallers.la \ -@HAVE_GBT_TRUE@ $(top_builddir)/src/utils/libutils.la \ -@HAVE_GBT_TRUE@ $(top_builddir)/src/libnm-gtk/libnm-gtk.la \ -@HAVE_GBT_TRUE@ $(am__DEPENDENCIES_1) -am__libnma_la_SOURCES_DIST = bt-widget.c -am__objects_1 = bt-widget.lo -@HAVE_GBT_TRUE@am_libnma_la_OBJECTS = $(am__objects_1) -libnma_la_OBJECTS = $(am_libnma_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -libnma_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libnma_la_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_GBT_TRUE@am_libnma_la_rpath = -rpath $(plugindir) -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libnma_la_SOURCES) -DIST_SOURCES = $(am__libnma_la_SOURCES_DIST) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -INCLUDES = \ - -DDATADIR=\"$(datadir)\" \ - -DICONDIR=\"$(icondir)\" \ - -DLOCALEDIR="\"$(datadir)/locale\"" \ - -I$(top_builddir) \ - -I${top_builddir}/src/marshallers \ - -I${top_srcdir}/src/utils \ - -I${top_srcdir}/src/libnm-gtk \ - $(GNOME_BLUETOOTH_CFLAGS) \ - $(DISABLE_DEPRECATED) \ - $(WARN_CFLAGS) - -BT_WIDGET_SOURCES = bt-widget.c -@HAVE_GBT_TRUE@plugindir = $(libdir)/gnome-bluetooth/plugins -@HAVE_GBT_TRUE@plugin_LTLIBRARIES = libnma.la -@HAVE_GBT_TRUE@libnma_la_SOURCES = $(BT_WIDGET_SOURCES) -@HAVE_GBT_TRUE@libnma_la_LDFLAGS = -module -avoid-version -@HAVE_GBT_TRUE@libnma_la_LIBADD = \ -@HAVE_GBT_TRUE@ $(top_builddir)/src/marshallers/libmarshallers.la \ -@HAVE_GBT_TRUE@ $(top_builddir)/src/utils/libutils.la \ -@HAVE_GBT_TRUE@ $(top_builddir)/src/libnm-gtk/libnm-gtk.la \ -@HAVE_GBT_TRUE@ $(GNOME_BLUETOOTH_LIBS) - -EXTRA_DIST = $(BT_WIDGET_SOURCES) -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/gnome-bluetooth/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/gnome-bluetooth/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) - @$(NORMAL_INSTALL) - test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" - @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ - } - -uninstall-pluginLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ - done - -clean-pluginLTLIBRARIES: - -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libnma.la: $(libnma_la_OBJECTS) $(libnma_la_DEPENDENCIES) - $(AM_V_CCLD)$(libnma_la_LINK) $(am_libnma_la_rpath) $(libnma_la_OBJECTS) $(libnma_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bt-widget.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) -installdirs: - for dir in "$(DESTDIR)$(plugindir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-pluginLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-pluginLTLIBRARIES - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pluginLTLIBRARIES \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pluginLTLIBRARIES - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/src/gnome-bluetooth/bt-widget.c network-manager-applet-0.9.6.2+git201210311320.2620/src/gnome-bluetooth/bt-widget.c --- network-manager-applet-0.9.4.1/src/gnome-bluetooth/bt-widget.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gnome-bluetooth/bt-widget.c 2012-10-31 13:20:57.000000000 +0000 @@ -2,9 +2,6 @@ /* * NetworkManager Applet * - * Copyright (C) 2009 Bastien Nocera - * Copyright (C) 2009 - 2010 Dan Williams - * * 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 @@ -19,7 +16,7 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * - * (C) Copyright 2009 - 2011 Red Hat, Inc. + * (C) Copyright 2009 - 2012 Red Hat, Inc. * */ @@ -32,73 +29,65 @@ #include #include +#include #include #include -#include -#include -#include -#include -#include -#include -#include -#include #include #include -#include -#include - -#include "nma-marshal.h" -#include "nm-mobile-wizard.h" - -#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)) - -#define BLUEZ_SERVICE "org.bluez" -#define BLUEZ_MANAGER_PATH "/" -#define BLUEZ_MANAGER_INTERFACE "org.bluez.Manager" -#define BLUEZ_ADAPTER_INTERFACE "org.bluez.Adapter" -#define BLUEZ_DEVICE_INTERFACE "org.bluez.Device" -#define BLUEZ_SERIAL_INTERFACE "org.bluez.Serial" -#define BLUEZ_NETWORK_INTERFACE "org.bluez.Network" - -#define MM_SERVICE "org.freedesktop.ModemManager" -#define MM_PATH "/org/freedesktop/ModemManager" -#define MM_INTERFACE "org.freedesktop.ModemManager" -#define MM_MODEM_INTERFACE "org.freedesktop.ModemManager.Modem" +#include "nma-bt-device.h" typedef struct { - NMRemoteSettings *settings; - char *bdaddr; + NmaBtDevice *device; BluetoothClient *btclient; - GtkTreeModel *btmodel; - gboolean pan; + GSList *sigids; + GtkWidget *pan_button; guint pan_toggled_id; - NMRemoteConnection *pan_connection; - gboolean dun; GtkWidget *dun_button; guint dun_toggled_id; - NMRemoteConnection *dun_connection; + gboolean powered; GtkWidget *hbox; - GtkWidget *label; + GtkWidget *status; GtkWidget *spinner; +} WidgetInfo; - /* DUN stuff */ - DBusGConnection *bus; - DBusGProxy *dun_proxy; +/***************************************************************/ - DBusGProxy *mm_proxy; - GSList *modem_proxies; +static GHashTable *devices = NULL; - char *rfcomm_iface; - guint dun_timeout_id; +static NmaBtDevice * +get_device (const char *bdaddr) +{ + if (G_UNLIKELY (devices == NULL)) + devices = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_object_unref); + + return g_hash_table_lookup (devices, bdaddr); +} + +static void +add_device (NmaBtDevice *device) +{ + const char *bdaddr = nma_bt_device_get_bdaddr (device); - NMAMobileWizard *wizard; - GtkWindowGroup *window_group; -} PluginInfo; + if (get_device (bdaddr)) { + g_warning ("%s already exists in the device table!", bdaddr); + return; + } + + g_hash_table_insert (devices, (gpointer) bdaddr, device); +} + +static void +remove_device (NmaBtDevice *device) +{ + g_hash_table_remove (devices, device); +} + +/***************************************************************/ static void get_capabilities (const char *bdaddr, @@ -133,21 +122,7 @@ return pan || dun; } -static GByteArray * -get_array_from_bdaddr (const char *str) -{ - struct ether_addr *addr; - GByteArray *array; - - addr = ether_aton (str); - if (addr) { - array = g_byte_array_sized_new (ETH_ALEN); - g_byte_array_append (array, (const guint8 *) addr->ether_addr_octet, ETH_ALEN); - return array; - } - - return NULL; -} +/***************************************************************/ static gboolean get_device_iter (GtkTreeModel *model, const char *bdaddr, GtkTreeIter *out_iter) @@ -190,865 +165,187 @@ /*******************************************************************/ static void -pan_cleanup (PluginInfo *info, const char *message, gboolean uncheck) -{ - if (info->spinner) { - gtk_spinner_stop (GTK_SPINNER (info->spinner)); - gtk_widget_hide (info->spinner); - } - - gtk_label_set_text (GTK_LABEL (info->label), message); - gtk_widget_set_sensitive (info->pan_button, TRUE); - - if (uncheck) { - g_signal_handler_block (info->pan_button, info->pan_toggled_id); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (info->pan_button), FALSE); - g_signal_handler_unblock (info->pan_button, info->pan_toggled_id); - } -} - -static void -pan_add_cb (NMRemoteSettings *settings, - NMRemoteConnection *connection, - GError *error, - gpointer user_data) +pan_button_toggled (GtkToggleButton *button, WidgetInfo *info) { - PluginInfo *info = user_data; - char *message; - - if (error) { - message = g_strdup_printf (_("Failed to create PAN connection: %s"), error->message); - pan_cleanup (info, message, TRUE); - g_free (message); - } else { - info->pan_connection = connection; - pan_cleanup (info, _("Your phone is now ready to use!"), FALSE); - } -} - -static void -add_pan_connection (PluginInfo *info) -{ - NMConnection *connection; - NMSetting *setting, *bt_setting, *ip_setting; - GByteArray *mac; - char *id, *uuid, *alias = NULL; - GtkTreeIter iter; - - mac = get_array_from_bdaddr (info->bdaddr); - g_assert (mac); - - if (get_device_iter (info->btmodel, info->bdaddr, &iter)) - gtk_tree_model_get (info->btmodel, &iter, BLUETOOTH_COLUMN_ALIAS, &alias, -1); - - /* The connection */ - connection = nm_connection_new (); - - /* The connection settings */ - setting = nm_setting_connection_new (); - id = g_strdup_printf (_("%s Network"), alias ? alias : info->bdaddr); - uuid = nm_utils_uuid_generate (); - g_object_set (G_OBJECT (setting), - NM_SETTING_CONNECTION_ID, id, - NM_SETTING_CONNECTION_UUID, uuid, - NM_SETTING_CONNECTION_TYPE, NM_SETTING_BLUETOOTH_SETTING_NAME, - NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, - NULL); - g_free (id); - g_free (uuid); - nm_connection_add_setting (connection, setting); - - /* The Bluetooth settings */ - bt_setting = nm_setting_bluetooth_new (); - g_object_set (G_OBJECT (bt_setting), - NM_SETTING_BLUETOOTH_BDADDR, mac, - NM_SETTING_BLUETOOTH_TYPE, NM_SETTING_BLUETOOTH_TYPE_PANU, - NULL); - nm_connection_add_setting (connection, bt_setting); - - /* The IPv4 settings */ - ip_setting = nm_setting_ip4_config_new (); - g_object_set (G_OBJECT (ip_setting), - NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, - NULL); - nm_connection_add_setting (connection, ip_setting); - - /* Add the connection to the settings service */ - nm_remote_settings_add_connection (info->settings, - connection, - pan_add_cb, - info); - - g_byte_array_free (mac, TRUE); - g_free (alias); + nma_bt_device_set_pan_enabled (info->device, gtk_toggle_button_get_active (button)); } static void -pan_start (PluginInfo *info) +dun_button_toggled (GtkToggleButton *button, WidgetInfo *info) { - /* Start the spinner */ - if (!info->spinner) { - info->spinner = gtk_spinner_new (); - gtk_box_pack_start (GTK_BOX (info->hbox), info->spinner, FALSE, FALSE, 6); - } - gtk_spinner_start (GTK_SPINNER (info->spinner)); - gtk_widget_show_all (info->hbox); + GtkWidget *parent; - gtk_widget_set_sensitive (info->pan_button, FALSE); + /* Update the toplevel for the mobile wizard now that the widget is + * realized. + */ + parent = gtk_widget_get_toplevel (info->hbox); + if (gtk_widget_is_toplevel (parent)) + nma_bt_device_set_parent_window (info->device, GTK_WINDOW (parent)); - add_pan_connection (info); + nma_bt_device_set_dun_enabled (info->device, gtk_toggle_button_get_active (button)); } -/*******************************************************************/ - -static void dun_property_changed (DBusGProxy *proxy, - const char *property, - GValue *value, - gpointer user_data); - static void -dun_cleanup (PluginInfo *info, const char *message, gboolean uncheck) +widget_info_destroy (gpointer data) { + WidgetInfo *info = data; GSList *iter; - for (iter = info->modem_proxies; iter; iter = g_slist_next (iter)) - g_object_unref (DBUS_G_PROXY (iter->data)); - g_slist_free (info->modem_proxies); - info->modem_proxies = NULL; - - if (info->mm_proxy) { - g_object_unref (info->mm_proxy); - info->mm_proxy = NULL; - } + g_message ("%s: NM Bluetooth widget info being destroyed", __func__); - if (info->dun_proxy) { - if (info->rfcomm_iface) { - dbus_g_proxy_call_no_reply (info->dun_proxy, "Disconnect", - G_TYPE_STRING, info->rfcomm_iface, - G_TYPE_INVALID); - } - - dbus_g_proxy_disconnect_signal (info->dun_proxy, "PropertyChanged", - G_CALLBACK (dun_property_changed), info); - - g_object_unref (info->dun_proxy); - info->dun_proxy = NULL; - } - - g_free (info->rfcomm_iface); - info->rfcomm_iface = NULL; - - if (info->dun_timeout_id) { - g_source_remove (info->dun_timeout_id); - info->dun_timeout_id = 0; - } - - if (info->window_group) { - g_object_unref (info->window_group); - info->window_group = NULL; - } - - if (info->wizard) { - nma_mobile_wizard_destroy (info->wizard); - info->wizard = NULL; - } - - if (info->spinner) { - gtk_spinner_stop (GTK_SPINNER (info->spinner)); - gtk_widget_hide (info->spinner); - } - gtk_label_set_text (GTK_LABEL (info->label), message); - gtk_widget_set_sensitive (info->dun_button, TRUE); - - if (uncheck) { - g_signal_handler_block (info->dun_button, info->dun_toggled_id); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (info->dun_button), FALSE); - g_signal_handler_unblock (info->dun_button, info->dun_toggled_id); - } -} + g_signal_handlers_disconnect_matched (info->btclient, + G_SIGNAL_MATCH_DATA, 0, 0, NULL, + NULL, info); + g_object_unref (info->btclient); -static void -dun_error (PluginInfo *info, const char *func, GError *error, const char *fallback) -{ - char *message; + for (iter = info->sigids; iter; iter = g_slist_next (iter)) + g_signal_handler_disconnect (info->device, GPOINTER_TO_UINT (iter->data)); + g_slist_free (info->sigids); - message = g_strdup_printf (_("Error: %s"), (error && error->message) ? error->message : fallback); - g_warning ("%s: %s", func, message); - dun_cleanup (info, message, TRUE); - g_free (message); -} - -static NMConnection * -dun_new_cdma (NMAMobileWizardAccessMethod *method) -{ - NMConnection *connection; - NMSetting *setting; - char *uuid, *id; - - connection = nm_connection_new (); - - setting = nm_setting_cdma_new (); - g_object_set (setting, - NM_SETTING_CDMA_NUMBER, "#777", - NM_SETTING_CDMA_USERNAME, method->username, - NM_SETTING_CDMA_PASSWORD, method->password, - NULL); - nm_connection_add_setting (connection, setting); - - /* Serial setting */ - setting = nm_setting_serial_new (); - g_object_set (setting, - NM_SETTING_SERIAL_BAUD, 115200, - NM_SETTING_SERIAL_BITS, 8, - NM_SETTING_SERIAL_PARITY, 'n', - NM_SETTING_SERIAL_STOPBITS, 1, - NULL); - nm_connection_add_setting (connection, setting); - - nm_connection_add_setting (connection, nm_setting_ppp_new ()); - - setting = nm_setting_connection_new (); - if (method->plan_name) - id = g_strdup_printf ("%s %s", method->provider_name, method->plan_name); - else - id = g_strdup_printf ("%s connection", method->provider_name); - uuid = nm_utils_uuid_generate (); - g_object_set (setting, - NM_SETTING_CONNECTION_ID, id, - NM_SETTING_CONNECTION_TYPE, NM_SETTING_BLUETOOTH_SETTING_NAME, - NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, - NM_SETTING_CONNECTION_UUID, uuid, - NULL); - g_free (uuid); - g_free (id); - nm_connection_add_setting (connection, setting); - - return connection; -} - -static NMConnection * -dun_new_gsm (NMAMobileWizardAccessMethod *method) -{ - NMConnection *connection; - NMSetting *setting; - char *uuid, *id; - - connection = nm_connection_new (); - - setting = nm_setting_gsm_new (); - g_object_set (setting, - NM_SETTING_GSM_NUMBER, "*99#", - NM_SETTING_GSM_USERNAME, method->username, - NM_SETTING_GSM_PASSWORD, method->password, - NM_SETTING_GSM_APN, method->gsm_apn, - NULL); - nm_connection_add_setting (connection, setting); - - /* Serial setting */ - setting = nm_setting_serial_new (); - g_object_set (setting, - NM_SETTING_SERIAL_BAUD, 115200, - NM_SETTING_SERIAL_BITS, 8, - NM_SETTING_SERIAL_PARITY, 'n', - NM_SETTING_SERIAL_STOPBITS, 1, - NULL); - nm_connection_add_setting (connection, setting); - - nm_connection_add_setting (connection, nm_setting_ppp_new ()); - - setting = nm_setting_connection_new (); - if (method->plan_name) - id = g_strdup_printf ("%s %s", method->provider_name, method->plan_name); - else - id = g_strdup_printf ("%s connection", method->provider_name); - uuid = nm_utils_uuid_generate (); - g_object_set (setting, - NM_SETTING_CONNECTION_ID, id, - NM_SETTING_CONNECTION_TYPE, NM_SETTING_BLUETOOTH_SETTING_NAME, - NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, - NM_SETTING_CONNECTION_UUID, uuid, - NULL); - g_free (uuid); - g_free (id); - nm_connection_add_setting (connection, setting); + g_object_unref (info->device); - return connection; + memset (info, 0, sizeof (WidgetInfo)); + g_free (info); } static void -dun_add_cb (NMRemoteSettings *settings, - NMRemoteConnection *connection, - GError *error, - gpointer user_data) +set_dun_button_sensitive (WidgetInfo *info, gboolean sensitive) { - PluginInfo *info = user_data; - char *message; - - if (error) { - message = g_strdup_printf (_("Failed to create DUN connection: %s"), error->message); - dun_cleanup (info, message, TRUE); - g_free (message); - } else { - info->dun_connection = connection; - dun_cleanup (info, _("Your phone is now ready to use!"), FALSE); - } + gtk_widget_set_sensitive (info->dun_button, + sensitive && info->powered && !nma_bt_device_get_busy (info->device)); } static void -wizard_done_cb (NMAMobileWizard *self, - gboolean canceled, - NMAMobileWizardAccessMethod *method, - gpointer user_data) -{ - PluginInfo *info = user_data; - NMConnection *connection = NULL; - GByteArray *mac; - NMSetting *s_bt; - - g_message ("%s: mobile wizard done", __func__); - - if (canceled || !method) { - dun_error (info, __func__, NULL, _("Mobile wizard was canceled")); - return; - } - - if (method->devtype == NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) - connection = dun_new_cdma (method); - else if (method->devtype == NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) - connection = dun_new_gsm (method); - else { - dun_error (info, __func__, NULL, _("Unknown phone device type (not GSM or CDMA)")); - return; - } - - nma_mobile_wizard_destroy (info->wizard); - info->wizard = NULL; - - g_assert (connection); - - /* The Bluetooth settings */ - mac = get_array_from_bdaddr (info->bdaddr); - g_assert (mac); - s_bt = nm_setting_bluetooth_new (); - g_object_set (G_OBJECT (s_bt), - NM_SETTING_BLUETOOTH_BDADDR, mac, - NM_SETTING_BLUETOOTH_TYPE, NM_SETTING_BLUETOOTH_TYPE_DUN, - NULL); - g_byte_array_free (mac, TRUE); - nm_connection_add_setting (connection, s_bt); - - g_message ("%s: adding new setting", __func__); - - /* Add the connection to the settings service */ - nm_remote_settings_add_connection (info->settings, - connection, - dun_add_cb, - info); - - g_message ("%s: waiting for add connection result...", __func__); -} - -static void -modem_get_all_cb (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +default_adapter_powered_changed (GObject *object, + GParamSpec *pspec, + WidgetInfo *info) { - PluginInfo *info = user_data; - const char *path; - GHashTable *properties = NULL; - GError *error = NULL; - GValue *value; - NMDeviceType devtype = NM_DEVICE_TYPE_UNKNOWN; - - path = dbus_g_proxy_get_path (proxy); - g_message ("%s: (%s) processing GetAll reply", __func__, path); - - if (!dbus_g_proxy_end_call (proxy, call, &error, - DBUS_TYPE_G_MAP_OF_VARIANT, &properties, - G_TYPE_INVALID)) { - g_warning ("%s: (%s) Error getting modem properties: (%d) %s", - __func__, - path, - error ? error->code : -1, - (error && error->message) ? error->message : "(unknown)"); - g_error_free (error); - goto out; - } - - /* check whether this is the device we care about */ - value = g_hash_table_lookup (properties, "Device"); - if (value && G_VALUE_HOLDS_STRING (value) && g_value_get_string (value)) { - char *iface_basename = g_path_get_basename (info->rfcomm_iface); - const char *modem_iface = g_value_get_string (value); - - if (!strcmp (iface_basename, modem_iface)) { - /* yay, found it! */ - - value = g_hash_table_lookup (properties, "Type"); - if (value && G_VALUE_HOLDS_UINT (value)) { - switch (g_value_get_uint (value)) { - case 1: - devtype = NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS; - break; - case 2: - devtype = NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO; - break; - default: - g_message ("%s: (%s) unknown modem type", __func__, path); - break; - } - } - } else { - g_message ("%s: (%s) (%s) not the modem we're looking for (%s)", - __func__, path, modem_iface, iface_basename); - } - - g_free (iface_basename); - } else - g_message ("%s: (%s) modem had no 'Device' property", __func__, path); - - g_hash_table_unref (properties); - - if (devtype != NM_DEVICE_TYPE_UNKNOWN) { - GtkWidget *parent; - - if (info->wizard) { - g_message ("%s: (%s) oops! not starting Wizard as one is already in progress", __func__, path); - goto out; - } - - g_message ("%s: (%s) starting the mobile wizard", __func__, path); + gboolean powered = TRUE; - g_source_remove (info->dun_timeout_id); - info->dun_timeout_id = 0; + g_object_get (G_OBJECT (info->btclient), "default-adapter-powered", &powered, NULL); + g_message ("Default Bluetooth adapter is %s", powered ? "powered" : "switched off"); - parent = gtk_widget_get_toplevel (info->hbox); - if (gtk_widget_is_toplevel (parent)) { - info->window_group = gtk_window_group_new (); - gtk_window_group_add_window (info->window_group, GTK_WINDOW (parent)); - } else { - parent = NULL; - info->window_group = NULL; + /* If the default adapter isn't powered we can't inspect the device + * and create a connection for it. + */ + info->powered = powered; + if (powered) { + if (info->dun_button) { + gtk_label_set_text (GTK_LABEL (info->status), NULL); + set_dun_button_sensitive (info, TRUE); } - - /* Start the mobile wizard */ - info->wizard = nma_mobile_wizard_new (parent ? GTK_WINDOW (parent) : NULL, - info->window_group, - devtype, - FALSE, - wizard_done_cb, - info); - nma_mobile_wizard_present (info->wizard); - } - -out: - g_message ("%s: finished", __func__); -} - -static void -modem_added (DBusGProxy *proxy, const char *path, gpointer user_data) -{ - PluginInfo *info = user_data; - DBusGProxy *props_proxy; - - g_return_if_fail (path != NULL); - - g_message ("%s: (%s) modem found", __func__, path); - - /* Create a proxy for the modem and get its properties */ - props_proxy = dbus_g_proxy_new_for_name (info->bus, - MM_SERVICE, - path, - "org.freedesktop.DBus.Properties"); - g_assert (proxy); - info->modem_proxies = g_slist_append (info->modem_proxies, props_proxy); - - g_message ("%s: (%s) calling GetAll...", __func__, path); - - dbus_g_proxy_begin_call (props_proxy, "GetAll", - modem_get_all_cb, - info, - NULL, - G_TYPE_STRING, MM_MODEM_INTERFACE, - G_TYPE_INVALID); -} - -static void -modem_removed (DBusGProxy *proxy, const char *path, gpointer user_data) -{ - PluginInfo *info = user_data; - GSList *iter; - DBusGProxy *found = NULL; - - g_return_if_fail (path != NULL); - - g_message ("%s: (%s) modem removed", __func__, path); - - /* Clean up if a modem gets removed */ - - for (iter = info->modem_proxies; iter; iter = g_slist_next (iter)) { - if (!strcmp (path, dbus_g_proxy_get_path (DBUS_G_PROXY (iter->data)))) { - found = iter->data; - break; + } else { + /* powered only matters for DUN */ + if (info->dun_button) { + nma_bt_device_cancel_dun (info->device); + /* Can't toggle the DUN button unless the adapter is powered */ + set_dun_button_sensitive (info, FALSE); } } - - if (found) { - info->modem_proxies = g_slist_remove (info->modem_proxies, found); - g_object_unref (found); - } } static void -dun_connect_cb (DBusGProxy *proxy, - DBusGProxyCall *call, - void *user_data) -{ - PluginInfo *info = user_data; - GError *error = NULL; - char *device; - - g_message ("%s: processing Connect reply", __func__); - - if (!dbus_g_proxy_end_call (proxy, call, &error, - G_TYPE_STRING, &device, - G_TYPE_INVALID)) { - dun_error (info, __func__, error, _("failed to connect to the phone.")); - g_clear_error (&error); - goto out; - } - - if (!device || !strlen (device)) { - dun_error (info, __func__, NULL, _("failed to connect to the phone.")); - g_free (device); - goto out; - } - - info->rfcomm_iface = device; - g_message ("%s: new rfcomm interface '%s'", __func__, device); - -out: - g_message ("%s: finished", __func__); -} - -static void -dun_property_changed (DBusGProxy *proxy, - const char *property, - GValue *value, - gpointer user_data) -{ - PluginInfo *info = user_data; - gboolean connected; - - if (strcmp (property, "Connected")) - return; - - connected = g_value_get_boolean (value); - - g_message ("%s: device property Connected changed to %s", - __func__, - connected ? "TRUE" : "FALSE"); - - if (connected) { - /* Wait for MM here ? */ - } else - dun_error (info, __func__, NULL, _("unexpectedly disconnected from the phone.")); -} - -static gboolean -dun_timeout_cb (gpointer user_data) -{ - PluginInfo *info = user_data; - - info->dun_timeout_id = 0; - dun_error (info, __func__, NULL, _("timed out detecting phone details.")); - return FALSE; -} - -static void -dun_start (PluginInfo *info) +default_adapter_changed (GObject *gobject, + GParamSpec *pspec, + WidgetInfo *info) { - GError *error = NULL; - GtkTreeIter iter; + char *adapter = NULL; - g_message ("%s: starting DUN device discovery...", __func__); - - gtk_label_set_text (GTK_LABEL (info->label), _("Detecting phone configuration...")); - - /* Start the spinner */ - if (!info->spinner) { - info->spinner = gtk_spinner_new (); - gtk_box_pack_start (GTK_BOX (info->hbox), info->spinner, FALSE, FALSE, 6); - } - gtk_spinner_start (GTK_SPINNER (info->spinner)); - gtk_widget_show_all (info->hbox); - - gtk_widget_set_sensitive (info->dun_button, FALSE); - - /* ModemManager stuff */ - info->mm_proxy = dbus_g_proxy_new_for_name (info->bus, - MM_SERVICE, - MM_PATH, - MM_INTERFACE); - g_assert (info->mm_proxy); - - dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__BOXED, - G_TYPE_NONE, - G_TYPE_BOXED, - G_TYPE_INVALID); - dbus_g_proxy_add_signal (info->mm_proxy, "DeviceAdded", - DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID); - dbus_g_proxy_connect_signal (info->mm_proxy, "DeviceAdded", - G_CALLBACK (modem_added), info, - NULL); - - dbus_g_proxy_add_signal (info->mm_proxy, "DeviceRemoved", - DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID); - dbus_g_proxy_connect_signal (info->mm_proxy, "DeviceRemoved", - G_CALLBACK (modem_removed), info, - NULL); - - /* Get the device we're looking for */ - info->dun_proxy = NULL; - if (get_device_iter (info->btmodel, info->bdaddr, &iter)) - gtk_tree_model_get (info->btmodel, &iter, BLUETOOTH_COLUMN_PROXY, &info->dun_proxy, -1); - - if (info->dun_proxy) { - info->dun_timeout_id = g_timeout_add_seconds (45, dun_timeout_cb, info); - - dbus_g_proxy_set_interface (info->dun_proxy, BLUEZ_SERIAL_INTERFACE); - - g_message ("%s: calling Connect...", __func__); - - /* Watch for BT device property changes */ - dbus_g_object_register_marshaller (_nma_marshal_VOID__STRING_BOXED, - G_TYPE_NONE, - G_TYPE_STRING, G_TYPE_VALUE, - G_TYPE_INVALID); - dbus_g_proxy_add_signal (info->dun_proxy, "PropertyChanged", - G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID); - dbus_g_proxy_connect_signal (info->dun_proxy, "PropertyChanged", - G_CALLBACK (dun_property_changed), info, NULL); - - /* Request a connection to the device and get the port */ - dbus_g_proxy_begin_call_with_timeout (info->dun_proxy, "Connect", - dun_connect_cb, - info, - NULL, - 20000, - G_TYPE_STRING, "dun", - G_TYPE_INVALID); - } else - dun_error (info, __func__, error, _("could not find the Bluetooth device.")); + g_object_get (G_OBJECT (gobject), "default-adapter", &adapter, NULL); + g_message ("Default Bluetooth adapter changed: %s", adapter ? adapter : "(none)"); + g_free (adapter); - g_message ("%s: finished", __func__); + default_adapter_powered_changed (G_OBJECT (info->btclient), NULL, info); } -/*******************************************************************/ - static void -delete_cb (NMRemoteConnection *connection, GError *error, gpointer user_data) +device_pan_enabled_cb (NmaBtDevice *device, GParamSpec *pspec, WidgetInfo *info) { - if (error) { - g_warning ("Error deleting connection: (%d) %s", - error ? error->code : -1, - error && error->message ? error->message : "(unknown)"); - } + g_signal_handler_block (info->pan_button, info->pan_toggled_id); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (info->pan_button), + nma_bt_device_get_pan_enabled (device)); + g_signal_handler_unblock (info->pan_button, info->pan_toggled_id); } static void -pan_button_toggled (GtkToggleButton *button, gpointer user_data) +device_dun_enabled_cb (NmaBtDevice *device, GParamSpec *pspec, WidgetInfo *info) { - PluginInfo *info = user_data; - - if (gtk_toggle_button_get_active (button) == FALSE) { - nm_remote_connection_delete (info->pan_connection, delete_cb, NULL); - info->pan_connection = NULL; - } else - pan_start (info); + g_signal_handler_block (info->dun_button, info->dun_toggled_id); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (info->dun_button), + nma_bt_device_get_dun_enabled (device)); + g_signal_handler_unblock (info->dun_button, info->dun_toggled_id); } static void -dun_button_toggled (GtkToggleButton *button, gpointer user_data) +device_busy_cb (NmaBtDevice *device, GParamSpec *pspec, WidgetInfo *info) { - PluginInfo *info = user_data; + gboolean busy = nma_bt_device_get_busy (device); - if (gtk_toggle_button_get_active (button) == FALSE) { - nm_remote_connection_delete (info->dun_connection, delete_cb, NULL); - info->dun_connection = NULL; - } else - dun_start (info); -} + if (info->pan_button) + gtk_widget_set_sensitive (info->pan_button, !busy); + if (info->dun_button) + set_dun_button_sensitive (info, !busy); -static gboolean -match_connection (NMConnection *connection, GByteArray *bdaddr, gboolean pan) -{ - NMSetting *setting; - const char *type; - const GByteArray *tmp; - - setting = nm_connection_get_setting_by_name (connection, NM_SETTING_BLUETOOTH_SETTING_NAME); - if (setting == NULL) - return FALSE; - - type = nm_setting_bluetooth_get_connection_type (NM_SETTING_BLUETOOTH (setting)); - if (pan) { - if (g_strcmp0 (type, NM_SETTING_BLUETOOTH_TYPE_PANU) != 0) - return FALSE; - } else { - if (g_strcmp0 (type, NM_SETTING_BLUETOOTH_TYPE_DUN) != 0) - return FALSE; - } - - tmp = nm_setting_bluetooth_get_bdaddr (NM_SETTING_BLUETOOTH (setting)); - if (tmp == NULL || memcmp (tmp->data, bdaddr->data, tmp->len) != 0) - return FALSE; - - return TRUE; -} - -static NMRemoteConnection * -get_connection_for_bdaddr (NMRemoteSettings *settings, - const char *bdaddr, - gboolean pan) -{ - NMRemoteConnection *found = NULL; - GSList *list, *iter; - GByteArray *array; - - array = get_array_from_bdaddr (bdaddr); - if (array) { - list = nm_remote_settings_list_connections (settings); - for (iter = list; iter != NULL; iter = g_slist_next (iter)) { - if (match_connection (NM_CONNECTION (iter->data), array, pan)) { - found = iter->data; - break; - } + if (busy) { + if (!info->spinner) { + info->spinner = gtk_spinner_new (); + gtk_box_pack_start (GTK_BOX (info->hbox), info->spinner, FALSE, FALSE, 6); } - g_slist_free (list); - g_byte_array_free (array, TRUE); - } - return found; -} - -static void -plugin_info_destroy (gpointer data) -{ - PluginInfo *info = data; - - g_free (info->bdaddr); - g_free (info->rfcomm_iface); - if (info->pan_connection) - g_object_unref (info->pan_connection); - if (info->dun_connection) - g_object_unref (info->dun_connection); - if (info->spinner) - gtk_spinner_stop (GTK_SPINNER (info->spinner)); - g_object_unref (info->settings); - g_object_unref (info->btmodel); - - g_signal_handlers_disconnect_matched (info->btclient, - G_SIGNAL_MATCH_DATA, 0, 0, NULL, - NULL, info); - g_object_unref (info->btclient); - - if (info->bus) - dbus_g_connection_unref (info->bus); - memset (info, 0, sizeof (PluginInfo)); - g_free (info); -} - -static void -default_adapter_powered_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) -{ - PluginInfo *info = user_data; - gboolean powered = TRUE; - - g_object_get (G_OBJECT (info->btclient), "default-adapter-powered", &powered, NULL); - g_message ("Default Bluetooth adapter is %s", powered ? "powered" : "switched off"); - - /* If the default adapter isn't powered we can't inspect the device - * and create a connection for it. - */ - if (powered) { - gtk_label_set_text (GTK_LABEL (info->label), NULL); - if (info->dun) - gtk_widget_set_sensitive (info->dun_button, TRUE); + gtk_spinner_start (GTK_SPINNER (info->spinner)); + gtk_widget_show (info->spinner); } else { - /* powered only matters for DUN */ - if (info->dun) { - dun_cleanup (info, _("The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection."), TRUE); - /* Can't toggle the DUN button unless the adapter is powered */ - gtk_widget_set_sensitive (info->dun_button, FALSE); + if (info->spinner) { + gtk_spinner_stop (GTK_SPINNER (info->spinner)); + gtk_widget_destroy (info->spinner); + info->spinner = NULL; } } } static void -default_adapter_changed (GObject *gobject, - GParamSpec *pspec, - gpointer user_data) +device_status_cb (NmaBtDevice *device, GParamSpec *pspec, WidgetInfo *info) { - PluginInfo *info = user_data; - char *adapter; - - g_object_get (G_OBJECT (gobject), "default-adapter", &adapter, NULL); - g_message ("Default Bluetooth adapter changed: %s", adapter ? adapter : "(none)"); - g_free (adapter); - - default_adapter_powered_changed (G_OBJECT (info->btclient), NULL, info); + gtk_label_set_text (GTK_LABEL (info->status), nma_bt_device_get_status (device)); } static gboolean nm_is_running (void) { - DBusGConnection *bus; - DBusGProxy *proxy = NULL; - GError *error = NULL; + DBusConnection *bus; + DBusError error; gboolean running = FALSE; - bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); - if (error || !bus) { - g_message (_("Bluetooth configuration not possible (failed to connect to D-Bus: %s)."), - (error && error->message) ? error->message : "unknown"); - goto out; - } - - proxy = dbus_g_proxy_new_for_name (bus, - "org.freedesktop.DBus", - "/org/freedesktop/DBus", - "org.freedesktop.DBus"); - if (!proxy) { - g_message (_("Bluetooth configuration not possible (failed to create D-Bus proxy).")); - goto out; + dbus_error_init (&error); + bus = dbus_bus_get (DBUS_BUS_SYSTEM, &error); + if (dbus_error_is_set (&error)) { + g_message (_("Bluetooth configuration not possible (failed to connect to D-Bus: (%s) %s)."), + error.name, error.message); + dbus_error_free (&error); + return FALSE; } - if (!dbus_g_proxy_call (proxy, "NameHasOwner", &error, - G_TYPE_STRING, NM_DBUS_SERVICE, - G_TYPE_INVALID, - G_TYPE_BOOLEAN, &running, - G_TYPE_INVALID)) { - g_message (_("Bluetooth configuration not possible (error finding NetworkManager: %s)."), - error && error->message ? error->message : "unknown"); + dbus_error_init (&error); + running = dbus_bus_name_has_owner (bus, NM_DBUS_SERVICE, &error); + if (dbus_error_is_set (&error)) { + g_message (_("Bluetooth configuration not possible (error finding NetworkManager: (%s) %s)."), + error.name, error.message); } -out: - g_clear_error (&error); - if (proxy) - g_object_unref (proxy); - if (bus) - dbus_g_connection_unref (bus); + dbus_connection_unref (bus); return running; } static GtkWidget * get_config_widgets (const char *bdaddr, const char **uuids) { - PluginInfo *info; + WidgetInfo *info; + NmaBtDevice *device; GtkWidget *vbox, *hbox; - gboolean pan = FALSE, dun = FALSE; - DBusGConnection *bus; - GError *error = NULL; + gboolean pan = FALSE, dun = FALSE, busy; + GtkTreeIter iter; + BluetoothClient *btclient; + GtkTreeModel *btmodel; + guint id; /* Don't allow configuration if NM isn't running; it just confuses people * if they see the checkboxes but the configuration doesn't seem to have @@ -1061,29 +358,78 @@ if (!pan && !dun) return NULL; - /* Set up dbus */ - bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); - if (error || !bus) { - g_warning ("%s: failed to get a connection to D-Bus! %s", __func__, - error ? error->message : "(unknown)"); - g_clear_error (&error); - return NULL; + /* BluetoothClient setup */ + btclient = bluetooth_client_new (); + btmodel = bluetooth_client_get_model (btclient); + g_assert (btmodel); + + device = get_device (bdaddr); + if (!device) { + const char *op = NULL; + gpointer proxy; + char *alias; + + if (!get_device_iter (btmodel, bdaddr, &iter)) { + g_warning ("%s: failed to retrieve device %s from gnome-bluetooth!", __func__, bdaddr); + g_object_unref (btmodel); + g_object_unref (btclient); + return NULL; + } + + gtk_tree_model_get (btmodel, &iter, + BLUETOOTH_COLUMN_ALIAS, &alias, + BLUETOOTH_COLUMN_PROXY, &proxy, + -1); + g_assert (proxy); + + /* At some point gnome-bluetooth switched to gdbus, so we don't know + * if the proxy will be a DBusGProxy (dbus-glib) or a GDBusProxy (gdbus). + */ + if (G_IS_DBUS_PROXY (proxy)) + op = g_dbus_proxy_get_object_path (G_DBUS_PROXY (proxy)); + else if (DBUS_IS_G_PROXY (proxy)) + op = dbus_g_proxy_get_path (DBUS_G_PROXY (proxy)); + else + g_assert_not_reached (); + + device = nma_bt_device_new (bdaddr, alias, op, pan, dun); + g_free (alias); + g_object_unref (proxy); + + if (!device) { + g_warning ("%s: failed to create Bluetooth proxy object!", bdaddr); + g_object_unref (btmodel); + g_object_unref (btclient); + return NULL; + } + + add_device (device); } - info = g_malloc0 (sizeof (PluginInfo)); - info->bus = bus; - info->settings = nm_remote_settings_new (bus); - info->bdaddr = g_strdup (bdaddr); - info->pan = pan; - info->dun = dun; - - /* BluetoothClient setup */ - info->btclient = bluetooth_client_new (); - info->btmodel = bluetooth_client_get_model (info->btclient); - g_signal_connect (G_OBJECT (info->btclient), "notify::default-adapter", - G_CALLBACK (default_adapter_changed), info); - g_signal_connect (G_OBJECT (info->btclient), "notify::default-adapter-powered", - G_CALLBACK (default_adapter_powered_changed), info); + info = g_malloc0 (sizeof (WidgetInfo)); + info->device = g_object_ref (device); + info->btclient = btclient; + + g_signal_connect (G_OBJECT (btclient), "notify::default-adapter", + G_CALLBACK (default_adapter_changed), info); + g_signal_connect (G_OBJECT (btclient), "notify::default-adapter-powered", + G_CALLBACK (default_adapter_powered_changed), info); + + id = g_signal_connect (device, "notify::" NMA_BT_DEVICE_PAN_ENABLED, + G_CALLBACK (device_pan_enabled_cb), info); + info->sigids = g_slist_prepend (info->sigids, GUINT_TO_POINTER (id)); + + id = g_signal_connect (device, "notify::" NMA_BT_DEVICE_DUN_ENABLED, + G_CALLBACK (device_dun_enabled_cb), info); + info->sigids = g_slist_prepend (info->sigids, GUINT_TO_POINTER (id)); + + id = g_signal_connect (device, "notify::" NMA_BT_DEVICE_BUSY, + G_CALLBACK (device_busy_cb), info); + info->sigids = g_slist_prepend (info->sigids, GUINT_TO_POINTER (id)); + + id = g_signal_connect (device, "notify::" NMA_BT_DEVICE_STATUS, + G_CALLBACK (device_status_cb), info); + info->sigids = g_slist_prepend (info->sigids, GUINT_TO_POINTER (id)); /* UI setup */ #if GTK_CHECK_VERSION (3,1,6) @@ -1091,24 +437,26 @@ #else vbox = gtk_vbox_new (FALSE, 6); #endif - g_object_set_data_full (G_OBJECT (vbox), "info", info, plugin_info_destroy); + g_object_set_data_full (G_OBJECT (vbox), "info", info, widget_info_destroy); + + busy = nma_bt_device_get_busy (device); if (pan) { - info->pan_connection = get_connection_for_bdaddr (info->settings, bdaddr, TRUE); info->pan_button = gtk_check_button_new_with_label (_("Use your mobile phone as a network device (PAN/NAP)")); - if (info->pan_connection) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (info->pan_button), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (info->pan_button), + nma_bt_device_get_pan_enabled (device)); info->pan_toggled_id = g_signal_connect (G_OBJECT (info->pan_button), "toggled", G_CALLBACK (pan_button_toggled), info); gtk_box_pack_start (GTK_BOX (vbox), info->pan_button, FALSE, TRUE, 6); + gtk_widget_set_sensitive (info->pan_button, !busy); } if (dun) { - info->dun_connection = get_connection_for_bdaddr (info->settings, bdaddr, FALSE); info->dun_button = gtk_check_button_new_with_label (_("Access the Internet using your mobile phone (DUN)")); - if (info->dun_connection) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (info->dun_button), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (info->dun_button), + nma_bt_device_get_dun_enabled (device)); info->dun_toggled_id = g_signal_connect (G_OBJECT (info->dun_button), "toggled", G_CALLBACK (dun_button_toggled), info); gtk_box_pack_start (GTK_BOX (vbox), info->dun_button, FALSE, TRUE, 6); + set_dun_button_sensitive (info, !busy); } #if GTK_CHECK_VERSION (3,1,6) @@ -1126,16 +474,21 @@ #endif gtk_box_pack_start (GTK_BOX (hbox), info->hbox, FALSE, FALSE, 0); - info->label = gtk_label_new (""); - gtk_label_set_max_width_chars (GTK_LABEL (info->label), 80); - gtk_label_set_line_wrap (GTK_LABEL (info->label), TRUE); - gtk_box_pack_start (GTK_BOX (hbox), info->label, FALSE, TRUE, 6); + device_busy_cb (device, NULL, info); + + /* Status label */ + info->status = gtk_label_new (nma_bt_device_get_status (device)); + gtk_label_set_max_width_chars (GTK_LABEL (info->status), 80); + gtk_label_set_line_wrap (GTK_LABEL (info->status), TRUE); + gtk_box_pack_start (GTK_BOX (hbox), info->status, FALSE, TRUE, 6); default_adapter_powered_changed (G_OBJECT (info->btclient), NULL, info); return vbox; } +/**************************************************************/ + typedef struct { NMRemoteSettings *settings; GByteArray *bdaddr; @@ -1153,18 +506,14 @@ g_free (info); } -static GSList * -list_connections_for_bdaddr (NMRemoteSettings *settings, GByteArray *bdaddr, gboolean pan) +static void +delete_cb (NMRemoteConnection *connection, GError *error, gpointer user_data) { - GSList *list, *iter, *ret = NULL; - - list = nm_remote_settings_list_connections (settings); - for (iter = list; iter != NULL; iter = g_slist_next (iter)) { - if (match_connection (NM_CONNECTION (iter->data), bdaddr, pan)) - ret = g_slist_prepend (ret, iter->data); + if (error) { + g_warning ("Error deleting connection: (%d) %s", + error ? error->code : -1, + error && error->message ? error->message : "(unknown)"); } - g_slist_free (list); - return ret; } static void @@ -1177,16 +526,19 @@ g_message ("Removing Bluetooth connections for %s", info->str_bdaddr); - /* First PAN */ - list = list_connections_for_bdaddr (info->settings, info->bdaddr, TRUE); - for (iter = list; iter; iter = g_slist_next (iter)) - nm_remote_connection_delete (NM_REMOTE_CONNECTION (iter->data), delete_cb, NULL); - g_slist_free (list); - - /* Now DUN */ - list = list_connections_for_bdaddr (info->settings, info->bdaddr, FALSE); - for (iter = list; iter; iter = g_slist_next (iter)) - nm_remote_connection_delete (NM_REMOTE_CONNECTION (iter->data), delete_cb, NULL); + list = nm_remote_settings_list_connections (settings); + for (iter = list; iter != NULL; iter = g_slist_next (iter)) { + NMConnection *connection = iter->data; + NMSettingBluetooth *s_bt; + const GByteArray *tmp; + + s_bt = nm_connection_get_setting_bluetooth (connection); + if (s_bt) { + tmp = nm_setting_bluetooth_get_bdaddr (s_bt); + if (tmp && memcmp (tmp->data, info->bdaddr->data, tmp->len) == 0) + nm_remote_connection_delete (NM_REMOTE_CONNECTION (connection), delete_cb, NULL); + } + } g_slist_free (list); remove_cleanup (info); @@ -1208,14 +560,15 @@ GError *error = NULL; DBusGConnection *bus; RemoveInfo *info; - GByteArray *array; + struct ether_addr *addr; + NmaBtDevice *device; g_message ("Device '%s' was removed; deleting connections", bdaddr); /* Remove any connections associated with the deleted device */ - array = get_array_from_bdaddr (bdaddr); - if (!array) { + addr = ether_aton (bdaddr); + if (!addr) { g_warning ("Failed to convert Bluetooth address '%s'", bdaddr); return; } @@ -1225,13 +578,15 @@ g_warning ("%s: failed to get a connection to D-Bus! %s", __func__, error ? error->message : "(unknown)"); g_clear_error (&error); - g_byte_array_free (array, TRUE); return; } info = g_malloc0 (sizeof (RemoveInfo)); info->settings = nm_remote_settings_new (bus); - info->bdaddr = array; + + info->bdaddr = g_byte_array_sized_new (ETH_ALEN); + g_byte_array_append (info->bdaddr, (const guint8 *) addr->ether_addr_octet, ETH_ALEN); + info->str_bdaddr = g_strdup (bdaddr); info->timeout_id = g_timeout_add_seconds (15, remove_timeout, info); @@ -1241,8 +596,15 @@ info); dbus_g_connection_unref (bus); + + /* Kill the device */ + device = get_device (bdaddr); + if (device) + remove_device (device); } +/**************************************************************/ + static GbtPluginInfo plugin_info = { "network-manager-applet", has_config_widget, diff -Nru network-manager-applet-0.9.4.1/src/gnome-bluetooth/nma-bt-device.c network-manager-applet-0.9.6.2+git201210311320.2620/src/gnome-bluetooth/nma-bt-device.c --- network-manager-applet-0.9.4.1/src/gnome-bluetooth/nma-bt-device.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gnome-bluetooth/nma-bt-device.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,1165 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * NetworkManager Applet + * + * Copyright (C) 2009 Bastien Nocera + * Copyright (C) 2009 - 2010 Dan Williams + * + * 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 + * + * (C) Copyright 2009 - 2012 Red Hat, Inc. + * + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include + +#include +#include + +#include +#include + +#include "nma-bt-device.h" +#include "nma-marshal.h" +#include "nm-mobile-wizard.h" +#include "nm-utils.h" +#include "utils.h" + +#if !GLIB_CHECK_VERSION(2,28,0) +#define g_clear_object(object_ptr) \ + G_STMT_START { \ + GObject **__obj_p = (gpointer) (object_ptr); \ + if (*__obj_p) { \ + g_object_unref (*__obj_p); \ + *__obj_p = NULL; \ + } \ + } G_STMT_END +#endif + + +G_DEFINE_TYPE (NmaBtDevice, nma_bt_device, G_TYPE_OBJECT) + +#define NMA_BT_DEVICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMA_TYPE_BT_DEVICE, NmaBtDevicePrivate)) + +typedef struct { + DBusGConnection *bus; + NMRemoteSettings *settings; + + char *bdaddr; + GByteArray *bdaddr_array; + char *alias; + char *object_path; + + char *status; + gboolean busy; + + gboolean has_pan; + gboolean pan_enabled; + gboolean has_dun; + gboolean dun_enabled; + + /* DUN stuff */ + DBusGProxy *dun_proxy; + DBusGProxy *mm_proxy; + GSList *modem_proxies; + char *rfcomm_iface; + guint dun_timeout_id; + + GtkWindow *parent_window; + NMAMobileWizard *wizard; + GtkWindowGroup *window_group; +} NmaBtDevicePrivate; + + +enum { + PROP_0, + PROP_BDADDR, + PROP_ALIAS, + PROP_OBJECT_PATH, + PROP_HAS_PAN, + PROP_PAN_ENABLED, + PROP_HAS_DUN, + PROP_DUN_ENABLED, + PROP_BUSY, + PROP_STATUS, + + LAST_PROP +}; + +static void _set_pan_enabled (NmaBtDevice *device, gboolean enabled); +static void _set_dun_enabled (NmaBtDevice *device, gboolean enabled); + +#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)) + +#define BLUEZ_SERVICE "org.bluez" +#define BLUEZ_MANAGER_PATH "/" +#define BLUEZ_MANAGER_INTERFACE "org.bluez.Manager" +#define BLUEZ_ADAPTER_INTERFACE "org.bluez.Adapter" +#define BLUEZ_DEVICE_INTERFACE "org.bluez.Device" +#define BLUEZ_SERIAL_INTERFACE "org.bluez.Serial" +#define BLUEZ_NETWORK_INTERFACE "org.bluez.Network" + +#define MM_SERVICE "org.freedesktop.ModemManager" +#define MM_PATH "/org/freedesktop/ModemManager" +#define MM_INTERFACE "org.freedesktop.ModemManager" +#define MM_MODEM_INTERFACE "org.freedesktop.ModemManager.Modem" + +/*********************************************************************/ + +static gboolean +match_connection_bdaddr (NMConnection *connection, const GByteArray *bdaddr) +{ + NMSettingBluetooth *s_bt; + const GByteArray *tmp; + + s_bt = nm_connection_get_setting_bluetooth (connection); + if (s_bt) { + tmp = nm_setting_bluetooth_get_bdaddr (s_bt); + if (tmp && memcmp (tmp->data, bdaddr->data, tmp->len) == 0) + return TRUE; + } + return FALSE; +} + +static gboolean +match_connection_service (NMConnection *connection, + const GByteArray *bdaddr, + gboolean pan) +{ + NMSettingBluetooth *s_bt; + const char *type; + + if (!match_connection_bdaddr (connection, bdaddr)) + return FALSE; + + s_bt = nm_connection_get_setting_bluetooth (connection); + g_assert (s_bt); + type = nm_setting_bluetooth_get_connection_type (s_bt); + if (pan) { + if (g_strcmp0 (type, NM_SETTING_BLUETOOTH_TYPE_PANU) != 0) + return FALSE; + } else { + if (g_strcmp0 (type, NM_SETTING_BLUETOOTH_TYPE_DUN) != 0) + return FALSE; + } + + return TRUE; +} + +static void +delete_cb (NMRemoteConnection *connection, GError *error, gpointer user_data) +{ + if (error) { + g_warning ("Error deleting connection: (%d) %s", + error ? error->code : -1, + error && error->message ? error->message : "(unknown)"); + } +} + +static void +delete_connections_of_type (NMRemoteSettings *settings, + const GByteArray *bdaddr, + gboolean pan) +{ + GSList *list, *iter; + + list = nm_remote_settings_list_connections (settings); + for (iter = list; iter != NULL; iter = g_slist_next (iter)) { + NMRemoteConnection *remote = iter->data; + + if (match_connection_service (NM_CONNECTION (remote), bdaddr, pan)) + nm_remote_connection_delete (remote, delete_cb, NULL); + } + g_slist_free (list); +} + +static void +recheck_services_enabled (NmaBtDevice *self) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (self); + GSList *list, *iter; + gboolean pan = FALSE, dun = FALSE; + + /* Retrieve initial enabled state for both PAN and DUN; if there are any + * existing Bluetooth connections for the given device for either PAN + * or DUN, then we consider that service enabled. + */ + list = nm_remote_settings_list_connections (priv->settings); + for (iter = list; iter != NULL; iter = g_slist_next (iter)) { + NMConnection *connection = iter->data; + + if (match_connection_bdaddr (connection, priv->bdaddr_array)) { + NMSettingBluetooth *s_bt; + const char *type; + + s_bt = nm_connection_get_setting_bluetooth (connection); + g_assert (s_bt); + type = nm_setting_bluetooth_get_connection_type (s_bt); + if (priv->has_pan && g_strcmp0 (type, NM_SETTING_BLUETOOTH_TYPE_PANU) == 0) + pan = TRUE; + else if (priv->has_dun && g_strcmp0 (type, NM_SETTING_BLUETOOTH_TYPE_DUN) == 0) + dun = TRUE; + } + } + g_slist_free (list); + + _set_pan_enabled (self, pan); + _set_dun_enabled (self, dun); +} + +/*********************************************************************/ + +const char * +nma_bt_device_get_bdaddr (NmaBtDevice *device) +{ + return NMA_BT_DEVICE_GET_PRIVATE (device)->bdaddr; +} + +gboolean +nma_bt_device_get_busy (NmaBtDevice *device) +{ + return NMA_BT_DEVICE_GET_PRIVATE (device)->busy; +} + +static void +_set_busy (NmaBtDevice *device, gboolean busy) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (device); + + if (priv->busy != busy) { + priv->busy = busy; + g_object_notify (G_OBJECT (device), NMA_BT_DEVICE_BUSY); + } +} + +const char * +nma_bt_device_get_status (NmaBtDevice *device) +{ + return NMA_BT_DEVICE_GET_PRIVATE (device)->status; +} + +static void +_set_status (NmaBtDevice *device, const char *fmt, ...) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (device); + va_list args; + + g_free (priv->status); + priv->status = NULL; + + if (fmt) { + va_start (args, fmt); + priv->status = g_strdup_vprintf (fmt, args); + va_end (args); + g_message ("%s", priv->status); + } + + g_object_notify (G_OBJECT (device), NMA_BT_DEVICE_STATUS); +} + +/*********************************************************************/ + +static void +dun_cleanup (NmaBtDevice *self) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (self); + GSList *iter; + + for (iter = priv->modem_proxies; iter; iter = g_slist_next (iter)) + g_object_unref (DBUS_G_PROXY (iter->data)); + g_slist_free (priv->modem_proxies); + priv->modem_proxies = NULL; + + g_clear_object (&priv->mm_proxy); + + if (priv->dun_proxy && priv->rfcomm_iface) { + dbus_g_proxy_call_no_reply (priv->dun_proxy, "Disconnect", + G_TYPE_STRING, priv->rfcomm_iface, + G_TYPE_INVALID); + } + g_clear_object (&priv->dun_proxy); + + g_free (priv->rfcomm_iface); + priv->rfcomm_iface = NULL; + + if (priv->dun_timeout_id) { + g_source_remove (priv->dun_timeout_id); + priv->dun_timeout_id = 0; + } + + if (priv->wizard) { + nma_mobile_wizard_destroy (priv->wizard); + priv->wizard = NULL; + } +} + +static void +dun_error (NmaBtDevice *self, const char *func, GError *error, const char *fallback) +{ + g_warning ("%s: DUN error: %s", func, (error && error->message) ? error->message : fallback); + _set_status (self, _("Error: %s"), (error && error->message) ? error->message : fallback); + + _set_busy (self, FALSE); + dun_cleanup (self); + recheck_services_enabled (self); +} + +static NMConnection * +dun_new_cdma (NMAMobileWizardAccessMethod *method) +{ + NMConnection *connection; + NMSetting *setting; + char *uuid, *id; + + connection = nm_connection_new (); + + setting = nm_setting_cdma_new (); + g_object_set (setting, + NM_SETTING_CDMA_NUMBER, "#777", + NM_SETTING_CDMA_USERNAME, method->username, + NM_SETTING_CDMA_PASSWORD, method->password, + NULL); + nm_connection_add_setting (connection, setting); + + /* Serial setting */ + setting = nm_setting_serial_new (); + g_object_set (setting, + NM_SETTING_SERIAL_BAUD, 115200, + NM_SETTING_SERIAL_BITS, 8, + NM_SETTING_SERIAL_PARITY, 'n', + NM_SETTING_SERIAL_STOPBITS, 1, + NULL); + nm_connection_add_setting (connection, setting); + + nm_connection_add_setting (connection, nm_setting_ppp_new ()); + + setting = nm_setting_connection_new (); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); + uuid = nm_utils_uuid_generate (); + g_object_set (setting, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_BLUETOOTH_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + g_free (id); + nm_connection_add_setting (connection, setting); + + return connection; +} + +static NMConnection * +dun_new_gsm (NMAMobileWizardAccessMethod *method) +{ + NMConnection *connection; + NMSetting *setting; + char *uuid, *id; + + connection = nm_connection_new (); + + setting = nm_setting_gsm_new (); + g_object_set (setting, + NM_SETTING_GSM_NUMBER, "*99#", + NM_SETTING_GSM_USERNAME, method->username, + NM_SETTING_GSM_PASSWORD, method->password, + NM_SETTING_GSM_APN, method->gsm_apn, + NULL); + nm_connection_add_setting (connection, setting); + + /* Serial setting */ + setting = nm_setting_serial_new (); + g_object_set (setting, + NM_SETTING_SERIAL_BAUD, 115200, + NM_SETTING_SERIAL_BITS, 8, + NM_SETTING_SERIAL_PARITY, 'n', + NM_SETTING_SERIAL_STOPBITS, 1, + NULL); + nm_connection_add_setting (connection, setting); + + nm_connection_add_setting (connection, nm_setting_ppp_new ()); + + setting = nm_setting_connection_new (); + id = utils_create_mobile_connection_id (method->provider_name, method->plan_name); + uuid = nm_utils_uuid_generate (); + g_object_set (setting, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_BLUETOOTH_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + g_free (id); + nm_connection_add_setting (connection, setting); + + return connection; +} + +static void +dun_add_cb (NMRemoteSettings *settings, + NMRemoteConnection *connection, + GError *error, + gpointer user_data) +{ + NmaBtDevice *self = NMA_BT_DEVICE (user_data); + + if (error) + _set_status (self, _("Failed to create DUN connection: %s"), error->message); + else + _set_status (self, _("Your phone is now ready to use!")); + + _set_busy (self, FALSE); + dun_cleanup (self); + recheck_services_enabled (self); +} + +static void +wizard_done_cb (NMAMobileWizard *wizard, + gboolean canceled, + NMAMobileWizardAccessMethod *method, + gpointer user_data) +{ + NmaBtDevice *self = NMA_BT_DEVICE (user_data); + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (self); + NMConnection *connection = NULL; + NMSetting *s_bt; + + g_return_if_fail (wizard == priv->wizard); + + g_message ("%s: mobile wizard done", __func__); + + if (canceled || !method) { + dun_error (self, __func__, NULL, _("Mobile wizard was canceled")); + return; + } + + if (method->devtype == NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) + connection = dun_new_cdma (method); + else if (method->devtype == NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) + connection = dun_new_gsm (method); + else { + dun_error (self, __func__, NULL, _("Unknown phone device type (not GSM or CDMA)")); + return; + } + + nma_mobile_wizard_destroy (priv->wizard); + priv->wizard = NULL; + + g_assert (connection); + + /* The Bluetooth settings */ + s_bt = nm_setting_bluetooth_new (); + g_object_set (G_OBJECT (s_bt), + NM_SETTING_BLUETOOTH_BDADDR, priv->bdaddr_array, + NM_SETTING_BLUETOOTH_TYPE, NM_SETTING_BLUETOOTH_TYPE_DUN, + NULL); + nm_connection_add_setting (connection, s_bt); + + g_message ("%s: adding new setting", __func__); + + /* Add the connection to the settings service */ + nm_remote_settings_add_connection (priv->settings, + connection, + dun_add_cb, + self); + + g_message ("%s: waiting for add connection result...", __func__); +} + +static void +modem_get_all_cb (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) +{ + NmaBtDevice *self = NMA_BT_DEVICE (user_data); + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (self); + const char *path; + GHashTable *properties = NULL; + GError *error = NULL; + GValue *value; + NMDeviceType devtype = NM_DEVICE_TYPE_UNKNOWN; + + path = dbus_g_proxy_get_path (proxy); + g_message ("%s: (%s) processing GetAll reply", __func__, path); + + if (!dbus_g_proxy_end_call (proxy, call, &error, + DBUS_TYPE_G_MAP_OF_VARIANT, &properties, + G_TYPE_INVALID)) { + g_warning ("%s: (%s) Error getting modem properties: (%d) %s", + __func__, + path, + error ? error->code : -1, + (error && error->message) ? error->message : "(unknown)"); + g_error_free (error); + goto out; + } + + /* check whether this is the device we care about */ + value = g_hash_table_lookup (properties, "Device"); + if (value && G_VALUE_HOLDS_STRING (value) && g_value_get_string (value)) { + char *iface_basename = g_path_get_basename (priv->rfcomm_iface); + const char *modem_iface = g_value_get_string (value); + + if (strcmp (iface_basename, modem_iface) == 0) { + /* yay, found it! */ + + value = g_hash_table_lookup (properties, "Type"); + if (value && G_VALUE_HOLDS_UINT (value)) { + switch (g_value_get_uint (value)) { + case 1: + devtype = NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS; + break; + case 2: + devtype = NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO; + break; + default: + g_message ("%s: (%s) unknown modem type", __func__, path); + break; + } + } + } else { + g_message ("%s: (%s) (%s) not the modem we're looking for (%s)", + __func__, path, modem_iface, iface_basename); + } + + g_free (iface_basename); + } else + g_message ("%s: (%s) modem had no 'Device' property", __func__, path); + + g_hash_table_unref (properties); + + if (devtype != NM_DEVICE_TYPE_UNKNOWN) { + if (priv->wizard) { + g_message ("%s: (%s) oops! not starting Wizard as one is already in progress", __func__, path); + goto out; + } + + g_message ("%s: (%s) starting the mobile wizard", __func__, path); + + g_source_remove (priv->dun_timeout_id); + priv->dun_timeout_id = 0; + + /* Start the mobile wizard */ + priv->wizard = nma_mobile_wizard_new (priv->parent_window, + priv->window_group, + devtype, + FALSE, + wizard_done_cb, + self); + nma_mobile_wizard_present (priv->wizard); + } else { + dun_error (self, __func__, NULL, _("unknown modem type.")); + } + +out: + g_message ("%s: finished", __func__); +} + +static void +modem_added (DBusGProxy *proxy, const char *path, gpointer user_data) +{ + NmaBtDevice *self = NMA_BT_DEVICE (user_data); + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (self); + DBusGProxy *props_proxy; + + g_return_if_fail (path != NULL); + + g_message ("%s: (%s) modem found", __func__, path); + + /* Create a proxy for the modem and get its properties */ + props_proxy = dbus_g_proxy_new_for_name (priv->bus, + MM_SERVICE, + path, + "org.freedesktop.DBus.Properties"); + g_assert (proxy); + priv->modem_proxies = g_slist_append (priv->modem_proxies, props_proxy); + + g_message ("%s: (%s) calling GetAll...", __func__, path); + + dbus_g_proxy_begin_call (props_proxy, "GetAll", + modem_get_all_cb, + self, + NULL, + G_TYPE_STRING, MM_MODEM_INTERFACE, + G_TYPE_INVALID); +} + +static void +modem_removed (DBusGProxy *proxy, const char *path, gpointer user_data) +{ + NmaBtDevice *self = NMA_BT_DEVICE (user_data); + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (self); + GSList *iter; + + g_return_if_fail (path != NULL); + + g_message ("%s: (%s) modem removed", __func__, path); + + /* Clean up if a modem gets removed */ + for (iter = priv->modem_proxies; iter; iter = g_slist_next (iter)) { + if (!strcmp (path, dbus_g_proxy_get_path (DBUS_G_PROXY (iter->data)))) { + priv->modem_proxies = g_slist_remove (priv->modem_proxies, iter->data); + g_object_unref (iter->data); + break; + } + } +} + +static void +dun_connect_cb (DBusGProxy *proxy, + DBusGProxyCall *call, + void *user_data) +{ + NmaBtDevice *self = NMA_BT_DEVICE (user_data); + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (self); + GError *error = NULL; + char *device; + + g_message ("%s: processing Connect reply", __func__); + + if (!dbus_g_proxy_end_call (proxy, call, &error, + G_TYPE_STRING, &device, + G_TYPE_INVALID)) { + dun_error (self, __func__, error, _("failed to connect to the phone.")); + g_clear_error (&error); + goto out; + } + + if (!device || !strlen (device)) { + dun_error (self, __func__, NULL, _("failed to connect to the phone.")); + g_free (device); + goto out; + } + + g_free (priv->rfcomm_iface); + priv->rfcomm_iface = device; + g_message ("%s: new rfcomm interface '%s'", __func__, device); + +out: + g_message ("%s: finished", __func__); +} + +static void +dun_property_changed (DBusGProxy *proxy, + const char *property, + GValue *value, + gpointer user_data) +{ + NmaBtDevice *self = NMA_BT_DEVICE (user_data); + gboolean connected; + + if (strcmp (property, "Connected") == 0) { + connected = g_value_get_boolean (value); + g_message ("%s: device property Connected changed to %s", + __func__, + connected ? "TRUE" : "FALSE"); + + if (connected) { + /* Wait for MM here ? */ + } else + dun_error (self, __func__, NULL, _("unexpectedly disconnected from the phone.")); + } +} + +static gboolean +dun_timeout_cb (gpointer user_data) +{ + NmaBtDevice *self = NMA_BT_DEVICE (user_data); + + NMA_BT_DEVICE_GET_PRIVATE (self)->dun_timeout_id = 0; + dun_error (self, __func__, NULL, _("timed out detecting phone details.")); + return FALSE; +} + +static void +dun_start (NmaBtDevice *self) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (self); + + g_message ("%s: starting DUN device discovery...", __func__); + + _set_status (self, _("Detecting phone configuration...")); + + /* ModemManager stuff */ + priv->mm_proxy = dbus_g_proxy_new_for_name (priv->bus, + MM_SERVICE, + MM_PATH, + MM_INTERFACE); + g_assert (priv->mm_proxy); + + dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__BOXED, + G_TYPE_NONE, + G_TYPE_BOXED, + G_TYPE_INVALID); + dbus_g_proxy_add_signal (priv->mm_proxy, "DeviceAdded", + DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (priv->mm_proxy, "DeviceAdded", + G_CALLBACK (modem_added), self, + NULL); + + dbus_g_proxy_add_signal (priv->mm_proxy, "DeviceRemoved", + DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (priv->mm_proxy, "DeviceRemoved", + G_CALLBACK (modem_removed), self, + NULL); + + priv->dun_proxy = dbus_g_proxy_new_for_name (priv->bus, + BLUEZ_SERVICE, + priv->object_path, + BLUEZ_SERIAL_INTERFACE); + g_assert (priv->dun_proxy); + + priv->dun_timeout_id = g_timeout_add_seconds (45, dun_timeout_cb, self); + + g_message ("%s: calling Connect...", __func__); + + /* Watch for BT device property changes */ + dbus_g_object_register_marshaller (_nma_marshal_VOID__STRING_BOXED, + G_TYPE_NONE, + G_TYPE_STRING, G_TYPE_VALUE, + G_TYPE_INVALID); + dbus_g_proxy_add_signal (priv->dun_proxy, "PropertyChanged", + G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID); + dbus_g_proxy_connect_signal (priv->dun_proxy, "PropertyChanged", + G_CALLBACK (dun_property_changed), self, NULL); + + /* Request a connection to the device and get the port */ + dbus_g_proxy_begin_call_with_timeout (priv->dun_proxy, "Connect", + dun_connect_cb, + self, + NULL, + 20000, + G_TYPE_STRING, "dun", + G_TYPE_INVALID); + + g_message ("%s: waiting for Connect success...", __func__); +} + +gboolean +nma_bt_device_get_has_dun (NmaBtDevice *device) +{ + return NMA_BT_DEVICE_GET_PRIVATE (device)->has_dun; +} + +gboolean +nma_bt_device_get_dun_enabled (NmaBtDevice *device) +{ + return NMA_BT_DEVICE_GET_PRIVATE (device)->dun_enabled; +} + +static void +_set_dun_enabled (NmaBtDevice *device, gboolean enabled) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (device); + + if (priv->dun_enabled != enabled) { + priv->dun_enabled = enabled; + g_object_notify (G_OBJECT (device), NMA_BT_DEVICE_DUN_ENABLED); + } +} + +void +nma_bt_device_set_dun_enabled (NmaBtDevice *device, gboolean enabled) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (device); + + _set_dun_enabled (device, enabled); + + if (enabled) { + _set_busy (device, TRUE); + dun_start (device); + } else + delete_connections_of_type (priv->settings, priv->bdaddr_array, FALSE); +} + +void +nma_bt_device_cancel_dun (NmaBtDevice *device) +{ + dun_error (device, __func__, NULL, _("The default Bluetooth adapter must be enabled before setting up a Dial-Up-Networking connection.")); +} + +/*********************************************************************/ + +gboolean +nma_bt_device_get_has_pan (NmaBtDevice *device) +{ + return NMA_BT_DEVICE_GET_PRIVATE (device)->has_pan; +} + +gboolean +nma_bt_device_get_pan_enabled (NmaBtDevice *device) +{ + return NMA_BT_DEVICE_GET_PRIVATE (device)->pan_enabled; +} + +static void +_set_pan_enabled (NmaBtDevice *device, gboolean enabled) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (device); + + if (priv->pan_enabled != enabled) { + priv->pan_enabled = enabled; + g_object_notify (G_OBJECT (device), NMA_BT_DEVICE_PAN_ENABLED); + } +} + +static void +pan_add_cb (NMRemoteSettings *settings, + NMRemoteConnection *connection, + GError *error, + gpointer user_data) +{ + NmaBtDevice *self = NMA_BT_DEVICE (user_data); + + if (error) + _set_status (self, _("Failed to create PAN connection: %s"), error->message); + else + _set_status (self, _("Your phone is now ready to use!")); + + recheck_services_enabled (self); + _set_busy (self, FALSE); +} + +static void +add_pan_connection (NmaBtDevice *self) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (self); + NMConnection *connection; + NMSetting *setting, *bt_setting, *ip_setting; + char *id, *uuid; + + /* The connection */ + connection = nm_connection_new (); + + /* The connection settings */ + setting = nm_setting_connection_new (); + id = g_strdup_printf (_("%s Network"), priv->alias ? priv->alias : priv->bdaddr); + uuid = nm_utils_uuid_generate (); + g_object_set (G_OBJECT (setting), + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_UUID, uuid, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_BLUETOOTH_SETTING_NAME, + NM_SETTING_CONNECTION_AUTOCONNECT, FALSE, + NULL); + g_free (id); + g_free (uuid); + nm_connection_add_setting (connection, setting); + + /* The Bluetooth settings */ + bt_setting = nm_setting_bluetooth_new (); + g_object_set (G_OBJECT (bt_setting), + NM_SETTING_BLUETOOTH_BDADDR, priv->bdaddr_array, + NM_SETTING_BLUETOOTH_TYPE, NM_SETTING_BLUETOOTH_TYPE_PANU, + NULL); + nm_connection_add_setting (connection, bt_setting); + + /* IPv4 */ + ip_setting = nm_setting_ip4_config_new (); + g_object_set (G_OBJECT (ip_setting), + NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, + NM_SETTING_IP6_CONFIG_MAY_FAIL, FALSE, + NULL); + nm_connection_add_setting (connection, ip_setting); + + /* IPv6 */ + ip_setting = nm_setting_ip6_config_new (); + g_object_set (G_OBJECT (ip_setting), + NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, + NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE, + NULL); + nm_connection_add_setting (connection, ip_setting); + + /* Add the connection to the settings service */ + nm_remote_settings_add_connection (priv->settings, + connection, + pan_add_cb, + self); +} + +void +nma_bt_device_set_pan_enabled (NmaBtDevice *device, gboolean enabled) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (device); + + _set_pan_enabled (device, enabled); + + if (enabled) { + _set_busy (device, TRUE); + add_pan_connection (device); + } else + delete_connections_of_type (priv->settings, priv->bdaddr_array, TRUE); +} + +/*********************************************************************/ + +void +nma_bt_device_set_parent_window (NmaBtDevice *device, GtkWindow *window) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (device); + + if (window == priv->parent_window) + return; + + if (priv->parent_window) { + gtk_window_group_remove_window (priv->window_group, priv->parent_window); + g_object_unref (priv->parent_window); + } + priv->parent_window = g_object_ref (window); + gtk_window_group_add_window (priv->window_group, window); +} + +/*********************************************************************/ + +static void +connections_read (NMRemoteSettings *settings, gpointer user_data) +{ + recheck_services_enabled (NMA_BT_DEVICE (user_data)); +} + +NmaBtDevice * +nma_bt_device_new (const char *bdaddr, + const char *alias, + const char *object_path, + gboolean has_pan, + gboolean has_dun) +{ + NmaBtDevice *self; + GError *error = NULL; + + g_return_val_if_fail (bdaddr != NULL, NULL); + g_return_val_if_fail (object_path != NULL, NULL); + + self = (NmaBtDevice *) g_object_new (NMA_TYPE_BT_DEVICE, + NMA_BT_DEVICE_BDADDR, bdaddr, + NMA_BT_DEVICE_ALIAS, alias, + NMA_BT_DEVICE_OBJECT_PATH, object_path, + NMA_BT_DEVICE_HAS_PAN, has_pan, + NMA_BT_DEVICE_HAS_DUN, has_dun, + NULL); + if (self) { + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (self); + struct ether_addr *addr; + + g_assert (priv->bdaddr); + g_assert (priv->object_path); + + addr = ether_aton (priv->bdaddr); + if (!addr) { + g_warning ("%s: invalid Bluetooth address '%s'", __func__, priv->bdaddr); + g_object_unref (self); + return NULL; + } + + priv->bdaddr_array = g_byte_array_sized_new (ETH_ALEN); + g_byte_array_append (priv->bdaddr_array, (const guint8 *) addr->ether_addr_octet, ETH_ALEN); + + priv->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); + if (error) { + g_warning ("%s: failed to connect to D-Bus: %s", __func__, error->message); + g_object_unref (self); + self = NULL; + } + + priv->window_group = gtk_window_group_new (); + + priv->settings = nm_remote_settings_new (priv->bus); + g_signal_connect (priv->settings, + NM_REMOTE_SETTINGS_CONNECTIONS_READ, + G_CALLBACK (connections_read), + self); + } + return self; +} + +static void +nma_bt_device_init (NmaBtDevice *self) +{ +} + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (object); + + switch (prop_id) { + case PROP_BDADDR: + g_value_set_string (value, priv->bdaddr); + break; + case PROP_ALIAS: + g_value_set_string (value, priv->alias); + break; + case PROP_OBJECT_PATH: + g_value_set_string (value, priv->object_path); + break; + case PROP_HAS_PAN: + g_value_set_boolean (value, priv->has_pan); + break; + case PROP_PAN_ENABLED: + g_value_set_boolean (value, priv->pan_enabled); + break; + case PROP_HAS_DUN: + g_value_set_boolean (value, priv->has_dun); + break; + case PROP_DUN_ENABLED: + g_value_set_boolean (value, priv->dun_enabled); + break; + case PROP_BUSY: + g_value_set_boolean (value, priv->busy); + break; + case PROP_STATUS: + g_value_set_string (value, priv->status); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (object); + + switch (prop_id) { + case PROP_BDADDR: + priv->bdaddr = g_value_dup_string (value); + break; + case PROP_ALIAS: + priv->alias = g_value_dup_string (value); + break; + case PROP_OBJECT_PATH: + priv->object_path = g_value_dup_string (value); + break; + case PROP_HAS_PAN: + priv->has_pan = g_value_get_boolean (value); + break; + case PROP_HAS_DUN: + priv->has_dun = g_value_get_boolean (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +dispose (GObject *object) +{ + NmaBtDevicePrivate *priv = NMA_BT_DEVICE_GET_PRIVATE (object); + + dun_cleanup (NMA_BT_DEVICE (object)); + + g_free (priv->bdaddr); + priv->bdaddr = NULL; + g_free (priv->alias); + priv->alias = NULL; + g_free (priv->object_path); + priv->object_path = NULL; + g_free (priv->status); + priv->status = NULL; + + g_clear_object (&priv->window_group); + g_clear_object (&priv->parent_window); + + if (priv->bdaddr_array) { + g_byte_array_free (priv->bdaddr_array, TRUE); + priv->bdaddr_array = NULL; + } + + G_OBJECT_CLASS (nma_bt_device_parent_class)->dispose (object); +} + +static void +nma_bt_device_class_init (NmaBtDeviceClass *btdevice_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (btdevice_class); + + g_type_class_add_private (btdevice_class, sizeof (NmaBtDevicePrivate)); + + /* virtual methods */ + object_class->get_property = get_property; + object_class->set_property = set_property; + object_class->dispose = dispose; + + /* properties */ + g_object_class_install_property (object_class, PROP_BDADDR, + g_param_spec_string (NMA_BT_DEVICE_BDADDR, + "Bluetooth address", + "Bluetooth address", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, PROP_ALIAS, + g_param_spec_string (NMA_BT_DEVICE_ALIAS, + "Bluetooth alias", + "Bluetooth alias", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, PROP_OBJECT_PATH, + g_param_spec_string (NMA_BT_DEVICE_OBJECT_PATH, + "Bluez object path", + "Bluez object path", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, PROP_HAS_PAN, + g_param_spec_boolean (NMA_BT_DEVICE_HAS_PAN, + "PAN capable", + "PAN capable", + FALSE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, PROP_PAN_ENABLED, + g_param_spec_boolean (NMA_BT_DEVICE_PAN_ENABLED, + "PAN enabled", + "PAN enabled", + FALSE, + G_PARAM_READABLE)); + + g_object_class_install_property (object_class, PROP_HAS_DUN, + g_param_spec_boolean (NMA_BT_DEVICE_HAS_DUN, + "DUN capable", + "DUN capable", + FALSE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, PROP_DUN_ENABLED, + g_param_spec_boolean (NMA_BT_DEVICE_DUN_ENABLED, + "DUN enabled", + "DUN enabled", + FALSE, + G_PARAM_READABLE)); + + g_object_class_install_property (object_class, PROP_BUSY, + g_param_spec_boolean (NMA_BT_DEVICE_BUSY, + "Busy", + "Busy", + FALSE, + G_PARAM_READABLE)); + + g_object_class_install_property (object_class, PROP_STATUS, + g_param_spec_string (NMA_BT_DEVICE_STATUS, + "Status", + "Status", + NULL, + G_PARAM_READABLE)); +} diff -Nru network-manager-applet-0.9.4.1/src/gnome-bluetooth/nma-bt-device.h network-manager-applet-0.9.6.2+git201210311320.2620/src/gnome-bluetooth/nma-bt-device.h --- network-manager-applet-0.9.4.1/src/gnome-bluetooth/nma-bt-device.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/gnome-bluetooth/nma-bt-device.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,84 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * NetworkManager Applet + * + * 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 + * + * (C) Copyright 2009 - 2012 Red Hat, Inc. + * + */ + +#ifndef NMA_BT_DEVICE_H +#define NMA_BT_DEVICE_H + +#include +#include +#include +#include + +#define NMA_TYPE_BT_DEVICE (nma_bt_device_get_type ()) +#define NMA_BT_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMA_TYPE_BT_DEVICE, NmaBtDevice)) +#define NMA_BT_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMA_TYPE_BT_DEVICE, NmaBtDeviceClass)) +#define NMA_IS_BT_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMA_TYPE_BT_DEVICE)) +#define NMA_IS_BT_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMA_TYPE_BT_DEVICE)) +#define NMA_BT_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMA_TYPE_BT_DEVICE, NmaBtDeviceClass)) + +#define NMA_BT_DEVICE_BDADDR "bdaddr" +#define NMA_BT_DEVICE_ALIAS "alias" +#define NMA_BT_DEVICE_OBJECT_PATH "object-path" +#define NMA_BT_DEVICE_HAS_PAN "has-pan" +#define NMA_BT_DEVICE_PAN_ENABLED "pan-enabled" +#define NMA_BT_DEVICE_HAS_DUN "has-dun" +#define NMA_BT_DEVICE_DUN_ENABLED "dun-enabled" +#define NMA_BT_DEVICE_BUSY "busy" +#define NMA_BT_DEVICE_STATUS "status" + +typedef struct { + GObject parent; +} NmaBtDevice; + +typedef struct { + GObjectClass parent; +} NmaBtDeviceClass; + +GType nma_bt_device_get_type (void); + +NmaBtDevice *nma_bt_device_new (const char *bdaddr, + const char *alias, + const char *object_path, + gboolean has_pan, + gboolean has_dun); + +void nma_bt_device_set_parent_window (NmaBtDevice *device, + GtkWindow *window); + +const char *nma_bt_device_get_bdaddr (NmaBtDevice *device); + +gboolean nma_bt_device_get_has_dun (NmaBtDevice *device); +gboolean nma_bt_device_get_dun_enabled (NmaBtDevice *device); +void nma_bt_device_set_dun_enabled (NmaBtDevice *device, gboolean enabled); + +void nma_bt_device_cancel_dun (NmaBtDevice *device); + +gboolean nma_bt_device_get_has_pan (NmaBtDevice *device); +gboolean nma_bt_device_get_pan_enabled (NmaBtDevice *device); +void nma_bt_device_set_pan_enabled (NmaBtDevice *device, gboolean enabled); + +gboolean nma_bt_device_get_busy (NmaBtDevice *device); + +const char *nma_bt_device_get_status (NmaBtDevice *device); + +#endif /* NMA_BT_DEVICE_H */ + diff -Nru network-manager-applet-0.9.4.1/src/libnm-gtk/Makefile.am network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/Makefile.am --- network-manager-applet-0.9.4.1/src/libnm-gtk/Makefile.am 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/Makefile.am 2012-10-31 13:20:57.000000000 +0000 @@ -4,20 +4,25 @@ libnmgtkdir = $(includedir)/libnm-gtk libnmgtk_HEADERS = \ + nm-wifi-dialog.h \ nm-wireless-dialog.h \ - nm-mobile-wizard.h + nm-mobile-wizard.h \ + nm-ui-utils.h lib_LTLIBRARIES = libnm-gtk.la libnm_gtk_la_SOURCES = \ + nm-wifi-dialog.c \ nm-wireless-dialog.c \ - nm-mobile-wizard.c + nm-mobile-wizard.c \ + nm-ui-utils.c libnm_gtk_la_CFLAGS = \ $(GTK_CFLAGS) \ $(NMA_CFLAGS) \ $(DBUS_CFLAGS) \ $(GNOME_KEYRING_CFLAGS) \ + $(GUDEV_CFLAGS) \ -DICONDIR=\""$(datadir)/icons"\" \ -DUIDIR=\""$(uidir)"\" \ -DBINDIR=\""$(bindir)"\" \ @@ -35,6 +40,7 @@ $(GTK_LIBS) \ $(NMA_LIBS) \ $(GNOME_KEYRING_LIBS) \ + $(GUDEV_LIBS) \ $(top_builddir)/src/marshallers/libmarshallers.la \ $(top_builddir)/src/wireless-security/libwireless-security.la @@ -45,4 +51,31 @@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libnm-gtk.pc +-include $(INTROSPECTION_MAKEFILE) +INTROSPECTION_GIRS = + +if HAVE_INTROSPECTION +introspection_sources = \ + $(filter-out \ + nm-wireless-dialog.%, \ + $(libnmgtk_HEADERS) $(libnm_gtk_la_SOURCES)) + +NMGtk-1.0.gir: libnm-gtk.la +NMGtk_1_0_gir_INCLUDES = NMClient-1.0 NetworkManager-1.0 Gtk-3.0 +NMGtk_1_0_gir_EXPORT_PACKAGES = libnm-gtk +NMGtk_1_0_gir_CFLAGS = $(libnm_gtk_la_CFLAGS) +NMGtk_1_0_gir_LIBS = libnm-gtk.la +NMGtk_1_0_gir_FILES = $(introspection_sources) +NMGtk_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NMA --symbol-prefix=nma +INTROSPECTION_GIRS += NMGtk-1.0.gir + +girdir = $(datadir)/gir-1.0 +gir_DATA = $(INTROSPECTION_GIRS) + +typelibdir = $(libdir)/girepository-1.0 +typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) + +CLEANFILES = $(gir_DATA) $(typelib_DATA) +endif + EXTRA_DIST = libnm-gtk.pc.in $(ui_DATA) diff -Nru network-manager-applet-0.9.4.1/src/libnm-gtk/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/Makefile.in --- network-manager-applet-0.9.4.1/src/libnm-gtk/Makefile.in 2012-03-23 22:55:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,732 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/libnm-gtk -DIST_COMMON = $(libnmgtk_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/libnm-gtk.pc.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = libnm-gtk.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(uidir)" "$(DESTDIR)$(libnmgtkdir)" -LTLIBRARIES = $(lib_LTLIBRARIES) -am__DEPENDENCIES_1 = -libnm_gtk_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(top_builddir)/src/marshallers/libmarshallers.la \ - $(top_builddir)/src/wireless-security/libwireless-security.la -am_libnm_gtk_la_OBJECTS = libnm_gtk_la-nm-wireless-dialog.lo \ - libnm_gtk_la-nm-mobile-wizard.lo -libnm_gtk_la_OBJECTS = $(am_libnm_gtk_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -libnm_gtk_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libnm_gtk_la_CFLAGS) \ - $(CFLAGS) $(libnm_gtk_la_LDFLAGS) $(LDFLAGS) -o $@ -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libnm_gtk_la_SOURCES) -DIST_SOURCES = $(libnm_gtk_la_SOURCES) -DATA = $(pkgconfig_DATA) $(ui_DATA) -HEADERS = $(libnmgtk_HEADERS) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -uidir = $(datadir)/libnm-gtk -ui_DATA = wifi.ui -libnmgtkdir = $(includedir)/libnm-gtk -libnmgtk_HEADERS = \ - nm-wireless-dialog.h \ - nm-mobile-wizard.h - -lib_LTLIBRARIES = libnm-gtk.la -libnm_gtk_la_SOURCES = \ - nm-wireless-dialog.c \ - nm-mobile-wizard.c - -libnm_gtk_la_CFLAGS = \ - $(GTK_CFLAGS) \ - $(NMA_CFLAGS) \ - $(DBUS_CFLAGS) \ - $(GNOME_KEYRING_CFLAGS) \ - -DICONDIR=\""$(datadir)/icons"\" \ - -DUIDIR=\""$(uidir)"\" \ - -DBINDIR=\""$(bindir)"\" \ - -DSYSCONFDIR=\""$(sysconfdir)"\" \ - -DLIBEXECDIR=\""$(libexecdir)"\" \ - -DAUTOSTARTDIR=\""$(sysconfdir)/xdg/autostart"\" \ - -DVPN_NAME_FILES_DIR=\""$(sysconfdir)/NetworkManager/VPN"\" \ - -DNMALOCALEDIR=\"$(datadir)/locale\" \ - $(DISABLE_DEPRECATED) \ - -I${top_builddir}/src/marshallers \ - -I${top_srcdir}/src/utils \ - -I${top_srcdir}/src/wireless-security - -libnm_gtk_la_LIBADD = \ - $(GTK_LIBS) \ - $(NMA_LIBS) \ - $(GNOME_KEYRING_LIBS) \ - $(top_builddir)/src/marshallers/libmarshallers.la \ - $(top_builddir)/src/wireless-security/libwireless-security.la - -libnm_gtk_la_LDFLAGS = -Wl,-no-undefined \ - -export-symbols-regex '^nma_.*' - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = libnm-gtk.pc -EXTRA_DIST = libnm-gtk.pc.in $(ui_DATA) -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/libnm-gtk/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/libnm-gtk/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -libnm-gtk.pc: $(top_builddir)/config.status $(srcdir)/libnm-gtk.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ - } - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libnm-gtk.la: $(libnm_gtk_la_OBJECTS) $(libnm_gtk_la_DEPENDENCIES) - $(AM_V_CCLD)$(libnm_gtk_la_LINK) -rpath $(libdir) $(libnm_gtk_la_OBJECTS) $(libnm_gtk_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_gtk_la-nm-mobile-wizard.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_gtk_la-nm-wireless-dialog.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -libnm_gtk_la-nm-wireless-dialog.lo: nm-wireless-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_gtk_la_CFLAGS) $(CFLAGS) -MT libnm_gtk_la-nm-wireless-dialog.lo -MD -MP -MF $(DEPDIR)/libnm_gtk_la-nm-wireless-dialog.Tpo -c -o libnm_gtk_la-nm-wireless-dialog.lo `test -f 'nm-wireless-dialog.c' || echo '$(srcdir)/'`nm-wireless-dialog.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_gtk_la-nm-wireless-dialog.Tpo $(DEPDIR)/libnm_gtk_la-nm-wireless-dialog.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-wireless-dialog.c' object='libnm_gtk_la-nm-wireless-dialog.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_gtk_la_CFLAGS) $(CFLAGS) -c -o libnm_gtk_la-nm-wireless-dialog.lo `test -f 'nm-wireless-dialog.c' || echo '$(srcdir)/'`nm-wireless-dialog.c - -libnm_gtk_la-nm-mobile-wizard.lo: nm-mobile-wizard.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_gtk_la_CFLAGS) $(CFLAGS) -MT libnm_gtk_la-nm-mobile-wizard.lo -MD -MP -MF $(DEPDIR)/libnm_gtk_la-nm-mobile-wizard.Tpo -c -o libnm_gtk_la-nm-mobile-wizard.lo `test -f 'nm-mobile-wizard.c' || echo '$(srcdir)/'`nm-mobile-wizard.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_gtk_la-nm-mobile-wizard.Tpo $(DEPDIR)/libnm_gtk_la-nm-mobile-wizard.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-mobile-wizard.c' object='libnm_gtk_la-nm-mobile-wizard.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_gtk_la_CFLAGS) $(CFLAGS) -c -o libnm_gtk_la-nm-mobile-wizard.lo `test -f 'nm-mobile-wizard.c' || echo '$(srcdir)/'`nm-mobile-wizard.c - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files -install-uiDATA: $(ui_DATA) - @$(NORMAL_INSTALL) - test -z "$(uidir)" || $(MKDIR_P) "$(DESTDIR)$(uidir)" - @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(uidir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(uidir)" || exit $$?; \ - done - -uninstall-uiDATA: - @$(NORMAL_UNINSTALL) - @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(uidir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(uidir)" && rm -f $$files -install-libnmgtkHEADERS: $(libnmgtk_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(libnmgtkdir)" || $(MKDIR_P) "$(DESTDIR)$(libnmgtkdir)" - @list='$(libnmgtk_HEADERS)'; test -n "$(libnmgtkdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libnmgtkdir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libnmgtkdir)" || exit $$?; \ - done - -uninstall-libnmgtkHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libnmgtk_HEADERS)'; test -n "$(libnmgtkdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(libnmgtkdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(libnmgtkdir)" && rm -f $$files - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(uidir)" "$(DESTDIR)$(libnmgtkdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-libnmgtkHEADERS install-pkgconfigDATA \ - install-uiDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-libLTLIBRARIES - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libLTLIBRARIES uninstall-libnmgtkHEADERS \ - uninstall-pkgconfigDATA uninstall-uiDATA - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am \ - install-libLTLIBRARIES install-libnmgtkHEADERS install-man \ - install-pdf install-pdf-am install-pkgconfigDATA install-ps \ - install-ps-am install-strip install-uiDATA installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libLTLIBRARIES \ - uninstall-libnmgtkHEADERS uninstall-pkgconfigDATA \ - uninstall-uiDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/src/libnm-gtk/nm-mobile-wizard.c network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-mobile-wizard.c --- network-manager-applet-0.9.4.1/src/libnm-gtk/nm-mobile-wizard.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-mobile-wizard.c 2012-10-31 13:21:01.000000000 +0000 @@ -17,7 +17,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2008 - 2011 Red Hat, Inc. + * (C) Copyright 2008 - 2012 Red Hat, Inc. */ #include "config.h" @@ -26,7 +26,7 @@ #include #include -#include +#include #include @@ -38,7 +38,7 @@ #include "nm-mobile-wizard.h" #include "nmn-mobile-providers.h" -#include "utils.h" +#include "nm-ui-utils.h" #define DEVICE_TAG "device" #define TYPE_TAG "setting-type" @@ -141,8 +141,15 @@ wiz_method->username = method->username ? g_strdup (method->username) : NULL; wiz_method->password = method->password ? g_strdup (method->password) : NULL; } else { - if (self->provider_only_cdma) + if (self->provider_only_cdma) { method_type = NMN_MOBILE_ACCESS_METHOD_TYPE_CDMA; + /* Take username and password from the first (only) method for CDMA only provider */ + if (provider->methods) { + method = provider->methods->data; + wiz_method->username = method->username ? g_strdup (method->username) : NULL; + wiz_method->password = method->password ? g_strdup (method->password) : NULL; + } + } else { method_type = NMN_MOBILE_ACCESS_METHOD_TYPE_GSM; wiz_method->gsm_apn = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->plan_unlisted_entry))); @@ -164,6 +171,8 @@ (*(self->callback)) (self, FALSE, wiz_method, self->user_data); + if (provider) + nmn_mobile_provider_unref (provider); g_free (wiz_method->provider_name); g_free (wiz_method->plan_name); g_free (wiz_method->username); @@ -258,13 +267,13 @@ gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 6); } - gtk_widget_show_all (vbox); + gtk_widget_show (vbox); self->confirm_idx = gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), vbox, _("Confirm Mobile Broadband Settings")); - gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_CONFIRM); + gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); self->confirm_page = vbox; } @@ -285,17 +294,20 @@ /* Provider */ str = g_string_new (NULL); - if (provider) + if (provider) { g_string_append (str, provider->name); - else { + nmn_mobile_provider_unref (provider); + } else { const char *unlisted_provider; unlisted_provider = gtk_entry_get_text (GTK_ENTRY (self->provider_unlisted_entry)); g_string_append (str, unlisted_provider); } - if (country) + if (country) { g_string_append_printf (str, ", %s", country); + g_free (country); + } gtk_label_set_text (GTK_LABEL (self->confirm_provider), str->str); g_string_free (str, TRUE); @@ -531,10 +543,10 @@ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show (vbox); self->plan_idx = gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), vbox, _("Choose your Billing Plan")); gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_CONTENT); - gtk_widget_show_all (vbox); self->plan_page = vbox; } @@ -569,6 +581,7 @@ -1); count++; } + nmn_mobile_provider_unref (provider); /* Draw the separator */ if (count) @@ -826,10 +839,10 @@ if (self->method_type != NMN_MOBILE_ACCESS_METHOD_TYPE_UNKNOWN) gtk_widget_hide (self->provider_unlisted_type_combo); + gtk_widget_show (vbox); self->providers_idx = gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), vbox, _("Choose your Provider")); gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_CONTENT); - gtk_widget_show_all (vbox); self->providers_page = vbox; } @@ -1142,11 +1155,11 @@ gtk_container_add (GTK_CONTAINER (alignment), scroll); gtk_box_pack_start (GTK_BOX (vbox), alignment, TRUE, TRUE, 6); + gtk_widget_show (vbox); self->country_idx = gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), vbox, _("Choose your Provider's Country or Region")); gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_CONTENT); gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); - gtk_widget_show_all (vbox); self->country_page = vbox; @@ -1188,7 +1201,7 @@ __intro_device_added (NMAMobileWizard *self, NMDevice *device, gboolean select_it) { GtkTreeIter iter; - const char *desc = utils_get_device_description (device); + const char *desc = nma_utils_get_device_description (device); NMDeviceModemCapabilities caps; if (!NM_IS_DEVICE_MODEM (device)) @@ -1345,7 +1358,7 @@ gtk_tree_model_get (GTK_TREE_MODEL (self->dev_store), &iter, INTRO_COL_DEVICE, &selected, -1); if (selected) { - self->dev_desc = g_strdup (utils_get_device_description (selected)); + self->dev_desc = g_strdup (nma_utils_get_device_description (selected)); caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (selected)); if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) self->method_type = NMN_MOBILE_ACCESS_METHOD_TYPE_GSM; @@ -1456,13 +1469,13 @@ intro_add_initial_devices (self); } - gtk_widget_show_all (vbox); + gtk_widget_show (vbox); gtk_assistant_append_page (GTK_ASSISTANT (self->assistant), vbox); gtk_assistant_set_page_title (GTK_ASSISTANT (self->assistant), vbox, _("Set up a Mobile Broadband Connection")); - gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); gtk_assistant_set_page_type (GTK_ASSISTANT (self->assistant), vbox, GTK_ASSISTANT_PAGE_INTRO); + gtk_assistant_set_page_complete (GTK_ASSISTANT (self->assistant), vbox, TRUE); } /**********************************************************/ @@ -1492,6 +1505,8 @@ { NMAMobileWizard *self = user_data; + gtk_widget_show_all (page); + if (page != self->providers_page) remove_provider_focus_idle (self); if (page != self->country_page) @@ -1585,6 +1600,10 @@ return cc; } +/** + * nma_mobile_wizard_new: (skip) + * @cb: (scope async): + */ NMAMobileWizard * nma_mobile_wizard_new (GtkWindow *parent, GtkWindowGroup *window_group, @@ -1636,6 +1655,8 @@ g_signal_connect (self->assistant, "cancel", G_CALLBACK (assistant_cancel), self); g_signal_connect (self->assistant, "prepare", G_CALLBACK (assistant_prepare), self); + gtk_assistant_update_buttons_state (GTK_ASSISTANT (self->assistant)); + /* Run the wizard */ if (parent) gtk_window_set_transient_for (GTK_WINDOW (self->assistant), parent); @@ -1655,7 +1676,6 @@ g_return_if_fail (self != NULL); gtk_window_present (GTK_WINDOW (self->assistant)); - gtk_widget_show_all (self->assistant); } void diff -Nru network-manager-applet-0.9.4.1/src/libnm-gtk/nm-ui-utils.c network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-ui-utils.c --- network-manager-applet-0.9.4.1/src/libnm-gtk/nm-ui-utils.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-ui-utils.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,499 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2007 - 2012 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include +#include + +#include + +#include "nm-ui-utils.h" + +static char *ignored_words[] = { + "Semiconductor", + "Components", + "Corporation", + "Communications", + "Company", + "Corp.", + "Corp", + "Co.", + "Inc.", + "Inc", + "Incorporated", + "Ltd.", + "Limited.", + "Intel?", + "chipset", + "adapter", + "[hex]", + "NDIS", + "Module", + NULL +}; + +static char *ignored_phrases[] = { + "Multiprotocol MAC/baseband processor", + "Wireless LAN Controller", + "Wireless LAN Adapter", + "Wireless Adapter", + "Network Connection", + "Wireless Cardbus Adapter", + "Wireless CardBus Adapter", + "54 Mbps Wireless PC Card", + "Wireless PC Card", + "Wireless PC", + "PC Card with XJACK(r) Antenna", + "Wireless cardbus", + "Wireless LAN PC Card", + "Technology Group Ltd.", + "Communication S.p.A.", + "Business Mobile Networks BV", + "Mobile Broadband Minicard Composite Device", + "Mobile Communications AB", + "(PC-Suite Mode)", + NULL +}; + +static char * +fixup_desc_string (const char *desc) +{ + char *p, *temp; + char **words, **item; + GString *str; + + p = temp = g_strdup (desc); + while (*p) { + if (*p == '_' || *p == ',') + *p = ' '; + p++; + } + + /* Attempt to shorten ID by ignoring certain phrases */ + for (item = ignored_phrases; *item; item++) { + guint32 ignored_len = strlen (*item); + + p = strstr (temp, *item); + if (p) + memmove (p, p + ignored_len, strlen (p + ignored_len) + 1); /* +1 for the \0 */ + } + + /* Attmept to shorten ID by ignoring certain individual words */ + words = g_strsplit (temp, " ", 0); + str = g_string_new_len (NULL, strlen (temp)); + g_free (temp); + + for (item = words; *item; item++) { + int i = 0; + gboolean ignore = FALSE; + + if (g_ascii_isspace (**item) || (**item == '\0')) + continue; + + while (ignored_words[i] && !ignore) { + if (!strcmp (*item, ignored_words[i])) + ignore = TRUE; + i++; + } + + if (!ignore) { + if (str->len) + g_string_append_c (str, ' '); + g_string_append (str, *item); + } + } + g_strfreev (words); + + temp = str->str; + g_string_free (str, FALSE); + + return temp; +} + +#define VENDOR_TAG "nma_utils_get_device_vendor" +#define PRODUCT_TAG "nma_utils_get_device_product" +#define DESCRIPTION_TAG "nma_utils_get_device_description" + +static void +get_description (NMDevice *device) +{ + char *description = NULL; + const char *dev_product; + const char *dev_vendor; + char *product = NULL; + char *vendor = NULL; + GString *str; + + dev_product = nm_device_get_product (device); + dev_vendor = nm_device_get_vendor (device); + if (!dev_product || !dev_vendor) { + g_object_set_data (G_OBJECT (device), + DESCRIPTION_TAG, + (char *) nm_device_get_ip_iface (device)); + return; + } + + product = fixup_desc_string (dev_product); + vendor = fixup_desc_string (dev_vendor); + + str = g_string_new_len (NULL, strlen (vendor) + strlen (product) + 1); + + /* Another quick hack; if all of the fixed up vendor string + * is found in product, ignore the vendor. + */ + if (!strcasestr (product, vendor)) { + g_string_append (str, vendor); + g_string_append_c (str, ' '); + } + + g_string_append (str, product); + + description = g_string_free (str, FALSE); + + g_object_set_data_full (G_OBJECT (device), + VENDOR_TAG, vendor, + (GDestroyNotify) g_free); + g_object_set_data_full (G_OBJECT (device), + PRODUCT_TAG, product, + (GDestroyNotify) g_free); + g_object_set_data_full (G_OBJECT (device), + DESCRIPTION_TAG, description, + (GDestroyNotify) g_free); +} + +/** + * nma_utils_get_device_vendor: + * @device: an #NMDevice + * + * Gets a cleaned-up version of #NMDevice:vendor for @device. This + * removes strings like "Inc." that would just take up unnecessary + * space in the UI. + * + * Returns: a cleaned-up vendor string, or %NULL if the vendor is + * not known + */ +const char * +nma_utils_get_device_vendor (NMDevice *device) +{ + const char *vendor; + + g_return_val_if_fail (device != NULL, NULL); + + vendor = g_object_get_data (G_OBJECT (device), VENDOR_TAG); + if (!vendor) { + get_description (device); + vendor = g_object_get_data (G_OBJECT (device), VENDOR_TAG); + } + + return vendor; +} + +/** + * nma_utils_get_device_product: + * @device: an #NMDevice + * + * Gets a cleaned-up version of #NMDevice:product for @device. This + * removes strings like "Wireless LAN Adapter" that would just take up + * unnecessary space in the UI. + * + * Returns: a cleaned-up product string, or %NULL if the product name + * is not known + */ +const char * +nma_utils_get_device_product (NMDevice *device) +{ + const char *product; + + g_return_val_if_fail (device != NULL, NULL); + + product = g_object_get_data (G_OBJECT (device), PRODUCT_TAG); + if (!product) { + get_description (device); + product = g_object_get_data (G_OBJECT (device), PRODUCT_TAG); + } + + return product; +} + +/** + * nma_utils_get_device_description: + * @device: an #NMDevice + * + * Gets a description of @device, incorporating the results of + * nma_utils_get_device_vendor() and + * nma_utils_get_device_product(). + * + * Returns: a description of @device. If either the vendor or the + * product name is unknown, this returns the interface name. + */ +const char * +nma_utils_get_device_description (NMDevice *device) +{ + const char *description; + + g_return_val_if_fail (device != NULL, NULL); + + description = g_object_get_data (G_OBJECT (device), DESCRIPTION_TAG); + if (!description) { + get_description (device); + description = g_object_get_data (G_OBJECT (device), DESCRIPTION_TAG); + } + + return description; +} + +static gboolean +find_duplicates (char **names, + gboolean *duplicates, + int num_devices) +{ + int i, j; + gboolean found_any = FALSE; + + memset (duplicates, 0, num_devices * sizeof (gboolean)); + for (i = 0; i < num_devices; i++) { + if (duplicates[i]) + continue; + for (j = i + 1; j < num_devices; j++) { + if (duplicates[j]) + continue; + if (!strcmp (names[i], names[j])) + duplicates[i] = duplicates[j] = found_any = TRUE; + } + } + + return found_any; +} + +/** + * nma_utils_get_device_generic_type_name: + * @device: an #NMDevice + * + * Gets a "generic" name for the type of @device. + * + * Returns: @device's generic type name + */ +const char * +nma_utils_get_device_generic_type_name (NMDevice *device) +{ + switch (nm_device_get_device_type (device)) { + case NM_DEVICE_TYPE_ETHERNET: + case NM_DEVICE_TYPE_INFINIBAND: + return _("Wired"); + default: + return nma_utils_get_device_type_name (device); + } +} + +/** + * nma_utils_get_device_type_name: + * @device: an #NMDevice + * + * Gets a specific name for the type of @device. + * + * Returns: @device's generic type name + */ +const char * +nma_utils_get_device_type_name (NMDevice *device) +{ + switch (nm_device_get_device_type (device)) { + case NM_DEVICE_TYPE_ETHERNET: + return _("Ethernet"); + case NM_DEVICE_TYPE_WIFI: + return _("Wi-Fi"); + case NM_DEVICE_TYPE_BT: + return _("Bluetooth"); + case NM_DEVICE_TYPE_OLPC_MESH: + return _("OLPC Mesh"); + case NM_DEVICE_TYPE_WIMAX: + return _("WiMAX"); + case NM_DEVICE_TYPE_MODEM: + return _("Mobile Broadband"); + case NM_DEVICE_TYPE_INFINIBAND: + return _("InfiniBand"); + case NM_DEVICE_TYPE_BOND: + return _("Bond"); + case NM_DEVICE_TYPE_VLAN: + return _("VLAN"); + case NM_DEVICE_TYPE_ADSL: + return _("ADSL"); + default: + return _("Unknown"); + } +} + +#define BUS_TAG "nm-ui-utils.c:get_bus_name" + +static const char * +get_bus_name (GUdevClient *uclient, NMDevice *device) +{ + GUdevDevice *udevice; + const char *ifname, *bus; + char *display_bus; + + bus = g_object_get_data (G_OBJECT (device), BUS_TAG); + if (bus) { + if (*bus) + return bus; + else + return NULL; + } + + ifname = nm_device_get_iface (device); + if (!ifname) + return NULL; + + udevice = g_udev_client_query_by_subsystem_and_name (uclient, "net", ifname); + if (!udevice) + udevice = g_udev_client_query_by_subsystem_and_name (uclient, "tty", ifname); + if (!udevice) + return NULL; + + bus = g_udev_device_get_property (udevice, "ID_BUS"); + if (!g_strcmp0 (bus, "pci")) + display_bus = g_strdup (_("PCI")); + else if (!g_strcmp0 (bus, "usb")) + display_bus = g_strdup (_("USB")); + else { + /* Use "" instead of NULL so we can tell later that we've + * already tried. + */ + display_bus = g_strdup (""); + } + + g_object_set_data_full (G_OBJECT (device), + BUS_TAG, display_bus, + (GDestroyNotify) g_free); + if (*display_bus) + return display_bus; + else + return NULL; +} + +/** + * nma_utils_disambiguate_device_names: + * @devices: (array length=num_devices): a set of #NMDevice + * @num_devices: length of @devices + * + * Generates a list of short-ish unique presentation names for the + * devices in @devices. + * + * Returns: (transfer full) (array zero-terminated=1): the device names + */ +char ** +nma_utils_disambiguate_device_names (NMDevice **devices, + int num_devices) +{ + static const char *subsys[3] = { "net", "tty", NULL }; + GUdevClient *uclient; + char **names; + gboolean *duplicates; + int i; + + names = g_new (char *, num_devices + 1); + duplicates = g_new (gboolean, num_devices); + + /* Generic device name */ + for (i = 0; i < num_devices; i++) + names[i] = g_strdup (nma_utils_get_device_generic_type_name (devices[i])); + if (!find_duplicates (names, duplicates, num_devices)) + goto done; + + /* Try specific names (eg, "Ethernet" and "InfiniBand" rather + * than "Wired") + */ + for (i = 0; i < num_devices; i++) { + if (duplicates[i]) { + g_free (names[i]); + names[i] = g_strdup (nma_utils_get_device_type_name (devices[i])); + } + } + if (!find_duplicates (names, duplicates, num_devices)) + goto done; + + /* Try prefixing bus name (eg, "PCI Ethernet" vs "USB Ethernet") */ + uclient = g_udev_client_new (subsys); + for (i = 0; i < num_devices; i++) { + if (duplicates[i]) { + const char *bus = get_bus_name (uclient, devices[i]); + + if (!bus) + continue; + + g_free (names[i]); + /* Translators: the first %s is a bus name (eg, "USB") or + * product name, the second is a device type (eg, + * "Ethernet"). You can change this to something like + * "%$2s (%$1s)" if there's no grammatical way to combine + * the strings otherwise. + */ + names[i] = g_strdup_printf (C_("long device name", "%s %s"), + bus, + nma_utils_get_device_type_name (devices[i])); + } + } + g_object_unref (uclient); + if (!find_duplicates (names, duplicates, num_devices)) + goto done; + + /* Try prefixing vendor name */ + for (i = 0; i < num_devices; i++) { + if (duplicates[i]) { + const char *vendor = nma_utils_get_device_vendor (devices[i]); + + if (!vendor) + continue; + + g_free (names[i]); + names[i] = g_strdup_printf (C_("long device name", "%s %s"), + vendor, + nma_utils_get_device_type_name (devices[i])); + } + } + if (!find_duplicates (names, duplicates, num_devices)) + goto done; + + /* We have multiple identical network cards, so we have to differentiate + * them by interface name. + */ + for (i = 0; i < num_devices; i++) { + if (duplicates[i]) { + const char *interface = nm_device_get_iface (devices[i]); + + if (!interface) + continue; + + g_free (names[i]); + names[i] = g_strdup_printf ("%s (%s)", + nma_utils_get_device_type_name (devices[i]), + interface); + } + } + + done: + g_free (duplicates); + names[num_devices] = NULL; + return names; +} diff -Nru network-manager-applet-0.9.4.1/src/libnm-gtk/nm-ui-utils.h network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-ui-utils.h --- network-manager-applet-0.9.4.1/src/libnm-gtk/nm-ui-utils.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-ui-utils.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,40 @@ +/* NetworkManager Wireless Applet -- Display wireless access points and allow user control + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2007 - 2012 Red Hat, Inc. + */ + + +/* WARNING: this file is private API between nm-applet and various GNOME + * bits; it may change without notice and is not guaranteed to be stable. + */ + +#ifndef NMA_UI_UTILS_H +#define NMA_UI_UTILS_H + +#include + +const char *nma_utils_get_device_vendor (NMDevice *device); +const char *nma_utils_get_device_product (NMDevice *device); +const char *nma_utils_get_device_description (NMDevice *device); +const char *nma_utils_get_device_generic_type_name (NMDevice *device); +const char *nma_utils_get_device_type_name (NMDevice *device); + +char **nma_utils_disambiguate_device_names (NMDevice **devices, + int num_devices); + +#endif /* NMA_UI_UTILS_H */ + diff -Nru network-manager-applet-0.9.4.1/src/libnm-gtk/nm-wifi-dialog.c network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-wifi-dialog.c --- network-manager-applet-0.9.4.1/src/libnm-gtk/nm-wifi-dialog.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-wifi-dialog.c 2012-10-31 13:21:01.000000000 +0000 @@ -0,0 +1,1447 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2007 - 2012 Red Hat, Inc. + */ + +#include + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "nm-wifi-dialog.h" +#include "wireless-security.h" +#include "nm-ui-utils.h" + +G_DEFINE_TYPE (NMAWifiDialog, nma_wifi_dialog, GTK_TYPE_DIALOG) + +#define NMA_WIFI_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ + NMA_TYPE_WIFI_DIALOG, \ + NMAWifiDialogPrivate)) + +typedef struct { + NMAWifiDialog *self; + NMConnection *connection; + gboolean canceled; +} GetSecretsInfo; + +typedef struct { + NMClient *client; + NMRemoteSettings *settings; + + GtkBuilder *builder; + + NMConnection *connection; + NMDevice *device; + NMAccessPoint *ap; + gboolean adhoc_create; + + GtkTreeModel *device_model; + GtkTreeModel *connection_model; + GtkSizeGroup *group; + GtkWidget *sec_combo; + + gboolean nag_ignored; + gboolean network_name_focus; + + gboolean secrets_only; + + guint revalidate_id; + + GetSecretsInfo *secrets_info; + + gboolean disposed; +} NMAWifiDialogPrivate; + +#define D_NAME_COLUMN 0 +#define D_DEV_COLUMN 1 + +#define S_NAME_COLUMN 0 +#define S_SEC_COLUMN 1 + +#define C_NAME_COLUMN 0 +#define C_CON_COLUMN 1 +#define C_SEP_COLUMN 2 +#define C_NEW_COLUMN 3 + +static gboolean security_combo_init (NMAWifiDialog *self, gboolean secrets_only); +static void ssid_entry_changed (GtkWidget *entry, gpointer user_data); + +void +nma_wifi_dialog_set_nag_ignored (NMAWifiDialog *self, gboolean ignored) +{ + g_return_if_fail (self != NULL); + + NMA_WIFI_DIALOG_GET_PRIVATE (self)->nag_ignored = ignored; +} + +gboolean +nma_wifi_dialog_get_nag_ignored (NMAWifiDialog *self) +{ + g_return_val_if_fail (self != NULL, FALSE); + + return NMA_WIFI_DIALOG_GET_PRIVATE (self)->nag_ignored; +} + +static void +size_group_clear (GtkSizeGroup *group) +{ + GSList *iter; + + g_return_if_fail (group != NULL); + + iter = gtk_size_group_get_widgets (group); + while (iter) { + gtk_size_group_remove_widget (group, GTK_WIDGET (iter->data)); + iter = gtk_size_group_get_widgets (group); + } +} + +static void +size_group_add_permanent (GtkSizeGroup *group, + GtkBuilder *builder) +{ + GtkWidget *widget; + + g_return_if_fail (group != NULL); + g_return_if_fail (builder != NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "network_name_label")); + gtk_size_group_add_widget (group, widget); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "security_combo_label")); + gtk_size_group_add_widget (group, widget); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "device_label")); + gtk_size_group_add_widget (group, widget); +} + +static void +security_combo_changed (GtkWidget *combo, + gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkWidget *vbox, *sec_widget, *def_widget; + GList *elt, *children; + GtkTreeIter iter; + GtkTreeModel *model; + WirelessSecurity *sec = NULL; + + vbox = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_vbox")); + g_assert (vbox); + + size_group_clear (priv->group); + + /* Remove any previous wireless security widgets */ + children = gtk_container_get_children (GTK_CONTAINER (vbox)); + for (elt = children; elt; elt = g_list_next (elt)) + gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); + g_list_free (children); + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + g_warning ("%s: no active security combo box item.", __func__); + return; + } + + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + if (!sec) { + /* Revalidate dialog if the user picked "None" so the OK button + * gets enabled if there's already a valid SSID. + */ + ssid_entry_changed (NULL, self); + return; + } + + sec_widget = wireless_security_get_widget (sec); + g_assert (sec_widget); + gtk_widget_unparent (sec_widget); + + size_group_add_permanent (priv->group, priv->builder); + wireless_security_add_to_size_group (sec, priv->group); + + gtk_container_add (GTK_CONTAINER (vbox), sec_widget); + + /* Re-validate */ + wireless_security_changed_cb (NULL, sec); + + /* Set focus to the security method's default widget, but only if the + * network name entry should not be focused. + */ + if (!priv->network_name_focus && sec->default_field) { + def_widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, sec->default_field)); + if (def_widget) + gtk_widget_grab_focus (def_widget); + } + + wireless_security_unref (sec); +} + +static void +security_combo_changed_manually (GtkWidget *combo, + gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + /* Flag that the combo was changed manually to allow focus to move + * to the security method's default widget instead of the network name. + */ + priv->network_name_focus = FALSE; + security_combo_changed (combo, user_data); +} + +static GByteArray * +validate_dialog_ssid (NMAWifiDialog *self) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkWidget *widget; + const char *ssid; + guint32 ssid_len; + GByteArray *ssid_ba; + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + + ssid = gtk_entry_get_text (GTK_ENTRY (widget)); + + if (!ssid || strlen (ssid) == 0 || strlen (ssid) > 32) + return NULL; + + ssid_len = strlen (ssid); + ssid_ba = g_byte_array_sized_new (ssid_len); + g_byte_array_append (ssid_ba, (unsigned char *) ssid, ssid_len); + return ssid_ba; +} + +static void +stuff_changed_cb (WirelessSecurity *sec, gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GByteArray *ssid = NULL; + gboolean free_ssid = TRUE; + gboolean valid = FALSE; + + if (priv->connection) { + NMSettingWireless *s_wireless; + s_wireless = nm_connection_get_setting_wireless (priv->connection); + g_assert (s_wireless); + ssid = (GByteArray *) nm_setting_wireless_get_ssid (s_wireless); + free_ssid = FALSE; + } else { + ssid = validate_dialog_ssid (self); + } + + if (ssid) { + valid = wireless_security_validate (sec, ssid); + if (free_ssid) + g_byte_array_free (ssid, TRUE); + } + + /* But if there's an in-progress secrets call (which might require authorization) + * then we don't want to enable the OK button because we don't have all the + * connection details yet. + */ + if (priv->secrets_info) + valid = FALSE; + + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, valid); +} + +static void +ssid_entry_changed (GtkWidget *entry, gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkTreeIter iter; + WirelessSecurity *sec = NULL; + GtkTreeModel *model; + gboolean valid = FALSE; + GByteArray *ssid; + + /* If the network name entry was touched at all, allow focus to go to + * the default widget of the security method now. + */ + priv->network_name_focus = FALSE; + + ssid = validate_dialog_ssid (self); + if (!ssid) + goto out; + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->sec_combo)); + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->sec_combo), &iter)) + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + + if (sec) { + valid = wireless_security_validate (sec, ssid); + wireless_security_unref (sec); + } else { + valid = TRUE; + } + +out: + /* But if there's an in-progress secrets call (which might require authorization) + * then we don't want to enable the OK button because we don't have all the + * connection details yet. + */ + if (priv->secrets_info) + valid = FALSE; + + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, valid); +} + +static void +connection_combo_changed (GtkWidget *combo, + gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkTreeIter iter; + GtkTreeModel *model; + gboolean is_new = FALSE; + NMSettingWireless *s_wireless; + char *utf8_ssid; + GtkWidget *widget; + + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + g_warning ("%s: no active connection combo box item.", __func__); + return; + } + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + + if (priv->connection) + g_object_unref (priv->connection); + + gtk_tree_model_get (model, &iter, + C_CON_COLUMN, &priv->connection, + C_NEW_COLUMN, &is_new, -1); + + if (!security_combo_init (self, priv->secrets_only)) { + g_warning ("Couldn't change Wi-Fi security combo box."); + return; + } + security_combo_changed (priv->sec_combo, self); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + if (priv->connection) { + const GByteArray *ssid; + + s_wireless = nm_connection_get_setting_wireless (priv->connection); + ssid = nm_setting_wireless_get_ssid (s_wireless); + utf8_ssid = nm_utils_ssid_to_utf8 (ssid); + gtk_entry_set_text (GTK_ENTRY (widget), utf8_ssid); + g_free (utf8_ssid); + } else { + gtk_entry_set_text (GTK_ENTRY (widget), ""); + } + + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")), is_new); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_label")), is_new); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")), is_new); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo_label")), is_new); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_vbox")), is_new); +} + +static gboolean +connection_combo_separator_cb (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) +{ + gboolean is_separator = FALSE; + + gtk_tree_model_get (model, iter, C_SEP_COLUMN, &is_separator, -1); + return is_separator; +} + +static gint +alphabetize_connections (NMConnection *a, NMConnection *b) +{ + NMSettingConnection *asc, *bsc; + + asc = nm_connection_get_setting_connection (a); + bsc = nm_connection_get_setting_connection (b); + + return strcmp (nm_setting_connection_get_id (asc), + nm_setting_connection_get_id (bsc)); +} + +static gboolean +connection_combo_init (NMAWifiDialog *self, NMConnection *connection) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkListStore *store; + int num_added = 0; + GtkTreeIter tree_iter; + GtkWidget *widget; + NMSettingConnection *s_con; + GtkCellRenderer *renderer; + const char *id; + + g_return_val_if_fail (priv->connection == NULL, FALSE); + + /* Clear any old model */ + if (priv->connection_model) + g_object_unref (priv->connection_model); + + /* New model */ + store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_OBJECT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); + priv->connection_model = GTK_TREE_MODEL (store); + + if (connection) { + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + id = nm_setting_connection_get_id (s_con); + if (id == NULL) { + /* New connections which will be completed by NM won't have an ID + * yet, but that doesn't matter because we don't show the connection + * combo anyway when there's a predefined connection. + */ + id = "blahblah"; + } + + gtk_list_store_append (store, &tree_iter); + gtk_list_store_set (store, &tree_iter, + C_NAME_COLUMN, id, + C_CON_COLUMN, connection, -1); + } else { + GSList *connections, *iter, *to_add = NULL; + + gtk_list_store_append (store, &tree_iter); + gtk_list_store_set (store, &tree_iter, + C_NAME_COLUMN, _("New..."), + C_NEW_COLUMN, TRUE, -1); + + gtk_list_store_append (store, &tree_iter); + gtk_list_store_set (store, &tree_iter, C_SEP_COLUMN, TRUE, -1); + + connections = nm_remote_settings_list_connections (priv->settings); + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + NMSettingWireless *s_wireless; + const char *connection_type; + const char *mode; + const GByteArray *setting_mac; + + s_con = nm_connection_get_setting_connection (candidate); + connection_type = s_con ? nm_setting_connection_get_connection_type (s_con) : NULL; + if (!connection_type) + continue; + + if (strcmp (connection_type, NM_SETTING_WIRELESS_SETTING_NAME)) + continue; + + s_wireless = nm_connection_get_setting_wireless (candidate); + if (!s_wireless) + continue; + + /* If creating a new Ad-Hoc network, only show shared network connections */ + if (priv->adhoc_create) { + NMSettingIP4Config *s_ip4; + const char *method = NULL; + + s_ip4 = nm_connection_get_setting_ip4_config (candidate); + if (s_ip4) + method = nm_setting_ip4_config_get_method (s_ip4); + + if (!s_ip4 || strcmp (method, "shared")) + continue; + + /* Ignore non-Ad-Hoc connections too */ + mode = nm_setting_wireless_get_mode (s_wireless); + if (!mode || strcmp (mode, "adhoc")) + continue; + } + + /* Ignore connections that don't apply to the selected device */ + setting_mac = nm_setting_wireless_get_mac_address (s_wireless); + if (setting_mac) { + const char *hw_addr; + + hw_addr = nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (priv->device)); + if (hw_addr) { + struct ether_addr *ether; + + ether = ether_aton (hw_addr); + if (ether && memcmp (setting_mac->data, ether->ether_addr_octet, ETH_ALEN)) + continue; + } + } + + to_add = g_slist_append (to_add, candidate); + } + g_slist_free (connections); + + /* Alphabetize the list then add the connections */ + to_add = g_slist_sort (to_add, (GCompareFunc) alphabetize_connections); + for (iter = to_add; iter; iter = g_slist_next (iter)) { + NMConnection *candidate = NM_CONNECTION (iter->data); + + s_con = nm_connection_get_setting_connection (candidate); + gtk_list_store_append (store, &tree_iter); + gtk_list_store_set (store, &tree_iter, + C_NAME_COLUMN, nm_setting_connection_get_id (s_con), + C_CON_COLUMN, candidate, -1); + num_added++; + } + g_slist_free (to_add); + } + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "connection_combo")); + + gtk_cell_layout_clear (GTK_CELL_LAYOUT (widget)); + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (widget), renderer, TRUE); + gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (widget), renderer, + "text", C_NAME_COLUMN); + gtk_combo_box_set_wrap_width (GTK_COMBO_BOX (widget), 1); + + gtk_combo_box_set_model (GTK_COMBO_BOX (widget), priv->connection_model); + + gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (widget), + connection_combo_separator_cb, + NULL, + NULL); + + gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); + g_signal_connect (G_OBJECT (widget), "changed", + G_CALLBACK (connection_combo_changed), self); + if (connection || !num_added) { + gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (priv->builder, "connection_label"))); + gtk_widget_hide (widget); + } + gtk_tree_model_get_iter_first (priv->connection_model, &tree_iter); + gtk_tree_model_get (priv->connection_model, &tree_iter, C_CON_COLUMN, &priv->connection, -1); + + return TRUE; +} + +static void +device_combo_changed (GtkWidget *combo, + gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkTreeIter iter; + GtkTreeModel *model; + + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + g_warning ("%s: no active device combo box item.", __func__); + return; + } + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + + g_object_unref (priv->device); + gtk_tree_model_get (model, &iter, D_DEV_COLUMN, &priv->device, -1); + + if (!connection_combo_init (self, NULL)) { + g_warning ("Couldn't change connection combo box."); + return; + } + + if (!security_combo_init (self, priv->secrets_only)) { + g_warning ("Couldn't change Wi-Fi security combo box."); + return; + } + + security_combo_changed (priv->sec_combo, self); +} + +static void +add_device_to_model (GtkListStore *model, NMDevice *device) +{ + GtkTreeIter iter; + const char *desc; + + desc = nma_utils_get_device_description (device); + gtk_list_store_append (model, &iter); + gtk_list_store_set (model, &iter, D_NAME_COLUMN, desc, D_DEV_COLUMN, device, -1); +} + +static gboolean +can_use_device (NMDevice *device) +{ + /* Ignore unsupported devices */ + if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) + return FALSE; + + if (!NM_IS_DEVICE_WIFI (device)) + return FALSE; + + if (nm_device_get_state (device) < NM_DEVICE_STATE_DISCONNECTED) + return FALSE; + + return TRUE; +} + +static gboolean +device_combo_init (NMAWifiDialog *self, NMDevice *device) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + const GPtrArray *devices; + GtkListStore *store; + int i, num_added = 0; + + g_return_val_if_fail (priv->device == NULL, FALSE); + + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_OBJECT); + priv->device_model = GTK_TREE_MODEL (store); + + if (device) { + if (!can_use_device (device)) + return FALSE; + add_device_to_model (store, device); + num_added++; + } else { + devices = nm_client_get_devices (priv->client); + if (!devices) + return FALSE; + + for (i = 0; devices && (i < devices->len); i++) { + device = NM_DEVICE (g_ptr_array_index (devices, i)); + if (can_use_device (device)) { + add_device_to_model (store, device); + num_added++; + } + } + } + + if (num_added > 0) { + GtkWidget *widget; + GtkTreeIter iter; + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_combo")); + gtk_combo_box_set_model (GTK_COMBO_BOX (widget), priv->device_model); + gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); + g_signal_connect (G_OBJECT (widget), "changed", + G_CALLBACK (device_combo_changed), self); + if (num_added == 1) { + gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_label"))); + gtk_widget_hide (widget); + } + gtk_tree_model_get_iter_first (priv->device_model, &iter); + gtk_tree_model_get (priv->device_model, &iter, D_DEV_COLUMN, &priv->device, -1); + } + + return num_added > 0 ? TRUE : FALSE; +} + +static gboolean +find_proto (NMSettingWirelessSecurity *sec, const char *item) +{ + guint32 i; + + for (i = 0; i < nm_setting_wireless_security_get_num_protos (sec); i++) { + if (!strcmp (item, nm_setting_wireless_security_get_proto (sec, i))) + return TRUE; + } + return FALSE; +} + +static NMUtilsSecurityType +get_default_type_for_security (NMSettingWirelessSecurity *sec, + gboolean have_ap, + guint32 ap_flags, + guint32 dev_caps) +{ + const char *key_mgmt, *auth_alg; + + g_return_val_if_fail (sec != NULL, NMU_SEC_NONE); + + key_mgmt = nm_setting_wireless_security_get_key_mgmt (sec); + auth_alg = nm_setting_wireless_security_get_auth_alg (sec); + + /* No IEEE 802.1x */ + if (!strcmp (key_mgmt, "none")) + return NMU_SEC_STATIC_WEP; + + if ( !strcmp (key_mgmt, "ieee8021x") + && (!have_ap || (ap_flags & NM_802_11_AP_FLAGS_PRIVACY))) { + if (auth_alg && !strcmp (auth_alg, "leap")) + return NMU_SEC_LEAP; + return NMU_SEC_DYNAMIC_WEP; + } + + if (!strcmp (key_mgmt, "wpa-psk")) { + if (!have_ap || (ap_flags & NM_802_11_AP_FLAGS_PRIVACY)) { + if (find_proto (sec, "rsn")) + return NMU_SEC_WPA2_PSK; + else if (find_proto (sec, "wpa")) + return NMU_SEC_WPA_PSK; + else + return NMU_SEC_WPA_PSK; + } + } + + if ( !strcmp (key_mgmt, "wpa-eap") + && (!have_ap || (ap_flags & NM_802_11_AP_FLAGS_PRIVACY))) { + if (find_proto (sec, "rsn")) + return NMU_SEC_WPA2_ENTERPRISE; + else if (find_proto (sec, "wpa")) + return NMU_SEC_WPA_ENTERPRISE; + else + return NMU_SEC_WPA_ENTERPRISE; + } + + return NMU_SEC_INVALID; +} + +static void +add_security_item (NMAWifiDialog *self, + WirelessSecurity *sec, + GtkListStore *model, + GtkTreeIter *iter, + const char *text) +{ + wireless_security_set_changed_notify (sec, stuff_changed_cb, self); + gtk_list_store_append (model, iter); + gtk_list_store_set (model, iter, S_NAME_COLUMN, text, S_SEC_COLUMN, sec, -1); + wireless_security_unref (sec); +} + +static void +get_secrets_cb (NMRemoteConnection *connection, + GHashTable *secrets, + GError *error, + gpointer user_data) +{ + GetSecretsInfo *info = user_data; + NMAWifiDialogPrivate *priv; + GHashTableIter hash_iter; + gpointer key, value; + GtkTreeModel *model; + GtkTreeIter iter; + + if (info->canceled) + goto out; + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (info->self); + if (priv->secrets_info == info) { + priv->secrets_info = NULL; + + /* Buttons should only be re-enabled if this secrets response is the + * in-progress one. + */ + gtk_dialog_set_response_sensitive (GTK_DIALOG (info->self), GTK_RESPONSE_CANCEL, TRUE); + gtk_dialog_set_response_sensitive (GTK_DIALOG (info->self), GTK_RESPONSE_OK, TRUE); + } + + if (error) { + g_warning ("%s: error getting connection secrets: (%d) %s", + __func__, + error ? error->code : -1, + error && error->message ? error->message : "(unknown)"); + goto out; + } + + /* User might have changed the connection while the secrets call was in + * progress, so don't try to update the wrong connection with the secrets + * we just received. + */ + if ( (priv->connection != info->connection) + || !secrets + || !g_hash_table_size (secrets)) + goto out; + + /* Try to update the connection's secrets; log errors but we don't care */ + g_hash_table_iter_init (&hash_iter, secrets); + while (g_hash_table_iter_next (&hash_iter, &key, &value)) { + GError *update_error = NULL; + const char *setting_name = key; + GHashTable *setting_hash = value; + + if (!nm_connection_update_secrets (priv->connection, + setting_name, + setting_hash, + &update_error)) { + g_warning ("%s: error updating connection secrets: (%d) %s", + __func__, + update_error ? update_error->code : -1, + update_error && update_error->message ? update_error->message : "(unknown)"); + g_clear_error (&update_error); + } + } + + /* Update each security method's UI elements with the new secrets */ + model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->sec_combo)); + if (gtk_tree_model_get_iter_first (model, &iter)) { + do { + WirelessSecurity *sec = NULL; + + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + if (sec) { + wireless_security_update_secrets (sec, priv->connection); + wireless_security_unref (sec); + } + } while (gtk_tree_model_iter_next (model, &iter)); + } + +out: + g_object_unref (info->connection); + g_free (info); +} + +static gboolean +security_combo_init (NMAWifiDialog *self, gboolean secrets_only) +{ + NMAWifiDialogPrivate *priv; + GtkListStore *sec_model; + GtkTreeIter iter; + guint32 ap_flags = 0; + guint32 ap_wpa = 0; + guint32 ap_rsn = 0; + guint32 dev_caps; + NMSettingWirelessSecurity *wsec = NULL; + NMUtilsSecurityType default_type = NMU_SEC_NONE; + NMWepKeyType wep_type = NM_WEP_KEY_TYPE_KEY; + int active = -1; + int item = 0; + NMSettingWireless *s_wireless = NULL; + gboolean is_adhoc; + const char *setting_name; + + g_return_val_if_fail (self != NULL, FALSE); + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + g_return_val_if_fail (priv->device != NULL, FALSE); + g_return_val_if_fail (priv->sec_combo != NULL, FALSE); + + is_adhoc = priv->adhoc_create; + + /* The security options displayed are filtered based on device + * capabilities, and if provided, additionally by access point capabilities. + * If a connection is given, that connection's options should be selected + * by default. + */ + dev_caps = nm_device_wifi_get_capabilities (NM_DEVICE_WIFI (priv->device)); + if (priv->ap != NULL) { + ap_flags = nm_access_point_get_flags (priv->ap); + ap_wpa = nm_access_point_get_wpa_flags (priv->ap); + ap_rsn = nm_access_point_get_rsn_flags (priv->ap); + } + + if (priv->connection) { + const char *mode; + const char *security; + + s_wireless = nm_connection_get_setting_wireless (priv->connection); + + mode = nm_setting_wireless_get_mode (s_wireless); + if (mode && !strcmp (mode, "adhoc")) + is_adhoc = TRUE; + + wsec = nm_connection_get_setting_wireless_security (priv->connection); + + security = nm_setting_wireless_get_security (s_wireless); + if (!security || strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)) + wsec = NULL; + if (wsec) { + default_type = get_default_type_for_security (wsec, !!priv->ap, ap_flags, dev_caps); + if (default_type == NMU_SEC_STATIC_WEP) + wep_type = nm_setting_wireless_security_get_wep_key_type (wsec); + if (wep_type == NM_WEP_KEY_TYPE_UNKNOWN) + wep_type = NM_WEP_KEY_TYPE_KEY; + } + } else if (is_adhoc) { + default_type = NMU_SEC_STATIC_WEP; + wep_type = NM_WEP_KEY_TYPE_PASSPHRASE; + } + + sec_model = gtk_list_store_new (2, G_TYPE_STRING, wireless_security_get_g_type ()); + + if (nm_utils_security_valid (NMU_SEC_NONE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + gtk_list_store_append (sec_model, &iter); + gtk_list_store_set (sec_model, &iter, + S_NAME_COLUMN, C_("Wifi/wired security", "None"), + -1); + if (default_type == NMU_SEC_NONE) + active = item; + item++; + } + + /* Don't show Static WEP if both the AP and the device are capable of WPA, + * even though technically it's possible to have this configuration. + */ + if ( nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && ((!ap_wpa && !ap_rsn) || !(dev_caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN)))) { + WirelessSecurityWEPKey *ws_wep; + + ws_wep = ws_wep_key_new (priv->connection, NM_WEP_KEY_TYPE_KEY, priv->adhoc_create, secrets_only); + if (ws_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, + &iter, _("WEP 40/128-bit Key (Hex or ASCII)")); + if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_KEY)) + active = item; + item++; + } + + ws_wep = ws_wep_key_new (priv->connection, NM_WEP_KEY_TYPE_PASSPHRASE, priv->adhoc_create, secrets_only); + if (ws_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, + &iter, _("WEP 128-bit Passphrase")); + if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_PASSPHRASE)) + active = item; + item++; + } + } + + /* Don't show LEAP if both the AP and the device are capable of WPA, + * even though technically it's possible to have this configuration. + */ + if ( nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) + && ((!ap_wpa && !ap_rsn) || !(dev_caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN)))) { + WirelessSecurityLEAP *ws_leap; + + ws_leap = ws_leap_new (priv->connection, secrets_only); + if (ws_leap) { + add_security_item (self, WIRELESS_SECURITY (ws_leap), sec_model, + &iter, _("LEAP")); + if ((active < 0) && (default_type == NMU_SEC_LEAP)) + active = item; + item++; + } + } + + if (nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + WirelessSecurityDynamicWEP *ws_dynamic_wep; + + ws_dynamic_wep = ws_dynamic_wep_new (priv->connection, FALSE, secrets_only); + if (ws_dynamic_wep) { + add_security_item (self, WIRELESS_SECURITY (ws_dynamic_wep), sec_model, + &iter, _("Dynamic WEP (802.1x)")); + if ((active < 0) && (default_type == NMU_SEC_DYNAMIC_WEP)) + active = item; + item++; + } + } + + if ( nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) + || nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + WirelessSecurityWPAPSK *ws_wpa_psk; + + ws_wpa_psk = ws_wpa_psk_new (priv->connection, secrets_only); + if (ws_wpa_psk) { + add_security_item (self, WIRELESS_SECURITY (ws_wpa_psk), sec_model, + &iter, _("WPA & WPA2 Personal")); + if ((active < 0) && ((default_type == NMU_SEC_WPA_PSK) || (default_type == NMU_SEC_WPA2_PSK))) + active = item; + item++; + } + } + + if ( nm_utils_security_valid (NMU_SEC_WPA_ENTERPRISE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) + || nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { + WirelessSecurityWPAEAP *ws_wpa_eap; + + ws_wpa_eap = ws_wpa_eap_new (priv->connection, FALSE, secrets_only); + if (ws_wpa_eap) { + add_security_item (self, WIRELESS_SECURITY (ws_wpa_eap), sec_model, + &iter, _("WPA & WPA2 Enterprise")); + if ((active < 0) && ((default_type == NMU_SEC_WPA_ENTERPRISE) || (default_type == NMU_SEC_WPA2_ENTERPRISE))) + active = item; + item++; + } + } + + gtk_combo_box_set_model (GTK_COMBO_BOX (priv->sec_combo), GTK_TREE_MODEL (sec_model)); + gtk_combo_box_set_active (GTK_COMBO_BOX (priv->sec_combo), active < 0 ? 0 : (guint32) active); + g_object_unref (G_OBJECT (sec_model)); + + /* If the dialog was given a connection when it was created, that connection + * will already be populated with secrets. If no connection was given, + * then we need to get any existing secrets to populate the dialog with. + */ + setting_name = priv->connection ? nm_connection_need_secrets (priv->connection, NULL) : NULL; + if (setting_name && NM_IS_REMOTE_CONNECTION (priv->connection)) { + GetSecretsInfo *info; + + /* Desensitize the dialog's buttons while we wait for the secrets + * operation to complete. + */ + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, FALSE); + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_CANCEL, FALSE); + + info = g_malloc0 (sizeof (GetSecretsInfo)); + info->self = self; + info->connection = g_object_ref (priv->connection); + priv->secrets_info = info; + + nm_remote_connection_get_secrets (NM_REMOTE_CONNECTION (priv->connection), + setting_name, + get_secrets_cb, + info); + } + + return TRUE; +} + +static gboolean +revalidate (gpointer user_data) +{ + NMAWifiDialog *self = NMA_WIFI_DIALOG (user_data); + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + priv->revalidate_id = 0; + security_combo_changed (priv->sec_combo, self); + return FALSE; +} + +static gboolean +internal_init (NMAWifiDialog *self, + NMConnection *specific_connection, + NMDevice *specific_device, + gboolean secrets_only, + gboolean create) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GtkWidget *widget; + char *label, *icon_name = "network-wireless"; + gboolean security_combo_focus = FALSE; + + gtk_window_set_position (GTK_WINDOW (self), GTK_WIN_POS_CENTER_ALWAYS); + gtk_container_set_border_width (GTK_CONTAINER (self), 6); + gtk_window_set_default_size (GTK_WINDOW (self), 488, -1); + gtk_window_set_resizable (GTK_WINDOW (self), FALSE); + + priv->secrets_only = secrets_only; + if (secrets_only) + icon_name = "dialog-password"; + else + icon_name = "network-wireless"; + + gtk_window_set_icon_name (GTK_WINDOW (self), icon_name); + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "image1")); + gtk_image_set_from_icon_name (GTK_IMAGE (widget), icon_name, GTK_ICON_SIZE_DIALOG); + + gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), 2); + + widget = gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); + gtk_box_set_child_packing (GTK_BOX (gtk_dialog_get_action_area (GTK_DIALOG (self))), widget, + FALSE, TRUE, 0, GTK_PACK_END); + + /* Connect/Create button */ + if (create) { + GtkWidget *image; + + widget = gtk_button_new_with_mnemonic (_("C_reate")); + image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_BUTTON); + gtk_button_set_image (GTK_BUTTON (widget), image); + + gtk_widget_show (widget); + gtk_dialog_add_action_widget (GTK_DIALOG (self), widget, GTK_RESPONSE_OK); + } else + widget = gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CONNECT, GTK_RESPONSE_OK); + + gtk_box_set_child_packing (GTK_BOX (gtk_dialog_get_action_area (GTK_DIALOG (self))), widget, + FALSE, TRUE, 0, GTK_PACK_END); + g_object_set (G_OBJECT (widget), "can-default", TRUE, NULL); + gtk_widget_grab_default (widget); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "hbox1")); + if (!widget) { + g_warning ("Couldn't find Wi-Fi_dialog widget."); + return FALSE; + } + gtk_widget_unparent (widget); + + gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (self))), widget); + + /* If given a valid connection, hide the SSID bits and connection combo */ + if (specific_connection) { + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_label")); + gtk_widget_hide (widget); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + gtk_widget_hide (widget); + + security_combo_focus = TRUE; + priv->network_name_focus = FALSE; + } else { + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + g_signal_connect (G_OBJECT (widget), "changed", (GCallback) ssid_entry_changed, self); + priv->network_name_focus = TRUE; + } + + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, FALSE); + + if (!device_combo_init (self, specific_device)) { + g_warning ("No Wi-Fi devices available."); + return FALSE; + } + + if (!connection_combo_init (self, specific_connection)) { + g_warning ("Couldn't set up connection combo box."); + return FALSE; + } + + if (!security_combo_init (self, priv->secrets_only)) { + g_warning ("Couldn't set up Wi-Fi security combo box."); + return FALSE; + } + + security_combo_changed (priv->sec_combo, self); + g_signal_connect (G_OBJECT (priv->sec_combo), "changed", + G_CALLBACK (security_combo_changed_manually), self); + + if (secrets_only) { + gtk_widget_hide (priv->sec_combo); + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo_label")); + gtk_widget_hide (widget); + } + + if (security_combo_focus) + gtk_widget_grab_focus (priv->sec_combo); + else if (priv->network_name_focus) { + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); + gtk_widget_grab_focus (widget); + } + + if (priv->connection) { + char *tmp; + char *esc_ssid = NULL; + NMSettingWireless *s_wireless; + const GByteArray *ssid; + + s_wireless = nm_connection_get_setting_wireless (priv->connection); + ssid = s_wireless ? nm_setting_wireless_get_ssid (s_wireless) : NULL; + if (ssid) + esc_ssid = nm_utils_ssid_to_utf8 (ssid); + + tmp = g_strdup_printf (_("Passwords or encryption keys are required to access the Wi-Fi network '%s'."), + esc_ssid ? esc_ssid : ""); + gtk_window_set_title (GTK_WINDOW (self), _("Wi-Fi Network Authentication Required")); + label = g_strdup_printf ("%s\n\n%s", + _("Authentication required by Wi-Fi network"), + tmp); + g_free (esc_ssid); + g_free (tmp); + } else if (priv->adhoc_create) { + gtk_window_set_title (GTK_WINDOW (self), _("Create New Wi-Fi Network")); + label = g_strdup_printf ("%s\n\n%s", + _("New Wi-Fi network"), + _("Enter a name for the Wi-Fi network you wish to create.")); + } else { + gtk_window_set_title (GTK_WINDOW (self), _("Connect to Hidden Wi-Fi Network")); + label = g_strdup_printf ("%s\n\n%s", + _("Hidden Wi-Fi network"), + _("Enter the name and security details of the hidden Wi-Fi network you wish to connect to.")); + } + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "caption_label")); + gtk_label_set_markup (GTK_LABEL (widget), label); + g_free (label); + + /* Re-validate from an idle handler so that widgets like file choosers + * have had time to find their files. + */ + priv->revalidate_id = g_idle_add (revalidate, self); + + return TRUE; +} + +/** + * nma_wifi_dialog_get_connection: + * @self: an #NMAWifiDialog + * @device: (out): + * @ap: (out): + * + * Returns: (transfer full): + */ +NMConnection * +nma_wifi_dialog_get_connection (NMAWifiDialog *self, + NMDevice **device, + NMAccessPoint **ap) +{ + NMAWifiDialogPrivate *priv; + GtkWidget *combo; + GtkTreeModel *model; + WirelessSecurity *sec = NULL; + GtkTreeIter iter; + NMConnection *connection; + NMSettingWireless *s_wireless; + + g_return_val_if_fail (self != NULL, NULL); + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + if (!priv->connection) { + NMSettingConnection *s_con; + char *uuid; + + connection = nm_connection_new (); + + s_con = (NMSettingConnection *) nm_setting_connection_new (); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, + NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRELESS_SETTING_NAME, + NM_SETTING_CONNECTION_UUID, uuid, + NULL); + g_free (uuid); + nm_connection_add_setting (connection, (NMSetting *) s_con); + + s_wireless = (NMSettingWireless *) nm_setting_wireless_new (); + g_object_set (s_wireless, NM_SETTING_WIRELESS_SSID, validate_dialog_ssid (self), NULL); + + if (priv->adhoc_create) { + NMSettingIP4Config *s_ip4; + NMSettingIP6Config *s_ip6; + + g_object_set (s_wireless, NM_SETTING_WIRELESS_MODE, "adhoc", NULL); + + s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new (); + g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_SHARED, NULL); + nm_connection_add_setting (connection, (NMSetting *) s_ip4); + + s_ip6 = (NMSettingIP6Config *) nm_setting_ip6_config_new (); + g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL); + nm_connection_add_setting (connection, (NMSetting *) s_ip6); + } + + nm_connection_add_setting (connection, (NMSetting *) s_wireless); + } else + connection = g_object_ref (priv->connection); + + /* Fill security */ + model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->sec_combo)); + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->sec_combo), &iter)) + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + if (sec) { + wireless_security_fill_connection (sec, connection); + wireless_security_unref (sec); + } else { + /* Unencrypted */ + s_wireless = nm_connection_get_setting_wireless (connection); + g_assert (s_wireless); + + g_object_set (s_wireless, NM_SETTING_WIRELESS_SEC, NULL, NULL); + } + + /* Fill device */ + if (device) { + combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_combo")); + gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter); + gtk_tree_model_get (priv->device_model, &iter, D_DEV_COLUMN, device, -1); + g_object_unref (*device); + } + + if (ap) + *ap = priv->ap; + + return connection; +} + +GtkWidget * +nma_wifi_dialog_new (NMClient *client, + NMRemoteSettings *settings, + NMConnection *connection, + NMDevice *device, + NMAccessPoint *ap, + gboolean secrets_only) +{ + NMAWifiDialog *self; + NMAWifiDialogPrivate *priv; + guint32 dev_caps; + + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); + g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + /* Ensure device validity */ + if (device) { + dev_caps = nm_device_get_capabilities (device); + g_return_val_if_fail (dev_caps & NM_DEVICE_CAP_NM_SUPPORTED, NULL); + g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); + } + + self = NMA_WIFI_DIALOG (g_object_new (NMA_TYPE_WIFI_DIALOG, NULL)); + if (self) { + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + priv->client = g_object_ref (client); + priv->settings = g_object_ref (settings); + if (ap) + priv->ap = g_object_ref (ap); + + priv->sec_combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")); + priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + + if (!internal_init (self, connection, device, secrets_only, FALSE)) { + g_warning ("Couldn't create Wi-Fi security dialog."); + gtk_widget_destroy (GTK_WIDGET (self)); + self = NULL; + } + } + + return GTK_WIDGET (self); +} + +static GtkWidget * +internal_new_other (NMClient *client, NMRemoteSettings *settings, gboolean create) +{ + NMAWifiDialog *self; + NMAWifiDialogPrivate *priv; + + g_return_val_if_fail (NM_IS_CLIENT (client), NULL); + g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), NULL); + + self = NMA_WIFI_DIALOG (g_object_new (NMA_TYPE_WIFI_DIALOG, NULL)); + if (!self) + return NULL; + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + priv->client = g_object_ref (client); + priv->settings = g_object_ref (settings); + priv->sec_combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")); + priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + priv->adhoc_create = create; + + if (!internal_init (self, NULL, NULL, FALSE, create)) { + g_warning ("Couldn't create Wi-Fi security dialog."); + gtk_widget_destroy (GTK_WIDGET (self)); + return NULL; + } + + return GTK_WIDGET (self); +} + +GtkWidget * +nma_wifi_dialog_new_for_other (NMClient *client, NMRemoteSettings *settings) +{ + return internal_new_other (client, settings, FALSE); +} + +GtkWidget * +nma_wifi_dialog_new_for_create (NMClient *client, NMRemoteSettings *settings) +{ + return internal_new_other (client, settings, TRUE); +} + +/** + * nma_wifi_dialog_nag_user: + * @self: + * + * Returns: (transfer full): + */ +GtkWidget * +nma_wifi_dialog_nag_user (NMAWifiDialog *self) +{ + NMAWifiDialogPrivate *priv; + GtkWidget *combo, *nag; + GtkTreeModel *model; + GtkTreeIter iter; + WirelessSecurity *sec = NULL; + + g_return_val_if_fail (self != NULL, NULL); + + priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + + combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")); + g_return_val_if_fail (combo != NULL, NULL); + + /* Ask the security method if it wants to nag the user. */ + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + g_warning ("%s: no active security combo box item.", __func__); + return NULL; + } + + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); + if (sec) { + nag = wireless_security_nag_user (sec); + wireless_security_unref (sec); + return nag; + } + + return NULL; +} + +static void +nma_wifi_dialog_init (NMAWifiDialog *self) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (self); + GError *error = NULL; + + priv->builder = gtk_builder_new (); + + if (!gtk_builder_add_from_file (priv->builder, UIDIR "/wifi.ui", &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); + } +} + +static void +dispose (GObject *object) +{ + NMAWifiDialogPrivate *priv = NMA_WIFI_DIALOG_GET_PRIVATE (object); + + if (priv->disposed) { + G_OBJECT_CLASS (nma_wifi_dialog_parent_class)->dispose (object); + return; + } + + priv->disposed = TRUE; + + if (priv->secrets_info) + priv->secrets_info->canceled = TRUE; + + g_object_unref (priv->client); + g_object_unref (priv->settings); + g_object_unref (priv->builder); + + g_object_unref (priv->device_model); + g_object_unref (priv->connection_model); + + if (priv->group) + g_object_unref (priv->group); + + if (priv->connection) + g_object_unref (priv->connection); + + if (priv->device) + g_object_unref (priv->device); + + if (priv->ap) + g_object_unref (priv->ap); + + if (priv->revalidate_id) + g_source_remove (priv->revalidate_id); + + G_OBJECT_CLASS (nma_wifi_dialog_parent_class)->dispose (object); +} + +static void +nma_wifi_dialog_class_init (NMAWifiDialogClass *nmad_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (nmad_class); + + g_type_class_add_private (nmad_class, sizeof (NMAWifiDialogPrivate)); + + /* virtual methods */ + object_class->dispose = dispose; +} diff -Nru network-manager-applet-0.9.4.1/src/libnm-gtk/nm-wifi-dialog.h network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-wifi-dialog.h --- network-manager-applet-0.9.4.1/src/libnm-gtk/nm-wifi-dialog.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-wifi-dialog.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,81 @@ +/* NetworkManager Wireless Applet -- Display wireless access points and allow user control + * + * Dan Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2007 - 2012 Red Hat, Inc. + */ + + +/* WARNING: this file is private API between nm-applet and various GNOME + * bits; it may change without notice and is not guaranteed to be stable. + */ + +#ifndef NMA_WIFI_DIALOG_H +#define NMA_WIFI_DIALOG_H + +#include +#include +#include + +#include +#include +#include +#include +#include + +#define NMA_TYPE_WIFI_DIALOG (nma_wifi_dialog_get_type ()) +#define NMA_WIFI_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMA_TYPE_WIFI_DIALOG, NMAWifiDialog)) +#define NMA_WIFI_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMA_TYPE_WIFI_DIALOG, NMAWifiDialogClass)) +#define NMA_IS_WIFI_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMA_TYPE_WIFI_DIALOG)) +#define NMA_IS_WIFI_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMA_TYPE_WIFI_DIALOG)) +#define NMA_WIFI_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMA_TYPE_WIFI_DIALOG, NMAWifiDialogClass)) + +typedef struct { + GtkDialog parent; +} NMAWifiDialog; + +typedef struct { + GtkDialogClass parent; +} NMAWifiDialogClass; + +GType nma_wifi_dialog_get_type (void); + +GtkWidget *nma_wifi_dialog_new (NMClient *client, + NMRemoteSettings *settings, + NMConnection *connection, + NMDevice *device, + NMAccessPoint *ap, + gboolean secrets_only); + +GtkWidget *nma_wifi_dialog_new_for_other (NMClient *client, + NMRemoteSettings *settings); + +GtkWidget *nma_wifi_dialog_new_for_create (NMClient *client, + NMRemoteSettings *settings); + +NMConnection * nma_wifi_dialog_get_connection (NMAWifiDialog *self, + NMDevice **device, + NMAccessPoint **ap); + +GtkWidget * nma_wifi_dialog_nag_user (NMAWifiDialog *self); + +void nma_wifi_dialog_set_nag_ignored (NMAWifiDialog *self, gboolean ignored); + +gboolean nma_wifi_dialog_get_nag_ignored (NMAWifiDialog *self); + +#endif /* NMA_WIFI_DIALOG_H */ + diff -Nru network-manager-applet-0.9.4.1/src/libnm-gtk/nm-wireless-dialog.c network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-wireless-dialog.c --- network-manager-applet-0.9.4.1/src/libnm-gtk/nm-wireless-dialog.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-wireless-dialog.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -17,1176 +17,32 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2007 - 2010 Red Hat, Inc. + * (C) Copyright 2007 - 2012 Red Hat, Inc. */ -#ifdef HAVE_CONFIG_H #include -#endif - -#include - -#include -#include -#include #include -#include -#include -#include -#include -#include #include "nm-wireless-dialog.h" -#include "wireless-security.h" -#include "utils.h" - -G_DEFINE_TYPE (NMAWirelessDialog, nma_wireless_dialog, GTK_TYPE_DIALOG) - -#define NMA_WIRELESS_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ - NMA_TYPE_WIRELESS_DIALOG, \ - NMAWirelessDialogPrivate)) - -typedef struct { - NMAWirelessDialog *self; - NMConnection *connection; - gboolean canceled; -} GetSecretsInfo; - -typedef struct { - NMClient *client; - NMRemoteSettings *settings; - - GtkBuilder *builder; - - NMConnection *connection; - NMDevice *device; - NMAccessPoint *ap; - gboolean adhoc_create; - - GtkTreeModel *device_model; - GtkTreeModel *connection_model; - GtkSizeGroup *group; - GtkWidget *sec_combo; - - gboolean nag_ignored; - gboolean network_name_focus; +#include "nm-wifi-dialog.h" - gboolean secrets_only; - - guint revalidate_id; - - GetSecretsInfo *secrets_info; - - gboolean disposed; -} NMAWirelessDialogPrivate; - -#define D_NAME_COLUMN 0 -#define D_DEV_COLUMN 1 - -#define S_NAME_COLUMN 0 -#define S_SEC_COLUMN 1 - -#define C_NAME_COLUMN 0 -#define C_CON_COLUMN 1 -#define C_SEP_COLUMN 2 -#define C_NEW_COLUMN 3 - -static gboolean security_combo_init (NMAWirelessDialog *self, gboolean secrets_only); -static void ssid_entry_changed (GtkWidget *entry, gpointer user_data); +GType +nma_wireless_dialog_get_type (void) +{ + return nma_wifi_dialog_get_type (); +} void nma_wireless_dialog_set_nag_ignored (NMAWirelessDialog *self, gboolean ignored) { - g_return_if_fail (self != NULL); - - NMA_WIRELESS_DIALOG_GET_PRIVATE (self)->nag_ignored = ignored; + nma_wifi_dialog_set_nag_ignored ((NMAWifiDialog *)self, ignored); } gboolean nma_wireless_dialog_get_nag_ignored (NMAWirelessDialog *self) { - g_return_val_if_fail (self != NULL, FALSE); - - return NMA_WIRELESS_DIALOG_GET_PRIVATE (self)->nag_ignored; -} - -static void -model_free (GtkTreeModel *model, guint col) -{ - GtkTreeIter iter; - - if (!model) - return; - - if (gtk_tree_model_get_iter_first (model, &iter)) { - do { - char *str; - - gtk_tree_model_get (model, &iter, col, &str, -1); - g_free (str); - } while (gtk_tree_model_iter_next (model, &iter)); - } - g_object_unref (model); -} - -static void -size_group_clear (GtkSizeGroup *group) -{ - GSList *iter; - - g_return_if_fail (group != NULL); - - iter = gtk_size_group_get_widgets (group); - while (iter) { - gtk_size_group_remove_widget (group, GTK_WIDGET (iter->data)); - iter = gtk_size_group_get_widgets (group); - } -} - -static void -size_group_add_permanent (GtkSizeGroup *group, - GtkBuilder *builder) -{ - GtkWidget *widget; - - g_return_if_fail (group != NULL); - g_return_if_fail (builder != NULL); - - widget = GTK_WIDGET (gtk_builder_get_object (builder, "network_name_label")); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (builder, "security_combo_label")); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (builder, "device_label")); - gtk_size_group_add_widget (group, widget); -} - -static void -security_combo_changed (GtkWidget *combo, - gpointer user_data) -{ - NMAWirelessDialog *self = NMA_WIRELESS_DIALOG (user_data); - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - GtkWidget *vbox, *sec_widget, *def_widget; - GList *elt, *children; - GtkTreeIter iter; - GtkTreeModel *model; - WirelessSecurity *sec = NULL; - - vbox = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_vbox")); - g_assert (vbox); - - size_group_clear (priv->group); - - /* Remove any previous wireless security widgets */ - children = gtk_container_get_children (GTK_CONTAINER (vbox)); - for (elt = children; elt; elt = g_list_next (elt)) - gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); - g_list_free (children); - - model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); - if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { - g_warning ("%s: no active security combo box item.", __func__); - return; - } - - gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); - if (!sec) { - /* Revalidate dialog if the user picked "None" so the OK button - * gets enabled if there's already a valid SSID. - */ - ssid_entry_changed (NULL, self); - return; - } - - sec_widget = wireless_security_get_widget (sec); - g_assert (sec_widget); - gtk_widget_unparent (sec_widget); - - size_group_add_permanent (priv->group, priv->builder); - wireless_security_add_to_size_group (sec, priv->group); - - gtk_container_add (GTK_CONTAINER (vbox), sec_widget); - - /* Re-validate */ - wireless_security_changed_cb (NULL, sec); - - /* Set focus to the security method's default widget, but only if the - * network name entry should not be focused. - */ - if (!priv->network_name_focus && sec->default_field) { - def_widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, sec->default_field)); - if (def_widget) - gtk_widget_grab_focus (def_widget); - } - - wireless_security_unref (sec); -} - -static void -security_combo_changed_manually (GtkWidget *combo, - gpointer user_data) -{ - NMAWirelessDialog *self = NMA_WIRELESS_DIALOG (user_data); - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - - /* Flag that the combo was changed manually to allow focus to move - * to the security method's default widget instead of the network name. - */ - priv->network_name_focus = FALSE; - security_combo_changed (combo, user_data); -} - -static GByteArray * -validate_dialog_ssid (NMAWirelessDialog *self) -{ - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - GtkWidget *widget; - const char *ssid; - guint32 ssid_len; - GByteArray *ssid_ba; - - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); - - ssid = gtk_entry_get_text (GTK_ENTRY (widget)); - - if (!ssid || strlen (ssid) == 0 || strlen (ssid) > 32) - return NULL; - - ssid_len = strlen (ssid); - ssid_ba = g_byte_array_sized_new (ssid_len); - g_byte_array_append (ssid_ba, (unsigned char *) ssid, ssid_len); - return ssid_ba; -} - -static void -stuff_changed_cb (WirelessSecurity *sec, gpointer user_data) -{ - NMAWirelessDialog *self = NMA_WIRELESS_DIALOG (user_data); - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - GByteArray *ssid = NULL; - gboolean free_ssid = TRUE; - gboolean valid = FALSE; - - if (priv->connection) { - NMSettingWireless *s_wireless; - s_wireless = nm_connection_get_setting_wireless (priv->connection); - g_assert (s_wireless); - ssid = (GByteArray *) nm_setting_wireless_get_ssid (s_wireless); - free_ssid = FALSE; - } else { - ssid = validate_dialog_ssid (self); - } - - if (ssid) { - valid = wireless_security_validate (sec, ssid); - if (free_ssid) - g_byte_array_free (ssid, TRUE); - } - - /* But if there's an in-progress secrets call (which might require authorization) - * then we don't want to enable the OK button because we don't have all the - * connection details yet. - */ - if (priv->secrets_info) - valid = FALSE; - - gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, valid); -} - -static void -ssid_entry_changed (GtkWidget *entry, gpointer user_data) -{ - NMAWirelessDialog *self = NMA_WIRELESS_DIALOG (user_data); - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - GtkTreeIter iter; - WirelessSecurity *sec = NULL; - GtkTreeModel *model; - gboolean valid = FALSE; - GByteArray *ssid; - - /* If the network name entry was touched at all, allow focus to go to - * the default widget of the security method now. - */ - priv->network_name_focus = FALSE; - - ssid = validate_dialog_ssid (self); - if (!ssid) - goto out; - - model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->sec_combo)); - if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->sec_combo), &iter)) - gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); - - if (sec) { - valid = wireless_security_validate (sec, ssid); - wireless_security_unref (sec); - } else { - valid = TRUE; - } - -out: - /* But if there's an in-progress secrets call (which might require authorization) - * then we don't want to enable the OK button because we don't have all the - * connection details yet. - */ - if (priv->secrets_info) - valid = FALSE; - - gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, valid); -} - -static void -connection_combo_changed (GtkWidget *combo, - gpointer user_data) -{ - NMAWirelessDialog *self = NMA_WIRELESS_DIALOG (user_data); - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - GtkTreeIter iter; - GtkTreeModel *model; - gboolean is_new = FALSE; - NMSettingWireless *s_wireless; - char *utf8_ssid; - GtkWidget *widget; - - if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { - g_warning ("%s: no active connection combo box item.", __func__); - return; - } - - model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); - - if (priv->connection) - g_object_unref (priv->connection); - - gtk_tree_model_get (model, &iter, - C_CON_COLUMN, &priv->connection, - C_NEW_COLUMN, &is_new, -1); - - if (!security_combo_init (self, priv->secrets_only)) { - g_warning ("Couldn't change wireless security combo box."); - return; - } - security_combo_changed (priv->sec_combo, self); - - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); - if (priv->connection) { - const GByteArray *ssid; - - s_wireless = nm_connection_get_setting_wireless (priv->connection); - ssid = nm_setting_wireless_get_ssid (s_wireless); - utf8_ssid = nm_utils_ssid_to_utf8 (ssid); - gtk_entry_set_text (GTK_ENTRY (widget), utf8_ssid); - g_free (utf8_ssid); - } else { - gtk_entry_set_text (GTK_ENTRY (widget), ""); - } - - gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")), is_new); - gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_label")), is_new); - gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")), is_new); - gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo_label")), is_new); - gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_vbox")), is_new); -} - -static gboolean -connection_combo_separator_cb (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) -{ - gboolean is_separator = FALSE; - - gtk_tree_model_get (model, iter, C_SEP_COLUMN, &is_separator, -1); - return is_separator; -} - -static gint -alphabetize_connections (NMConnection *a, NMConnection *b) -{ - NMSettingConnection *asc, *bsc; - - asc = nm_connection_get_setting_connection (a); - bsc = nm_connection_get_setting_connection (b); - - return strcmp (nm_setting_connection_get_id (asc), - nm_setting_connection_get_id (bsc)); -} - -static gboolean -connection_combo_init (NMAWirelessDialog *self, NMConnection *connection) -{ - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - GtkListStore *store; - int num_added = 0; - GtkTreeIter tree_iter; - GtkWidget *widget; - NMSettingConnection *s_con; - GtkCellRenderer *renderer; - const char *id; - - g_return_val_if_fail (priv->connection == NULL, FALSE); - - /* Clear any old model */ - model_free (priv->connection_model, C_NAME_COLUMN); - - /* New model */ - store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_OBJECT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); - priv->connection_model = GTK_TREE_MODEL (store); - - if (connection) { - s_con = nm_connection_get_setting_connection (connection); - g_assert (s_con); - id = nm_setting_connection_get_id (s_con); - if (id == NULL) { - /* New connections which will be completed by NM won't have an ID - * yet, but that doesn't matter because we don't show the connection - * combo anyway when there's a predefined connection. - */ - id = "blahblah"; - } - - gtk_list_store_append (store, &tree_iter); - gtk_list_store_set (store, &tree_iter, - C_NAME_COLUMN, id, - C_CON_COLUMN, connection, -1); - } else { - GSList *connections, *iter, *to_add = NULL; - - gtk_list_store_append (store, &tree_iter); - gtk_list_store_set (store, &tree_iter, - C_NAME_COLUMN, _("New..."), - C_NEW_COLUMN, TRUE, -1); - - gtk_list_store_append (store, &tree_iter); - gtk_list_store_set (store, &tree_iter, C_SEP_COLUMN, TRUE, -1); - - connections = nm_remote_settings_list_connections (priv->settings); - for (iter = connections; iter; iter = g_slist_next (iter)) { - NMConnection *candidate = NM_CONNECTION (iter->data); - NMSettingWireless *s_wireless; - const char *connection_type; - const char *mode; - const GByteArray *setting_mac; - - s_con = nm_connection_get_setting_connection (candidate); - connection_type = s_con ? nm_setting_connection_get_connection_type (s_con) : NULL; - if (!connection_type) - continue; - - if (strcmp (connection_type, NM_SETTING_WIRELESS_SETTING_NAME)) - continue; - - s_wireless = nm_connection_get_setting_wireless (candidate); - if (!s_wireless) - continue; - - /* If creating a new Ad-Hoc network, only show shared network connections */ - if (priv->adhoc_create) { - NMSettingIP4Config *s_ip4; - const char *method = NULL; - - s_ip4 = nm_connection_get_setting_ip4_config (candidate); - if (s_ip4) - method = nm_setting_ip4_config_get_method (s_ip4); - - if (!s_ip4 || strcmp (method, "shared")) - continue; - - /* Ignore non-Ad-Hoc connections too */ - mode = nm_setting_wireless_get_mode (s_wireless); - if (!mode || strcmp (mode, "adhoc")) - continue; - } - - /* Ignore connections that don't apply to the selected device */ - setting_mac = nm_setting_wireless_get_mac_address (s_wireless); - if (setting_mac) { - const char *hw_addr; - - hw_addr = nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (priv->device)); - if (hw_addr) { - struct ether_addr *ether; - - ether = ether_aton (hw_addr); - if (ether && memcmp (setting_mac->data, ether->ether_addr_octet, ETH_ALEN)) - continue; - } - } - - to_add = g_slist_append (to_add, candidate); - } - g_slist_free (connections); - - /* Alphabetize the list then add the connections */ - to_add = g_slist_sort (to_add, (GCompareFunc) alphabetize_connections); - for (iter = to_add; iter; iter = g_slist_next (iter)) { - NMConnection *candidate = NM_CONNECTION (iter->data); - - s_con = nm_connection_get_setting_connection (candidate); - gtk_list_store_append (store, &tree_iter); - gtk_list_store_set (store, &tree_iter, - C_NAME_COLUMN, nm_setting_connection_get_id (s_con), - C_CON_COLUMN, candidate, -1); - num_added++; - } - g_slist_free (to_add); - } - - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "connection_combo")); - - gtk_cell_layout_clear (GTK_CELL_LAYOUT (widget)); - renderer = gtk_cell_renderer_text_new (); - gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (widget), renderer, TRUE); - gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (widget), renderer, - "text", C_NAME_COLUMN); - gtk_combo_box_set_wrap_width (GTK_COMBO_BOX (widget), 1); - - gtk_combo_box_set_model (GTK_COMBO_BOX (widget), priv->connection_model); - - gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (widget), - connection_combo_separator_cb, - NULL, - NULL); - - gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); - g_signal_connect (G_OBJECT (widget), "changed", - G_CALLBACK (connection_combo_changed), self); - if (connection || !num_added) { - gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (priv->builder, "connection_label"))); - gtk_widget_hide (widget); - } - gtk_tree_model_get_iter_first (priv->connection_model, &tree_iter); - gtk_tree_model_get (priv->connection_model, &tree_iter, C_CON_COLUMN, &priv->connection, -1); - - return TRUE; -} - -static void -device_combo_changed (GtkWidget *combo, - gpointer user_data) -{ - NMAWirelessDialog *self = NMA_WIRELESS_DIALOG (user_data); - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - GtkTreeIter iter; - GtkTreeModel *model; - - if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { - g_warning ("%s: no active device combo box item.", __func__); - return; - } - model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); - - g_object_unref (priv->device); - gtk_tree_model_get (model, &iter, D_DEV_COLUMN, &priv->device, -1); - - if (!connection_combo_init (self, NULL)) { - g_warning ("Couldn't change connection combo box."); - return; - } - - if (!security_combo_init (self, priv->secrets_only)) { - g_warning ("Couldn't change wireless security combo box."); - return; - } - - security_combo_changed (priv->sec_combo, self); -} - -static void -add_device_to_model (GtkListStore *model, NMDevice *device) -{ - GtkTreeIter iter; - char *desc; - - desc = (char *) utils_get_device_description (device); - if (!desc) - desc = (char *) nm_device_get_iface (device); - g_assert (desc); - - gtk_list_store_append (model, &iter); - gtk_list_store_set (model, &iter, D_NAME_COLUMN, desc, D_DEV_COLUMN, device, -1); -} - -static gboolean -can_use_device (NMDevice *device) -{ - /* Ignore unsupported devices */ - if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED)) - return FALSE; - - if (!NM_IS_DEVICE_WIFI (device)) - return FALSE; - - if (nm_device_get_state (device) < NM_DEVICE_STATE_DISCONNECTED) - return FALSE; - - return TRUE; -} - -static gboolean -device_combo_init (NMAWirelessDialog *self, NMDevice *device) -{ - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - const GPtrArray *devices; - GtkListStore *store; - int i, num_added = 0; - - g_return_val_if_fail (priv->device == NULL, FALSE); - - store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_OBJECT); - priv->device_model = GTK_TREE_MODEL (store); - - if (device) { - if (!can_use_device (device)) - return FALSE; - add_device_to_model (store, device); - num_added++; - } else { - devices = nm_client_get_devices (priv->client); - if (devices->len == 0) - return FALSE; - - for (i = 0; devices && (i < devices->len); i++) { - device = NM_DEVICE (g_ptr_array_index (devices, i)); - if (can_use_device (device)) { - add_device_to_model (store, device); - num_added++; - } - } - } - - if (num_added > 0) { - GtkWidget *widget; - GtkTreeIter iter; - - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_combo")); - gtk_combo_box_set_model (GTK_COMBO_BOX (widget), priv->device_model); - gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); - g_signal_connect (G_OBJECT (widget), "changed", - G_CALLBACK (device_combo_changed), self); - if (num_added == 1) { - gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_label"))); - gtk_widget_hide (widget); - } - gtk_tree_model_get_iter_first (priv->device_model, &iter); - gtk_tree_model_get (priv->device_model, &iter, D_DEV_COLUMN, &priv->device, -1); - } - - return num_added > 0 ? TRUE : FALSE; -} - -static gboolean -find_proto (NMSettingWirelessSecurity *sec, const char *item) -{ - guint32 i; - - for (i = 0; i < nm_setting_wireless_security_get_num_protos (sec); i++) { - if (!strcmp (item, nm_setting_wireless_security_get_proto (sec, i))) - return TRUE; - } - return FALSE; -} - -static NMUtilsSecurityType -get_default_type_for_security (NMSettingWirelessSecurity *sec, - gboolean have_ap, - guint32 ap_flags, - guint32 dev_caps) -{ - const char *key_mgmt, *auth_alg; - - g_return_val_if_fail (sec != NULL, NMU_SEC_NONE); - - key_mgmt = nm_setting_wireless_security_get_key_mgmt (sec); - auth_alg = nm_setting_wireless_security_get_auth_alg (sec); - - /* No IEEE 802.1x */ - if (!strcmp (key_mgmt, "none")) - return NMU_SEC_STATIC_WEP; - - if ( !strcmp (key_mgmt, "ieee8021x") - && (!have_ap || (ap_flags & NM_802_11_AP_FLAGS_PRIVACY))) { - if (auth_alg && !strcmp (auth_alg, "leap")) - return NMU_SEC_LEAP; - return NMU_SEC_DYNAMIC_WEP; - } - - if ( !strcmp (key_mgmt, "wpa-none") - || !strcmp (key_mgmt, "wpa-psk")) { - if (!have_ap || (ap_flags & NM_802_11_AP_FLAGS_PRIVACY)) { - if (find_proto (sec, "rsn")) - return NMU_SEC_WPA2_PSK; - else if (find_proto (sec, "wpa")) - return NMU_SEC_WPA_PSK; - else - return NMU_SEC_WPA_PSK; - } - } - - if ( !strcmp (key_mgmt, "wpa-eap") - && (!have_ap || (ap_flags & NM_802_11_AP_FLAGS_PRIVACY))) { - if (find_proto (sec, "rsn")) - return NMU_SEC_WPA2_ENTERPRISE; - else if (find_proto (sec, "wpa")) - return NMU_SEC_WPA_ENTERPRISE; - else - return NMU_SEC_WPA_ENTERPRISE; - } - - return NMU_SEC_INVALID; -} - -static void -add_security_item (NMAWirelessDialog *self, - WirelessSecurity *sec, - GtkListStore *model, - GtkTreeIter *iter, - const char *text) -{ - wireless_security_set_changed_notify (sec, stuff_changed_cb, self); - gtk_list_store_append (model, iter); - gtk_list_store_set (model, iter, S_NAME_COLUMN, text, S_SEC_COLUMN, sec, -1); - wireless_security_unref (sec); -} - -static void -get_secrets_cb (NMRemoteConnection *connection, - GHashTable *secrets, - GError *error, - gpointer user_data) -{ - GetSecretsInfo *info = user_data; - NMAWirelessDialogPrivate *priv; - GHashTableIter hash_iter; - gpointer key, value; - GtkTreeModel *model; - GtkTreeIter iter; - - if (info->canceled) - goto out; - - priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (info->self); - if (priv->secrets_info == info) { - priv->secrets_info = NULL; - - /* Buttons should only be re-enabled if this secrets response is the - * in-progress one. - */ - gtk_dialog_set_response_sensitive (GTK_DIALOG (info->self), GTK_RESPONSE_CANCEL, TRUE); - gtk_dialog_set_response_sensitive (GTK_DIALOG (info->self), GTK_RESPONSE_OK, TRUE); - } - - if (error) { - g_warning ("%s: error getting connection secrets: (%d) %s", - __func__, - error ? error->code : -1, - error && error->message ? error->message : "(unknown)"); - goto out; - } - - /* User might have changed the connection while the secrets call was in - * progress, so don't try to update the wrong connection with the secrets - * we just received. - */ - if ( (priv->connection != info->connection) - || !secrets - || !g_hash_table_size (secrets)) - goto out; - - /* Try to update the connection's secrets; log errors but we don't care */ - g_hash_table_iter_init (&hash_iter, secrets); - while (g_hash_table_iter_next (&hash_iter, &key, &value)) { - GError *update_error = NULL; - const char *setting_name = key; - GHashTable *setting_hash = value; - - if (!nm_connection_update_secrets (priv->connection, - setting_name, - setting_hash, - &update_error)) { - g_warning ("%s: error updating connection secrets: (%d) %s", - __func__, - update_error ? update_error->code : -1, - update_error && update_error->message ? update_error->message : "(unknown)"); - g_clear_error (&update_error); - } - } - - /* Update each security method's UI elements with the new secrets */ - model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->sec_combo)); - if (gtk_tree_model_get_iter_first (model, &iter)) { - do { - WirelessSecurity *sec = NULL; - - gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); - if (sec) { - wireless_security_update_secrets (sec, priv->connection); - wireless_security_unref (sec); - } - } while (gtk_tree_model_iter_next (model, &iter)); - } - -out: - g_object_unref (info->connection); - g_free (info); -} - -static gboolean -security_combo_init (NMAWirelessDialog *self, gboolean secrets_only) -{ - NMAWirelessDialogPrivate *priv; - GtkListStore *sec_model; - GtkTreeIter iter; - guint32 ap_flags = 0; - guint32 ap_wpa = 0; - guint32 ap_rsn = 0; - guint32 dev_caps; - NMSettingWirelessSecurity *wsec = NULL; - NMUtilsSecurityType default_type = NMU_SEC_NONE; - NMWepKeyType wep_type = NM_WEP_KEY_TYPE_KEY; - int active = -1; - int item = 0; - NMSettingWireless *s_wireless = NULL; - gboolean is_adhoc; - const char *setting_name; - - g_return_val_if_fail (self != NULL, FALSE); - - priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - g_return_val_if_fail (priv->device != NULL, FALSE); - g_return_val_if_fail (priv->sec_combo != NULL, FALSE); - - is_adhoc = priv->adhoc_create; - - /* The security options displayed are filtered based on device - * capabilities, and if provided, additionally by access point capabilities. - * If a connection is given, that connection's options should be selected - * by default. - */ - dev_caps = nm_device_wifi_get_capabilities (NM_DEVICE_WIFI (priv->device)); - if (priv->ap != NULL) { - ap_flags = nm_access_point_get_flags (priv->ap); - ap_wpa = nm_access_point_get_wpa_flags (priv->ap); - ap_rsn = nm_access_point_get_rsn_flags (priv->ap); - } - - if (priv->connection) { - const char *mode; - const char *security; - - s_wireless = nm_connection_get_setting_wireless (priv->connection); - - mode = nm_setting_wireless_get_mode (s_wireless); - if (mode && !strcmp (mode, "adhoc")) - is_adhoc = TRUE; - - wsec = nm_connection_get_setting_wireless_security (priv->connection); - - security = nm_setting_wireless_get_security (s_wireless); - if (!security || strcmp (security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)) - wsec = NULL; - if (wsec) { - default_type = get_default_type_for_security (wsec, !!priv->ap, ap_flags, dev_caps); - if (default_type == NMU_SEC_STATIC_WEP) - wep_type = nm_setting_wireless_security_get_wep_key_type (wsec); - if (wep_type == NM_WEP_KEY_TYPE_UNKNOWN) - wep_type = NM_WEP_KEY_TYPE_KEY; - } - } else if (is_adhoc) { - default_type = NMU_SEC_STATIC_WEP; - wep_type = NM_WEP_KEY_TYPE_PASSPHRASE; - } - - sec_model = gtk_list_store_new (2, G_TYPE_STRING, wireless_security_get_g_type ()); - - if (nm_utils_security_valid (NMU_SEC_NONE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { - gtk_list_store_append (sec_model, &iter); - gtk_list_store_set (sec_model, &iter, - S_NAME_COLUMN, C_("Wifi/wired security", "None"), - -1); - if (default_type == NMU_SEC_NONE) - active = item; - item++; - } - - /* Don't show Static WEP if both the AP and the device are capable of WPA, - * even though technically it's possible to have this configuration. - */ - if ( nm_utils_security_valid (NMU_SEC_STATIC_WEP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) - && ((!ap_wpa && !ap_rsn) || !(dev_caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN)))) { - WirelessSecurityWEPKey *ws_wep; - - ws_wep = ws_wep_key_new (priv->connection, NM_WEP_KEY_TYPE_KEY, priv->adhoc_create, secrets_only); - if (ws_wep) { - add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, - &iter, _("WEP 40/128-bit Key (Hex or ASCII)")); - if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_KEY)) - active = item; - item++; - } - - ws_wep = ws_wep_key_new (priv->connection, NM_WEP_KEY_TYPE_PASSPHRASE, priv->adhoc_create, secrets_only); - if (ws_wep) { - add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, - &iter, _("WEP 128-bit Passphrase")); - if ((active < 0) && (default_type == NMU_SEC_STATIC_WEP) && (wep_type == NM_WEP_KEY_TYPE_PASSPHRASE)) - active = item; - item++; - } - } - - /* Don't show LEAP if both the AP and the device are capable of WPA, - * even though technically it's possible to have this configuration. - */ - if ( nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) - && ((!ap_wpa && !ap_rsn) || !(dev_caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN)))) { - WirelessSecurityLEAP *ws_leap; - - ws_leap = ws_leap_new (priv->connection, secrets_only); - if (ws_leap) { - add_security_item (self, WIRELESS_SECURITY (ws_leap), sec_model, - &iter, _("LEAP")); - if ((active < 0) && (default_type == NMU_SEC_LEAP)) - active = item; - item++; - } - } - - if (nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { - WirelessSecurityDynamicWEP *ws_dynamic_wep; - - ws_dynamic_wep = ws_dynamic_wep_new (priv->connection, FALSE, secrets_only); - if (ws_dynamic_wep) { - add_security_item (self, WIRELESS_SECURITY (ws_dynamic_wep), sec_model, - &iter, _("Dynamic WEP (802.1x)")); - if ((active < 0) && (default_type == NMU_SEC_DYNAMIC_WEP)) - active = item; - item++; - } - } - - if ( nm_utils_security_valid (NMU_SEC_WPA_PSK, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) - || nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { - WirelessSecurityWPAPSK *ws_wpa_psk; - - ws_wpa_psk = ws_wpa_psk_new (priv->connection, secrets_only); - if (ws_wpa_psk) { - add_security_item (self, WIRELESS_SECURITY (ws_wpa_psk), sec_model, - &iter, _("WPA & WPA2 Personal")); - if ((active < 0) && ((default_type == NMU_SEC_WPA_PSK) || (default_type == NMU_SEC_WPA2_PSK))) - active = item; - item++; - } - } - - if ( nm_utils_security_valid (NMU_SEC_WPA_ENTERPRISE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn) - || nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) { - WirelessSecurityWPAEAP *ws_wpa_eap; - - ws_wpa_eap = ws_wpa_eap_new (priv->connection, FALSE, secrets_only); - if (ws_wpa_eap) { - add_security_item (self, WIRELESS_SECURITY (ws_wpa_eap), sec_model, - &iter, _("WPA & WPA2 Enterprise")); - if ((active < 0) && ((default_type == NMU_SEC_WPA_ENTERPRISE) || (default_type == NMU_SEC_WPA2_ENTERPRISE))) - active = item; - item++; - } - } - - gtk_combo_box_set_model (GTK_COMBO_BOX (priv->sec_combo), GTK_TREE_MODEL (sec_model)); - gtk_combo_box_set_active (GTK_COMBO_BOX (priv->sec_combo), active < 0 ? 0 : (guint32) active); - g_object_unref (G_OBJECT (sec_model)); - - /* If the dialog was given a connection when it was created, that connection - * will already be populated with secrets. If no connection was given, - * then we need to get any existing secrets to populate the dialog with. - */ - setting_name = priv->connection ? nm_connection_need_secrets (priv->connection, NULL) : NULL; - if (setting_name && NM_IS_REMOTE_CONNECTION (priv->connection)) { - GetSecretsInfo *info; - - /* Desensitize the dialog's buttons while we wait for the secrets - * operation to complete. - */ - gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, FALSE); - gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_CANCEL, FALSE); - - info = g_malloc0 (sizeof (GetSecretsInfo)); - info->self = self; - info->connection = g_object_ref (priv->connection); - priv->secrets_info = info; - - nm_remote_connection_get_secrets (NM_REMOTE_CONNECTION (priv->connection), - setting_name, - get_secrets_cb, - info); - } - - return TRUE; -} - -static gboolean -revalidate (gpointer user_data) -{ - NMAWirelessDialog *self = NMA_WIRELESS_DIALOG (user_data); - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - - priv->revalidate_id = 0; - security_combo_changed (priv->sec_combo, self); - return FALSE; -} - -static gboolean -internal_init (NMAWirelessDialog *self, - NMConnection *specific_connection, - NMDevice *specific_device, - gboolean secrets_only, - gboolean create) -{ - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - GtkWidget *widget; - char *label, *icon_name = "network-wireless"; - gboolean security_combo_focus = FALSE; - - gtk_window_set_position (GTK_WINDOW (self), GTK_WIN_POS_CENTER_ALWAYS); - gtk_container_set_border_width (GTK_CONTAINER (self), 6); - gtk_window_set_default_size (GTK_WINDOW (self), 488, -1); - gtk_window_set_resizable (GTK_WINDOW (self), FALSE); - - priv->secrets_only = secrets_only; - if (secrets_only) - icon_name = "dialog-password"; - else - icon_name = "network-wireless"; - - gtk_window_set_icon_name (GTK_WINDOW (self), icon_name); - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "image1")); - gtk_image_set_from_icon_name (GTK_IMAGE (widget), icon_name, GTK_ICON_SIZE_DIALOG); - - gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), 2); - - widget = gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); - gtk_box_set_child_packing (GTK_BOX (gtk_dialog_get_action_area (GTK_DIALOG (self))), widget, - FALSE, TRUE, 0, GTK_PACK_END); - - /* Connect/Create button */ - if (create) { - GtkWidget *image; - - widget = gtk_button_new_with_mnemonic (_("C_reate")); - image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_BUTTON); - gtk_button_set_image (GTK_BUTTON (widget), image); - - gtk_widget_show (widget); - gtk_dialog_add_action_widget (GTK_DIALOG (self), widget, GTK_RESPONSE_OK); - } else - widget = gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CONNECT, GTK_RESPONSE_OK); - - gtk_box_set_child_packing (GTK_BOX (gtk_dialog_get_action_area (GTK_DIALOG (self))), widget, - FALSE, TRUE, 0, GTK_PACK_END); - g_object_set (G_OBJECT (widget), "can-default", TRUE, NULL); - gtk_widget_grab_default (widget); - - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "hbox1")); - if (!widget) { - g_warning ("Couldn't find wireless_dialog widget."); - return FALSE; - } - gtk_widget_unparent (widget); - - gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (self))), widget); - - /* If given a valid connection, hide the SSID bits and connection combo */ - if (specific_connection) { - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_label")); - gtk_widget_hide (widget); - - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); - gtk_widget_hide (widget); - - security_combo_focus = TRUE; - priv->network_name_focus = FALSE; - } else { - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); - g_signal_connect (G_OBJECT (widget), "changed", (GCallback) ssid_entry_changed, self); - priv->network_name_focus = TRUE; - } - - gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, FALSE); - - if (!device_combo_init (self, specific_device)) { - g_warning ("No wireless devices available."); - return FALSE; - } - - if (!connection_combo_init (self, specific_connection)) { - g_warning ("Couldn't set up connection combo box."); - return FALSE; - } - - if (!security_combo_init (self, priv->secrets_only)) { - g_warning ("Couldn't set up wireless security combo box."); - return FALSE; - } - - security_combo_changed (priv->sec_combo, self); - g_signal_connect (G_OBJECT (priv->sec_combo), "changed", - G_CALLBACK (security_combo_changed_manually), self); - - if (secrets_only) { - gtk_widget_hide (priv->sec_combo); - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo_label")); - gtk_widget_hide (widget); - } - - if (security_combo_focus) - gtk_widget_grab_focus (priv->sec_combo); - else if (priv->network_name_focus) { - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")); - gtk_widget_grab_focus (widget); - } - - if (priv->connection) { - char *tmp; - char *esc_ssid = NULL; - NMSettingWireless *s_wireless; - const GByteArray *ssid; - - s_wireless = nm_connection_get_setting_wireless (priv->connection); - ssid = s_wireless ? nm_setting_wireless_get_ssid (s_wireless) : NULL; - if (ssid) - esc_ssid = nm_utils_ssid_to_utf8 (ssid); - - tmp = g_strdup_printf (_("Passwords or encryption keys are required to access the wireless network '%s'."), - esc_ssid ? esc_ssid : ""); - gtk_window_set_title (GTK_WINDOW (self), _("Wireless Network Authentication Required")); - label = g_strdup_printf ("%s\n\n%s", - _("Authentication required by wireless network"), - tmp); - g_free (esc_ssid); - g_free (tmp); - } else if (priv->adhoc_create) { - gtk_window_set_title (GTK_WINDOW (self), _("Create New Wireless Network")); - label = g_strdup_printf ("%s\n\n%s", - _("New wireless network"), - _("Enter a name for the wireless network you wish to create.")); - } else { - gtk_window_set_title (GTK_WINDOW (self), _("Connect to Hidden Wireless Network")); - label = g_strdup_printf ("%s\n\n%s", - _("Hidden wireless network"), - _("Enter the name and security details of the hidden wireless network you wish to connect to.")); - } - - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "caption_label")); - gtk_label_set_markup (GTK_LABEL (widget), label); - g_free (label); - - /* Re-validate from an idle handler so that widgets like file choosers - * have had time to find their files. - */ - priv->revalidate_id = g_idle_add (revalidate, self); - - return TRUE; + return nma_wifi_dialog_get_nag_ignored ((NMAWifiDialog *)self); } NMConnection * @@ -1194,257 +50,34 @@ NMDevice **out_device, NMAccessPoint **ap) { - NMAWirelessDialogPrivate *priv; - GtkWidget *combo; - GtkTreeModel *model; - WirelessSecurity *sec = NULL; - GtkTreeIter iter; - NMConnection *connection; - NMSettingWireless *s_wireless; - - g_return_val_if_fail (self != NULL, NULL); - - priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - - if (!priv->connection) { - NMSettingConnection *s_con; - char *uuid; - - connection = nm_connection_new (); - - s_con = (NMSettingConnection *) nm_setting_connection_new (); - uuid = nm_utils_uuid_generate (); - g_object_set (s_con, - NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRELESS_SETTING_NAME, - NM_SETTING_CONNECTION_UUID, uuid, - NULL); - g_free (uuid); - nm_connection_add_setting (connection, (NMSetting *) s_con); - - s_wireless = (NMSettingWireless *) nm_setting_wireless_new (); - g_object_set (s_wireless, NM_SETTING_WIRELESS_SSID, validate_dialog_ssid (self), NULL); - - if (priv->adhoc_create) { - NMSettingIP4Config *s_ip4; - - g_object_set (s_wireless, NM_SETTING_WIRELESS_MODE, "adhoc", NULL); - - s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new (); - g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_SHARED, NULL); - nm_connection_add_setting (connection, (NMSetting *) s_ip4); - } - - nm_connection_add_setting (connection, (NMSetting *) s_wireless); - } else - connection = g_object_ref (priv->connection); - - /* Fill security */ - model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->sec_combo)); - if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->sec_combo), &iter)) - gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); - if (sec) { - wireless_security_fill_connection (sec, connection); - wireless_security_unref (sec); - } else { - /* Unencrypted */ - s_wireless = nm_connection_get_setting_wireless (connection); - g_assert (s_wireless); - - g_object_set (s_wireless, NM_SETTING_WIRELESS_SEC, NULL, NULL); - } - - /* Fill device */ - if (out_device) { - combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_combo")); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter); - gtk_tree_model_get (priv->device_model, &iter, D_DEV_COLUMN, out_device, -1); - g_object_unref (*out_device); - } - - if (ap) - *ap = priv->ap; - - return connection; + return nma_wifi_dialog_get_connection ((NMAWifiDialog *)self, out_device, ap); } GtkWidget * nma_wireless_dialog_new (NMClient *client, - NMRemoteSettings *settings, + NMRemoteSettings *settings, NMConnection *connection, NMDevice *device, NMAccessPoint *ap, gboolean secrets_only) { - GObject *obj; - NMAWirelessDialogPrivate *priv; - guint32 dev_caps; - - g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), NULL); - g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); - - /* Ensure device validity */ - if (device) { - dev_caps = nm_device_get_capabilities (device); - g_return_val_if_fail (dev_caps & NM_DEVICE_CAP_NM_SUPPORTED, NULL); - g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); - } - - obj = g_object_new (NMA_TYPE_WIRELESS_DIALOG, NULL); - if (obj) { - priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (obj); - - priv->client = g_object_ref (client); - priv->settings = g_object_ref (settings); - if (ap) - priv->ap = g_object_ref (ap); - - priv->sec_combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")); - priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - - if (!internal_init (NMA_WIRELESS_DIALOG (obj), connection, device, secrets_only, FALSE)) { - g_warning ("Couldn't create wireless security dialog."); - g_object_unref (obj); - obj = NULL; - } - } - - return (GtkWidget *) obj; -} - -static GtkWidget * -internal_new_other (NMClient *client, NMRemoteSettings *settings, gboolean create) -{ - NMAWirelessDialog *self; - NMAWirelessDialogPrivate *priv; - - g_return_val_if_fail (NM_IS_CLIENT (client), NULL); - g_return_val_if_fail (NM_IS_REMOTE_SETTINGS (settings), NULL); - - self = NMA_WIRELESS_DIALOG (g_object_new (NMA_TYPE_WIRELESS_DIALOG, NULL)); - if (!self) - return NULL; - - priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - - priv->client = g_object_ref (client); - priv->settings = g_object_ref (settings); - priv->sec_combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")); - priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - priv->adhoc_create = create; - - if (!internal_init (self, NULL, NULL, FALSE, create)) { - g_warning ("Couldn't create wireless security dialog."); - g_object_unref (self); - return NULL; - } - - return GTK_WIDGET (self); + return nma_wifi_dialog_new (client, settings, connection, device, ap, secrets_only); } GtkWidget * nma_wireless_dialog_new_for_other (NMClient *client, NMRemoteSettings *settings) { - return internal_new_other (client, settings, FALSE); + return nma_wifi_dialog_new_for_other (client, settings); } GtkWidget * nma_wireless_dialog_new_for_create (NMClient *client, NMRemoteSettings *settings) { - return internal_new_other (client, settings, TRUE); + return nma_wifi_dialog_new_for_create (client, settings); } GtkWidget * nma_wireless_dialog_nag_user (NMAWirelessDialog *self) { - NMAWirelessDialogPrivate *priv; - GtkWidget *combo; - GtkTreeModel *model; - GtkTreeIter iter; - WirelessSecurity *sec = NULL; - - g_return_val_if_fail (self != NULL, NULL); - - priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - - combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")); - g_return_val_if_fail (combo != NULL, NULL); - - /* Ask the security method if it wants to nag the user. */ - model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); - if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { - g_warning ("%s: no active security combo box item.", __func__); - return NULL; - } - - gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); - if (sec) - return wireless_security_nag_user (sec); - - return NULL; -} - -static void -nma_wireless_dialog_init (NMAWirelessDialog *self) -{ - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); - GError *error = NULL; - - priv->builder = gtk_builder_new (); - - if (!gtk_builder_add_from_file (priv->builder, UIDIR "/wifi.ui", &error)) { - g_warning ("Couldn't load builder file: %s", error->message); - g_error_free (error); - } -} - -static void -dispose (GObject *object) -{ - NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (object); - - if (priv->disposed) { - G_OBJECT_CLASS (nma_wireless_dialog_parent_class)->dispose (object); - return; - } - - priv->disposed = TRUE; - - if (priv->secrets_info) - priv->secrets_info->canceled = TRUE; - - g_object_unref (priv->client); - g_object_unref (priv->settings); - g_object_unref (priv->builder); - - model_free (priv->device_model, D_NAME_COLUMN); - model_free (priv->connection_model, C_NAME_COLUMN); - - if (priv->group) - g_object_unref (priv->group); - - if (priv->connection) - g_object_unref (priv->connection); - - if (priv->device) - g_object_unref (priv->device); - - if (priv->ap) - g_object_unref (priv->ap); - - if (priv->revalidate_id) - g_source_remove (priv->revalidate_id); - - G_OBJECT_CLASS (nma_wireless_dialog_parent_class)->dispose (object); -} - -static void -nma_wireless_dialog_class_init (NMAWirelessDialogClass *nmad_class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (nmad_class); - - g_type_class_add_private (object_class, sizeof (NMAWirelessDialogPrivate)); - - /* virtual methods */ - object_class->dispose = dispose; + return nma_wifi_dialog_nag_user ((NMAWifiDialog *)self); } diff -Nru network-manager-applet-0.9.4.1/src/libnm-gtk/nm-wireless-dialog.h network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-wireless-dialog.h --- network-manager-applet-0.9.4.1/src/libnm-gtk/nm-wireless-dialog.h 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/nm-wireless-dialog.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,4 +1,4 @@ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -16,7 +16,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2007 - 2011 Red Hat, Inc. + * (C) Copyright 2007 - 2012 Red Hat, Inc. */ @@ -35,24 +35,31 @@ #include #include #include +#include #define NMA_TYPE_WIRELESS_DIALOG (nma_wireless_dialog_get_type ()) #define NMA_WIRELESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMA_TYPE_WIRELESS_DIALOG, NMAWirelessDialog)) #define NMA_WIRELESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMA_TYPE_WIRELESS_DIALOG, NMAWirelessDialogClass)) #define NMA_IS_WIRELESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMA_TYPE_WIRELESS_DIALOG)) -#define NMA_IS_WIRELESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NMA_TYPE_WIRELESS_DIALOG)) +#define NMA_IS_WIRELESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMA_TYPE_WIRELESS_DIALOG)) #define NMA_WIRELESS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMA_TYPE_WIRELESS_DIALOG, NMAWirelessDialogClass)) typedef struct { - GtkDialog parent; + GObject parent; } NMAWirelessDialog; typedef struct { - GtkDialogClass parent; + GObjectClass parent; } NMAWirelessDialogClass; +#if !GLIB_CHECK_VERSION(2,31,0) +#define GLIB_DEPRECATED_FOR(x) +#endif + +GLIB_DEPRECATED_FOR(nma_wifi_dialog_get_type) GType nma_wireless_dialog_get_type (void); +GLIB_DEPRECATED_FOR(nma_wifi_dialog_new) GtkWidget *nma_wireless_dialog_new (NMClient *client, NMRemoteSettings *settings, NMConnection *connection, @@ -60,20 +67,26 @@ NMAccessPoint *ap, gboolean secrets_only); +GLIB_DEPRECATED_FOR(nma_wifi_dialog_new_for_other) GtkWidget *nma_wireless_dialog_new_for_other (NMClient *client, NMRemoteSettings *settings); +GLIB_DEPRECATED_FOR(nma_wifi_dialog_new_for_create) GtkWidget *nma_wireless_dialog_new_for_create (NMClient *client, NMRemoteSettings *settings); +GLIB_DEPRECATED_FOR(nma_wifi_dialog_get_connection) NMConnection * nma_wireless_dialog_get_connection (NMAWirelessDialog *dialog, NMDevice **device, NMAccessPoint **ap); +GLIB_DEPRECATED_FOR(nma_wifi_dialog_nag_user) GtkWidget * nma_wireless_dialog_nag_user (NMAWirelessDialog *dialog); +GLIB_DEPRECATED_FOR(nma_wifi_dialog_set_nag_ignored) void nma_wireless_dialog_set_nag_ignored (NMAWirelessDialog *dialog, gboolean ignored); +GLIB_DEPRECATED_FOR(nma_wifi_dialog_get_nag_ignored) gboolean nma_wireless_dialog_get_nag_ignored (NMAWirelessDialog *dialog); #endif /* NMA_WIRELESS_DIALOG_H */ diff -Nru network-manager-applet-0.9.4.1/src/libnm-gtk/wifi.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/wifi.ui --- network-manager-applet-0.9.4.1/src/libnm-gtk/wifi.ui 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/libnm-gtk/wifi.ui 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ - + @@ -80,7 +80,7 @@ True 0 - _Wireless security: + Wi-Fi _security: True security_combo @@ -144,7 +144,7 @@ True 0 - Co_nnection: + C_onnection: True connection_combo @@ -172,7 +172,7 @@ True 0 - Wireless _adapter: + Wi-Fi _adapter: True device_combo diff -Nru network-manager-applet-0.9.4.1/src/main.c network-manager-applet-0.9.6.2+git201210311320.2620/src/main.c --- network-manager-applet-0.9.4.1/src/main.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/main.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/marshallers/Makefile.am network-manager-applet-0.9.6.2+git201210311320.2620/src/marshallers/Makefile.am --- network-manager-applet-0.9.4.1/src/marshallers/Makefile.am 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/marshallers/Makefile.am 2012-10-31 13:20:57.000000000 +0000 @@ -1,11 +1,21 @@ +include $(GLIB_MAKEFILE) + noinst_LTLIBRARIES = libmarshallers.la -BUILT_SOURCES = \ +GLIB_GENERATED = \ nma-marshal.h \ nma-marshal.c +BUILT_SOURCES = $(GLIB_GENERATED) + +nma_marshal_sources = \ + $(top_srcdir)/src/*.c \ + $(top_srcdir)/src/gnome-bluetooth/*.c \ + $(top_srcdir)/src/connection-editor/*.c + libmarshallers_la_SOURCES = \ - nma-marshal-main.c + nma-marshal.h \ + nma-marshal.c libmarshallers_la_CPPFLAGS = \ $(GOBJECT_CFLAGS) \ @@ -14,14 +24,3 @@ libmarshallers_la_LIBADD = $(GOBJECT_LIBS) -EXTRA_DIST = nma-marshal.list -CLEANFILES = $(BUILT_SOURCES) - -nma-marshal.h: nma-marshal.list - $(GLIB_GENMARSHAL) $< --prefix=_nma_marshal --header > $@ - -nma-marshal.c: nma-marshal.list - $(GLIB_GENMARSHAL) $< --prefix=_nma_marshal --body > $@ - -nma-marshal-main.c: nma-marshal.c nma-marshal.h - diff -Nru network-manager-applet-0.9.4.1/src/marshallers/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/src/marshallers/Makefile.in --- network-manager-applet-0.9.4.1/src/marshallers/Makefile.in 2012-03-23 22:55:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/marshallers/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,580 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/marshallers -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -LTLIBRARIES = $(noinst_LTLIBRARIES) -am__DEPENDENCIES_1 = -libmarshallers_la_DEPENDENCIES = $(am__DEPENDENCIES_1) -am_libmarshallers_la_OBJECTS = libmarshallers_la-nma-marshal-main.lo -libmarshallers_la_OBJECTS = $(am_libmarshallers_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libmarshallers_la_SOURCES) -DIST_SOURCES = $(libmarshallers_la_SOURCES) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -noinst_LTLIBRARIES = libmarshallers.la -BUILT_SOURCES = \ - nma-marshal.h \ - nma-marshal.c - -libmarshallers_la_SOURCES = \ - nma-marshal-main.c - -libmarshallers_la_CPPFLAGS = \ - $(GOBJECT_CFLAGS) \ - -DG_DISABLE_DEPRECATED - -libmarshallers_la_LIBADD = $(GOBJECT_LIBS) -EXTRA_DIST = nma-marshal.list -CLEANFILES = $(BUILT_SOURCES) -all: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/marshallers/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/marshallers/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libmarshallers.la: $(libmarshallers_la_OBJECTS) $(libmarshallers_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(libmarshallers_la_OBJECTS) $(libmarshallers_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmarshallers_la-nma-marshal-main.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -libmarshallers_la-nma-marshal-main.lo: nma-marshal-main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmarshallers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmarshallers_la-nma-marshal-main.lo -MD -MP -MF $(DEPDIR)/libmarshallers_la-nma-marshal-main.Tpo -c -o libmarshallers_la-nma-marshal-main.lo `test -f 'nma-marshal-main.c' || echo '$(srcdir)/'`nma-marshal-main.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmarshallers_la-nma-marshal-main.Tpo $(DEPDIR)/libmarshallers_la-nma-marshal-main.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nma-marshal-main.c' object='libmarshallers_la-nma-marshal-main.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmarshallers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmarshallers_la-nma-marshal-main.lo `test -f 'nma-marshal-main.c' || echo '$(srcdir)/'`nma-marshal-main.c - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-am -all-am: Makefile $(LTLIBRARIES) -installdirs: -install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: all check install install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am - - -nma-marshal.h: nma-marshal.list - $(GLIB_GENMARSHAL) $< --prefix=_nma_marshal --header > $@ - -nma-marshal.c: nma-marshal.list - $(GLIB_GENMARSHAL) $< --prefix=_nma_marshal --body > $@ - -nma-marshal-main.c: nma-marshal.c nma-marshal.h - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/src/marshallers/nma-marshal-main.c network-manager-applet-0.9.6.2+git201210311320.2620/src/marshallers/nma-marshal-main.c --- network-manager-applet-0.9.4.1/src/marshallers/nma-marshal-main.c 2009-12-23 18:30:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/marshallers/nma-marshal-main.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -#include "nma-marshal.h" -#include "nma-marshal.c" diff -Nru network-manager-applet-0.9.4.1/src/marshallers/nma-marshal.list network-manager-applet-0.9.6.2+git201210311320.2620/src/marshallers/nma-marshal.list --- network-manager-applet-0.9.4.1/src/marshallers/nma-marshal.list 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/marshallers/nma-marshal.list 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -VOID:POINTER -VOID:STRING,STRING,STRING -VOID:POINTER,POINTER,STRING,POINTER,UINT,POINTER,POINTER -VOID:POINTER,POINTER -VOID:INT,POINTER -VOID:STRING,BOXED -VOID:UINT,UINT -VOID:UINT,STRING,STRING - diff -Nru network-manager-applet-0.9.4.1/src/mb-menu-item.c network-manager-applet-0.9.6.2+git201210311320.2620/src/mb-menu-item.c --- network-manager-applet-0.9.4.1/src/mb-menu-item.c 2012-03-20 20:32:44.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/mb-menu-item.c 2012-10-31 13:21:01.000000000 +0000 @@ -69,8 +69,12 @@ return _("HSUPA"); case MB_TECH_HSPA: return _("HSPA"); + case MB_TECH_HSPA_PLUS: + return _("HSPA+"); case MB_TECH_WIMAX: return _("WiMAX"); + case MB_TECH_LTE: + return _("LTE"); default: break; } @@ -180,11 +184,14 @@ gtk_label_set_text (GTK_LABEL (priv->desc), priv->desc_string); } +/* Disabling this for indicators only because it won't build otherwise. */ +#ifndef ENABLE_INDICATOR /* And the strength icon, if we have strength information at all */ if (enabled && strength) { gtk_image_set_from_pixbuf (GTK_IMAGE (priv->strength), mobile_helper_get_quality_icon (strength, applet)); } +#endif return GTK_WIDGET (item); } diff -Nru network-manager-applet-0.9.4.1/src/migration-tool.c network-manager-applet-0.9.6.2+git201210311320.2620/src/migration-tool.c --- network-manager-applet-0.9.4.1/src/migration-tool.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/migration-tool.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,98 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager applet migration tool -- migrate old GConf settings + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright 2005-2012 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +#include +#include + +#include "gconf-helpers.h" + +gboolean success = TRUE; + +static void +add_cb (NMRemoteSettings *settings, + NMRemoteConnection *connection, + GError *error, + gpointer user_data) +{ + NMConnection *c = user_data; + + if (error) { + g_printerr ("Failed to move connection '%s' to NetworkManager system settings: %s", + nm_connection_get_id (c), + error->message); + success = FALSE; + } + g_object_unref (c); +} + +static void +import_cb (NMConnection *connection, gpointer user_data) +{ + NMRemoteSettings *settings = user_data; + + if (!nm_remote_settings_add_connection (settings, connection, add_cb, g_object_ref (connection))) { + g_warning ("Failed to move connection '%s' to NetworkManager system settings.", + nm_connection_get_id (connection)); + g_object_unref (connection); + success = FALSE; + } +} + +int +main (int argc, char **argv) +{ + DBusGConnection *bus; + NMRemoteSettings *settings; + GError *error = NULL; + + bindtextdomain (GETTEXT_PACKAGE, NMALOCALEDIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); + + g_type_init (); + + if (argc != 1) { + g_printerr ("Usage: %s\n", argv[0]); + exit (1); + } + + bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); + if (!bus) { + g_printerr ("Could not get system bus: %s\n", error->message); + g_error_free (error); + exit (1); + } + + settings = nm_remote_settings_new (bus); + nm_gconf_move_connections_to_system (import_cb, settings); + + g_object_unref (settings); + dbus_g_connection_unref (bus); + + return success ? 0 : 1; +} + diff -Nru network-manager-applet-0.9.4.1/src/mobile-helpers.c network-manager-applet-0.9.6.2+git201210311320.2620/src/mobile-helpers.c --- network-manager-applet-0.9.4.1/src/mobile-helpers.c 2012-03-19 18:41:12.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/mobile-helpers.c 2012-10-31 13:21:01.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -21,6 +21,7 @@ */ #include "mobile-helpers.h" +#include GdkPixbuf * mobile_helper_get_status_pixbuf (guint32 quality, @@ -35,7 +36,11 @@ if (!quality_valid) quality = 0; +#ifndef ENABLE_INDICATOR qual_pixbuf = mobile_helper_get_quality_icon (quality, applet); +#else + qual_pixbuf = wwan_pixbuf; +#endif pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, @@ -83,20 +88,154 @@ return pixbuf; } +#ifndef ENABLE_INDICATOR GdkPixbuf * +#else +char * +#endif mobile_helper_get_quality_icon (guint32 quality, NMApplet *applet) { +#ifndef ENABLE_INDICATOR if (quality > 80) - return nma_icon_check_and_load ("nm-signal-100", &applet->wireless_100_icon, applet); + return nma_icon_check_and_load ("nm-signal-100", &applet->wifi_100_icon, applet); else if (quality > 55) - return nma_icon_check_and_load ("nm-signal-75", &applet->wireless_75_icon, applet); + return nma_icon_check_and_load ("nm-signal-75", &applet->wifi_75_icon, applet); else if (quality > 30) - return nma_icon_check_and_load ("nm-signal-50", &applet->wireless_50_icon, applet); + return nma_icon_check_and_load ("nm-signal-50", &applet->wifi_50_icon, applet); else if (quality > 5) - return nma_icon_check_and_load ("nm-signal-25", &applet->wireless_25_icon, applet); + return nma_icon_check_and_load ("nm-signal-25", &applet->wifi_25_icon, applet); - return nma_icon_check_and_load ("nm-signal-00", &applet->wireless_00_icon, applet); + return nma_icon_check_and_load ("nm-signal-00", &applet->wifi_00_icon, applet); +#else + char *icon_name; + + if (quality > 80) + icon_name = g_strdup_printf ("gsm-3g-full"); + else if (quality > 55) + icon_name = g_strdup_printf ("gsm-3g-high"); + else if (quality > 30) + icon_name = g_strdup_printf ("gsm-3g-medium"); + else if (quality > 5) + icon_name = g_strdup_printf ("gsm-3g-low"); + else + icon_name = g_strdup_printf ("gsm-3g-none"); + + return icon_name; +#endif +} + +#ifdef ENABLE_INDICATOR +static const char * +get_tech_name (guint32 tech) +{ + switch (tech) { + case MB_TECH_1XRTT: + return _("CDMA"); + case MB_TECH_EVDO_REV0: + case MB_TECH_EVDO_REVA: + return _("EVDO"); + case MB_TECH_GSM: + return _("GSM"); + case MB_TECH_GPRS: + return _("GPRS"); + case MB_TECH_EDGE: + return _("EDGE"); + case MB_TECH_UMTS: + return _("UMTS"); + case MB_TECH_HSDPA: + return _("HSDPA"); + case MB_TECH_HSUPA: + return _("HSUPA"); + case MB_TECH_HSPA: + return _("HSPA"); + case MB_TECH_HSPA_PLUS: + return _("HSPA+"); + case MB_TECH_LTE: + return _("LTE"); + default: + break; + } + return NULL; +} + +char * +mobile_helper_get_connection_label (const char *connection_name, + const char *provider, + guint32 technology, + guint32 state) +{ + const char *tech_name; + char *desc_string; + + /* Construct the description string */ + tech_name = get_tech_name (technology); + switch (state) { + default: + case MB_STATE_UNKNOWN: + desc_string = g_strdup (_("not enabled")); + break; + case MB_STATE_IDLE: + if (connection_name) + desc_string = g_strdup (connection_name); + else + desc_string = g_strdup (_("not registered")); + break; + case MB_STATE_HOME: + if (connection_name) { + if (provider && tech_name) + desc_string = g_strdup_printf ("%s (%s %s)", connection_name, provider, tech_name); + else if (provider || tech_name) + desc_string = g_strdup_printf ("%s (%s)", connection_name, provider ? provider : tech_name); + else + desc_string = g_strdup_printf ("%s", connection_name); + } else { + if (provider) { + if (tech_name) + desc_string = g_strdup_printf ("%s %s", provider, tech_name); + else + desc_string = g_strdup_printf ("%s", provider); + } else { + if (tech_name) + desc_string = g_strdup_printf (_("Home network (%s)"), tech_name); + else + desc_string = g_strdup_printf (_("Home network")); + } + } + break; + case MB_STATE_SEARCHING: + if (connection_name) + desc_string = g_strdup (connection_name); + else + desc_string = g_strdup (_("searching")); + break; + case MB_STATE_DENIED: + desc_string = g_strdup (_("registration denied")); + break; + case MB_STATE_ROAMING: + if (connection_name) { + if (tech_name) + desc_string = g_strdup_printf (_("%s (%s roaming)"), connection_name, tech_name); + else + desc_string = g_strdup_printf (_("%s (roaming)"), connection_name); + } else { + if (provider) { + if (tech_name) + desc_string = g_strdup_printf (_("%s (%s roaming)"), provider, tech_name); + else + desc_string = g_strdup_printf (_("%s (roaming)"), provider); + } else { + if (tech_name) + desc_string = g_strdup_printf (_("Roaming network (%s)"), tech_name); + else + desc_string = g_strdup_printf (_("Roaming network")); + } + } + break; + } + + return desc_string; } +#endif GdkPixbuf * mobile_helper_get_tech_icon (guint32 tech, NMApplet *applet) @@ -117,7 +256,10 @@ case MB_TECH_HSDPA: case MB_TECH_HSUPA: case MB_TECH_HSPA: + case MB_TECH_HSPA_PLUS: return nma_icon_check_and_load ("nm-tech-hspa", &applet->mb_tech_hspa_icon, applet); + case MB_TECH_LTE: + return nma_icon_check_and_load ("nm-tech-lte", &applet->mb_tech_lte_icon, applet); case MB_TECH_WIMAX: default: return NULL; diff -Nru network-manager-applet-0.9.4.1/src/mobile-helpers.h network-manager-applet-0.9.6.2+git201210311320.2620/src/mobile-helpers.h --- network-manager-applet-0.9.4.1/src/mobile-helpers.h 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/mobile-helpers.h 2012-10-31 13:21:01.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -47,6 +47,8 @@ MB_TECH_HSDPA, MB_TECH_HSUPA, MB_TECH_HSPA, + MB_TECH_HSPA_PLUS, + MB_TECH_LTE, MB_TECH_WIMAX, }; @@ -56,9 +58,20 @@ guint32 access_tech, NMApplet *applet); +#ifndef ENABLE_INDICATOR GdkPixbuf *mobile_helper_get_quality_icon (guint32 quality, NMApplet *applet); +#else +char *mobile_helper_get_quality_icon (guint32 quality, NMApplet *applet); +#endif GdkPixbuf *mobile_helper_get_tech_icon (guint32 tech, NMApplet *applet); +#ifdef ENABLE_INDICATOR +char *mobile_helper_get_connection_label (const char *connection_name, + const char *provider, + guint32 technology, + guint32 state); +#endif + #endif /* APPLET_MOBILE_HELPERS_H */ diff -Nru network-manager-applet-0.9.4.1/src/shell-watcher.c network-manager-applet-0.9.6.2+git201210311320.2620/src/shell-watcher.c --- network-manager-applet-0.9.4.1/src/shell-watcher.c 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/shell-watcher.c 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,242 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2012 Red Hat, Inc. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include "shell-watcher.h" + +#if GLIB_CHECK_VERSION(2,26,0) + +G_DEFINE_TYPE (NMShellWatcher, nm_shell_watcher, G_TYPE_OBJECT) + +struct NMShellWatcherPrivate { + GDBusProxy *shell_proxy; + guint signal_id; + + guint retry_timeout; + guint retries; + + guint shell_version; +}; + +enum { + PROP_0, + PROP_SHELL_VERSION, + LAST_PROP +}; + +static void create_gnome_shell_proxy (NMShellWatcher *watcher); + +static gboolean +retry_create_shell_proxy (gpointer user_data) +{ + NMShellWatcher *watcher = user_data; + NMShellWatcherPrivate *priv = watcher->priv; + + priv->retry_timeout = 0; + create_gnome_shell_proxy (watcher); + return FALSE; +} + +static void +try_update_version (NMShellWatcher *watcher) +{ + NMShellWatcherPrivate *priv = watcher->priv; + GVariant *v; + char *version, *p; + + v = g_dbus_proxy_get_cached_property (priv->shell_proxy, "ShellVersion"); + if (!v) { + /* The shell has claimed the name, but not yet registered its interfaces... + * (https://bugzilla.gnome.org/show_bug.cgi?id=673182). There's no way + * to make GDBusProxy re-read the properties at this point, so we + * have to destroy this proxy and try again. + */ + if (priv->signal_id) { + g_signal_handler_disconnect (priv->shell_proxy, priv->signal_id); + priv->signal_id = 0; + } + g_object_unref (priv->shell_proxy); + priv->shell_proxy = NULL; + + priv->retry_timeout = g_timeout_add_seconds (2, retry_create_shell_proxy, watcher); + return; + } + + g_warn_if_fail (g_variant_is_of_type (v, G_VARIANT_TYPE_STRING)); + version = g_variant_dup_string (v, NULL); + if (version) { + guint major, minor; + + major = strtoul (version, &p, 10); + if (*p == '.') + minor = strtoul (p + 1, NULL, 10); + else + minor = 0; + + g_warn_if_fail (major < 256); + g_warn_if_fail (minor < 256); + + priv->shell_version = (major << 8) | minor; + g_object_notify (G_OBJECT (watcher), "shell-version"); + } + + g_variant_unref (v); +} + +static void +name_owner_changed_cb (GDBusProxy *proxy, GParamSpec *pspec, gpointer user_data) +{ + NMShellWatcher *watcher = user_data; + NMShellWatcherPrivate *priv = watcher->priv; + char *owner; + + owner = g_dbus_proxy_get_name_owner (proxy); + if (owner) { + try_update_version (watcher); + g_free (owner); + } else if (priv->shell_version) { + priv->shell_version = 0; + g_object_notify (G_OBJECT (watcher), "shell-version"); + } +} + +static void +got_shell_proxy (GObject *source, GAsyncResult *result, gpointer user_data) +{ + NMShellWatcher *watcher = user_data; + NMShellWatcherPrivate *priv = watcher->priv; + GError *error = NULL; + + priv->shell_proxy = g_dbus_proxy_new_for_bus_finish (result, &error); + if (!priv->shell_proxy) { + g_warning ("Could not create GDBusProxy for org.gnome.Shell: %s", error->message); + g_error_free (error); + return; + } + + priv->signal_id = g_signal_connect (priv->shell_proxy, + "notify::g-name-owner", + G_CALLBACK (name_owner_changed_cb), + watcher); + + name_owner_changed_cb (priv->shell_proxy, NULL, watcher); + g_object_unref (watcher); +} + +static void +create_gnome_shell_proxy (NMShellWatcher *watcher) +{ + NMShellWatcherPrivate *priv = watcher->priv; + + if (priv->retries++ == 5) { + g_warning ("Could not find ShellVersion property on org.gnome.Shell after 5 tries"); + return; + } + + g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION, + G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + NULL, + "org.gnome.Shell", + "/org/gnome/Shell", + "org.gnome.Shell", + NULL, + got_shell_proxy, + g_object_ref (watcher)); +} + +static void +nm_shell_watcher_init (NMShellWatcher *watcher) +{ + watcher->priv = G_TYPE_INSTANCE_GET_PRIVATE (watcher, NM_TYPE_SHELL_WATCHER, + NMShellWatcherPrivate); + create_gnome_shell_proxy (watcher); +} + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NMShellWatcher *watcher = NM_SHELL_WATCHER (object); + + switch (prop_id) { + case PROP_SHELL_VERSION: + g_value_set_uint (value, watcher->priv->shell_version); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +finalize (GObject *object) +{ + NMShellWatcher *watcher = NM_SHELL_WATCHER (object); + NMShellWatcherPrivate *priv = watcher->priv; + + if (priv->retry_timeout) + g_source_remove (priv->retry_timeout); + if (priv->signal_id) + g_signal_handler_disconnect (priv->shell_proxy, priv->signal_id); + if (priv->shell_proxy) + g_object_unref (priv->shell_proxy); + + G_OBJECT_CLASS (nm_shell_watcher_parent_class)->finalize (object); +} + +static void +nm_shell_watcher_class_init (NMShellWatcherClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (NMShellWatcherPrivate)); + + oclass->get_property = get_property; + oclass->finalize = finalize; + + g_object_class_install_property (oclass, PROP_SHELL_VERSION, + g_param_spec_uint ("shell-version", + "Shell version", + "Running GNOME Shell version, eg, 0x0304", + 0, 0xFFFF, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS)); +} + +NMShellWatcher * +nm_shell_watcher_new (void) +{ + return g_object_new (NM_TYPE_SHELL_WATCHER, NULL); +} + +gboolean +nm_shell_watcher_version_at_least (NMShellWatcher *watcher, guint major, guint minor) +{ + guint version = (major << 8) | minor; + + return watcher->priv->shell_version >= version; +} + +#endif /* GLIB_CHECK_VERSION(2,26,0) */ diff -Nru network-manager-applet-0.9.4.1/src/shell-watcher.h network-manager-applet-0.9.6.2+git201210311320.2620/src/shell-watcher.h --- network-manager-applet-0.9.4.1/src/shell-watcher.h 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/shell-watcher.h 2012-10-31 13:20:57.000000000 +0000 @@ -0,0 +1,60 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Applet -- allow user control over networking + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2012 Red Hat, Inc. + */ + +#ifndef SHELL_WATCHER_H +#define SHELL_WATCHER_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#if GLIB_CHECK_VERSION(2,26,0) + +#define NM_TYPE_SHELL_WATCHER (nm_shell_watcher_get_type()) +#define NM_SHELL_WATCHER(object) (G_TYPE_CHECK_INSTANCE_CAST((object), NM_TYPE_SHELL_WATCHER, NMShellWatcher)) +#define NM_SHELL_WATCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_SHELL_WATCHER, NMShellWatcherClass)) +#define NM_IS_SHELL_WATCHER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), NM_TYPE_SHELL_WATCHER)) +#define NM_IS_SHELL_WATCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_SHELL_WATCHER)) +#define NM_SHELL_WATCHER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), NM_TYPE_SHELL_WATCHER, NMShellWatcherClass)) + +typedef struct NMShellWatcherPrivate NMShellWatcherPrivate; + +typedef struct { + GObject parent_instance; + + NMShellWatcherPrivate *priv; +} NMShellWatcher; + +typedef struct { + GObjectClass parent_class; +} NMShellWatcherClass; + +GType nm_shell_watcher_get_type (void); + +NMShellWatcher *nm_shell_watcher_new (void); + +gboolean nm_shell_watcher_version_at_least (NMShellWatcher *watcher, + guint major, guint minor); + +#endif /* GLIB_CHECK_VERSION(2,26,0) */ + +#endif diff -Nru network-manager-applet-0.9.4.1/src/utils/Makefile.am network-manager-applet-0.9.6.2+git201210311320.2620/src/utils/Makefile.am --- network-manager-applet-0.9.4.1/src/utils/Makefile.am 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/utils/Makefile.am 2012-10-31 13:20:57.000000000 +0000 @@ -11,9 +11,8 @@ libutils_la_CPPFLAGS = \ $(GTK_CFLAGS) \ $(NMA_CFLAGS) \ - $(GNOME_KEYRING_CFLAGS) \ -DDATADIR=\""$(datadir)"\" \ $(DISABLE_DEPRECATED) \ -I${top_srcdir}/src -libutils_la_LIBADD = $(GTK_LIBS) $(NMA_LIBS) $(GNOME_KEYRING_LIBS) +libutils_la_LIBADD = $(GTK_LIBS) $(NMA_LIBS) diff -Nru network-manager-applet-0.9.4.1/src/utils/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/src/utils/Makefile.in --- network-manager-applet-0.9.4.1/src/utils/Makefile.in 2012-03-23 22:55:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/utils/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,733 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/utils -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -LTLIBRARIES = $(noinst_LTLIBRARIES) -am__DEPENDENCIES_1 = -libutils_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) -am_libutils_la_OBJECTS = libutils_la-utils.lo \ - libutils_la-nmn-mobile-providers.lo -libutils_la_OBJECTS = $(am_libutils_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libutils_la_SOURCES) -DIST_SOURCES = $(libutils_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = . tests -noinst_LTLIBRARIES = libutils.la -libutils_la_SOURCES = \ - utils.c \ - utils.h \ - nmn-mobile-providers.h \ - nmn-mobile-providers.c - -libutils_la_CPPFLAGS = \ - $(GTK_CFLAGS) \ - $(NMA_CFLAGS) \ - $(GNOME_KEYRING_CFLAGS) \ - -DDATADIR=\""$(datadir)"\" \ - $(DISABLE_DEPRECATED) \ - -I${top_srcdir}/src - -libutils_la_LIBADD = $(GTK_LIBS) $(NMA_LIBS) $(GNOME_KEYRING_LIBS) -all: all-recursive - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/utils/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/utils/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libutils.la: $(libutils_la_OBJECTS) $(libutils_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(libutils_la_OBJECTS) $(libutils_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libutils_la-nmn-mobile-providers.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libutils_la-utils.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -libutils_la-utils.lo: utils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libutils_la-utils.lo -MD -MP -MF $(DEPDIR)/libutils_la-utils.Tpo -c -o libutils_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libutils_la-utils.Tpo $(DEPDIR)/libutils_la-utils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='libutils_la-utils.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libutils_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c - -libutils_la-nmn-mobile-providers.lo: nmn-mobile-providers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libutils_la-nmn-mobile-providers.lo -MD -MP -MF $(DEPDIR)/libutils_la-nmn-mobile-providers.Tpo -c -o libutils_la-nmn-mobile-providers.lo `test -f 'nmn-mobile-providers.c' || echo '$(srcdir)/'`nmn-mobile-providers.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libutils_la-nmn-mobile-providers.Tpo $(DEPDIR)/libutils_la-nmn-mobile-providers.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nmn-mobile-providers.c' object='libutils_la-nmn-mobile-providers.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libutils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libutils_la-nmn-mobile-providers.lo `test -f 'nmn-mobile-providers.c' || echo '$(srcdir)/'`nmn-mobile-providers.c - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile $(LTLIBRARIES) -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - clean-noinstLTLIBRARIES ctags ctags-recursive distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/src/utils/tests/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/src/utils/tests/Makefile.in --- network-manager-applet-0.9.4.1/src/utils/tests/Makefile.in 2012-03-23 22:55:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/utils/tests/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,582 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = test-utils$(EXEEXT) -subdir = src/utils/tests -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -PROGRAMS = $(noinst_PROGRAMS) -am_test_utils_OBJECTS = test_utils-test-utils.$(OBJEXT) -test_utils_OBJECTS = $(am_test_utils_OBJECTS) -am__DEPENDENCIES_1 = -test_utils_DEPENDENCIES = ${top_builddir}/src/utils/libutils.la \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(test_utils_SOURCES) -DIST_SOURCES = $(test_utils_SOURCES) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -INCLUDES = -I$(top_srcdir)/src/utils -test_utils_SOURCES = test-utils.c -test_utils_CPPFLAGS = \ - $(GTK_CFLAGS) \ - $(NMA_CFLAGS) \ - $(GNOME_KEYRING_CFLAGS) - -test_utils_LDADD = \ - ${top_builddir}/src/utils/libutils.la \ - $(GTK_LIBS) \ - $(NMA_LIBS) \ - $(GNOME_KEYRING_LIBS) - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/utils/tests/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/utils/tests/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -test-utils$(EXEEXT): $(test_utils_OBJECTS) $(test_utils_DEPENDENCIES) - @rm -f test-utils$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(test_utils_OBJECTS) $(test_utils_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_utils-test-utils.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -test_utils-test-utils.o: test-utils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_utils_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_utils-test-utils.o -MD -MP -MF $(DEPDIR)/test_utils-test-utils.Tpo -c -o test_utils-test-utils.o `test -f 'test-utils.c' || echo '$(srcdir)/'`test-utils.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_utils-test-utils.Tpo $(DEPDIR)/test_utils-test-utils.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-utils.c' object='test_utils-test-utils.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_utils_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_utils-test-utils.o `test -f 'test-utils.c' || echo '$(srcdir)/'`test-utils.c - -test_utils-test-utils.obj: test-utils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_utils_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_utils-test-utils.obj -MD -MP -MF $(DEPDIR)/test_utils-test-utils.Tpo -c -o test_utils-test-utils.obj `if test -f 'test-utils.c'; then $(CYGPATH_W) 'test-utils.c'; else $(CYGPATH_W) '$(srcdir)/test-utils.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_utils-test-utils.Tpo $(DEPDIR)/test_utils-test-utils.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-utils.c' object='test_utils-test-utils.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_utils_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_utils-test-utils.obj `if test -f 'test-utils.c'; then $(CYGPATH_W) 'test-utils.c'; else $(CYGPATH_W) '$(srcdir)/test-utils.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-local -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am check-local clean \ - clean-generic clean-libtool clean-noinstPROGRAMS ctags \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am - - -check-local: test-utils - $(abs_builddir)/test-utils - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/src/utils/tests/test-utils.c network-manager-applet-0.9.6.2+git201210311320.2620/src/utils/tests/test-utils.c --- network-manager-applet-0.9.4.1/src/utils/tests/test-utils.c 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/utils/tests/test-utils.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/utils/utils.c network-manager-applet-0.9.6.2+git201210311320.2620/src/utils/utils.c --- network-manager-applet-0.9.4.1/src/utils/utils.c 2012-03-23 14:14:18.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/utils/utils.c 2012-10-31 13:21:01.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -31,157 +32,6 @@ #include "utils.h" -static char *ignored_words[] = { - "Semiconductor", - "Components", - "Corporation", - "Communications", - "Company", - "Corp.", - "Corp", - "Co.", - "Inc.", - "Inc", - "Incorporated", - "Ltd.", - "Limited.", - "Intel?", - "chipset", - "adapter", - "[hex]", - "NDIS", - "Module", - NULL -}; - -static char *ignored_phrases[] = { - "Multiprotocol MAC/baseband processor", - "Wireless LAN Controller", - "Wireless LAN Adapter", - "Wireless Adapter", - "Network Connection", - "Wireless Cardbus Adapter", - "Wireless CardBus Adapter", - "54 Mbps Wireless PC Card", - "Wireless PC Card", - "Wireless PC", - "PC Card with XJACK(r) Antenna", - "Wireless cardbus", - "Wireless LAN PC Card", - "Technology Group Ltd.", - "Communication S.p.A.", - "Business Mobile Networks BV", - "Mobile Broadband Minicard Composite Device", - "Mobile Communications AB", - "(PC-Suite Mode)", - NULL -}; - -static char * -fixup_desc_string (const char *desc) -{ - char *p, *temp; - char **words, **item; - GString *str; - - p = temp = g_strdup (desc); - while (*p) { - if (*p == '_' || *p == ',') - *p = ' '; - p++; - } - - /* Attempt to shorten ID by ignoring certain phrases */ - for (item = ignored_phrases; *item; item++) { - guint32 ignored_len = strlen (*item); - - p = strstr (temp, *item); - if (p) - memmove (p, p + ignored_len, strlen (p + ignored_len) + 1); /* +1 for the \0 */ - } - - /* Attmept to shorten ID by ignoring certain individual words */ - words = g_strsplit (temp, " ", 0); - str = g_string_new_len (NULL, strlen (temp)); - g_free (temp); - - for (item = words; *item; item++) { - int i = 0; - gboolean ignore = FALSE; - - if (g_ascii_isspace (**item) || (**item == '\0')) - continue; - - while (ignored_words[i] && !ignore) { - if (!strcmp (*item, ignored_words[i])) - ignore = TRUE; - i++; - } - - if (!ignore) { - if (str->len) - g_string_append_c (str, ' '); - g_string_append (str, *item); - } - } - g_strfreev (words); - - temp = str->str; - g_string_free (str, FALSE); - - return temp; -} - -#define DESC_TAG "description" - -const char * -utils_get_device_description (NMDevice *device) -{ - char *description = NULL; - const char *dev_product; - const char *dev_vendor; - char *product = NULL; - char *vendor = NULL; - GString *str; - - g_return_val_if_fail (device != NULL, NULL); - - description = g_object_get_data (G_OBJECT (device), DESC_TAG); - if (description) - return description; - - dev_product = nm_device_get_product (device); - dev_vendor = nm_device_get_vendor (device); - if (!dev_product || !dev_vendor) - return NULL; - - product = fixup_desc_string (dev_product); - vendor = fixup_desc_string (dev_vendor); - - str = g_string_new_len (NULL, strlen (vendor) + strlen (product) + 1); - - /* Another quick hack; if all of the fixed up vendor string - * is found in product, ignore the vendor. - */ - if (!strcasestr (product, vendor)) { - g_string_append (str, vendor); - g_string_append_c (str, ' '); - } - - g_string_append (str, product); - g_free (product); - g_free (vendor); - - description = str->str; - g_string_free (str, FALSE); - - g_object_set_data_full (G_OBJECT (device), - "description", description, - (GDestroyNotify) g_free); - - return description; -} - /* * utils_ether_addr_valid * @@ -312,47 +162,16 @@ return g_string_free (escaped, FALSE); } -GnomeKeyringAttributeList * -utils_create_keyring_add_attr_list (NMConnection *connection, - const char *connection_uuid, - const char *connection_id, - const char *setting_name, - const char *setting_key, - char **out_display_name) +char * +utils_create_mobile_connection_id (const char *provider, const char *plan_name) { - GnomeKeyringAttributeList *attrs = NULL; - NMSettingConnection *s_con; + g_return_val_if_fail (provider != NULL, NULL); - if (connection) { - s_con = nm_connection_get_setting_connection (connection); - g_return_val_if_fail (s_con != NULL, NULL); - connection_uuid = nm_setting_connection_get_uuid (s_con); - connection_id = nm_setting_connection_get_id (s_con); - } - - g_return_val_if_fail (connection_uuid != NULL, NULL); - g_return_val_if_fail (connection_id != NULL, NULL); - g_return_val_if_fail (setting_name != NULL, NULL); - g_return_val_if_fail (setting_key != NULL, NULL); - - if (out_display_name) { - *out_display_name = g_strdup_printf ("Network secret for %s/%s/%s", - connection_id, - setting_name, - setting_key); - } + if (plan_name) + return g_strdup_printf ("%s %s", provider, plan_name); - attrs = gnome_keyring_attribute_list_new (); - gnome_keyring_attribute_list_append_string (attrs, - KEYRING_UUID_TAG, - connection_uuid); - gnome_keyring_attribute_list_append_string (attrs, - KEYRING_SN_TAG, - setting_name); - gnome_keyring_attribute_list_append_string (attrs, - KEYRING_SK_TAG, - setting_key); - return attrs; + /* The %s is a mobile provider name, eg "T-Mobile" */ + return g_strdup_printf (_("%s connection"), provider); } void @@ -373,8 +192,10 @@ "%s", text1); + gtk_window_set_position (GTK_WINDOW (err_dialog), GTK_WIN_POS_CENTER_ALWAYS); + if (text2) - gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (err_dialog), text2); + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (err_dialog), "%s", text2); if (title) gtk_window_set_title (GTK_WINDOW (err_dialog), title); diff -Nru network-manager-applet-0.9.4.1/src/utils/utils.h network-manager-applet-0.9.6.2+git201210311320.2620/src/utils/utils.h --- network-manager-applet-0.9.4.1/src/utils/utils.h 2012-03-23 14:14:18.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/utils/utils.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -29,9 +29,6 @@ #include #include #include -#include - -const char *utils_get_device_description (NMDevice *device); guint32 utils_freq_to_channel (guint32 freq); guint32 utils_channel_to_freq (guint32 channel, char *band); @@ -47,16 +44,8 @@ char *utils_escape_notify_message (const char *src); -#define KEYRING_UUID_TAG "connection-uuid" -#define KEYRING_SN_TAG "setting-name" -#define KEYRING_SK_TAG "setting-key" - -GnomeKeyringAttributeList *utils_create_keyring_add_attr_list (NMConnection *connection, - const char *connection_uuid, - const char *connection_id, - const char *setting_name, - const char *setting_key, - char **out_display_name); +char *utils_create_mobile_connection_id (const char *provider, + const char *plan_name); void utils_show_error_dialog (const char *title, const char *text1, diff -Nru network-manager-applet-0.9.4.1/src/wired-8021x.ui network-manager-applet-0.9.6.2+git201210311320.2620/src/wired-8021x.ui --- network-manager-applet-0.9.4.1/src/wired-8021x.ui 2012-03-12 23:59:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wired-8021x.ui 1970-01-01 00:00:00.000000000 +0000 @@ -1,165 +0,0 @@ - - - - - - 5 - Wired 802.1X authentication - False - True - center-always - 488 - dialog-password - dialog - - - True - vertical - 2 - - - True - 5 - 12 - - - True - 0 - dialog-password - 6 - - - False - 0 - - - - - True - vertical - 6 - - - True - 0 - True - True - - - False - 0 - - - - - True - 2 - 2 - 12 - 6 - - - True - 0 - _Network name: - True - network_name_entry - - - GTK_FILL - - - - - - True - True - - True - - - 1 - 2 - - - - - - True - vertical - - - - - - 2 - 1 - 2 - GTK_FILL - - - - - 1 - - - - - 1 - - - - - 1 - - - - - True - end - - - gtk-cancel - True - True - True - False - True - - - False - False - 0 - - - - - gtk-connect - True - True - True - True - False - True - - - False - False - 1 - - - - - False - end - 0 - - - - - - cancel_button - ok_button - - - diff -Nru network-manager-applet-0.9.4.1/src/wired-dialog.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wired-dialog.c --- network-manager-applet-0.9.4.1/src/wired-dialog.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wired-dialog.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,161 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control - * - * Dan Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2008 Novell, Inc. - * (C) Copyright 2008 - 2011 Red Hat, Inc. - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include -#include "wired-dialog.h" -#include "wireless-security.h" -#include "applet-dialogs.h" - -static void -stuff_changed_cb (WirelessSecurity *sec, gpointer user_data) -{ - GtkWidget *button = GTK_WIDGET (user_data); - - gtk_widget_set_sensitive (button, wireless_security_validate (sec, NULL)); -} - -static void -dialog_set_network_name (NMConnection *connection, GtkEntry *entry) -{ - NMSettingConnection *setting; - - setting = nm_connection_get_setting_connection (connection); - - gtk_widget_set_sensitive (GTK_WIDGET (entry), FALSE); - gtk_entry_set_text (entry, nm_setting_connection_get_id (setting)); -} - -static WirelessSecurity * -dialog_set_security (NMConnection *connection, - GtkBuilder *builder, - GtkBox *box) -{ - GList *children; - GList *iter; - WirelessSecurity *security; - - security = (WirelessSecurity *) ws_wpa_eap_new (connection, FALSE, TRUE); - - /* Remove any previous wireless security widgets */ - children = gtk_container_get_children (GTK_CONTAINER (box)); - for (iter = children; iter; iter = iter->next) - gtk_container_remove (GTK_CONTAINER (box), GTK_WIDGET (iter->data)); - g_list_free (children); - - gtk_box_pack_start (box, wireless_security_get_widget (security), TRUE, TRUE, 0); - - return security; -} - -GtkWidget * -nma_wired_dialog_new (NMConnection *connection) -{ - GtkBuilder *builder; - GtkWidget *dialog; - GError *error = NULL; - WirelessSecurity *security; - - builder = gtk_builder_new (); - - if (!gtk_builder_add_from_file (builder, UIDIR "/wired-8021x.ui", &error)) { - g_warning ("Couldn't load builder file: %s", error->message); - g_error_free (error); - applet_warning_dialog_show (_("The NetworkManager Applet could not find some required resources (the .ui file was not found).")); - g_object_unref (builder); - return NULL; - } - - dialog = (GtkWidget *) gtk_builder_get_object (builder, "wired_8021x_dialog"); - if (!dialog) { - g_warning ("Couldn't find wireless_dialog widget."); - applet_warning_dialog_show (_("The NetworkManager Applet could not find some required resources (the .ui file was not found).")); - g_object_unref (builder); - return NULL; - } - - gtk_window_set_title (GTK_WINDOW (dialog), _("Wired 802.1X authentication")); - gtk_window_set_icon_name (GTK_WINDOW (dialog), "dialog-password"); - dialog_set_network_name (connection, GTK_ENTRY (gtk_builder_get_object (builder, "network_name_entry"))); - - security = dialog_set_security (connection, builder, GTK_BOX (gtk_builder_get_object (builder, "security_vbox"))); - wireless_security_set_changed_notify (security, stuff_changed_cb, GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"))); - g_object_set_data_full (G_OBJECT (dialog), - "security", security, - (GDestroyNotify) wireless_security_unref); - - g_object_set_data_full (G_OBJECT (dialog), - "connection", g_object_ref (connection), - (GDestroyNotify) g_object_unref); - - /* Ensure the builder gets destroyed when the dialog goes away */ - g_object_set_data_full (G_OBJECT (dialog), - "builder", builder, - (GDestroyNotify) g_object_unref); - - return dialog; -} - -NMConnection * -nma_wired_dialog_get_connection (GtkWidget *dialog) -{ - NMConnection *connection, *tmp_connection; - WirelessSecurity *security; - NMSetting *s_8021x, *s_con; - - g_return_val_if_fail (dialog != NULL, NULL); - - connection = g_object_get_data (G_OBJECT (dialog), "connection"); - security = g_object_get_data (G_OBJECT (dialog), "security"); - - /* Here's a nice hack to work around the fact that ws_802_1x_fill_connection() - * needs a wireless setting and a connection setting for various things. - */ - tmp_connection = nm_connection_new (); - - /* Add the fake connection setting (mainly for the UUID for cert ignore checking) */ - s_con = nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION); - g_assert (s_con); - nm_connection_add_setting (tmp_connection, NM_SETTING (g_object_ref (s_con))); - - /* And the fake wireless setting */ - nm_connection_add_setting (tmp_connection, nm_setting_wireless_new ()); - - /* Fill up the 802.1x setting */ - ws_802_1x_fill_connection (security, "wpa_eap_auth_combo", tmp_connection); - - /* Grab it and add it to our original connection */ - s_8021x = nm_connection_get_setting (tmp_connection, NM_TYPE_SETTING_802_1X); - nm_connection_add_setting (connection, NM_SETTING (g_object_ref (s_8021x))); - - g_object_unref (tmp_connection); - - return connection; -} diff -Nru network-manager-applet-0.9.4.1/src/wired-dialog.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wired-dialog.h --- network-manager-applet-0.9.4.1/src/wired-dialog.h 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wired-dialog.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control - * - * Dan Williams - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * (C) Copyright 2008 Novell, Inc. - * (C) Copyright 2008 - 2011 Red Hat, Inc. - */ - -#ifndef WIRED_DIALOG_H -#define WIRED_DIALOG_H - -#include -#include - -GtkWidget *nma_wired_dialog_new (NMConnection *connection); - -NMConnection *nma_wired_dialog_get_connection (GtkWidget *dialog); - -#endif /* WIRED_DIALOG_H */ diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/Makefile.am network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/Makefile.am --- network-manager-applet-0.9.4.1/src/wireless-security/Makefile.am 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/Makefile.am 2012-10-31 13:20:57.000000000 +0000 @@ -34,14 +34,12 @@ $(GTK_CFLAGS) \ -DUIDIR=\""$(uidir)"\" \ $(NMA_CFLAGS) \ - $(GCONF_CFLAGS) \ $(DISABLE_DEPRECATED) \ -I${top_srcdir}/src/utils libwireless_security_la_LIBADD = \ $(GTK_LIBS) \ $(NMA_LIBS) \ - $(GCONF_LIBS) \ ${top_builddir}/src/utils/libutils.la uidir = $(datadir)/nm-applet diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/Makefile.in network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/Makefile.in --- network-manager-applet-0.9.4.1/src/wireless-security/Makefile.in 2012-03-23 22:55:42.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,797 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/wireless-security -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -LTLIBRARIES = $(noinst_LTLIBRARIES) -am__DEPENDENCIES_1 = -libwireless_security_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - ${top_builddir}/src/utils/libutils.la -am_libwireless_security_la_OBJECTS = \ - libwireless_security_la-wireless-security.lo \ - libwireless_security_la-ws-wep-key.lo \ - libwireless_security_la-ws-wpa-psk.lo \ - libwireless_security_la-ws-leap.lo \ - libwireless_security_la-ws-wpa-eap.lo \ - libwireless_security_la-ws-dynamic-wep.lo \ - libwireless_security_la-eap-method.lo \ - libwireless_security_la-eap-method-tls.lo \ - libwireless_security_la-eap-method-leap.lo \ - libwireless_security_la-eap-method-fast.lo \ - libwireless_security_la-eap-method-ttls.lo \ - libwireless_security_la-eap-method-peap.lo \ - libwireless_security_la-eap-method-simple.lo \ - libwireless_security_la-helpers.lo -libwireless_security_la_OBJECTS = \ - $(am_libwireless_security_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libwireless_security_la_SOURCES) -DIST_SOURCES = $(libwireless_security_la_SOURCES) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(uidir)" -DATA = $(ui_DATA) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_126_CFLAGS = @DBUS_126_CFLAGS@ -DBUS_126_LIBS = @DBUS_126_LIBS@ -DBUS_SYS_DIR = @DBUS_SYS_DIR@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCONFTOOL = @GCONFTOOL@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ -GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GNOME_BLUETOOTH_CFLAGS = @GNOME_BLUETOOTH_CFLAGS@ -GNOME_BLUETOOTH_LIBS = @GNOME_BLUETOOTH_LIBS@ -GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@ -GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@ -GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ -GOBJECT_LIBS = @GOBJECT_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -ISO_CODES_CFLAGS = @ISO_CODES_CFLAGS@ -ISO_CODES_LIBS = @ISO_CODES_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_07_CFLAGS = @LIBNOTIFY_07_CFLAGS@ -LIBNOTIFY_07_LIBS = @LIBNOTIFY_07_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMA_CFLAGS = @NMA_CFLAGS@ -NMA_LIBS = @NMA_LIBS@ -NMEDIT = @NMEDIT@ -NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ -NOTIFY_LIBS = @NOTIFY_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -noinst_LTLIBRARIES = libwireless-security.la -libwireless_security_la_SOURCES = \ - wireless-security.h \ - wireless-security.c \ - ws-wep-key.h \ - ws-wep-key.c \ - ws-wpa-psk.h \ - ws-wpa-psk.c \ - ws-leap.h \ - ws-leap.c \ - ws-wpa-eap.h \ - ws-wpa-eap.c \ - ws-dynamic-wep.h \ - ws-dynamic-wep.c \ - eap-method.h \ - eap-method.c \ - eap-method-tls.h \ - eap-method-tls.c \ - eap-method-leap.h \ - eap-method-leap.c \ - eap-method-fast.h \ - eap-method-fast.c \ - eap-method-ttls.h \ - eap-method-ttls.c \ - eap-method-peap.h \ - eap-method-peap.c \ - eap-method-simple.h \ - eap-method-simple.c \ - helpers.h \ - helpers.c - -libwireless_security_la_CPPFLAGS = \ - $(GTK_CFLAGS) \ - -DUIDIR=\""$(uidir)"\" \ - $(NMA_CFLAGS) \ - $(GCONF_CFLAGS) \ - $(DISABLE_DEPRECATED) \ - -I${top_srcdir}/src/utils - -libwireless_security_la_LIBADD = \ - $(GTK_LIBS) \ - $(NMA_LIBS) \ - $(GCONF_LIBS) \ - ${top_builddir}/src/utils/libutils.la - -uidir = $(datadir)/nm-applet -ui_DATA = \ - eap-method-leap.ui \ - eap-method-fast.ui \ - eap-method-peap.ui \ - eap-method-simple.ui \ - eap-method-tls.ui \ - eap-method-ttls.ui \ - nag-user-dialog.ui \ - ws-dynamic-wep.ui \ - ws-leap.ui \ - ws-wep-key.ui \ - ws-wpa-eap.ui \ - ws-wpa-psk.ui - -EXTRA_DIST = \ - $(ui_DATA) - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/wireless-security/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/wireless-security/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libwireless-security.la: $(libwireless_security_la_OBJECTS) $(libwireless_security_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(libwireless_security_la_OBJECTS) $(libwireless_security_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-eap-method-fast.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-eap-method-leap.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-eap-method-peap.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-eap-method-simple.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-eap-method-tls.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-eap-method-ttls.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-eap-method.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-helpers.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-wireless-security.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-ws-dynamic-wep.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-ws-leap.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-ws-wep-key.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-ws-wpa-eap.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwireless_security_la-ws-wpa-psk.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -libwireless_security_la-wireless-security.lo: wireless-security.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-wireless-security.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-wireless-security.Tpo -c -o libwireless_security_la-wireless-security.lo `test -f 'wireless-security.c' || echo '$(srcdir)/'`wireless-security.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-wireless-security.Tpo $(DEPDIR)/libwireless_security_la-wireless-security.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='wireless-security.c' object='libwireless_security_la-wireless-security.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-wireless-security.lo `test -f 'wireless-security.c' || echo '$(srcdir)/'`wireless-security.c - -libwireless_security_la-ws-wep-key.lo: ws-wep-key.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-ws-wep-key.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-ws-wep-key.Tpo -c -o libwireless_security_la-ws-wep-key.lo `test -f 'ws-wep-key.c' || echo '$(srcdir)/'`ws-wep-key.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-ws-wep-key.Tpo $(DEPDIR)/libwireless_security_la-ws-wep-key.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ws-wep-key.c' object='libwireless_security_la-ws-wep-key.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-ws-wep-key.lo `test -f 'ws-wep-key.c' || echo '$(srcdir)/'`ws-wep-key.c - -libwireless_security_la-ws-wpa-psk.lo: ws-wpa-psk.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-ws-wpa-psk.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-ws-wpa-psk.Tpo -c -o libwireless_security_la-ws-wpa-psk.lo `test -f 'ws-wpa-psk.c' || echo '$(srcdir)/'`ws-wpa-psk.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-ws-wpa-psk.Tpo $(DEPDIR)/libwireless_security_la-ws-wpa-psk.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ws-wpa-psk.c' object='libwireless_security_la-ws-wpa-psk.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-ws-wpa-psk.lo `test -f 'ws-wpa-psk.c' || echo '$(srcdir)/'`ws-wpa-psk.c - -libwireless_security_la-ws-leap.lo: ws-leap.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-ws-leap.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-ws-leap.Tpo -c -o libwireless_security_la-ws-leap.lo `test -f 'ws-leap.c' || echo '$(srcdir)/'`ws-leap.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-ws-leap.Tpo $(DEPDIR)/libwireless_security_la-ws-leap.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ws-leap.c' object='libwireless_security_la-ws-leap.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-ws-leap.lo `test -f 'ws-leap.c' || echo '$(srcdir)/'`ws-leap.c - -libwireless_security_la-ws-wpa-eap.lo: ws-wpa-eap.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-ws-wpa-eap.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-ws-wpa-eap.Tpo -c -o libwireless_security_la-ws-wpa-eap.lo `test -f 'ws-wpa-eap.c' || echo '$(srcdir)/'`ws-wpa-eap.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-ws-wpa-eap.Tpo $(DEPDIR)/libwireless_security_la-ws-wpa-eap.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ws-wpa-eap.c' object='libwireless_security_la-ws-wpa-eap.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-ws-wpa-eap.lo `test -f 'ws-wpa-eap.c' || echo '$(srcdir)/'`ws-wpa-eap.c - -libwireless_security_la-ws-dynamic-wep.lo: ws-dynamic-wep.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-ws-dynamic-wep.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-ws-dynamic-wep.Tpo -c -o libwireless_security_la-ws-dynamic-wep.lo `test -f 'ws-dynamic-wep.c' || echo '$(srcdir)/'`ws-dynamic-wep.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-ws-dynamic-wep.Tpo $(DEPDIR)/libwireless_security_la-ws-dynamic-wep.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ws-dynamic-wep.c' object='libwireless_security_la-ws-dynamic-wep.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-ws-dynamic-wep.lo `test -f 'ws-dynamic-wep.c' || echo '$(srcdir)/'`ws-dynamic-wep.c - -libwireless_security_la-eap-method.lo: eap-method.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-eap-method.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-eap-method.Tpo -c -o libwireless_security_la-eap-method.lo `test -f 'eap-method.c' || echo '$(srcdir)/'`eap-method.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-eap-method.Tpo $(DEPDIR)/libwireless_security_la-eap-method.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eap-method.c' object='libwireless_security_la-eap-method.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-eap-method.lo `test -f 'eap-method.c' || echo '$(srcdir)/'`eap-method.c - -libwireless_security_la-eap-method-tls.lo: eap-method-tls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-eap-method-tls.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-eap-method-tls.Tpo -c -o libwireless_security_la-eap-method-tls.lo `test -f 'eap-method-tls.c' || echo '$(srcdir)/'`eap-method-tls.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-eap-method-tls.Tpo $(DEPDIR)/libwireless_security_la-eap-method-tls.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eap-method-tls.c' object='libwireless_security_la-eap-method-tls.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-eap-method-tls.lo `test -f 'eap-method-tls.c' || echo '$(srcdir)/'`eap-method-tls.c - -libwireless_security_la-eap-method-leap.lo: eap-method-leap.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-eap-method-leap.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-eap-method-leap.Tpo -c -o libwireless_security_la-eap-method-leap.lo `test -f 'eap-method-leap.c' || echo '$(srcdir)/'`eap-method-leap.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-eap-method-leap.Tpo $(DEPDIR)/libwireless_security_la-eap-method-leap.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eap-method-leap.c' object='libwireless_security_la-eap-method-leap.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-eap-method-leap.lo `test -f 'eap-method-leap.c' || echo '$(srcdir)/'`eap-method-leap.c - -libwireless_security_la-eap-method-fast.lo: eap-method-fast.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-eap-method-fast.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-eap-method-fast.Tpo -c -o libwireless_security_la-eap-method-fast.lo `test -f 'eap-method-fast.c' || echo '$(srcdir)/'`eap-method-fast.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-eap-method-fast.Tpo $(DEPDIR)/libwireless_security_la-eap-method-fast.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eap-method-fast.c' object='libwireless_security_la-eap-method-fast.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-eap-method-fast.lo `test -f 'eap-method-fast.c' || echo '$(srcdir)/'`eap-method-fast.c - -libwireless_security_la-eap-method-ttls.lo: eap-method-ttls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-eap-method-ttls.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-eap-method-ttls.Tpo -c -o libwireless_security_la-eap-method-ttls.lo `test -f 'eap-method-ttls.c' || echo '$(srcdir)/'`eap-method-ttls.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-eap-method-ttls.Tpo $(DEPDIR)/libwireless_security_la-eap-method-ttls.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eap-method-ttls.c' object='libwireless_security_la-eap-method-ttls.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-eap-method-ttls.lo `test -f 'eap-method-ttls.c' || echo '$(srcdir)/'`eap-method-ttls.c - -libwireless_security_la-eap-method-peap.lo: eap-method-peap.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-eap-method-peap.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-eap-method-peap.Tpo -c -o libwireless_security_la-eap-method-peap.lo `test -f 'eap-method-peap.c' || echo '$(srcdir)/'`eap-method-peap.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-eap-method-peap.Tpo $(DEPDIR)/libwireless_security_la-eap-method-peap.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eap-method-peap.c' object='libwireless_security_la-eap-method-peap.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-eap-method-peap.lo `test -f 'eap-method-peap.c' || echo '$(srcdir)/'`eap-method-peap.c - -libwireless_security_la-eap-method-simple.lo: eap-method-simple.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-eap-method-simple.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-eap-method-simple.Tpo -c -o libwireless_security_la-eap-method-simple.lo `test -f 'eap-method-simple.c' || echo '$(srcdir)/'`eap-method-simple.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-eap-method-simple.Tpo $(DEPDIR)/libwireless_security_la-eap-method-simple.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eap-method-simple.c' object='libwireless_security_la-eap-method-simple.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-eap-method-simple.lo `test -f 'eap-method-simple.c' || echo '$(srcdir)/'`eap-method-simple.c - -libwireless_security_la-helpers.lo: helpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwireless_security_la-helpers.lo -MD -MP -MF $(DEPDIR)/libwireless_security_la-helpers.Tpo -c -o libwireless_security_la-helpers.lo `test -f 'helpers.c' || echo '$(srcdir)/'`helpers.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwireless_security_la-helpers.Tpo $(DEPDIR)/libwireless_security_la-helpers.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='helpers.c' object='libwireless_security_la-helpers.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwireless_security_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwireless_security_la-helpers.lo `test -f 'helpers.c' || echo '$(srcdir)/'`helpers.c - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-uiDATA: $(ui_DATA) - @$(NORMAL_INSTALL) - test -z "$(uidir)" || $(MKDIR_P) "$(DESTDIR)$(uidir)" - @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(uidir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(uidir)" || exit $$?; \ - done - -uninstall-uiDATA: - @$(NORMAL_UNINSTALL) - @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(uidir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(uidir)" && rm -f $$files - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(uidir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-uiDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-uiDATA - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip install-uiDATA installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-uiDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/eap-method-leap.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-leap.c --- network-manager-applet-0.9.4.1/src/wireless-security/eap-method-leap.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-leap.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/eap-method-leap.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-leap.h --- network-manager-applet-0.9.4.1/src/wireless-security/eap-method-leap.h 2012-03-12 23:59:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-leap.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/eap-method-peap.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-peap.c --- network-manager-applet-0.9.4.1/src/wireless-security/eap-method-peap.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-peap.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/eap-method-peap.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-peap.h --- network-manager-applet-0.9.4.1/src/wireless-security/eap-method-peap.h 2012-03-12 23:59:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-peap.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/eap-method-simple.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-simple.c --- network-manager-applet-0.9.4.1/src/wireless-security/eap-method-simple.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-simple.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/eap-method-simple.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-simple.h --- network-manager-applet-0.9.4.1/src/wireless-security/eap-method-simple.h 2012-03-12 23:59:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-simple.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/eap-method-tls.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-tls.c --- network-manager-applet-0.9.4.1/src/wireless-security/eap-method-tls.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-tls.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/eap-method-tls.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-tls.h --- network-manager-applet-0.9.4.1/src/wireless-security/eap-method-tls.h 2012-03-12 23:59:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-tls.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/eap-method-ttls.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-ttls.c --- network-manager-applet-0.9.4.1/src/wireless-security/eap-method-ttls.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-ttls.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/eap-method-ttls.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-ttls.h --- network-manager-applet-0.9.4.1/src/wireless-security/eap-method-ttls.h 2012-03-12 23:59:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method-ttls.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/eap-method.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method.c --- network-manager-applet-0.9.4.1/src/wireless-security/eap-method.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method.c 2012-10-31 13:21:01.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -18,7 +18,7 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * - * (C) Copyright 2007 - 2011 Red Hat, Inc. + * (C) Copyright 2007 - 2012 Red Hat, Inc. */ #include "config.h" @@ -32,12 +32,10 @@ #include #include -#include -#include - #include #include #include "eap-method.h" +#include "nm-utils.h" GType eap_method_get_g_type (void) @@ -114,32 +112,31 @@ g_free (info); } -static char * -_get_ca_ignore_path (const char *uuid, gboolean phase2) +static GSettings * +_get_ca_ignore_settings (const char *uuid) { - return g_strdup_printf ("/apps/nm-applet/%s/%s", - phase2 ? "ignore-phase2-ca-cert" : "ignore-ca-cert", - uuid); + GSettings *settings; + char *path = NULL; + + path = g_strdup_printf ("/org/gnome/nm-applet/eap/%s", uuid); + settings = g_settings_new_with_path ("org.gnome.nm-applet.eap", path); + g_free (path); + + return settings; } static void _set_ignore_ca_cert (const char *uuid, gboolean phase2, gboolean ignore) { - GConfClient *client; - char *key = NULL; + GSettings *settings; + const char *key; g_return_if_fail (uuid != NULL); - client = gconf_client_get_default (); - - key = _get_ca_ignore_path (uuid, phase2); - if (ignore) - gconf_client_set_bool (client, key, ignore, NULL); - else - gconf_client_unset (client, key, NULL); - g_free (key); - - g_object_unref (client); + settings = _get_ca_ignore_settings (uuid); + key = phase2 ? "ignore-phase2-ca-cert" : "ignore-ca-cert"; + g_settings_set_boolean (settings, key, ignore); + g_object_unref (settings); } static void @@ -211,19 +208,18 @@ static gboolean _get_ignore_ca_cert (const char *uuid, gboolean phase2) { - GConfClient *client; - char *key = NULL; + GSettings *settings; + const char *key; gboolean ignore = FALSE; g_return_val_if_fail (uuid != NULL, FALSE); - client = gconf_client_get_default (); + settings = _get_ca_ignore_settings (uuid); - key = _get_ca_ignore_path (uuid, phase2); - ignore = gconf_client_get_bool (client, key, NULL); - g_free (key); + key = phase2 ? "ignore-phase2-ca-cert" : "ignore-ca-cert"; + ignore = g_settings_get_boolean (settings, key); - g_object_unref (client); + g_object_unref (settings); return ignore; } @@ -277,7 +273,7 @@ text = g_strdup_printf ("%s\n\n%s", _("No Certificate Authority certificate chosen"), - _("Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue wireless networks. Would you like to choose a Certificate Authority certificate?")); + _("Not using a Certificate Authority (CA) certificate can result in connections to insecure, rogue Wi-Fi networks. Would you like to choose a Certificate Authority certificate?")); gtk_label_set_markup (GTK_LABEL (widget), text); g_free (text); @@ -604,7 +600,7 @@ static gboolean default_filter_privkey (const GtkFileFilterInfo *filter_info, gpointer user_data) { - const char *extensions[] = { ".der", ".pem", ".p12", NULL }; + const char *extensions[] = { ".der", ".pem", ".p12", ".key", NULL }; gboolean require_encrypted = !!user_data; gboolean is_encrypted = TRUE; @@ -614,7 +610,8 @@ if (!file_has_extension (filter_info->filename, extensions)) return FALSE; - if (!file_is_der_or_pem (filter_info->filename, TRUE, &is_encrypted)) + if ( !file_is_der_or_pem (filter_info->filename, TRUE, &is_encrypted) + && !nm_utils_file_is_pkcs12 (filter_info->filename)) return FALSE; return require_encrypted ? is_encrypted : TRUE; @@ -645,7 +642,7 @@ filter = gtk_file_filter_new (); if (privkey) { gtk_file_filter_add_custom (filter, GTK_FILE_FILTER_FILENAME, default_filter_privkey, NULL, NULL); - gtk_file_filter_set_name (filter, _("DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12)")); + gtk_file_filter_set_name (filter, _("DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12, *.key)")); } else { gtk_file_filter_add_custom (filter, GTK_FILE_FILTER_FILENAME, default_filter_cert, NULL, NULL); gtk_file_filter_set_name (filter, _("DER or PEM certificates (*.der, *.pem, *.crt, *.cer)")); diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/eap-method.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method.h --- network-manager-applet-0.9.4.1/src/wireless-security/eap-method.h 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/eap-method.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/helpers.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/helpers.c --- network-manager-applet-0.9.4.1/src/wireless-security/helpers.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/helpers.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/helpers.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/helpers.h --- network-manager-applet-0.9.4.1/src/wireless-security/helpers.h 2011-09-27 19:24:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/helpers.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/wireless-security.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/wireless-security.c --- network-manager-applet-0.9.4.1/src/wireless-security/wireless-security.c 2012-03-17 00:04:57.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/wireless-security.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -544,6 +544,8 @@ gtk_tree_model_get (model, &iter, AUTH_METHOD_COLUMN, &eap, -1); g_return_val_if_fail (eap != NULL, NULL); - return eap_method_nag_user (eap); + widget = eap_method_nag_user (eap); + eap_method_unref (eap); + return widget; } diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/wireless-security.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/wireless-security.h --- network-manager-applet-0.9.4.1/src/wireless-security/wireless-security.h 2012-03-17 00:02:22.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/wireless-security.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/ws-dynamic-wep.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-dynamic-wep.c --- network-manager-applet-0.9.4.1/src/wireless-security/ws-dynamic-wep.c 2012-03-17 00:04:20.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-dynamic-wep.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/ws-dynamic-wep.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-dynamic-wep.h --- network-manager-applet-0.9.4.1/src/wireless-security/ws-dynamic-wep.h 2012-03-12 23:59:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-dynamic-wep.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/ws-leap.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-leap.c --- network-manager-applet-0.9.4.1/src/wireless-security/ws-leap.c 2012-03-17 00:04:30.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-leap.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/ws-leap.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-leap.h --- network-manager-applet-0.9.4.1/src/wireless-security/ws-leap.h 2012-03-12 23:59:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-leap.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/ws-wep-key.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-wep-key.c --- network-manager-applet-0.9.4.1/src/wireless-security/ws-wep-key.c 2012-03-13 23:04:00.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-wep-key.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/ws-wep-key.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-wep-key.h --- network-manager-applet-0.9.4.1/src/wireless-security/ws-wep-key.h 2012-03-12 23:59:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-wep-key.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/ws-wpa-eap.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-wpa-eap.c --- network-manager-applet-0.9.4.1/src/wireless-security/ws-wpa-eap.c 2012-03-17 00:04:36.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-wpa-eap.c 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/ws-wpa-eap.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-wpa-eap.h --- network-manager-applet-0.9.4.1/src/wireless-security/ws-wpa-eap.h 2012-03-12 23:59:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-wpa-eap.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/ws-wpa-psk.c network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-wpa-psk.c --- network-manager-applet-0.9.4.1/src/wireless-security/ws-wpa-psk.c 2012-03-17 00:02:52.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-wpa-psk.c 2012-10-31 13:21:01.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams * @@ -117,14 +117,13 @@ wireless_security_clear_ciphers (connection); if (is_adhoc) { /* Ad-Hoc settings as specified by the supplicant */ - g_object_set (s_wireless_sec, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-none", NULL); - nm_setting_wireless_security_add_proto (s_wireless_sec, "wpa"); - nm_setting_wireless_security_add_pairwise (s_wireless_sec, "none"); + g_object_set (s_wireless_sec, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-psk", NULL); + nm_setting_wireless_security_add_proto (s_wireless_sec, "rsn"); - /* Ad-hoc can only have _one_ group cipher... default to TKIP to be more - * compatible for now. Maybe we'll support selecting CCMP later. - */ - nm_setting_wireless_security_add_group (s_wireless_sec, "tkip"); + /* The supplicant only supports CCMP with Ad-hoc RSN; + * Selecting something else will make it use CCMP anyway. */ + nm_setting_wireless_security_add_pairwise (s_wireless_sec, "ccmp"); + nm_setting_wireless_security_add_group (s_wireless_sec, "ccmp"); } else { g_object_set (s_wireless_sec, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-psk", NULL); @@ -163,7 +162,7 @@ if (!parent) return NULL; - parent->adhoc_compatible = FALSE; + parent->adhoc_compatible = TRUE; sec = (WirelessSecurityWPAPSK *) parent; widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_entry")); diff -Nru network-manager-applet-0.9.4.1/src/wireless-security/ws-wpa-psk.h network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-wpa-psk.h --- network-manager-applet-0.9.4.1/src/wireless-security/ws-wpa-psk.h 2012-03-12 23:59:17.000000000 +0000 +++ network-manager-applet-0.9.6.2+git201210311320.2620/src/wireless-security/ws-wpa-psk.h 2012-10-31 13:20:57.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager Wireless Applet -- Display wireless access points and allow user control +/* NetworkManager Applet -- allow user control over networking * * Dan Williams *